.portal{--mono:var(--font-ibm-plex-mono),monospace;--body-font:var(--font-inter),sans-serif;--display:var(--font-fraunces),serif;--radius:12px;font-family:var(--body-font);background:var(--color-paper);color:var(--color-ink);display:flex;min-height:100vh}.portal *{box-sizing:border-box}.portal button{cursor:pointer}.portal button,.portal input,.portal select{font-family:inherit}.sidebar{width:216px;background:var(--color-ink);color:#e9eee9;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:20}.brand{padding:22px 20px 18px;border-bottom:1px solid rgba(255,255,255,.08)}.brand .logo{font-family:var(--display);font-size:1.25rem;font-weight:600}.brand .logo em{font-style:normal;color:#7fd4a8}.brand .sub{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:#8fa398;margin-top:3px}.nav{padding:14px 10px;flex:1;display:flex;flex-direction:column}.nav .nav-bottom{margin-top:auto}.nav a{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:9px;color:#b9c6bd;text-decoration:none;font-size:.9rem;font-weight:500;margin-bottom:2px;border:none;background:none;width:100%;text-align:left}.nav a svg{width:17px;height:17px;flex:none;opacity:.85}.nav a:hover{background:rgba(255,255,255,.06);color:#fff}.nav a.active{background:var(--color-accent);color:#fff}.nav a.disabled{opacity:.45;cursor:default}.nav .grp-btn,.nav a.disabled:hover{background:none;color:#b9c6bd}.nav .grp-btn{display:flex;align-items:center;gap:11px;width:100%;padding:11px 12px;border:none;border-radius:9px;font-size:.9rem;font-weight:500;font-family:inherit;cursor:pointer;margin-bottom:2px;text-align:left}.nav .grp-btn:hover{background:rgba(255,255,255,.06);color:#fff}.nav .grp-btn.open{color:#fff}.nav .grp-btn svg.lead{width:17px;height:17px;flex:none;opacity:.85}.nav .grp-btn .chev{margin-left:auto;width:15px;height:15px;transition:transform .18s;opacity:.7}.nav .grp-btn.open .chev{transform:rotate(90deg)}.nav .submenu{display:none;position:relative;margin:0 0 4px 20px;padding-left:14px}.nav .submenu.open{display:block}.nav .submenu:before{content:"";position:absolute;left:0;top:6px;bottom:10px;width:1.5px;background:rgba(255,255,255,.12)}.nav .submenu a{position:relative;display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;color:#9fb0a4;text-decoration:none;font-size:.86rem;font-weight:500;margin-bottom:1px;width:100%}.nav .submenu a .dot{width:6px;height:6px;border-radius:50%;background:#5b6e62;flex:none}.nav .submenu a:hover{background:rgba(255,255,255,.06);color:#fff}.nav .submenu a.active{background:var(--color-accent);color:#fff}.nav .submenu a.active .dot{background:#fff}.side-foot{padding:14px 16px;border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:10px}.avatar{width:32px;height:32px;border-radius:50%;background:var(--color-accent);display:grid;place-items:center;font-weight:600;font-size:.8rem;color:#fff;flex:none}.side-foot .who b{display:block;font-size:.82rem;color:#fff}.side-foot .who span{font-size:.7rem;color:#8fa398}.side-foot .signout{margin-left:auto;flex:none;width:32px;height:32px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);color:#b9c6bd;display:grid;place-items:center}.side-foot .signout svg{width:16px;height:16px}.side-foot .signout:hover{background:rgba(196,64,46,.22);border-color:rgba(196,64,46,.5);color:#f0b79e}.main{margin-left:216px;flex:1;display:flex;flex-direction:column;min-width:0}.topbar{background:var(--color-card);border-bottom:1px solid var(--color-line);padding:0 26px;display:flex;align-items:center;gap:12px;height:60px;position:sticky;top:0;z-index:10}.topbar h1{font-family:var(--display);font-size:1.15rem;font-weight:600}.rate-chip{margin-left:auto;display:flex;align-items:center;gap:8px;background:var(--color-gold-bg);color:var(--color-gold);border:1px solid #e7d9b4;border-radius:99px;padding:6px 13px;font-size:.76rem;font-weight:600;white-space:nowrap}.rate-chip .m{font-family:var(--mono)}.btn{border:none;border-radius:9px;padding:9px 16px;font-size:.85rem;font-weight:600}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover{background:#0e5c3b}.btn-primary:disabled{opacity:.6;cursor:default}.btn-ghost{background:transparent;border:1px solid var(--color-line);color:var(--color-ink-soft)}.btn-ghost:hover{border-color:var(--color-accent);color:var(--color-accent)}.btn-inapp{background:var(--color-play-bg);color:var(--color-play);border:1px solid #c9d6ea}.btn-inapp:hover{background:#dce6f5}.filterbar{display:flex;align-items:center;gap:14px;padding:16px 26px 4px;background:var(--color-paper)}.filterbar .flabel{font-size:.9rem;color:var(--color-muted);font-weight:500}.dropdown{position:relative}.pill{display:inline-flex;align-items:center;gap:8px;background:var(--color-card);border-style:solid;color:var(--color-accent);border-radius:99px;padding:8px 16px;font-size:.85rem;font-weight:600;line-height:1;border:1.5px solid var(--color-accent)}.pill:hover{background:var(--color-accent-soft)}.pill .pill-k{color:var(--color-accent);opacity:.75;font-weight:500}.pill .chev{width:15px;height:15px;transition:transform .18s}.dropdown.open .pill{background:var(--color-accent-soft)}.dropdown.open .pill .chev{transform:rotate(180deg)}.menu{position:absolute;top:calc(100% + 8px);left:0;width:252px;background:var(--color-card);border:1px solid var(--color-line);border-radius:12px;box-shadow:0 14px 34px rgba(20,32,26,.16);padding:12px;z-index:30}.menu.menu-wide{width:340px}.menu-foot{margin-top:10px;padding-top:10px;border-top:1px solid var(--color-line)}.content{padding:20px 26px 48px;display:flex;flex-direction:column;gap:20px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.kpi{background:var(--color-card);border:1px solid var(--color-line);border-radius:var(--radius);padding:16px 18px 14px;position:relative;overflow:hidden}.kpi .lbl{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted);font-weight:600}.kpi .val{font-family:var(--display);font-size:1.7rem;font-weight:600;margin-top:6px;font-variant-numeric:tabular-nums}.kpi .sub{font-family:var(--mono);font-size:.72rem;color:var(--color-muted);margin-top:4px}.kpi.pos .val{color:var(--color-profit)}.kpi.neg .val{color:var(--color-loss)}.kpi .spark{position:absolute;right:12px;bottom:10px;opacity:.9}.panel{background:var(--color-card);border:1px solid var(--color-line);border-radius:var(--radius)}.panel-h{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--color-line)}.panel-h h2{font-size:.95rem;font-weight:700}.panel-h .right{margin-left:auto;display:flex;gap:8px;align-items:center}.accounts{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.acard{background:var(--color-card);border:1px solid var(--color-line);border-radius:var(--radius);padding:15px 16px}.acard .top{display:flex;align-items:center;gap:9px;margin-bottom:4px}.acard .top b{font-size:.88rem}.acard .top .tag{margin-left:auto;font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted);border:1px solid var(--color-line);border-radius:5px;padding:2px 6px}.acard .subrow{display:flex;gap:6px;margin-bottom:11px}.acard .badge{font-size:.6rem;letter-spacing:.05em;text-transform:uppercase;font-weight:700;border-radius:5px;padding:2px 7px;background:#f1f4ef;color:var(--color-ink-soft)}.acard .badge.cur{background:var(--color-gold-bg);color:var(--color-gold)}.acard dl{display:grid;grid-template-columns:auto 1fr;gap:5px 10px;font-size:.76rem}.acard dt{color:var(--color-muted)}.acard dd{font-family:var(--mono);text-align:right;font-weight:500}.acard dd.iap{color:var(--color-play)}.acard dd .eq{color:var(--color-muted);font-weight:400}.acard .bar{height:5px;border-radius:99px;background:#edf0ea;margin-top:12px;overflow:hidden}.acard .bar i{display:block;height:100%;border-radius:99px}.acard .roi{margin-top:8px;font-family:var(--mono);font-size:.78rem;font-weight:600}.acard .roi.pos{color:var(--color-profit)}.acard .roi.neg{color:var(--color-loss)}.dot{width:9px;height:9px;border-radius:50%;flex:none;display:inline-block}.tbl-wrap{overflow-x:auto}.portal table{width:100%;border-collapse:collapse;font-size:.8rem}.portal thead th{position:sticky;top:0;background:#f1f4ef;text-align:right;padding:10px 12px;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-soft);border-bottom:1px solid var(--color-line);white-space:nowrap}.th-sort{background:none;border:none;padding:0;margin:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.th-sort.active,.th-sort:hover{color:var(--color-accent)}.th-arrow{font-size:.6rem}.portal tbody td.l,.portal tbody td:first-child,.portal thead th.l,.portal thead th:first-child{text-align:left}.portal tbody td{padding:9px 12px;border-bottom:1px solid #edf0ea;font-family:var(--mono);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.portal tbody td.date{font-weight:600;color:var(--color-ink-soft)}.portal tbody td.date,.portal tbody td.l{font-family:var(--body-font)}.portal tbody tr:hover{background:#fafbf8}.portal tbody tr.iap-row{background:rgba(58,95,168,.06)}.portal tbody tr.iap-row:hover{background:rgba(58,95,168,.1)}.iap-monthly-tag{font-family:var(--body-font);font-size:.62rem;letter-spacing:.04em;text-transform:uppercase;font-weight:600;color:var(--color-play);margin-top:2px}.iap-badge{display:inline-flex;align-items:center;gap:4px;font-size:.66rem;letter-spacing:.02em;font-weight:700;background:var(--color-play-bg);color:var(--color-play);white-space:nowrap}.iap-badge,.portal td .pl{border-radius:6px;padding:2px 8px}.portal td .pl{font-weight:600;display:inline-block;min-width:74px}.portal td .pl.pos{background:var(--color-profit-bg);color:var(--color-profit)}.portal td .pl.neg{background:var(--color-loss-bg);color:var(--color-loss)}.portal tfoot td{padding:11px 12px;font-family:var(--mono);font-weight:600;text-align:right;background:#f1f4ef;border-top:2px solid var(--color-line);white-space:nowrap}.portal tfoot td:first-child{text-align:left;font-family:var(--body-font)}.acct-filter{border:1px solid var(--color-line);border-radius:8px;padding:7px 10px;font-size:.8rem;background:var(--color-card)}.row-actions-inner{display:inline-flex;align-items:center;gap:10px}.row-select-chk{width:15px;height:15px;accent-color:var(--color-accent);cursor:pointer}.ledger-bulk-bar{display:flex;align-items:center;gap:14px;padding:10px 18px;background:var(--color-accent-soft);border-bottom:1px solid var(--color-line);font-size:.85rem;font-weight:600;color:var(--color-accent)}.ledger-bulk-bar .btn-danger{margin-left:auto}.overlay{position:fixed;inset:0;background:rgba(20,32,26,.55);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;z-index:60;padding:40px 16px;overflow-y:auto}.modal{background:var(--color-card);border-radius:16px;width:100%;max-width:620px;box-shadow:0 24px 60px rgba(0,0,0,.28)}.modal-h{display:flex;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid var(--color-line)}.modal-h h2{font-family:var(--display);font-size:1.2rem;font-weight:600}.modal-h .x{margin-left:auto;background:none;border:none;color:var(--color-muted);font-size:1.4rem;line-height:1;padding:2px 6px;border-radius:6px}.modal-h .x:hover{background:#f1f4ef;color:var(--color-ink)}.modal-b{padding:20px 22px;display:flex;flex-direction:column;gap:16px}.modal-f{display:flex;align-items:center;gap:12px;padding:16px 22px;border-top:1px solid var(--color-line);background:#fbfcfa;border-radius:0 0 16px 16px}.modal-f .btn-primary{margin-left:auto}.sec{border:1px solid var(--color-line);border-radius:12px;overflow:hidden}.sec-h{display:flex;align-items:center;gap:9px;padding:11px 15px;font-weight:700;font-size:.85rem}.sec-h.income{background:var(--color-accent-soft);color:var(--color-accent)}.sec-h.spend{background:var(--color-gold-bg);color:var(--color-gold)}.sec-h.play{background:var(--color-play-bg);color:var(--color-play)}.sec-b{padding:15px;display:flex;flex-direction:column;gap:13px}.grid2{grid-template-columns:1fr 1fr}.grid2,.grid3{display:grid;gap:12px}.grid3{grid-template-columns:1fr 1fr 1fr}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted);font-weight:600}.field .unit{position:relative}.field .unit span{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--color-muted);font-family:var(--mono);font-size:.82rem;pointer-events:none}.field input,.field select,.field textarea{border:1px solid var(--color-line);border-radius:8px;padding:9px 11px;font-size:.88rem;background:#fcfdfb;width:100%;font-family:inherit}.field textarea{resize:vertical;min-height:56px}.field .unit input{padding-left:30px;font-family:var(--mono)}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--color-accent);outline-offset:1px;border-color:var(--color-accent)}.image-upload{display:flex;align-items:center;gap:12px}.image-thumb,.image-thumb-empty{width:44px;height:44px;border-radius:11px;flex:none;object-fit:cover}.image-thumb-empty{background:var(--color-muted)}.image-upload-actions{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px}.image-upload-btn{border:1px solid var(--color-line);border-radius:8px;padding:7px 12px;font-size:.8rem;font-weight:600;background:#fcfdfb;cursor:pointer}.image-upload-btn:hover{border-color:var(--color-accent)}.image-upload-hint{flex-basis:100%;font-size:.72rem;color:var(--color-muted)}.conv{font-family:var(--mono);font-size:.75rem;color:var(--color-muted);margin-top:2px}.spend-row{position:relative;padding:12px 38px 12px 12px;border:1px solid var(--color-line);border-radius:10px;background:#fbfcfa}.spend-row-remove{position:absolute;top:10px;right:10px;width:22px;height:22px;border-radius:6px;border:1px solid var(--color-line);background:var(--color-card);color:var(--color-ink-soft);font-size:1rem;line-height:1;cursor:pointer}.spend-row-remove:hover{border-color:var(--color-danger);color:var(--color-danger)}.add-spend-row-btn{align-self:flex-start;border:1px dashed var(--color-line);border-radius:8px;background:transparent;color:var(--color-accent);font-size:.8rem;font-weight:600;padding:7px 12px;cursor:pointer}.add-spend-row-btn:hover{border-color:var(--color-accent);background:var(--color-accent-soft)}.calc{display:flex;flex-direction:column;gap:8px;background:#f6f8f5;border:1px dashed var(--color-line);border-radius:10px;padding:13px 15px}.calc .row{display:flex;justify-content:space-between;align-items:center;font-size:.83rem}.calc .row .k{color:var(--color-ink-soft)}.calc .row .v{font-family:var(--mono);font-weight:600}.calc .row.big{padding-top:9px;border-top:1px solid var(--color-line);font-size:.95rem}.calc .row.big .k,.calc .verdict{font-weight:700}.calc .verdict{font-family:var(--mono);border-radius:7px;padding:4px 11px;font-size:.9rem}.verdict.pos{background:var(--color-profit-bg);color:var(--color-profit)}.verdict.neg{background:var(--color-loss-bg);color:var(--color-loss)}.verdict.zero{background:#eef1ec;color:var(--color-muted)}.acct-editor{display:flex;flex-direction:column;gap:8px}.acct-row{display:flex;align-items:center;gap:8px}.acct-row .cdot{width:22px;height:22px;border-radius:6px;flex:none;border:1px solid rgba(0,0,0,.08);cursor:pointer;padding:0}.acct-row input{flex:1;min-width:0;padding:9px 11px;font-size:.85rem}.acct-row input,.acct-row select{border:1px solid var(--color-line);border-radius:8px;background:#fcfdfb}.acct-row select{flex:none;width:88px;padding:9px 8px;font-size:.82rem}.acct-row input:focus,.acct-row select:focus{outline:2px solid var(--color-accent);outline-offset:1px;border-color:var(--color-accent)}.acct-row .del{background:none;border:none;color:var(--color-muted);border-radius:7px;padding:6px 8px;font-size:1.05rem;line-height:1;flex:none}.acct-row .del:hover{background:var(--color-loss-bg);color:var(--color-loss)}.add-row{margin-top:2px;font-size:.82rem}.add-row,.set-tabs{align-self:flex-start}.set-tabs{display:inline-flex;gap:4px;background:var(--color-card);border:1px solid var(--color-line);border-radius:11px;padding:4px}.set-tabs button{border:none;background:none;padding:9px 18px;border-radius:8px;font-size:.85rem;font-weight:600;color:var(--color-muted)}.set-tabs button:hover{color:var(--color-accent)}.set-tabs button.on{background:var(--color-accent);color:#fff}.set-panel{gap:16px}.set-body,.set-panel{display:flex;flex-direction:column}.set-body{padding:16px 18px;gap:12px}.set-body .hint{font-size:.78rem;color:var(--color-muted);margin-bottom:2px}.set-save{position:sticky;bottom:0;background:linear-gradient(transparent,var(--color-paper) 30%);padding:16px 0 6px;display:flex;gap:12px;align-items:center;margin-top:6px}.set-save .note{font-size:.8rem;color:var(--color-muted)}.set-save .btn-primary{margin-left:auto}.toast{position:fixed;bottom:24px;right:24px;background:var(--color-ink);color:#fff;padding:12px 18px;border-radius:10px;font-size:.85rem;display:flex;gap:10px;align-items:center;transform:translateY(80px);opacity:0;transition:all .3s;z-index:80;pointer-events:none}.toast.show{transform:none;opacity:1}.toast svg{color:#7fd4a8}.dash-top{display:grid;grid-template-columns:340px 1fr;gap:16px;align-items:stretch}.goal-card{background:var(--color-card);border:1px solid var(--color-line);border-radius:var(--radius);padding:20px 22px;display:flex;flex-direction:column}.goal-card .gc-h{display:flex;align-items:center;gap:8px;margin-bottom:6px}.goal-card .gc-h h3{font-size:.95rem;font-weight:700}.goal-card .gauge{position:relative;width:100%;max-width:260px;margin:6px auto 2px;aspect-ratio:2/1.15}.goal-card .gauge .g-pct{position:absolute;left:0;right:0;bottom:6px;text-align:center}.goal-card .gauge .g-pct .p{font-family:var(--display);font-size:2.3rem;font-weight:600;line-height:1}.goal-card .gauge .g-pct .of{font-size:.78rem;color:var(--color-muted);margin-top:2px}.goal-card .gc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:8px;padding-top:14px;border-top:1px solid var(--color-line)}.goal-card .gc-stat{text-align:center}.goal-card .gc-stat .k{font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted);font-weight:600}.goal-card .gc-stat .v{font-family:var(--display);font-size:1.15rem;font-weight:600;margin-top:4px}.goal-card .gc-stat .v.need{color:var(--color-gold)}.goal-card .gc-foot{text-align:center;font-size:.8rem;color:var(--color-muted);margin-top:12px}.goal-card .gc-foot b{color:var(--color-ink)}.goal-card.off{align-items:center;justify-content:center;text-align:center;color:var(--color-muted)}.kpis-dash{grid-template-columns:repeat(2,1fr)}.kpis-dash .kpi{text-align:center;display:flex;flex-direction:column;justify-content:space-between;min-height:150px}.kpis-dash .kpi .val{margin:auto 0}@media (max-width:900px){.dash-top{grid-template-columns:1fr}.kpis-dash{grid-template-columns:repeat(2,1fr)}}.rev-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.rev-charts{display:grid;grid-template-columns:1.5fr 1fr;gap:16px}@media (max-width:960px){.rev-charts{grid-template-columns:1fr}.rev-kpis{grid-template-columns:repeat(2,1fr)}}.mini-pill{font-size:.74rem;font-weight:600;color:var(--color-ink-soft);border:1px solid var(--color-line);border-radius:99px;padding:5px 12px;background:#f6f8f5}.panel-chart{display:flex;flex-direction:column}.chart-wrap{padding:16px 12px 8px;flex:1;display:flex;align-items:center}.chart-wrap>div{width:100%}.donut-wrap{padding:18px;flex:1;display:flex;align-items:center;gap:18px;flex-wrap:wrap;justify-content:center}.trend-tooltip{position:absolute;transform:translate(-50%,-115%);background:var(--color-card);border:1px solid var(--color-line);border-radius:8px;padding:6px 10px;box-shadow:0 4px 14px rgba(0,0,0,.1);pointer-events:none;white-space:nowrap}.trend-tooltip .tt-date{font-size:.66rem;color:var(--color-muted)}.trend-tooltip .tt-value{font-family:var(--mono);font-weight:600;font-size:.85rem;color:var(--color-ink)}.donut-legend{display:flex;flex-direction:column;gap:9px;min-width:150px}.donut-legend .lg{display:flex;align-items:center;gap:9px;font-size:.82rem}.donut-legend .lg .sw{width:10px;height:10px;border-radius:3px;flex:none}.donut-legend .lg .nm{flex:1}.donut-legend .lg .vl{font-family:var(--mono);font-weight:600;color:var(--color-ink-soft)}.donut-legend .lg .pc{font-family:var(--mono);color:var(--color-muted);width:38px;text-align:right}.acct-boxes{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}.acct-box{background:var(--color-card);border:1px solid var(--color-line);border-radius:14px;padding:16px;display:flex;flex-direction:column;transition:border-color .15s,box-shadow .15s}.acct-box:hover{border-color:#c7d2c9;box-shadow:0 3px 14px rgba(20,32,26,.06)}.acct-box .ab-top{display:flex;align-items:center;gap:11px;margin-bottom:12px}.acct-box .ab-tile{width:42px;height:42px;border-radius:11px;flex:none;display:grid;place-items:center;background:var(--color-muted);color:#fff;font-weight:700;font-size:1.05rem;font-family:var(--display)}.acct-box .ab-tile-img{background:transparent;object-fit:cover}.acct-box .ab-name{font-weight:600;font-size:.95rem;line-height:1.15}.acct-box .ab-type{font-size:.74rem;color:var(--color-muted);margin-top:2px}.acct-box .ab-meta{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}.acct-box .ab-badge{font-size:.62rem;letter-spacing:.04em;text-transform:uppercase;font-weight:700;border-radius:6px;padding:2px 8px;background:#f1f4ef;color:var(--color-ink-soft)}.acct-box .ab-badge.cur{background:var(--color-gold-bg);color:var(--color-gold)}.acct-box .ab-manage{margin-top:auto;width:100%;border:1px solid var(--color-line);background:var(--color-card);border-radius:9px;padding:9px 0;font-size:.83rem;font-weight:600;color:var(--color-ink-soft)}.acct-box .ab-manage:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-soft)}.acct-add{border:1.5px dashed var(--color-line);border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--color-muted);cursor:pointer;min-height:150px;background:var(--color-card)}.acct-add:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-soft)}.acct-add .plus{font-size:1.5rem;line-height:1}.acct-add .t{font-size:.85rem;font-weight:600}.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}.search{position:relative;flex:1;min-width:200px;max-width:300px}.search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--color-muted)}.search input{width:100%;border:1px solid var(--color-line);border-radius:9px;padding:9px 12px 9px 34px;font-size:.86rem;background:var(--color-card)}.search input:focus{outline:2px solid var(--color-accent);outline-offset:1px;border-color:var(--color-accent)}.fsel{border:1px solid var(--color-line);border-radius:9px;padding:9px 12px;font-size:.83rem;background:var(--color-card);color:var(--color-ink-soft)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.tile{background:var(--color-card);border:1px solid var(--color-line);border-radius:14px;padding:16px;display:flex;flex-direction:column;position:relative}.tile:hover{border-color:#c7d2c9;box-shadow:0 3px 14px rgba(20,32,26,.06)}.tile .top{display:flex;align-items:center;gap:11px;margin-bottom:10px}.tile .ticon{width:40px;height:40px;border-radius:10px;flex:none;display:grid;place-items:center;font-size:1.15rem;background:var(--color-accent-soft);color:var(--color-accent)}.tile .ticon svg{width:20px;height:20px}.tile .tname{font-weight:600;font-size:.95rem;line-height:1.15}.tile .tsub{font-size:.75rem;color:var(--color-muted);margin-top:2px}.tile .tdesc{font-size:.82rem;color:var(--color-ink-soft);line-height:1.4;margin-bottom:12px;min-height:34px}.tile .tfoot{gap:8px;margin-top:auto}.tadd,.tile .tfoot{display:flex;align-items:center}.tadd{border:1.5px dashed var(--color-line);border-radius:14px;flex-direction:column;justify-content:center;gap:6px;color:var(--color-muted);cursor:pointer;min-height:140px;background:var(--color-card)}.tadd:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-soft)}.tadd .plus{font-size:1.5rem;line-height:1}.tadd .t{font-size:.85rem;font-weight:600}.iconbtn{width:28px;height:28px;border-radius:7px;border:1px solid var(--color-line);background:var(--color-card);display:grid;place-items:center;color:var(--color-muted)}.iconbtn:hover{border-color:var(--color-accent);color:var(--color-accent)}.iconbtn.danger:hover{border-color:var(--color-danger);color:var(--color-danger)}.iconbtn:disabled{opacity:.4;cursor:not-allowed}.iconbtn:disabled:hover{border-color:var(--color-line);color:var(--color-muted)}.iconbtn svg{width:14px;height:14px}.badge{font-size:.62rem;letter-spacing:.04em;text-transform:uppercase;font-weight:700;border-radius:6px;padding:3px 9px;display:inline-block}.badge.active{background:var(--color-profit-bg);color:var(--color-profit)}.badge.inactive{background:#eef0ed;color:var(--color-muted)}.badge.available{background:var(--color-profit-bg);color:var(--color-profit)}.badge.assigned{background:var(--color-gold-bg);color:var(--color-gold)}.badge.cat{background:var(--color-accent-soft);color:var(--color-accent)}.cat-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.cat-card{gap:2px}.cat-types{display:flex;flex-direction:column;gap:2px;margin-top:4px;padding-top:10px;border-top:1px solid var(--color-line)}.cat-types-empty{font-size:.8rem;color:var(--color-muted);padding:6px 0}.cat-type-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--color-line)}.cat-type-row:last-of-type{border-bottom:none}.cat-type-name{display:flex;align-items:center;gap:6px;flex:1;min-width:0;font-size:.85rem}.cat-type-icon{display:inline-flex;width:18px;height:18px;flex:none}.cat-type-url{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-add-type{align-self:flex-start;margin-top:6px}.row-act{display:flex;gap:6px;justify-content:flex-end}.linkurl{color:var(--color-play);text-decoration:none;font-size:.8rem}.linkurl:hover{text-decoration:underline}.empty{text-align:center;padding:44px 20px;color:var(--color-muted)}.mono{font-family:var(--font-ibm-plex-mono),monospace}.security-note{display:flex;gap:11px;align-items:flex-start;background:var(--color-gold-bg);border:1px solid #e7d9b4;border-radius:11px;padding:12px 14px;margin-bottom:16px}.security-note svg{width:18px;height:18px;color:var(--color-gold);flex:none;margin-top:1px}.security-note p{font-size:.8rem;color:#7a5a12;line-height:1.5}.pw{font-family:var(--font-ibm-plex-mono),monospace;letter-spacing:1px}.pw-cell{display:flex;align-items:center;gap:8px}.pw-input{position:relative}.pw-input input{padding-right:52px;width:100%}.pw-input .reveal{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:none;background:none;color:var(--color-accent);font-size:.76rem;font-weight:600;padding:4px 8px;border-radius:6px}.pw-input .reveal:hover{background:var(--color-accent-soft)}.iconpick{display:flex;align-items:center;gap:10px}.iconpick .preview{width:44px;height:44px;border-radius:10px;flex:none;display:grid;place-items:center;background:var(--color-accent-soft);color:var(--color-accent);font-size:1.3rem;border:1px solid var(--color-line)}.iconpick .preview svg{width:22px;height:22px}.iconpick .pickbtn{border:1px solid var(--color-line);background:var(--color-card);border-radius:9px;padding:9px 13px;font-size:.84rem;font-weight:600;color:var(--color-ink-soft)}.iconpick .pickbtn:hover{border-color:var(--color-accent);color:var(--color-accent)}.icon-pop{display:none;margin-top:10px;border:1px solid var(--color-line);border-radius:11px;background:#fcfdfb;padding:10px}.icon-pop.open{display:block}.icon-pop .pop-tabs{display:flex;gap:6px;margin-bottom:8px}.icon-pop .pop-tabs button{border:1px solid var(--color-line);background:var(--color-card);border-radius:7px;padding:5px 11px;font-size:.78rem;font-weight:600;color:var(--color-muted)}.icon-pop .pop-tabs button.on{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.icon-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;max-height:150px;overflow-y:auto}.icon-grid button{aspect-ratio:1;border:1px solid var(--color-line);background:var(--color-card);border-radius:8px;display:grid;place-items:center;font-size:1.15rem;color:var(--color-ink-soft);padding:0}.icon-grid button svg{width:19px;height:19px}.icon-grid button.sel,.icon-grid button:hover{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent)}.icon-grid button.sel{box-shadow:0 0 0 1px var(--color-accent) inset}@media (max-width:900px){.icon-grid{grid-template-columns:repeat(6,1fr)}}.acc-layout{display:grid;grid-template-columns:212px 1fr;gap:24px;align-items:start}.acc-nav{position:sticky;top:76px;display:flex;flex-direction:column;gap:2px;background:var(--color-card);border:1px solid var(--color-line);border-radius:14px;padding:8px}.acc-nav button{display:flex;align-items:center;gap:10px;text-align:left;border:none;background:none;padding:10px 12px;border-radius:9px;font-size:.86rem;font-weight:500;color:var(--color-ink-soft);width:100%}.acc-nav button .ic{width:16px;height:16px;flex:none;opacity:.7}.acc-nav button .count{margin-left:auto;font-family:var(--mono);font-size:.72rem;color:var(--color-muted);background:#f1f4ef;border-radius:20px;padding:1px 8px}.acc-nav button:hover{background:#f1f4ef;color:var(--color-ink)}.acc-nav button.on{background:var(--color-accent);color:#fff}.acc-nav button.on .count{background:rgba(255,255,255,.2);color:#fff}.acc-nav button.on .ic{opacity:1}.acc-sec-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:16px}.acc-sec-head h2{font-family:var(--display);font-size:1.3rem;font-weight:600}.acc-sec-head p{font-size:.85rem;color:var(--color-muted);margin-top:3px;max-width:52ch}.acc-sec-head .btn{margin-left:auto;flex:none;white-space:nowrap}.acc-list{display:flex;flex-direction:column;gap:10px}.acc-item{display:flex;align-items:center;gap:14px;background:var(--color-card);border:1px solid var(--color-line);border-radius:12px;padding:14px 16px;transition:border-color .15s,box-shadow .15s}.acc-item:hover{border-color:#c7d2c9;box-shadow:0 2px 10px rgba(20,32,26,.05)}.acc-item .swatch{width:36px;height:36px;border-radius:10px;flex:none;display:grid;place-items:center;color:#fff;font-weight:700;font-size:.9rem;font-family:var(--display)}.acc-item .main{min-width:0;flex:1}.acc-item .nm{font-weight:600;font-size:.94rem}.acc-item .subs{display:flex;align-items:center;gap:6px;margin-top:4px;flex-wrap:wrap}.acc-item .badge{font-size:.62rem;letter-spacing:.04em;text-transform:uppercase;font-weight:700;border-radius:6px;padding:2px 8px;background:#f1f4ef;color:var(--color-ink-soft)}.acc-item .badge.cur{background:var(--color-gold-bg);color:var(--color-gold)}.acc-item select{border:1px solid var(--color-line);border-radius:9px;padding:8px 10px;font-size:.83rem;font-family:inherit;background:#fcfdfb;flex:none}.acc-item .actions{display:flex;gap:6px;flex:none;opacity:.35;transition:opacity .15s}.acc-item:hover .actions{opacity:1}.acc-item .actions button{width:34px;height:34px;border-radius:9px;border:1px solid var(--color-line);background:var(--color-card);display:grid;place-items:center;color:var(--color-ink-soft)}.acc-item .actions button svg{width:15px;height:15px}.acc-item .actions button:hover{border-color:var(--color-accent);color:var(--color-accent)}.acc-item .actions button.del:hover{border-color:var(--color-danger);color:var(--color-danger);background:var(--color-danger-bg)}.acc-empty{text-align:center;padding:40px 20px;color:var(--color-muted);border:1px dashed var(--color-line);border-radius:12px;background:var(--color-card)}.acc-empty p{font-size:.88rem;margin-bottom:12px}@media (max-width:900px){.acc-layout{grid-template-columns:1fr}.acc-nav{position:static;flex-direction:row;overflow-x:auto}}.goals-form{background:var(--color-card);border:1px solid var(--color-line);border-radius:14px;padding:22px 24px;max-width:620px}.goals-form .gf-row{display:flex;align-items:center;gap:16px;padding:14px 0}.goals-form .gf-row+.gf-row{border-top:1px solid var(--color-line)}.goals-form .gf-row label:not(.toggle){flex:1;font-size:.9rem;font-weight:500}.goals-form .gf-row .gf-in{position:relative;width:200px}.goals-form .gf-row .gf-in span{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--color-muted);font-family:var(--mono)}.goals-form .gf-row input{width:100%;border:1px solid var(--color-line);border-radius:9px;padding:10px 12px 10px 28px;font-family:var(--mono);font-size:.95rem;background:#fcfdfb}.goals-form .gf-row input:focus{outline:2px solid var(--color-accent);outline-offset:1px;border-color:var(--color-accent)}.goals-form .gf-row input:disabled{background:#f1f4ef;color:var(--color-muted)}.goals-form .gf-foot{display:flex;justify-content:flex-end;margin-top:18px;padding-top:16px;border-top:1px solid var(--color-line)}.goals-form .toggle{flex:none;width:40px;height:23px}.goals-form .gf-row label.toggle{width:40px}.toggle{position:relative;cursor:pointer}.toggle input{opacity:0;width:0;height:0;position:absolute}.toggle .track{position:absolute;inset:0;background:#cbd3cc;border-radius:99px;transition:.2s}.toggle .track:before{content:"";position:absolute;width:17px;height:17px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}.toggle input:checked+.track{background:var(--color-accent)}.toggle input:checked+.track:before{transform:translateX(17px)}.kebab{position:relative;display:inline-block}.kebab>button{width:30px;height:30px;border-radius:8px;border:1px solid transparent;background:none;display:grid;place-items:center;color:var(--color-muted)}.kebab>button svg{width:16px;height:16px}.kebab.open>button,.kebab>button:hover{background:#f1f4ef;color:var(--color-ink);border-color:var(--color-line)}.kebab-menu{min-width:150px;background:var(--color-card);border:1px solid var(--color-line);border-radius:10px;box-shadow:0 12px 30px rgba(20,32,26,.16);padding:5px;z-index:40}.kebab-menu button{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:none;background:none;padding:9px 11px;border-radius:7px;font-size:.84rem;font-weight:500;color:var(--color-ink-soft)}.kebab-menu button svg{width:15px;height:15px;flex:none}.kebab-menu button:hover{background:#f1f4ef;color:var(--color-ink)}.kebab-menu button.danger{color:var(--color-danger)}.kebab-menu button.danger:hover{background:var(--color-danger-bg)}td.row-actions{text-align:right;white-space:nowrap}.rate-ctl{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:.9rem;background:#f1f4ef;border:1px solid var(--color-line);border-radius:9px;padding:8px 10px;color:var(--color-ink-soft)}.rate-ctl b{color:var(--color-ink)}.rate-ctl .rate-in{width:78px;border:1px solid var(--color-accent);border-radius:6px;padding:4px 6px;font-family:var(--mono);font-size:.88rem}.rate-ctl .rate-edit{margin-left:auto;width:26px;height:26px;border-radius:7px;border:1px solid var(--color-line);background:var(--color-card);display:grid;place-items:center;color:var(--color-muted);flex:none}.rate-ctl .rate-edit svg{width:14px;height:14px}.rate-ctl .rate-edit:hover{border-color:var(--color-accent);color:var(--color-accent)}.rate-ctl.editing{background:#fff;border-color:var(--color-accent)}.modal.danger .modal-h h2{color:var(--color-danger)}.del-hero{display:flex;gap:14px;align-items:flex-start;background:var(--color-danger-bg);border:1px solid var(--color-danger-line);border-radius:12px;padding:14px 15px}.del-hero .ic{width:38px;height:38px;border-radius:50%;background:var(--color-danger);color:#fff;display:grid;place-items:center;flex:none;font-weight:700;font-size:1.2rem}.del-hero p{font-size:.86rem;color:#7a2418;line-height:1.45}.del-hero b{color:var(--color-danger)}.del-confirm label{font-size:.82rem;color:var(--color-ink-soft);display:block;margin-bottom:7px}.del-confirm label b{font-family:var(--mono);background:#f1f4ef;padding:1px 6px;border-radius:5px;color:var(--color-ink)}.del-confirm input{width:100%;border:1px solid var(--color-line);border-radius:9px;padding:10px 12px;font-size:.9rem;font-family:var(--mono)}.del-confirm input:focus{outline:2px solid var(--color-danger);outline-offset:1px;border-color:var(--color-danger)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{background:#a5321f}.btn-danger:disabled{background:#e7c4bd;cursor:not-allowed}.check-list{display:flex;flex-wrap:wrap;gap:8px 18px}.check-row{display:flex;align-items:center;gap:7px;font-size:.86rem;font-weight:500;cursor:pointer}.check-row input{width:15px;height:15px;accent-color:var(--color-accent)}.check-list-actions{display:flex;gap:12px;margin-bottom:2px}.link-btn{background:none;border:none;padding:0;color:var(--color-accent);font-size:.78rem;font-weight:600;cursor:pointer}.link-btn:hover{text-decoration:underline}.link-btn:disabled{color:var(--color-muted);cursor:default;text-decoration:none}.page-head{margin-bottom:18px}.page-head h2{font-family:var(--display);font-size:1.35rem;font-weight:600}.page-head p{font-size:.86rem;margin-top:3px}.mini,.page-head p{color:var(--color-muted)}.mini{font-size:.78rem}.eid,.mini{font-family:var(--mono)}.eid{font-weight:600;color:var(--color-ink-soft)}.count-chip{margin-left:auto;font-size:.78rem;color:var(--color-muted);font-family:var(--mono)}.emp-cell{display:flex;align-items:center;gap:11px}.emp-tile{width:38px;height:38px;border-radius:10px;flex:none;display:grid;place-items:center;color:#fff;font-weight:700;font-size:.85rem;font-family:var(--display);background-size:cover;background-position:50%}.emp-tile.dummy{background:#eef1ec}.emp-tile.dummy svg{width:78%;height:78%}.emp-name{font-weight:600}.emp-sub{font-size:.74rem;color:var(--color-muted)}.badge.type{background:#eef1ec;color:var(--color-ink-soft)}.badge.suspended{background:var(--color-gold-bg);color:var(--color-gold)}.modal.wide{max-width:720px}.steps{display:flex;gap:4px;padding:14px 22px 0;overflow-x:auto}.step-pill{flex:none;display:flex;align-items:center;gap:7px;padding:7px 11px;border-radius:99px;font-size:.76rem;font-weight:600;color:var(--color-muted);background:#f1f4ef;border:1px solid transparent;cursor:pointer;white-space:nowrap}.step-pill .n{width:18px;height:18px;border-radius:50%;background:#d5ddd4;color:#fff;display:grid;place-items:center;font-size:.66rem}.step-pill.on{background:var(--color-accent-soft);color:var(--color-accent);border-color:#bfdccb}.step-pill.on .n{background:var(--color-accent)}.step-pill.done .n{background:var(--color-profit)}.step-title{font-family:var(--display);font-size:1.05rem;font-weight:600;margin-bottom:2px}.step-desc{font-size:.8rem;margin-bottom:6px}.field .hint,.step-desc{color:var(--color-muted)}.field .hint{font-size:.72rem;text-transform:none;letter-spacing:0;font-weight:400}.rate-row{display:grid;grid-template-columns:1fr 88px;gap:10px}.uploader{border:1.5px dashed var(--color-line);border-radius:11px;padding:16px;display:flex;align-items:center;gap:12px;background:#fcfdfb;cursor:pointer}.uploader:hover{border-color:var(--color-accent);background:var(--color-accent-soft)}.uploader .ic{width:38px;height:38px;border-radius:9px;background:#eef1ec;display:grid;place-items:center;color:var(--color-muted);flex:none}.uploader .t{font-size:.84rem;font-weight:600}.uploader .s{font-size:.72rem;color:var(--color-muted)}.pic-uploader{flex-direction:column;text-align:center;width:120px}.pic-preview{width:76px;height:76px;border-radius:50%;background:#eef1ec;display:grid;place-items:center;color:var(--color-muted);font-family:var(--display);font-weight:600;font-size:1.3rem;margin:0 auto 4px}.stub-note{font-size:.74rem;color:var(--color-gold);background:var(--color-gold-bg);border:1px solid #e7d9b4;border-radius:8px;padding:8px 11px}.assign-row{display:flex;gap:8px;align-items:flex-end}.assign-row .field{flex:1}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.chip{display:inline-flex;align-items:center;gap:6px;background:#eef1ec;border-radius:7px;padding:4px 9px;font-size:.78rem;color:var(--color-ink-soft)}.chip button{background:none;border:none;color:var(--color-muted);cursor:pointer;font-size:.9rem;line-height:1}.chip button:hover{color:var(--color-danger)}.exit-locked{text-align:center;color:var(--color-muted);font-size:.85rem;padding:26px 12px;border:1px dashed var(--color-line);border-radius:11px;background:#fcfdfb}.exit-checklist{display:flex;flex-direction:column;gap:4px;border:1px solid var(--color-line);border-radius:10px;padding:8px 10px;max-height:180px;overflow-y:auto}.exit-checklist-row{display:flex;gap:8px;align-items:center;font-size:.85rem;font-weight:500;text-transform:none;letter-spacing:0;color:var(--color-ink-soft)}.exit-checklist-row input{width:auto}.modal-f .spacer{flex:1}@media (max-width:1080px){.kpis{grid-template-columns:repeat(2,1fr)}}@media (max-width:860px){.sidebar{display:none}.main{margin-left:0}.grid2,.grid3{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.portal *{animation:none!important;transition:none!important}}