.sp-shell{background:var(--subtle,#f5fafb);min-height:100dvh;color:var(--ink,#0f172a);grid-template-rows:auto 1fr;display:grid}.sp-top{border-bottom:1px solid var(--border,#e2e8f0);background:#fff;justify-content:space-between;align-items:center;gap:16px;padding:10px 20px;display:flex}.sp-top__user{color:#334155;align-items:center;gap:12px;font-size:.9rem;display:flex}.sp-chip{color:var(--teal-text,#0f766e);border:1px solid;border-radius:999px;padding:4px 10px;font-size:.78rem;font-weight:600;display:inline-flex}.sp-body{grid-template-columns:240px 1fr;min-height:0;display:grid}.sp-side{background:var(--subtle,#f5fafb);border-right:1px solid var(--border,#e2e8f0);padding:16px 12px}.sp-side ul{gap:2px;margin:0;padding:0;list-style:none;display:grid}.sp-nav{color:#334155;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-size:.92rem;text-decoration:none;display:flex}.sp-nav:hover{background:#fff}.sp-nav[aria-current=page]{color:var(--action,#0369a1);box-shadow:inset 3px 0 0 var(--brand-blue,#0284c7);background:#fff;font-weight:600}.sp-nav[aria-disabled=true]{color:#64748b;cursor:not-allowed}.sp-soon{color:#64748b;border:1px solid #cbd5e1;border-radius:999px;padding:1px 8px;font-size:.72rem}.sp-main{min-width:0;padding:24px}.sp-main h1{margin:0 0 16px;font-size:1.4rem}.sp-state{text-align:center;color:#334155;background:#fff;border:1.5px dashed #cbd5e1;border-radius:16px;padding:36px}.sp-state h2{color:var(--ink,#0f172a);margin:0 0 6px;font-size:1.1rem}.sp-state p{max-width:52ch;margin:0 auto}.sp-state[data-kind=error]{border-color:var(--danger,#b91c1c)}.sp-state[data-kind=forbidden]{border-color:var(--warn,#b45309)}.sp-spin{border:3px solid #e2e8f0;border-top-color:var(--brand-blue,#0284c7);border-radius:50%;width:28px;height:28px;margin:0 auto 12px;animation:.9s linear infinite sp-rot}@keyframes sp-rot{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.sp-spin{animation:none}}.sp-skip{position:absolute;left:-9999px}.sp-skip:focus{z-index:10;background:#fff;padding:8px 12px;top:8px;left:8px}@media (max-width:820px){.sp-body{grid-template-columns:1fr}.sp-side{border-right:0;border-bottom:1px solid var(--border,#e2e8f0);overflow-x:auto}.sp-side ul{display:flex}.sp-nav{white-space:nowrap}}.sp-logout{color:#0f172a;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:999px;padding:6px 14px;font-family:inherit;font-size:.85rem;font-weight:600}.sp-logout:hover{background:#f5fafb}
