:root{font-family:Arial,sans-serif;color:#183f48;background:#103f49}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top right,#266866,transparent 70%)}header{background:#fff9e8;padding:15px max(20px,4vw);display:flex;justify-content:space-between;align-items:center;gap:16px}header img{width:250px;max-width:58vw;display:block}a{color:#086873}header a.back{font-size:13px;font-weight:bold}main{max-width:1250px;margin:0 auto;padding:24px}h1{font-size:clamp(28px,4vw,44px);margin:12px 0;color:#103f49}h2{font-size:23px;margin-top:0}h3{font-size:17px}p{line-height:1.55}.hero,.panel{background:#fffdf3;border:1px solid #e0ca8a;border-radius:22px;padding:clamp(18px,3vw,30px);margin-bottom:22px;box-shadow:0 8px 0 #092d3533}.hero{background:linear-gradient(120deg,#fff7d9,#e0f4e9)}.pill{display:inline-block;background:#e2efe9;color:#17616a;border-radius:20px;padding:7px 11px;font-size:11px;letter-spacing:1px;font-weight:bold}.steps{display:flex;gap:12px;flex-wrap:wrap}.steps span{background:#fff8e2;border:1px solid #d7c38d;border-radius:12px;padding:12px;font-size:13px}.columns{display:grid;grid-template-columns:1fr 1fr;gap:22px}.columns>.panel{height:fit-content}label{display:grid;gap:7px;font-weight:bold;font-size:13px;margin-bottom:15px}input,select{width:100%;padding:12px;font:inherit;border:1px solid #a9c4bb;border-radius:10px;background:white;color:#1c4852;min-width:0}button,.button{font:inherit;font-weight:bold;min-height:43px;padding:11px 16px;border:1px solid #97bbb1;border-radius:10px;background:#eef7f1;color:#145b64;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}button:hover,.button:hover{background:#f8e4aa}button:disabled{opacity:.5;cursor:wait}.primary{background:#0b727a;color:white;border:0}.primary:hover{background:#095a63}.danger{background:#fff1ed;color:#9b3041;border-color:#e3b8bd}.actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin:12px 0}.subtle{font-size:12px;color:#607a7e}.code{font-size:30px;letter-spacing:4px;font-weight:bold;overflow-wrap:anywhere}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:15px 0}.summary>div{background:white;border-radius:12px;padding:15px;border:1px solid #b5d0c3}.summary strong{display:block;font-size:23px;margin-bottom:6px}.saved{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid #d0ddd3}.saved span{font-size:13px}.roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.section-roster{background:#f0f5ed;border-radius:12px;padding:16px}.person{display:flex;gap:8px;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid #d3dfd4;overflow-wrap:anywhere}.person button{font-size:11px;min-height:30px;padding:6px}.matches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.match{border:1px solid #b9cfc2;border-radius:14px;padding:17px;background:white;min-width:0}.match.mine{border:2px solid #c88e29;background:#fff7dd}.match .versus{display:grid;gap:10px;margin:14px 0}.match .versus span{font-size:14px;overflow-wrap:anywhere}.status{font-size:12px;display:inline-block;background:#e3f2e9;padding:5px 8px;border-radius:15px}.match .primary{width:100%;margin-top:12px}.winner{background:linear-gradient(110deg,#ffe5a6,#fff8de);border:2px solid #d7a343;border-radius:17px;padding:20px;margin:15px 0}.winner strong{display:block;font-size:24px;margin-top:10px;overflow-wrap:anywhere}.champions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.champions>div{border:1px solid #e0c880;background:#fff7db;padding:15px;border-radius:12px}.champions b{display:block;margin-top:10px;overflow-wrap:anywhere}#notice:not(:empty){position:sticky;top:8px;z-index:5;background:#fff1cf;border:2px solid #d9ad54;color:#63421c;padding:14px;border-radius:12px;margin-bottom:16px}details{margin-top:18px}summary{cursor:pointer;font-weight:bold}dialog{max-width:520px;width:90%;border:2px solid #d2b360;border-radius:18px;color:#204b53;background:#fffaf0;padding:25px}dialog::backdrop{background:#001c30b0}table{border-collapse:collapse;width:100%;font-size:13px}td,th{text-align:left;padding:10px;border-bottom:1px solid #c9dcd0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e1b040;outline-offset:2px}.loading{text-align:center;color:#fff1c5;padding:40px}.hidden{display:none}
@media(max-width:700px){main{padding:16px}.columns,.matches,.roster{grid-template-columns:1fr}.summary{grid-template-columns:1fr 1fr}.summary>div:last-child{grid-column:1/-1}.champions{grid-template-columns:1fr 1fr}header{padding:12px 16px}header img{width:210px}.back{font-size:11px!important}.actions button,.actions .button{flex:1;white-space:normal}.match .primary{flex:none}.code{font-size:24px}.saved{align-items:flex-start}.steps{gap:7px}.steps span{font-size:11px;padding:9px}.pill{letter-spacing:.4px}.hero h1{font-size:29px}}
.enrollment-entry{margin:24px 0;padding:22px;border:2px solid #b6d2c5;border-radius:16px;background:linear-gradient(120deg,#e2f2e8,#fff4d6)}.enrollment-entry h3{font-size:23px;margin:12px 0}.enrollment-entry p{margin-bottom:12px}.enrollment-dialog{max-width:1000px;width:95vw;max-height:92dvh;overflow:auto;padding:clamp(16px,3vw,28px)}.import-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.import-heading h2{margin-top:12px}.upload-box{margin:20px 0;padding:20px;border:2px dashed #9dbeb0;border-radius:12px;background:#edf6ee}.mapping-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.preview-scroll{max-height:340px;overflow:auto;margin:18px 0;border:1px solid #bcd1c5;border-radius:10px}.preview-scroll th{position:sticky;top:0;background:#e0eee5;z-index:1}.preview-scroll td{overflow-wrap:anywhere;max-width:300px;min-width:65px}.import-error{background:#fff0eb;color:#98363b}.import-skip{background:#fcf2d9;color:#745c25}.import-ready{background:#f0f8ef}.import-counts{display:flex;gap:12px;flex-wrap:wrap}.import-counts span{background:#e6f0e8;padding:10px 14px;border-radius:10px}.import-counts b{font-size:22px;margin-right:5px}#importNotice:not(:empty){background:#fff2d2;padding:12px;border-radius:10px;line-height:1.5}dialog button:disabled{cursor:default}dialog li{margin:8px 0}@media(max-width:550px){.mapping-grid{grid-template-columns:1fr}.enrollment-dialog{width:96vw;max-height:94dvh}.import-heading{gap:8px}.import-heading h2{font-size:21px}.preview-scroll{max-height:40dvh}.preview-scroll table{font-size:12px}.preview-scroll td,.preview-scroll th{padding:8px}.import-heading .pill{font-size:9px}.enrollment-entry .actions>*{width:100%;flex:auto}}
.student-login{order:-1}.student-access-box{margin-top:22px;border-top:2px solid #d4e3d9;padding-top:15px}.student-access-box h3{font-size:21px}.entry-callout{padding:18px;border:2px solid #b7d2c0;border-radius:14px;background:#f4faed;margin:18px 0}.entry-callout h2{font-size:22px;margin-bottom:12px}.entry-callout ol{padding-left:22px}.entry-callout li{margin:10px 0;line-height:1.55}.next-match{background:#fff5d3;border:2px solid #d8af4b;padding:20px;border-radius:15px;margin:20px 0}.next-match h2{margin-top:14px}.next-match .primary{font-size:19px;padding:16px 24px}.student-entry .teacher-create{display:none}.student-entry .columns{grid-template-columns:1fr;max-width:800px;margin:auto}.student-entry .hero{max-width:800px;margin-left:auto;margin-right:auto}.student-entry .hero h1{font-size:30px}.student-entry .student-login{padding:clamp(18px,4vw,36px)}.student-entry .student-login h2{font-size:29px}.student-entry .student-access-box .primary{width:100%}input[type=password]{font-family:monospace}@media(max-width:550px){.next-match .primary{width:100%;font-size:17px}.entry-callout{padding:14px}.entry-callout h2{font-size:20px}.student-entry .student-login h2{font-size:25px}}
.organization-info{padding:16px;background:#eef6ec;border:1px solid #b9d1be;border-radius:14px;margin:16px 0}#teacherAccount{padding:10px 0 22px}#teacherAccount h2{font-size:23px}#teacherAccountNotice:not(:empty){padding:12px;background:#fff0cf;border-radius:8px}.legacy-access{border:1px solid #bfd3c6;border-radius:12px;padding:14px}.student-code-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.student-code-grid article{border:2px dashed #c8ac61;border-radius:12px;padding:16px;break-inside:avoid;background:#fffbed}.student-code-grid h3{overflow-wrap:anywhere}.student-code-grid .code{font-size:25px;letter-spacing:2px}.code-cards{max-width:950px;width:95vw;max-height:90dvh;overflow:auto}.student-code-grid p{font-size:12px}.student-login #shortStudentLogin{padding:18px;background:#e9f5e9;border-radius:14px;border:2px solid #a3c6ae;margin-bottom:20px}.student-login #personalCode{font-size:23px;letter-spacing:3px;text-transform:uppercase}.student-login #shortStudentLogin button{width:100%;font-size:18px}.student-entry .legacy-access{margin-top:20px}@media(max-width:550px){.student-code-grid{grid-template-columns:1fr}.student-code-grid .code{font-size:24px}}@media print{body:has(.code-cards[open])>header,body:has(.code-cards[open])>main,body:has(.code-cards[open])>dialog:not(.code-cards){display:none!important}.code-cards[open]{position:static;display:block;max-height:none;width:100%;max-width:none;overflow:visible;border:0}.code-cards .actions{display:none}.student-code-grid{grid-template-columns:1fr 1fr}.code-cards::backdrop{display:none}}
.reuse-list{padding:18px;border:2px solid #b9d5c4;border-radius:14px;margin:18px 0;background:#eef8e8}.reuse-list h2,.reuse-list h3{margin-top:0}.reuse-list p{line-height:1.5}
/* Tournament workspace: quiet surfaces, clear roles and progressive sections. */
:root{font-family:'Segoe UI',Arial,sans-serif;color:#203f46;background:#f3f6f4}body{background:#f3f6f4;min-height:100dvh}header{background:#fff;border-bottom:1px solid #dce6e1;padding:14px max(24px,calc((100vw - 1240px)/2));min-height:80px}header img{width:218px}main{max-width:1290px;padding:28px 24px 60px}.hero,.panel{background:#fff;border:1px solid #dde6e1;box-shadow:0 4px 18px #153f4610;border-radius:20px;margin-bottom:20px}h1{letter-spacing:-1.3px;line-height:1.12;font-weight:750}h2{font-size:22px;letter-spacing:-.4px}h3{line-height:1.4}p{color:#536e73}button,.button{border-radius:10px;min-height:44px;background:#fff;border-color:#cbdad5;font-size:14px;transition:background .15s,border-color .15s}button:hover,.button:hover{background:#edf5f1;border-color:#83b5a6}.primary{background:#087a79;color:#fff;border-color:#087a79;box-shadow:0 3px 8px #087a7920}.primary:hover{background:#075e60}.pill{background:#e4f1eb;color:#25685c;font-size:10px;letter-spacing:1.1px}.subtle{color:#678087}label{font-size:13px;color:#34545b}input,select{border-color:#cfddd6;background:#fcfefd;min-height:45px}input:focus,select:focus{background:#fff}button:disabled{cursor:not-allowed}.hero-copy{min-width:0}.welcome-hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(250px,.8fr);align-items:center;gap:30px;background:#fffaf0;padding:28px 36px;overflow:hidden}.welcome-hero h1{font-size:clamp(32px,3.7vw,48px);max-width:530px;margin:15px 0}.welcome-hero p{max-width:580px;font-size:15px;line-height:1.7;margin:0 0 20px}.tournament-art{margin:0;min-width:0;border-radius:18px;overflow:hidden;background:#f5f0e6}.tournament-art img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}.welcome-hero .tournament-art{max-height:250px}.steps{gap:8px}.steps span{background:transparent;border:0;border-left:2px solid #dba94c;border-radius:0;padding:2px 10px;font-size:11px;color:#6d6551}.entry-switch{display:flex;gap:10px;margin:0 0 22px;border-bottom:1px solid #d7e4dc;padding-bottom:15px}.entry-switch a{display:flex;align-items:center;gap:12px;text-decoration:none;padding:12px 18px;border-radius:12px;color:#567177;border:1px solid transparent;font-weight:700;font-size:15px}.entry-switch span{font-size:12px;font-weight:400}.entry-switch a[aria-current]{background:#e0eee7;border-color:#bfd9cd;color:#165c55}.columns{grid-template-columns:minmax(0,1fr) minmax(0,.95fr);align-items:start;gap:22px}.columns>section{min-width:0}.teacher-create{padding:24px}.student-login{display:none;order:initial}.student-entry .student-login{display:block}.student-entry .teacher-create,.student-entry .account-panel{display:none}.student-entry .columns{max-width:700px;grid-template-columns:1fr}.student-entry .welcome-hero{max-width:none}.student-entry .hero h1{font-size:clamp(30px,3.5vw,44px)}.student-entry .student-login{padding:28px}.student-login #shortStudentLogin{background:#f7faf7;border:1px solid #d9e6dd;padding:20px;margin-top:20px}.student-login #personalCode{font-size:22px;letter-spacing:3px}#teacherAccount{padding:0}#teacherAccount>h2{margin-bottom:12px}#teacherAccount>p{font-size:14px}.saved{padding:16px 0;min-width:0}.saved span{min-width:0;overflow-wrap:anywhere;font-size:13px;line-height:1.6}.saved button{flex-shrink:0;font-size:12px}.create-details{margin:0}.create-details>summary{font-size:20px;padding:0 0 8px;color:#154b50}.create-details[open]>summary{margin-bottom:18px;border-bottom:1px solid #e1e9e4}.create-details h2{display:none}.create-details form{display:grid;grid-template-columns:1fr 1fr;gap:0 15px}.create-details form>label:first-child,.create-details form>label:nth-child(2),.create-details form>label:nth-child(5),.create-details form>label:nth-child(6),.create-details form>button{grid-column:1/-1}.create-details details{grid-column:1/-1}.teacher-guide{background:#f4f8f4;border-radius:14px;padding:20px;margin-top:20px}.teacher-guide h3{font-size:17px;margin:12px 0}.teacher-guide ol{list-style:none;counter-reset:route;padding:0;margin:0}.teacher-guide li{counter-increment:route;position:relative;padding:12px 0 12px 40px;font-size:14px}.teacher-guide li:before{content:counter(route);position:absolute;left:0;top:14px;width:26px;height:26px;border-radius:50%;background:#e0ece3;color:#2a675b;display:grid;place-items:center;font-size:12px;font-weight:bold}.teacher-guide li span{display:block;font-size:12px;color:#647d78;margin-top:4px;line-height:1.5}.legacy-access{font-size:13px;border-color:#d9e4dd;background:#fcfdfb}.legacy-access>summary{line-height:1.5}.saved-access-panel{box-shadow:none;background:transparent}.saved-access-panel details{margin:0}.saved-access-panel h2{display:none}.tournament-hero{padding:26px 30px}.tournament-intro{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:28px;align-items:center}.tournament-intro h1{font-size:clamp(28px,3vw,40px);margin:12px 0}.tournament-intro p{font-size:14px;line-height:1.6}.tournament-intro .tournament-art{border-radius:14px}.tournament-intro .actions{margin-bottom:0}.summary{margin:22px 0 0;gap:12px}.summary>div{background:#f7faf7;border:1px solid #e1e9e3;padding:15px 18px;font-size:12px;color:#5e7677}.summary strong{font-size:25px;font-weight:700;color:#174e50;margin-bottom:4px}.entry-callout:has([data-action=start]){display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 20px;background:#edf7f0;border:1px solid #bfdcc9;padding:18px 20px;margin-bottom:0}.entry-callout:has([data-action=start]) h2{font-size:18px;margin:0}.entry-callout:has([data-action=start]) p{font-size:13px;flex:1 1 420px;margin:0}.entry-callout:has([data-action=start]) button{min-width:145px}.tournament-nav{display:flex;gap:6px;background:#fff;padding:7px;border:1px solid #dce6df;border-radius:13px;margin-bottom:20px;position:sticky;top:8px;z-index:3;box-shadow:0 4px 12px #143b4410}.tournament-nav button{border:0;box-shadow:none;flex:1;background:transparent;color:#637a7d;min-width:0}.tournament-nav button[aria-pressed=true]{background:#e4f0e9;color:#165f55}.tournament-open [data-section][hidden]{display:none!important}.enrollment-entry{display:flex;justify-content:space-between;align-items:center;gap:18px;background:#f3f8f3;border:1px solid #d2e3d7;padding:18px 22px;margin:18px 0}.enrollment-entry h3{font-size:20px;margin:9px 0}.enrollment-entry p{font-size:13px;max-width:580px}.enrollment-entry .actions{flex-direction:column;align-items:stretch;min-width:210px;flex-shrink:0}.single-enroll{margin:16px 0 24px;font-size:13px;border-bottom:1px solid #e0e8e2;padding-bottom:15px}.single-enroll form{margin-top:18px;display:grid;grid-template-columns:1.5fr 1fr auto;align-items:end;gap:14px}.single-enroll form label{margin:0}.roster{gap:18px}.section-roster{background:#fafcf9;border:1px solid #e4ebe4;padding:18px}.section-roster h3{color:#386658;font-size:15px}.person{font-size:13px;line-height:1.5;padding:13px 0}.person>span:last-child:has(button){display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.person button{background:#fff;font-size:10px}.organization-tools{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.organization-tools>.reuse-list,.organization-tools>.organization-info,.organization-tools>.entry-callout{margin:0;background:#f7faf5;border:1px solid #dbe6da;padding:20px}.organization-tools>.entry-callout{grid-column:1/-1}.organization-tools>.code{font-size:26px}.organization-tools>.actions{margin:0;align-self:center}.organization-tools h2{font-size:18px}.organization-tools p,.organization-tools li{font-size:13px}.match{border-color:#dbe6de;padding:20px}.match .status{font-size:11px}.match .versus span{line-height:1.5}.next-match{border-color:#ead6a3;background:#fff9e9}.next-match .primary{font-size:16px;padding:13px 20px}.tournament-open .hero>.actions{margin-top:18px}.champions{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:850px){.welcome-hero{gap:20px;grid-template-columns:1.2fr 1fr;padding:26px}.welcome-hero .steps span{font-size:10px}.columns{grid-template-columns:1fr 1fr;gap:16px}.saved{align-items:flex-start;flex-wrap:wrap}.saved button{min-height:38px}.tournament-intro{grid-template-columns:1fr 170px}.enrollment-entry{align-items:flex-start;flex-direction:column}.enrollment-entry .actions{flex-direction:row;flex-wrap:wrap;min-width:0}.organization-tools{grid-template-columns:1fr}.organization-tools>.entry-callout{grid-column:auto}.single-enroll form{grid-template-columns:1fr 1fr}.single-enroll form>button{grid-column:1/-1}}
@media(max-width:600px){header{padding:13px 18px;min-height:66px}header img{width:180px;max-width:55vw}main{padding:16px 14px 36px}.hero,.panel{border-radius:16px;padding:20px}.welcome-hero{grid-template-columns:1fr;gap:14px;padding:22px}.welcome-hero h1{font-size:34px;margin:13px 0}.welcome-hero p{font-size:13px;line-height:1.6;margin-bottom:15px}.welcome-hero .tournament-art{max-height:175px}.welcome-hero .tournament-art img{aspect-ratio:2/1;object-position:center 55%}.steps{gap:5px}.steps span{font-size:10px;flex:1;padding-left:7px}.entry-switch{gap:6px;margin-bottom:16px}.entry-switch a{flex:1;display:block;padding:11px 13px;font-size:14px}.entry-switch span{display:block;font-size:10px;line-height:1.5;margin-top:4px}.columns{grid-template-columns:1fr}.teacher-create{padding:20px}.student-entry .student-login{padding:20px}.student-entry .student-login h2{font-size:24px}.tournament-intro{grid-template-columns:1fr}.tournament-intro .tournament-art{display:none}.tournament-intro h1{font-size:30px;overflow-wrap:anywhere}.tournament-nav{flex-wrap:wrap;gap:5px;top:5px}.tournament-nav button{flex:1 1 45%;padding:10px 7px;font-size:12px;min-height:39px}.summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:18px}.summary>div{padding:12px 9px;font-size:10px;line-height:1.5}.summary>div:last-child{grid-column:auto}.summary strong{font-size:19px;overflow-wrap:anywhere}.entry-callout:has([data-action=start]){padding:16px}.entry-callout:has([data-action=start]) h2{font-size:17px}.entry-callout:has([data-action=start]) button{width:100%}.roster,.matches{grid-template-columns:1fr}.person{align-items:flex-start;flex-direction:column;gap:9px}.person>span:last-child:has(button){justify-content:flex-start}.enrollment-entry{padding:16px}.enrollment-entry .actions{width:100%;flex-direction:column}.enrollment-entry .actions>*{width:100%}.create-details form,.single-enroll form{grid-template-columns:1fr}.create-details form>*{grid-column:1!important}.organization-tools{gap:14px}.champions{grid-template-columns:1fr}.actions button,.actions .button{flex:0 1 auto}.next-match .primary{width:100%}.tournament-open .hero>.actions .button{width:100%}.student-entry .hero{max-width:none}.saved-access-panel{padding:18px}.teacher-guide{padding:16px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
