:root{--indigo: #4f46e5;--border: #e0e7ff;--ink: #1e1b2e;--muted: #6b7280;--bg: #f7f7fb;--card: #ffffff;--divider: #d1d5db;--ok: #16a34a;--off: #9ca3af;--danger: #dc2626;color-scheme:light;font-family:Segoe UI,system-ui,-apple-system,Arial,sans-serif;font-size:clamp(17px,15px + .35vw,21px)}html.dark{--indigo: #818cf8;--border: #312e60;--ink: #e6e5ef;--muted: #9aa0ac;--bg: #131220;--card: #1e1c2b;--divider: #33313f;--ok: #22c55e;--off: #6b7280;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);transition:background-color .2s ease,color .2s ease}.page{min-height:100vh;display:flex;flex-direction:column;max-width:1040px;margin:0 auto;padding:20px clamp(16px,3vw,40px)}.offline-banner{background:var(--danger);color:#fff;text-align:center;padding:8px 12px;border-radius:10px;font-size:.9rem;font-weight:600;margin-bottom:12px}.topbar{display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.1rem;background:none;border:0;padding:0;color:inherit;font-family:inherit;cursor:pointer}.topbar-actions{display:flex;align-items:center;gap:10px}.status{font-size:.8rem;padding:4px 10px;border-radius:999px;color:#fff;background:var(--off)}.status.ok{background:var(--ok)}.theme-toggle{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:10px;border:1px solid var(--border);background:var(--card);color:var(--ink);cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.theme-toggle:hover{border-color:var(--indigo);color:var(--indigo)}.theme-toggle svg{width:20px;height:20px}.lang-toggle{height:40px;min-width:40px;padding:0 10px;border-radius:10px;border:1px solid var(--border);background:var(--card);color:var(--ink);font-weight:700;font-size:.9rem;cursor:pointer;transition:border-color .15s ease,color .15s ease}.lang-toggle:hover{border-color:var(--indigo);color:var(--indigo)}.hero{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:8px;padding:24px 0}.hero h1{font-size:clamp(2rem,1.4rem + 2vw,3rem);margin:0;line-height:1.1}.subtitle{color:var(--muted);margin:0 0 16px;font-size:1.1rem}.choices{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:16px 0;width:100%;max-width:760px}@media(max-width:560px){.choices{grid-template-columns:1fr}}.choice{display:flex;flex-direction:column;align-items:center;gap:10px;padding:36px 24px;border:2px solid var(--border);border-radius:18px;background:var(--card);color:inherit;cursor:pointer;transition:transform .08s ease,border-color .15s ease,background-color .2s ease}.choice:hover:not(:disabled){transform:translateY(-2px);border-color:var(--indigo)}.choice:disabled{opacity:.6;cursor:not-allowed}.choice .num{display:grid;place-items:center;width:52px;height:52px;border-radius:999px;background:var(--indigo);color:#fff;font-weight:700;font-size:1.3rem}.choice .label{font-weight:700;font-size:1.35rem}.choice .hint{color:var(--muted);font-size:.95rem}.note{color:var(--muted);font-size:.85rem}.debug{margin-top:auto;padding-top:12px;border-top:1px dashed var(--divider);text-align:center;color:var(--muted);font-size:.75rem;word-break:break-word}.panel{flex:1;display:flex;flex-direction:column;gap:12px;padding:32px 0;max-width:620px;width:100%;margin:0 auto}.panel.wide{max-width:860px}.panel h1{font-size:clamp(1.7rem,1.2rem + 1.6vw,2.4rem);margin:4px 0 0;line-height:1.15}.form{display:flex;flex-direction:column;gap:14px;margin-top:8px}.field{display:flex;flex-direction:column;gap:6px;text-align:left}.field>span{font-size:.85rem;color:var(--muted);font-weight:600}input[type=text]{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--ink);font-size:1rem;font-family:inherit;transition:border-color .15s ease}input[type=text]:focus{outline:none;border-color:var(--indigo)}input.mono{font-family:ui-monospace,Cascadia Code,Consolas,monospace}input.big{font-size:1.4rem;letter-spacing:.15em;text-align:center}.btn{padding:12px 18px;border-radius:10px;border:1px solid var(--border);background:var(--card);color:var(--ink);font-size:.95rem;font-weight:600;font-family:inherit;cursor:pointer;transition:border-color .15s ease,background-color .15s ease,opacity .15s ease}.btn:hover:not(:disabled){border-color:var(--indigo)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn.primary{background:var(--indigo);border-color:var(--indigo);color:#fff}.btn.primary:hover:not(:disabled){filter:brightness(1.05)}.btn.small{padding:6px 12px;font-size:.8rem}.link{background:none;border:0;color:var(--indigo);font:inherit;cursor:pointer;text-decoration:underline;padding:6px 0}.link.back{align-self:flex-start;text-decoration:none;color:var(--muted)}.error{color:#dc2626;font-size:.9rem;margin:0}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}.coderow{display:flex;flex-direction:column;gap:6px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--card);text-align:left}.coderow-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.coderow-label{font-weight:700;font-size:.9rem}.coderow-hint{color:var(--muted);font-size:.8rem}.coderow-hint.ok{color:var(--ok);font-weight:600}.coderow-hint.warn{color:var(--danger);font-weight:600}.namebar{display:flex;gap:10px;align-items:flex-start}.namebar .autotextarea{flex:1}.importbtn{cursor:pointer}.autotextarea{resize:none;overflow-y:auto;min-height:48px;max-height:160px;line-height:1.35}.codevalue{display:block;padding:8px 10px;background:var(--bg);border-radius:8px;word-break:break-all;font-size:1rem}.codevalue.mono{font-family:ui-monospace,Cascadia Code,Consolas,monospace}.kv{color:var(--muted);font-size:.9rem}.kv code{color:var(--ink)}.tablewrap{overflow-x:auto;width:100%}.admintable{width:100%;border-collapse:collapse;font-size:.9rem}.admintable th,.admintable td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}.admintable th{color:var(--muted);font-weight:700}.btn.small.danger{background:var(--danger);border-color:var(--danger);color:#fff}.statuscard{display:flex;flex-direction:column;gap:12px;align-items:flex-start;padding:20px;border:1px solid var(--border);border-radius:14px;background:var(--card)}.badge{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;font-weight:700;font-size:.95rem;color:#fff;background:var(--off)}.badge:before{content:"";width:9px;height:9px;border-radius:999px;background:currentColor}.badge.idle{background:var(--off)}.badge.running{background:var(--ok)}.badge.stopped{background:var(--danger)}.waitmsg{margin:0;font-size:1.15rem}.statusline{display:flex;align-items:center;gap:10px}.statusdot{width:14px;height:14px;border-radius:50%;background:var(--off);flex-shrink:0}.statusdot.on{background:var(--ok)}.statusdot.off{background:var(--danger)}.statusmsg{font-weight:600;font-size:1.05rem}.hostmeta{display:flex;flex-wrap:wrap;gap:8px 28px;color:var(--muted)}.hostmeta code,.hostmeta strong{color:var(--ink)}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.big{padding:16px 28px;font-size:1.1rem}.wordinput-wrap{display:flex;flex-direction:column;gap:12px;margin:8px 0}.wordinput{display:flex;gap:10px;align-items:flex-start}.wordinput input{flex:1}.wordinput-field{flex:1;min-height:48px;max-height:220px;overflow-y:auto;resize:none;line-height:1.35}.wordinput .btn{flex-shrink:0}.rankslider{display:flex;align-items:center;gap:12px}.rankslider input[type=range]{flex:1;accent-color:var(--indigo);cursor:pointer}.rankend{color:var(--muted);font-weight:600;min-width:2ch;text-align:center}.rankval{min-width:3ch;text-align:center;font-weight:700;padding:4px 10px;border-radius:8px;background:var(--indigo);color:#fff}.numsmall{width:5ch;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--ink);font:inherit}.controls.column{flex-direction:column;align-items:stretch}.predefined-editor{display:flex;flex-direction:column;gap:10px;align-items:flex-start}textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--ink);font:inherit;resize:vertical}textarea:focus{outline:none;border-color:var(--indigo)}.survey-question{font-size:1.2rem;font-weight:700;margin:4px 0 8px;line-height:1.3}.survey-choice{display:flex;flex-direction:column;gap:10px}.choice-option{display:flex;align-items:center;gap:12px;padding:14px 16px;border:2px solid var(--border);border-radius:12px;background:var(--card);color:var(--ink);font:inherit;font-size:1rem;text-align:left;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.choice-option:hover:not(:disabled){border-color:var(--indigo)}.choice-option:disabled{opacity:.6;cursor:not-allowed}.choice-radio{flex:none;width:20px;height:20px;border-radius:999px;border:2px solid var(--muted)}.choice-option.selected{border-color:var(--indigo);background:color-mix(in srgb,var(--indigo) 12%,var(--card))}.choice-option.selected .choice-radio{border-color:var(--indigo);background:var(--indigo);box-shadow:inset 0 0 0 3px var(--card)}.ranker{display:flex;flex-direction:column;gap:12px}.rankrow{display:flex;align-items:center;gap:12px}.rankword{min-width:8ch;font-weight:700}.rankrow input[type=range]{flex:1;accent-color:var(--indigo);cursor:pointer}@media(max-width:520px){.rankword{min-width:6ch}}.dupgroup{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--border)}.dupgroup:first-of-type{border-top:0}.duphint{color:var(--muted);font-size:.9rem}.dupvariants{display:flex;flex-wrap:wrap;gap:8px}.dupcount{color:var(--muted);font-weight:400}.qrbox{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.qrbox img{background:#fff;padding:8px;border-radius:10px;border:1px solid var(--border)}.joinrow{display:flex;flex-wrap:wrap;gap:20px;align-items:center}.joininfo{display:flex;flex-direction:column;gap:4px}.usercode-big{font-size:1.4rem;letter-spacing:.12em;font-weight:700}.collectbox{display:flex;flex-direction:column;gap:10px;padding:18px;border:1px solid var(--border);border-radius:14px;background:var(--card)}.subhead{margin:0;font-size:1.05rem;color:var(--muted);font-weight:700}.wordcollection{display:flex;flex-wrap:wrap;gap:10px}.wordchip{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;background:var(--bg);border:1px solid var(--border);font-size:1rem}.wordchip.mine{border-color:var(--indigo)}.wordchip.editing{padding:4px 6px}.wordchip.editing input{width:140px;padding:4px 8px;font-size:.95rem}.wordtext{font-weight:600}.chipbtn{display:inline-grid;place-items:center;width:24px;height:24px;border:0;border-radius:999px;background:transparent;color:var(--muted);cursor:pointer;font-size:1rem;line-height:1}.chipbtn:hover{background:var(--border);color:var(--ink)}.wordcloud{position:relative;display:grid;place-items:center;width:100%;border:1px solid var(--border);border-radius:14px;background:var(--card);overflow:hidden}.cloud-export{position:absolute;top:8px;right:8px;z-index:1}.wordcloud-empty{color:var(--muted);padding:24px;text-align:center}.chart-svg{color:var(--ink)}.controls{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center}.switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-weight:600}.switch input{width:20px;height:20px;accent-color:var(--indigo);cursor:pointer}.field-inline{display:inline-flex;align-items:center;gap:8px;font-weight:600}.field-inline select{padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--ink);font:inherit;cursor:pointer}.field-inline select:disabled{opacity:.6;cursor:not-allowed}.field-inline input[type=color]{width:46px;height:34px;padding:2px;border:1px solid var(--border);border-radius:8px;background:var(--card);cursor:pointer}.statuscard-head{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px}.circletimer{flex:none}.timer-track{fill:none;stroke:var(--border);stroke-width:6}.timer-progress{fill:none;stroke:var(--indigo);stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset .25s linear}.circletimer.low .timer-progress{stroke:var(--danger)}.timer-text{fill:var(--ink);font-size:15px;font-weight:700;text-anchor:middle;dominant-baseline:middle}.circletimer.low .timer-text{fill:var(--danger)}
