:root{--buncss-light:initial;--buncss-dark: ;color-scheme:light dark;--bg:oklch(.97 .008 95);--surface:oklch(.995 .003 95);--surface-2:oklch(.945 .01 95);--text:oklch(.24 .015 160);--muted:oklch(.47 .015 160);--faint:oklch(.6 .012 160);--line:oklch(.24 .015 160/.11);--line-strong:oklch(.24 .015 160/.22);--accent:oklch(.47 .09 162);--accent-hover:oklch(.42 .09 162);--accent-soft:oklch(.47 .09 162/.1);--on-accent:oklch(.98 .008 95);--ochre:oklch(.7 .13 75);--ochre-soft:oklch(.75 .12 80/.18);--ok:oklch(.5 .11 155);--danger:oklch(.53 .17 28);--danger-soft:oklch(.53 .17 28/.1);--shadow:0 1px 2px oklch(.25 .02 160/.06),0 8px 24px oklch(.25 .02 160/.05);--radius-sm:8px;--radius:14px;--font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";--serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;--mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;--ease:cubic-bezier(.2,0,0,1);--tap:44px}@media (prefers-color-scheme:dark){:root{--buncss-light: ;--buncss-dark:initial;--bg:oklch(.18 .01 160);--surface:oklch(.215 .012 160);--surface-2:oklch(.255 .013 160);--text:oklch(.94 .01 95);--muted:oklch(.76 .012 95);--faint:oklch(.6 .012 95);--line:oklch(1 0 0/.08);--line-strong:oklch(1 0 0/.17);--accent:oklch(.74 .11 162);--accent-hover:oklch(.79 .1 162);--accent-soft:oklch(.74 .11 162/.15);--on-accent:oklch(.2 .03 162);--ochre:oklch(.8 .12 80);--ochre-soft:oklch(.8 .12 80/.16);--ok:oklch(.76 .12 155);--danger:oklch(.71 .15 28);--danger-soft:oklch(.71 .15 28/.14);--shadow:0 0 0 1px oklch(1 0 0/.05),0 10px 28px oklch(0 0 0/.35)}}*,*:before,*:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;min-height:100%;margin:0;font-size:16px;line-height:1.5}h1,h2,h3{text-wrap:balance;margin:0;line-height:1.2}h1{font-family:var(--serif);letter-spacing:-.015em;font-size:clamp(1.7rem,1.2rem + 2.2vw,2.6rem);font-weight:600}h2{font-size:1.08rem;font-weight:650}h3{font-size:.95rem;font-weight:650}p{text-wrap:pretty;margin:0}a{color:var(--accent)}code{font-family:var(--mono);font-size:.82em}.sr-only{position:absolute;overflow:hidden;clip-path:inset(50%);white-space:nowrap;width:1px;height:1px}.app{display:flex;flex-direction:column;min-height:100dvh}.topbar{display:flex;padding:calc(10px + env(safe-area-inset-top,0px))20px 10px;border-bottom:1px solid var(--line);background:color-mix(in oklch,var(--bg)88%,transparent);backdrop-filter:blur(10px);position:sticky;z-index:5;justify-content:space-between;align-items: center;gap:12px;top:0}.brand{display:inline-flex;color:inherit;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0;align-items: center;gap:10px;padding:4px}.wordmark{font-family:var(--serif);letter-spacing:.01em;font-size:1.3rem;font-weight:600}.page{flex:1;width:100%;max-width:760px;margin:0 auto;padding:28px 20px 48px}.narrow{max-width:560px}.footer{display:flex;padding:20px 20px calc(20px + env(safe-area-inset-bottom,0px));color:var(--muted);justify-content:center;gap:8px;font-size:.85rem}.footer a{color:var(--muted)}.stack{display:flex;flex-direction:column;gap:16px}.stack-tight{display:flex;flex-direction:column;gap:6px}.row{display:flex;flex-wrap:wrap;align-items: center;gap:10px}.row-between{display:flex;justify-content:space-between;align-items: flex-start;gap:12px}.center{text-align:center;align-items: center}.list-plain,.tiles,.members,.results{list-style:none;margin:0;padding:0}.lead{color:var(--muted);max-width:60ch;font-size:1.08rem}.hint{color:var(--muted);font-size:.9rem}.small{font-size:.82rem}.faint{color:var(--faint)}.error{color:var(--danger);font-size:.92rem}.ok-line{color:var(--ok);font-weight:550}.notice{border-radius:var(--radius-sm);background:var(--ochre-soft);padding:10px 14px;font-size:.92rem}.hero{gap:18px;padding:12px 0 20px}.hero h1{max-width:18ch}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}fieldset.card{margin:0}fieldset{border:0;min-width:0;margin:0;padding:0}legend{margin-bottom:8px;padding:0;font-weight:650}.tiles{display:flex;flex-direction:column;gap:10px}.tile{display:flex;text-align:left;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:inherit;font:inherit;cursor:pointer;transition:border-color .15s var(--ease),transform .15s var(--ease);flex-direction:column;align-items: flex-start;gap:4px;width:100%;padding:14px 18px}.tile:hover{border-color:var(--line-strong)}.tile:active{transform:scale(.995)}.tile-title{font-size:1.02rem;font-weight:620}.tile-meta{display:flex;color:var(--muted);flex-wrap:wrap;align-items: center;gap:6px;font-size:.86rem}.badge{display:inline-flex;background:var(--surface-2);color:var(--muted);border-radius:999px;align-items: center;padding:1px 8px;font-size:.76rem;font-weight:600}.badge-ok{background:var(--accent-soft);color:var(--accent)}.badge-warn{background:var(--ochre-soft);color:color-mix(in oklch,var(--ochre)55%,var(--text))}.btn{display:inline-flex;min-height:var(--tap);border:1px solid var(--line-strong);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;transition:background .15s var(--ease),border-color .15s var(--ease);border-radius:999px;justify-content:center;align-items: center;gap:8px;padding:0 18px;font-weight:560}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-hover)}.btn-ghost{background:0 0;border-color:#0000}.btn-small{min-height:34px;padding:0 12px;font-size:.88rem}.btn-large{min-height:50px;padding:0 24px;font-size:1.02rem}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger-ghost{color:var(--danger);background:0 0;border-color:#0000}.btn-danger-ghost:hover{background:var(--danger-soft)}.back{align-self: flex-start;margin-left:-10px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.field{display:flex;flex-direction:column;gap:6px}.field>span{font-size:.94rem;font-weight:560}.field.inline{flex-flow:wrap;align-items: center;gap:10px}.field.inline input{width:90px}input:not([type=checkbox]):not([type=radio]),textarea,select{min-height:var(--tap);border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--surface);color:var(--text);font:inherit;width:100%;padding:10px 12px}select{width:auto}textarea{resize:vertical}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.check{display:flex;cursor:pointer;align-items: flex-start;gap:10px}.check input{accent-color:var(--accent);flex:none;width:18px;height:18px;margin-top:4px}.check span{display:flex;flex-direction:column;gap:2px}.segmented{display:inline-flex;background:var(--surface-2);border-radius:999px;align-self: flex-start;padding:3px}.seg{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:6px 14px}.seg-on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.group-head h1{font-size:clamp(1.6rem,1.2rem + 1.8vw,2.2rem)}.status-line{display:flex;color:var(--muted);flex-wrap:wrap;align-items: center;gap:6px;font-size:.85rem}.dot{border-radius:50%;width:8px;height:8px}.dot-ok{background:var(--ok)}.dot-off{background:var(--faint)}.tabs{display:flex;border-bottom:1px solid var(--line);overflow-x:auto;gap:4px}.tab{color:var(--muted);font:inherit;min-height:var(--tap);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 14px;font-weight:560}.tab-on{color:var(--text);border-bottom-color:var(--accent)}.danger-zone{border-top:1px solid var(--line);padding-top:24px}.choices{display:flex;flex-direction:column;gap:8px}.choice{display:flex;border:1px solid var(--line-strong);border-radius:var(--radius-sm);cursor:pointer;align-items: center;gap:12px;padding:12px 14px}.choice:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.choice input{accent-color:var(--accent);width:18px;height:18px}.results{display:flex;flex-direction:column;gap:12px}.result-label{display:flex;justify-content:space-between;gap:12px;font-size:.95rem}.result-count{font-variant-numeric:tabular-nums;font-weight:650}.bar{background:var(--surface-2);overflow:hidden;border-radius:999px;height:8px;margin-top:4px}.bar span{display:block;border-radius:inherit;background:color-mix(in oklch,var(--accent)55%,var(--surface-2));transition:width .4s var(--ease);height:100%}.result-mine .bar span{background:var(--accent)}.bar-large{height:12px}.members{display:flex;flex-direction:column}.member{display:flex;border-bottom:1px solid var(--line);justify-content:space-between;align-items: center;gap:12px;padding:12px 0}.member-name{font-weight:580}.member-excluded{color:var(--faint);text-decoration:line-through}.person{display:flex;border-radius:var(--radius-sm);background:var(--surface-2);flex-wrap:wrap;align-items: center;gap:12px;padding:14px}.person-name{font-size:1.1rem;font-weight:650}.fingerprint{letter-spacing:.1em;font-size:1.5rem}.codebox{display:flex;flex-direction:column;align-items: center;gap:12px}.qr{border-radius:var(--radius-sm);max-width:100%;height:auto}.code-text{display:block;overflow:auto;border-radius:var(--radius-sm);background:var(--surface-2);word-break:break-all;user-select:all;width:100%;max-height:5.5em;padding:10px 12px}.scanner{display:flex;flex-direction:column;align-items: center;gap:10px}.scanner-frame{position:relative;aspect-ratio:1;border-radius:var(--radius);overflow:hidden;background:#000;width:min(100%,320px)}.scanner-frame video{object-fit:cover;width:100%;height:100%}.scanner-reticle{position:absolute;border:2px solid oklch(1 0 0/.85);border-radius:12px;inset:18%}.progress-label{font-weight:600}.banner{display:flex;background:var(--accent-soft);justify-content:center;align-items: center;gap:12px;padding:8px 16px;font-size:.9rem}.spinner{border:3px solid var(--line-strong);border-top-color:var(--accent);animation:.9s linear infinite spin;border-radius:50%;width:28px;height:28px;margin:24px auto}@keyframes spin{to{transform:rotate(360deg)}}details summary{cursor:pointer;font-weight:560}details[open] summary{margin-bottom:10px}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition:none!important}}@media (max-width:520px){.page{padding:20px 16px 40px}.card{padding:16px}}.seg:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.stack>.btn,.card>.btn{align-self: flex-start}.banner-error{background:var(--danger-soft);color:var(--danger)}a.btn,a.tile,a.tab,a.brand{text-decoration:none}a.tab{display:inline-flex;align-items: center}.grow{flex:1;min-width:18ch}.fingerprint-inline{letter-spacing:.08em;white-space:nowrap;font-size:1.15rem}.notice-link{display:block;color:inherit;text-decoration:none;font-weight:560}.notice-link:hover{background:color-mix(in oklch,var(--ochre-soft)100%,var(--ochre)10%)}.requests{border-color:color-mix(in oklch,var(--ochre)45%,var(--line))}.sheet-backdrop{position:fixed;z-index:20;display:flex;background:oklch(.15 .01 160/.45);backdrop-filter:blur(2px);justify-content:center;align-items: flex-end;inset:0}.sheet{overflow:auto;padding:20px 20px calc(20px + env(safe-area-inset-bottom,0px));border-radius:var(--radius)var(--radius)0 0;background:var(--surface);box-shadow:var(--shadow);outline:none;width:min(100%,520px);max-height:92dvh}@media (min-width:640px){.sheet-backdrop{align-items: center}.sheet{border-radius:var(--radius)}}.steps{list-style:none;display:flex;flex-direction:column;gap:22px;margin:0;padding:0}.steps>li+li{border-top:1px solid var(--line);padding-top:20px}details.paste summary{color:var(--accent)}details.paste[open] summary{margin-bottom:12px}details.forgot{margin-top:8px}details.forgot summary{color:var(--muted);font-size:.9rem}.password{letter-spacing:.06em;border-radius:var(--radius-sm);background:var(--surface-2);user-select:all;padding:6px 10px;font-size:1.05rem}.password-input{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase}details.other-method summary{color:var(--muted);font-size:.92rem}details.other-method[open] summary{margin-bottom:12px}
