*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0}html{background:var(--color-page-bg);scroll-behavior:smooth;-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}html.lenis{scroll-behavior:auto}body{background:var(--color-page-bg);color:var(--color-ink);font-family:var(--font-ui,system-ui),system-ui,-apple-system,"Segoe UI",sans-serif;line-height:var(--leading-ui);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4{font-family:var(--font-display,Georgia),Georgia,serif;margin:0;font-weight:400;letter-spacing:var(--tracking-heading)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}code{font-family:var(--font-mono,ui-monospace),ui-monospace,monospace;font-size:.88em;background:var(--color-brand-100);padding:.0625em .3em;border-radius:var(--radius-xs)}button{font-family:inherit}main{min-height:60vh}.btn-primary{display:inline-block;padding:var(--space-3) var(--space-6);border:none;border-radius:var(--radius-control);background:var(--color-dark-900);color:var(--color-on-dark);font-family:var(--font-mono);font-size:var(--text-small);font-weight:500;cursor:pointer;transition:background var(--dur-fast) var(--ease-standard)}.btn-primary:hover{background:var(--color-brand-900)}.btn-primary:disabled{opacity:.6;cursor:default}.btn-ghost{display:inline-block;padding:var(--space-3) var(--space-5);border:var(--border-hairline) solid var(--color-line-strong);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-ink);font-size:var(--text-small);cursor:pointer}.btn-ghost:hover{border-color:var(--color-brand-600);color:var(--color-brand-900)}.form{display:flex;flex-direction:column}.form,.form-row{gap:var(--space-4)}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-4)}@media (max-width:45em){.form-row{grid-template-columns:1fr}}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field label{font-weight:500;color:var(--color-ink)}.field .hint,.field label{font-size:var(--text-caption)}.field .hint{color:var(--color-muted)}.field input,.field select,.field textarea{padding:var(--space-3) var(--space-4);border:var(--border-hairline) solid var(--color-line-strong);border-radius:var(--radius-field);font-size:var(--text-small);font-family:inherit;background:var(--color-surface);color:var(--color-ink)}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:none;border-color:var(--color-brand-600);box-shadow:var(--shadow-focus)}.field textarea{min-height:calc(var(--space-32) - var(--space-2));resize:vertical}.form-msg{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-small)}.form-msg.is-success{color:var(--color-positive);background:var(--color-positive-bg)}.form-msg.is-error{color:var(--color-negative);background:var(--color-negative-bg)}.admin-table{width:100%;border-collapse:collapse;background:var(--color-surface);border:var(--border-hairline) solid var(--color-line);border-radius:var(--radius-lg);overflow:hidden;font-size:var(--text-small)}.admin-table td,.admin-table th{text-align:left;padding:var(--space-3) var(--space-4);border-bottom:var(--border-hairline) solid var(--color-line);vertical-align:top}.admin-table th{background:var(--color-bg);font-family:var(--font-mono);font-weight:500;font-size:var(--text-caption);color:var(--color-muted);text-transform:uppercase;letter-spacing:var(--tracking-mono)}.admin-table tr:last-child td{border-bottom:none}.admin-panel{background:var(--color-surface);border:var(--border-hairline) solid var(--color-line);border-radius:var(--radius-card);padding:var(--space-6);margin-bottom:var(--space-6)}.row-actions{display:flex;gap:var(--space-3);font-size:var(--text-caption)}.row-actions a,.row-actions button{background:none;border:none;color:var(--color-brand-600);cursor:pointer;padding:0;font-size:var(--text-caption)}.row-actions .danger{color:var(--color-negative)}.metrics-fieldset{display:grid;grid-template-columns:repeat(auto-fit,minmax(12.5rem,1fr));grid-gap:var(--space-4);gap:var(--space-4);margin-top:var(--space-2)}.dist-rows{display:flex;flex-direction:column;gap:var(--space-2);margin:var(--space-2) 0 var(--space-1)}.dist-row{display:grid;grid-template-columns:1fr calc(var(--space-24) + var(--space-3)) var(--space-8);grid-gap:var(--space-2);gap:var(--space-2);align-items:center}.dist-row .dist-name,.dist-row .dist-pct{margin:0}.dist-del{width:var(--space-8);height:var(--space-8);border:var(--border-hairline) solid var(--color-line);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-negative);font-size:var(--text-h4);line-height:1;cursor:pointer}.dist-del:hover:not(:disabled){background:var(--color-negative);color:var(--color-on-dark);border-color:var(--color-negative)}.dist-del:disabled{opacity:.35;cursor:not-allowed}.dist-foot{align-items:center;justify-content:space-between;margin:var(--space-3) 0 var(--space-1)}.cover-preview,.dist-foot{display:flex;gap:var(--space-3)}.cover-preview{flex-direction:column;align-items:flex-start}.cover-preview img{max-width:100%;width:calc(var(--space-32) * 3 - var(--space-6));aspect-ratio:16/9;border-radius:var(--radius-lg);border:var(--border-hairline) solid var(--color-line);object-fit:cover}.body-img-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(12.5rem,1fr));grid-gap:var(--space-4);gap:var(--space-4);margin-top:var(--space-3)}.body-img{border:var(--border-hairline) solid var(--color-line);border-radius:var(--radius-lg);overflow:hidden;background:var(--color-surface)}.body-img-no{padding:var(--space-2) var(--space-3);font-family:var(--font-mono);font-size:var(--text-caption);color:var(--color-brand-900);border-bottom:var(--border-hairline) solid var(--color-line)}.body-img img,.body-img-no{display:block;background:var(--color-bg)}.body-img img{width:100%;max-height:calc(var(--space-32) + var(--space-8));object-fit:contain}.body-img-actions{display:flex;gap:var(--space-2);padding:var(--space-2) var(--space-3)}.body-img-actions button{flex:1 1;padding:var(--space-2);border:var(--border-hairline) solid var(--color-line);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-brand-600);font-size:var(--text-caption);cursor:pointer}.body-img-actions button:hover{border-color:var(--color-brand-600)}.body-img-actions button.danger{color:var(--color-negative)}