*{box-sizing:border-box}
body{margin:0;background:var(--ss-bg);color:var(--ss-ink);font-family:var(--ss-font-body);font-size:var(--ss-text-md);line-height:1.5;min-height:100vh}
body.center{display:grid;place-items:center;padding:var(--ss-space-4)}
h1{font-family:var(--ss-font-display);font-weight:400;font-size:var(--ss-text-xl);margin:0 0 6px;letter-spacing:-.01em;text-wrap:balance}
h2{font-size:var(--ss-text-lg);margin:0 0 var(--ss-space-3)}
.mark{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--ss-primary);color:var(--ss-on-primary);font-weight:800}
.notice{max-width:420px;text-align:center;display:grid;gap:var(--ss-space-3);justify-items:center}
.notice p{color:var(--ss-muted);margin:0}
.bar-top{display:flex;align-items:center;justify-content:space-between;gap:var(--ss-space-4);padding:var(--ss-space-4) clamp(16px,3vw,28px);border-bottom:1px solid var(--ss-line)}
.brand{display:flex;gap:10px;align-items:center}
.progress{display:flex;align-items:center;gap:var(--ss-space-3);font-size:var(--ss-text-sm);color:var(--ss-muted)}
.progress b{color:var(--ss-ink);font-variant-numeric:tabular-nums}
.meter{width:160px;height:6px;border-radius:var(--ss-radius-pill);background:var(--ss-surface-2);overflow:hidden}
.meter i{display:block;height:100%;width:0;background:var(--ss-primary);transition:width .3s}
.label-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:22px;padding:22px clamp(16px,3vw,22px);max-width:1320px;margin:auto}
.admin{display:grid;gap:22px;padding:22px clamp(16px,3vw,22px);max-width:1100px;margin:auto}
.panel{background:var(--ss-surface);border:1px solid var(--ss-line);border-radius:var(--ss-radius-lg);padding:var(--ss-space-5);min-width:0}
#dashboard{display:grid;gap:22px}
#dashboard[hidden]{display:none}
.eyebrow{color:var(--ss-accent-text);font-size:var(--ss-text-xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin:0 0 var(--ss-space-2)}
.hint{color:var(--ss-muted);font-size:var(--ss-text-sm);margin:0 0 18px;max-width:65ch}
.transcript{display:grid;gap:var(--ss-space-3)}
.transcript p{margin:0;padding:var(--ss-space-3) 14px;border-radius:var(--ss-radius-md);font-size:16px;background:var(--ss-bg);border:1px solid var(--ss-line)}
.transcript p.client{border-color:var(--ss-primary);background:var(--ss-surface-2)}
.transcript p.therapist{color:var(--ss-muted);font-size:14px}
.transcript b{display:block;font-size:var(--ss-text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--ss-muted);margin-bottom:var(--ss-space-1)}
.transcript p.client b{color:var(--ss-primary-text)}
fieldset{border:0;padding:0;margin:0 0 18px}
legend{font-weight:700;font-size:14px;margin-bottom:var(--ss-space-2)}
.choices{display:flex;flex-wrap:wrap;gap:7px}
button{border:1px solid var(--ss-line);background:var(--ss-bg);color:var(--ss-ink);border-radius:var(--ss-radius-sm);padding:var(--ss-space-2) 11px;font:500 var(--ss-text-sm)/1.2 var(--ss-font-body);cursor:pointer}
button:hover:not(:disabled){border-color:var(--ss-primary)}
button[aria-pressed="true"],button.primary{background:var(--ss-primary);border-color:var(--ss-primary);color:var(--ss-on-primary);font-weight:700}
button:disabled{opacity:.4;cursor:default}
button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--ss-accent);outline-offset:2px}
input,textarea{width:100%;background:var(--ss-bg);color:var(--ss-ink);border:1px solid var(--ss-line);border-radius:var(--ss-radius-sm);padding:10px;font:14px/1.4 var(--ss-font-body)}
textarea{resize:vertical}
.check{display:flex;gap:var(--ss-space-2);align-items:center;font-size:var(--ss-text-sm);color:var(--ss-muted);margin:var(--ss-space-1) 0 10px}
.check input{width:auto}
.actions{display:flex;gap:var(--ss-space-2);justify-content:flex-end;margin-top:14px;flex-wrap:wrap}
.status{color:var(--ss-error);font-size:var(--ss-text-sm);min-height:1em;margin:var(--ss-space-2) 0 0}
.add-form{display:grid;gap:var(--ss-space-3)}
.link-out{font-family:var(--ss-font-mono);font-size:var(--ss-text-sm);color:var(--ss-primary-text);word-break:break-all;margin:0;user-select:all}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--ss-space-3)}
.stat{background:var(--ss-surface);border:1px solid var(--ss-line);border-radius:var(--ss-radius-md);padding:var(--ss-space-4);display:grid;gap:2px}
.stat b{font-size:var(--ss-text-2xl);font-weight:600;font-variant-numeric:tabular-nums}
.stat span{color:var(--ss-muted);font-size:var(--ss-text-sm)}
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:var(--ss-text-sm)}
th{text-align:left;color:var(--ss-muted);font-weight:600;padding:var(--ss-space-2);border-bottom:1px solid var(--ss-line);white-space:nowrap}
td{padding:var(--ss-space-2);border-bottom:1px solid var(--ss-line);vertical-align:middle}
td.num{font-variant-numeric:tabular-nums;white-space:nowrap}
tr.inactive td{color:var(--ss-muted)}
@media(max-width:900px){.label-layout{grid-template-columns:1fr}.meter{width:80px}#who{display:none}}

/* Labeling guide page */
.guide{max-width:760px;margin:auto;padding:22px clamp(16px,3vw,22px)}
.guide h1{margin-top:0}.guide h2{margin:28px 0 8px;font-size:var(--ss-text-lg,1.15rem)}
.guide ul{padding-left:1.2em}.guide li{margin:4px 0}
.guide blockquote{margin:10px 0;padding:10px 14px;border-left:3px solid var(--ss-line);color:var(--ss-muted)}

/* Admin: link text with a copy icon */
.link-copy{display:inline-flex;align-items:center;gap:6px;max-width:100%}
.link-copy code{font-family:var(--ss-font-mono);font-size:var(--ss-text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:28ch;user-select:all}
.link-out .link-copy code{max-width:none;white-space:normal;word-break:break-all}
.link-out small{display:block;color:var(--ss-muted);font-family:var(--ss-font-body);margin-top:4px}
.icon-button{display:inline-grid;place-items:center;padding:5px;line-height:0}
.copied{color:var(--ss-primary-text);font-size:var(--ss-text-sm)}
.link-out{user-select:auto}
.offscreen{position:fixed;left:-9999px;top:0;opacity:0}
