:root{--bg:#f7f7f5;--surface:#fff;--ink:#111827;--ink-muted:#6b7280;--line:#e5e7eb;--accent:#0f766e;--accent-ink:#fff;--danger:#b91c1c;--warn-bg:#fff7ed;--warn-ink:#9a3412;--radius:10px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;padding:0}a{color:inherit}button,input,select,textarea{font:inherit}.wordmark{letter-spacing:-.01em;align-items:center;gap:.45em;font-weight:700;display:inline-flex}.wordmark-sm{font-size:1.05rem}.wordmark-md{font-size:1.6rem}.wordmark-lg{font-size:2.4rem}.wordmark-mark{background:var(--accent);width:.9em;height:.9em;box-shadow:inset 0 0 0 .18em var(--surface), inset 0 0 0 .3em var(--accent);border-radius:.2em}.wordmark-link{text-decoration:none}.auth{flex-direction:column;align-items:center;min-height:100dvh;padding:2.5rem 1.25rem;display:flex}.auth-brand{text-align:center;margin-bottom:1.5rem}.auth-tagline{color:var(--ink-muted);margin:.5rem 0 0}.auth-status{color:var(--ink-muted);text-align:center;padding:2rem 0}.form{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);gap:.9rem;width:100%;max-width:380px;padding:1.25rem;display:grid}.field{gap:.3rem;display:grid}.field-label{justify-content:space-between;font-size:.85rem;font-weight:600;display:flex}.field input,.field select,.field textarea{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;padding:.6rem .7rem}.field input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:#0000}.field-hint{color:var(--ink-muted);font-size:.8rem}.field-hint-error{color:var(--danger)}.show-toggle{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:.8rem}.btn{cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:.4rem;padding:.65rem 1rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:disabled{opacity:.6;cursor:default}.btn-secondary{background:var(--surface);border-color:var(--line);color:var(--ink)}.btn-danger{background:var(--surface);border-color:var(--danger);color:var(--danger)}.btn-block{width:100%}.form-error{color:var(--danger);margin:0;font-size:.9rem}.form-meta{color:var(--ink-muted);text-align:center;margin:0;font-size:.85rem}.form-divider{color:var(--ink-muted);align-items:center;gap:.6rem;font-size:.8rem;display:flex}.form-divider:before,.form-divider:after{content:"";background:var(--line);flex:1;height:1px}.landing{flex-direction:column;min-height:100dvh;display:flex}.landing-nav{justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.landing-nav-links{gap:.6rem;display:flex}.landing-hero{text-align:center;flex:1;place-content:center;gap:1rem;max-width:640px;margin:0 auto;padding:2rem 1.25rem 4rem;display:grid}.landing-hero h1{letter-spacing:-.02em;margin:0;font-size:clamp(2rem,6vw,3rem)}.landing-hero p{color:var(--ink-muted);margin:0;font-size:1.1rem}.landing-hero-cta{justify-content:center;gap:.6rem;margin-top:.5rem;display:flex}.landing-foot{text-align:center;color:var(--ink-muted);padding:1rem;font-size:.8rem}.app-header{background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:1rem;padding:.75rem 1.25rem;display:flex}.app-header-org{color:var(--ink-muted);font-size:.9rem}.app-header-nav{flex-wrap:wrap;gap:.15rem;margin-left:auto;display:flex}.app-header-nav-link{color:var(--ink-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.4rem .6rem;font-size:.9rem;text-decoration:none}.app-header-nav-link[aria-current=page]{color:var(--ink);background:var(--bg);font-weight:600}.app-header-signout{color:var(--danger)}.app-main{max-width:860px;margin:0 auto;padding:1.5rem 1.25rem 4rem}.app-page-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.25rem;display:flex}.app-page-title{margin:0;font-size:1.5rem}.app-page-sub{color:var(--ink-muted);margin:.25rem 0 0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem}.card+.card{margin-top:.9rem}.card h2{margin:0 0 .5rem;font-size:1rem}.stat-row{flex-wrap:wrap;gap:1.5rem;display:flex}.stat{gap:.1rem;display:grid}.stat-value{letter-spacing:-.02em;font-size:1.8rem;font-weight:700}.stat-label{color:var(--ink-muted);font-size:.85rem}.empty{text-align:center;justify-items:center;gap:.5rem;padding:2.5rem 1rem;display:grid}.empty p{margin:0}.empty-detail{color:var(--ink-muted)}.notice{background:var(--warn-bg);color:var(--warn-ink);border-radius:8px;padding:.7rem .9rem;font-size:.9rem}.muted{color:var(--ink-muted)}.table{border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:100%;font-size:.9rem;overflow:hidden}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.6rem .75rem}.table th{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);font-size:.75rem}.table-wrap{overflow-x:auto}.pill{background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:.1rem .5rem;font-size:.75rem;display:inline-block}.pill-admin{background:var(--accent);color:var(--accent-ink);border-color:#0000}.btn-sm{padding:.3rem .6rem;font-size:.8rem}.app-main-narrow{max-width:560px}.form-wide{max-width:none}.filters{grid-template-columns:1fr;gap:.5rem;margin-bottom:1rem;display:grid}.filters input,.filters select{border:1px solid var(--line);background:var(--surface);border-radius:8px;width:100%;padding:.55rem .7rem}@media (min-width:640px){.filters{grid-template-columns:2fr 1fr 1fr 1fr}}.asset-list{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.asset-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:.9rem;padding:.7rem .9rem;text-decoration:none;display:flex}.asset-card:hover{border-color:var(--accent)}.asset-card-body{flex:1;gap:.1rem;min-width:0;display:grid}.asset-card-name{font-weight:600}.asset-card-meta{color:var(--ink-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;overflow:hidden}.asset-thumb{object-fit:cover;background:var(--bg);border-radius:8px;flex-shrink:0;width:56px;height:56px}.asset-thumb-empty{border:1px dashed var(--line)}.asset-thumb-large{border-radius:var(--radius);width:128px;height:128px}.status{border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:.15rem .55rem;font-size:.75rem}.status-active{color:var(--accent);border-color:var(--accent)}.status-archived{color:var(--ink-muted)}.status-retired{color:var(--danger);border-color:var(--danger)}.asset-editor{gap:.9rem;display:grid}.asset-editor .card+.card{margin-top:0}.asset-head{align-items:flex-start;gap:1rem;display:flex}.asset-cover{justify-items:center;gap:.4rem;display:grid}.asset-cover-btn{cursor:pointer}.asset-head-body{flex:1;min-width:0}.grid-2{grid-template-columns:1fr;gap:.8rem;display:grid}@media (min-width:640px){.grid-2{grid-template-columns:1fr 1fr}.span-2{grid-column:span 2}}.row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.tag-url{word-break:break-all;margin:0 0 .5rem}.tag-url code{background:var(--bg);border-radius:6px;padding:.2rem .4rem}.vis-toggle{border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--ink-muted);border-radius:999px;padding:.05rem .45rem;font-size:.7rem;font-weight:500}.vis-toggle.vis-public{color:var(--accent);border-color:var(--accent)}.vis-toggle:disabled{cursor:default;opacity:.6}.card-danger{border-color:#fecaca}.pub-page{max-width:560px;margin:0 auto;padding:0 0 3rem}.pub-cover{object-fit:cover;width:100%;max-height:300px;display:block}.pub-head{padding:1.25rem 1.25rem .5rem}.pub-org{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);margin:0 0 .25rem;font-size:.8rem}.pub-title{letter-spacing:-.01em;margin:0 0 .35rem;font-size:1.7rem;line-height:1.15}.pub-idline{color:var(--ink-muted);margin:.1rem 0}.pub-location{margin:.5rem 0 0}.pub-banner{background:var(--surface);border:1px solid var(--line);border-radius:8px;margin:.75rem 1.25rem;padding:.6rem .9rem}.pub-banner-ok{border-color:var(--accent);color:var(--accent)}.pub-banner-retired{background:var(--warn-bg);color:var(--warn-ink);border-color:#0000}.pub-desc{white-space:pre-line;margin:.5rem 1.25rem}.pub-section{padding:.9rem 1.25rem 0}.pub-section h2{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);margin:0 0 .4rem;font-size:.8rem}.pub-docs{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.pub-docs a{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:.7rem .9rem;font-weight:600;text-decoration:none;display:block}.pub-facts{grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:0;display:grid}.pub-facts dt{color:var(--ink-muted)}.pub-facts dd{margin:0}.pub-provider{margin:0;line-height:1.6}.pub-history{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.pub-history-row{grid-template-columns:6.5rem 1fr;gap:.5rem;display:grid}.pub-history-date{color:var(--ink-muted);white-space:nowrap}.pub-muted{color:var(--ink-muted)}.pub-report{border-top:1px solid var(--line);margin:1.5rem 1.25rem 0;padding-top:1rem}.pub-foot{text-align:center;color:var(--ink-muted);padding:1.5rem;font-size:.8rem}.pub-foot a{color:inherit}.tag-panel-body{flex-wrap:wrap;align-items:flex-start;gap:1rem;display:flex}.tag-qr{border:1px solid var(--line);background:#fff;border-radius:8px;flex-shrink:0;width:144px;height:144px}.tag-panel-info{flex:1;gap:.5rem;min-width:200px;display:grid}.tag-panel-info p{margin:0}.doc-list{gap:.4rem;margin:.6rem 0 0;padding:0;list-style:none;display:grid}.doc-row{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.6rem;padding:.4rem 0;display:flex}.doc-row:first-child{border-top:none}.doc-link{cursor:pointer;color:var(--ink);text-align:left;background:0 0;border:none;padding:0;font-weight:600}.doc-link:hover{color:var(--accent)}.doc-meta{flex:1;font-size:.85rem}.timeline{gap:.75rem;margin:.6rem 0 0;padding:0;list-style:none;display:grid}.timeline-row{border-top:1px solid var(--line);grid-template-columns:6.5rem 1fr;gap:.75rem;padding-top:.75rem;display:grid}.timeline-row:first-child{border-top:none;padding-top:0}.timeline-date{color:var(--ink-muted);white-space:nowrap;font-size:.9rem}.timeline-body{gap:.2rem;min-width:0;display:grid}.timeline-desc{white-space:pre-line}.timeline-actions{margin-top:.3rem}.provider-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.provider-notes{white-space:pre-line;margin-top:.2rem;font-size:.85rem}@media (max-width:480px){.timeline-row{grid-template-columns:1fr;gap:.2rem}}.hp{width:1px;height:1px;position:absolute;top:auto;left:-10000px;overflow:hidden}.report-open{color:var(--danger);border-color:var(--danger)}.report-acknowledged{color:var(--warn-ink);border-color:var(--warn-ink)}.report-closed{color:var(--ink-muted)}.attention,.activity{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.attention a{border-top:1px solid var(--line);align-items:baseline;gap:.6rem;padding:.4rem 0;text-decoration:none;display:flex}.attention li:first-child a{border-top:none}.attention-icon{color:var(--warn-ink)}.attention-report{color:var(--danger)}.activity li{border-top:1px solid var(--line);justify-content:space-between;gap:1rem;padding:.35rem 0;display:flex}.activity li:first-child{border-top:none}.activity a{text-decoration:none}.row-overdue td:first-child{color:var(--danger);font-weight:600}.row-soon td:first-child{color:var(--warn-ink);font-weight:600}.plans{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.7rem;margin:.8rem 0;display:grid}.plan{border:1px solid var(--line);border-radius:8px;justify-items:start;gap:.3rem;padding:.8rem;display:grid}.plan-current{border-color:var(--accent)}.steps{gap:.8rem;margin:0;padding:0;list-style:none;display:grid}.step{align-items:flex-start;gap:.9rem;display:flex}.step-num{background:var(--accent);width:1.8rem;height:1.8rem;color:var(--accent-ink);border-radius:50%;flex-shrink:0;place-items:center;font-size:.9rem;font-weight:700;display:grid}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:focus-visible,.vis-toggle:focus-visible{outline-offset:3px}