
:root{--ink:#211F1C;--muted:#615C55;--muted2:#817B73;--cream:#FFFFFF;--paper:#FBF9F4;--lime:#E2EF2D;--border:#E3DED7;--pale:#F7F5F0;--danger:#AD1D00;--dark:#211F1C;--sidebar:#413D38;--sidebar-text:#F7F5F0;--sidebar-muted:#D0CAC2;--sidebar-line:#615C55;--w:238px;--radius:10px;--shadow:0 22px 72px rgba(33,31,28,.17);color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Noto Sans SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif;font-size:14px;line-height:1.5}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid #A8B722;outline-offset:2px}button,input,textarea,select{border-radius:9px}a{color:inherit;text-decoration:none}.hidden{display:none!important}body.modal-open{overflow:hidden}
.shell{min-height:100vh;display:grid;grid-template-columns:var(--w) minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:var(--sidebar);border-right:1px solid #413D38;padding:19px 18px 15px;display:flex;flex-direction:column;gap:10px;z-index:11}.brand{display:flex;align-items:center;gap:11px;padding:1px 2px 17px;border-bottom:1px solid var(--sidebar-line)}.mark{width:39px;height:39px;border-radius:11px;background:var(--dark);color:var(--lime);display:grid;place-items:center;font-size:14px;font-weight:800;letter-spacing:-.03em}.brand-name{font-size:16px;font-weight:750;letter-spacing:-.025em;color:var(--sidebar-text);white-space:nowrap}.brand-cap{display:block;margin-top:2px;color:var(--sidebar-muted);font-size:9px;letter-spacing:.085em;white-space:nowrap}.nav-caption{font-size:10px;color:#BFB8AE;letter-spacing:.135em;font-weight:700;margin:1px 10px 4px}.navlist{display:flex;flex-direction:column;gap:3px}.navitem{width:100%;border:0;padding:9px 12px;min-height:42px;background:none;text-align:left;display:flex;gap:11px;align-items:center;border-radius:9px;color:#D0CAC2;font-weight:560;transition:background .15s,color .15s}.navitem svg{width:17px;height:17px;stroke-width:1.85;flex:none}.navitem:hover{background:#504B45;color:#FFFFFF}.navitem.active{background:var(--dark);color:#FFFFFF}.navitem.active svg{color:var(--lime)}.nav-spacer{flex:1}.sidebar-foot{border-top:1px solid var(--sidebar-line);padding:12px 7px 0;display:flex;flex-direction:column;gap:4px;color:var(--sidebar-muted)}.sidebar-foot button{display:flex;align-items:center;gap:8px;background:none;border:0;padding:7px 0;text-align:left;color:var(--sidebar-muted);font-size:11px}.sidebar-foot svg{width:15px;height:15px}.sidebar-foot small{font-size:10px;color:#BFB8AE;line-height:1.55}
.main{min-width:0;background:#FFFFFF}.topbar{height:54px;background:#FFFFFF;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 34px;gap:16px;position:sticky;top:0;z-index:8}.crumb{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px;white-space:nowrap}.crumb strong{color:var(--ink);font-weight:670}.top-right{display:flex;align-items:center;gap:9px}.environment-label{font-size:10px;font-weight:700;letter-spacing:.01em;background:var(--lime);padding:5px 10px;border-radius:100px;white-space:nowrap}.avatar{width:29px;height:29px;border:1px solid var(--border);border-radius:100%;display:grid;place-items:center;font-size:10px;font-weight:700;background:var(--pale)}.mobile-menu{display:none}.content{padding:24px clamp(24px,2.7vw,42px) 64px;max-width:1550px;margin:0 auto;background:#FFFFFF}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}.eyebrow{color:var(--muted);font-size:11px;letter-spacing:.13em}.page-head h1{font-size:clamp(26px,2.6vw,32px);letter-spacing:-.045em;line-height:1.2;margin:5px 0 7px;font-weight:750}.sub{color:var(--muted);margin:0;font-size:12.5px;line-height:1.6}.head-actions{display:flex;align-items:center;gap:8px;padding-top:4px}.btn{border:1px solid var(--border);background:#FFFFFF;padding:9px 13px;border-radius:8px;font-weight:650;font-size:12px;display:inline-flex;gap:7px;align-items:center;justify-content:center;min-height:36px;white-space:nowrap}.btn svg{width:16px;height:16px}.btn:hover:not(:disabled){border-color:#BFB8AE;background:var(--pale)}.btn.primary{background:var(--lime);border-color:var(--lime);color:#211F1C}.btn.primary:hover:not(:disabled){background:#D8E52A}.btn.dark{background:var(--dark);border-color:var(--dark);color:#FFFFFF}.btn.dark:hover:not(:disabled){background:#413D38}.btn.danger{color:#a6412b;border-color:#eed0c8;background:#fff}.btn.danger:hover:not(:disabled){background:#fff1ed}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover:not(:disabled){background:var(--pale)}.btn.small{padding:7px 10px;min-height:32px;font-size:11px}.btn.full{width:100%}.segmented{border:1px solid var(--border);border-radius:8px;padding:3px;display:inline-flex;background:var(--paper);gap:2px;max-width:100%}.segmented button{border:0;background:none;color:var(--muted);padding:6px 11px;border-radius:6px;font-size:11px;font-weight:600;white-space:nowrap}.segmented button.active{background:var(--dark);color:#fff}.section{margin-bottom:20px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.section-head h2{font-size:16px;margin:0;font-weight:720;letter-spacing:-.02em}.section-note{font-size:11px;color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metrics.three{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);text-align:left;min-height:125px;padding:16px 17px;display:flex;flex-direction:column;gap:7px;position:relative;transition:border-color .15s,transform .15s}.metric.interactive:hover{border-color:#BFB8AE;transform:translateY(-1px)}.metric-top{display:flex;align-items:center;justify-content:space-between;gap:5px}.metric-top .title{color:var(--muted);font-size:12px;font-weight:640}.metric-top svg{color:#AAA39A;width:16px;height:16px}.metric strong{font-size:34px;line-height:1.12;letter-spacing:-.045em;font-weight:730}.metric .detail{color:var(--muted2);font-size:10.5px;margin-top:auto}.metric.primarymetric{background:var(--dark);color:#FFFFFF;border-color:var(--dark)}.metric.primarymetric .title,.metric.primarymetric .detail{color:#D0CAC2}.metric.primarymetric svg{color:var(--lime)}
.grid-2{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.85fr);gap:12px}.panel{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);padding:19px}.panel-title{font-weight:720;font-size:14px;margin:0 0 4px;letter-spacing:-.02em}.panel-desc{font-size:12px;color:var(--muted);margin:0}.chart-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.chart-bars{height:174px;display:flex;gap:12px;align-items:stretch;justify-content:space-around;margin-top:18px;padding:3px 10px 2px;border-bottom:1px solid var(--border);background:repeating-linear-gradient(to top,transparent 0,transparent 42px,#EFEBE5 43px)}.chart-day{min-width:0;display:flex;flex:1;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px}.chart-day .bar{width:65%;max-width:45px;min-height:3px;background:#D0CAC2;border-radius:5px 5px 0 0;transition:height .2s}.chart-day .bar.highlight{background:#A8B722}.chart-day .chart-label{color:var(--muted);font-size:10px;white-space:nowrap;transform:translateY(19px)}.chart-foot{margin-top:28px;font-size:11px;color:var(--muted);display:flex;justify-content:space-between;gap:8px}.todo-row{display:flex;gap:10px;width:100%;align-items:center;border:1px solid var(--border);background:#FFFFFF;border-radius:8px;padding:12px;margin-top:9px;text-align:left}.todo-row:hover{border-color:#BFB8AE;background:var(--pale)}.todo-row .num{font-size:22px;font-weight:750;letter-spacing:-.03em}.todo-row .desc{display:block;color:var(--muted);font-size:11px;margin-top:2px}.todo-row .right{margin-left:auto;color:#9b9f96}.hint{margin-top:11px;font-size:10.5px;color:var(--muted);display:flex;gap:8px;align-items:flex-start}.hint svg{width:15px;height:15px;flex:none;margin-top:1px}
.toolbar{display:flex;align-items:center;gap:9px;margin-bottom:12px;flex-wrap:wrap}.search{width:min(352px,100%);background:#FFFFFF;border:1px solid var(--border);border-radius:8px;display:flex;align-items:center;gap:9px;padding:0 11px;height:38px}.search svg{width:16px;height:16px;color:#817B73;flex:none}.search input{min-width:0;flex:1;border:0;background:none;outline:none!important;padding:10px 0;font-size:12px;letter-spacing:.01em}.search:focus-within{outline:2px solid #E2EF2D;outline-offset:1px}.select{background:#FFFFFF;border:1px solid var(--border);padding:8px 11px;min-height:38px;color:var(--ink);font-size:12px;max-width:100%}.table-card{background:#FFFFFF;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.table-head,.table-line{display:grid;align-items:center;gap:13px;text-align:left;padding:0 18px;grid-template-columns:repeat(4,minmax(0,1fr))}.table-head{min-height:41px;background:var(--pale);border-bottom:1px solid var(--border);font-size:11px;color:var(--muted);font-weight:700;letter-spacing:.01em}.table-line{min-height:60px;border:0;border-bottom:1px solid var(--border);background:#FFFFFF;font-size:12px;width:100%;border-radius:0}.table-line:last-child{border-bottom:0}.table-line:hover{background:#FCFBF8}.table-line:focus-visible{outline-offset:-3px}.table-line>*{min-width:0;overflow-wrap:anywhere}.table-line strong{font-size:12px;font-weight:700}.secondary{color:var(--muted);font-size:11px}.mono{font-variant-numeric:tabular-nums;font-feature-settings:'tnum' 1;letter-spacing:.015em}.code-label{font-weight:750;font-size:12px}.status{font-size:10px;font-weight:710;padding:5px 8px;border-radius:6px;display:inline-flex;align-items:center;gap:5px;width:max-content;max-width:100%}.status:before{content:'';width:6px;height:6px;border-radius:100%;background:currentColor;flex:none}.status.ok{background:#EAF0E5;color:#4E6F42}.status.warn{background:#F5EFE0;color:#846F40}.status.bad{background:#FFF0E9;color:#AD1D00}.status.neutral{background:#EFEBE5;color:#615C55}.status.info{background:#edf0f6;color:#5f7089}.counter{font-size:11px;color:var(--muted);margin-left:auto}.empty{min-height:205px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);gap:7px}.empty strong{color:#50564a;font-size:13px}.empty svg{width:25px;height:25px;color:#9ca393}.footnote{font-size:11px;color:var(--muted);margin-top:12px}
.drawer-backdrop,.modal-backdrop{position:fixed;inset:0;background:rgba(33,31,28,.35);z-index:20;animation:fade .12s}.drawer{position:fixed;right:0;top:0;bottom:0;width:min(458px,100%);background:#FFFFFF;box-shadow:-12px 0 60px rgba(33,31,28,.16);z-index:21;display:flex;flex-direction:column;animation:slide .18s}.drawer-head{padding:22px 23px 16px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.drawer-head h2{font-size:21px;letter-spacing:-.04em;margin:3px 0}.drawer-body{flex:1;overflow:auto;padding:19px 23px 23px}.drawer-foot{border-top:1px solid var(--border);padding:14px 23px;display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;background:#FFFFFF}.iconbtn{width:31px;height:31px;display:grid;place-items:center;border:1px solid var(--border);border-radius:8px;background:#FFFFFF}.iconbtn svg{height:16px;width:16px}.kv{display:grid;grid-template-columns:112px 1fr;gap:12px;border-bottom:1px solid var(--border);padding:10px 0}.kv:last-of-type{border-bottom:0}.kv dt{color:var(--muted);font-size:12px}.kv dd{margin:0;font-size:12px;font-weight:640;overflow-wrap:anywhere;line-height:1.7}.drawer-section{margin-top:20px}.drawer-section h3{font-size:13px;font-weight:760;letter-spacing:-.01em;margin:0 0 10px}.mini-card{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px;border:1px solid var(--border);background:var(--paper);border-radius:9px;text-align:left}.mini-card:hover{border-color:#a4b263}.mini-card strong{font-size:12px}.mini-card p{font-size:11px;color:var(--muted);margin:5px 0 0}.mini-card svg{height:16px;width:16px;color:var(--muted)}.drawer-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.small-metric{padding:11px 9px;background:var(--pale);border-radius:8px}.small-metric span{font-size:10px;color:var(--muted);display:block}.small-metric strong{font-size:22px;display:block;margin-top:7px}.message{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.85;padding:14px;background:var(--paper);border:1px solid var(--border);border-radius:9px}.field-label{display:block;font-size:12px;color:var(--ink);font-weight:700;margin:12px 0 6px}.field{width:100%;background:#FFFFFF;border:1px solid var(--border);padding:9px 12px;min-height:39px;outline:none!important}.field:focus{border-color:#A8B722;box-shadow:0 0 0 2px #E2EF2D66}.field.area{min-height:98px;resize:vertical;line-height:1.7}.muted-note{font-size:11px;color:var(--muted);line-height:1.7}.mini-alert{border-left:3px solid #D0CAC2;background:var(--pale);padding:12px;margin:12px 0;color:var(--muted);font-size:11px;line-height:1.75}.warn-alert{border-color:#e5ad88;background:#fff7ef;color:#865338}.modal-backdrop{z-index:30;display:grid;place-items:center;padding:20px}.modal{width:min(440px,100%);max-height:92vh;overflow:auto;border:1px solid var(--border);background:#FFFFFF;border-radius:13px;box-shadow:var(--shadow);padding:24px;animation:pop .14s}.modal.wide{width:min(550px,100%)}.modal h2{margin:0 0 8px;font-size:21px;letter-spacing:-.035em}.modal p{font-size:12px;color:var(--muted);line-height:1.85;margin:0 0 14px}.modal-btns{display:flex;justify-content:flex-end;gap:8px;margin-top:24px}.modal-error{color:#ac4637;font-size:11px;margin:8px 0 0}
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.setting-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--paper);padding:20px;min-width:0}.setting-card.full{grid-column:1 / -1}.setting-card h3{font-size:15px;margin:0 0 6px}.setting-card p{font-size:12px;color:var(--muted);line-height:1.7;margin:0}.setting-card .card-body{margin-top:15px}.setting-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--border)}.setting-line:last-child{border:0}.setting-line strong{font-size:12px}.qr-placeholder{width:128px;height:128px;background:#F7F5F0;border:1px dashed #BFB8AE;border-radius:9px;display:grid;place-items:center;gap:4px;color:var(--muted);font-size:11px;text-align:center;overflow:hidden}.qr-placeholder svg{width:30px;height:30px}.qr-placeholder img{width:100%;height:100%;object-fit:contain}.setting-help{font-size:11px;color:var(--muted);line-height:1.7;margin-top:11px}.audit-line{padding:11px 0;border-bottom:1px solid var(--border);display:grid;grid-template-columns:minmax(85px,125px) 1fr;gap:12px;font-size:11px}.audit-line:last-child{border:0}.audit-line time{color:var(--muted)}.audit-line strong{display:block;font-size:12px}.system-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.status-tile{padding:13px;background:#FFFFFF;border-radius:8px;border:1px solid var(--border)}.status-tile strong{display:block;font-size:12px;margin-bottom:9px}.status-tile .secondary{display:block;margin-top:5px;font-size:10px;line-height:1.6}
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:60;max-width:min(480px,calc(100% - 32px));padding:12px 18px;background:var(--dark);color:#FFFFFF;border-radius:9px;font-size:12px;box-shadow:0 15px 45px rgba(0,0,0,.2);display:flex;gap:10px;align-items:center;animation:fade .15s}.toast svg{color:var(--lime);width:16px;height:16px}.screen-login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#FBF9F4}.login-art{padding:clamp(30px,5vw,90px);background:var(--sidebar);color:#FFFFFF;display:flex;flex-direction:column;justify-content:space-between}.login-art .large-symbol{font-size:clamp(94px,14vw,210px);color:var(--lime);font-weight:800;letter-spacing:-.1em;line-height:1}.login-art h1{font-size:clamp(32px,4vw,57px);line-height:1.24;letter-spacing:-.06em;font-weight:680;max-width:500px}.login-art p{font-size:12px;color:#bdc5b7}.login-form-shell{display:flex;align-items:center;justify-content:center;padding:40px}.login-form-box{width:min(410px,100%)}.login-form-box h2{font-size:27px;margin:0 0 9px;letter-spacing:-.035em}.login-form-box p{font-size:12px;color:var(--muted);line-height:1.8;margin:0 0 20px}.login-form-box .field{height:46px;margin-bottom:12px}.login-form-box .btn{height:45px;margin-top:5px}.login-link{border:0;background:none;font-size:11px;color:var(--muted);padding:10px 0;margin-top:7px;text-decoration:underline;text-underline-offset:4px}
@keyframes fade{from{opacity:0}to{opacity:1}}@keyframes slide{from{transform:translateX(17px);opacity:.9}to{transform:translateX(0);opacity:1}}@keyframes pop{from{transform:scale(.98);opacity:.4}to{transform:scale(1);opacity:1}}
@media(max-width:1250px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:1fr}.content{padding:23px 24px 60px}.topbar{padding:0 24px}}
@media(max-width:900px){:root{--w:0px}.shell{display:block}.sidebar{position:fixed;transform:translateX(-110%);width:250px;transition:transform .2s;box-shadow:var(--shadow)}.sidebar.open{transform:translateX(0)}.sidebar-shade{position:fixed;inset:0;background:#1c241780;z-index:10}.mobile-menu{display:grid;place-items:center;border:0;background:none;padding:5px;margin-right:8px}.mobile-menu svg{width:22px;height:22px}.topbar{height:54px;padding:0 18px}.content{padding:20px 18px 60px}.settings-grid{grid-template-columns:1fr}.setting-card.full{grid-column:auto}.screen-login{grid-template-columns:1fr}.login-art{min-height:250px}.login-art .large-symbol{font-size:82px}.login-art h1{font-size:27px}.login-form-shell{padding:35px 25px 70px}}
@media(max-width:600px){.metrics,.metrics.three{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{min-height:116px;padding:13px}.metric strong{font-size:29px}.page-head{display:block}.head-actions{margin-top:14px;flex-wrap:wrap}.toolbar{align-items:stretch}.search{width:100%}.select{flex:1}.top-right .environment-label{font-size:9px}.top-right .avatar{display:none}.table-head,.table-line{min-width:640px}.table-card{overflow-x:auto}.system-status{grid-template-columns:1fr}.setting-card{padding:18px}.chart-bars{gap:5px}.chart-day .chart-label{font-size:9px}.drawer-head,.drawer-body,.drawer-foot{padding-left:20px;padding-right:20px}.metric .detail{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* V4 — compact product selector, as in the approved future multi-product layout */
.brand{gap:11px;padding-bottom:17px;min-height:65px}
.brand-name{font-size:16px;line-height:1.2}
.brand-cap{display:none}
.mark{flex:none}
.project-wrap{position:relative;z-index:15;margin:3px 0 9px}
.project{position:relative;display:flex;align-items:center;justify-content:stretch;gap:10px;width:100%;height:45px;min-height:45px;margin:0;padding:0 11px;border:1px solid #857D75;border-radius:9px;background:rgba(255,255,255,.045);color:#F7F5F0;text-align:left;transition:background .15s,border-color .15s}
.project:hover,.project.open{background:rgba(255,255,255,.095);border-color:#BFB8AE}
.project-leading,.project-chevron{width:18px;height:18px;display:flex;align-items:center;justify-content:center;flex:none;color:#D0CAC2}
.project-leading svg{width:18px;height:18px;stroke-width:1.8}
.project-chevron{margin-left:auto;width:17px;color:#BFB8AE}
.project-chevron svg{width:17px;height:17px;stroke-width:1.8}
.project.open .project-chevron{color:var(--lime)}
.project-choice{display:block;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;line-height:1.4;color:#FFFFFF;font-weight:660}
.project-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:18;padding:5px;background:#514B45;border:1px solid #847B71;border-radius:9px;box-shadow:0 16px 32px rgba(20,18,16,.32);animation:fade .14s}
.project-option{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:42px;padding:8px 10px;border:0;border-radius:6px;background:#655E57;color:#FFFFFF;text-align:left;font-size:12px;font-weight:650}
.project-option:hover,.project-option:focus-visible{background:#756D65}
.project-option-label{min-width:0;display:flex;align-items:center;gap:9px}
.project-option-label svg{width:17px;height:17px;color:#D0CAC2;flex:none}
.selected-check{color:var(--lime);display:flex;align-items:center;flex:none}
.selected-check svg{width:16px;height:16px}
.navlist{margin-top:3px}
.sidebar{overflow-y:auto}
.login-brand{border:0;padding:0;min-height:39px}
.login-brand .mark{background:var(--dark);color:var(--lime);border:1px solid rgba(226,239,45,.22)}
.login-hero-art{display:flex;align-items:center;min-height:clamp(150px,19vw,240px)}
.login-art .large-symbol{font-size:clamp(100px,14vw,210px);letter-spacing:-.095em;line-height:1;color:var(--lime)}
.login-feature{display:flex;flex-direction:column;gap:20px}
.login-feature h1{margin:0}
@media(max-width:900px){.sidebar{z-index:12}.project-menu{z-index:18}.login-hero-art{min-height:84px}.login-art .large-symbol{font-size:82px}}



/* Native dialogs supply focus containment and inert backgrounds. */
dialog.drawer{margin:0 0 0 auto;max-width:100%;max-height:100dvh;height:100dvh;border:0;padding:0;left:auto}dialog.drawer:not([open]),dialog.modal:not([open]){display:none}dialog::backdrop{background:rgba(33,31,28,.35)}dialog.modal{position:fixed;inset:0;margin:auto;max-height:90dvh}dialog.modal .modal-btns{flex-wrap:wrap}.table-head.users,.table-line.users{grid-template-columns:1.4fr 1.3fr .8fr .6fr .5fr}.table-head.cards,.table-line.cards{grid-template-columns:1.1fr 1.1fr 1.3fr 1.2fr .5fr}.table-head.feedback,.table-line.feedback{grid-template-columns:.8fr 2fr 1.2fr .7fr .5fr}.pagination{display:flex;justify-content:flex-end;gap:10px;align-items:center;margin-top:14px}.page-status{font-size:11px;color:var(--muted)}.notice{border:1px solid var(--border);border-radius:8px;padding:12px;background:var(--paper);margin-bottom:14px;font-size:12px}.notice.error,[role=alert]{color:var(--danger)}.notice button{margin-left:10px}.table-line .id-short{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plain-id{display:block;overflow-wrap:anywhere;font-size:11px;line-height:1.8}.drawer-body .link-button{padding:0;border:0;background:none;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere;white-space:normal;text-align:left}.drawer-head{flex:none}.drawer-foot{flex:none}.drawer-body{min-height:0}.drawer .back{font-size:11px;padding:0;border:0;background:none;color:var(--muted)}.drawer .iconbtn{flex:none}.chart-bars .bar{min-height:0}.chart-bars .bar.zero{height:0}.chart-axis{font-size:10px;color:var(--muted);margin-top:12px}.form-error{color:var(--danger);font-size:12px;margin:12px 0;white-space:pre-wrap}.support-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px}.main .empty{min-height:180px}.login-state{min-height:22px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.record-tags{display:flex;gap:7px;flex-wrap:wrap;margin:15px 0}.long-line{white-space:pre-wrap;overflow-wrap:anywhere}.chart-empty{height:180px;display:grid;place-items:center;color:var(--muted)}.mobile-close{display:none}@media(max-width:900px){.mobile-close{display:flex}.sidebar.open{z-index:14}.sidebar-shade{z-index:13}.top-right{gap:5px}.crumb{max-width:55%;overflow:hidden}.crumb strong{overflow:hidden;text-overflow:ellipsis}.content{min-width:0}}@media(max-width:600px){.table-card{max-width:100%}.page-status{white-space:normal}.drawer-foot .btn{flex:1}.login-art{min-height:290px}.chart-bars{padding-left:0;padding-right:0}}

svg{width:18px;height:18px;flex:none;vertical-align:middle}

.sidebar-foot .mobile-close{display:none}@media(max-width:900px){.sidebar-foot .mobile-close{display:flex}}

.audit-line .secondary,.audit-line .long-line{display:block;margin-top:4px}
.security-actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.recovery-codes{font-size:12px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;user-select:all;padding:12px;border:1px solid var(--border);border-radius:8px}.setup-secret{display:block;overflow-wrap:anywhere;user-select:all;padding:12px;border:1px solid var(--border);border-radius:8px;font-size:16px;line-height:1.6}

.group-qr-previews{display:flex;gap:20px;flex-wrap:wrap}.group-qr-previews .qr-placeholder{margin-top:7px}#group-qr-config input[type=file]{max-width:100%;font-size:12px;margin-top:7px}#group-qr-config .support-actions{flex-wrap:wrap;gap:8px;margin-top:15px}
