:root{font-family:Manrope,'IBM Plex Sans Arabic',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:#f4f7f5;color:#163c35;--base:#f4f7f5;--card:#fff;--ink:#153b33;--muted:#6f847b;--line:#e1eae5;--mint:#087f6a;--mint-soft:#e7f4ee;--sidebar:#123f38;--danger:#c05258;--warning:#b7782e;--shadow:0 12px 38px rgba(26,60,48,.045)}
*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #78d3b4;outline-offset:2px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(26px,2.7vw,36px);letter-spacing:-1.15px;margin-bottom:7px}h2{font-size:17px;letter-spacing:-.3px}h3{font-size:14px}p{line-height:1.65}small,.muted{color:var(--muted)}a{color:var(--mint)}.app{display:flex;min-height:100vh}.sidebar{width:250px;min-width:250px;background:var(--sidebar);color:#eaf9f1;min-height:100vh;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:30px 16px}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 38px;font-size:19px;font-weight:800;letter-spacing:-.75px}.brand small{display:block;color:#a6d0be;font-size:10px;letter-spacing:1.9px;margin-top:3px}.mark{background:#3fbf9c;border-radius:13px;width:43px;height:43px;display:grid;place-items:center;font-size:23px}.nav{display:grid;gap:7px}.nav button{width:100%;background:transparent;border:0;border-radius:12px;text-align:left;padding:13px 14px;color:#b7d0c5;font-weight:700;font-size:13px;display:flex;gap:12px;align-items:center}.nav button:hover,.nav button.selected{color:white;background:#256254}.nav button.selected{box-shadow:inset 3px 0 #78e4bd}.nav button .sym{font-size:18px;width:22px;text-align:center}.sidebarbottom{margin-top:auto;border-top:1px solid #336a5b;padding:17px 10px;color:#aed1c3;font-size:12px;line-height:1.6}.workspace{padding:34px clamp(18px,3.3vw,56px) 60px;width:100%;max-width:1650px;margin:0 auto;min-width:0}.header{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;flex-wrap:wrap;margin-bottom:25px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--mint);font-weight:800;text-transform:uppercase}.headtools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tag{font-size:11px;background:#e8f4ed;color:#287c62;padding:8px 12px;border-radius:999px;font-weight:800}.tag.demo{background:#fff0d9;color:#966624}.pill{display:inline-flex;align-items:center;padding:5px 9px;border-radius:9px;font-size:11px;font-weight:800;background:var(--mint-soft);color:var(--mint)}.pill.warn{background:#fff0df;color:#926128}.pill.bad{background:#fde9e9;color:#b44049}.btn{border:none;border-radius:11px;padding:11px 16px;background:var(--mint);color:white;font-weight:800;font-size:12px;display:inline-flex;gap:8px;align-items:center;justify-content:center}.btn.secondary{background:white;color:var(--ink);border:1px solid var(--line)}.btn.ghost{background:var(--mint-soft);color:var(--mint)}.btn.danger{background:#fbe9e9;color:#af3e4d}.btn.sm{padding:8px 11px;font-size:11px}.btn.wide{width:100%}.select,.field,.textarea{border:1px solid #d9e5de;background:white;border-radius:11px;color:var(--ink);padding:11px 13px;width:100%;min-width:0;font-size:13px}.select{width:auto;max-width:100%}.textarea{resize:vertical;min-height:90px;line-height:1.55}.field:focus,.select:focus,.textarea:focus{outline:2px solid #93d9b9;border-color:#93d9b9}label{font-size:12px;font-weight:800;color:#47685d;display:block;margin-bottom:7px}.grid{display:grid;gap:16px}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:17px;padding:21px;min-width:0}.kpi{position:relative;overflow:hidden}.kpi .caption{font-size:12px;font-weight:700;color:#77897f}.kpi .value{font-size:clamp(23px,2.3vw,32px);font-weight:800;letter-spacing:-1.1px;margin:11px 0 5px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.kpi .unit{font-size:12px;color:#91a098;margin-left:2px}.kpi .sub{font-size:11px;color:#7b9385}.kpi .icon{font-size:20px;position:absolute;right:19px;top:15px;background:#eff6f2;border-radius:12px;padding:9px}.positive{color:#128168}.negative{color:#ba4857}.contentgrid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,1fr);gap:16px;margin-bottom:16px}.contentgrid.equal{grid-template-columns:repeat(2,minmax(0,1fr))}.sectionhead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:15px}.sectionhead p{font-size:12px;margin:5px 0 0;color:var(--muted)}.meter{background:#e8efe9;height:11px;border-radius:999px;overflow:hidden}.fill{background:var(--mint);height:100%;border-radius:999px;min-width:0;transition:width .18s}.fill.over{background:var(--danger)}.budgetrow{margin:14px 0}.budgetrow .line{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:8px;font-size:12px}.budgetrow .line strong{font-size:12px}.legend{font-size:12px;color:var(--muted);display:flex;gap:18px;flex-wrap:wrap}.trendchart{height:220px;display:flex;align-items:flex-end;gap:10px;padding:20px 1px 21px;border-bottom:1px solid var(--line)}.barunit{flex:1;min-width:0;height:100%;display:flex;align-items:flex-end;gap:3px;position:relative}.barunit .income{background:#8ed4b5}.barunit .spend{background:#258675}.barunit span{width:45%;border-radius:5px 5px 0 0;min-height:1px}.barunit label{position:absolute;bottom:-21px;left:0;right:0;text-align:center;font-size:10px;color:var(--muted);font-weight:600}.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;color:#71867b;font-size:11px;font-weight:800;background:#f8faf8}th,td{padding:13px 10px;border-bottom:1px solid #e9efe9;vertical-align:middle}tr:last-child td{border-bottom:0}.amount{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}.notes{max-width:285px;word-break:break-word}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.formgrid .spanall{grid-column:1/-1}.list{display:grid;gap:10px}.txcard{border:1px solid var(--line);border-radius:12px;padding:13px;display:flex;justify-content:space-between;gap:12px}.txcard strong{font-size:13px}.txcard .small{font-size:11px;color:var(--muted);margin-top:4px}.txcard .right{text-align:right;min-width:100px}.tabs{display:flex;gap:8px;flex-wrap:wrap}.tab{background:white;border:1px solid var(--line);border-radius:10px;padding:9px 12px;color:var(--muted);font-size:12px;font-weight:800}.tab.active{background:var(--mint-soft);border-color:#b3d9c6;color:var(--mint)}.budgetyear{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.budmonth{border:1px solid var(--line);padding:11px;border-radius:12px;background:#fbfdfb}.budmonth label{font-size:10px}.budmonth input{width:100%}.callout{border-radius:13px;padding:15px;background:#eaf7f0;border:1px solid #cce9d9;font-size:12px;color:#316855;line-height:1.7}.callout.warn{background:#fff7e9;border-color:#f2dfba;color:#86612d}.assistantlog{max-height:440px;overflow-y:auto;display:flex;flex-direction:column;gap:13px;min-height:210px;padding:9px 2px 17px}.bubble{max-width:88%;padding:14px 16px;border-radius:15px;background:#f0f5f1;border:1px solid #e0eae2;white-space:pre-wrap;font-size:13px;line-height:1.65}.bubble.me{align-self:flex-end;background:#e7f5ef;border-color:#d2e9db}.bubble.ai{align-self:flex-start}.suggestion{border-radius:13px;border:1px solid #cbe7d9;background:#f8fdf9;padding:15px;margin-top:10px}.suggestion .item{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;padding:9px 0;border-bottom:1px solid var(--line)}.suggestion .item:last-child{border-bottom:0}.suggestion .item input,.suggestion .item select{width:100%}.chipbar{display:flex;gap:7px;flex-wrap:wrap}.chip{padding:8px 10px;font-size:11px;color:#2c7661;border:1px solid #c9e4d9;border-radius:999px;background:#f2faf5}.mobilebar{display:none}.empty{text-align:center;padding:45px 15px;color:var(--muted);font-size:13px}.authwrap{min-height:100vh;display:grid;place-items:center;background:linear-gradient(125deg,#e7f7ef,#f8f9f6);padding:20px}.authbox{width:min(440px,100%)}.authbox h1{font-size:25px}.authbox .field{width:100%}.authbox .formstack{display:grid;gap:15px}.authlink{border:0;background:none;color:var(--mint);font-weight:700;text-decoration:underline;padding:0;font-size:12px}.settingsrow{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);align-items:center}.settingsrow:last-child{border-bottom:0}.settingsrow .name{font-weight:800;font-size:13px}.settingsrow .extra{color:var(--muted);font-size:11px;margin-top:4px}.spinner{opacity:.6}.loading{text-align:center;padding:25vh 15px;color:#427f6e}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:100;max-width:95%;background:#173e34;color:white;font-size:12px;font-weight:700;border-radius:12px;padding:12px 18px;display:none;box-shadow:0 15px 35px #1234}#toast.show{display:block}.icononly{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:9px;background:white;color:var(--ink)}.footnote{font-size:11px;color:var(--muted);line-height:1.7;margin-top:10px}.hidden{display:none!important}.rtl{direction:rtl;text-align:right}.rec{color:#ab4350;font-weight:900}.rec .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#d94f58;animation:blink 1s infinite}@keyframes blink{50%{opacity:.25}}
@media(max-width:1200px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.budgetyear{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.sidebar{width:210px;min-width:210px}.workspace{padding:27px 20px 45px}.contentgrid{grid-template-columns:minmax(0,1fr)}.kpi .value{font-size:28px}}
@media(max-width:650px){.sidebar{display:none}.workspace{padding:21px 14px calc(92px + env(safe-area-inset-bottom));max-width:100vw}.header{margin-bottom:18px}.header h1{font-size:27px}.headtools{width:100%;justify-content:space-between}.kpi-grid{gap:9px;margin-bottom:10px}.card{padding:15px;border-radius:14px}.kpi{padding:15px 12px}.kpi .icon{display:none}.kpi .caption{font-size:10px}.kpi .value{font-size:clamp(19px,5.5vw,25px)}.kpi .unit{font-size:10px}.kpi .sub{font-size:10px}.contentgrid,.contentgrid.equal{grid-template-columns:1fr;gap:10px;margin-bottom:10px}.mobilebar{display:flex;position:fixed;bottom:0;left:0;right:0;height:calc(70px + env(safe-area-inset-bottom));padding:7px 8px calc(5px + env(safe-area-inset-bottom));z-index:60;justify-content:space-around;background:#fff;box-shadow:0 -7px 26px #153d3514;border-top:1px solid var(--line)}.mobilebar button{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:4px;justify-content:center;color:#73887e;font-size:10px;font-weight:700;min-width:55px}.mobilebar button.selected{color:var(--mint)}.mobilebar .sym{font-size:20px}.budgetyear{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.formgrid{grid-template-columns:1fr}.tablewrap table{display:none}.txcards{display:grid!important}.hide-mobile{display:none}.trendchart{gap:5px;height:168px}.barunit label{font-size:9px}.assistantlog{max-height:40vh;min-height:180px}.bubble{max-width:94%}.suggestion .item{grid-template-columns:1fr}.sectionhead h2{font-size:15px}.header .select{font-size:12px}.row{gap:7px}.mobile-float{position:fixed;right:17px;bottom:calc(85px + env(safe-area-inset-bottom));box-shadow:0 9px 27px #166b5444;z-index:45}}
@media(min-width:651px){.txcards{display:none!important}}

/* Version 4.1: explicit demo / service availability and mode selection */
.demo-banner{border:1px solid #e8d49c;background:#fff9e9;color:#845d22;border-radius:12px;padding:12px 16px;font-size:12px;line-height:1.7;margin:0 0 20px}.demo-banner strong{color:#6f521c}.ai-mode{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:15px 0 10px}.ai-mode label{font-size:12px;font-weight:800;color:var(--ink)}.ai-mode .select{max-width:265px}@media(max-width:650px){.ai-mode{display:grid;gap:6px}.ai-mode .select{width:100%;max-width:100%}}

/* V4.2: original Modern Teal design, now with a complete dark palette. */
:root { color-scheme: light; }
body { background: var(--base); color: var(--ink); }
[data-theme="dark"] { color-scheme: dark; --base:#101e1b; --card:#192c26; --ink:#e5f1eb; --muted:#aac1b5; --line:#345046; --mint:#54d2ae; --mint-soft:#22463a; --sidebar:#0b2721; --danger:#f18493; --shadow:0 12px 38px #0002; background:var(--base); color:var(--ink); }
[data-theme="dark"] .btn:not(.secondary):not(.ghost):not(.danger) { color:#0b3227; }
[data-theme="dark"] .field, [data-theme="dark"] .select, [data-theme="dark"] .textarea, [data-theme="dark"] .btn.secondary, [data-theme="dark"] .icononly, [data-theme="dark"] .mobilebar, [data-theme="dark"] .tab { background:#1d332b; color:var(--ink); border-color:var(--line); }
[data-theme="dark"] .budmonth, [data-theme="dark"] .suggestion, [data-theme="dark"] th, [data-theme="dark"] .kpi .icon { background:#1b3129; }
[data-theme="dark"] .bubble { background:#233e33; border-color:var(--line); }
[data-theme="dark"] .bubble.me { background:#214a3b; }
[data-theme="dark"] .callout, [data-theme="dark"] .chip { background:#244536; color:#c1ead6; border-color:#38644e; }
[data-theme="dark"] .callout.warn, [data-theme="dark"] .demo-banner, [data-theme="dark"] .tag.demo { background:#403620; border-color:#695731; color:#efd79f; }
[data-theme="dark"] .demo-banner strong { color:#fff0cb; }
[data-theme="dark"] .positive { color:#65d6b2; }
[data-theme="dark"] .negative { color:#f2939e; }
[data-theme="dark"] label, [data-theme="dark"] .kpi .caption, [data-theme="dark"] .kpi .sub { color:var(--muted); }
[data-theme="dark"] .meter { background:#30463b; }
[data-theme="dark"] .authwrap { background:linear-gradient(125deg,#10251e,#16261f); }
.theme-toggle { min-width:82px; }
.bubble { unicode-bidi:plaintext; overflow-wrap:anywhere; }
.settingsrow .name, .txcard strong { overflow-wrap:anywhere; }
#budget-year { width:100px; }
dialog.ff-dialog { width:min(480px,calc(100% - 28px)); max-height:85vh; overflow:auto; background:var(--card); color:var(--ink); border:1px solid var(--line); border-radius:17px; padding:24px; box-shadow:0 20px 80px #0004; }
dialog.ff-dialog::backdrop { background:#0d2d2866; backdrop-filter:blur(3px); }
dialog.ff-dialog label { margin-top:14px; }
.sync-status { font-size:10px; color:var(--muted); }
@media(max-width:650px) { .field,.select,.textarea { font-size:16px; } .header .select { font-size:16px; } .headtools { gap:7px; justify-content:flex-start; } .settingsrow { flex-wrap:wrap; } #toast { bottom:calc(85px + env(safe-area-inset-bottom)); } .theme-toggle { padding:11px; min-height:44px; } .btn.sm { min-height:40px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }

/* Basic Smart Assistant: restrained, direction-aware review and insights. */
.smart-insights { margin: 16px 0; }
.insight-line { font-size: 12px; line-height: 1.7; border-inline-start: 3px solid var(--mint); padding-inline-start: 12px; margin: 10px 0; }
.clarification, .duplicate-warning { margin-bottom: 12px; font-size: 11px; }
#ai-text { min-height: 120px; unicode-bidi: plaintext; }
#review-form .field:invalid { border-color: var(--warning); }
#review-form label { margin-top: 4px; }
@media(max-width:650px) { #ai-text { min-height: 115px; } .suggestion .btn { min-height: 44px; } .chip { min-height: 40px; } }
