[hidden]{display:none!important}
*{box-sizing:border-box}html,body{margin:0;background:#f4f6fb;color:#111;font:18px/1.4 system-ui,-apple-system,Roboto,Arial,sans-serif}
.screen{max-width:560px;margin:0 auto;padding:24px 18px 120px}
h1{font-size:28px;margin:8px 0 6px}.lead{font-size:19px;color:#333}.logo{width:72px;height:72px;border-radius:16px}
label{display:block;font-weight:600;margin:14px 0 6px}input,select,textarea{width:100%;font-size:20px;padding:14px;border:2px solid #c9d1e3;border-radius:12px;background:#fff}
input:focus{outline:none;border-color:#0b3d91}.code{font-size:30px;letter-spacing:8px;text-align:center}
button.big{display:block;width:100%;min-height:58px;font-size:20px;font-weight:700;border-radius:14px;border:2px solid #0b3d91;background:#fff;color:#0b3d91;margin-top:14px}
button.primary{background:#0b3d91;color:#fff}button.ok{background:#127a3a;border-color:#127a3a;color:#fff}button:disabled{opacity:.6}
.msg{color:#b00020;font-weight:600;min-height:1.4em}.fine{font-size:15px;color:#555}a{color:#0b3d91}
details{margin:16px 0}summary{color:#0b3d91;font-weight:600;padding:8px 0}.helper{margin-top:28px}
.bar{display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:#f4f6fb;padding:6px 0 8px;z-index:2}
.title{font-size:22px;font-weight:800}.sub{color:#444}.sync{font-size:14px;padding:6px 10px;border-radius:20px;background:#e3f3e8;color:#127a3a;white-space:nowrap}.sync.off{background:#fff1d6;color:#8a5a00}
#q{position:sticky;top:64px;z-index:2;font-size:21px}
.list{list-style:none;padding:0;margin:12px 0}.list li{display:flex;align-items:center;gap:10px;background:#fff;border-radius:14px;padding:12px;margin-bottom:10px;box-shadow:0 1px 2px #0001}
.list .who{flex:1;min-width:0}.list .n{font-weight:700;font-size:19px}.list .d{color:#555;font-size:16px;overflow:hidden;text-overflow:ellipsis}
.list button{min-width:118px;min-height:56px;font-size:18px;font-weight:800;border-radius:12px;border:0;background:#0b3d91;color:#fff}
.list li.in{background:#eaf6ee}.list li.in button{background:#fff;color:#127a3a;border:2px solid #127a3a;font-size:15px}
.tag{display:inline-block;font-size:12px;font-weight:700;padding:2px 7px;border-radius:8px;background:#e8ecf6;color:#0b3d91;margin-left:4px}
.dock{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:1.3fr 1fr .8fr;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -2px 8px #0002}
.dock button.big{margin:0}
.empty{text-align:center;color:#444;padding:24px 8px}.banner{background:#fff1d6;border-radius:12px;padding:10px 12px;margin-top:10px}
dialog{border:0;border-radius:18px;width:min(560px,96vw);max-height:92vh;padding:18px}dialog::backdrop{background:#0007}
.sheet-close{text-align:right;margin:-6px -6px 0}.sheet-close button{font-size:22px;background:none;border:0;padding:6px 10px}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}.seg button{margin:0}.seg button.on{background:#0b3d91;color:#fff}
.qr{display:flex;justify-content:center;margin:10px 0}.qr svg{width:min(78vw,320px);height:auto}.bigcode{font-size:40px;font-weight:800;letter-spacing:6px;text-align:center}
#toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%);background:#111;color:#fff;padding:12px 18px;border-radius:12px;font-size:17px;opacity:0;transition:opacity .2s;pointer-events:none;z-index:9}#toast.show{opacity:1}
.menu button.big{text-align:left;padding-left:16px}
