:root{--bg:#f6f7f9;--card:#fff;--fg:#1d2733;--muted:#667281;--line:#dde2e8;--accent:#1f6feb;--ok:#1a7f37;--bad:#cf222e;--warn:#9a6700;color:var(--fg);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.5}@media (prefers-color-scheme:dark){:root{--bg:#0f1419;--card:#182028;--fg:#e6edf3;--muted:#8b98a5;--line:#2d3843;--accent:#4c9aff;--ok:#3fb950;--bad:#f85149;--warn:#d29922}}*{box-sizing:border-box}body{background:var(--bg);margin:0}#app{max-width:960px;margin:0 auto;padding:1rem}h1,h2,h3{margin:0 0 .5rem;line-height:1.25}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em}.wrap,.qr-url{word-break:break-all}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;margin-bottom:1rem;padding:1rem}.muted{color:var(--muted)}.error{color:var(--bad);margin:.25rem 0}.row{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.5rem 0;display:flex}.grow{flex:10rem}input,select,textarea,button{font:inherit;color:inherit}input:not([type=checkbox]):not([type=radio]),select,textarea{border:1px solid var(--line);background:var(--bg);border-radius:6px;width:100%;padding:.5rem .6rem}.row input:not([type=checkbox]):not([type=radio]),.row select{width:auto}.row input.grow{width:100%}button,.qr-actions a{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:6px;padding:.45rem .9rem;text-decoration:none}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.danger{color:var(--bad)}button.icon{padding:.3rem .55rem}.steps{margin:0 0 1rem;padding:0;list-style:none}.step{grid-template-columns:1.5rem 1fr;padding:.3rem 0;display:grid}.step-icon{font-weight:700}.step-detail{color:var(--muted);word-break:break-all;grid-column:2;font-size:.85em}.step-done .step-icon{color:var(--ok)}.step-failed .step-icon,.step-failed .step-detail{color:var(--bad)}.step-running .step-icon{color:var(--accent);animation:1s linear infinite spin;display:inline-block}.step-pending{color:var(--muted)}@keyframes spin{to{transform:rotate(360deg)}}.status-bar{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex;position:relative}.status-bar .title{flex:1}.badge{color:#fff;border-radius:999px;padding:.1rem .5rem;font-size:.75rem}.badge.online{background:var(--ok)}.badge.offline{background:var(--bad)}.settings{z-index:10;width:min(28rem,100%);position:absolute;top:2.5rem;right:0;box-shadow:0 8px 24px #0003}.settings dt{color:var(--muted);font-size:.8em}.settings dd{margin:0 0 .5rem}.settings button+button{margin-left:.5rem}.token-form{gap:.5rem;margin-top:1rem;display:grid}.token-form h3,.token-form p{margin:0}.tabs{border-bottom:1px solid var(--line);gap:.25rem;margin-bottom:1rem;display:flex;overflow-x:auto}.tabs button{background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0}.tabs button.active{border-bottom-color:var(--accent);font-weight:600}.count{background:var(--accent);color:#fff;border-radius:999px;margin-left:.35rem;padding:0 .4rem;font-size:.75em}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;background:var(--card);width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.4rem .6rem}.table th{color:var(--muted);font-size:.85em}.table tr.submitted td:first-child{color:var(--ok)}.table .actions{white-space:nowrap;text-align:right}.field{margin:0 0 1rem;display:block}.field>label{font-weight:600;display:block}.field-desc{color:var(--muted);margin:0 0 .3rem;font-size:.9em}.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:var(--bad)}.req{color:var(--bad)}.radio-row{gap:1.5rem;display:flex}.field-list{padding:0;list-style:none}.field-row input{margin-top:.4rem}label.inline{white-space:nowrap}.qr-invite{text-align:center;margin:1rem 0}.qr svg{background:#fff;border-radius:8px;width:min(320px,90vw);height:auto}.qr-actions{justify-content:center;gap:.5rem;margin:.5rem 0;display:flex}.qr-url{color:var(--muted);font-size:.7rem;display:block}.history{padding:0;font-size:.9em;list-style:none}.history li{border-bottom:1px solid var(--line);padding:.25rem 0}.history time{color:var(--muted)}.kind{text-transform:uppercase;border:1px solid var(--line);border-radius:4px;padding:0 .35rem;font-size:.75em}.kind-sent,.kind-updated,.kind-received{color:var(--ok)}.kind-pending{color:var(--warn)}.kind-error,.kind-rejected{color:var(--bad)}.purposes a{font-size:1.1em}.picker-list{grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:.5rem;margin:.75rem 0;padding:0;list-style:none;display:grid}.picker-list button{text-align:left;width:100%;padding:.75rem 1rem;font-size:1.05em}button.link{color:var(--accent);background:0 0;border:none;padding:0;text-decoration:underline}.qr-fullscreen{z-index:100;color:#000;cursor:zoom-out;background:#fff;flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex;position:fixed;inset:0}.qr-fullscreen .qr svg{width:min(92vw,82vh);height:auto}.qr-fullscreen h3{font-size:clamp(1.2rem,3vw,2.2rem)}.device .blocked{color:var(--warn);font-size:.85em}.status-banner{border-left:4px solid var(--accent)}.status-banner.rejected{border-left-color:var(--bad)}.status-banner.bound,.status-banner.accepted{border-left-color:var(--ok)}.kind-accepted,.kind-bound{color:var(--ok)}.picker-list button:disabled{text-decoration:line-through}
