:root{color:#153438;font-synthesis:none;background:#f2f5f2;font-family:Noto Sans JP,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-offset:4px;outline:4px solid #cb830a}button:disabled{opacity:.4;cursor:not-allowed}.danger{color:#fff;background:#b42332;min-height:44px;padding:14px 20px}.delete-section{background:#fff8f8;border:1px solid #edc6cb;border-radius:14px;margin-top:40px;padding:24px}.delete-section p{font-size:14px;line-height:1.8}.delete-section button{margin-top:12px}.delete-dialog{color:#193a35;border:1px solid #edc6cb;border-radius:16px;width:calc(100% - 32px);max-width:560px;max-height:90dvh;padding:24px;overflow:auto}.delete-dialog::backdrop{background:#12282099}.delete-dialog p{overflow-wrap:anywhere;line-height:1.8}.delete-dialog .dialog-actions{flex-direction:column;gap:12px;display:flex}button{border:0;border-radius:14px;font-weight:700}a{color:#086858;text-underline-offset:5px}.board{flex-direction:column;max-width:1440px;min-height:100dvh;margin:auto;padding:28px 40px;display:flex}header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}h1{letter-spacing:-.04em;margin:4px 0 8px;font-size:clamp(22px,3vw,32px)}header p{margin:0;font-size:14px}.eyebrow{letter-spacing:.16em;color:#627a76;font-weight:700;font-size:11px!important}.divider{color:#bccac4;padding:0 10px}.status{color:#55706b;margin-left:16px}.connection{white-space:nowrap;background:#fff4de;border:1px solid #dfb87c;border-radius:30px;padding:10px 15px;font-size:13px}.connection.online{color:#19794e;background:#e3f1e8;border-color:#c4e0cd}.teams{flex:1;grid-template-columns:1fr 1fr;gap:24px;display:grid}.team{text-align:center;background:#fff;border:1px solid #dce5df;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;padding:22px 24px;display:flex}.team-B{border-top-color:#c78335}.team-label{letter-spacing:.22em;color:#177968;margin:0 0 12px;font-size:11px;font-weight:700}.team-B .team-label{color:#a76b28}h2{overflow-wrap:anywhere;margin:0;font-size:clamp(22px,3.4vw,40px)}.score{letter-spacing:-.06em;font-variant-numeric:tabular-nums;margin:14px 0 22px;font-size:clamp(80px,15vw,200px);font-weight:900;line-height:1.2}.points{gap:12px;width:100%;display:flex}.points button{color:#fff;background:#167a67;flex:1;min-height:86px;font-size:clamp(28px,4vw,48px);box-shadow:0 4px #0b584a}.team-B .points button{background:#b8752c;box-shadow:0 4px #885219}.points button:active{box-shadow:none;transform:translateY(3px)}.points small{font-size:20px}footer{text-align:center;margin-top:24px}.undo{color:#36534b;background:#e3eae5;min-height:56px;padding:16px 30px;font-size:16px}.feedback{color:#5b7169;min-height:24px;margin:12px 0 0;font-size:13px}.warning{color:#815113;background:#fff0cf;border-radius:12px;margin-bottom:18px;padding:15px;font-weight:600}.setup{max-width:760px;margin:50px auto;padding:32px}.setup h1{font-size:36px}.intro,.hint{color:#5e736d;font-size:14px;line-height:1.8}.form-grid{grid-template-columns:1fr 1fr;gap:0 22px;display:grid}label{margin:20px 0 0;font-size:13px;font-weight:600;display:block}input,select{color:#183a30;background:#fff;border:1px solid #c9d7ce;border-radius:9px;width:100%;min-height:48px;margin-top:8px;padding:13px 14px;display:block}.primary{color:#fff;background:#167a67;width:100%;margin-top:15px;padding:18px}.created{background:#fff;border:1px solid #c9d7ce;border-radius:16px;margin-top:30px;padding:26px}.created h2{font-size:22px}.created p{font-size:13px}.created a{margin-top:12px;display:inline-block}.display{color:#fff;background:#102327;max-width:none}.display .team{background:#193236;border-color:#365054}.display .score{font-size:clamp(90px,20vw,290px)}.display .eyebrow,.display .feedback,.display .status{color:#a4bdb5}.display .team-label{color:#66c8ab}.display .team-B .team-label{color:#edb874}@media (width<=600px){.board{padding:18px 12px}.teams{gap:10px}.team{padding:20px 10px}header{align-items:flex-start}.connection{padding:8px;font-size:10px}header p{font-size:12px}.status{margin:5px 0 0;display:block}.points{flex-direction:column;gap:12px}.points button{min-height:60px}.score{margin:10px 0 20px;font-size:85px}h2{font-size:23px}.setup{margin:0;padding:28px 20px}.form-grid{grid-template-columns:1fr}.team-label{margin-bottom:8px}footer{margin-top:18px}}@media (height<=650px) and (width>=601px){.board{padding:14px 24px}header{margin-bottom:12px}.team{padding:12px}.score{margin:0 0 12px;font-size:100px}.points button{min-height:64px}footer{margin-top:12px}}.bracket-page{max-width:1500px;margin:auto;padding:32px}.tree-editor{color:#151515;background:#fff;border:1px solid #dce3ee;border-radius:14px;overflow:hidden}.tree-controls{border-bottom:1px solid #edf0f5;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;font-size:13px;display:flex}.tree-controls>div{align-items:center;gap:8px;display:flex}.tree-controls button{color:#253b60;background:#f0f3f9;border-radius:6px;min-width:40px;min-height:40px;padding:8px 12px}.tree-zoom{text-align:center;font-variant-numeric:tabular-nums;min-width:48px}.tree-viewport{touch-action:none;cursor:grab;height:510px;position:relative;overflow:hidden}.tree-viewport.dragging{cursor:grabbing}.tree-canvas{transform-origin:0 0;position:absolute}.tree-lines{pointer-events:none;position:absolute;inset:0}.tree-lines path{fill:none;stroke:#578aff;stroke-width:1.5px}.tree-node{color:#fff;text-align:center;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:none;user-select:none;background:#080808;border-radius:5px;width:120px;height:48px;padding:8px 10px;font-size:17px;font-weight:500;line-height:1.4;position:absolute;overflow:hidden;transform:translate(-50%,-50%)}.tree-node:disabled{opacity:1;cursor:default}.tree-node small{color:#8df1c3;font-size:10px;display:block}.tree-match:hover{background:#243961}.tree-node.playing{box-shadow:0 0 0 3px #39b98a}.tree-node[data-team]{cursor:grab;touch-action:none}.tree-node[aria-pressed=true],.tree-node.drop-target{outline-offset:4px;background:#173d82;outline:4px solid #578aff}.tree-node.team-dragging{z-index:5;cursor:grabbing;opacity:.85;box-shadow:0 8px 24px #0005}.tree-help{color:#56667e;border-top:1px solid #edf0f5;margin:0;padding:12px 20px;font-size:12px;line-height:1.8}@media (width<=600px){.tree-viewport{height:400px}.tree-controls{padding:12px}}.bracket-page h2{font-size:26px}.bracket-page header p{line-height:1.8}.bracket-page textarea{width:100%;font:inherit;resize:vertical;border:1px solid #c9d7ce;border-radius:9px;margin-top:8px;padding:14px;display:block}.bracket-auth{background:#e4eee7;border-radius:12px;max-width:620px;padding:16px}.bracket-auth summary{cursor:pointer;min-height:32px}.bracket-auth button{margin-top:12px}.bracket-create{background:#fff;border:1px solid #dce5df;border-radius:18px;max-width:720px;margin-top:30px;padding:28px}.bracket-toolbar{flex-wrap:wrap;align-items:end;gap:16px;margin:20px 0;display:flex}.bracket-toolbar label{margin:0}.bracket-title{justify-content:space-between;align-items:center;gap:18px;margin-top:24px;display:flex}.bracket-title p{font-size:14px}.bracket-list{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;display:grid}.bracket-list-item{background:#fff;border:1px solid #d5e2d9;border-radius:14px;justify-content:space-between;align-items:center;gap:16px;padding:24px;text-decoration:none;display:flex}.bracket-list-item span{font-weight:700}.bracket-scroll{background:#eaf0eb;border:1px solid #d9e4dc;border-radius:18px;padding:24px;overflow-x:auto}.bracket-rounds{gap:36px;width:max-content;min-width:100%;display:flex}.bracket-round{flex-direction:column;flex:none;width:270px;display:flex}.bracket-round h3{text-align:center;margin:0 0 16px;font-size:18px}.round-matches{flex-direction:column;flex:1;display:flex}.match-slot{flex:1;align-items:center;min-height:165px;padding:10px 0;display:flex;position:relative}.bracket-match{z-index:1;background:#fff;border:1px solid #cfddd3;border-radius:12px;width:100%;padding:14px;position:relative}.bracket-round:not(:last-child) .bracket-match:after{content:"";border-top:2px solid #adc7b7;width:19px;position:absolute;top:50%;right:-20px}.bracket-round:not(:last-child) .match-slot:nth-child(odd):after{content:"";background:#adc7b7;width:2px;height:100%;position:absolute;top:50%;right:-20px}.bracket-round:not(:first-child) .bracket-match:before{content:"";width:17px;position:absolute;top:50%;left:-18px}.match-top{color:#61786b;margin-bottom:8px}.bracket-team{justify-content:space-between;align-items:center;gap:12px;min-height:40px;padding:8px 4px;display:flex}.bracket-team span{overflow-wrap:anywhere}.bracket-team strong{font-size:22px}.bracket-team.winner{color:#126b4b;background:#e2f4e8;border-radius:6px}.bracket-match.playing{border:2px solid #268967}.bracket-match.bye{background:#f7faf7}.match-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.match-actions a{padding:8px 0;font-size:13px}.match-actions button{color:#1e624a;background:#e3eee6;border-radius:7px;min-height:42px;padding:10px;font-size:12px}.champion{background:#fff1ca;border:1px solid #ead392;border-radius:14px;margin:16px 0;padding:22px;font-size:22px}.champion strong{margin-left:12px}#bracket-dialog{color:#193a35;border:1px solid #bdcfc3;border-radius:18px;width:calc(100% - 32px);max-width:560px;max-height:90dvh;padding:28px;overflow:auto}#bracket-dialog::backdrop{background:#12282099}#bracket-dialog h2{font-size:24px}#bracket-dialog p{line-height:1.8}#bracket-dialog li{margin:10px 0}.dialog-actions{flex-direction:column;gap:12px;display:flex}.copy-link{margin:12px 0}.bracket-scroll{padding:20px;overflow:visible}.bracket-rounds{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;width:100%;display:grid}.bracket-round{width:auto;min-width:0}.round-matches{flex:none;justify-content:start}.match-slot{flex:none;min-height:0}.bracket-round .bracket-match:before,.bracket-round .bracket-match:after,.bracket-round .match-slot:after{display:none}#dialog-message,#bracket-message{overflow-wrap:anywhere}#bracket-dialog label{margin-bottom:12px}@media (width<=600px){.bracket-page{padding:20px 14px}.bracket-title{display:block}.bracket-title h2{font-size:23px}.bracket-scroll{padding:16px}.bracket-create{padding:20px}.bracket-round{width:auto}.bracket-page header{flex-wrap:wrap}.bracket-toolbar{align-items:stretch}.bracket-toolbar label{flex:1}.bracket-list{grid-template-columns:1fr}}
