:root{color-scheme:dark;--bg: #0d1014;--panel: #14191f;--panel-2: #1a212a;--panel-3: #212a34;--line: #273039;--line-soft: #1d242c;--ink: #e8edf3;--muted: #828d9b;--faint: #59636f;--accent: #43bccf;--accent-dim:#2b7f8c;--edit: #f2cf5b;--edit-dim: #9a8330;--pos: #57cf9a;--neg: #ec7f70;--mono: ui-monospace, "SF Mono", "Cascadia Code", "JetBrains Mono", Menlo, Consolas, monospace;--sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--r: 8px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--sans);font-size:13px;line-height:1.4;color:var(--ink);background:radial-gradient(1200px 600px at 82% -10%,rgba(67,188,207,.05),transparent 60%),var(--bg);-webkit-font-smoothing:antialiased}*{scrollbar-width:thin;scrollbar-color:var(--line) transparent}*::-webkit-scrollbar{width:9px;height:9px}*::-webkit-scrollbar-thumb{background:var(--line);border-radius:6px}*::-webkit-scrollbar-thumb:hover{background:var(--panel-3)}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:.9rem;padding:.55rem 1.1rem;background:#10141ad1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.topbar .spacer{flex:1}.brand{font-weight:750;font-size:.95rem;letter-spacing:-.01em;color:var(--ink);white-space:nowrap;padding-right:.2rem;display:flex;align-items:baseline;gap:.12em}.brand:before{content:"";width:7px;height:7px;margin-right:.5rem;border-radius:2px;background:var(--accent);box-shadow:0 0 10px #43bccfb3;align-self:center}.brand span{color:var(--accent);font-weight:500}.switchers{display:flex;gap:.5rem;align-items:center;min-width:0}.switcher,.periods,select,.topbar button,.login button,button.ghost{font-family:var(--sans);font-size:.82rem;color:var(--ink);background:var(--panel-2);border:1px solid var(--line);border-radius:7px;padding:.42rem .6rem;cursor:pointer;transition:border-color .12s ease,background .12s ease}.switcher,.periods,.dash select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:1.7rem;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='7' viewBox='0 0 10 7'><path d='M1 1l4 4 4-4' fill='none' stroke='%23828d9b' stroke-width='1.6' stroke-linecap='round'/></svg>");background-repeat:no-repeat;background-position:right .55rem center}.switcher option,.periods option,.dash select option{background:var(--panel-2);color:var(--ink)}.switcher{font-weight:650;color:var(--ink);max-width:46vw;text-overflow:ellipsis}.switcher:hover,.periods:hover,select:hover{border-color:var(--accent-dim)}.switcher:focus,.periods:focus,select:focus{border-color:var(--accent)}button.ghost{color:var(--muted);background:transparent;font-weight:600}button.ghost:hover{color:var(--ink);border-color:var(--accent-dim)}.layout{display:flex;align-items:flex-start;width:100%}.sidebar{flex:0 0 190px;width:190px;position:sticky;top:49px;align-self:flex-start;max-height:calc(100vh - 49px);overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding:.9rem .6rem 1.5rem;border-right:1px solid var(--line-soft)}.sidebar button{display:block;width:100%;text-align:left;font-family:var(--sans);font-size:.8rem;font-weight:600;color:var(--muted);background:transparent;border:none;border-left:2px solid transparent;border-radius:0 6px 6px 0;padding:.5rem .7rem;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .12s ease,background .12s ease,border-color .12s ease}.sidebar button:hover{color:var(--ink);background:var(--panel-2)}.sidebar button.active{color:var(--ink);background:var(--panel-2);border-left-color:var(--accent)}main,.content{padding:.9rem 1.1rem 3rem;max-width:none;width:100%;min-width:0}.section{margin-top:1.35rem}.section:first-child{margin-top:.4rem}.section>h2{display:flex;align-items:center;gap:.8rem;margin:0 0 .7rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.16em;color:var(--muted)}.section>h2:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line),transparent)}.cards{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start}.card{flex:0 1 auto;max-width:100%;background:var(--panel);border:1px solid var(--line-soft);border-radius:var(--r);overflow:hidden}.card>h3{margin:0;padding:.5rem .65rem;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);background:var(--panel-2);border-bottom:1px solid var(--line-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-scroll{overflow-x:auto;padding:5px}.grid{display:grid;gap:1px;min-width:max-content}.gcell{padding:.3rem .5rem;font-family:var(--mono);font-size:12px;font-variant-numeric:tabular-nums;color:var(--ink);border-radius:3px;min-height:26px;display:flex;align-items:center}.gcell.label{font-family:var(--sans);font-weight:600;font-size:11.5px;color:var(--muted);background:var(--panel-2)}.gcell.value{justify-content:flex-end;text-align:right;color:#d3dae2}.gcell.value.pct{color:var(--accent)}.gcell.value.neg{color:var(--neg)}.gcell.input{background:linear-gradient(180deg,#f2cf5b1a,#f2cf5b0d);box-shadow:inset 0 0 0 1px #f2cf5b38;padding:2px}.cell-input{width:100%;min-width:58px;font-family:var(--mono);font-size:12px;font-variant-numeric:tabular-nums;text-align:right;color:var(--edit);background:transparent;border:0;border-bottom:1px dashed rgba(242,207,91,.5);border-radius:3px;padding:.24rem .34rem;transition:background .12s ease,box-shadow .12s ease}.cell-input:hover:not(:disabled){background:#f2cf5b12}.cell-input:focus{outline:none;background:#f2cf5b1f;border-bottom-color:var(--edit);box-shadow:0 0 0 1px var(--edit-dim),0 0 14px #f2cf5b47;color:#fbe487}.cell-input:disabled{color:var(--faint);border-bottom-color:transparent;cursor:default}.cell-input.saving{opacity:.45}.kpi-tiles{display:grid;gap:10px;margin-bottom:12px;grid-template-columns:repeat(auto-fill,minmax(148px,1fr))}.tile{position:relative;background:var(--panel);border:1px solid var(--line-soft);border-radius:var(--r);padding:.7rem .8rem .75rem;overflow:hidden}.tile:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent);opacity:.55}.tile .n{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:1.45rem;font-weight:600;line-height:1.1;color:var(--ink);letter-spacing:-.01em}.tile .l{margin-top:.25rem;font-size:.64rem;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-kpis{display:grid;gap:10px;margin-bottom:12px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.callout{background:var(--panel);border:1px solid var(--line-soft);border-left:2px solid var(--accent);border-radius:var(--r);padding:.7rem .9rem;margin-bottom:14px;font-size:.84rem;line-height:1.5;color:var(--ink)}.home-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));align-items:stretch}.chart-card{display:flex;flex-direction:column}.chart-card>div{padding:.6rem .7rem .3rem}.home-trend{grid-column:1 / -1}.chart-note{padding:.5rem .7rem 0;color:var(--muted);font-size:.78rem}.kpi-list{display:flex;flex-direction:column;gap:1px;padding:.3rem}.kpi-list-row{display:flex;align-items:baseline;gap:.6rem;padding:.45rem .6rem;border-radius:5px}.kpi-list-row:hover{background:var(--panel-2)}.kpi-list-label{flex:1;font-size:.8rem;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kpi-list-target{font-family:var(--mono);font-size:.75rem;color:var(--muted)}.kpi-list-actual{font-family:var(--mono);font-size:.88rem;font-weight:700;font-variant-numeric:tabular-nums;min-width:3.2em;text-align:right}.loading{height:60vh;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.85rem;letter-spacing:.04em}.landing{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr;background:radial-gradient(1200px 700px at -10% -20%,rgba(67,188,207,.1),transparent 60%),var(--bg)}.landing-left{display:flex;flex-direction:column;gap:1.6rem;padding:clamp(1.6rem,5vw,4rem);max-width:560px;width:100%;margin:0 auto;justify-content:center}.landing-brand{display:flex;align-items:center;gap:.5rem;font-size:1.05rem;font-weight:650;letter-spacing:-.01em;color:var(--ink)}.landing-brand b{color:var(--accent);font-weight:750}.landing-dot{width:11px;height:11px;border-radius:3px;background:var(--accent);box-shadow:0 0 16px #43bccfcc}.landing-copy h1{margin:0 0 .7rem;font-size:clamp(1.9rem,4vw,2.7rem);line-height:1.08;font-weight:780;letter-spacing:-.02em;color:var(--ink)}.landing-copy h1 span{color:var(--muted)}.landing-copy p{margin:0 0 1.1rem;color:var(--muted);font-size:1rem;line-height:1.5;max-width:42ch}.landing-feats{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.landing-feats li{display:flex;align-items:center;gap:.6rem;font-size:.88rem;color:var(--ink)}.landing-feats i{width:7px;height:7px;border-radius:999px;flex:0 0 auto}.lf-acc{background:var(--accent);box-shadow:0 0 10px #43bccf99}.lf-pos{background:var(--pos);box-shadow:0 0 10px #57cf9a80}.lf-edit{background:var(--edit);box-shadow:0 0 10px #f2cf5b80}.landing-form{display:grid;gap:.7rem;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1.3rem 1.3rem 1.4rem;box-shadow:0 24px 60px #00000073}.landing-field{display:grid;gap:.3rem}.landing-field span{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.landing-field input{font-family:var(--sans);font-size:.92rem;color:var(--ink);background:var(--panel-2);border:1px solid var(--line);border-radius:9px;padding:.65rem .75rem}.landing-field input::placeholder{color:var(--faint)}.landing-field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #43bccf26}.landing-cta{margin-top:.35rem;font-size:.95rem;font-weight:700;color:#06222a;background:var(--accent);border:none;border-radius:9px;padding:.72rem;cursor:pointer;transition:filter .12s ease,transform .12s ease}.landing-cta:hover:not(:disabled){filter:brightness(1.08)}.landing-cta:active:not(:disabled){transform:translateY(1px)}.landing-cta:disabled{opacity:.7;cursor:default}.landing-error{color:var(--neg);font-size:.82rem;margin:0}.landing-foot{margin:0;color:var(--faint);font-size:.78rem}.landing-right{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;border-left:1px solid var(--line-soft);background:radial-gradient(700px 500px at 70% 20%,rgba(67,188,207,.16),transparent 60%),linear-gradient(160deg,var(--panel) 0%,var(--bg) 90%)}.lp-glow{position:absolute;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,rgba(67,188,207,.22),transparent 65%);filter:blur(20px);top:12%;right:-8%}.lp-panel{position:relative;width:min(400px,82%);background:#141920b8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:16px;box-shadow:0 30px 80px #00000080;padding:1.1rem 1.2rem 1.3rem;display:grid;gap:1rem}.lp-head{display:flex;align-items:center;justify-content:space-between}.lp-live{display:inline-flex;align-items:center;gap:.35rem;font-size:.62rem;font-weight:800;letter-spacing:.1em;color:var(--pos)}.lp-live i{width:7px;height:7px;border-radius:999px;background:var(--pos);box-shadow:0 0 8px var(--pos);animation:lp-pulse 1.8s ease-in-out infinite}.lp-title{font-size:.72rem;color:var(--muted)}.lp-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}.lp-kpi{display:flex;flex-direction:column;gap:.1rem}.lp-kpi b{font-size:1.15rem;color:var(--ink);font-family:var(--mono)}.lp-kpi b.pos{color:var(--pos)}.lp-kpi b.neg{color:var(--neg)}.lp-kpi span{font-size:.6rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.lp-bars{display:flex;align-items:flex-end;gap:6px;height:78px;padding:.3rem .1rem 0;border-bottom:1px solid var(--line-soft)}.lp-bars span{flex:1;border-radius:3px 3px 0 0;background:linear-gradient(180deg,var(--accent),rgba(67,188,207,.35));transform-origin:bottom;animation:lp-grow .7s cubic-bezier(.2,.7,.3,1) both}.lp-rows{display:grid;gap:.4rem}.lp-row{display:flex;align-items:center;justify-content:space-between;font-size:.8rem}.lp-row span{color:var(--muted)}.lp-row b{font-family:var(--mono);color:var(--ink)}.lp-row b.pos{color:var(--pos)}.lp-row b.neg{color:var(--neg)}@keyframes lp-grow{0%{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}@keyframes lp-pulse{0%,to{opacity:1}50%{opacity:.35}}@media (max-width: 860px){.landing{grid-template-columns:1fr}.landing-right{display:none}.landing-left{min-height:100vh}}@media (prefers-reduced-motion: reduce){.lp-bars span,.lp-live i{animation:none}}.error{color:var(--neg);font-size:.82rem;margin:0}.dash{min-height:100%}.dash input[type=text],.dash input[type=password],.dash input:not([type]),.dash input[type=email],.dash select{font-family:var(--sans);font-size:.82rem;color:var(--ink);background:var(--panel-2);border:1px solid var(--line);border-radius:7px;padding:.42rem .55rem}.dash input:focus,.dash select:focus{outline:none;border-color:var(--accent)}.dash input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px}.dash label{color:var(--muted);font-size:.82rem}.dash .card{padding:.85rem}.dash .card>h3{background:none;border:none;padding:0 0 .5rem;font-size:.8rem;letter-spacing:.02em;color:var(--ink);text-transform:none}.dash .card button,.dash button:not(.ghost){font-size:.8rem;font-weight:600;color:#06222a;background:var(--accent);border:none;border-radius:7px;padding:.42rem .7rem;cursor:pointer}.dash .card button:hover,.dash button:not(.ghost):hover{filter:brightness(1.08)}.access{margin-top:.5rem;display:flex;flex-wrap:wrap;gap:.4rem .9rem}.access label{display:inline-flex;align-items:center;gap:.3rem}.callout.amber{border-left-color:var(--edit);color:var(--edit)}.mono-status{display:grid;gap:.4rem}.mono-status-row{display:flex;align-items:baseline;gap:.6rem;font-family:var(--mono);font-size:.85rem}.mono-status-label{min-width:8.5em;color:var(--muted);font-family:var(--sans);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}.monzo-accounts{display:grid;gap:4px;margin-bottom:.3rem}.monzo-account-row{display:flex;align-items:baseline;gap:.6rem;padding:.4rem .55rem;background:var(--panel-2);border:1px solid var(--line-soft);border-radius:6px;font-family:var(--mono);font-size:.82rem}.monzo-account-type{min-width:9em;color:var(--muted);font-family:var(--sans);font-weight:600;font-size:.74rem;text-transform:uppercase;letter-spacing:.05em}.monzo-account-desc{flex:1;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monzo-account-balance{font-weight:700;color:var(--ink)}.monzo-account-label-input{flex:1;min-width:0;font-family:var(--sans);font-size:.8rem;color:var(--ink);background:var(--panel-3);border:1px solid var(--line);border-radius:6px;padding:.32rem .5rem}.monzo-account-label-input::placeholder{color:var(--faint);font-style:italic}.monzo-account-label-input:focus{outline:none;border-color:var(--accent)}.mapping-table{border-collapse:collapse;width:100%;min-width:480px}.mapping-table th,.mapping-table td{padding:.35rem .5rem;text-align:left;font-size:.8rem;border-bottom:1px solid var(--line-soft)}.mapping-table th{color:var(--muted);font-weight:600;font-size:.68rem;text-transform:uppercase;letter-spacing:.07em}.mapping-table input,.mapping-table select{width:100%}.tx-fx-original{color:var(--muted);font-size:.72rem;font-weight:400;margin-top:1px}.mapping-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.mapping-table th.sortable:hover{color:var(--ink)}.sort-arrow{display:inline-block;margin-left:.3em;color:var(--accent);font-size:.7em}.filter-dropdown{position:relative;display:inline-block}.filter-panel{position:absolute;top:calc(100% + 4px);left:0;z-index:30;min-width:200px;max-height:260px;overflow-y:auto;display:grid;gap:2px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r);padding:.4rem;box-shadow:0 12px 32px #0006}.filter-panel-row{display:flex;align-items:center;gap:.5rem;padding:.3rem .4rem;border-radius:5px;font-size:.8rem;color:var(--ink);cursor:pointer;white-space:nowrap}.filter-panel-row:hover{background:var(--panel-3)}.pencil-btn{flex:0 0 auto;width:1.7rem;height:1.7rem;line-height:1;font-size:.78rem;color:var(--muted);cursor:pointer;background:var(--panel-3);border:1px solid var(--line);border-radius:6px}.pencil-btn:hover{color:var(--ink);border-color:var(--accent-dim)}.monzo-account-edit{flex:1;display:flex;align-items:center;gap:.4rem;min-width:0}.monzo-account-edit .ghost{font-size:.74rem;padding:.3rem .5rem}.txn-toolbar{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-bottom:.7rem}.summary-table{min-width:280px;margin-bottom:.8rem}.txn-workspace{display:flex;gap:.8rem;align-items:flex-start}.filter-sidebar{flex:0 0 200px;width:200px;min-width:0;display:flex;flex-direction:column;gap:2px;background:var(--panel-2);border:1px solid var(--line-soft);border-radius:var(--r);padding:.5rem;max-height:680px;overflow-y:auto}.filter-sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:.4rem;padding:0 .2rem .45rem;margin-bottom:.3rem;border-bottom:1px solid var(--line-soft);font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.filter-reset{font-size:.66rem;font-weight:600;text-transform:none;letter-spacing:0;padding:.12rem .4rem}.filter-group{border-bottom:1px solid var(--line-soft)}.filter-group:last-child{border-bottom:none}.filter-group-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.4rem;background:transparent;border:none;color:var(--ink);font-size:.78rem;font-weight:600;padding:.5rem .2rem;cursor:pointer;text-align:left}.filter-group-toggle:hover{color:var(--accent)}.filter-count{font-family:var(--mono);font-size:.66rem;font-weight:400;color:var(--muted)}.filter-group-toggle .filter-count{color:#06222ab8}.filter-group-body{display:grid;gap:1px;padding:0 0 .5rem .2rem;max-height:190px;overflow-y:auto}.filter-popout-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#00000073}.filter-popout{position:fixed;z-index:61;left:50%;top:8vh;transform:translate(-50%);width:min(920px,94vw);max-height:84vh;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 50px #0000008c;overflow:hidden}.filter-popout-head{display:flex;align-items:center;gap:.6rem;padding:.7rem .85rem;border-bottom:1px solid var(--line-soft)}.filter-popout-head b{font-size:.95rem}.filter-popout-head .spacer{flex:1}.filter-popout-search{margin:.7rem .85rem 0;padding:.5rem .6rem;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;color:var(--ink);font-size:.85rem}.filter-popout-grid{flex:1;overflow-y:auto;padding:.7rem .85rem;display:grid;gap:2px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));align-content:start}.filter-popout-foot{display:flex;align-items:center;gap:.5rem;padding:.7rem .85rem;border-top:1px solid var(--line-soft)}.filter-popout-foot .spacer{flex:1}.txn-main{flex:1;min-width:0}.txn-main-toolbar{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}button.ghost.active{color:var(--ink);border-color:var(--accent-dim);background:var(--panel-3)}.bulk-bar{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;background:var(--panel-3);border:1px solid var(--line);border-radius:7px;padding:.5rem .65rem;margin-bottom:.55rem;font-size:.8rem;color:var(--ink)}.bulk-bar select{min-width:10em}.txn-cat-select{font-size:.75rem;padding:.28rem .4rem}@media (max-width: 900px){.txn-workspace{flex-direction:column}.filter-sidebar{width:100%;flex:0 0 auto;max-height:320px}}@media (max-width: 900px){.switcher{max-width:40vw}.layout{flex-direction:column}.sidebar{flex:0 0 auto;width:100%;max-height:none;position:sticky;top:49px;z-index:10;flex-direction:row;overflow-x:auto;overflow-y:hidden;gap:4px;padding:.55rem .7rem;border-right:none;border-bottom:1px solid var(--line-soft);background:#10141aeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.sidebar button{flex:0 0 auto;border-left:none;border-bottom:2px solid transparent;border-radius:6px;background:var(--panel-2)}.sidebar button.active{border-bottom-color:var(--accent)}.home-grid{grid-template-columns:1fr}}@media (max-width: 640px){body{font-size:13px}.topbar{flex-wrap:wrap;gap:.5rem;padding:.5rem .7rem}.switchers{order:3;width:100%}.switcher{max-width:none;flex:1}.periods{flex:1}main,.content{padding:.7rem .7rem 2.5rem}.cards{grid-template-columns:1fr}.kpi-tiles,.home-kpis{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.card{padding:.7rem .75rem}.txn-toolbar>label{flex:1 1 100%}.txn-toolbar input[type=text]{flex:1 1 100%;min-width:0!important}.rules-form{gap:.35rem}.rules-form select,.rules-form input{flex:1 1 8em;min-width:0!important}.chart-controls{margin-left:0;width:100%}.chart-controls select{flex:1}.chart-head-row{flex-wrap:wrap}.banks-panel{width:min(340px,94vw)}.cal-popover{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);max-height:90vh;overflow-y:auto;width:min(20rem,94vw)}.cal{width:100%}.filter-popout-grid{grid-template-columns:1fr 1fr}}.dash .layout .sidebar button{background:transparent;color:var(--muted);border:none;border-left:2px solid transparent;border-radius:0 6px 6px 0;font-weight:600}.dash .layout .sidebar button:hover{background:var(--panel-2);color:var(--ink)}.dash .layout .sidebar button.active{background:var(--panel-2);color:var(--ink);border-left-color:var(--accent)}@media (max-width: 900px){.dash .layout .sidebar button{background:var(--panel-2);border-left:none;border-bottom:2px solid transparent;border-radius:6px}.dash .layout .sidebar button.active{border-bottom-color:var(--accent)}}.providers{display:grid;gap:10px;margin-top:.3rem;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.provider-tile{background:var(--panel-2);border:1px solid var(--line-soft);border-radius:8px;padding:.7rem .8rem;display:flex;flex-direction:column;gap:.45rem}.provider-tile.disabled{opacity:.7}.provider-head{display:flex;align-items:center;gap:.45rem;font-weight:650}.provider-blurb{margin:0;color:var(--muted);font-size:.78rem;line-height:1.35}.pill{align-self:flex-start;font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--panel-3);border:1px solid var(--line);border-radius:999px;padding:.16rem .5rem}.pill.ok{color:#06242a;background:var(--pos);border-color:transparent}.provider-note{margin:.6rem 0 0;color:var(--faint);font-size:.74rem}.banks-menu{position:relative;display:inline-flex}.banks-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.banks-panel{position:absolute;top:calc(100% + .4rem);right:0;z-index:50;width:min(340px,90vw);max-height:70vh;overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.7rem;box-shadow:0 12px 34px #00000080;display:flex;flex-direction:column;gap:10px}.banks-panel .provider-note{margin:0}.collapse-toggle{display:inline-flex;align-items:center;gap:.5rem;background:transparent;border:none;padding:0;cursor:pointer;color:inherit;font:inherit}.collapse-toggle:hover{color:var(--accent)}.collapse-caret{font-size:.8em;color:var(--muted);width:1em}.cell-variance{margin-top:2px;font-size:.64rem;line-height:1.25;white-space:nowrap}.cell-target-label{color:var(--faint)}.cell-delta{display:block;color:var(--muted);font-family:var(--mono)}.cell-delta.flat{color:var(--faint)}.cell-target-input{margin-top:3px;width:100%;min-width:4.5rem;font-family:var(--mono);font-size:.72rem;color:var(--edit);background:var(--panel-3);border:1px dashed var(--line);border-radius:5px;padding:.18rem .35rem}.cell-target-input::placeholder{color:var(--faint);font-style:italic}.cell-target-input:focus{outline:none;border-style:solid;border-color:var(--accent)}.cell-target-input.saving{opacity:.6}.cal-anchor{position:relative;display:inline-flex}.range-chip{display:inline-flex;align-items:center;gap:.4rem;font-size:.76rem;color:var(--ink);background:var(--panel-3);border:1px solid var(--line);border-radius:999px;padding:.2rem .3rem .2rem .6rem}.range-chip-x{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:.8rem;line-height:1;padding:0 .2rem}.range-chip-x:hover{color:var(--neg)}.cal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60}.cal-popover{position:absolute;top:calc(100% + .4rem);left:0;z-index:61;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 50px #0000008c;padding:.8rem}.cal-cols{display:flex;gap:1.2rem}@media (max-width: 620px){.cal-cols{flex-direction:column;gap:.8rem}}.cal{width:15rem}.cal-nav-row{display:flex;align-items:center;justify-content:space-between;gap:.4rem}.cal-popover .cal-nav-row .cal-nav,.cal-popover .cal-my-year .cal-nav{background:transparent;border:1px solid var(--line);border-radius:6px;color:var(--muted);font-size:.9rem;line-height:1;padding:.1rem .5rem;cursor:pointer;min-width:0}.cal-popover .cal-nav:hover:not(:disabled){color:var(--ink);border-color:var(--accent-dim)}.cal-popover .cal-nav:disabled{opacity:.3;cursor:default}.cal-popover .cal-nav-row .cal-title-btn{background:transparent;border:none;color:var(--ink);font-size:.82rem;font-weight:650;cursor:pointer;padding:.1rem .3rem;border-radius:6px}.cal-popover .cal-nav-row .cal-title-btn:hover{color:var(--accent)}.cal-title{font-size:.82rem;font-weight:650;color:var(--ink)}.cal-sublabel{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:.3rem 0 .35rem}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-wd{text-align:center;font-size:.6rem;font-weight:700;color:var(--faint);padding:.2rem 0}.cal-popover .cal-grid .cal-cell{aspect-ratio:1 / 1;width:100%;display:flex;align-items:center;justify-content:center;font-size:.76rem;font-weight:500;color:var(--ink);cursor:pointer;background:transparent;border:1px solid transparent;border-radius:6px;padding:0}.cal-popover .cal-grid .cal-cell.empty{cursor:default}.cal-popover .cal-grid .cal-cell:not(.empty):not(:disabled):hover{background:var(--panel-3);border-color:var(--line)}.cal-popover .cal-grid .cal-cell:disabled{color:var(--faint);opacity:.35;cursor:default}.cal-popover .cal-grid .cal-cell.sel{background:var(--accent);color:#06242a;font-weight:700;border-color:transparent}.cal-my{min-height:12.6rem}.cal-my-year{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.cal-my-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.cal-popover .cal-my-grid .cal-my-cell{padding:.5rem 0;font-size:.78rem;color:var(--ink);cursor:pointer;background:var(--panel-2);border:1px solid var(--line-soft);border-radius:7px}.cal-popover .cal-my-grid .cal-my-cell:hover:not(:disabled){border-color:var(--accent-dim)}.cal-popover .cal-my-grid .cal-my-cell:disabled{opacity:.3;cursor:default}.cal-popover .cal-my-grid .cal-my-cell.sel{background:var(--accent);color:#06242a;font-weight:700;border-color:transparent}.cal-foot{display:flex;align-items:center;gap:.5rem;margin-top:.7rem}.cal-foot .spacer{flex:1}.cal-range-label{font-family:var(--mono);font-size:.74rem;color:var(--muted)}.int-tabs{display:flex;gap:.4rem;margin-bottom:.8rem;border-bottom:1px solid var(--line-soft)}.int-tabs button{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--muted);font-weight:650;font-size:.9rem;padding:.5rem .8rem;cursor:pointer;border-radius:0}.int-tabs button:hover{color:var(--ink)}.int-tabs button.active{color:var(--ink);border-bottom-color:var(--accent)}.rota-range{display:flex;gap:1rem;margin:.4rem 0 .6rem;font-size:.8rem;color:var(--muted)}.rota-range input{margin-left:.3rem}.rota-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin:.3rem 0 .5rem}.rota-kpi{background:var(--panel-2);border:1px solid var(--line-soft);border-radius:8px;padding:.55rem .7rem;display:flex;flex-direction:column;gap:.1rem}.rota-kpi b{font-size:1.15rem;color:var(--ink)}.rota-kpi span{font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.rota-tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin:.5rem 0}.rota-cal{display:grid;gap:8px;margin-top:.4rem;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.rota-cal-day{background:var(--panel-2);border:1px solid var(--line-soft);border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.rota-cal-head{display:flex;align-items:center;justify-content:space-between;padding:.35rem .5rem;background:var(--panel-3);border-bottom:1px solid var(--line-soft);font-size:.74rem;font-weight:650;color:var(--ink)}.rota-cal-total{font-family:var(--mono);font-size:.7rem;color:var(--accent)}.rota-cal-body{display:flex;flex-direction:column;gap:3px;padding:.4rem;max-height:300px;overflow-y:auto}.rota-shift{display:flex;flex-direction:column;gap:1px;background:var(--panel-3);border-left:3px solid var(--accent);border-radius:4px;padding:.25rem .4rem;font-size:.72rem}.rota-shift-time{font-family:var(--mono);color:var(--ink)}.rota-shift-who{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rota-shift-role{color:var(--muted);font-size:.66rem}.rota-mapping{margin-top:.8rem;border-top:1px solid var(--line-soft);padding-top:.7rem}.rota-map-row{display:flex;align-items:center;gap:.5rem;margin-bottom:4px;font-size:.82rem}.rota-map-metric{min-width:9rem;color:var(--ink)}.rota-map-row input{flex:1;min-width:0}.rota-sync-bar{display:flex;align-items:center;gap:.5rem;margin-top:.6rem;flex-wrap:wrap}.rota-explorer{margin-top:.8rem;border-top:1px solid var(--line-soft);padding-top:.7rem}.rota-explorer .mapping-table td{max-width:22rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rota-json{max-height:340px;overflow:auto;margin:.5rem 0 0;background:var(--panel-2);border:1px solid var(--line-soft);border-radius:8px;padding:.6rem;font-family:var(--mono);font-size:.74rem;color:var(--ink)}@media (max-width: 640px){.rota-map-row{flex-wrap:wrap}.rota-map-metric{min-width:100%}}.rules-panel{background:var(--panel-2);border:1px solid var(--line-soft);border-radius:var(--r);padding:.6rem .7rem;margin-bottom:.9rem}.rules-body{margin-top:.5rem;display:flex;flex-direction:column;gap:.6rem}.rules-hint{margin:0;color:var(--muted);font-size:.76rem}.rules-form{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.8rem;color:var(--muted)}.rules-form select,.rules-form input{font-size:.8rem}.rules-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.rule-row{display:flex;align-items:center;gap:.5rem;background:var(--panel-3);border:1px solid var(--line-soft);border-radius:7px;padding:.35rem .55rem;font-size:.8rem}.rule-text{flex:1;color:var(--ink)}.rule-text code{font-family:var(--mono);font-size:.76rem;background:var(--panel);border:1px solid var(--line-soft);border-radius:4px;padding:0 .3rem}.rule-cat{color:var(--accent);font-weight:600}.rule-badge{margin-left:.4rem;font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);border:1px solid var(--accent-dim);border-radius:4px;padding:0 .25rem;vertical-align:middle}.charts-row{display:grid;gap:14px;margin-bottom:.9rem;grid-template-columns:1fr 1fr;align-items:start}@media (max-width: 900px){.charts-row{grid-template-columns:1fr}}.chart-card{background:var(--panel-2);border:1px solid var(--line-soft);border-radius:var(--r);padding:.6rem .7rem}.chart-head-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.chart-head{margin-bottom:0;font-size:.8rem;font-weight:650}.chart-controls{margin-left:auto;display:flex;gap:.4rem}.chart-controls select{font-size:.74rem;padding:.28rem 1.5rem .28rem .5rem}.chart-empty{color:var(--muted);font-size:.8rem;padding:1.2rem .2rem}.holdings-table{border-collapse:collapse;width:auto;max-width:100%}.holdings-table th,.holdings-table td{padding:.4rem .55rem;text-align:left;font-size:.82rem;border-bottom:1px solid var(--line-soft)}.holdings-table .num{padding-left:2.5rem}.holdings-table th{color:var(--muted);font-weight:600;font-size:.68rem;text-transform:uppercase;letter-spacing:.07em}.holdings-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.holdings-table th.sortable:hover{color:var(--ink)}.holdings-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.holdings-table tbody td{color:var(--ink)}.holdings-table tfoot td{font-weight:700;color:var(--ink);border-top:2px solid var(--line);border-bottom:none;padding-top:.55rem}.holding-name{display:inline-flex;align-items:center;gap:.4rem}.kind-tag{display:inline-block;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.14rem .45rem;border-radius:999px;border:1px solid var(--line);color:var(--muted);background:var(--panel-3)}.kind-tag.pot{color:#06242a;background:var(--accent);border-color:transparent}.kind-tag.acct{color:var(--ink)}@media (prefers-reduced-motion: reduce){*{transition:none!important}}
