/* Shared OXBE visual language. Accounting values and workflows remain in their views. */
:root{--bg:#f5f7fa;--panel:#fff;--ink:#17243b;--muted:#617087;--line:#e3e8ef;--soft:#edf1f6;--accent:#1769d2;--accent-soft:#eaf2ff;--shadow:0 8px 30px #203c6306;--entry-bg:#edf3fc;--ui-radius:22px}
:root[data-theme="dark"]{--bg:#0e1724;--panel:#162232;--ink:#edf3fb;--muted:#a6b6ca;--line:#2b3a4e;--soft:#1d2c3e;--accent:#7fc7ff;--accent-soft:#213950;--shadow:0 8px 30px #00000016;--entry-bg:#172537}
html{font-size:16px;scroll-padding-block:24px 200px}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.55;letter-spacing:0;-webkit-text-size-adjust:100%}
*,*::before,*::after{box-sizing:border-box}
h1,h2,h3,h4,p,dt,dd,button{overflow-wrap:break-word}
h1,h2,h3,h4{color:var(--ink);letter-spacing:-.025em;line-height:1.25;font-weight:650}
h1{font-size:1.5rem}h2{font-size:1.125rem}h3{font-size:1rem}h4{font-size:.9375rem}
strong,b{font-weight:600}small,.muted,.caption,.note{line-height:1.55}
button,input,select,textarea{font-family:inherit;letter-spacing:0}
input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px;max-width:100%;min-width:0;border-radius:12px}
.btn,.icon-button{min-height:44px;border-radius:13px;font-size:.9375rem;font-weight:550;line-height:1.35;white-space:normal}
.icon-button{min-width:44px}.btn.primary{box-shadow:none}
.shell{grid-template-columns:210px minmax(0,1fr)}
.main{min-width:0;width:100%;max-width:1080px;margin-inline:auto;padding:32px clamp(20px,4vw,48px) 144px}
.shell .app-header{display:flex;align-items:center;max-width:none;margin:0 0 28px;padding:0;gap:12px}
.app-identity{display:flex;align-items:center;gap:12px;min-width:0}
.app-identity .app-logo{width:38px;height:38px;flex:0 0 38px;border-radius:12px}
.shell .app-header #pageTitle{display:block;position:static;width:auto;height:auto;overflow:visible;clip-path:none;margin:0;font-size:clamp(1.2rem,4.8vw,1.5rem);font-weight:600;letter-spacing:-.03em;line-height:1.25}
.app-header #welcome,.app-header #homeDate{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.home-menu{background:transparent;border:0;color:var(--muted)}
.shell[data-view=dashboard] .app-header,.home-overview{max-width:580px;margin-inline:auto}
.shell[data-view=dashboard] .main{padding-top:32px}
.home-overview{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}
.home-budget-tile{padding:16px 24px 14px;border-radius:26px}
.home-budget-title{font-size:1rem;font-weight:550}
.home-budget-body{display:flex;flex-direction:column;gap:4px;padding:8px 0 4px}
.home-ring-stage{position:relative;width:220px;height:220px;max-width:100%;margin-inline:auto}
.home-ring-stage .home-ring-button{position:absolute;inset:0;width:100%;height:100%;padding:0;border-radius:50%}
.home-ring-stage .home-ring{width:100%;height:100%}
.home-ring-stage .home-ring::before{filter:blur(7px);opacity:.3}
.home-ring-stage .home-ring-hole{width:calc(100% - 14px);height:calc(100% - 14px)}
#homeRemainingButton{position:absolute;inset:26px 19px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-radius:50%;padding:5px}
.home-budget-number{font-size:clamp(1.8rem,8vw,2.65rem);line-height:1.2;letter-spacing:-.045em}
.home-budget-number strong{font-weight:600}.home-unit{display:block;font-size:.8125rem;font-weight:500;line-height:1.8;color:var(--muted)}
.home-budget-caption{font-size:.8125rem;line-height:1.4;max-width:160px;margin-top:4px}
.home-budget-breakdown{justify-content:center;gap:8px}.home-budget-breakdown .home-data{font-size:.8125rem}
.home-money-tile{border:1px solid var(--line);background:var(--panel);color:var(--ink);box-shadow:var(--shadow);border-radius:24px;padding:20px 24px;gap:7px}
.home-money-title{font-size:.9375rem;color:var(--muted)}.home-money-value{font-size:clamp(1.85rem,8vw,2.4rem);letter-spacing:-.035em}.home-money-value strong{font-weight:600}.home-money-caption{font-size:.8125rem;color:var(--muted)}
.home-history-nav>div,.home-day-label{font-size:.75rem}.home-rhythm-empty{font-size:.8125rem}.home-history-incomplete{font-size:.75rem;min-height:44px}
.card,.category-panel,.account-overview,.settings-section,.home-monthly-report,.monthly-card{border-radius:var(--ui-radius);border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);min-width:0}
.card,.category-panel,.account-overview,.monthly-card{padding:22px}.card .card{box-shadow:none}
.section-heading{gap:12px;flex-wrap:wrap;margin-bottom:18px}.section-heading h2{font-size:1.125rem;letter-spacing:-.02em}.section-heading .btn{font-size:.875rem}
.account-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px}.account-head{align-items:flex-start}.account-head h2{font-size:1.0625rem}.account-balance{font-size:1.75rem;letter-spacing:-.035em;line-height:1.25}.account-card .muted,.account-snapshot>.balance-date{font-size:.8125rem}.account-card footer{flex-wrap:wrap;gap:8px}.account-card footer p{margin:0}
.account-overview{margin:0 0 18px}.account-overview>strong{font-size:2rem;letter-spacing:-.035em}.account-overview .muted{font-size:.875rem}
.settings-grid{gap:16px}.settings-section>summary{padding:20px;min-height:64px}.settings-section>summary strong{font-size:1rem}.settings-section>summary .muted{font-size:.8125rem;margin-top:4px}.settings-body{padding:0 20px 20px}.settings-body .card{padding:16px;margin-top:12px}.settings-body p,.settings-body label{font-size:.875rem}.settings-body input,.settings-body select{font-size:16px}
.home-monthly-report{padding-inline:20px}.home-monthly-report>summary{font-size:.9375rem;color:var(--ink)}.category-total{font-size:.9375rem}.category-total small{font-size:.8125rem}.category-total>strong{font-weight:600}
.movement-row{min-height:68px;padding-block:14px;gap:12px}.movement-copy{font-size:.9375rem;font-weight:500;min-width:0}.movement-copy small,.movement-row .amount small{font-size:.8125rem;margin-top:4px;font-weight:400}.movement-row .amount{font-size:.9375rem}.section-icon{background:var(--soft);color:var(--muted);border-radius:12px}
.filters{gap:12px;flex-wrap:wrap}.filters>*{min-width:0}.table th{text-transform:none;letter-spacing:0;font-size:.8125rem;font-weight:500}.table td{font-size:.9375rem}.table .muted{font-size:.8125rem}.movement-link{font-weight:500}
.sheet{width:min(620px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:24px;border-radius:24px;overflow:auto;overscroll-behavior:contain}.sheet h2{font-size:1.25rem}.sheet dt{font-size:.875rem;color:var(--muted)}.sheet dd{font-size:.9375rem}.sheet .detail-amount,.home-detail-number{font-size:2rem;font-weight:600;letter-spacing:-.035em}.sheet .muted{font-size:.875rem}.sheet-head,.dialog-head{gap:12px;align-items:flex-start}.sheet-head h2,.dialog-head h2{min-width:0;flex:1}.sheet .icon-button{flex-shrink:0}
.auth{width:100%;max-width:480px;margin-inline:auto;padding:32px 20px calc(24px + env(safe-area-inset-bottom))}.auth-card{padding:24px;border-radius:24px}.auth-heading{padding:0 0 20px;background:transparent;border:0;box-shadow:none}.auth-heading h1{font-size:1.65rem}.auth-heading p{font-size:.9375rem}.auth label{font-size:.9375rem}.auth .btn{min-height:48px}.auth-links{gap:12px;flex-wrap:wrap}
.assistant-dock{position:fixed;z-index:25;bottom:24px;left:calc(210px + max(24px,(100vw - 210px - 960px)/2));right:max(24px,(100vw - 210px - 960px)/2);pointer-events:none}
#assistantLaunch.assistant-entry{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:68px;margin:0;padding:18px 24px;border:0;border-radius:22px;background:var(--entry-bg);color:var(--ink);font-size:1rem;font-weight:550;letter-spacing:0;text-align:left;pointer-events:auto;box-shadow:0 8px 26px #11264612}
#assistantLaunch::before{content:"";position:absolute;inset:0;padding:2.1px;border-radius:inherit;background:linear-gradient(110deg,#15bdc8 0%,#168cff 30%,#9972ed 60%,#ec5ccc 82%,#1bcac6 100%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none;animation:oxbe-thread 4.2s ease-in-out infinite}
#assistantLaunch::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 6px #3b9aff38,0 0 12px #a065dc24,inset 0 0 7px #42bac814;pointer-events:none;animation:oxbe-halo 4.2s ease-in-out infinite}
#assistantLaunch>span:last-child{font-size:1.3rem;color:var(--muted)}
.shell[data-view=adviser] .assistant-dock{display:none}.adviser-home-link{display:none}
@keyframes oxbe-thread{0%,100%{opacity:.36}50%{opacity:1}}@keyframes oxbe-halo{0%,100%{opacity:.08}50%{opacity:.4}}
#assistantChat{border:1px solid var(--line);animation:oxbe-open .24s ease-out}.chat-header{padding:18px 22px}.chat-back{font-size:1.8rem;background:transparent;border:0;color:var(--ink)}.chat-header h2{font-size:1.125rem}.chat-header p{font-size:.8125rem}.chat-header-actions{display:flex;gap:4px}.chat-header-actions .btn{border:0;background:transparent;min-width:44px}.chat-header-actions .btn span{display:none}
.chat-message{font-size:1rem;line-height:1.65}.chat-speaker{font-size:.8125rem;font-weight:500}.chat-caption{font-size:.75rem;line-height:1.5}.chat-fact p,.chat-receipt dl,.chat-receipt ul{font-size:.875rem}.chat-receipt,.chat-change{padding:18px;border-radius:18px;box-shadow:none}.chat-receipt .muted,.chat-message>.muted{font-size:.8125rem}.chat-result{font-size:.75rem;letter-spacing:0}.chat-change details{font-size:.8125rem}.chat-suggestions button{font-size:.875rem;border-radius:14px;background:var(--soft)}.chat-user{background:var(--accent-soft);border-radius:20px 20px 5px 20px}.chat-assistant{padding-right:8px}.receipt-heading{flex-wrap:wrap;gap:8px}.receipt-heading>strong:first-child{max-width:100%}.receipt-amount{white-space:normal}.chat-receipt dl div{gap:12px;align-items:baseline}.chat-receipt dd{min-width:0;overflow-wrap:anywhere}.conversation-review{max-width:100%;overflow:auto}.conversation-facts dd{overflow-wrap:anywhere}
@keyframes oxbe-open{from{opacity:.5;transform:translateY(8px)}to{opacity:1;transform:none}}
.bottom button{font-weight:500}.bottom button.active{background:var(--accent-soft);color:var(--accent)}.nav-caption,.nav button,.brand{letter-spacing:0;text-transform:none}.brand{font-size:1.125rem}.nav button{font-size:.9375rem}.toast{bottom:110px}
@media(max-width:800px),(max-width:1000px) and (pointer:coarse){
 .shell{display:block}.side{display:none}.main,.shell[data-view=dashboard] .main{max-width:680px;padding:calc(20px + env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) calc(198px + env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left))}.shell .app-header{margin-bottom:22px}.app-identity{gap:10px}.app-identity .app-logo{width:36px;height:36px;flex-basis:36px}
 .assistant-dock{left:max(18px,calc((100vw - 644px)/2));right:max(18px,calc((100vw - 644px)/2));bottom:calc(90px + env(safe-area-inset-bottom))}#assistantLaunch.assistant-entry{min-height:64px;padding:17px 22px;border-radius:20px}
 .bottom{display:grid;width:100%;max-width:none;left:0;right:0;transform:none;border-radius:0;border:0;border-top:1px solid var(--line);background:var(--bg);padding:8px max(12px,calc((100vw - 660px)/2)) calc(10px + env(safe-area-inset-bottom));gap:4px}.bottom button{min-height:56px;font-size:.75rem;border-radius:14px}
 .card,.category-panel,.account-overview,.monthly-card{padding:18px}.home-budget-tile{padding:12px 18px 10px}.home-money-tile{padding:18px 20px}.account-grid,.settings-grid{grid-template-columns:minmax(0,1fr)}.settings-body{padding:0 18px 18px}.settings-section>summary{padding:18px}.account-balance{font-size:1.65rem}.home-detail-list>div{gap:12px}
 .sheet{padding:22px 18px calc(22px + env(safe-area-inset-bottom));border-radius:24px;width:calc(100% - 20px);margin:auto;max-height:calc(100dvh - 20px)}.form-grid{grid-template-columns:minmax(0,1fr)}.expense-options,.daily-choice-actions{flex-wrap:wrap}.expense-options .btn,.daily-choice-actions .btn{flex:1 1 110px}
 .toast{bottom:calc(170px + env(safe-area-inset-bottom))}body:has(#adviser.active) .main{padding:0}#assistantChat{border:0}#adviserAnswer.chat-log{padding:22px 18px;gap:22px}.chat-header{padding:calc(10px + env(safe-area-inset-top)) 14px 10px}.chat-composer{padding:6px 12px 12px}.chat-caption{font-size:.6875rem}.chat-receipt{padding:14px}.chat-message{font-size:.9375rem}.chat-header .chat-identity{gap:6px}
}
@media(max-width:360px){.home-ring-stage{width:202px;height:202px}.home-budget-number{font-size:2rem}.home-budget-breakdown{gap:4px}.home-budget-breakdown .home-data{font-size:.75rem}.main{padding-inline:14px}.assistant-dock{left:14px;right:14px}.auth{padding-inline:16px}.auth-card{padding:20px}.section-heading .btn{padding-inline:12px}}
@media(prefers-reduced-motion:reduce){#assistantLaunch::before,#assistantLaunch::after,#assistantChat{animation:none}#assistantLaunch::before{opacity:.8}#assistantLaunch::after{opacity:.4}}
@media print{.assistant-dock{display:none!important}.main{padding-bottom:0}}

.account-detail-link{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:44px;padding:10px 0;margin:8px 0;border:0;background:transparent;color:var(--accent);font:inherit;font-size:.875rem;text-align:left}.account-detail-link span{font-size:1.3rem}#accountDetailContent .movement-row{width:100%}
