:root{--navy:#0B1F3A;--navy2:#102A4C;--navy3:#1B3F73;--blue:#2F6FED;--sky:#EAF1FF;--ink:#13213A;--muted:#5B6B85;--line:#DCE4F0;--bg:#F5F8FD;--white:#fff;--green:#1E9E5A;--red:#D64545;--amber:#D98E04;--r:16px}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.45}
a{color:var(--blue)}button,input,select,textarea{font:inherit}
.topbar{background:var(--navy);color:#fff;padding:12px 14px;display:flex;align-items:center;gap:8px;position:sticky;top:0;z-index:10;overflow:hidden}
body{overflow-x:hidden}
.topbar img{width:30px;height:30px}.topbar .brand{font-weight:700;font-size:18px;letter-spacing:.2px}.topbar .spacer{flex:1;min-width:4px}.topbar a{color:#cfe0ff;text-decoration:none;font-size:13px;white-space:nowrap}.topbar nav{display:flex;gap:12px;flex:none}
.wrap{max-width:560px;margin:0 auto;padding:18px 16px 60px}
.hero{background:linear-gradient(160deg,var(--navy) 0%,var(--navy3) 100%);color:#fff;border-radius:22px;padding:28px 22px;text-align:center;margin-bottom:18px}
.hero img{width:72px;height:72px;margin-bottom:8px}.hero h1{margin:4px 0 8px;font-size:28px;line-height:1.15}.hero p{margin:0;color:#d6e3ff;font-size:16px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:18px;margin-bottom:14px;box-shadow:0 1px 2px rgba(16,42,76,.04)}
.card h2{margin:0 0 6px;font-size:19px}.card h3{margin:14px 0 6px;font-size:15px;color:var(--navy2)}.card p.sub{margin:0 0 12px;color:var(--muted);font-size:14px}
label{display:block;font-size:13px;font-weight:600;color:var(--navy2);margin:10px 0 4px}
input[type=text],input[type=tel],input[type=password],input[type=time],select,textarea{width:100%;padding:12px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:16px;color:var(--ink)}
textarea{min-height:80px;resize:vertical}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 16px;border:0;border-radius:14px;background:var(--navy2);color:#fff;font-weight:700;font-size:16px;cursor:pointer;text-decoration:none;margin-top:12px}
.btn.blue{background:var(--blue)}.btn.ghost{background:var(--sky);color:var(--navy2)}.btn.small{width:auto;padding:8px 12px;font-size:14px;border-radius:10px;margin-top:0}.btn.danger{background:#fdecec;color:var(--red)}.btn.green{background:var(--green)}
.btn:disabled{opacity:.6}
.steps{counter-reset:s;list-style:none;padding:0;margin:10px 0 0}.steps li{position:relative;padding:8px 0 8px 40px;border-top:1px solid var(--line)}.steps li:first-child{border-top:0}
.steps li::before{counter-increment:s;content:counter(s);position:absolute;left:0;top:9px;width:28px;height:28px;border-radius:50%;background:var(--navy2);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:14px}
.idbox{background:var(--sky);border:1px dashed var(--navy3);border-radius:14px;padding:14px;text-align:center;margin:10px 0}.idbox .id{font-size:30px;font-weight:800;letter-spacing:2px;color:var(--navy)}.idbox small{color:var(--muted)}
.notice{background:#FFF8E6;border:1px solid #F3DFA2;color:#6b4f00;border-radius:12px;padding:10px 12px;font-size:14px;margin:10px 0}
.ok{color:var(--green);font-weight:700}.err{color:var(--red);font-size:14px;margin-top:8px}.muted{color:var(--muted);font-size:13px}
.features{display:grid;gap:10px}.feat{display:flex;gap:12px;align-items:flex-start}.feat .ic{width:36px;height:36px;border-radius:10px;background:var(--sky);display:flex;align-items:center;justify-content:center;font-size:18px;flex:none}.feat b{display:block;font-size:15px}.feat span{font-size:14px;color:var(--muted)}
footer{text-align:center;color:var(--muted);font-size:13px;margin-top:24px}
.hidden{display:none!important}
/* admin */
.row{display:flex;gap:10px;align-items:center}.row.wrap{flex-wrap:wrap}.grow{flex:1}
.devcard{display:block;color:inherit;text-decoration:none}.devcard .name{font-weight:700;font-size:17px}.devcard .meta{font-size:13px;color:var(--muted)}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#bbb;margin-right:6px}.dot.on{background:var(--green)}.dot.warn{background:var(--amber)}
.badge{display:inline-block;background:var(--red);color:#fff;border-radius:999px;font-size:12px;padding:2px 8px;font-weight:700}.badge.gray{background:#8a97ad}.badge.blue{background:var(--blue)}.badge.green{background:var(--green)}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px;font-size:14px;cursor:pointer}.chip.on{background:var(--navy2);color:#fff;border-color:var(--navy2)}
.toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid var(--line)}.toggle:first-of-type{border-top:0}.toggle .t{font-size:15px;font-weight:600}.toggle .d{font-size:12.5px;color:var(--muted);margin-top:2px}
.sw{position:relative;width:50px;height:30px;flex:none}.sw input{opacity:0;width:0;height:0}.sw i{position:absolute;inset:0;background:#cfd6e3;border-radius:30px;transition:.15s}.sw i::after{content:"";position:absolute;width:26px;height:26px;left:2px;top:2px;background:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:.15s}.sw input:checked+i{background:var(--green)}.sw input:checked+i::after{transform:translateX(20px)}
.seg{display:flex;border:1px solid var(--line);border-radius:12px;overflow:hidden}.seg button{flex:1;border:0;background:#fff;padding:10px 6px;font-size:14px;cursor:pointer}.seg button.on{background:var(--navy2);color:#fff}
table{width:100%;border-collapse:collapse;font-size:13.5px}td,th{padding:8px 6px;border-top:1px solid var(--line);text-align:left;vertical-align:top}th{color:var(--muted);font-weight:600;font-size:12px}
td.dom{word-break:break-all;max-width:200px}
.savebar{position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--line);padding:10px 16px;display:flex;gap:10px;align-items:center;z-index:20}.savebar .btn{margin:0}
.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;word-break:break-all;background:var(--bg);padding:8px;border-radius:8px}
.reqitem{border-top:1px solid var(--line);padding:10px 0}.reqitem:first-child{border-top:0}
.tag{display:inline-block;font-size:11px;padding:2px 7px;border-radius:6px;background:var(--sky);color:var(--navy2);margin-left:4px}.tag.red{background:#fdecec;color:var(--red)}.tag.green{background:#e8f7ee;color:var(--green)}
.pill-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.pill{background:var(--sky);border-radius:8px;padding:5px 8px;font-size:13px;display:inline-flex;gap:6px;align-items:center}.pill b{cursor:pointer;color:var(--red)}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:80px;background:var(--navy);color:#fff;padding:10px 16px;border-radius:12px;font-size:14px;z-index:30;opacity:0;transition:.2s}.toast.show{opacity:1}
