:root {
  --bg:#0c0e14; --s1:#12141d; --s2:#191c29; --s3:#212538;
  --border:#272b40; --border2:#343856; --text:#d4d8e8; --muted:#525878;
  --accent:#5b6af0; --acc-dim:rgba(91,106,240,.14);
  --green:#2dd67a; --green-dim:rgba(45,214,122,.12);
  --red:#f05b5b; --red-dim:rgba(240,91,91,.13);
  --yellow:#f0c45b; --yel-dim:rgba(240,196,91,.12);
  --gray-dim:rgba(82,88,120,.15);
  --r:8px; --mono:'IBM Plex Mono',monospace; --sans:'IBM Plex Sans',sans-serif;
  /* ── CALENDAR SIZE — edit these values to taste ── */
  --day-h:124px;      /* fixed height of each day cell; list scrolls if it overflows */
  --cal-max:min(2400px, 97vw);   /* overall width (calendar + side panel) — nearly edge-to-edge, capped so it doesn't get absurd on ultrawide monitors */
  --chip-font:12px;   /* size of the bill/income text in the cells */
  --summary-w:280px;  /* MAX width of the right-side tags panel — it shrinks to fit its content (tag names + totals) up to this cap, rather than always reserving this much */
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased}
::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}
input,select{width:100%;padding:9px 12px;background:var(--s2);border:1px solid var(--border);border-radius:var(--r);color:var(--text);font-family:var(--sans);font-size:13px;outline:none;transition:border-color .15s}
input:focus,select:focus{border-color:var(--accent)}
select option{background:var(--s2)}
label{display:block;font-size:11px;color:var(--muted);margin-bottom:5px;letter-spacing:.04em;text-transform:uppercase;font-family:var(--mono)}
.frow{margin-bottom:14px}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.cat-row{display:flex;gap:6px}
.cat-row select{flex:1;min-width:0}
.cat-add-btn{padding:0;width:32px;flex-shrink:0;font-size:16px;font-weight:700;line-height:1}
.cat-del-btn{padding:0;width:32px;flex-shrink:0;font-size:14px;line-height:1}
.cat-del-btn:disabled{opacity:.3;cursor:not-allowed}
.err{color:var(--red);font-size:12px;margin-top:6px;font-family:var(--mono)}
.spinner{width:14px;height:14px;border:2px solid var(--border2);border-top-color:var(--accent);border-radius:50%;display:inline-block;animation:spin .7s linear infinite;flex-shrink:0}
@keyframes spin{to{transform:rotate(360deg)}}
.modal-loading{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin-top:6px}
.view-loading{position:absolute;inset:0;z-index:5;display:none;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:var(--bg);color:var(--muted);font-family:var(--mono);font-size:13px}
.view-loading.show{display:flex}
.view-loading .spinner{width:24px;height:24px;border-width:3px}
#view-calendar,#view-fatura,#view-wishlist,#view-investments,#view-family{position:relative}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-radius:var(--r);border:none;cursor:pointer;font-size:13px;font-weight:500;font-family:var(--sans);transition:opacity .15s;white-space:nowrap}
.btn:hover{opacity:.82}
.btn-primary{background:var(--accent);color:#fff}
.btn-success{background:#1a7a44;color:#fff}
.btn-danger{background:var(--red);color:#fff}
.btn-ghost{background:var(--s3);color:var(--text);border:1px solid var(--border)}
.btn-sm{padding:5px 10px;font-size:12px}
.btn-block{width:100%;margin-top:10px}

/* LOGIN + SETUP */
#login-screen, #setup-screen, #register-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:radial-gradient(ellipse 60% 40% at 50% 0%,rgba(91,106,240,.07) 0%,transparent 70%)}
.login-card{background:var(--s1);border:1px solid var(--border);border-radius:12px;padding:44px 40px;width:360px;text-align:center;position:relative}
.login-logo{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}
.login-card h2{font-size:21px;font-weight:600;margin-bottom:28px}
.login-card input{text-align:center;letter-spacing:.1em;margin-bottom:4px}
.login-card select{margin-bottom:4px}
.lang-toggle{position:absolute;top:14px;right:16px;display:flex;gap:4px;font-family:var(--mono);font-size:11px}
.lang-toggle button{background:none;border:none;color:var(--muted);cursor:pointer;padding:2px 4px;font-family:var(--mono);font-size:11px}
.lang-toggle button.active{color:var(--accent);font-weight:600}

/* APP */
#app{display:none;flex-direction:column;height:100vh}
.app-header{display:flex;align-items:center;gap:14px;padding:0 24px;height:54px;background:var(--s1);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:90}
.brand{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.06em}
.brand span{color:var(--accent)}
.spacer{flex:1}
.month-nav{display:flex;align-items:center;gap:8px}
.month-nav h2{font-family:var(--mono);font-size:13px;font-weight:500;min-width:166px;text-align:center}
.nav-btn{width:30px;height:30px;background:var(--s2);border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:background .12s}
.nav-btn:hover{background:var(--s3)}
.app-main{flex:1;padding:14px 24px 20px;max-width:var(--cal-max);width:100%;margin:0 auto;display:flex;gap:18px;align-items:flex-start}
.cal-area{flex:1;min-width:0}
.side-col{width:max-content;max-width:var(--summary-w);flex-shrink:0;display:flex;flex-direction:column;gap:14px}
.summary-panel{width:100%;display:flex;flex-direction:column;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
.summary-panel .sum-cell{text-align:left}
.tags-head{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);text-align:left}
.tag-row{display:flex;align-items:center;gap:8px;cursor:pointer;border-radius:6px;padding:3px 5px;margin:0 -5px;border-left:3px solid transparent;transition:background .15s}
.tag-row:hover{background:rgba(255,255,255,.04)}
.tag-row.tag-active{background:rgba(255,255,255,.06)}
.tag-row-name{flex:1;font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tag-row-amt{font-family:var(--mono);font-size:12px;color:var(--muted)}
.tags-clear{font-size:10px;color:var(--muted);cursor:pointer;text-decoration:underline;align-self:flex-end;margin-top:2px}
.tags-clear:hover{color:var(--text)}
.tag-hide-toggle{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--muted);white-space:nowrap;cursor:pointer}
.tag-row-hidden{font-size:11px;color:var(--muted)}
#ext-card .ext-list{display:flex;flex-direction:column;gap:1px;max-height:320px;overflow-y:auto}
#ext-card .ext-controls{display:flex;flex-direction:column;gap:6px;padding:8px 12px}
#ext-card .ext-controls input,#ext-card .ext-controls select{width:100%;min-width:0;padding:5px 8px;font-size:12px}
#ext-card .ext-row{display:flex;gap:6px;align-items:center}
#ext-card .ext-row .tags-clear{margin:0;white-space:nowrap}
#ext-card .ext-row select{flex:1}
#ext-card .ext-btn{padding:4px 8px;font-size:12px;white-space:nowrap;flex-shrink:0}
#ext-card .ext-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}
#ext-card .ext-sel-row{font-size:11px;color:var(--muted)}
#ext-card .ext-check{font-size:14px;color:var(--accent);line-height:1}
#ext-card .tag-row.ext-picked{background:rgba(91,106,240,.12)}
.info-i{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;margin-left:4px;border-radius:50%;border:1px solid var(--muted);background:transparent;color:var(--muted);font:600 10px/1 var(--sans);font-style:italic;text-transform:none;letter-spacing:0;cursor:pointer;vertical-align:middle;padding:0}
.info-i:hover{color:var(--text);border-color:var(--text)}
.chip.chip-ext{outline:1px dashed var(--accent);outline-offset:1px}
#ext-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:240}
#ext-card.ext-expanded{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(760px,calc(100vw - 32px));max-width:none;max-height:85vh;z-index:245;box-shadow:0 12px 48px rgba(0,0,0,.5)}
#ext-card.ext-expanded .ext-list{max-height:calc(85vh - 190px)}
#ext-card.ext-expanded .tag-row-name{white-space:normal;overflow:visible}
#ext-card.ext-expanded .tag-row{padding-top:9px;padding-bottom:9px}
.view-tabs{display:flex;gap:2px;margin-left:6px}
.view-tab{padding:6px 14px;background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:13px;font-family:var(--sans);font-weight:500;border-bottom:2px solid transparent;transition:color .12s,border-color .12s}
.view-tab:hover{color:var(--text)}
.view-tab.active{color:var(--text);border-bottom-color:var(--accent)}
#view-fatura{flex:1;display:flex}

/* SUMMARY */
.summary-bar{display:flex;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;margin-bottom:20px}
.sum-cell{flex:1;background:var(--s1);padding:13px 15px;text-align:center}
.sum-cell .val{font-family:var(--mono);font-size:15px;font-weight:600;margin-bottom:3px}
.sum-cell .lbl{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.c-total{color:var(--text)}.c-paid{color:#8b9cf4}.c-open{color:var(--yellow)}
.c-late{color:var(--red)}.c-income{color:#4ade80}.c-balance-pos{color:var(--green)}.c-balance-neg{color:var(--red)}

/* CALENDAR */
.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:5px}
.wday{text-align:center;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:4px 0}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.day-cell{background:var(--s1);border:1px solid var(--border);border-radius:var(--r);padding:9px 10px 8px;height:var(--day-h);display:flex;flex-direction:column;cursor:pointer;transition:border-color .12s,background .12s;overflow:hidden}
.day-cell:hover{border-color:var(--border2);background:var(--s2)}
.day-cell.today{border-color:var(--accent)}
.day-cell.selected{border-color:var(--accent);background:var(--s2)}
.day-cell.other-month{opacity:.22;cursor:default;pointer-events:none}
.day-head{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:6px;flex-shrink:0;min-width:0}
.day-num{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--muted);line-height:1;flex-shrink:0}
.day-cell.today .day-num{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;width:20px;height:20px;border-radius:50%;font-size:10px}
.chips{display:flex;flex-direction:column;gap:3px;flex:1;min-height:0;overflow-y:auto}
.chip{font-size:var(--chip-font);font-family:var(--mono);padding:3px 7px;border-radius:4px;flex-shrink:0;display:flex;align-items:center;gap:4px}
.chip-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chip-pay-btn{flex-shrink:0;opacity:0;background:none;border:none;cursor:pointer;font-size:9px;padding:0 2px;border-radius:2px;line-height:1;color:inherit;font-family:var(--mono);transition:opacity .12s}
.chip:hover .chip-pay-btn{opacity:.8}
.chip:hover .chip-pay-btn:hover{opacity:1}
body.calc-on .chip-pay-btn{display:none}
.day-totals{font-size:9px;font-family:var(--mono);display:flex;gap:5px;flex-wrap:nowrap;justify-content:flex-end;min-width:0;line-height:1}
.day-totals span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.day-tot-bills{color:#f07878}
.day-tot-income{color:#4cd989}
.chip-open{background:var(--yel-dim);color:#f0c85b}
.chip-paid{background:var(--acc-dim);color:#8b9cf4}
.chip-late{background:var(--red-dim);color:#f07878}
.chip-pending{background:var(--yel-dim);color:#f0c85b}
.chip-cancelled{background:var(--gray-dim);color:var(--muted)}
.chip-expected{background:rgba(45,214,122,.1);color:#6ee7a0}
.chip-received{background:rgba(45,214,122,.2);color:#4cd989}
.chip-income{font-style:italic}
.chip-more{font-size:10px;color:var(--muted);padding-left:6px;margin-top:1px}
.chip-untagged{background:rgba(255,255,255,.06);color:#fff}
/* Paid box: ONE green box per day grouping all paid bills / received incomes,
   inset from the cell edges so it doesn't fill the whole day container. */
.paid-box{display:flex;flex-direction:column;gap:3px;background:rgba(45,214,122,.16);border:1px solid rgba(45,214,122,.32);border-radius:6px;padding:3px;margin:1px 4px}
.tag-dot{display:inline-block;width:9px;height:9px;border-radius:50%;vertical-align:middle;margin-right:5px}
input[type=color]{width:42px;height:34px;padding:2px;cursor:pointer;background:var(--s2);border:1px solid var(--border);border-radius:var(--r)}

/* DAY PANEL */
#day-panel{position:fixed;right:0;top:0;bottom:0;width:420px;background:var(--s1);border-left:1px solid var(--border);transform:translateX(100%);transition:transform .22s cubic-bezier(.4,0,.2,1);z-index:200;display:flex;flex-direction:column}
#day-panel.open{transform:translateX(0)}
#panel-overlay{position:fixed;inset:0;z-index:199;background:rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity .22s}
#panel-overlay.show{opacity:1;pointer-events:all}
.panel-head{padding:16px 18px 14px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;flex-shrink:0}
.panel-head h3{font-family:var(--mono);font-size:13px;font-weight:500}
.close-btn{background:var(--s2);border:1px solid var(--border);color:var(--muted);width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:color .12s}
.close-btn:hover{color:var(--text)}
.panel-body{flex:1;overflow-y:auto;padding:16px 18px}

/* CARDS */
.bill-card{background:var(--s2);border:1px solid var(--border);border-radius:var(--r);padding:12px 14px;margin-bottom:10px}
.income-card{background:var(--s2);border:1px solid rgba(45,214,122,.2);border-radius:var(--r);padding:12px 14px;margin-bottom:10px}
.card-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}
.card-name{font-weight:600;font-size:14px}
.card-amount{font-family:var(--mono);font-size:14px;font-weight:600}
.income-card .card-amount{color:var(--green)}
.card-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.badge{font-size:10px;font-weight:600;padding:2px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:.06em;font-family:var(--mono)}
.badge-open{background:var(--yel-dim);color:#f0c85b}
.badge-paid{background:var(--acc-dim);color:#8b9cf4}
.badge-late{background:var(--red-dim);color:#f07878}
.badge-pending{background:var(--yel-dim);color:#f0c85b}
.badge-cancelled{background:var(--gray-dim);color:var(--muted)}
.badge-expected{background:rgba(45,214,122,.1);color:#6ee7a0}
.badge-received{background:rgba(45,214,122,.22);color:#4cd989}
.tag{font-size:11px;color:var(--muted)}
.card-notes{font-size:12px;color:var(--muted);margin-top:6px;font-style:italic}
.card-actions{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap;align-items:center}
.edit-form{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}

.divider{border:none;border-top:1px solid var(--border);margin:18px 0}
.section-title{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.section-title.income-title{color:#4cd989}
.empty-state{text-align:center;padding:20px 0;color:var(--muted);font-size:13px;font-family:var(--mono)}
.gq-meter-track{height:10px;border-radius:5px;background:var(--s3);overflow:hidden}
.gq-meter-fill{height:100%;border-radius:5px;width:0;transition:width .3s ease;background:var(--green)}

/* MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:300;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s}
.modal-overlay.open{opacity:1;pointer-events:all}
/* Sits above every other modal-overlay so uiAlert/uiConfirm/uiPrompt stay clickable when triggered from within an already-open modal. */
#ui-dialog-modal{z-index:400}
/* Transient top-right toast — no button, no click needed, auto-dismisses. For status
   updates that don't require acknowledgement (unlike uiAlert/uiConfirm/uiPrompt). */
#toast-stack{position:fixed;top:18px;right:18px;z-index:500;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.toast{background:var(--s1);border:1px solid var(--border);border-radius:var(--r);padding:12px 16px;max-width:340px;box-shadow:0 8px 24px rgba(0,0,0,.35);font-size:13px;line-height:1.4;color:var(--text);opacity:0;transform:translateX(16px);transition:opacity .2s,transform .2s}
.toast.toast-in{opacity:1;transform:translateX(0)}
.modal{background:var(--s1);border:1px solid var(--border);border-radius:12px;width:560px;max-width:95vw;max-height:88vh;display:flex;flex-direction:column;transform:scale(.96);transition:transform .2s}
.modal-overlay.open .modal{transform:scale(1)}
.modal-head{padding:18px 22px 15px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;flex-shrink:0}
.modal-head h3{font-size:15px;font-weight:600}
.modal-tabs{display:flex;gap:2px;background:var(--s2);border-radius:6px;padding:3px;margin:0 22px 0}
.modal-tab{flex:1;padding:7px;text-align:center;font-size:12px;font-family:var(--mono);color:var(--muted);cursor:pointer;border-radius:4px;transition:background .12s,color .12s;border:none;background:transparent}
.modal-tab.active{background:var(--s3);color:var(--text)}
.modal-body{padding:20px 22px;overflow-y:auto;flex:1}
.modal-foot{padding:14px 22px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}
.template-item{display:flex;align-items:center;gap:10px;padding:11px 13px;background:var(--s2);border:1px solid var(--border);border-radius:var(--r);margin-bottom:8px}
.income-template-item{display:flex;align-items:center;gap:10px;padding:11px 13px;background:var(--s2);border:1px solid rgba(45,214,122,.18);border-radius:var(--r);margin-bottom:8px}
.tpl-info{flex:1}.tpl-name{font-weight:600;font-size:13px}.tpl-meta{font-size:11px;color:var(--muted);margin-top:2px;font-family:var(--mono)}
.tpl-amount{font-family:var(--mono);font-weight:600;font-size:13px;margin-right:6px}
.income-tpl-amount{color:var(--green)}
.excl-panel{margin:-4px 0 10px 0;padding:10px 13px;background:var(--s1);border:1px solid var(--border);border-left:2px solid var(--border2);border-radius:0 var(--r) var(--r) 0}
.excl-title{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.excl-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.excl-chip{display:inline-flex;align-items:center;gap:2px;background:var(--s3);padding:3px 4px 3px 10px;border-radius:14px;font-family:var(--mono);font-size:11px;color:var(--text)}
.excl-chip button{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:14px;padding:0 6px;border-radius:50%;line-height:1}
.excl-chip button:hover{color:var(--red)}
.excl-empty{font-size:11px;color:var(--muted);font-style:italic;font-family:var(--mono)}
.excl-add{display:flex;gap:8px;align-items:center}
.excl-add input{flex:1;padding:6px 10px;font-size:12px}

/* CALCULATOR */
.calc-toggle.active{background:var(--accent);color:#fff;border-color:var(--accent)}
#calc-panel{position:fixed;right:20px;bottom:20px;width:320px;max-height:540px;background:var(--s1);border:1px solid var(--border);border-radius:10px;z-index:250;display:none;flex-direction:column;box-shadow:0 8px 32px rgba(0,0,0,.4)}
#calc-panel.open{display:flex}
.calc-head{padding:12px 14px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;cursor:move;user-select:none;touch-action:none}
.calc-head button{cursor:pointer}
.calc-head h3{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.calc-body{flex:1;overflow-y:auto;padding:6px 14px;min-height:60px;max-height:280px}
.calc-empty{font-size:12px;color:var(--muted);font-style:italic;font-family:var(--mono);text-align:center;padding:18px 0}
.calc-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--border)}
.calc-row:last-child{border-bottom:none}
.calc-row-sign{font-family:var(--mono);font-size:14px;font-weight:700;width:12px;text-align:center}
.calc-row-sign.pos{color:var(--green)}
.calc-row-sign.neg{color:var(--red)}
.calc-row-name{flex:1;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calc-row-amt{font-family:var(--mono);font-size:12px;font-weight:500}
.calc-row-rm{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:14px;padding:0 4px;line-height:1}
.calc-row-rm:hover{color:var(--red)}
.calc-manual{display:flex;gap:6px;padding:10px 14px;border-top:1px solid var(--border);align-items:center}
.calc-manual input{flex:1;padding:6px 8px;font-size:13px}
.calc-mbtn{padding:6px 12px;background:var(--s3);border:1px solid var(--border);border-radius:6px;cursor:pointer;font-family:var(--mono);font-weight:700;font-size:14px}
.calc-mbtn.plus{color:var(--green)}
.calc-mbtn.minus{color:var(--red)}
.calc-mbtn:hover{background:var(--border)}
.calc-foot{padding:12px 14px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:10px}
.calc-total{font-family:var(--mono);font-size:18px;font-weight:600}
.calc-total.pos{color:var(--green)}
.calc-total.neg{color:var(--red)}

/* Selections persist while the calculator is closed, but only show while it is open. */
body.calc-on .chip.calc-selected{outline:2px solid var(--accent);outline-offset:1px}
body.calc-on .bill-card.calc-selected, body.calc-on .income-card.calc-selected{box-shadow:0 0 0 2px var(--accent) inset}

/* WISHLIST */
.wish-main{flex:1;padding:18px 24px 28px;max-width:var(--cal-max);width:100%;margin:0 auto}
.wk-emoji{font-size:13px}
.wish-bar{height:6px;border-radius:5px;background:var(--s3);overflow:hidden}
.wish-bar > span{display:block;height:100%;background:var(--accent);border-radius:5px;transition:width .25s}
.wish-bar.done > span{background:var(--green)}
/* Sort toolbar */
.wish-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:14px}
.wish-toolbar-lbl{font-size:10px;color:var(--muted);font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em}
.wish-toolbar select{width:auto;min-width:130px}
.wish-sort-dir{width:30px;padding:0;font-family:var(--mono);font-size:14px}
/* Compact list rows */
.wish-grid{display:flex;flex-direction:column;gap:8px}
.wish-row{display:flex;align-items:flex-start;gap:14px;background:var(--s1);border:1px solid var(--border);border-radius:8px;padding:11px 14px}
.wish-row.done{border-color:rgba(45,214,122,.3)}
.wr-main{flex:1;min-width:0}
.wr-name{font-weight:600;font-size:13px;display:flex;align-items:center;gap:6px}
.wr-name-txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wr-pct{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--muted);flex-shrink:0}
.wish-row .wish-bar{margin:7px 0 6px}
.wr-sub{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.wr-sub .tag{font-size:11px}
.wr-dot{color:var(--border2)}
.wr-plan{color:var(--text)}
.wr-plan.done{color:var(--green)}
.wr-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0}
.wr-target{font-family:var(--mono);font-size:14px;font-weight:600;white-space:nowrap}
.wr-actions{display:flex;gap:4px}
.wr-icon{padding:5px 9px}
/* Deposit (saves) modal */
.wd-summary{font-size:13px;color:var(--text);background:var(--s2);border:1px solid var(--border);border-radius:var(--r);padding:9px 12px;margin-bottom:14px}
.wd-summary strong{font-family:var(--mono);color:var(--accent)}
.wd-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 11px;background:var(--s2);border:1px solid var(--border);border-radius:var(--r);margin-bottom:7px}
.wd-row-amt{font-family:var(--mono);font-weight:600;color:var(--green)}
.wd-row-meta{font-size:11px;color:var(--muted);font-family:var(--mono);margin-top:2px}
/* Investment kind badge + earned colours */
.inv-badge{font-size:9px;font-weight:600;padding:1px 6px;border-radius:10px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em}
.inv-badge.cdb{background:var(--acc-dim);color:#8b9cf4}
.inv-badge.fii{background:var(--green-dim);color:#6ee7a0}
.wr-earn-pos{color:var(--green)}
.wr-earn-neg{color:var(--red)}
#view-investments .summary-bar{margin-bottom:16px}
/* ── INVESTMENTS TABLE ── */
.inv-table{width:100%;border-collapse:collapse;font-size:13px}
.inv-table thead th{font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-family:var(--mono);font-weight:500;padding:6px 10px 8px;border-bottom:2px solid var(--border);white-space:nowrap;text-align:right}
.inv-th-name{text-align:left!important;padding-left:12px!important}
.inv-row{border-bottom:1px solid var(--border);transition:background .12s}
.inv-row:last-child{border-bottom:none}
.inv-row:hover{background:var(--s2)}
.inv-row td{padding:10px 10px;vertical-align:middle}
.inv-row td:first-child{padding-left:12px}
.inv-col-num{text-align:right;font-family:var(--mono);white-space:nowrap}
.inv-col-current{font-weight:600;font-size:14px}
.inv-col-will{color:var(--muted)}
.inv-will-lbl{display:block;font-size:10px;margin-top:1px}
.inv-td-actions{text-align:right;white-space:nowrap;padding-right:0!important}
.inv-name-wrap{display:flex;align-items:center;gap:6px;min-width:0}
.inv-name-txt{font-weight:600;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inv-sub-txt{font-size:11px;color:var(--muted);margin-top:2px;font-family:var(--mono)}
.inv-mobile-nums{display:none}
/* Two-column Investimentos layout: scrollable holdings list on the left, charts stacked on the right */
.inv-layout{display:flex;gap:18px;align-items:flex-start}
.inv-list-col{flex:1;min-width:0;max-height:70vh;overflow-y:auto}
.inv-list-col .fat-sticky-thead th{background:var(--bg)}
.inv-charts-col{width:640px;flex-shrink:0;display:flex;flex-direction:column;gap:18px}
.inv-charts-col > div{margin:0!important}
@media(max-width:960px){
  .inv-layout{flex-direction:column}
  .inv-charts-col{width:100%}
  .inv-list-col{max-height:none;overflow-y:visible}
}
/* ── RESPONSIVE ── */
@media(max-width:680px){
  .app-header{overflow-x:auto;overflow-y:hidden;gap:8px;padding:0 12px;scrollbar-width:none}
  .app-header::-webkit-scrollbar{display:none}
  .view-tabs{gap:0;flex-shrink:0}
  .view-tab{padding:6px 10px;font-size:12px}
  .wish-main{padding:12px 12px 20px}
  .summary-bar{flex-wrap:wrap}
  .summary-bar .sum-cell{flex:1 1 45%;min-width:0}
  .sum-cell .val{font-size:13px}
  .inv-table thead{display:none}
  .inv-table,.inv-table tbody,.inv-row,.inv-row td{display:block}
  .inv-row{background:var(--s1);border:1px solid var(--border);border-radius:8px;margin-bottom:8px;padding:10px 12px}
  .inv-row:last-child{border-bottom:1px solid var(--border)}
  .inv-row:hover{background:var(--s1)}
  .inv-row td{padding:0;text-align:left!important}
  .inv-row td.inv-col-invested,.inv-row td.inv-col-earned,.inv-row td.inv-col-will{display:none}
  .inv-col-current{font-size:16px;font-weight:700;margin-top:6px;font-family:var(--mono)}
  .inv-td-actions{margin-top:10px;display:flex;gap:4px;flex-wrap:wrap}
  .inv-mobile-nums{display:block;font-size:11px;color:var(--muted);margin-top:3px;font-family:var(--mono)}
}
.wish-preview{font-size:12px;color:var(--text);background:var(--s2);border:1px solid var(--border);border-radius:var(--r);padding:9px 12px;margin:4px 0 14px;line-height:1.5;min-height:38px}
.wish-preview strong{font-family:var(--mono);color:var(--accent)}
.wish-travel-sum{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted);margin:2px 0 14px;flex-wrap:wrap}
.wish-travel-sum strong{font-family:var(--mono);color:var(--text)}
/* Rendered markdown of an AI savings plan */
.md-plan{font-size:13px;line-height:1.65}
.md-plan h1,.md-plan h2,.md-plan h3{font-size:14px;font-weight:600;margin:14px 0 6px}
.md-plan h1:first-child,.md-plan h2:first-child{margin-top:0}
.md-plan ul,.md-plan ol{margin:6px 0 6px 20px}
.md-plan li{margin:3px 0}
.md-plan p{margin:6px 0}
.md-plan strong{color:var(--text);font-weight:600}
.md-plan code{font-family:var(--mono);font-size:12px;background:var(--s2);padding:1px 5px;border-radius:4px}
body.calc-on .chip{cursor:pointer}
body.calc-on .bill-card, body.calc-on .income-card{cursor:pointer}

@media(max-width:768px){
  #calc-panel{right:8px;bottom:8px;left:8px;width:auto;max-height:60vh}
}

@media(max-width:768px){
  .app-main{padding:12px}.cal-grid{gap:3px}.cal-weekdays{gap:3px}
  .day-cell{height:96px;padding:7px}
  .app-main{flex-direction:column}
  .side-col{width:100%;max-width:none}
  .summary-panel{flex-direction:row;flex-wrap:wrap}
  .summary-panel .sum-cell{min-width:calc(33% - 1px);text-align:center}
  .tags-panel{flex-direction:column}
  .tags-panel .sum-cell{text-align:left}
  #day-panel{width:100%}
}

/* CAL TOOLBAR — category filter above grid */
.cal-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.cal-toolbar label{margin:0;font-size:11px;white-space:nowrap;text-transform:uppercase;letter-spacing:.06em}
.cal-toolbar select{width:auto;min-width:160px}
#cal-summary-bar{margin-bottom:8px}

/* CALENDAR AGENDA VIEW — mobile */
.cal-agenda{display:flex;flex-direction:column;gap:4px}
.cal-agenda-day{background:var(--s1);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;cursor:pointer;transition:border-color .12s}
.cal-agenda-day:hover{border-color:var(--border2)}
.cal-agenda-day.today{border-color:var(--accent)}
.cal-agenda-day.selected{border-color:var(--accent);background:var(--s2)}
.cal-agenda-head{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;background:var(--s2)}
.cal-agenda-date{font-family:var(--mono);font-size:12px;font-weight:600}
.cal-agenda-tots{display:flex;gap:6px;font-family:var(--mono);font-size:11px}
.cal-agenda-chips{display:flex;flex-wrap:wrap;gap:3px;padding:6px 8px}

/* FATURA NATIVE VIEW */
#view-fatura{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}
.fat-filter-bar{display:flex;align-items:center;gap:8px;padding:10px 24px;border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;background:var(--s1)}
.fat-filter-bar select,.fat-filter-bar input[type=text]{width:auto;padding:7px 10px}
.fat-filter-bar select{min-width:130px}
.fat-search-wrap{position:relative;flex:1;min-width:140px;max-width:260px}
.fat-search-wrap input[type=text]{width:100%;padding-right:26px;box-sizing:border-box}
.fat-search-clear{position:absolute;right:3px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--muted);cursor:pointer;font-size:16px;line-height:1;padding:3px 6px;border-radius:4px}
.fat-search-clear:hover{color:var(--text);background:var(--s2)}
.fat-view-tabs{display:flex;gap:2px;background:var(--s2);border-radius:6px;padding:3px;margin-left:auto;flex-shrink:0}
.fat-view-tab{padding:5px 14px;font-size:12px;font-family:var(--mono);color:var(--muted);cursor:pointer;border-radius:4px;border:none;background:transparent;transition:background .12s,color .12s}
.fat-view-tab.active{background:var(--s3);color:var(--text)}
.fat-inner{flex:1;min-height:0;overflow-y:auto;padding:16px 24px 24px;max-width:var(--cal-max);width:100%;margin:0 auto}
.fat-charts-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0 18px}
.fat-chart-box{background:var(--s1);border:1px solid var(--border);border-radius:var(--r);padding:14px}
.fat-chart-box h4{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:10px}
.fat-txn-table{width:100%;border-collapse:collapse;font-size:12.5px}
.fat-txn-table th{font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-family:var(--mono);font-weight:500;padding:5px 8px 6px;border-bottom:2px solid var(--border);text-align:left;white-space:nowrap}
/* Sticky header — opt-in only, and only for a table that is itself the sole
   scrolling content of .fat-inner. Two stacked tables (Categorias' main list
   + the nested "Sem categoria" table) or a table living outside .fat-inner's
   managed scroll region (e.g. the Family view's Despesas table, which reuses
   .fat-txn-table but has no scrolling ancestor of its own) would each pin to
   the same top:0 and paint over one another or the page itself. */
.fat-sticky-thead th{position:sticky;top:0;background:var(--bg);z-index:1}
.fat-txn-table td{padding:5px 8px;border-bottom:1px solid var(--border);vertical-align:middle}
.fat-txn-table tr:last-child td{border-bottom:none}
.fat-txn-table tbody tr:hover td{background:var(--s2)}
.fat-th-chk,.fat-td-chk{width:26px;text-align:center!important}
.fat-th-chk input,.fat-td-chk input{width:auto;margin:0;cursor:pointer}
.fat-th-sort{cursor:pointer;user-select:none}
.fat-th-sort:hover{color:var(--text)}
.fat-sort-ind{display:inline-block;width:8px;margin-left:2px;font-size:8px}
.fat-bulk-bar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;background:var(--s2);border:1px solid var(--border);border-radius:var(--r);padding:8px 12px;margin-bottom:10px}
.fat-bulk-count{font-size:12px;font-weight:600;white-space:nowrap}
.fat-bulk-hint{font-size:11px;color:var(--muted)}
.fat-bulk-bar select{width:auto;min-width:160px;padding:6px 10px;font-size:12px}
.fat-pager{display:flex;align-items:center;justify-content:center;gap:14px;padding:14px 0 4px;font-size:12px;color:var(--muted);font-family:var(--mono)}
.fat-pager button:disabled{opacity:.4;cursor:default}
.fat-src-inline-input{width:100%;min-width:110px;padding:4px 7px;font-size:12px;border-radius:5px;background:var(--s2);border:1px solid var(--border);color:var(--text)}
.fat-td-actions{white-space:nowrap;width:1%}
.fat-td-actions .fat-cat-new-btn{margin-right:4px}
.fat-td-date{font-family:var(--mono);font-size:12px;color:var(--muted);white-space:nowrap}
.fat-td-merchant{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}
.fat-td-cat{font-size:12px;color:var(--muted);white-space:nowrap}
.fat-cat-cell{display:flex;align-items:center;gap:4px}
.fat-cat-inline-sel{width:auto;min-width:110px;max-width:170px;padding:3px 6px;font-size:11px;border-radius:5px;background:var(--s2);border:1px solid var(--border);color:var(--text)}
.fat-cat-new-btn{flex-shrink:0;width:20px;height:20px;padding:0;line-height:1;font-size:13px;border-radius:5px;border:1px solid var(--border);background:var(--s2);color:var(--muted);cursor:pointer}
.fat-cat-new-btn:hover{background:var(--s3);color:var(--text)}
.fat-td-amt{font-family:var(--mono);font-weight:600;text-align:right!important;white-space:nowrap}
.fat-kw{font-size:11px;font-family:var(--mono);background:var(--s2);border:1px solid var(--border);border-radius:10px;padding:1px 4px 1px 8px;color:var(--muted);display:inline-flex;align-items:center;gap:2px}
.fat-kw-rm{background:none;border:none;color:var(--muted);cursor:pointer;font-size:13px;padding:0 3px;line-height:1}
.fat-kw-rm:hover{color:var(--red)}
.fat-kw-empty{font-size:11px;color:var(--muted);font-style:italic}
.fat-add-cat-row{display:flex;gap:8px;margin-bottom:12px;align-items:center}
.fat-add-cat-row input{flex:1;padding:8px 12px;font-size:13px}
.fat-cats-table{width:fit-content;table-layout:fixed}
.fat-cat-td-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fat-cat-kws-wrap{display:flex;flex-wrap:wrap;gap:4px;max-height:24px;overflow:hidden}
.fat-cat-kws-wrap.expanded{max-height:none}
.fat-kw-toggle{display:block;margin-top:4px;background:none;border:none;color:var(--accent);font-size:11px;font-family:var(--mono);cursor:pointer;padding:0}
.fat-kw-toggle:hover{text-decoration:underline}
.fat-cats-layout{display:flex;gap:20px;align-items:flex-start}
.fat-cats-main{flex-shrink:0}
.fat-uncat-col{flex:1;min-width:220px;max-width:420px;overflow-y:auto}
.fat-uncat-box{background:var(--s2);border:1px solid var(--border);border-radius:var(--r);padding:12px 14px}
.fat-uncat-box .section-title{margin:0 0 10px}
.fat-uncat-box .fat-sticky-thead th{background:var(--s2)}
.fat-empty{text-align:center;padding:36px 0;color:var(--muted);font-size:13px;font-family:var(--mono)}
.fat-msel{position:relative}
.fat-msel-btn{width:auto;min-width:130px;padding:7px 10px;font-size:13px;text-align:left;background:var(--s2);border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fat-msel-btn:hover{background:var(--s3)}
.fat-msel-panel{display:none;position:absolute;top:calc(100% + 4px);left:0;z-index:20;min-width:180px;max-height:260px;overflow-y:auto;background:var(--s1);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.3);padding:6px}
.fat-msel-panel.open{display:block}
.fat-msel-opt{display:flex;align-items:center;gap:8px;padding:6px 8px;font-size:13px;border-radius:5px;cursor:pointer;white-space:nowrap}
.fat-msel-opt:hover{background:var(--s2)}
.fat-msel-opt input{width:auto;margin:0}
.fat-msel-empty{padding:8px;font-size:12px;color:var(--muted)}
.fat-msel-clear{display:block;width:100%;text-align:left;padding:6px 8px;font-size:12px;color:var(--muted);border:none;background:none;cursor:pointer;border-top:1px solid var(--border);margin-top:4px}
.fat-msel-clear:hover{color:var(--text)}
@media(max-width:680px){
  .fat-filter-bar{padding:8px 12px;gap:6px}
  .fat-inner{padding:10px 12px 16px}
  .fat-charts-row{grid-template-columns:1fr}
  .fat-view-tabs{margin-left:0;order:10;width:100%}
  .cal-toolbar{flex-wrap:wrap}
  .fat-cats-layout{flex-direction:column}
  .fat-uncat-col{max-width:none;width:100%}
}

/* Former inline styles of index.html's own markup (KB Decisions/083).
   They only paint the page before app.js runs: app.js then applies the same
   declarations as real inline styles through the CSSOM and sets data-s-on,
   which switches these rules off — so JS el.style.* resets behave exactly
   as they did with style="" attributes. */
:is([data-s~="s-01ef7fc"]:not([data-s-on]),#_#_#_){display:flex;gap:8px;align-items:center}
:is([data-s~="s-0459d1b"]:not([data-s-on]),#_#_#_){font-size:12px;color:var(--muted);line-height:1.5;margin-bottom:20px}
:is([data-s~="s-06a3134"]:not([data-s-on]),#_#_#_){font-size:26px;margin-bottom:6px}
:is([data-s~="s-0d383dd"]:not([data-s-on]),#_#_#_){margin-top:14px;display:none}
:is([data-s~="s-0ea747b"]:not([data-s-on]),#_#_#_){display:flex;align-items:center;gap:6px;margin:0;cursor:pointer}
:is([data-s~="s-0fac918"]:not([data-s-on]),#_#_#_){width:220px}
:is([data-s~="s-1169661"]:not([data-s-on]),#_#_#_){margin:0}
:is([data-s~="s-12bd5ba"]:not([data-s-on]),#_#_#_){font-size:12px;color:var(--muted);font-family:var(--mono)}
:is([data-s~="s-12bfcb7"]:not([data-s-on]),#_#_#_){width:154px;overflow-y:auto;display:flex;flex-direction:column;gap:4px;padding:2px 0;scrollbar-width:thin}
:is([data-s~="s-14eb3eb"]:not([data-s-on]),#_#_#_){display:flex;flex-direction:column;align-items:flex-end;gap:6px}
:is([data-s~="s-199a1f6"]:not([data-s-on]),#_#_#_){font-size:15px;font-weight:600;margin-bottom:6px}
:is([data-s~="s-1a2ca9e"]:not([data-s-on]),#_#_#_){white-space:pre-line;line-height:1.5}
:is([data-s~="s-1b0f499"]:not([data-s-on]),#_#_#_){margin-top:16px}
:is([data-s~="s-1cd8325"]:not([data-s-on]),#_#_#_){display:block;margin-top:10px;text-align:center;font-size:11px;color:var(--muted);font-family:var(--mono)}
:is([data-s~="s-21e8bb6"]:not([data-s-on]),#_#_#_){max-width:160px}
:is([data-s~="s-249d010"]:not([data-s-on]),#_#_#_){margin:0 0 12px}
:is([data-s~="s-2517a51"]:not([data-s-on]),#_#_#_){margin-top:22px}
:is([data-s~="s-26854a6"]:not([data-s-on]),#_#_#_){width:400px}
:is([data-s~="s-27a582e"]:not([data-s-on]),#_#_#_){display:flex;gap:10px;align-items:flex-end}
:is([data-s~="s-28c0f6e"]:not([data-s-on]),#_#_#_){width:160px}
:is([data-s~="s-2b583d7"]:not([data-s-on]),#_#_#_){margin-bottom:14px}
:is([data-s~="s-30086cd"]:not([data-s-on]),#_#_#_){position:relative;height:260px}
:is([data-s~="s-3066b2e"]:not([data-s-on]),#_#_#_){font-size:12px;color:var(--muted);margin-bottom:12px}
:is([data-s~="s-30de678"]:not([data-s-on]),#_#_#_){font-size:32px;margin-bottom:12px}
:is([data-s~="s-30e741d"]:not([data-s-on]),#_#_#_){width:auto}
:is([data-s~="s-3a64771"]:not([data-s-on]),#_#_#_){margin-top:14px;text-align:center}
:is([data-s~="s-3b6a3a6"]:not([data-s-on]),#_#_#_){cursor:pointer}
:is([data-s~="s-3cb0c0a"]:not([data-s-on]),#_#_#_){display:flex;align-items:flex-start;gap:8px;font-size:12px;color:var(--muted);text-align:left;margin:14px 0 4px;cursor:pointer;line-height:1.5}
:is([data-s~="s-3daa038"]:not([data-s-on]),#_#_#_){display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
:is([data-s~="s-3de8f98"]:not([data-s-on]),#_#_#_){display:flex;gap:8px;flex-wrap:wrap}
:is([data-s~="s-3f76aa4"]:not([data-s-on]),#_#_#_){font-size:11px;flex:1;font-family:var(--mono)}
:is([data-s~="s-49cd092"]:not([data-s-on]),#_#_#_){display:flex;gap:6px}
:is([data-s~="s-4b3de78"]:not([data-s-on]),#_#_#_){flex:2}
:is([data-s~="s-4e420af"]:not([data-s-on]),#_#_#_){margin-bottom:6px}
:is([data-s~="s-4e73ee2"]:not([data-s-on]),#_#_#_){display:none;margin-top:18px}
:is([data-s~="s-532b403"]:not([data-s-on]),#_#_#_){max-width:180px}
:is([data-s~="s-5398792"]:not([data-s-on]),#_#_#_){text-align:center;font-size:12px;color:var(--muted);font-family:var(--mono);margin:6px 0 20px}
:is([data-s~="s-54c2afb"]:not([data-s-on]),#_#_#_){text-align:right}
:is([data-s~="s-55585d5"]:not([data-s-on]),#_#_#_){max-width:260px}
:is([data-s~="s-55cec09"]:not([data-s-on]),#_#_#_){margin-top:5px}
:is([data-s~="s-57c5c69"]:not([data-s-on]),#_#_#_){width:560px}
:is([data-s~="s-583f758"]:not([data-s-on]),#_#_#_){margin-top:28px}
:is([data-s~="s-60e0f4a"]:not([data-s-on]),#_#_#_){font-size:12px;color:var(--muted);line-height:1.6;margin-bottom:28px}
:is([data-s~="s-61bd8a2"]:not([data-s-on]),#_#_#_){display:none;margin-top:10px;margin-bottom:14px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:8px}
:is([data-s~="s-681aa83"]:not([data-s-on]),#_#_#_){font-size:12px;color:var(--muted);margin-bottom:8px}
:is([data-s~="s-68aaf04"]:not([data-s-on]),#_#_#_){display:none;text-align:center}
:is([data-s~="s-69960cc"]:not([data-s-on]),#_#_#_){display:none;margin-top:14px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:8px}
:is([data-s~="s-6b99de8"]:not([data-s-on]),#_#_#_){display:none}
:is([data-s~="s-6c07a8a"]:not([data-s-on]),#_#_#_){display:flex;gap:8px;margin-bottom:16px}
:is([data-s~="s-6e00031"]:not([data-s-on]),#_#_#_){display:block;text-align:left;font-size:11px;color:var(--muted);margin:10px 0 4px}
:is([data-s~="s-761d3ad"]:not([data-s-on]),#_#_#_){margin-bottom:10px}
:is([data-s~="s-7a96d9b"]:not([data-s-on]),#_#_#_){max-width:140px}
:is([data-s~="s-7cba939"]:not([data-s-on]),#_#_#_){position:relative;height:340px}
:is([data-s~="s-7d4eea3"]:not([data-s-on]),#_#_#_){font-size:12px;color:var(--muted);margin:0 0 8px;line-height:1.5}
:is([data-s~="s-7f34be1"]:not([data-s-on]),#_#_#_){display:none;font-size:11px;padding:3px 8px}
:is([data-s~="s-7fc448e"]:not([data-s-on]),#_#_#_){font-size:12px;color:var(--muted)}
:is([data-s~="s-7ffe376"]:not([data-s-on]),#_#_#_){color:var(--muted);font-size:12px;margin-bottom:14px}
:is([data-s~="s-849a358"]:not([data-s-on]),#_#_#_){font-size:22px;margin-bottom:6px}
:is([data-s~="s-86de7ac"]:not([data-s-on]),#_#_#_){margin-top:18px}
:is([data-s~="s-87c136d"]:not([data-s-on]),#_#_#_){margin-bottom:16px}
:is([data-s~="s-8822c62"]:not([data-s-on]),#_#_#_){display:flex;gap:8px;align-items:center;margin-bottom:12px}
:is([data-s~="s-8a77e5a"]:not([data-s-on]),#_#_#_){margin-top:8px}
:is([data-s~="s-8b0b761"]:not([data-s-on]),#_#_#_){display:none;font-size:12px;color:var(--success,#22c55e);margin:8px 0 4px;line-height:1.5}
:is([data-s~="s-92b4eb1"]:not([data-s-on]),#_#_#_){margin-bottom:16px;display:none}
:is([data-s~="s-92fa2f5"]:not([data-s-on]),#_#_#_){display:none;margin-bottom:8px}
:is([data-s~="s-9366192"]:not([data-s-on]),#_#_#_){font-size:12px;color:var(--muted);line-height:1.5;margin:0 0 14px}
:is([data-s~="s-97445a8"]:not([data-s-on]),#_#_#_){flex:1}
:is([data-s~="s-9e97c6b"]:not([data-s-on]),#_#_#_){display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
:is([data-s~="s-a0566aa"]:not([data-s-on]),#_#_#_){padding:14px 22px 0}
:is([data-s~="s-a26bda7"]:not([data-s-on]),#_#_#_){margin-top:20px}
:is([data-s~="s-a56528c"]:not([data-s-on]),#_#_#_){display:none;position:relative;height:200px;margin-bottom:16px}
:is([data-s~="s-a76d597"]:not([data-s-on]),#_#_#_){display:flex;gap:8px}
:is([data-s~="s-a77ceec"]:not([data-s-on]),#_#_#_){font-size:12px;color:var(--muted);margin:0 0 10px;line-height:1.5}
:is([data-s~="s-a805525"]:not([data-s-on]),#_#_#_){color:var(--accent)}
:is([data-s~="s-ae047e4"]:not([data-s-on]),#_#_#_){width:auto;margin-top:2px;flex-shrink:0}
:is([data-s~="s-bc23002"]:not([data-s-on]),#_#_#_){margin:-6px 0 12px}
:is([data-s~="s-c6779e1"]:not([data-s-on]),#_#_#_){font-size:12px;color:var(--muted);display:block;margin-bottom:4px}
:is([data-s~="s-c92fd94"]:not([data-s-on]),#_#_#_){display:flex;align-items:center;gap:8px;cursor:pointer}
:is([data-s~="s-ce57ccf"]:not([data-s-on]),#_#_#_){background:var(--s2);color:var(--text);border:1px solid var(--border);border-radius:var(--r);padding:3px 8px;font-size:12px;cursor:pointer}
:is([data-s~="s-cfd7bd7"]:not([data-s-on]),#_#_#_){margin-top:12px;text-align:center}
:is([data-s~="s-d2c171b"]:not([data-s-on]),#_#_#_){margin-top:10px}
:is([data-s~="s-d6f2af6"]:not([data-s-on]),#_#_#_){margin-top:14px}
:is([data-s~="s-da12f28"]:not([data-s-on]),#_#_#_){margin-bottom:12px}
:is([data-s~="s-e526db7"]:not([data-s-on]),#_#_#_){display:none;padding:36px 0;text-align:center}
:is([data-s~="s-e6f7a17"]:not([data-s-on]),#_#_#_){font-size:11px;color:var(--muted);font-family:var(--mono)}
:is([data-s~="s-ead04fd"]:not([data-s-on]),#_#_#_){display:flex;gap:14px;height:340px}
:is([data-s~="s-ec6626e"]:not([data-s-on]),#_#_#_){width:70px}
:is([data-s~="s-f1a1ea7"]:not([data-s-on]),#_#_#_){font-size:12px;color:var(--muted);margin-bottom:16px;font-family:var(--mono)}
:is([data-s~="s-f1dacd1"]:not([data-s-on]),#_#_#_){display:none;padding:0 4px}
:is([data-s~="s-f261486"]:not([data-s-on]),#_#_#_){flex:1;position:relative;min-width:0}
:is([data-s~="s-f5294d1"]:not([data-s-on]),#_#_#_){width:420px}
:is([data-s~="s-f899eca"]:not([data-s-on]),#_#_#_){position:relative;height:200px}
:is([data-s~="s-f9065b3"]:not([data-s-on]),#_#_#_){font-size:12px;color:var(--muted);line-height:1.6;max-width:300px;margin:0 auto 20px}
:is([data-s~="s-fc682ba"]:not([data-s-on]),#_#_#_){margin-top:16px;display:flex;justify-content:space-between;align-items:center}
:is([data-s~="s-fdf33f2"]:not([data-s-on]),#_#_#_){margin-bottom:8px}
:is([data-s~="s-fe7b497"]:not([data-s-on]),#_#_#_){margin-top:6px}
