:root{--color-bg:#fbf6f0;--color-surface:#fff;--color-surface-alt:#f4ece2;--color-primary:#c4906f;--color-primary-light:#e8b4a0;--color-primary-soft:#f5ddd0;--color-accent:#9b7b6e;--color-text:#3a2e28;--color-text-muted:#7a6a60;--color-border:#e8dcd0;--color-success:#8fa890;--color-warn:#d9824b;--color-danger:#c25a4f}*{box-sizing:border-box}html,body{margin:0}body{background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;font-family:Noto Sans TC,sans-serif;font-size:14px}h1,h2,h3{margin:0;font-family:Noto Serif TC,serif}a{color:inherit}.app{grid-template-columns:236px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);height:100vh;padding:18px 14px;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:10px;padding:4px 8px 16px;display:flex}.brand .logo{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-light));color:#fff;border-radius:9px;place-items:center;width:32px;height:32px;font-family:Noto Serif TC,serif;font-weight:700;display:grid}.brand .title{font-family:Noto Serif TC,serif;font-size:15px;font-weight:700;line-height:1.2}.brand .sub{color:var(--color-text-muted);font-size:11px}.nav-group{margin-top:14px}.nav-group>.label{color:var(--color-text-muted);letter-spacing:.04em;padding:6px 10px;font-size:11px;font-weight:700}.nav-item{cursor:pointer;width:100%;color:var(--color-text);text-align:left;background:0 0;border:none;border-radius:9px;align-items:center;gap:10px;padding:9px 10px;font-family:inherit;font-size:13px;text-decoration:none;display:flex}.nav-item:hover{background:var(--color-surface-alt)}.nav-item.active{background:var(--color-primary-soft);color:#6a3f28;font-weight:700}.nav-item .ic{text-align:center;opacity:.8;width:18px}.nav-item .lock{color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:999px;margin-left:auto;padding:1px 6px;font-size:10px}.main{flex-direction:column;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--color-border);background:var(--color-surface);z-index:5;align-items:center;gap:16px;padding:12px 24px;display:flex;position:sticky;top:0}.topbar .page-title{font-family:Noto Serif TC,serif;font-size:16px;font-weight:700}.topbar .spacer{flex:1}.seg{background:var(--color-surface-alt);border-radius:10px;padding:3px;display:inline-flex}.seg button{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;border-radius:8px;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:600}.seg button.on{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 2px #0000000f}.avatar{background:var(--color-accent);color:#fff;border-radius:999px;place-items:center;width:30px;height:30px;font-size:12px;font-weight:700;display:grid}.banner{background:var(--color-primary-soft);color:#6a3f28;border:1px solid var(--color-primary-light);border-radius:10px;margin:16px 24px 0;padding:10px 14px;font-size:12px}.content{padding:20px 24px 48px}.page-head{align-items:center;gap:12px;margin-bottom:16px;display:flex}.page-head h2{font-size:18px}.page-head .desc{color:var(--color-text-muted);font-size:12px}.page-head .spacer{flex:1}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;padding:18px}.grid{gap:14px;display:grid}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.btn{cursor:pointer;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:9px;padding:9px 14px;font-family:inherit;font-size:13px;font-weight:600}.btn:hover{border-color:var(--color-primary-light)}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn-primary:hover{background:#b47f5f}.btn-sm{border-radius:8px;padding:6px 10px;font-size:12px}.btn-ghost{background:0 0;border-color:#0000}.pill{border:1px solid var(--color-border);border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.pill.tint-td{color:#4d6b52;background:#eef3ee;border-color:#cfe0d1}.pill.tint-adhd{color:#a2582f;background:#f7e6dd;border-color:#efc9b3}.pill.tint-ok{color:#4d6b52;background:#eef3ee;border-color:#cfe0d1}.pill.tint-doing{color:#a05a25;background:#fbeee2;border-color:#f0cfa9}.pill.tint-retest{color:#3f5a86;background:#e9eef6;border-color:#c7d5ea}.pill.tint-muted{background:var(--color-surface-alt);color:var(--color-text-muted)}.dot{border-radius:999px;width:8px;height:8px;display:inline-block}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field>label{color:var(--color-text-muted);font-size:12px;font-weight:600}.input,select.input,textarea.input{border:1px solid var(--color-border);background:var(--color-surface);width:100%;color:var(--color-text);border-radius:9px;outline:none;padding:9px 11px;font-family:inherit;font-size:14px}.input:focus{border-color:var(--color-primary)}.row{gap:12px;display:flex}.row>*{flex:1}.table-wrap{border:1px solid var(--color-border);background:var(--color-surface);border-radius:14px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}thead th{text-align:left;letter-spacing:.03em;color:var(--color-text-muted);background:var(--color-surface-alt);white-space:nowrap;vertical-align:bottom;padding:11px 14px;font-size:11px;font-weight:700}tbody td{border-top:1px solid var(--color-border);white-space:nowrap;padding:11px 14px}tbody tr:hover{background:#fdfbf8}.hf{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.hf-funnel{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;border-radius:6px;padding:2px 4px;font-size:12px;line-height:1;position:relative}.hf-funnel:hover{background:var(--color-primary-soft)}.hf-funnel.on{color:var(--color-primary)}.hf-funnel .dot{background:var(--color-primary);border-radius:999px;width:6px;height:6px;display:none;position:absolute;top:0;right:0}.hf-funnel.on .dot{display:block}.hf-pop{z-index:50;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;min-width:140px;padding:5px;display:none;position:fixed;box-shadow:0 8px 24px #3a2e2829}.hf-pop.open{display:block}.hf-pop .opt{color:var(--color-text);cursor:pointer;white-space:nowrap;border-radius:7px;align-items:center;gap:8px;padding:7px 10px;font-size:12px;display:flex}.hf-pop .opt:hover{background:var(--color-surface-alt)}.hf-pop .opt.sel{background:var(--color-primary-soft);color:#6a3f28;font-weight:700}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;font-weight:600}.muted{color:var(--color-text-muted)}.prog-cell{white-space:nowrap}.prog-strip{vertical-align:middle;gap:2px;display:inline-flex}.prog-strip i{background:var(--color-surface-alt);border:1px solid var(--color-border);cursor:default;border-radius:3px;width:9px;height:9px}.prog-strip i.on{background:var(--color-success);border-color:var(--color-success)}.prog-num{color:var(--color-text-muted);margin-left:7px;font-size:11px;font-weight:600}.cases-page table{width:auto}.cases-page thead th{height:104px}.cases-page .table-wrap{width:fit-content;max-width:100%}.cases-page thead th.step-th,.cases-page thead th.step-th-h{background:#fbf4ee}.cases-page tbody td.step-td{background:#fdf9f5}.cases-page tbody tr:hover td.step-td{background:#f8f1e9}.cases-page thead th.stg1{background:#e9f0f6}.cases-page tbody td.stg1{background:#f3f8fc}.cases-page thead th.stg2{background:#e7f1e8}.cases-page tbody td.stg2{background:#f2f8f2}.cases-page thead th.stg3{background:#f8eee1}.cases-page tbody td.stg3{background:#fcf5ec}.cases-page .stage-start{border-left:2px solid var(--color-primary-light)}.stage-legend{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:14px;margin:0 0 12px;font-size:12px;display:flex}.stage-legend.on{display:flex}.stage-legend .it{align-items:center;gap:6px;display:flex}.stage-legend .sw{border:1px solid var(--color-border);border-radius:4px;width:14px;height:14px;display:inline-block}.block-toggle-bar{align-items:center;gap:8px;display:inline-flex;position:absolute;top:50%;left:0;transform:translateY(-50%)}.block-toggle-bar .bt-label{color:#6a3f28;background:var(--color-primary-soft);border:1px solid var(--color-primary-light);white-space:nowrap;border-radius:999px;align-items:center;padding:6px 12px;font-size:12px;font-weight:600;display:inline-flex}.block-toggle-bar .seg{align-self:center}.step-th{text-align:center;vertical-align:bottom;padding:8px 4px}.step-th>span{writing-mode:vertical-rl;white-space:nowrap;color:var(--color-text-muted);font-size:11px;font-weight:700;line-height:1.1;display:inline-block}.step-th-h{text-align:center;vertical-align:bottom;min-width:54px;padding:8px}.step-td{text-align:center}.pill.xs{padding:1px 7px;font-size:11px}.stat .k{color:var(--color-text-muted);font-size:12px;font-weight:600}.stat .v{margin-top:4px;font-family:Noto Sans TC,sans-serif;font-size:28px;font-weight:700}.stat .sub{color:var(--color-text-muted);margin-top:6px;font-size:12px}.stat.mini{padding:9px 14px}.stat.mini .k{font-size:11px}.stat.mini .v{flex-wrap:wrap;align-items:baseline;gap:8px;margin-top:2px;font-size:19px;display:flex}.stat.mini .v .sub{margin-top:0;font-family:Noto Sans TC,sans-serif;font-size:11px;font-weight:400}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex;position:relative}.toolbar .input,.toolbar select.input{width:auto;padding:8px 10px;font-size:13px}.search{position:relative}.toolbar .search input{min-width:220px;padding:8px 30px 8px 12px}.search .ic{opacity:.5;pointer-events:none;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.cal{border:1px solid var(--color-border);background:var(--color-surface);border-radius:14px;overflow-x:auto}.cal table{table-layout:fixed;min-width:900px}.cal th,.cal td{border:1px solid var(--color-border);padding:0}.cal thead th{background:var(--color-surface-alt);text-align:center;padding:8px 4px;font-size:12px}.cal .slot{background:var(--color-surface-alt);color:var(--color-text-muted);text-align:center;width:92px;padding:8px 4px;font-size:11px;font-weight:700}.cal td.cell{vertical-align:top;height:46px}.appt{border:1px solid #0000;border-radius:7px;margin:3px;padding:4px 6px;font-size:11px;line-height:1.2}.appt small{opacity:.8;font-size:10px;display:block}.a-siga{color:#8a4a24;background:#f7e6dd;border-color:#efc9b3}.a-peiq{color:#46603f;background:#e7efe8;border-color:#cfe0d1}.a-xiaoq{color:#3f5a86;background:#e9eef6;border-color:#c7d5ea}.a-hold{color:#7d6412;background:#fff6d9;border-color:#f0dc96}.stepper{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.step{border:1px solid var(--color-border);color:var(--color-text-muted);background:var(--color-surface);border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:600;display:flex}.step .n{background:var(--color-surface-alt);border-radius:999px;place-items:center;width:20px;height:20px;font-size:11px;display:grid}.step.done{color:#4d6b52;background:#eef3ee;border-color:#cfe0d1}.step.done .n{background:var(--color-success);color:#fff}.step.current{color:#6a3f28;border-color:var(--color-primary-light);background:var(--color-primary-soft)}.step.current .n{background:var(--color-primary);color:#fff}.drop{border:1.5px dashed var(--color-border);background:#fdfbf8;border-radius:11px;align-items:center;gap:12px;padding:14px;display:flex}.drop .ic{background:var(--color-surface-alt);border-radius:9px;place-items:center;width:38px;height:38px;font-size:16px;display:grid}.drop .name{font-size:13px;font-weight:600}.drop .hint{color:var(--color-text-muted);font-size:11px}.drop .spacer{flex:1}.chk{color:var(--color-text-muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.upfile{border:1.5px dashed var(--color-border);background:#fdfbf8;border-radius:11px;padding:12px 14px}.upfile .drop{background:0 0;border:none;padding:0}.upfile .missreason{margin-top:8px;padding:7px 10px;font-size:13px;display:none}.rv-miss{flex-wrap:wrap;align-items:center;gap:6px;margin:2px 0 12px;font-size:12px;display:flex}.rv-miss b{color:var(--color-text-muted);margin-right:2px;font-weight:600}.flabel{justify-content:space-between;align-items:center;gap:8px;display:flex}.flabel>label:first-child{color:var(--color-text-muted);font-size:12px;font-weight:600}.input:disabled{background:var(--color-surface-alt);color:var(--color-text-muted)}.miss-grid{border-top:1px solid var(--color-border);grid-template-columns:1fr 1fr;gap:14px;margin-top:14px;padding-top:14px;display:grid}.mg-h{color:var(--color-text-muted);align-items:center;gap:6px;margin-bottom:8px;font-size:12px;font-weight:600;display:flex}.scale-list{flex-direction:column;gap:6px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.scale-list li{border:1px solid var(--color-border);background:#fdfbf8;border-radius:9px;align-items:center;gap:8px;padding:7px 10px;display:flex}.scale-list li .rs{color:var(--color-text-muted);text-align:right;margin-left:auto;font-size:12px}.scale-list li .src{color:var(--color-text-muted);font-size:11px}.scale-list.attach li .no{background:var(--color-primary-soft);color:#6a3f28;border-radius:999px;flex:none;place-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:grid}.scale-list li.empty{color:var(--color-text-muted);border-style:dashed;justify-content:center}.avail{color:#46603f;background:#e3efe4;border:1px solid #bcd6bf;border-radius:6px;margin:3px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-block}.checklist{grid-template-columns:1fr 1fr;gap:8px 20px;display:grid}.checklist label{border-radius:8px;align-items:center;gap:9px;padding:6px 8px;font-size:13px;display:flex}.checklist label:hover{background:var(--color-surface-alt)}.bars{align-items:flex-end;gap:14px;height:150px;padding-top:8px;display:flex}.bars .grp{flex-direction:column;flex:1;align-items:center;gap:6px;display:flex}.bars .pair{align-items:flex-end;gap:5px;height:120px;display:flex}.bars .bar{border-radius:4px 4px 0 0;width:16px}.bars .bar.c1{background:var(--color-primary)}.bars .bar.c2{background:var(--color-success)}.bars .lab{color:var(--color-text-muted);font-size:11px}.mbars{align-items:flex-end;gap:6px;height:130px;display:flex}.mbars .b{background:var(--color-primary-light);border-radius:4px 4px 0 0;flex:1;position:relative}.mbars .b span{text-align:center;color:var(--color-text-muted);font-size:10px;position:absolute;bottom:-18px;left:0;right:0}.legend{color:var(--color-text-muted);flex-wrap:wrap;gap:16px;margin-top:10px;font-size:12px;display:flex}.legend .it{align-items:center;gap:6px;display:flex}.donut{background:conic-gradient(var(--color-primary) 0 94.5%, var(--color-primary-soft) 0);border-radius:999px;place-items:center;width:132px;height:132px;display:grid}.donut .hole{background:var(--color-surface);text-align:center;border-radius:999px;place-items:center;width:84px;height:84px;display:grid}.prog{background:var(--color-surface-alt);border-radius:999px;height:8px;overflow:hidden}.prog>i{background:var(--color-primary);height:100%;display:block}.file{border:1px solid var(--color-border);background:var(--color-surface);border-radius:11px;align-items:center;gap:12px;margin-bottom:8px;padding:12px 14px;display:flex}.file .ic{background:var(--color-surface-alt);border-radius:8px;place-items:center;width:34px;height:34px;font-size:15px;display:grid}.file .meta{min-width:0}.file .n{font-size:13px;font-weight:600}.file .s{color:var(--color-text-muted);font-size:11px}.file .spacer{flex:1}.restricted-badge{display:none}.st{font-size:13px;font-weight:700}.st.up{color:var(--color-success)}.st.none{color:var(--color-text-muted);font-weight:400}.st.wait{color:var(--color-warn);font-size:11px;font-weight:700}th.col-restricted .rl{margin-left:3px;font-size:10px;display:none}.stats-page{--series-1:#c26a3d;--series-2:#4175b5;--grid:#efe7de;--axis:#d9cfc4}.dash-filters{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;font-size:12px;display:flex}.dash-filters .input{width:auto;padding:7px 10px;font-size:13px}.grid.cols-3.stat-grid .stat{padding:12px 16px}.grid.cols-3.stat-grid .stat .v{flex-wrap:wrap;align-items:baseline;gap:8px;font-size:22px;display:flex}.grid.cols-3.stat-grid .stat .v .sub{margin-top:0;font-size:12px;font-weight:400}.chart-h{align-items:baseline;gap:8px;margin-bottom:12px;display:flex}.chart-h h3{font-size:14px}.chart-h .muted{font-size:12px}.s1{background:var(--series-1)}.s2{background:var(--series-2)}.vchart{grid-template-columns:30px 1fr;row-gap:6px;display:grid}.vchart .yaxis{height:160px;position:relative}.vchart .yaxis span{color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:10px;position:absolute;right:6px;transform:translateY(50%)}.vchart .plot{border-bottom:1px solid var(--axis);height:160px;position:relative}.vchart .gl{background:var(--grid);height:1px;position:absolute;left:0;right:0}.vchart .cols{justify-content:space-around;align-items:flex-end;padding:0 6px;display:flex;position:absolute;inset:0}.vchart .grp{align-items:flex-end;gap:2px;height:100%;display:flex}.vchart .col{border-radius:4px 4px 0 0;outline:none;width:18px;min-height:2px;position:relative}.vchart .col:before{content:"";position:absolute;inset:-6px -4px 0}.vchart .col:focus-visible{box-shadow:0 0 0 2px #fff, 0 0 0 4px var(--color-text)}.vchart .col .tip{color:var(--color-text);white-space:nowrap;font-variant-numeric:tabular-nums;margin-bottom:3px;font-size:10px;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.vchart .xaxis{color:var(--color-text-muted);grid-column:2;justify-content:space-around;padding:0 6px;font-size:11px;display:flex}.vchart .xaxis span{text-align:center;flex:1}.hchart .hrow{grid-template-columns:64px 1fr;align-items:center;gap:10px;margin:9px 0;display:grid}.hchart .lab{color:var(--color-text);text-align:right;font-size:12px}.hchart .track{align-items:center;min-height:18px;display:flex}.hchart .hseg{outline:none;height:16px;position:relative}.hchart .hseg:before{content:"";position:absolute;inset:-4px 0}.hchart .hseg+.hseg{margin-left:2px}.hchart .hseg.end{border-radius:0 4px 4px 0}.hchart .hseg:focus-visible{box-shadow:0 0 0 2px #fff, 0 0 0 4px var(--color-text)}.hchart .val{color:var(--color-text);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:8px;font-size:12px}.hchart .val small{color:var(--color-text-muted)}.lg{color:var(--color-text-muted);flex-wrap:wrap;gap:16px;margin-top:10px;font-size:12px;display:flex}.lg .it{align-items:center;gap:6px;display:flex}.lg .sw{border-radius:3px;width:10px;height:10px;display:inline-block}.stats-page .prog>i{background:var(--series-1)}.viz-tip{pointer-events:none;color:#fff;opacity:0;z-index:80;white-space:nowrap;background:#3a2e28;border-radius:8px;padding:6px 10px;font-size:12px;line-height:1.5;transition:opacity 80ms;position:fixed;box-shadow:0 4px 14px #0000002e}.viz-tip.on{opacity:1}details.tv{margin-top:10px;font-size:12px}details.tv summary{cursor:pointer;color:var(--color-text-muted)}details.tv table{width:auto;margin-top:6px;font-size:12px}details.tv th,details.tv td{border-top:1px solid var(--color-border);text-align:left;font-variant-numeric:tabular-nums;padding:4px 10px}details.tv thead th{background:var(--color-surface-alt);border-top:none}table.bill td.num,table.bill th.num{text-align:right;font-variant-numeric:tabular-nums}table.bill tfoot td{border-top:2px solid var(--color-border);font-weight:700}.review-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);align-items:start;gap:14px;display:grid}.review-queue tbody tr{cursor:pointer}.review-queue tbody tr.sel{background:var(--color-primary-soft)}.rv-scores{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px;display:grid}.rv-scores .box{border:1px solid var(--color-border);border-radius:10px;padding:8px 10px;font-size:12px}.rv-scores .box b{font-size:15px;display:block}.rv-scores .box.risk{background:#fbf1ea;border-color:#efc9b3}.thread{flex-direction:column;gap:8px;max-height:220px;margin:8px 0 10px;display:flex;overflow-y:auto}.cmt{border:1px solid var(--color-border);background:#fff;border-radius:10px;padding:8px 10px;font-size:13px}.cmt .who{color:var(--color-text-muted);margin-bottom:2px;font-size:11px}.cmt.rev{background:#f5f8fc;border-color:#d3dfee}.flow{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;font-size:11px;display:flex}.flow .fst{border:1px solid var(--color-border);background:#fff;border-radius:999px;padding:3px 9px}.flow .fst.on{background:var(--color-primary-soft);border-color:var(--color-primary-light);color:#6a3f28;font-weight:700}.rv-input{flex:1;min-width:0}.rv-send{white-space:nowrap;flex:none}.pill.tint-review{color:#7d6412;background:#fff4d6;border-color:#efd98f}.pill.tint-back{color:#9a3b32;background:#fbe4e1;border-color:#efbdb7}.cal.avail-mode td.cell{cursor:pointer}.cal.avail-mode td.cell:hover{background:#f2f8f2}.restricted{opacity:.4}.flash{color:#4d6b52;background:#eef3ee;border:1px solid #cfe0d1;border-radius:10px;margin:0 0 14px;padding:10px 14px;font-size:13px}.flash.err{color:#9a3b32;background:#fbe4e1;border-color:#efbdb7}.btn:disabled{opacity:.5;cursor:not-allowed}.btn{justify-content:center;align-items:center;gap:6px;line-height:1.2;text-decoration:none;display:inline-flex}.seg a{color:var(--color-text-muted);border-radius:8px;padding:6px 12px;font-size:12px;font-weight:600;text-decoration:none;display:inline-block}.seg a.on{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 2px #0000000f}.user-chip{align-items:center;gap:10px;font-size:12px;display:flex}.user-chip .who{text-align:right;line-height:1.3}.user-chip .who b{font-size:13px}.login-page{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:18px;flex-direction:column;gap:14px;width:400px;max-width:100%;padding:28px 26px;display:flex;box-shadow:0 20px 50px #3a2e2814}.login-card .brand{padding:0}.demo-accounts{color:var(--color-text-muted);border-top:1px solid var(--color-border);padding-top:12px;font-size:12px}.demo-accounts table{font-size:12px}.demo-accounts td{border-top:1px solid var(--color-border);white-space:nowrap;padding:4px 6px}.demo-accounts button{color:var(--color-primary);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}textarea.input{resize:vertical;line-height:1.7}.judg{grid-template-columns:150px 1fr;align-items:center;gap:8px 12px;margin-bottom:14px;font-size:13px;display:grid}.judg .opts{flex-wrap:wrap;gap:6px;display:flex}.judg .opts label{border:1px solid var(--color-border);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;display:inline-flex}.judg .opts label:has(input:checked){background:var(--color-primary-soft);border-color:var(--color-primary-light);color:#6a3f28;font-weight:700}.judg .opts input{display:none}.judg .hint{color:var(--color-text-muted);grid-column:2;margin-top:-4px;font-size:11px}.list-link{color:inherit;text-decoration:none}.list-link:hover{text-decoration:underline}tr.sel td{background:var(--color-primary-soft)}.empty-state{text-align:center;color:var(--color-text-muted);padding:28px;font-size:13px}.appt{text-decoration:none;display:block}.appt.noshow{color:#9a3b32;background:#fbe4e1;border-color:#efbdb7}.appt.done{opacity:.75}.avail small{opacity:.8;font-weight:400;display:inline}.cal td.cell form{margin:0}.cell-btn{cursor:pointer;width:100%;height:100%;min-height:44px;font:inherit;text-align:left;background:0 0;border:none;padding:0}.cal td.today,.cal th.today{background:#fffaf3}.nav-badge{background:var(--color-danger);color:#fff;font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;min-width:20px;height:20px;margin-left:auto;padding:0 6px;font-size:11px;font-weight:700;display:inline-grid}.field-err{color:var(--color-danger);margin-top:4px;font-size:12px}.input.invalid{border-color:var(--color-danger)}tr.row-alert td{background:#fdf1ef}tr.row-alert td:first-child{box-shadow:inset 3px 0 0 var(--color-danger)}.nav-toggle{display:none}@media (max-width:900px){.app{grid-template-columns:1fr}.sidebar{z-index:60;width:264px;transition:transform .18s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:0 10px 40px #0000002e}.sidebar.open{transform:none}.nav-scrim{z-index:55;background:#3a2e2859;position:fixed;inset:0}.nav-toggle{z-index:70;border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;border-radius:10px;place-items:center;width:40px;height:40px;font-size:18px;display:grid;position:fixed;top:10px;left:10px}.nav-toggle-dot{background:var(--color-danger);border-radius:999px;width:8px;height:8px;position:absolute;top:6px;right:6px}.topbar{gap:8px;padding:10px 12px 10px 60px}.topbar .page-title{font-size:14px}.user-chip .who{display:none}.banner{margin:10px 12px 0;padding:8px 10px;font-size:11px}.content{padding:14px 12px 40px}.page-head{flex-wrap:wrap}.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}.row{flex-direction:column;gap:0}}@media (max-width:700px){.table-cards{border-radius:12px}.table-cards thead{display:none}.table-cards table,.table-cards tbody,.table-cards tr,.table-cards td{width:100%;display:block}.table-cards tbody tr{border-top:1px solid var(--color-border);padding:10px 12px}.table-cards tbody tr:first-child{border-top:0}.table-cards tbody td{white-space:normal;border:0;justify-content:space-between;align-items:center;gap:12px;padding:3px 0;display:flex}.table-cards tbody td:before{content:attr(data-label);color:var(--color-text-muted);flex:none;font-size:12px}.table-cards tbody td[data-label=""]:before{content:none}.table-cards tbody td .btn{width:100%;min-height:40px;margin-top:6px}.topbar form .btn-ghost{display:none}}
