.admin-root{background:var(--bone);min-height:100vh;font-size:15px}.abtn{min-height:38px;color:var(--ink);border:1px solid var(--line-strong);white-space:nowrap;background:0 0;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:14px;font-weight:540;transition:background-color .2s,border-color .2s,color .2s;display:inline-flex}.abtn:hover:not(:disabled){border-color:var(--ink);background:var(--bone-2)}.abtn:disabled{opacity:.45;cursor:not-allowed}.abtn--primary{background:var(--ink);color:var(--bone);border-color:var(--ink)}.abtn--primary:hover:not(:disabled){background:var(--blue);border-color:var(--blue)}.abtn--danger{color:#b42318;border-color:#b4231873}.abtn--danger:hover:not(:disabled){color:var(--bone);background:#b42318;border-color:#b42318}.abtn--ghost{border-color:#0000;padding:0 8px}.abtn--icon{width:38px;font-family:var(--f-mono);padding:0}.abtn--block{width:100%;min-height:48px}.input{border:1px solid var(--line-strong);background:#fbf9f5;border-radius:0;width:100%;min-height:40px;padding:8px 10px;font-size:15px}textarea.input{resize:vertical;line-height:1.5}.input:focus{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue);outline:none}.input:disabled{opacity:.6}.field{border:0;gap:6px;min-width:0;margin-bottom:14px;padding:0;display:grid}.field>span,.field>legend{justify-content:space-between;gap:8px;font-size:13px;font-weight:600;display:flex}.field small{color:var(--muted);font-weight:400;font-family:var(--f-mono);font-size:11px}.input-prefix{display:flex}.input-prefix em{border:1px solid var(--line-strong);font-style:normal;font-family:var(--f-mono);color:var(--muted);background:var(--bone-2);border-right:0;align-items:center;padding:0 8px;font-size:12px;display:inline-flex}.checks{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.check{border:1px solid var(--line-strong);cursor:pointer;align-items:center;gap:8px;min-height:38px;padding:0 12px;display:inline-flex}.check:has(input:checked){border-color:var(--blue);background:#1f3dff12}.check input,.radio input{accent-color:var(--blue);width:16px;height:16px}.radio{border:1px solid var(--line-strong);cursor:pointer;flex:220px;align-items:flex-start;gap:10px;padding:12px;display:flex}.radio:has(input:checked){border-color:var(--blue);background:#1f3dff12}.radio span{gap:2px;display:grid}.radio small{color:var(--muted);font-size:13px}.form-error{color:#8a1c12;background:#fde8e6;border:1px solid #b4231866;margin-bottom:16px;padding:10px 12px;font-size:14px}.hint{color:var(--muted);margin-bottom:12px;font-size:13px}.empty{text-align:center;border:1px dashed var(--line-strong);color:var(--muted);padding:32px}.empty--sm{text-align:left;margin-bottom:12px;padding:12px}code{font-family:var(--f-mono);background:var(--bone-2);padding:1px 5px;font-size:.9em}.login{grid-template-columns:1fr minmax(320px,440px);min-height:100vh;display:grid}.login__brand{padding:var(--g);background:var(--dark);color:var(--bone);flex-direction:column;justify-content:flex-end;display:flex}.login__mark{letter-spacing:-.045em;font-variation-settings:"wdth" 75;overflow-wrap:anywhere;font-size:clamp(48px,9vw,150px);font-weight:780;line-height:.85}.login__sub{color:#f2eee699;font-family:var(--f-mono);margin-top:16px;font-size:12px}.login__form{padding:var(--g);flex-direction:column;justify-content:center;gap:4px;display:flex}.login__form h1{letter-spacing:-.02em;margin-bottom:20px;font-size:28px}.login__hint{color:var(--muted);margin-top:16px;font-size:13px}.login__back{text-underline-offset:3px;margin-top:8px;font-size:13px;text-decoration:underline}@media (max-width:760px){.login{grid-template-columns:1fr}.login__brand{min-height:30vh}}.adm{grid-template-columns:220px minmax(0,1fr);min-height:100vh;display:grid}.adm__side{background:var(--dark);height:100vh;color:var(--bone);flex-direction:column;gap:24px;padding:20px 16px;display:flex;position:sticky;top:0}.adm__logo{letter-spacing:-.01em;font-variation-settings:"wdth" 80;font-size:20px;font-weight:780;display:grid}.adm__logo span{font-family:var(--f-mono);color:#8fa2ff;letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:400}.adm__side nav{gap:2px;display:grid}.adm__link{color:#f2eee6bf;border-left:2px solid #0000;padding:9px 10px}.adm__link:hover{color:var(--bone);background:#f2eee60f}.adm__link[aria-current=page]{color:var(--bone);border-left-color:var(--blue);background:#f2eee614}.adm__user{color:#f2eee699;gap:8px;margin-top:auto;font-size:13px;display:grid}.adm__user .abtn{color:var(--bone);justify-content:flex-start}.adm__user .abtn:hover{background:#f2eee614}.adm__main{min-width:0;padding:28px clamp(16px,3vw,40px) 64px}@media (max-width:860px){.adm{grid-template-columns:1fr}.adm__side{flex-flow:wrap;align-items:center;gap:12px;height:auto;padding:12px 16px;position:static}.adm__side nav{flex-wrap:wrap;order:3;gap:4px;width:100%;display:flex}.adm__link{border-bottom:2px solid #0000;border-left:0;padding:6px 8px}.adm__link[aria-current=page]{border-bottom-color:var(--blue)}.adm__user{grid-auto-flow:column;align-items:center;margin:0 0 0 auto}.adm__user>span{display:none}}.page{max-width:1100px}.page__head{border-bottom:1px solid var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;padding-bottom:20px;display:flex}.page__head h1{letter-spacing:-.03em;font-variation-settings:"wdth" 85;overflow-wrap:anywhere;font-size:clamp(28px,4vw,44px);line-height:1}.page__sub{color:var(--muted);margin-top:8px;font-size:13px}.page__sub .dirty{color:var(--warn);font-weight:600}.page__actions{flex-wrap:wrap;gap:8px;display:flex}.eyebrow{font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:8px;font-size:11px}.eyebrow a{text-underline-offset:2px;text-decoration:underline}.tabs{flex-wrap:wrap;gap:4px;margin-bottom:14px;display:flex}.tab{background:0 0;border:1px solid #0000;min-height:36px;padding:0 12px;font-weight:560}.tab span{font-family:var(--f-mono);color:var(--muted);font-size:11px}.tab[aria-selected=true]{border-color:var(--ink);background:var(--ink);color:var(--bone)}.tab[aria-selected=true] span{color:#f2eee699}.toolbar{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:8px;margin-bottom:16px;display:grid}@media (max-width:700px){.toolbar{grid-template-columns:1fr}}.plist{gap:8px;display:grid}.prow{border:1px solid var(--line);background:#fbf9f5;grid-template-columns:96px minmax(0,1fr);gap:14px;padding:12px;transition:opacity .2s;display:grid}.prow.is-busy{opacity:.55;pointer-events:none}.prow__thumb{aspect-ratio:16/10;background:var(--bone-2);border:1px solid var(--line);font-family:var(--f-mono);color:var(--muted);place-items:center;font-size:10px;display:grid;overflow:hidden}.prow__thumb img{object-fit:cover;width:100%;height:100%}.prow__title{letter-spacing:-.01em;font-size:18px;font-weight:680}.prow__title:hover{color:var(--blue)}.prow__meta{font-family:var(--f-mono);color:var(--muted);flex-wrap:wrap;gap:4px 14px;margin-top:2px;font-size:11px;display:flex}.prow__badges{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.prow__actions{border-top:1px solid var(--line);flex-wrap:wrap;grid-column:1/-1;gap:6px;padding-top:10px;display:flex}.prow__order{gap:2px;margin-right:6px;display:inline-flex}.badge{font-family:var(--f-mono);border:1px solid var(--line-strong);padding:2px 8px;font-size:11px;display:inline-flex}.badge--active{border-color:var(--blue);color:var(--blue)}.badge--maintenance{border-color:var(--warn);color:var(--warn)}.badge--archived{background:var(--bone-3)}.badge--pub{background:var(--blue);color:var(--bone);border-color:var(--blue)}.badge--draft{border-style:dashed}.badge--feat{background:var(--ink);color:var(--bone);border-color:var(--ink)}.editor{gap:16px;display:grid}.card{border:1px solid var(--line);background:#fbf9f5;padding:clamp(16px,2.4vw,24px)}.card h2{letter-spacing:-.01em;margin-bottom:14px;font-size:18px}.card h3{align-items:baseline;gap:8px;margin:20px 0 10px;font-size:14px;display:flex}.card h3 small{font-family:var(--f-mono);color:var(--muted);font-size:11px;font-weight:400}.card--danger{border-color:#b423184d}.row2{grid-template-columns:1fr 1fr;gap:0 14px;display:grid}@media (max-width:700px){.row2{grid-template-columns:1fr}}.stack-row{align-items:flex-start;gap:8px;display:flex}.stack-row>.field,.stack-row>.grow{flex:1}.stack-row>.abtn{margin-top:22px}.linkrow{grid-template-columns:140px 1fr 2fr 38px;gap:6px;margin-bottom:8px;display:grid}.linkrow--2{grid-template-columns:1fr 2fr 38px}@media (max-width:700px){.linkrow,.linkrow--2{border-bottom:1px solid var(--line);grid-template-columns:1fr 38px;padding-bottom:8px}.linkrow>.input:not(:first-child){grid-column:1}.linkrow>.abtn{grid-area:1/2}}.gallery{gap:10px;display:grid}.imgitem{border:1px solid var(--line);grid-template-columns:180px minmax(0,1fr);gap:14px;margin-bottom:10px;padding:10px;display:grid}.imgitem img{aspect-ratio:16/10;object-fit:cover;background:var(--bone-2);width:100%}.uploader{border:1px dashed var(--line-strong);margin-bottom:8px;padding:12px}.uploader .field{margin-bottom:0}.uploader__confirm{grid-template-columns:160px minmax(0,1fr);align-items:start;gap:12px;margin-top:12px;display:grid}.uploader__confirm img{aspect-ratio:16/10;object-fit:cover;width:100%}.uploader__confirm .page__actions{grid-column:2}@media (max-width:600px){.imgitem,.uploader__confirm{grid-template-columns:1fr}.uploader__confirm .page__actions{grid-column:1}}.toasts{z-index:300;gap:8px;max-width:min(380px,100vw - 32px);display:grid;position:fixed;bottom:16px;right:16px}.toast{background:var(--ink);color:var(--bone);border-left:4px solid var(--blue);animation:toast-in .4s var(--ease-out);gap:2px;padding:12px 14px;font-size:14px;display:grid}.toast--err{border-left-color:#f04438}.toast b{font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.06em;font-size:11px}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}}.dlg{border:1px solid var(--ink);background:var(--bone);max-width:min(460px,100vw - 32px);color:var(--ink);padding:0}.dlg::backdrop{background:#11111180}.dlg form{gap:12px;padding:22px;display:grid}.dlg h2{letter-spacing:-.01em;font-size:20px}.dlg p{color:var(--ink-2);font-size:14px}.dlg__actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}
