:root{--bg:#0f1419;--panel:#1a222c;--text:#e7eef7;--muted:#8b9bb0;--accent:#3d8bfd;--bad:#ff6b6b;--warn:#f0c14a;--border:#2a3544;font-family:"Segoe UI","PingFang SC","Noto Sans SC",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}
header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;border-bottom:1px solid var(--border);background:#121820}
.brand{font-weight:700}.grid{display:grid;gap:16px;padding:16px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px 16px}
h2{margin:0 0 8px;font-size:1.05rem}.hint,.muted{color:var(--muted);font-size:.85rem}
textarea,input,select{width:100%;margin:8px 0;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:#0e141b;color:var(--text)}
button,a.button{appearance:none;border:1px solid var(--border);background:#243041;color:var(--text);padding:8px 12px;border-radius:8px;cursor:pointer;text-decoration:none;display:inline-block}
button.primary{background:var(--accent);border-color:transparent;color:#fff}button:disabled{opacity:.45;cursor:not-allowed}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0}
.card{background:#121920;border:1px solid var(--border);border-radius:8px;padding:10px;margin-top:10px;white-space:pre-wrap;font-size:.92rem}
.hidden{display:none!important}.warn{color:var(--bad);margin-top:8px;font-size:.9rem}.alt{color:var(--warn);margin-top:8px;font-size:.88rem}
#plate{width:100%;max-width:420px;background:#0a0e13;border:1px dashed #3a4a5e;border-radius:8px;touch-action:none}
#checkList{list-style:none;padding:0}#checkList li{padding:6px 0;border-bottom:1px solid var(--border);font-size:.9rem}
#checkList li.pass::before{content:"✅ "}#checkList li.fail::before{content:"❌ "}
#preview{height:260px;margin-top:10px;border-radius:8px;overflow:hidden;background:#0a0e13}footer{padding:12px 20px 24px}

.login-form { display: inline-flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.login-form input { padding: 4px 8px; border-radius: 4px; border: 1px solid #334; background: #0f1720; color: #e7eef7; width: 120px; }
.hidden { display: none !important; }

.login-hint{display:block;font-size:12px;margin-top:4px;max-width:420px}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;z-index:20;padding:16px}
.modal-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px 18px;max-width:420px;width:100%}
.modal-card h2{margin-bottom:8px}
.modal-card input,.modal-card button{width:100%}
