:root{--bg: #f7f8fa;--surface: #ffffff;--border: #e6e8ec;--text: #1b1d21;--muted: #6b7280;--accent: #2f5bea;--accent-soft: color-mix(in srgb, var(--accent) 10%, white);--secondary: #7a5af8;--secondary-soft: color-mix(in srgb, var(--secondary) 12%, white);--track: #f0f1f4;--header-h: 60px;--card-pad: 20px;--good: #0f9d6b;--warn: #c2871a;--bad: #d14343;--radius: 10px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}#root{width:100%;max-width:100%}button,input,select{font:inherit}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;padding:0 20px;height:var(--header-h);background:var(--surface);border-bottom:1px solid var(--border)}.topbar .spacer{flex:1}.topbar select,.topbar input{height:36px;padding:0 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:14px;max-width:220px}.topbar .who{color:var(--muted);font-size:13px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.linkbtn{background:none;border:none;color:var(--accent);cursor:pointer;padding:0;font-size:14px;white-space:nowrap}.hamburger{display:none;width:38px;height:38px;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);cursor:pointer;flex-shrink:0}.page-title{font-size:16px;font-weight:600;white-space:nowrap}.page{max-width:1180px;margin:0 auto;padding:24px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--card-pad);margin-bottom:20px}.card h2{margin:0 0 4px;font-size:16px;font-weight:500}.card .sub{color:var(--muted);font-size:13px;margin-bottom:12px}.metric{font-size:30px;font-weight:500}.metric .unit{font-size:16px;color:var(--muted);margin-left:4px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:500;font-size:12px;letter-spacing:.02em}tbody tr{cursor:pointer}tbody tr:hover,tbody tr.open{background:var(--accent-soft)}.q{font-weight:500}.tag{display:inline-block;padding:2px 8px;border-radius:6px;font-size:12px;background:var(--track);color:var(--muted)}.score{font-variant-numeric:tabular-nums}.detail td{background:var(--bg);padding:0}.detail .inner{padding:8px 12px 16px}.search{display:flex;gap:10px;align-items:center;margin-bottom:14px}.search input{flex:1;height:38px;padding:0 12px;border:1px solid var(--border);border-radius:8px}.pager{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:14px;color:var(--muted);font-size:14px}.pager button{height:32px;padding:0 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);cursor:pointer}.pager button:disabled{opacity:.4;cursor:default}.login{min-height:100vh;display:grid;place-items:center}.login form{width:320px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px}.login h1{font-size:18px;font-weight:500;margin:0 0 18px}.login label{display:block;font-size:13px;color:var(--muted);margin:12px 0 5px}.login input{width:100%;height:38px;padding:0 12px;border:1px solid var(--border);border-radius:8px}.login button{width:100%;height:40px;margin-top:20px;border:none;border-radius:8px;background:var(--accent);color:#fff;font-weight:500;cursor:pointer}.login .err{color:var(--bad);font-size:13px;margin-top:12px}.sov-row{display:flex;align-items:center;gap:14px;padding:7px 0}.sov-name{width:150px;flex-shrink:0;font-size:14px}.sov-name.me{font-weight:600;color:var(--accent)}.sov-track{flex:1;height:22px;background:var(--track);border-radius:6px;overflow:hidden}.sov-fill{height:100%;background:#c2cad8;border-radius:6px}.sov-fill.me{background:var(--accent)}.sov-val{width:120px;flex-shrink:0;text-align:right;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px}.chip{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:3px 10px;font-size:12px}.chip.none{border:none;background:none;color:var(--muted);padding-left:0}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}th.sortable:hover{color:var(--text)}.sov-name.other,.sov-val{color:var(--muted)}.sov-fill.other{background:#e2e4e9}.qtable tbody tr.qrow{cursor:pointer}.qtable tbody tr.detail{cursor:default}.qtable tbody tr.detail:hover{background:transparent}.qtable td{vertical-align:middle}.chev-col{width:30px;text-align:center}.chev{display:inline-block;color:#b4b9c2;font-size:18px;line-height:1;transition:transform .15s ease}.chev.open{transform:rotate(90deg);color:var(--accent)}.th-sort{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.th-sort:hover{color:var(--text)}.th-sort .sort-ind{margin-left:5px;color:#c6cad2;font-size:12px}.th-sort.active,.th-sort.active .sort-ind{color:var(--accent)}.pill{display:inline-block;min-width:36px;text-align:center;padding:2px 8px;border-radius:6px;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.pill.good{background:#e6f6ee;color:#0f9d6b}.pill.mid{background:#fdf3e0;color:#b9791a}.pill.low{background:#eef2fe;color:#2f5bea}.pill.bad{background:#fdeceb;color:#d14343}.pill.na{background:var(--track);color:#9aa0aa}.dots{display:inline-flex;align-items:center;gap:4px}.dot{width:8px;height:8px;border-radius:50%;background:#dfe2e8}.dot.on{background:var(--accent)}.dots-label{margin-left:6px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.cdot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:7px}.cdot.on{background:#0f9d6b}.cdot.half{background:#c2871a}.cdot.off{background:#cfd3da}.answers{margin-top:18px;border-top:1px solid var(--border);padding-top:14px}.answers-head{font-size:13px;font-weight:500;color:var(--muted);margin-bottom:9px}.answer-btns{display:flex;flex-wrap:wrap;gap:8px}.answer-btn{display:inline-flex;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:6px 12px;font-size:13px;cursor:pointer;color:var(--text)}.answer-btn:hover{border-color:var(--accent)}.answer-btn.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.answer-box{margin-top:12px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.answer-meta{margin-bottom:8px;font-size:13px}.answer-text{white-space:pre-wrap;line-height:1.55;font-size:14px;max-height:340px;overflow:auto}.pager-bar{display:flex;align-items:center;margin-top:18px}.pg-meta{margin-right:auto;font-size:13px;color:var(--muted)}.pagination{display:flex;align-items:center;gap:4px}.pg-btn{min-width:34px;height:34px;padding:0 9px;border:1px solid var(--border);background:var(--surface);border-radius:8px;cursor:pointer;font-size:14px;color:var(--text);font-variant-numeric:tabular-nums;transition:border-color .12s,color .12s}.pg-btn:hover:not(:disabled):not(.active){border-color:var(--accent);color:var(--accent)}.pg-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600;cursor:default}.pg-btn:disabled{opacity:.4;cursor:default}.pg-ellipsis{padding:0 4px;color:var(--muted)}.table-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:14px}.ttb-search{flex:1;height:38px;padding:0 12px;border:1px solid var(--border);border-radius:8px}.chk-col{width:36px;text-align:center}.chk-col input{width:15px;height:15px;cursor:pointer}.actions-menu{position:relative}.btn-light{height:38px;padding:0 14px;border:1px solid var(--border);background:var(--surface);border-radius:8px;cursor:pointer;font-size:14px;color:var(--text)}.btn-light:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn-light:disabled{opacity:.45;cursor:default}.actions-dropdown{position:absolute;right:0;top:44px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #14161c1a;padding:6px;z-index:20;min-width:180px}.actions-dropdown button{display:block;width:100%;text-align:left;background:none;border:none;padding:9px 12px;border-radius:7px;cursor:pointer;font-size:14px;color:var(--text)}.actions-dropdown button:hover{background:var(--accent-soft);color:var(--accent)}.chart-wrap{position:relative}.note-add{position:absolute;top:-2px;right:0;z-index:5;height:30px;padding:0 12px;border:1px solid var(--border);background:var(--surface);border-radius:8px;cursor:pointer;font-size:13px;color:var(--accent);font-weight:500}.note-add:hover{border-color:var(--accent);background:var(--accent-soft)}.note-pop{position:absolute;z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #14161c1f;padding:12px 14px;max-width:280px;transform:translate(-50%,10px)}.note-pop ul{margin:0 0 8px;padding-left:18px;font-size:13px}.note-pop li{margin:2px 0}.note-pop-x{position:absolute;top:6px;right:8px;background:none;border:none;cursor:pointer;color:var(--muted);font-size:16px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#14161c73;display:grid;place-items:center;z-index:100;padding:20px}.modal{position:relative;width:560px;max-width:100%;max-height:88vh;overflow:auto;background:var(--surface);border-radius:14px;padding:28px;box-shadow:0 20px 60px #14161c40}.modal h3{margin:0 0 18px;font-size:19px;font-weight:600}.modal-x{position:absolute;top:16px;right:18px;background:none;border:none;font-size:22px;cursor:pointer;color:var(--muted)}.field{margin-bottom:16px}.field-row{display:flex;gap:14px}.field.grow{flex:1}.field label{display:block;font-size:13px;margin-bottom:6px;color:var(--text)}.muted-label{color:var(--muted);font-weight:400}.field input,.field select,.field textarea{width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:8px;font-size:14px;background:var(--surface);color:var(--text)}.field textarea{resize:vertical}.url-row{display:flex;gap:8px;margin-bottom:8px}.icon-btn{width:34px;flex-shrink:0;border:1px solid var(--border);background:var(--surface);border-radius:8px;cursor:pointer;color:var(--muted)}.icon-btn:hover{border-color:var(--bad);color:var(--bad)}.add-link{background:none;border:none;color:var(--accent);cursor:pointer;padding:4px 0;font-size:14px}.chip-x{background:none;border:none;color:var(--muted);cursor:pointer;margin-left:6px;padding:0}.q-suggest{border:1px solid var(--border);border-radius:8px;margin-top:6px;overflow:hidden}.q-suggest-item{padding:8px 11px;font-size:13px;cursor:pointer}.q-suggest-item:hover{background:var(--accent-soft);color:var(--accent)}.modal-actions{display:flex;gap:10px;margin-top:22px}.btn-primary{height:42px;padding:0 18px;border:none;border-radius:9px;background:var(--accent);color:#fff;font-weight:600;font-size:14px;cursor:pointer}.btn-primary:disabled{opacity:.5;cursor:default}.btn-ghost{height:42px;padding:0 18px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text);cursor:pointer;font-size:14px}.note-list{display:flex;flex-direction:column;gap:12px}.note-item{border:1px solid var(--border);border-radius:10px;padding:12px 14px}.note-item-head{display:flex;align-items:center;justify-content:space-between}.note-date{font-size:12px;color:var(--muted)}.note-title{font-weight:600;margin:2px 0 4px}.note-desc{font-size:14px;color:var(--text);margin-bottom:6px}.note-urls{display:flex;flex-direction:column;gap:2px;margin-bottom:4px}.note-urls a{font-size:13px;color:var(--accent);word-break:break-all}.note-linked{font-size:12px;color:var(--muted)}.layout{display:flex;min-height:100vh}.main{flex:1;min-width:0;display:flex;flex-direction:column}.sidebar{width:236px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);padding:16px 12px;position:sticky;top:0;align-self:flex-start;height:100vh;overflow-y:auto;display:flex;flex-direction:column}.side-nav{flex:1}.side-brand{font-weight:700;font-size:18px;padding:6px 10px 18px;letter-spacing:.01em;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:34px}.side-group{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:14px 10px 6px;font-weight:600}.side-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;padding:9px 10px;border-radius:8px;cursor:pointer;color:var(--text);font-size:14px;margin-bottom:2px;transition:background .12s}.side-item:hover{background:var(--accent-soft)}.side-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.side-item svg{flex-shrink:0;opacity:.8}.side-item.active svg{opacity:1}.side-badge{margin-left:auto;font-size:10px;background:var(--track);color:var(--muted);padding:2px 6px;border-radius:5px}.scrim{display:none}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.note-menu{position:absolute;top:-2px;right:0;z-index:6}.note-dropdown{position:absolute;right:0;top:36px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #14161c1a;padding:6px;min-width:180px}.note-dropdown button{display:block;width:100%;text-align:left;background:none;border:none;padding:9px 12px;border-radius:7px;cursor:pointer;font-size:14px;color:var(--text)}.note-dropdown button:hover{background:var(--accent-soft);color:var(--accent)}.date-wrap{position:relative;display:flex;align-items:center;gap:8px}.date-wrap input{flex:1}.date-warn{width:20px;height:20px;flex-shrink:0;border-radius:50%;background:var(--bad);color:#fff;font-weight:700;font-size:13px;display:inline-flex;align-items:center;justify-content:center;cursor:help}.modal.lg{width:760px}.notes-table{width:100%;border-collapse:collapse}.notes-table th{color:var(--muted);font-weight:500;font-size:12px;text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}.notes-table td{padding:12px 10px;border-bottom:1px solid var(--border);vertical-align:top}.nt-date{font-size:13px;color:var(--muted);white-space:nowrap}.nt-title{font-weight:600;margin-bottom:3px}.nt-desc{font-size:14px;color:var(--text);line-height:1.5}.nt-desc.clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.empty-state{text-align:center;padding:48px 20px}.note-add{white-space:nowrap}.date-warn{position:relative}.date-tip{display:none;position:absolute;right:0;top:28px;width:240px;z-index:40;background:#1b1d21;color:#fff;font-size:12px;line-height:1.45;font-weight:400;text-align:left;padding:9px 11px;border-radius:8px;box-shadow:0 6px 20px #00000038}.date-warn:hover .date-tip{display:block}.icon-btn.trash{display:inline-flex;align-items:center;justify-content:center;color:var(--muted)}.icon-btn.trash:hover{border-color:var(--bad);color:var(--bad)}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#14161c80;display:grid;place-items:center;z-index:120;padding:20px}.confirm-box{background:var(--surface);border-radius:12px;padding:22px;width:340px;max-width:100%;box-shadow:0 16px 40px #14161c40}.confirm-title{font-weight:600;font-size:16px;margin-bottom:4px}.confirm-actions{display:flex;gap:10px;margin-top:18px}.btn-danger{height:40px;padding:0 16px;border:none;border-radius:9px;background:var(--bad);color:#fff;font-weight:600;font-size:14px;cursor:pointer}.qtable tbody tr.qrow.paused td{color:var(--muted)}.qtable tbody tr.qrow.paused .pill,.qtable tbody tr.qrow.paused .dot.on{opacity:.55}.pause-badge{display:inline-block;margin-left:8px;font-size:11px;font-weight:500;background:#fdf3e0;color:#b9791a;padding:1px 7px;border-radius:5px;vertical-align:middle}.actions-dropdown button.danger{color:var(--bad)}.actions-dropdown button.danger:hover{background:#fdeceb;color:var(--bad)}.btn-light.sm{height:30px;padding:0 11px;font-size:13px}.nt-date.danger{color:var(--bad);font-weight:600}.act-desc{line-height:1.45}.ta{width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:14px;resize:vertical;box-sizing:border-box;color:var(--text)}.fld{display:flex;flex-direction:column;gap:5px;margin-bottom:12px;font-size:13px;color:var(--muted)}.fld>span{font-weight:500}.fld input,.fld select{width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:14px;box-sizing:border-box;color:var(--text);background:var(--surface)}.fld-row{display:flex;gap:12px}.fld-row .fld{flex:1}.q-badges{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:7px}.badge{display:inline-flex;align-items:center;font-size:11px;font-weight:500;padding:2px 8px;border-radius:6px;line-height:1.6}.badge.cat{background:#eef1f6;color:#54607a}.badge.tag{background:var(--secondary-soft);color:var(--secondary)}.badge-x{background:none;border:none;color:inherit;cursor:pointer;margin-left:4px;padding:0 1px;font-size:13px;line-height:1;opacity:.55}.badge-x:hover{opacity:1}.badge.add{background:none;border:1px dashed var(--border);color:var(--muted);cursor:pointer;opacity:0;transition:opacity .12s}.qrow:hover .badge.add,.qrow.open .badge.add{opacity:1}.badge.add:hover{color:var(--accent);border-color:var(--accent)}.adv-filter{border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin-bottom:14px;background:var(--bg)}.adv-row{display:flex;gap:14px;flex-wrap:wrap}.adv-row .fld{flex:1;min-width:150px;margin-bottom:10px}.adv-tags{margin-top:4px}.adv-label{font-size:13px;font-weight:500;color:var(--muted);display:block;margin-bottom:6px}button.chip{cursor:pointer;font-family:inherit}.chip.on{background:var(--accent);color:#fff;border-color:var(--accent)}.adv-reset{margin-top:6px}.color-row{display:flex;align-items:center;gap:8px}.color-row input[type=color]{width:44px;height:38px;padding:0;border:1px solid var(--border);border-radius:8px;background:none;cursor:pointer}.color-row .hex{flex:1}.brand-preview{display:flex;align-items:center;gap:14px;margin-top:18px;padding:16px;border:1px solid var(--border);border-radius:10px;background:var(--bg)}.brand-preview .bp-label{font-size:13px;color:var(--muted)}.bp-btn{height:38px;padding:0 16px;border:none;border-radius:9px;color:#fff;font-weight:600;background:var(--pp)}.bp-badge{font-size:11px;font-weight:500;padding:2px 9px;border-radius:6px;color:var(--ps);background:color-mix(in srgb,var(--ps) 12%,white)}.bp-link{color:var(--pp);font-weight:500;cursor:pointer;text-decoration:underline}.saved-ok{color:var(--good);font-weight:600;align-self:center}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.row-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end}.badge.off{background:#f3f4f6;color:#9aa1ad}.chk-line{display:flex;align-items:center;gap:8px;font-size:14px;margin-bottom:12px}.fld .hint,.hint{font-weight:400;color:var(--muted);font-style:normal}.form-err{color:var(--bad);font-size:13px;margin-bottom:10px}.login-info{font-size:14px;line-height:1.5;color:var(--muted);margin:4px 0 6px}.link-row{background:none!important;border:none!important;color:var(--accent)!important;font-size:13px;cursor:pointer;padding:6px 0 0!important;text-align:center;width:100%;height:auto!important}.link-row:hover{text-decoration:underline}:root[data-theme=dark]{--accent-soft: color-mix(in srgb, var(--accent) 26%, #14161b);--bg: #14161b;--surface: #1c1f26;--border: #2a2e36;--text: #e7e9ee;--muted: #9aa3b2;--track: #2a2e36}[data-theme=dark] .sov-fill:not(.me){background:#3a4150}[data-theme=dark] .badge.cat{background:#2a3340;color:#b8c4d6}[data-theme=dark] .pause-badge{background:#3a2f1c;color:#e0b25e}[data-theme=dark] .badge.off{background:#2a2e36;color:#8b93a1}[data-theme=dark] .pill.good{background:#16332a;color:#4cc79a}[data-theme=dark] .pill.mid{background:#332a17;color:#e0a93f}[data-theme=dark] .pill.low{background:#1d2741;color:#7ba0ff}[data-theme=dark] .pill.bad{background:#3a2020;color:#f08a8a}[data-theme=dark] input[type=color]{background:var(--surface)}.theme-toggle{width:34px;height:34px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.theme-toggle:hover{color:var(--accent);border-color:var(--accent)}.side-logo{max-width:100%;max-height:40px;object-fit:contain;display:block}.brand-logo-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.logo-thumb{height:40px;max-width:130px;object-fit:contain;border:1px solid var(--border);border-radius:8px;padding:6px;background:var(--bg)}.logo-thumb.on-dark{background:#14161b}.logo-field{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.logo-empty{height:40px;min-width:110px;display:flex;align-items:center;justify-content:center;border:1px dashed var(--border);border-radius:8px;color:var(--muted);font-size:12px;padding:0 12px}.logo-actions{display:flex;gap:8px}@media (max-width: 1024px){.page{padding:18px}}@media (max-width: 860px){.hamburger{display:inline-flex}.sidebar{position:fixed;left:0;top:0;bottom:0;height:100vh;transform:translate(-100%);transition:transform .25s ease;z-index:60;box-shadow:0 0 40px #0000002e}.sidebar.open{transform:none}.scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:50}.page{padding:14px}.topbar{padding:0 14px;gap:8px}.topbar .who{display:none}.card{padding:16px}.table-toolbar{flex-wrap:wrap}.card-head{flex-direction:column;align-items:stretch}.fld-row,.adv-row{flex-direction:column;gap:0}}@media (max-width: 560px){.page-title{font-size:15px}.topbar select{max-width:130px}.metric{font-size:26px}.modal{width:100%}.brand-preview{flex-wrap:wrap;gap:10px}}.side-foot{display:flex;align-items:center;gap:6px;padding-top:10px;margin-top:6px;border-top:1px solid var(--border)}.profile-btn{flex:1;min-width:0;display:flex;align-items:center;gap:9px;background:none;border:none;cursor:pointer;padding:7px 8px;border-radius:8px;text-align:left;color:var(--text)}.profile-btn:hover{background:var(--accent-soft)}.avatar{width:30px;height:30px;flex-shrink:0;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600}.profile-meta{min-width:0;display:flex;flex-direction:column;line-height:1.25}.profile-email{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-role{font-size:11px;color:var(--muted)}.logout-btn{width:34px;height:34px;flex-shrink:0;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.logout-btn:hover{color:var(--bad);border-color:var(--bad)}.badge.pending{background:#fdf3e0;color:#b9791a}[data-theme=dark] .badge.pending{background:#332a17;color:#e0a93f}.you-tag{margin-left:8px;font-size:10px;font-weight:600;color:var(--accent);background:var(--accent-soft);padding:1px 6px;border-radius:5px}.saved-ok.sm{font-size:12px}.fld-sep{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:6px 0 10px;padding-top:12px;border-top:1px solid var(--border)}.page{width:100%}.card{width:100%;max-width:100%}.main{max-width:100%;min-width:0;overflow-x:clip}.table-scroll{max-width:100%}.qtable{min-width:720px}.notes-table{min-width:560px}.table-toolbar,.row-actions{flex-wrap:wrap}.admin-table{width:100%;border-collapse:collapse;font-size:14px;min-width:560px}.admin-table th{text-align:left;padding:9px 12px;color:var(--muted);font-weight:500;font-size:12px;border-bottom:1px solid var(--border)}.admin-table td{padding:11px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.admin-table tbody tr:last-child td{border-bottom:none}.urow{cursor:pointer;transition:background .1s}.urow:hover{background:var(--accent-soft)}.cell-title{display:flex;align-items:center;gap:8px;font-weight:500}.cell-sub{color:var(--muted);font-weight:400;font-size:13px}.edit-pencil{color:var(--muted);opacity:0;transition:opacity .12s;flex-shrink:0}.urow:hover .edit-pencil{opacity:1}.badge.ok{background:color-mix(in srgb,var(--good) 16%,white);color:var(--good)}.badge.muted{background:var(--track);color:var(--muted)}[data-theme=dark] .badge.ok{background:color-mix(in srgb,var(--good) 22%,#15171c)}.qtoolbar-sticky{position:sticky;top:var(--header-h);z-index:15;background:var(--surface);margin-top:8px}.table-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--surface);margin:0 calc(-1 * var(--card-pad)) 14px;padding:11px var(--card-pad);border-bottom:1px solid var(--border)}.table-toolbar.collapsed{padding:8px var(--card-pad)}.toolbar-toggle{width:32px;height:32px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--muted);cursor:pointer}.toolbar-toggle:hover{color:var(--text);border-color:var(--accent)}.topbar select{min-width:0}@media (max-width: 560px){:root{--header-h: 56px;--card-pad: 14px}.topbar{gap:8px;padding:0 12px}.topbar .page-title{display:none}.topbar select{flex:1 1 0;min-width:0;max-width:none}.topbar .spacer{display:none}}.track-bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px;margin-bottom:20px}.track-stats{display:flex;gap:22px;flex-wrap:wrap;flex:1;min-width:0}.track-stat{display:flex;flex-direction:column;gap:2px}.ts-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.ts-value{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}.seg{display:inline-flex;flex-wrap:wrap;gap:6px}.seg button{padding:7px 12px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;cursor:pointer;font-size:13px}.seg button.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.badge.client{background:var(--accent-soft);color:var(--accent)}.modal-extra{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px;padding-top:12px;border-top:1px solid var(--border)}.danger-text{color:var(--bad)}.inline-confirm{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.btn-light.sm,.btn-danger.sm,.btn-ghost.sm{padding:5px 10px;font-size:13px}@media (max-width: 560px){.sov-row{flex-wrap:wrap;gap:6px 12px}.sov-name{width:auto;flex:1 1 auto}.sov-val{width:auto;flex:0 0 auto}.sov-track{flex-basis:100%;order:3;height:16px}}.side-collapse{width:28px;height:28px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--muted);cursor:pointer}.side-collapse:hover{color:var(--text);border-color:var(--accent)}.brand-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand-initial{width:32px;height:32px;border-radius:8px;background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:16px}.side-logo.sm{max-height:28px}.sidebar.collapsed{width:66px;padding-left:8px;padding-right:8px}.sidebar.collapsed .side-label,.sidebar.collapsed .side-badge,.sidebar.collapsed .profile-meta{display:none}.sidebar.collapsed .side-brand{flex-direction:column;gap:10px;padding:6px 0 14px}.sidebar.collapsed .side-item{justify-content:center;gap:0;padding:10px 0}.sidebar.collapsed .side-group{text-align:center;padding:12px 0 6px;font-size:10px}.sidebar.collapsed .side-foot{flex-direction:column;gap:8px}.sidebar.collapsed .profile-btn{justify-content:center;padding:6px}.sidebar.collapsed .logout-btn{width:100%}.badge.twofa{background:var(--secondary-soft);color:var(--secondary)}.twofa-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.twofa-setup{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:8px 0 6px}.twofa-qr{width:148px;height:148px;background:#fff;border:1px solid var(--border);border-radius:8px;padding:6px}.twofa-secret{display:flex;flex-direction:column;gap:4px}.twofa-secret code{font-size:13px;background:var(--track);padding:6px 8px;border-radius:6px;letter-spacing:.04em;word-break:break-all;color:var(--text)}.switch{position:relative;display:inline-block;width:42px;height:24px}.switch input{opacity:0;width:0;height:0}.switch .slider{position:absolute;top:0;right:0;bottom:0;left:0;cursor:pointer;background:var(--track);border-radius:999px;transition:.15s}.switch .slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.15s;box-shadow:0 1px 2px #00000040}.switch input:checked+.slider{background:var(--accent)}.switch input:checked+.slider:before{transform:translate(18px)}.modal.wide{max-width:640px;width:92vw}.chat-log{display:flex;flex-direction:column;gap:8px;max-height:46vh;overflow-y:auto;padding:10px;background:var(--bg);border:1px solid var(--border);border-radius:10px;margin:8px 0}.chat-msg{display:flex;flex-direction:column;max-width:80%}.chat-msg.me{align-self:flex-end;align-items:flex-end}.chat-msg.them{align-self:flex-start;align-items:flex-start}.chat-bubble{padding:8px 12px;border-radius:12px;font-size:14px;line-height:1.4;white-space:pre-wrap;word-break:break-word}.chat-msg.me .chat-bubble{background:var(--accent);color:#fff;border-bottom-right-radius:4px}.chat-msg.them .chat-bubble{background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:4px}.chat-meta{font-size:11px;color:var(--muted);margin-top:2px}.chat-input{display:flex;gap:8px}.chat-input input{flex:1;height:38px;padding:0 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text)}.chat-fab{position:fixed;right:22px;bottom:22px;z-index:80;width:54px;height:54px;border-radius:50%;background:var(--accent);color:#fff;border:none;cursor:pointer;box-shadow:0 6px 20px #00000040;display:inline-flex;align-items:center;justify-content:center}.chat-panel{position:fixed;right:22px;bottom:22px;z-index:80;width:360px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 12px 40px #00000040;display:flex;flex-direction:column;overflow:hidden}.chat-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--accent);color:#fff;font-weight:600}.chat-head .modal-x{color:#fff;position:static}.chat-body{padding:14px;display:flex;flex-direction:column;gap:10px}.chat-panel .chat-log{margin:10px 14px 0;max-height:320px}.chat-panel .chat-input{padding:12px 14px}.chat-escalate{margin:8px 14px 0;padding:8px;border:1px dashed var(--accent);color:var(--accent);background:var(--accent-soft);border-radius:8px;cursor:pointer;font-size:13px}@media (max-width: 560px){.chat-panel{right:8px;bottom:8px}.chat-fab{right:14px;bottom:14px}}.dd{position:relative}.dd-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;height:38px;padding:0 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);cursor:pointer;font:inherit;text-align:left;transition:border-color .12s,box-shadow .12s}.dd-btn:hover{border-color:var(--accent)}.dd-btn.open{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.dd-btn:disabled{opacity:.55;cursor:not-allowed}.dd-ph{color:var(--muted)}.dd-caret{color:var(--muted);flex-shrink:0;transition:transform .15s}.dd-btn.open .dd-caret{transform:rotate(180deg)}.dd-panel{position:absolute;z-index:60;top:calc(100% + 4px);left:0;right:0;margin:0;padding:4px;list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 30px #0000002e;max-height:260px;overflow-y:auto}.dd-opt{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:6px;cursor:pointer;font-size:14px;color:var(--text)}.dd-opt:hover{background:var(--accent-soft)}.dd-opt.sel{color:var(--accent);font-weight:600}.bill-banner{margin-top:10px;padding:8px 12px;border-radius:8px;background:var(--accent-soft);color:var(--accent);font-size:13px;font-weight:500}.pool-bar{height:8px;border-radius:5px;background:var(--border);overflow:hidden;margin-top:6px}.pool-bar>span{display:block;height:100%;background:var(--accent)}.login-logo{max-height:56px;max-width:220px;object-fit:contain;margin:0 auto 6px;display:block}.login-brand{font-size:26px;font-weight:700;text-align:center;margin-bottom:6px;color:var(--text)}.login .link-row{display:block;background:none;border:none;color:var(--accent);cursor:pointer;text-align:center;text-decoration:none;padding:4px}.land{min-height:100vh;background:var(--bg);padding:32px 16px 64px;overflow-y:auto}.land-hero{max-width:760px;margin:0 auto 26px;text-align:center}.land-logo{max-height:64px;max-width:240px;object-fit:contain;margin:0 auto 16px;display:block}.land-brand{font-size:28px;font-weight:800;margin-bottom:12px}.land-hero h1{font-size:30px;line-height:1.2;margin:0 0 10px}.land-sub{color:var(--muted);font-size:16px;max-width:560px;margin:0 auto}.land-card{max-width:760px;margin:0 auto;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:24px;box-shadow:0 8px 30px #0000000f}.land-card h2{font-size:18px;margin:0 0 12px}.land-period{width:max-content;margin-bottom:16px}.land-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.plan-card{position:relative;text-align:left;border:2px solid var(--border);border-radius:12px;padding:16px;background:var(--bg);cursor:pointer;transition:border-color .12s,transform .12s}.plan-card:hover{border-color:var(--accent)}.plan-card.sel{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.plan-name{font-weight:700;font-size:16px}.plan-price{font-size:22px;font-weight:800;margin:6px 0}.plan-price span{font-size:13px;font-weight:500;color:var(--muted);margin-left:3px}.plan-feats{list-style:none;padding:0;margin:6px 0 0;font-size:13px;color:var(--muted)}.plan-feats li{padding:2px 0}.plan-chosen{position:absolute;top:10px;right:10px;font-size:11px;font-weight:700;color:var(--accent)}.land-pay{width:100%;margin-top:16px;height:44px;font-size:15px}.land-login-link{display:block;text-align:center;color:var(--accent);margin-top:12px;text-decoration:none}.land-success{text-align:center}.land-ok{color:var(--good);font-weight:600;margin:14px 0 18px}
