:root{--ink:#141414;--muted:#6b6660;--line:#e6e1d8;--gold:#c9a46a;--gold-d:#9c7a43;--bg:#faf8f4;--card:#fff;--bad:#a33a2b;--ok:#2f6b45}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 Inter,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--gold-d)}
header{background:#111;color:#fff;padding:14px 24px;display:flex;align-items:center;gap:20px}
header .brand{font-family:Georgia,"Times New Roman",serif;letter-spacing:.32em;font-size:20px}
header .brand small{display:block;font:500 10px/1 Inter,sans-serif;letter-spacing:.35em;color:var(--gold);margin-top:4px}
header nav{margin-left:auto;display:flex;gap:16px;align-items:center}
header nav a{color:#ddd;text-decoration:none}
header form{margin:0}
main{max-width:1100px;margin:0 auto;padding:28px 20px 80px}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:.02em}
h1{font-size:30px;margin:0 0 6px}
h2{font-size:22px;margin:32px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--line)}
h3{font-size:17px;margin:18px 0 6px}
.sub{color:var(--muted);margin:0 0 22px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:20px 22px;margin:14px 0}
label{display:block;font-weight:600;font-size:13px;margin:12px 0 4px}
.hint{font-weight:400;color:var(--muted);font-size:12.5px}
input[type=text],input[type=password],input[type=search],textarea{width:100%;padding:10px 12px;border:1px solid #d9d3c8;border-radius:7px;font:inherit;background:#fff}
textarea{min-height:90px;resize:vertical;line-height:1.5}
textarea.words{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}
input:focus,textarea:focus{outline:2px solid var(--gold);border-color:var(--gold)}
.btn{display:inline-block;background:#111;color:#fff;border:0;border-radius:7px;padding:11px 20px;font:600 14px Inter,sans-serif;cursor:pointer;text-decoration:none}
.btn.gold{background:var(--gold);color:#111}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid #cfc8bb}
.btn.small{padding:6px 12px;font-size:13px}
.row{display:flex;gap:14px;flex-wrap:wrap}.row>*{flex:1;min-width:200px}
.alert{border-radius:8px;padding:12px 14px;margin:12px 0}
.alert.bad{background:#fbeeeb;border:1px solid #efc9c1;color:var(--bad)}
.alert.warn{background:#fdf6e7;border:1px solid #eedcae;color:#7a5a12}
.alert.ok{background:#edf6f0;border:1px solid #c7e2d0;color:var(--ok)}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}
th,td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line);font-size:14px}
th{background:#f3efe7;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.pill{display:inline-block;font-size:11.5px;padding:2px 9px;border-radius:20px;background:#eee}
.pill.built{background:#e3f1e8;color:var(--ok)}.pill.draft,.pill.edited{background:#fbf1dc;color:#7a5a12}.pill.error{background:#fbeeeb;color:var(--bad)}
.thumbs{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0}
.thumb{position:relative;width:110px;height:140px;background:#000;border-radius:6px;overflow:hidden}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb form{position:absolute;top:4px;right:4px}
.thumb button{background:rgba(0,0,0,.65);color:#fff;border:0;border-radius:50%;width:24px;height:24px;cursor:pointer}
.gl{display:grid;grid-template-columns:240px 1fr;gap:8px}
.sticky{position:sticky;bottom:0;background:rgba(250,248,244,.96);border-top:1px solid var(--line);padding:14px 0;margin-top:30px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.center{max-width:440px;margin:60px auto}
#busy{display:none;position:fixed;inset:0;background:rgba(20,20,20,.72);color:#fff;z-index:9;align-items:center;justify-content:center;flex-direction:column;font-size:17px;text-align:center}
#busy .spin{width:42px;height:42px;border:3px solid #555;border-top-color:var(--gold);border-radius:50%;animation:s 1s linear infinite;margin-bottom:16px}
@keyframes s{to{transform:rotate(360deg)}}
.secret{font-family:ui-monospace,monospace;font-size:17px;letter-spacing:.12em;background:#f3efe7;padding:10px;border-radius:6px;word-break:break-all}
.qr svg{width:220px;height:220px}
@media(max-width:700px){.gl{grid-template-columns:1fr}header{flex-wrap:wrap}}
