:root {
    --ink:#e8dcc4; --panel:#2a241c; --line:#5a4a36; --text:#e8dcc4; --muted:#a89478;
    --ice:#7a9aaa; --gold:#c4a35a;
    --A:#9a3a32; --E:#3a4e6e; --F:#5a8aaa; --G:#3a3a38; --I:#3f6b48; --R:#d8d2c4; --T:#b8860b;
  }
  *{box-sizing:border-box}
  body{margin:0;color:var(--text);font-family:Georgia,serif;background:linear-gradient(180deg,#1a1612,#12100c)}
  a{color:var(--ice);text-decoration:none}
  .bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line);background:rgba(28,24,18,.96);position:sticky;top:0;backdrop-filter:blur(10px);z-index:20;font-family:"Segoe UI",system-ui,sans-serif}
  .bar h1{margin:0;font-size:1.1rem;font-family:Georgia,serif;color:var(--gold)}
  .meta{color:var(--muted);font-size:12px}
  .chip{border:1px solid var(--line);background:#342c22;color:var(--ink);padding:8px 12px;border-radius:4px;font-size:12px;font-weight:600;text-decoration:none!important}
  .chip:hover{border-color:var(--gold);color:var(--gold)}
  .layout{display:grid;grid-template-columns:1fr 300px;gap:16px;max-width:1400px;margin:0 auto;padding:16px;align-items:stretch}
  @media(max-width:1000px){.layout{grid-template-columns:1fr}}
  .board-wrap{background:#241e18;border:1px solid var(--line);border-radius:6px;padding:10px;box-shadow:0 20px 50px rgba(0,0,0,.55)}
  .board{
    position:relative;width:100%;aspect-ratio:1668 / 1505;
    border-radius:8px;overflow:hidden;background:#cfc6b0;
  }
  .board > img.map{
    position:absolute;inset:0;width:100%;height:100%;object-fit:fill;display:block;
    user-select:none;pointer-events:none;
  }
  .unit{
    position:absolute;transform:translate(-50%,-11px); /* pin = center of .token (22px), label hangs below */
    display:flex;flex-direction:column;align-items:center;gap:2px;
    z-index:2;filter:drop-shadow(0 2px 3px rgba(0,0,0,.45));
  }
  .token{
    width:22px;height:22px;border:2px solid #fff;display:grid;place-items:center;
    font-family:"Segoe UI",system-ui,sans-serif;font-size:10px;font-weight:800;color:#fff;
  }
  .token.A{border-radius:50%}
  .token.F{border-radius:3px;transform:rotate(45deg)}
  .token.F span{transform:rotate(-45deg);display:block}
  .tag{
    font-family:"Segoe UI",system-ui,sans-serif;font-size:10px;font-weight:700;
    color:#1a1408;background:rgba(255,248,220,.95);border:1px solid rgba(0,0,0,.4);
    padding:1px 5px;border-radius:4px;white-space:nowrap;
  }
  .side{display:flex;flex-direction:column;gap:12px;align-self:stretch;height:100%}
  .panel{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:14px 16px}
  .panel h2{margin:0 0 8px;font-size:1rem}
  .panel p,.panel li{color:var(--muted);font-size:.9rem;line-height:1.45}
  .panel ul{margin:0;padding-left:18px}
  .power{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid rgba(90,74,54,.55)}
  .power:last-child{border-bottom:0}
  .power img{width:42px;height:42px;border-radius:10px;object-fit:cover;border:2px solid var(--gold);box-shadow:0 0 0 1px rgba(0,0,0,.35),0 0 8px rgba(196,163,90,.25)}
  .power strong{display:block;font-size:.9rem}
  .power span{color:var(--muted);font-size:.75rem;font-family:"Segoe UI",system-ui,sans-serif}
  .credit{margin-top:8px;color:var(--muted);font-size:11px;font-family:"Segoe UI",system-ui,sans-serif;text-align:center}
  .paper{
    max-width:1400px;margin:0 auto 28px;padding:0 16px;
  }
  .masthead{
    background:var(--panel);border:1px solid var(--line);border-radius:6px;
    padding:18px 20px;margin-bottom:14px;text-align:center;
  }
  .masthead h2{
    margin:0;font-size:1.55rem;letter-spacing:.04em;color:var(--gold);
    border-top:2px solid var(--gold);border-bottom:2px solid var(--gold);
    display:inline-block;padding:6px 18px;
  }
  .masthead p{margin:10px 0 0;color:var(--muted);font-size:.9rem}
  .dispatches{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;
  }
  .dispatch{
    background:#241e18;border:1px solid var(--line);border-radius:6px;padding:14px 16px;
    border-top:3px solid var(--accent,#c4a35a);
    box-shadow:0 12px 28px rgba(0,0,0,.35);
  }
  .dispatch header{
    display:grid;grid-template-columns:44px 1fr;gap:10px;align-items:center;
    margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid rgba(90,74,54,.55);
  }
  .dispatch header img{
    width:44px;height:44px;border-radius:10px;object-fit:cover;
    border:2px solid var(--gold);
  }
  .dispatch header strong{display:block;font-size:.95rem}
  .dispatch header span{
    color:var(--muted);font-size:.72rem;font-family:"Segoe UI",system-ui,sans-serif;
    text-transform:uppercase;letter-spacing:.06em;
  }
  .dispatch .copy p{
    margin:0 0 .7em;color:var(--ink);font-size:.92rem;line-height:1.5;
  }
  .dispatch .copy p:last-child{margin-bottom:0}
  .dispatch .by{color:var(--muted);font-style:italic}
  .dispatch.judge{grid-column:1/-1;border-top-width:4px}
  .dispatch.portrait{padding:0;overflow:hidden;display:flex;flex-direction:column}
  .dispatch.portrait header{margin:0;padding:12px 14px 10px;border-bottom:1px solid rgba(90,74,54,.55)}
  .dispatch.portrait .shot{
    flex:1;display:block;width:100%;aspect-ratio:9/16;object-fit:cover;object-position:center top;
    background:#1a1612;
  }
  .dispatch.portrait .caption{
    padding:10px 14px 14px;color:var(--muted);font-size:.82rem;line-height:1.4;
  }
  .dispatch.portrait .caption em{color:var(--ink);font-style:normal}
  .dispatch.judge header strong{color:var(--gold)}


  .adj-btn{
    cursor:pointer;border:1px solid var(--line);background:rgba(0,0,0,.25);
    color:var(--ink);border-radius:999px;padding:6px 12px;font:inherit;font-size:.85rem
  }
  .adj-btn:hover{border-color:var(--gold);color:var(--gold)}
  .modal-root[hidden]{display:none!important}
  .modal-root{
    position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;
    padding:18px;background:rgba(8,6,4,.72);backdrop-filter:blur(3px)
  }
  .modal-panel{
    width:min(980px,100%);max-height:min(92vh,920px);overflow:auto;
    background:var(--panel);border:1px solid var(--line);border-radius:14px;
    box-shadow:0 18px 48px rgba(0,0,0,.55);padding:18px 20px 22px;position:relative
  }
  .modal-panel .modal-close{
    position:sticky;top:0;float:right;margin:-4px -4px 8px 12px;
    border:1px solid var(--line);background:rgba(0,0,0,.35);color:var(--ink);
    border-radius:999px;padding:4px 12px;cursor:pointer;font:inherit;font-size:.85rem;z-index:2
  }
  .modal-panel .modal-close:hover{border-color:var(--gold);color:var(--gold)}
  .adj-sheet .masthead{margin-bottom:14px;clear:both}
  .adj-sheet .masthead h2{margin:0 0 4px;font-family:Cinzel,serif;font-size:1.25rem;color:var(--gold)}
  .adj-sheet .masthead p{margin:0;color:var(--muted);font-size:.9rem}
  .adj-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:16px}
  @media (max-width:900px){.adj-grid{grid-template-columns:1fr}}
  .adj-card{
    border:1px solid rgba(90,74,54,.55);border-radius:10px;padding:12px 14px;
    border-top:3px solid var(--accent,#c4a35a);background:rgba(0,0,0,.12)
  }
  .adj-card h3{margin:0 0 8px;font-size:.95rem;display:flex;align-items:center;gap:8px}
  .adj-card h3 img{width:28px;height:28px;border-radius:50%;border:1px solid rgba(196,163,90,.55);object-fit:cover;background:#f0e6d2}
  .adj-card ol{margin:0;padding-left:1.1rem}
  .adj-card li{margin:3px 0;font-family:ui-monospace,Consolas,monospace;font-size:.86rem}
  .adj-card li .ok{color:#8fbf88}
  .adj-card li .fail{color:#d08070;font-weight:600}
  .conflicts{margin:14px 0 0;padding:12px 14px;border:1px dashed rgba(196,163,90,.45);border-radius:10px}
  .conflicts h3{margin:0 0 8px;color:var(--gold);font-size:.95rem}
  .conflicts ul{margin:0;padding-left:1.15rem}
  .conflicts li{margin:6px 0;line-height:1.45}
  .adj-table{width:100%;border-collapse:collapse;margin-top:14px;font-size:.88rem}
  .adj-table th,.adj-table td{border-bottom:1px solid rgba(90,74,54,.45);padding:7px 8px;text-align:left;vertical-align:top}
  .adj-table th{color:var(--gold);font-weight:600}
  .adj-table code{font-family:ui-monospace,Consolas,monospace;font-size:.84rem}
  .build{color:var(--gold);font-weight:600}
  body.modal-open{overflow:hidden}


  .board-wrap{position:relative}
  .map-orders-btn{
    position:absolute;top:12px;right:12px;z-index:5;
    cursor:pointer;border:1px solid var(--line);background:rgba(28,24,18,.92);
    color:var(--ink);border-radius:4px;padding:8px 12px;font:inherit;font-size:12px;font-weight:600;
    backdrop-filter:blur(6px);box-shadow:0 4px 14px rgba(0,0,0,.35)
  }
  .map-orders-btn:hover{border-color:var(--gold);color:var(--gold)}


.nav-slots{
    display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;
    min-width:min(420px,92vw)
  }
  .nav-slots .chip,.nav-slots .chip-slot{
    display:inline-flex;align-items:center;justify-content:center;
    min-width:132px;min-height:34px;padding:8px 12px;box-sizing:border-box;
    border-radius:4px;font-size:12px;font-weight:600;text-decoration:none!important;
    white-space:nowrap
  }
  .nav-slots .chip-slot{visibility:hidden;border:1px solid transparent;pointer-events:none}
  .nav-slots .nav-home{justify-self:center;grid-column:2}
  .nav-slots .nav-balance{
    grid-column:1;justify-self:start;display:flex;gap:8px;align-items:center;
    visibility:hidden;pointer-events:none
  }
  .nav-slots .nav-pair{
    grid-column:3;justify-self:end;display:flex;gap:8px;align-items:center
  }
  .nav-slots .chip[aria-disabled="true"]{opacity:.55;cursor:default;border-style:dashed;pointer-events:none}

  .judge-whacky{margin:14px 0 6px;border:1px solid rgba(90,74,54,.55);border-radius:4px;overflow:hidden;background:#1a1612}
  .judge-whacky img{display:block;width:100%;height:auto;vertical-align:middle}
  .judge-whacky .cap{padding:10px 12px;font-size:.88rem;color:var(--muted);font-family:"Segoe UI",system-ui,sans-serif;border-top:1px solid rgba(90,74,54,.45)}

  .side{display:flex;flex-direction:column;gap:12px;align-self:stretch;height:100%}
  .panel.season-status{
    height:249px;min-height:249px;max-height:249px;box-sizing:border-box;
    display:flex;flex-direction:column;flex-shrink:0;overflow:hidden
  }
  .panel.season-status ul{margin:8px 0 0;padding-left:18px}
  .panel.forces-panel{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
  .panel.forces-panel .forces-list{display:flex;flex-direction:column;gap:10px;flex:1;justify-content:space-evenly}
  .panel.forces-panel .power{
    min-height:52px;align-items:center;padding:8px 0 4px;box-sizing:border-box;
    border-top:1px solid var(--line);border-bottom:0;margin-top:0
  }
  .panel.key-panel{margin-top:auto;flex-shrink:0;min-height:88px;box-sizing:border-box}

  /* Judge reveal: prose + corner portrait */
  .dispatch.judge .copy.judge-split{
    display:grid;
    grid-template-columns:1fr minmax(140px,200px);
    gap:16px 18px;
    align-items:end;
  }
  @media(max-width:700px){
    .dispatch.judge .copy.judge-split{grid-template-columns:1fr}
    .dispatch.judge .judge-corner{justify-self:center;max-width:220px}
  }
  .dispatch.judge .judge-prose p{margin:0 0 .7rem}
  .dispatch.judge .judge-prose p:last-child{margin-bottom:0}
  .dispatch.judge .judge-corner{
    margin:0;
    justify-self:end;
    align-self:end;
    border:1px solid rgba(90,74,54,.55);
    border-radius:4px;
    overflow:hidden;
    background:#1a1612;
    width:100%;
  }
  .dispatch.judge .judge-corner img{
    display:block;width:100%;height:auto;vertical-align:middle;
  }
