
/* Tata letak: pita sampul Warta di atas, lalu dua kolom (pengaturan edisi | daftar naskah) seperti halaman warta dua kolom. */
:root{
  --bg:#f6f5ef; --panel:#ffffff; --ink:#24231b; --muted:#6b6855; --line:#dedbcc;
  --olive:#4a4630; --olive-ink:#fbfaf3; --gold:#996600; --gold-soft:#f3e7c8; --sun:#f2d600;
  --warn:#8a5a00; --warn-bg:#fff4d6; --bad:#a3322a; --ok:#3d6b2a;
  --f-display:"Source Serif 4", Georgia, "Times New Roman", serif;
  --f-body:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-mono:"IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;
  --r:8px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#17160f; --panel:#211f16; --ink:#ece9da; --muted:#a7a28a; --line:#3a3726;
  --olive:#2c2a1c; --olive-ink:#f4f1e2; --gold:#d9a640; --gold-soft:#3a3018; --sun:#e8cd2a;
  --warn:#f0c46a; --warn-bg:#352a12; --bad:#ef8a80; --ok:#9ccc7e; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#17160f; --panel:#211f16; --ink:#ece9da; --muted:#a7a28a; --line:#3a3726;
  --olive:#2c2a1c; --olive-ink:#f4f1e2; --gold:#d9a640; --gold-soft:#3a3018; --sun:#e8cd2a;
  --warn:#f0c46a; --warn-bg:#352a12; --bad:#ef8a80; --ok:#9ccc7e; color-scheme:dark}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font:15px/1.55 var(--f-body);margin:0}
.wrap{max-width:1180px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
header.band{background:var(--olive);color:var(--olive-ink);border-bottom:4px solid var(--gold)}
header.band .wrap{padding-block:22px 18px;display:flex;flex-wrap:wrap;gap:8px 24px;align-items:flex-end;justify-content:space-between}
.brand small{display:block;font:500 12px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--sun);margin-bottom:8px}
.brand h1{font:700 clamp(26px,4vw,36px)/1.1 var(--f-display);margin:0;text-wrap:balance}
.brand p{margin:6px 0 0;max-width:62ch;opacity:.85}
.edition-tag{font:500 13px var(--f-mono);border:1px solid color-mix(in srgb,var(--olive-ink) 35%,transparent);padding:6px 10px;border-radius:999px;white-space:nowrap}
main .wrap{display:grid;grid-template-columns:340px minmax(0,1fr);gap:28px;padding-block:28px 120px}
@media (max-width:860px){main .wrap{grid-template-columns:1fr}aside{order:2}}
aside{display:flex;flex-direction:column;gap:20px}
section.box{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:18px}
h2{font:700 19px/1.25 var(--f-display);margin:0 0 12px}
h3{font:600 12px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
label{display:block;font-size:13px;color:var(--muted);margin-bottom:4px}
input[type=text],input[type=number],select,textarea{width:100%;font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:7px 9px}
textarea{font-size:13px;line-height:1.5;min-height:150px;resize:vertical}
input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,.drop:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fields{display:flex;flex-direction:column;gap:10px}
.checks{display:flex;flex-direction:column;gap:8px;font-size:14px}
.checks label{display:flex;gap:8px;align-items:flex-start;color:var(--ink);font-size:14px;margin:0}
.checks input{margin-top:4px;accent-color:var(--gold)}
.hint{font-size:12.5px;color:var(--muted);margin:6px 0 0}
.cover{position:relative;border-radius:6px;overflow:hidden;border:1px solid var(--line);aspect-ratio:5.64/2.28;max-width:100%;background:#4a4630}
.cover .photo{position:absolute;inset:0 0 auto;height:44%;background-size:cover;background-position:center}
.cover .t1{position:absolute;left:4%;top:12%;font:800 clamp(18px,3.4vw,26px)/1 Arial,sans-serif;color:#ff0;-webkit-text-stroke:.5px #000}
.cover .t2{position:absolute;left:4%;top:47%;font:800 clamp(14px,2.6vw,19px)/1.02 Arial,sans-serif;color:#fff}
.cover .t3{position:absolute;left:4%;bottom:5%;font:11px Arial,sans-serif;color:#ff0}
.btn{font:600 14px var(--f-body);border-radius:6px;border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:8px 12px;cursor:pointer}
.btn:hover{border-color:var(--gold)}
.btn.small{padding:4px 8px;font-size:13px}
.btn.primary{background:var(--gold);border-color:var(--gold);color:#fff}
.btn.primary:hover{filter:brightness(1.07)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.drop{border:2px dashed var(--line);border-radius:var(--r);background:var(--panel);padding:26px 18px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}
.drop.over{border-color:var(--gold);background:var(--gold-soft)}
.drop strong{font:700 18px var(--f-display);display:block;margin-bottom:4px}
.drop p{margin:0;color:var(--muted);font-size:14px}
.listhead{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin:26px 0 12px}
.listhead h2{margin:0}
.count{font:500 13px var(--f-mono);color:var(--muted)}
ol.arts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.art{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:4px 14px;align-items:start}
.art .no{font:700 26px/1 var(--f-display);color:var(--gold);padding-top:2px}
.art .ttl{font:600 16px/1.35 var(--f-display);margin:0;text-wrap:balance}
.art .meta{font-size:13px;color:var(--muted);margin-top:2px;overflow-wrap:anywhere}
.art .ctrl{display:flex;gap:6px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.chip{font:500 12px var(--f-mono);padding:2px 8px;border-radius:999px;background:var(--bg);border:1px solid var(--line);font-variant-numeric:tabular-nums}
.warns{grid-column:2/4;margin:8px 0 0;padding:8px 10px;border-radius:6px;background:var(--warn-bg);color:var(--warn);font-size:13px}
.warns ul{margin:0;padding-left:18px}
.detail{grid-column:1/4;margin-top:8px}
.detail summary{cursor:pointer;font-size:13.5px;font-weight:600;color:var(--gold)}
.struct{margin-top:10px;max-height:460px;overflow:auto;border:1px solid var(--line);border-radius:6px}
.struct table{width:100%;border-collapse:collapse;font-size:13px}
.struct td{border-bottom:1px solid var(--line);padding:4px 8px;vertical-align:top}
.struct td.k{width:205px}
.struct select{padding:3px 6px;font-size:12.5px}
.struct tr.dim td{opacity:.5}
.struct .snip{overflow-wrap:anywhere}
.struct tr.t-heading td,.struct tr.t-refHeading td,.struct tr.t-abstractHeading td{font-weight:600}
.struct tr.t-title td{font-family:var(--f-display);font-weight:700}
.empty-state{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:18px}
.empty-state ol{margin:8px 0 0;padding-left:20px;columns:2;column-gap:28px;font-size:14px}
@media (max-width:560px){.empty-state ol{columns:1}.art{grid-template-columns:30px minmax(0,1fr)}.art .ctrl{grid-column:2}.warns{grid-column:1/3}}
.bar{position:fixed;left:0;right:0;bottom:0;background:var(--panel);border-top:1px solid var(--line);z-index:5;padding-bottom:env(safe-area-inset-bottom,0px)}
.bar .wrap{display:flex;gap:14px;align-items:center;justify-content:space-between;padding-block:12px;flex-wrap:wrap}
.status{font-size:14px;min-width:0;flex:1}
.status.err{color:var(--bad)} .status.ok{color:var(--ok)}
.status a{color:var(--gold);font-weight:600}
.err-line{color:var(--bad);font-size:13px;margin-top:6px}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
