:root{--navy:#0b1630;--navy2:#13244b;--gold:#d4af5a;--ink:#eef1f8;--mut:#9aa7c4}
*{box-sizing:border-box}
body{margin:0;background:var(--navy);color:var(--ink);font:16px/1.55 Georgia,"Times New Roman",serif}
header{padding:28px 20px 8px;max-width:1200px;margin:auto}
h1{margin:0;font-size:2rem;letter-spacing:.02em;color:var(--gold)}
header p{color:var(--mut);margin:.3em 0 0;max-width:60ch}
main{display:grid;gap:16px;padding:16px 20px;max-width:1200px;margin:auto}
@media(min-width:900px){main{grid-template-columns:1fr 1fr}.prev{grid-column:2;grid-row:1/3}}
.panel{background:var(--navy2);border:1px solid #2a3d6b;border-radius:10px;padding:18px}
h2{margin:0 0 12px;font-size:1.1rem;color:var(--gold);font-weight:600}
label{display:block;margin:0 0 10px;font:600 .85rem system-ui,sans-serif;color:var(--mut)}
input,select{display:block;width:100%;margin-top:4px;padding:10px;border-radius:6px;border:1px solid #34497f;background:#0b1630;color:var(--ink);font:1rem system-ui,sans-serif}
input[type=color]{height:42px;padding:2px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
#cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;max-height:260px;overflow:auto;margin-top:10px}
.card{border:1px solid #34497f;border-radius:8px;background:#0b1630;color:var(--ink);padding:0;text-align:left;cursor:pointer;overflow:hidden;font:.85rem system-ui,sans-serif}
.card i{display:block;height:8px}.card span{display:block;padding:8px}
.card[aria-selected=true]{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}
button{font:600 .95rem system-ui,sans-serif;background:var(--gold);color:#1a1405;border:0;border-radius:6px;padding:11px 16px;cursor:pointer}
button.ghost{background:transparent;color:var(--gold);border:1px solid var(--gold)}
.btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.tabs{display:flex;gap:6px;margin-bottom:10px}.tabs button{background:#0b1630;color:var(--mut);border:1px solid #34497f}.tabs .on{background:var(--gold);color:#1a1405}
canvas{width:100%;max-width:460px;height:auto;display:block;margin:auto;border-radius:6px;box-shadow:0 12px 40px #0008}
#err{color:#ff9d9d;min-height:1.2em;font:.9rem system-ui}#msg{color:var(--mut);font:.9rem system-ui}
.note,footer{color:var(--mut);font:.85rem system-ui,sans-serif}footer{max-width:1200px;margin:auto;padding:12px 20px 32px}
.sr{position:absolute;left:-9999px}
@media print{body *{visibility:hidden}canvas,canvas *{visibility:visible}canvas{position:absolute;left:0;top:0;width:100%;max-width:none;box-shadow:none}}
@media(prefers-reduced-motion:no-preference){.card{transition:transform .15s}.card:hover{transform:translateY(-2px)}}
