:root{--c-bg:#f3f4f1;--c-surface:#fff;--c-text:#1c1f1d;--c-sub:#5f6661;--c-border:#d9ddd8;--c-mute-bg:#eceeea;--c-primary:#17694a;--c-primary-press:#0f5238;--c-primary-soft:#e3f1ea;--c-on-primary:#fff;--c-plus:#1d5fbf;--c-minus:#c62828;--c-ng-bg:#fdecea;--c-ng-line:#f4c7c3;--c-ng-text:#b3261e;--c-ok-bg:#e3f1ea;--c-ok-text:#17694a;--c-me-bg:#fff6dc;--c-me-line:#e0a100;--c-me-tag-bg:#ffe9a8;--c-me-tag-text:#7a5600;--c-disabled-bg:#c9cdc8;--c-disabled-text:#fff;--c-faint:#a9aeaa;--fs-xs:12px;--fs-s:14px;--fs-m:16px;--fs-btn:17px;--fs-l:20px;--fs-xl:24px;--fs-2xl:28px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--r-s:8px;--r-m:12px;--r-pill:999px;--h-touch:44px;--h-btn:52px;--h-header:56px;--h-tab:56px;--font:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;--font-mono:ui-monospace,Menlo,Consolas,monospace}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);font-size:var(--fs-m);color:var(--c-text);background:var(--c-bg);-webkit-text-size-adjust:100%;line-height:1.5}button,input,select{font:inherit;color:inherit}button{cursor:pointer}.input,.tbl,.sum,.rank .total,.prow .sc{font-variant-numeric:tabular-nums}.plus{color:var(--c-plus)}.minus{color:var(--c-minus)}.zero{color:var(--c-sub)}.hint{font-size:var(--fs-s);color:var(--c-sub)}.hint.ng{color:var(--c-ng-text)}.note{font-size:var(--fs-xs);color:var(--c-sub);display:block}.center{text-align:center}.appbar{align-items:center;gap:var(--sp-2);min-height:var(--h-header);padding:var(--sp-2) var(--sp-4);background:var(--c-surface);border-bottom:1px solid var(--c-border);display:flex}.appbar .titles{flex:1;min-width:0}.appbar h1{font-size:var(--fs-l);white-space:nowrap;text-overflow:ellipsis;font-weight:700;line-height:1.25;overflow:hidden}.appbar .sub{font-size:var(--fs-xs);color:var(--c-sub);line-height:1.3}.back{height:var(--h-touch);padding-right:var(--sp-1);color:var(--c-primary);white-space:nowrap;align-items:center;font-weight:700;text-decoration:none;display:inline-flex}.me{align-items:center;gap:var(--sp-1);height:var(--h-touch);border:1.5px solid var(--c-me-line);border-radius:var(--r-pill);background:var(--c-me-bg);flex:none;padding:0 26px 0 12px;display:inline-flex;position:relative}.me>span{font-size:var(--fs-xs);color:var(--c-me-tag-text);font-weight:700}.me select{appearance:none;font-size:var(--fs-m);background:0 0;border:0;outline:none;font-weight:700}.me:after{content:"▾";color:var(--c-me-tag-text);pointer-events:none;font-size:12px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.main{gap:var(--sp-3);padding:var(--sp-4);flex-direction:column;flex:1;display:flex}.tabbar{height:var(--h-tab);background:var(--c-surface);border-top:1px solid var(--c-border);display:flex}.tab{color:var(--c-sub);font-size:var(--fs-s);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;font-weight:700;text-decoration:none;display:flex}.tab:before{content:"";background:0 0;border-radius:2px;width:28px;height:4px}.tab[aria-current=page]{color:var(--c-primary)}.tab[aria-current=page]:before{background:var(--c-primary)}.card{padding:var(--sp-4);border:1px solid var(--c-border);border-radius:var(--r-m);background:var(--c-surface)}.card.tight{padding:var(--sp-3) var(--sp-2)}.card h2{font-size:var(--fs-m);font-weight:700}.card>h2{margin-bottom:var(--sp-3)}.card-h{justify-content:space-between;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);display:flex}.card.tight>h2,.card.tight>.card-h,.card.tight>.hint{padding:0 var(--sp-2)}.card>.hint{margin-top:var(--sp-2)}.field{justify-content:space-between;align-items:center;gap:var(--sp-3);min-height:52px;padding:var(--sp-1) 0;display:flex}.field+.field{border-top:1px solid var(--c-border)}.field>.label{font-weight:700}.ctrl{align-items:center;gap:var(--sp-1);display:flex}.value{color:var(--c-sub);font-weight:700}.unit{font-size:var(--fs-s);color:var(--c-sub);white-space:nowrap}.is-me{background:var(--c-me-bg);box-shadow:inset 4px 0 0 var(--c-me-line)}.me-tag{margin-right:var(--sp-1);background:var(--c-me-tag-bg);color:var(--c-me-tag-text);vertical-align:2px;border-radius:4px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px;display:inline-block}.btn{justify-content:center;align-items:center;gap:var(--sp-2);width:100%;height:var(--h-btn);border-radius:var(--r-m);font-size:var(--fs-btn);border:0;font-weight:700;display:flex}.btn:disabled{cursor:default}.btn-primary{background:var(--c-primary);color:var(--c-on-primary)}.btn-primary:active{background:var(--c-primary-press)}.btn-primary:disabled{background:var(--c-disabled-bg);color:var(--c-disabled-text)}.btn-outline{border:1.5px solid var(--c-primary);background:var(--c-surface);color:var(--c-primary)}.btn-danger{border:1.5px solid var(--c-minus);background:var(--c-surface);color:var(--c-minus)}.btn-s{width:auto;height:var(--h-touch);padding:0 var(--sp-4);font-size:var(--fs-m);flex:none}.btns{gap:var(--sp-3);display:flex}.btns>.btn{flex:1}.input{width:100%;height:var(--h-touch);padding:0 var(--sp-3);border:1.5px solid var(--c-border);border-radius:var(--r-s);background:var(--c-surface);font-size:var(--fs-m);text-align:right}.input:focus{border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-primary-soft);outline:none}.input.text{text-align:left}.w-5{width:104px}.w-3{width:72px}.sign{width:var(--h-touch);height:var(--h-touch);border:1.5px solid var(--c-border);border-radius:var(--r-s);background:var(--c-surface);color:var(--c-sub);font-size:var(--fs-l);flex:none;font-weight:700;line-height:1}.sign[aria-pressed=true]{border-color:var(--c-minus);background:var(--c-ng-bg);color:var(--c-minus)}.neg .input{color:var(--c-minus)}.pt{align-items:center;gap:6px;display:flex}.pt .input{width:80px;height:48px;font-size:var(--fs-xl);font-weight:700}.pt .input.sm{width:72px;height:var(--h-touch);font-size:var(--fs-l)}.pt .zeros{font-size:var(--fs-l);color:var(--c-sub);margin-left:-2px;font-weight:700}.seg{border-radius:var(--r-s);background:var(--c-mute-bg);padding:3px;display:flex}.seg>button{min-width:72px;height:38px;color:var(--c-sub);background:0 0;border:0;border-radius:6px;font-weight:700}.seg>button[aria-pressed=true]{background:var(--c-surface);color:var(--c-primary);box-shadow:0 1px 3px #0000002e}.switch{border-radius:var(--r-pill);background:var(--c-disabled-bg);border:0;flex:none;width:52px;height:32px;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:26px;height:26px;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.switch[aria-checked=true]{background:var(--c-primary)}.switch[aria-checked=true]:after{left:23px}.chips{gap:var(--sp-2);flex-wrap:wrap;display:flex}.chip{height:var(--h-touch);border:1.5px solid var(--c-border);border-radius:var(--r-pill);background:var(--c-surface);white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-weight:700;display:inline-flex}.chip[aria-pressed=true]{border-color:var(--c-primary);background:var(--c-primary-soft);color:var(--c-primary)}.chip.has-seat{padding-left:var(--sp-1)}.chip .seat{width:24px;height:24px;font-size:13px}.chip .off{font-size:var(--fs-xs);color:var(--c-sub)}.presets{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.presets .chip{padding:0}.seat{background:var(--c-primary);width:28px;height:28px;color:var(--c-on-primary);font-size:var(--fs-s);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.radio{align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) 0;display:flex}.radio+.radio{border-top:1px solid var(--c-border)}.radio input{width:22px;height:22px;accent-color:var(--c-primary);flex:none;margin-top:1px}.uma{gap:var(--sp-2) var(--sp-3);margin-top:var(--sp-3);grid-template-columns:1fr 1fr;display:grid}.uma>div{align-items:center;gap:6px;display:flex}.uma .k{width:28px;font-size:var(--fs-s);color:var(--c-sub);font-weight:700}.uma .input{flex:1;min-width:0}.sum{justify-content:space-between;align-items:center;gap:var(--sp-2);min-height:52px;padding:var(--sp-2) var(--sp-4);border-radius:var(--r-m);font-weight:700;display:flex}.sum .big{font-size:var(--fs-l)}.sum.ng{border:1px solid var(--c-ng-line);background:var(--c-ng-bg);color:var(--c-ng-text)}.sum.ok{background:var(--c-ok-bg);color:var(--c-ok-text)}.sum.wait{background:var(--c-mute-bg);color:var(--c-sub)}.badge{border-radius:var(--r-pill);height:24px;font-size:var(--fs-xs);align-items:center;padding:0 10px;font-weight:700;display:inline-flex}.badge.done{background:var(--c-ok-bg);color:var(--c-ok-text)}.notice{padding:var(--sp-3) var(--sp-4);border-radius:var(--r-m);font-size:var(--fs-s)}.notice.error{border:1px solid var(--c-ng-line);background:var(--c-ng-bg);color:var(--c-ng-text)}.prow,.crow,.mrow{align-items:center;gap:var(--sp-2);border-radius:var(--r-s);display:flex}.prow{min-height:64px;padding:var(--sp-2)}.crow,.mrow{min-height:56px;padding:var(--sp-1) var(--sp-2)}.prow+.prow,.crow+.crow,.mrow+.mrow{margin-top:2px}.prow .who,.crow .name,.mrow .name{flex:1;min-width:0}.prow .name,.crow .name,.mrow .name{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.prow .res{font-size:var(--fs-s);color:var(--c-sub);font-weight:700}.prow .res b{margin-left:var(--sp-1);font-size:var(--fs-m)}.prow .rk{width:32px;font-size:var(--fs-s);color:var(--c-sub);text-align:right;font-weight:700}.prow .sc{min-width:56px;font-size:var(--fs-xl);text-align:right;font-weight:700}.del{height:var(--h-touch);border:1.5px solid var(--c-border);border-radius:var(--r-s);background:var(--c-surface);color:var(--c-minus);font-size:var(--fs-s);flex:none;padding:0 14px;font-weight:700}.del:disabled{color:var(--c-faint);cursor:default}.add{gap:var(--sp-2);display:flex}.add .input{flex:1;min-width:0}.url{align-items:center;gap:var(--sp-2);display:flex}.url code{border-radius:var(--r-s);background:var(--c-mute-bg);min-width:0;font-family:var(--font-mono);font-size:var(--fs-s);white-space:nowrap;text-overflow:ellipsis;flex:1;padding:10px 12px;overflow:hidden}.tbl{border-collapse:collapse;table-layout:fixed;width:100%}.tbl th{border-bottom:1px solid var(--c-border);color:var(--c-sub);font-size:var(--fs-xs);text-align:right;white-space:nowrap;text-overflow:ellipsis;padding:6px 4px;font-weight:700;overflow:hidden}.tbl td{border-bottom:1px solid var(--c-border);text-align:right;white-space:nowrap;text-overflow:ellipsis;padding:10px 4px;font-weight:700;overflow:hidden}.tbl tbody tr:last-child td{border-bottom:0}.tbl th:first-child,.tbl td:first-child{padding-left:var(--sp-2);text-align:left}.tbl th:last-child,.tbl td:last-child{padding-right:var(--sp-2)}.tbl tr.is-me{box-shadow:none;background:0 0}.tbl tr.is-me td{background:var(--c-me-bg)}.tbl tr.is-me td:first-child{box-shadow:inset 4px 0 0 var(--c-me-line)}.tbl .me-col{background:var(--c-me-bg)}.tbl th.me-col{color:var(--c-me-tag-text)}.matrix th:first-child{width:40px}.matrix td{font-size:15px}.matrix td:first-child{color:var(--c-sub)}.matrix tbody tr{cursor:pointer}.matrix .skip{color:var(--c-faint);font-weight:400}.settle th:nth-child(2){width:56px}.settle th:nth-child(3){width:52px}.settle th:nth-child(4){width:96px}.rank{align-items:center;gap:var(--sp-3);min-height:52px;padding:var(--sp-1) var(--sp-3);border-radius:var(--r-s);display:flex}.rank+.rank{margin-top:2px}.rank .pos{width:20px;color:var(--c-sub);text-align:center;font-weight:700}.rank .name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-weight:700;overflow:hidden}.rank .games{font-size:var(--fs-s);color:var(--c-sub)}.rank .total{min-width:64px;font-size:var(--fs-xl);text-align:right;font-weight:700}.hero{justify-content:center;gap:var(--sp-5);padding:var(--sp-5) var(--sp-4);flex-direction:column;flex:1;display:flex}.logo{background:var(--c-primary);width:72px;height:72px;color:var(--c-on-primary);border-radius:20px;justify-content:center;align-items:center;font-size:36px;font-weight:800;display:flex}.hero h1{font-size:var(--fs-2xl);font-weight:800;line-height:1.3}.lead{margin-top:var(--sp-2);color:var(--c-sub)}.feats{gap:var(--sp-2);flex-direction:column;list-style:none;display:flex}.feats li{padding:var(--sp-3) var(--sp-4);border:1px solid var(--c-border);border-radius:var(--r-m);background:var(--c-surface);font-size:var(--fs-s)}.foot{gap:var(--sp-3);padding:var(--sp-4) var(--sp-4) var(--sp-5);flex-direction:column;display:flex}#root{flex-direction:column;max-width:480px;min-height:100dvh;margin:0 auto;display:flex}.session{padding-bottom:calc(var(--h-tab) + env(safe-area-inset-bottom))}.tabbar{width:100%;max-width:480px;height:calc(var(--h-tab) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);position:fixed;bottom:0}.tab{cursor:pointer;background:0 0;border:0}
