.centered{display:grid;place-items:center;padding:var(--sp-5)}.centered,.shell{min-height:100dvh}.shell{display:grid;grid-template-columns:15rem 1fr}@media (max-width:60rem){.shell{grid-template-columns:1fr}}.sidebar{border-right:1px solid var(--hairline);background:var(--surface);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-4);position:-webkit-sticky;position:sticky;top:0;height:100dvh}@media (max-width:60rem){.sidebar{position:static;height:auto;border-right:none;border-bottom:1px solid var(--hairline)}}.brand{display:flex;align-items:center;gap:var(--sp-2);font-weight:660;letter-spacing:-.02em;color:var(--ink)}.brand:hover{text-decoration:none}.brandmark{width:1.6rem;height:1.6rem;border-radius:var(--r-sm);background:var(--brand);color:var(--on-brand);display:grid;place-items:center;font-size:.8rem;font-weight:700;flex:none}.nav{display:flex;flex-direction:column;gap:2px}@media (max-width:60rem){.nav{flex-direction:row;flex-wrap:wrap}}.navlink{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);color:var(--ink-muted);font-size:.9rem;font-weight:500}.navlink:hover{background:var(--surface-sunken);color:var(--ink);text-decoration:none}.navlink[aria-current=page]{background:var(--brand-soft);color:var(--brand);font-weight:580}.sidebar-footer{margin-top:auto;padding-top:var(--sp-4);border-top:1px solid var(--hairline);display:flex;flex-direction:column;gap:var(--sp-2)}.content{min-width:0;padding:var(--sp-6) var(--sp-5) var(--sp-8);max-width:68rem;width:100%}.pagehead{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-5)}.pagehead p{margin-top:var(--sp-1);color:var(--ink-muted);font-size:.9rem}.card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-3);box-shadow:var(--shadow-sm)}.card.narrow{width:min(26rem,100%)}.grid{display:grid;grid-gap:var(--sp-4);gap:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(min(20rem,100%),1fr))}.stack{flex-direction:column}.row,.stack{display:flex;gap:var(--sp-2)}.row{align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.btn{font:inherit;font-weight:540;font-size:.9rem;padding:.5rem .9rem;border-radius:var(--r-md);border:1px solid var(--hairline-strong);background:var(--surface);color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);white-space:nowrap;transition:background .12s ease,border-color .12s ease,transform 60ms ease}.btn:hover:not(:disabled){background:var(--surface-sunken);border-color:var(--ink-faint);text-decoration:none}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.btn.primary:hover:not(:disabled){background:var(--brand-hover);border-color:var(--brand-hover)}.btn.ghost{border-color:transparent;background:transparent;color:var(--ink-muted)}.btn.ghost:hover:not(:disabled){background:var(--surface-sunken);color:var(--ink);border-color:transparent}.btn.danger{color:var(--danger);border-color:transparent;background:transparent}.btn.danger:hover:not(:disabled){background:var(--danger-soft);border-color:transparent}.btn.small{padding:.3rem .6rem;font-size:.82rem}.btn.block{width:100%}.input,select.input,textarea.input{font:inherit;font-size:.92rem;padding:.55rem .7rem;border-radius:var(--r-md);border:1px solid var(--hairline-strong);background:var(--surface);color:var(--ink);width:100%;transition:border-color .12s ease,box-shadow .12s ease}.input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.input:disabled{background:var(--surface-sunken);color:var(--ink-faint)}textarea.input{resize:vertical;min-height:8rem;line-height:1.6}.field{display:flex;flex-direction:column;gap:var(--sp-1)}.label{font-size:.82rem;font-weight:560;color:var(--ink-muted)}input[type=file]{font:inherit;font-size:.85rem;color:var(--ink-muted)}input[type=checkbox]{accent-color:var(--brand);width:1rem;height:1rem;flex:none}.list{list-style:none;margin:0;padding:0;flex-direction:column}.list,.listbtn{display:flex;gap:var(--sp-2)}.listbtn{font:inherit;width:100%;justify-content:space-between;align-items:center;padding:var(--sp-3);border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface);color:var(--ink);cursor:pointer;text-align:left;transition:border-color .12s ease,background .12s ease}.listbtn:hover{border-color:var(--brand);background:var(--brand-soft)}.checkrow{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--hairline);border-radius:var(--r-md);cursor:pointer;transition:border-color .12s ease,background .12s ease}.checkrow:hover{border-color:var(--hairline-strong);background:var(--surface-sunken)}.checkrow:has(input:checked){border-color:var(--brand);background:var(--brand-soft)}.rowitem{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) 0;border-top:1px solid var(--hairline)}.rowitem:first-of-type{border-top:none}.name{font-weight:560}.badge{display:inline-flex;align-items:center;padding:.1rem .5rem;border-radius:var(--r-pill);font-size:.72rem;font-weight:580;letter-spacing:.01em;background:var(--surface-sunken);color:var(--ink-muted);border:1px solid var(--hairline);white-space:nowrap}.badge+.badge,.name+.badge{margin-left:var(--sp-2)}.badge.ok{background:var(--success-soft);color:var(--success);border-color:transparent}.badge.warnbadge{background:var(--warn-soft);color:var(--warn);border-color:transparent}.badge.errbadge{background:var(--danger-soft);color:var(--danger);border-color:transparent}.badge.brandbadge{background:var(--brand-soft);color:var(--brand);border-color:transparent}.banner{padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:var(--surface-sunken);border:1px solid var(--hairline);font-size:.9rem;display:flex;flex-direction:column;gap:var(--sp-1)}.banner ul{margin:0;padding-left:var(--sp-5)}.banner.warn{background:var(--warn-soft);border-color:transparent;color:var(--warn)}.banner.error{background:var(--danger-soft);border-color:transparent;color:var(--danger)}.empty{border:1px dashed var(--hairline-strong);border-radius:var(--r-lg);padding:var(--sp-7) var(--sp-5);text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);color:var(--ink-muted)}.skeleton{height:1rem;border-radius:var(--r-sm);background:linear-gradient(90deg,var(--surface-sunken) 25%,var(--hairline) 50%,var(--surface-sunken) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite}@keyframes shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}.btn{transition:none}}.composer{display:grid;grid-gap:var(--sp-4);gap:var(--sp-4);grid-template-columns:minmax(0,20rem) minmax(0,1fr);align-items:start}@media (max-width:56rem){.composer{grid-template-columns:1fr}}.counters{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--sp-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(6rem,1fr));grid-gap:var(--sp-3);gap:var(--sp-3)}.stats>div{display:flex;flex-direction:column;gap:1px}.stats strong{font-size:1.4rem;letter-spacing:-.03em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:620}.statlabel{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;font-weight:580;color:var(--ink-faint)}.spark{width:100%;height:46px;overflow:visible}.attachments{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2)}.attachments li{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2);border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface-sunken)}.attachments img,.attachments video{width:3rem;height:3rem;object-fit:cover;border-radius:var(--r-sm);background:var(--hairline);flex:none}.attachmeta{display:flex;flex-direction:column;min-width:0;flex:1 1}.attachmeta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress{height:4px;border-radius:var(--r-pill);background:var(--hairline);overflow:hidden}.progress>div{height:100%;background:var(--brand);transition:width .12s linear}.excerpt{color:var(--ink-muted);white-space:pre-wrap;font-size:.92rem}.modal-backdrop{position:fixed;inset:0;background:rgb(10 10 16/.5);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;padding:var(--sp-5);z-index:20}.modal-backdrop .card{box-shadow:var(--shadow-lg);max-height:85dvh;overflow-y:auto}