*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f6f6f4;--surface: #ffffff;--surface-2: #f1f1ef;--surface-3: #e8e8e5;--border: rgba(0,0,0,.08);--border-md: rgba(0,0,0,.13);--border-strong: rgba(0,0,0,.2);--text: #171715;--text-2: #57574f;--text-3: #9c9c94;--success: #1a7a45;--success-bg: #ecf7f1;--warning: #885c00;--warning-bg: #fdf7ea;--danger: #af2e2e;--danger-bg: #fdf0f0;--info: #1848a0;--info-bg: #edf2fd;--adv-accent: #5b47e0;--adv-accent-2: #ede9fd;--nav-w: 228px;--topbar-h: 52px;--r: 8px;--r-lg: 12px;--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--app-zoom: 1.1;--vh100: calc(100vh / var(--app-zoom))}html,body{height:100%}#root{zoom:var(--app-zoom)}body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:13px;line-height:1.5;min-height:100%;-webkit-font-smoothing:antialiased;transition:background .15s}body.adv-mode{background:#f5f4f2}.app-root{min-height:var(--vh100)}.app-root.adv-mode{background:#f5f4f2}.sidebar{width:var(--nav-w);height:var(--vh100);background:var(--surface);border-right:.5px solid var(--border-md);display:flex;flex-direction:column;position:fixed;top:0;left:0;z-index:100;transition:width .15s}.sidebar-logo{height:var(--topbar-h);padding:0 16px;border-bottom:.5px solid var(--border-md);display:flex;align-items:center;gap:10px;flex-shrink:0}.logo-mark{width:28px;height:28px;border-radius:7px;background:var(--text);display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;font-weight:500;flex-shrink:0}.logo-text{min-width:0}.logo-name{font-size:13px;font-weight:500}.logo-role{font-size:11px;color:var(--text-3)}nav.side-nav{padding:10px 8px;flex:1;overflow-y:auto}.nav-section{font-size:10px;font-weight:500;letter-spacing:.07em;color:var(--text-3);text-transform:uppercase;padding:10px 8px 4px}.nav-item{display:flex;align-items:center;gap:9px;padding:0 10px;height:36px;border-radius:var(--r);cursor:pointer;color:var(--text-2);font-size:13px;transition:background .1s,color .1s;border:none;border-left:2px solid transparent;background:none;width:100%;text-align:left;font-family:var(--font)}.nav-item i,.nav-item svg{font-size:16px;flex-shrink:0}.nav-item:hover{background:var(--surface-3);color:var(--text)}.nav-item.active{background:var(--surface-2);color:var(--text);font-weight:500;border-left:2px solid var(--text)}.nav-badge{margin-left:auto;font-size:11px;font-weight:500;background:var(--warning-bg);color:var(--warning);padding:1px 7px;border-radius:100px;flex-shrink:0}.nav-badge.red{background:var(--danger-bg);color:var(--danger)}.role-switcher{border-top:.5px solid var(--border-md);padding:8px;min-height:var(--topbar-h);display:flex;flex-direction:column;gap:8px}.role-current{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:var(--r);cursor:pointer;font-size:13px;width:100%;border:.5px solid var(--border-md);background:var(--surface-2);transition:background .1s;position:relative}.role-current:hover{background:var(--surface-3)}.role-avatar{width:26px;height:26px;border-radius:50%;background:var(--text);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;flex-shrink:0}.role-avatar.pub{background:#1a7a45}.role-avatar.adv{background:var(--info)}.role-info{flex:1;min-width:0;text-align:left}.role-info .r-name{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.role-info .r-email{font-size:11px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.role-dropdown{display:none;position:absolute;bottom:calc(100% + 6px);left:0;right:0;background:var(--surface);border:.5px solid var(--border-strong);border-radius:var(--r);overflow:hidden;z-index:200;box-shadow:0 8px 24px #0000001f}.role-dropdown.open{display:block}.role-option{display:flex;align-items:center;gap:9px;padding:9px 12px;cursor:pointer;font-size:13px;border:none;background:none;width:100%;text-align:left;font-family:var(--font);color:var(--text);transition:background .1s}.role-option:hover{background:var(--surface-2)}.role-option.active-role{font-weight:500}.role-sep{height:.5px;background:var(--border-md);margin:4px 0}.main{margin-left:var(--nav-w);min-width:0;display:flex;flex-direction:column;min-height:var(--vh100);transition:margin-left .15s}.topbar{height:var(--topbar-h);padding:0 28px;border-bottom:.5px solid var(--border-md);background:var(--surface);display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:50;flex-shrink:0}.topbar>i,.topbar>svg{font-size:16px;color:var(--text-3);flex-shrink:0}.topbar-title{font-size:14px;font-weight:500}.topbar-sub{font-size:12px;color:var(--text-3)}.topbar-trailing{margin-left:auto;display:flex;align-items:center;gap:10px;flex-shrink:0}.topbar-lang{display:none}.topbar-actions{display:flex;gap:8px;align-items:center}.tabs-bar{height:40px;padding:0 28px;display:flex;align-items:stretch;background:var(--surface);border-bottom:.5px solid var(--border-md);flex-shrink:0}.tabs-bar.tabs-inset{margin:-28px -28px 24px}.tab{padding:0 16px;font-size:13px;cursor:pointer;color:var(--text-2);background:none;border:none;font-family:var(--font);border-bottom:2px solid transparent;margin-bottom:-.5px;transition:color .1s;white-space:nowrap;height:40px;display:flex;align-items:center}.tab:hover{color:var(--text)}.tab.active{color:var(--text);border-bottom-color:var(--text);font-weight:500}.tab-badge{margin-left:6px;font-size:10px;font-weight:500;padding:1px 6px;border-radius:100px;line-height:1.5}.tab-badge.warn{background:var(--warning-bg);color:var(--warning)}.tab-badge.red{background:var(--danger-bg);color:var(--danger)}.content{padding:28px;flex:1}.content.content-flush{padding:0;display:flex;flex-direction:column;min-height:0}.wiz-scroll{flex:1;overflow-y:auto;padding:28px;min-height:0}.wiz-nav{position:sticky;bottom:0;z-index:10;background:var(--surface);border-top:.5px solid var(--border-md);padding:12px 28px;display:flex;justify-content:space-between;align-items:center}.btn{display:inline-flex;align-items:center;gap:6px;padding:0 14px;height:32px;border-radius:var(--r);font-size:13px;font-weight:500;font-family:var(--font);cursor:pointer;border:.5px solid var(--border-strong);background:var(--surface);color:var(--text);transition:background .1s,transform .08s;white-space:nowrap}.btn:hover{background:var(--surface-2)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.55;cursor:default}.btn i,.btn svg{font-size:15px}.btn.primary{background:var(--text);color:#fff;border-color:var(--text)}.btn.primary:hover{background:#2e2e2c}.btn.sm{height:28px;padding:0 10px;font-size:12px}.btn.ghost{border-color:transparent;background:none;color:var(--text-2)}.btn.ghost:hover{background:var(--surface-2);color:var(--text)}.btn.success{color:var(--success);border-color:var(--success)}.btn.success:hover{background:var(--success-bg)}.btn.danger{color:var(--danger);border-color:var(--danger)}.btn.danger:hover{background:var(--danger-bg)}.btn.block{width:100%;justify-content:center}.tlink{font-size:12px;color:var(--text-2);text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--border-strong);background:none;border:none;font-family:var(--font);cursor:pointer;padding:0;white-space:nowrap;transition:color .1s;display:inline-flex;align-items:center;gap:3px}.tlink:hover{color:var(--text);text-decoration-color:var(--text)}.tlink.blue{color:var(--info)}.tlink.blue:hover{color:var(--info);text-decoration:underline}.tlink.danger{color:var(--danger)}.tlinks{display:flex;gap:12px;align-items:center;justify-content:flex-end;flex-wrap:wrap;row-gap:4px}.filters{display:flex;gap:8px;margin-bottom:16px;align-items:center;flex-wrap:wrap}input[type=text],input[type=email],input[type=number],input[type=password],input[type=url],select,textarea{height:34px;padding:0 11px;border:.5px solid var(--border-strong);border-radius:var(--r);font-size:13px;font-family:var(--font);background:var(--surface);color:var(--text);outline:none;appearance:none;-webkit-appearance:none}select{padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239c9c94' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center}textarea{height:auto;padding:9px 11px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--text);box-shadow:0 0 0 3px #1717150f}.filter-select,.filter-input{height:32px;font-size:13px}.card{background:var(--surface);border:.5px solid var(--border-md);border-radius:var(--r-lg);padding:22px 24px;margin-bottom:14px}.card.flat{background:var(--surface-2)}.card-header{display:flex;align-items:center;gap:8px;margin-bottom:16px;padding-bottom:14px;border-bottom:.5px solid var(--border)}.card-header i,.card-header svg{font-size:16px;color:var(--text-3);flex-shrink:0}.card-title{font-size:13px;font-weight:500}.card-sub{font-size:12px;color:var(--text-3);margin-top:1px}.card-header-right{margin-left:auto;display:flex;align-items:center;gap:8px}.metrics{display:grid;gap:8px;margin-bottom:16px}.metrics-4{grid-template-columns:repeat(4,1fr)}.metrics-3{grid-template-columns:repeat(3,1fr)}.metric{background:var(--surface-2);border-radius:var(--r);padding:16px 18px}.metric-label{font-size:11px;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.metric-value{font-size:24px;font-weight:600;line-height:1.2;font-variant-numeric:tabular-nums}.metric-value.warn{color:var(--warning)}.metric-value.danger{color:var(--danger)}.metric-value.ok{color:var(--success)}.adv-metrics{gap:12px}.metric.adv{background:var(--surface);border:.5px solid var(--border-md);border-radius:12px;padding:20px 22px}.metric.adv .metric-label{text-transform:none;letter-spacing:0;color:var(--text-2)}.metric.adv .metric-value{font-size:28px}.metric.adv .metric-value.accent{color:var(--adv-accent)}.metric-delta{font-size:11px;color:var(--text-3);margin-top:6px}.table-wrap{border:.5px solid var(--border-md);border-radius:10px;overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px;table-layout:auto}thead tr{background:var(--surface-2)}th{text-align:left;padding:0 14px;height:34px;font-size:11px;font-weight:500;color:var(--text-3);text-transform:uppercase;border-bottom:.5px solid var(--border-md);letter-spacing:.04em;white-space:nowrap}td{padding:0 14px;height:48px;border-bottom:.5px solid var(--border);vertical-align:middle;font-variant-numeric:tabular-nums}tr:last-child td{border-bottom:none}tbody tr{transition:background .1s}tbody tr:hover td{background:#fafaf9}.td-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;max-width:220px;white-space:nowrap}.td-sub{font-size:11px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;max-width:220px;white-space:nowrap}td code{max-width:120px;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}th.right,td.right{text-align:right}.s{font-size:12px}.s-ok{color:var(--success)}.s-warn{color:var(--warning)}.s-danger{color:var(--danger)}.s-info{color:var(--info)}.s-muted{color:var(--text-3)}.pill{font-size:11px;font-weight:500;padding:2px 9px;border-radius:100px;white-space:nowrap}.pill-warn{background:var(--warning-bg);color:var(--warning)}.pill-red{background:var(--danger-bg);color:var(--danger)}.pill-ok{background:var(--success-bg);color:var(--success)}.pill-info{background:var(--info-bg);color:var(--info)}.tag{display:inline-block;font-size:11px;padding:2px 7px;border-radius:5px;margin:2px 2px 2px 0;background:var(--surface-2);color:var(--text-2);border:.5px solid var(--border)}.tag-ok{background:var(--success-bg);color:var(--success);border-color:transparent}.tag-bad{background:var(--danger-bg);color:var(--danger);border-color:transparent}.tag-blue{background:var(--info-bg);color:var(--info);border-color:transparent}.ltag{font-family:var(--mono);font-size:11px;padding:2px 7px;border-radius:5px;border:.5px solid;white-space:nowrap}.ltag-topup{background:#ecf7f1;border-color:#1a7a454d;color:#1a7a45}.ltag-charge{background:#fdf0f0;border-color:#af2e2e4d;color:#af2e2e}.ltag-earning{background:#edf2fd;border-color:#1848a04d;color:#1848a0}.ltag-fee{background:#f5f3ff;border-color:#5b47e04d;color:#5b47e0}.ltag-payout{background:#fdf7ea;border-color:#885c004d;color:#885c00}.ltag-adjust{background:#f1f1ef;border-color:#00000026;color:#57574f}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.dblock{border:.5px solid var(--border-md);border-radius:var(--r);overflow:hidden}.dblock-h{padding:7px 12px;background:var(--surface-2);font-size:11px;font-weight:500;color:var(--text-2);border-bottom:.5px solid var(--border)}.dblock-b{padding:10px 12px}.ledger-row{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:.5px solid var(--border)}.ledger-row:last-child{border-bottom:none}.l-type{min-width:0;flex:0 0 auto}.l-ref{font-size:12px;color:var(--text-3);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.l-amount{font-size:13px;font-weight:500;white-space:nowrap;font-variant-numeric:tabular-nums}.l-credit{color:var(--success)}.l-debit{color:var(--danger)}.l-date{font-size:11px;color:var(--text-3);white-space:nowrap;flex-shrink:0;font-variant-numeric:tabular-nums}.recon-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--surface-2);border-radius:var(--r);padding:10px 16px;font-size:13px;color:var(--text-2);margin-bottom:16px}.recon-bar>i,.recon-bar>svg{font-size:16px}.recon-num{font-weight:500;color:var(--text);font-variant-numeric:tabular-nums}.recon-eq,.recon-sep{color:var(--text-3)}.alert{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:var(--r);font-size:13px;margin-bottom:12px}.alert i,.alert svg{font-size:15px;flex-shrink:0;margin-top:1px}.alert-warn{background:var(--warning-bg);color:var(--warning)}.alert-info{background:var(--info-bg);color:var(--info)}.alert-ok{background:var(--success-bg);color:var(--success)}.creative-box{background:var(--surface-2);border-radius:var(--r);padding:14px;margin-bottom:12px}.creative-sentence{font-size:14px;margin-bottom:6px;line-height:1.5}.creative-meta{font-size:12px;color:var(--text-3);display:flex;gap:14px;flex-wrap:wrap}.creative-meta i,.creative-meta svg{font-size:13px;vertical-align:-2px;margin-right:3px}.creative-actions{display:flex;gap:8px;padding-top:4px}.payout-detail{background:var(--surface-2);border-top:.5px solid var(--border-md);padding:16px 20px}.pd-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:12px}.pd-item .k{font-size:11px;color:var(--text-3);margin-bottom:2px}.pd-item .v{font-size:13px;font-weight:500;color:var(--text);font-variant-numeric:tabular-nums}.overlay{position:fixed;inset:0;background:#00000040;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:300;display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:var(--surface);border-radius:14px;border:.5px solid var(--border-strong);width:480px;max-width:94vw;max-height:90vh;overflow-y:auto;padding:28px;box-shadow:0 8px 32px #0000001f;animation:modalIn .15s ease-out}.modal-title{font-size:15px;font-weight:600;margin-bottom:16px}.modal-footer{display:flex;gap:8px;justify-content:flex-end;margin-top:18px;padding-top:16px;border-top:.5px solid var(--border)}@keyframes modalIn{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin .9s linear infinite;display:inline-block}.ai-eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:500;color:var(--adv-accent);background:var(--adv-accent-2);border-radius:100px;padding:3px 10px;letter-spacing:.01em}.ai-dot{width:7px;height:7px;border-radius:50%;background:linear-gradient(135deg,#2f66f0,#7c47f0);flex-shrink:0}.frow{display:flex;gap:10px;margin-bottom:10px;flex-wrap:wrap}.fg{display:flex;flex-direction:column;gap:4px;flex:1;min-width:140px;margin-bottom:14px}.fg:last-child{margin-bottom:0}.fg.wide{flex:1 1 100%}.fg label{font-size:12px;color:var(--text-2)}.fg input,.fg select,.fg textarea{width:100%}.fg-hint{font-size:11px;color:var(--text-3);margin-top:2px}.fg-error{font-size:11px;color:var(--danger);margin-top:2px}.fg.invalid input,.fg.invalid select,.fg.invalid textarea{border-color:var(--danger)}.req{color:var(--danger)}.empty{text-align:center;padding:48px 20px;color:var(--text-3);display:flex;flex-direction:column;align-items:center;gap:8px}.empty>i,.empty>svg{font-size:28px;display:block}.empty p{font-size:13px}.viewas-bar{background:var(--info-bg);border-bottom:.5px solid rgba(24,72,160,.18);padding:0 28px;height:36px;display:flex;align-items:center;gap:10px;font-size:12px;color:var(--info);flex-shrink:0}.viewas-bar>i,.viewas-bar>svg{font-size:15px}.viewas-bar button{margin-left:auto;font-size:12px;font-weight:500;color:var(--info);background:none;border:none;cursor:pointer;font-family:var(--font);display:inline-flex;align-items:center;gap:4px}.viewas-bar button:hover{text-decoration:underline}.api-key-box{display:flex;align-items:center;gap:8px;background:var(--surface-2);border:.5px solid var(--border-md);border-radius:var(--r);padding:0 12px;height:36px;font-size:13px}.api-key-box code{flex:1;font-family:var(--mono);font-size:12px;color:var(--text-2);letter-spacing:.02em;background:none;padding:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.api-key-box.reveal{height:auto;min-height:36px;padding:8px 12px}.api-key-box.reveal code{overflow:visible;text-overflow:unset;white-space:pre-wrap;word-break:break-all;-webkit-user-select:all;user-select:all;color:var(--text)}.login-reset{border-bottom:.5px solid var(--border-md);margin:0 0 14px;padding-bottom:14px}.login-reset-title{font-size:12px;font-weight:600;color:var(--text-2);margin:0 0 10px}.progress-bar{background:var(--surface-3);border-radius:4px;height:6px;overflow:hidden;margin-top:6px}.progress-fill{height:100%;background:var(--text);border-radius:4px;transition:width .3s}.progress-fill.warn{background:var(--warning)}code{font-family:var(--mono);font-size:12px;background:var(--surface-2);padding:1px 5px;border-radius:4px}.codeblock{background:#18181b;color:#e4e4e7;border-radius:10px;padding:18px 20px;font-family:var(--mono);font-size:12px;line-height:1.75;overflow-x:auto;white-space:pre}.codeblock .kw{color:#a78bfa}.codeblock .str{color:#86efac}.codeblock .com{color:#6b7280}.codeblock .fn{color:#93c5fd}.chart-wrap{position:relative;min-width:0}.chart-wrap canvas{max-width:100%}.chart-legend{display:flex;gap:16px;margin-bottom:14px}.chart-legend .li{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-2)}.chart-legend .dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}.chart-legend .dot.dash{width:12px;height:0;border-top:1.5px dashed var(--warning);border-radius:0}.donut-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.donut-center .v{font-size:22px;font-weight:600;line-height:1}.donut-center .l{font-size:11px;color:var(--text-2);margin-top:3px}.donut-legend .dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}.two-col>*{min-width:0}.section-note{font-size:12px;color:var(--text-3);margin-bottom:14px;line-height:1.5}.kv-list{display:flex;flex-direction:column;gap:12px;font-size:13px}.kv-line{display:flex;justify-content:space-between;align-items:center}.kv-line .k{color:var(--text-2)}.kv-line .v{font-weight:500}.muted{color:var(--text-3)}.big-money{font-size:28px;font-weight:600;margin-bottom:4px;font-variant-numeric:tabular-nums}.wiz-circle{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;background:var(--surface-3);color:var(--text-3);flex-shrink:0}.wiz-circle.done{background:var(--success);color:#fff}.wiz-circle.active{background:var(--text);color:#fff}.src-card{border:.5px solid var(--border-md);border-radius:8px;padding:14px;cursor:pointer;transition:border-color .1s,background .1s}.src-card:hover{border-color:var(--border-strong)}.src-card.active{border-color:var(--text);background:var(--surface-2)}.taginput{display:flex;flex-wrap:wrap;gap:6px;align-items:center;border:.5px solid var(--border-strong);border-radius:var(--r);padding:6px 8px;min-height:34px;background:var(--surface)}.taginput input{border:none;outline:none;height:22px;padding:0 2px;flex:1;min-width:80px;font-size:13px;background:none}.taginput input:focus{border:none;box-shadow:none}.tag2{display:inline-flex;align-items:center;gap:5px;background:var(--surface-2);border:.5px solid var(--border-md);border-radius:5px;padding:2px 8px;font-size:12px;color:var(--text-2)}.tag2 button{border:none;background:none;cursor:pointer;color:var(--text-3);font-size:14px;line-height:1;padding:0}.tag2 button:hover{color:var(--text)}.money-input{display:flex;align-items:center;border:.5px solid var(--border-strong);border-radius:var(--r);height:34px;overflow:hidden;background:var(--surface)}.money-input>span{padding:0 10px;color:var(--text-3);background:var(--surface-2);align-self:stretch;display:flex;align-items:center;border-right:.5px solid var(--border-md)}.money-input input{border:none;border-radius:0;flex:1;width:100%}.money-input input:focus{box-shadow:none}.sum-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:.5px solid var(--border);font-size:13px}.sum-row:last-child{border-bottom:none}.sum-row .k{color:var(--text-2)}.sum-row .v{font-weight:500;font-variant-numeric:tabular-nums}.creative-card{position:relative}.creative-card .x-btn{position:absolute;top:12px;right:10px;padding:0 8px}.creative-card .ai-tag{position:absolute;top:14px;right:46px}.lang-switch{display:inline-flex;align-self:flex-start;flex:0 0 auto;border:.5px solid var(--border-md);border-radius:var(--r);overflow:hidden}.lang-opt{font-family:var(--font);font-size:11px;font-weight:500;padding:4px 9px;border:none;background:var(--surface);color:var(--text-3);cursor:pointer}.lang-opt.active{background:var(--surface-2);color:var(--text)}.toast-stack{position:fixed;top:16px;right:16px;z-index:400;display:flex;flex-direction:column;gap:8px}.toast{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--r);font-size:13px;box-shadow:0 8px 24px #0000001f;border:.5px solid var(--border-md);background:var(--surface)}.toast.alert-ok{background:var(--success-bg);color:var(--success)}.toast.alert-err{background:var(--danger-bg);color:var(--danger)}.toast-close{background:none;border:none;cursor:pointer;font-size:16px;line-height:1;color:inherit}.login-page{min-height:var(--vh100);display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.login-card{width:100%;max-width:380px;background:var(--surface);border:.5px solid var(--border-md);border-radius:var(--r-lg);padding:28px}.login-logo{display:flex;align-items:center;gap:10px;margin-bottom:18px}.login-title{font-size:16px;font-weight:600}.login-sub{font-size:13px;color:var(--text-3);margin-bottom:20px}.login-demo{margin-top:18px;padding-top:16px;border-top:.5px solid var(--border-md)}.login-demo-label{display:block;font-size:11px;color:var(--text-3);margin-bottom:8px}.login-demo-row{display:flex;gap:8px}.login-demo-row .btn{flex:1}.center-state{min-height:var(--vh100);display:flex;align-items:center;justify-content:center;color:var(--text-3);font-size:14px}.mobile-menu-btn{display:none;width:32px;height:32px;border-radius:6px;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;color:var(--text-2);flex-shrink:0}.mobile-menu-btn:hover{background:var(--surface-3);color:var(--text)}.sidebar-backdrop{display:none}@media(max-width:860px){.sidebar{transform:translate(-100%);transition:transform .18s ease}.app-root.mobile-nav-open .sidebar{transform:translate(0);box-shadow:0 8px 32px #0000002e}.sidebar-backdrop{display:block;position:fixed;inset:0;z-index:99;background:#00000052}.mobile-menu-btn{display:flex}.main{margin-left:0}.topbar{padding:6px 14px;flex-wrap:wrap;height:auto;min-height:var(--topbar-h);row-gap:6px}.topbar-lang{display:inline-flex}.topbar-trailing{margin-left:auto;flex-wrap:wrap;justify-content:flex-end}.topbar-actions{flex-wrap:wrap;justify-content:flex-end}.tabs-bar{padding:0 14px;overflow-x:auto}.tabs-bar.tabs-inset{margin:-16px -14px 16px}.content{padding:16px 14px}.metrics-4{grid-template-columns:1fr 1fr}.two-col{grid-template-columns:1fr}.pd-grid{grid-template-columns:1fr 1fr}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-wrap table{min-width:640px}}.nav-toggle{margin-left:auto;flex-shrink:0;width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;color:var(--text-3);font-family:var(--font);transition:background .1s,color .1s}.nav-toggle:hover{background:var(--surface-3);color:var(--text)}.app-root.nav-collapsed{--nav-w: 60px}.app-root.nav-collapsed .logo-text,.app-root.nav-collapsed .logo-mark{display:none}.app-root.nav-collapsed .sidebar-logo{justify-content:center;padding:0;gap:0}.app-root.nav-collapsed .nav-toggle{margin-left:0}.app-root.nav-collapsed .nav-section{display:none}.app-root.nav-collapsed .nav-item{font-size:0;gap:0;padding:0;justify-content:center;border-left-width:0}.app-root.nav-collapsed .nav-item.active{border-left-width:0;background:var(--surface-2)}.app-root.nav-collapsed .nav-badge{display:none}.app-root.nav-collapsed .role-switcher{padding:8px 6px}.app-root.nav-collapsed .role-current{justify-content:center;padding:8px}.app-root.nav-collapsed .role-info,.app-root.nav-collapsed .role-chevron{display:none}.app-root.nav-collapsed .role-dropdown{left:0;right:auto;width:230px}.app-root.nav-collapsed .lang-switch{display:none}@media(max-width:860px){.app-root.nav-collapsed{--nav-w: 228px}.app-root.nav-collapsed .logo-text{display:block}.app-root.nav-collapsed .logo-mark{display:flex}.app-root.nav-collapsed .sidebar-logo{justify-content:flex-start;padding:0 16px;gap:10px}.app-root.nav-collapsed .nav-toggle{display:none}.app-root.nav-collapsed .nav-section{display:block}.app-root.nav-collapsed .nav-item{font-size:13px;gap:9px;padding:0 10px;justify-content:flex-start;border-left-width:2px}.app-root.nav-collapsed .nav-badge{display:inline-block}.app-root.nav-collapsed .role-current{justify-content:flex-start;padding:8px 10px}.app-root.nav-collapsed .role-info{display:block}.app-root.nav-collapsed .role-chevron{display:inline-block}.app-root.nav-collapsed .lang-switch{display:inline-flex}}
