:root{--bg: #0f1410;--bg-elevated: #182018;--text: #e8eee6;--muted: #9aab9a;--accent: #2f8f5b;--accent-hover: #3aaa6d;--danger: #c44b4b;--border: #2a352c;--radius: 14px;--font: "IBM Plex Sans", "Segoe UI", sans-serif;--display: "Fraunces", Georgia, serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(1200px 600px at 10% -10%,#1d3324 0%,transparent 55%),radial-gradient(900px 500px at 100% 0%,#1a2730 0%,transparent 50%),var(--bg);color:var(--text);font-family:var(--font)}a{color:inherit;text-decoration:none}button,input{font:inherit}.app-shell{width:min(440px,100%);margin:0 auto;min-height:100dvh;padding:1.25rem 1rem 2rem;display:flex;flex-direction:column;gap:1.25rem}.brand{font-family:var(--display);font-size:1.6rem;letter-spacing:-.02em;margin:0}.muted{color:var(--muted);line-height:1.45}.stack{display:flex;flex-direction:column;gap:.85rem}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:999px;padding:.9rem 1.1rem;background:var(--accent);color:#04140b;font-weight:600;cursor:pointer}.btn:hover{background:var(--accent-hover)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.secondary{background:transparent;border-color:var(--border);color:var(--text)}.btn.danger{background:transparent;border-color:var(--danger);color:#f2bdbd}.field{display:flex;flex-direction:column;gap:.35rem}.field input{border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);border-radius:12px;padding:.85rem .95rem}.panel{border-top:1px solid var(--border);padding-top:1rem}.error{color:#f2bdbd;font-size:.92rem}.list{display:flex;flex-direction:column;gap:.75rem}.row{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;padding:.75rem 0;border-bottom:1px solid var(--border)}.nav{display:flex;gap:.75rem;flex-wrap:wrap}.nav a{color:var(--muted);font-size:.92rem}.nav a.active,.nav a:hover{color:var(--text)}.qr-wrap{display:grid;place-items:center;padding:1rem 0;background:#fff;border-radius:var(--radius)}.qr-wrap img{width:min(240px,70vw);height:auto}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:1rem;background:#060a08b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{width:min(400px,100%);max-height:min(92dvh,720px);overflow:auto;padding:1.25rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);box-shadow:0 18px 48px #00000073}
