.auth-page{min-height:100vh;display:grid;grid-template-rows:auto 1fr;padding:var(--space-5);background:var(--color-paper-2)}.auth-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);max-width:var(--shell-narrow);margin:0 auto;width:100%}.auth-back{font-size:var(--text-base);color:var(--color-ink-3);display:inline-flex;align-items:center;gap:var(--space-2);transition:color .2s}.auth-back:hover{color:var(--color-brand)}.auth-back svg{width:14px;height:14px;transform:rotate(180deg)}.auth-wrap{display:grid;place-items:center;padding:calc(var(--space-5) + var(--space-4)) 0}.auth-card{width:100%;max-width:460px;padding:var(--space-6);border-radius:var(--r-lg);border:1px solid var(--color-line);background:var(--color-card);box-shadow:var(--shadow-card)}.auth-card h1{font-size:clamp(1.7rem,3vw,2.1rem);margin-bottom:var(--space-2)}.auth-card .sub{color:var(--color-ink-2);font-size:var(--text-base);line-height:1.55;margin-bottom:var(--space-5)}.role-switch{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);margin-bottom:var(--space-4)}.role-switch button{padding:var(--space-3) var(--space-3);border-radius:var(--r-sm);border:1px solid var(--color-line-strong);background:var(--color-card);color:var(--color-ink-2);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:border-color .2s,background .2s,color .2s}.role-switch button:hover{border-color:var(--color-brand-link);color:var(--color-ink)}.role-switch button[aria-pressed=true]{border-color:var(--color-brand);background:var(--color-brand-soft);color:var(--color-brand)}.check{display:flex;gap:var(--space-2);align-items:flex-start;margin-bottom:var(--space-3);font-size:var(--text-sm);color:var(--color-ink-2);line-height:1.5}.check input{margin-top:var(--space-1);accent-color:var(--color-brand);width:16px;height:16px;flex:none}form>p.hint{margin:0 0 var(--space-4);font-weight:400;line-height:1.5;color:var(--color-ink-3)}.form-error,form>p.hint{font-size:var(--text-sm)}.form-error{margin-bottom:var(--space-4);padding:var(--space-3) var(--space-3);border-radius:var(--r-sm);border:1px solid var(--color-coral);background:var(--color-coral-soft);color:var(--color-coral)}.auth-alt{margin-top:var(--space-4);font-size:var(--text-base);color:var(--color-ink-2);text-align:center}.auth-alt a,.check span a{color:var(--color-brand-link);text-decoration:underline;text-underline-offset:3px}.panel-page{min-height:100vh;display:flex;flex-direction:column;background:var(--color-paper-2)}.panel-top{position:sticky;top:0;z-index:20;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-line);background:var(--color-card)}.panel-top,.panel-top .who{display:flex;align-items:center}.panel-top .who{gap:var(--space-3);min-width:0}.panel-top .who strong{font-family:var(--font-display);font-weight:600;font-size:var(--text-lg);color:var(--color-ink)}.panel-actions{display:flex;align-items:center;gap:var(--space-2)}.panel-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:var(--space-4);align-items:start}.card{padding:var(--space-5);border-radius:var(--r-lg);border:1px solid var(--color-line);background:var(--color-card);box-shadow:var(--shadow-card)}.card+.card{margin-top:var(--space-4)}.card h2{font-size:var(--text-lg);font-weight:700;letter-spacing:var(--track-tight);margin-bottom:var(--space-1);color:var(--color-ink)}.card .note{font-size:var(--text-sm);color:var(--color-ink-2);line-height:1.55}.card .empty{margin-top:var(--space-3);padding:var(--space-4);border-radius:var(--r-md);border:1px solid var(--color-line);background:var(--color-paper-2);font-size:var(--text-sm);color:var(--color-ink-3);line-height:1.5;display:flex;gap:var(--space-2);align-items:flex-start}.card .empty svg{width:16px;height:16px;flex:none;margin-top:var(--space-1)}.card .note svg{width:15px;height:15px;flex:none;vertical-align:-2px;margin-right:var(--space-1);color:var(--color-brand-link)}.card p svg{max-width:16px;max-height:16px}.kv{display:grid;grid-template-columns:auto 1fr;gap:var(--space-2) var(--space-4);margin-top:var(--space-4);font-size:var(--text-base)}.kv dd{margin:0;color:var(--color-ink)}.meter{margin-top:var(--space-4)}.meter-bar{height:8px;background:var(--color-paper-2);overflow:hidden}.meter-bar,.meter-bar i{border-radius:var(--r-sm)}.meter-bar i{display:block;height:100%;background:var(--color-brand)}.meter-value{display:flex;align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-2)}.meter-value b{font-family:var(--font-display);font-weight:700;font-size:var(--text-3xl);line-height:1;color:var(--color-ink)}.meter-value span{font-size:var(--text-sm);color:var(--color-ink-3)}.checklist{list-style:none;margin:var(--space-4) 0 0;padding:0;flex-direction:column}.checklist,.checklist li{display:flex;gap:var(--space-2)}.checklist li{align-items:flex-start;font-size:var(--text-sm);line-height:1.45}.checklist svg{width:15px;height:15px;flex:none;margin-top:var(--space-1)}.checklist .done{color:var(--color-ink-3)}.checklist .done svg{color:var(--color-valid)}.checklist .todo{color:var(--color-ink)}.checklist .todo svg{color:var(--color-amber)}.cert-table{margin-top:var(--space-4);display:flex;flex-direction:column}.cert-row{display:grid;grid-template-columns:1fr auto;gap:var(--space-2) var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--color-line-soft)}.cert-row:last-child{border-bottom:0}.cert-row .name{font-size:var(--text-base);color:var(--color-ink)}.cert-row .issuer{font-size:var(--text-xs);color:var(--color-ink-3);margin-top:var(--space-1)}.cert-row .when{font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--color-ink-2);text-align:right}.cand{padding:var(--space-4);border-radius:var(--r-md);border:1px solid var(--color-line);background:var(--color-paper-2)}.cand+.cand{margin-top:var(--space-3)}.cand-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.cand-ref{white-space:nowrap;font-size:var(--text-md);font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:var(--track-normal);color:var(--color-ink)}.cand-head{color:var(--color-ink-2);margin-top:var(--space-1)}.cand-head,.cand-kv{font-size:var(--text-sm)}.cand-kv{display:grid;grid-template-columns:120px 1fr;gap:var(--space-2) var(--space-3)}.cand-kv dt{font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--color-ink-3)}.cand-kv dd{margin:0;color:var(--color-ink)}.cand-codes{display:flex;flex-wrap:wrap;gap:var(--space-1)}.cand-cert{display:inline-flex;flex-direction:column;gap:var(--space-1);align-items:flex-start}.cand-codes.cand-certs{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3)}.cand-certs .cand-cert{display:flex;flex-direction:row;flex-wrap:wrap;align-items:flex-start;gap:var(--space-1) var(--space-2);min-width:0}.cand-certs .cand-cert .evidence-block{flex:1 1 220px;margin-top:calc(var(--space-1) * 1.5)}.cand-kv dd.full,.cand-kv dt.full{grid-column:1/-1}.cand-kv dd.full{margin-top:calc(-1 * var(--space-1))}.cand-lock{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-ink-3);font-size:var(--text-xs)}.cand-lock svg{width:13px;height:13px}.cand-lock i{display:inline-block;height:10px;width:74px;border-radius:var(--r-sm);background:repeating-linear-gradient(115deg,color-mix(in srgb,var(--color-ink-3) 34%,transparent) 0 7px,color-mix(in srgb,var(--color-ink-3) 14%,transparent) 7px 13px)}@media (max-width:900px){.cand-kv,.panel-grid{grid-template-columns:1fr}.cand-kv{gap:var(--space-1)}.cand-kv dt{margin-top:var(--space-2)}}@media (max-width:560px){.auth-page{padding:var(--space-4)}.auth-card{padding:var(--space-5)}.panel-top{padding:var(--space-3) var(--space-4)}.kv{grid-template-columns:1fr;gap:var(--space-1)}}.avatar{display:inline-flex;align-items:center;justify-content:center;flex:none;overflow:hidden;border-radius:var(--r-md);border:1px solid var(--color-line);background:var(--color-b50);color:var(--color-ink-3)}.avatar svg{width:60%;height:60%}.avatar-md{width:56px;height:56px}.cand-top-lead{display:flex;align-items:flex-start;gap:var(--space-3);min-width:0}.session-repair{margin:var(--space-5) auto;max-width:440px}