:root{--liner:#d9dff5;--liner-line:#4f3ce012;--ink:#211c4e;--ink-soft:#5c5885;--paper:#fff;--field:#f2f4fc;--violet:#4f3ce0;--pink:#ff7eb0;--mint:#12a877;--butter:#ffc53d;--coral:#e0394f;--mist:#a3a9c6;--lift:0 1px 0 #211c4e14, 0 10px 26px -14px #211c4e59;--round:ui-rounded, "SF Pro Rounded", "Nunito", "Segoe UI Variable Display", "Segoe UI", system-ui, sans-serif;--mono:ui-monospace, "Cascadia Code", "SF Mono", Consolas, monospace}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:var(--ink);font:15px/1.5 var(--round);background-color:var(--liner);background-image:linear-gradient(var(--liner-line) 1px, transparent 1px), linear-gradient(90deg, var(--liner-line) 1px, transparent 1px);background-size:28px 28px}h1{letter-spacing:-.02em;margin:0 0 18px;font-size:30px;font-weight:800}h2{margin:0 0 4px;font-size:18px;font-weight:800}p{margin:0 0 12px}a{color:inherit}:focus-visible{outline:3px solid var(--violet);outline-offset:2px}.mono{font-family:var(--mono)}.logo{color:var(--violet);letter-spacing:-.03em;-webkit-text-stroke:9px var(--paper);paint-order:stroke fill;filter:drop-shadow(0 3px 3px #211c4e47);justify-self:center;align-items:center;gap:6px;font-size:30px;font-weight:900;line-height:1.1;text-decoration:none;display:inline-flex}.logo-mark{width:46px;height:46px;margin-left:-6px;transform:rotate(-6deg)}.logo-large{font-size:42px}.logo-large .logo-mark{width:76px;height:76px}.splash,.login{text-align:center;place-content:center;gap:20px;min-height:100vh;padding:16px;display:grid}.login .card{text-align:left;width:min(340px,100%)}.shell{grid-template-columns:220px minmax(0,1fr);min-height:100vh;display:grid}.side{flex-direction:column;gap:26px;height:100vh;padding:26px 18px;display:flex;position:sticky;top:0}.side nav{flex-direction:column;gap:4px;display:flex}.side nav a{white-space:nowrap;border-radius:12px;padding:9px 14px;font-weight:700;text-decoration:none}.side nav a:hover{background:#ffffff8c}.side nav a[aria-current=page]{background:var(--paper);box-shadow:var(--lift)}.side-foot{flex-direction:column;align-items:flex-start;gap:8px;margin-top:auto;font-size:13px;display:flex}.live{color:var(--ink-soft);align-items:center;gap:7px;display:inline-flex}.live i{background:var(--butter);border-radius:50%;width:9px;height:9px}.live-on i{background:var(--mint)}.link{color:var(--ink-soft);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.content{width:100%;max-width:880px;padding:30px 28px 60px}.card{background:var(--paper);box-shadow:var(--lift);border-radius:20px;margin-bottom:18px;padding:20px 22px}.hint{color:var(--ink-soft);font-size:13px;display:block}.card>.hint{margin-bottom:14px}fieldset{border:0;min-width:0;margin:0;padding:0}fieldset:disabled .card{opacity:.6}.hero{flex-wrap:wrap;align-items:center;gap:26px 44px;margin:8px 0 24px;display:flex}.state-sticker{border:9px solid var(--paper);background:var(--mist);color:var(--ink);letter-spacing:-.03em;border-radius:34px;padding:26px 40px;font-size:clamp(30px,7vw,46px);font-weight:900;line-height:1.05;animation:.42s cubic-bezier(.2,1.5,.4,1) slap;position:relative;transform:rotate(-3deg);box-shadow:0 2px 2px #211c4e2e,0 18px 30px -14px #211c4e80}.state-sticker:after{content:"";background:linear-gradient(135deg, #eef0fa 49%, var(--liner) 50%);border-radius:14px 0 34px;width:42px;height:42px;position:absolute;bottom:-9px;right:-9px;box-shadow:-3px -3px 6px -2px #211c4e40}.s-open{background:var(--mint);color:var(--paper)}.s-connecting,.s-reconnecting{background:var(--butter)}.s-awaiting_pairing{background:var(--pink)}.s-logged_out{background:var(--coral);color:var(--paper)}@keyframes slap{0%{opacity:0;transform:rotate(7deg)scale(1.5)}}@media (prefers-reduced-motion:reduce){.state-sticker{animation:none}}.facts{gap:10px;margin:0;display:grid}.facts dt{color:var(--ink-soft);font-size:13px}.facts dd{margin:0;font-weight:700}.badge{border-radius:99px;padding:2px 10px;font-size:13px}.badge-ok{color:#0a7653;background:#12a87729}.badge-bad{color:#b01f35;background:#e0394f24}.notice{background:#ffc53d59;border-radius:12px;padding:10px 14px}.notice-bad{color:#8f1a2c;background:#e0394f24}.actions{flex-wrap:wrap;gap:10px;margin-bottom:22px;display:flex}.confirm{flex-wrap:wrap;gap:8px;display:inline-flex}.btn{background:var(--paper);color:var(--ink);font:700 14px/1.3 var(--round);cursor:pointer;box-shadow:inset 0 0 0 2px var(--ink);border:0;border-radius:99px;padding:9px 18px;text-decoration:none;display:inline-block}.btn:hover:not(:disabled){background:var(--field)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--violet);color:var(--paper);box-shadow:none}.btn-primary:hover:not(:disabled){background:#4030c4}.btn-danger{background:var(--coral);color:var(--paper);box-shadow:none}.btn-danger:hover:not(:disabled){background:#c62a40}.btn-danger-ghost{color:#b01f35;box-shadow:inset 0 0 0 2px #b01f35}.tiles{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:14px;margin-top:10px;display:grid}.tile strong{letter-spacing:-.02em;font-size:30px;font-weight:800;line-height:1.15;display:block}.tile span{color:var(--ink-soft);font-size:13px}.field{margin:14px 0 10px;display:block}.field-label{margin-bottom:4px;font-size:14px;font-weight:700;display:block}input:not([type=checkbox],[type=file]),select,textarea{background:var(--field);width:100%;color:var(--ink);font:15px/1.4 var(--round);border:2px solid #0000;border-radius:12px;padding:9px 12px}.field-bad input,.field-bad select,.field-bad .chips{border-color:var(--coral)}textarea{resize:vertical}input[type=checkbox]{width:18px;height:18px;accent-color:var(--violet)}.error-text{color:#b01f35;margin-top:4px;font-size:13px;display:block}.saved{color:#0a7653;margin-top:4px;font-size:13px;font-weight:700}.grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:0 18px;display:grid}.toggle{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;margin:12px 0;display:flex;position:relative}.toggle input{opacity:0;width:46px;height:26px;cursor:inherit;margin:0;position:absolute;right:0}.toggle .field-label{margin:0}.switch{background:var(--mist);border-radius:99px;flex:none;width:46px;height:26px;padding:3px;transition:background .15s}.switch:after{content:"";background:var(--paper);border-radius:50%;width:20px;height:20px;transition:transform .15s;display:block}input:checked+.switch{background:var(--violet)}input:checked+.switch:after{transform:translate(20px)}input:focus-visible+.switch{outline:3px solid var(--violet);outline-offset:2px}input:disabled+.switch{opacity:.5}.chips{background:var(--field);border:2px solid #0000;border-radius:12px;flex-wrap:wrap;gap:6px;padding:6px;display:flex}.chips input:not([type=checkbox],[type=file]){background:0 0;border:0;flex:150px;width:auto;padding:3px 6px}.chip{background:var(--paper);font:13px/1.6 var(--mono);border-radius:99px;align-items:center;gap:4px;padding:2px 4px 2px 12px;display:inline-flex;box-shadow:0 1px 3px #211c4e38}.chip-bad{background:#e0394f29}.chip button{width:20px;height:20px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;padding:0;font-size:15px;line-height:1}.chip button:hover{background:var(--field)}.tabs{background:#ffffff8c;border-radius:99px;gap:4px;margin-bottom:16px;padding:4px;display:inline-flex}.tabs button{color:var(--ink);font:700 14px/1.3 var(--round);cursor:pointer;background:0 0;border:0;border-radius:99px;padding:7px 18px}.tabs button[aria-selected=true]{background:var(--paper);box-shadow:var(--lift)}.qr{border-radius:12px;width:min(320px,100%);height:auto;display:block}.waiting{color:var(--ink-soft)}.pair-code{flex-wrap:wrap;align-items:center;gap:16px 24px;display:flex}.pair-code output{letter-spacing:.06em;overflow-wrap:anywhere;font-size:clamp(32px,9vw,54px);font-weight:700}.profile-photo{flex-wrap:wrap;align-items:flex-start;gap:18px;display:flex}.profile-photo img,.photo-empty{border:5px solid var(--paper);object-fit:cover;border-radius:28px;width:112px;height:112px;box-shadow:0 2px 8px #211c4e4d}.photo-empty{background:var(--field);color:var(--ink-soft);text-align:center;place-content:center;padding:8px;font-size:12px;display:grid}.photo-controls{flex-direction:column;flex:220px;align-items:flex-start;gap:8px;min-width:0;display:flex}.photo-controls input{max-width:100%}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th{color:var(--ink-soft);text-align:left;font-size:13px}th,td{border-bottom:1px solid var(--field);vertical-align:top;padding:8px 12px 8px 0}code{font:700 14px var(--mono)}.narrow:not([type=checkbox]){width:90px}.savebar{background:var(--paper);box-shadow:var(--lift);border-radius:99px;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:12px 16px;display:flex;position:sticky;bottom:12px}.savebar .saved,.savebar .error-text{margin:0}.log-tools{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.log-tools select,.log-tools input:not([type=checkbox],[type=file]){background:var(--paper);width:auto;padding:7px 10px}.log-tools input[type=search]{flex:140px;min-width:0}.download{gap:8px;display:inline-flex}.log-box{border:6px solid var(--paper);background:var(--ink);color:#dcdcf5;height:calc(100vh - 210px);min-height:320px;font:12.5px/1.6 var(--mono);border-radius:20px;padding:14px;overflow:auto}.log-empty{color:var(--mist)}.line{grid-template-columns:62px 42px 58px minmax(0,1fr);gap:10px;display:grid}.line b,.line i{color:var(--mist);font-style:normal;font-weight:400}.line time{color:#8d90b3}.line span{overflow-wrap:anywhere}.line em{color:#9ea2c9;font-style:normal}.l-warn b{color:var(--butter)}.l-error b,.l-fatal b{color:#ff8d9c}@media (width<=720px){.shell{display:block}.side{gap:12px;height:auto;padding:18px 16px 6px;position:static}.side nav{scrollbar-width:none;flex-direction:row;margin:0 -16px;padding:2px 16px 6px;overflow-x:auto}.side nav a{padding:8px 11px}.side-foot{flex-direction:row;justify-content:space-between;align-items:center;margin-top:0}.content{padding:12px 16px 40px}.savebar{border-radius:20px}.state-sticker{padding:20px 26px}.line{grid-template-columns:62px 42px minmax(0,1fr)}.line i{display:none}.log-box{height:60vh}}
