
*{box-sizing:border-box}body{margin:0;background:#f3f6fa;color:#20334a;font:14px 'Segoe UI',system-ui,sans-serif}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #dce4ed;border-radius:8px;background:white;color:#294057;padding:10px 15px}button:hover{background:#e9f3f5}button:focus-visible,input:focus,select:focus{outline:3px solid #55b9bf}aside{position:fixed;width:230px;inset:0 auto 0 0;background:#142b43;color:#c2cedb;padding:30px 18px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;color:white;font-size:23px;font-weight:650;padding:0 10px 30px}.mark{display:block;width:36px;height:36px;flex-shrink:0}.label{font-size:10px;font-weight:700;letter-spacing:1.8px;color:#8399b1;padding:18px 14px 12px}nav button{display:flex;align-items:center;gap:14px;width:100%;border:0;background:transparent;color:#c2cedb;text-align:left;margin:4px 0;padding:13px}nav button.active{background:#22455b;color:#70e3d4}nav button:hover{background:#203c55}nav span{font-size:20px;width:24px}.sidefoot{margin-top:auto;padding:15px;line-height:1.8;font-size:12px;color:#93a8bc}main{margin-left:230px}header{background:#ffffffc9;border-bottom:1px solid #e2e8ef;padding:20px 36px;display:flex;justify-content:space-between;align-items:center}.crumb{color:#8895a5}.chip{font-size:12px;padding:6px 10px;border-radius:6px;background:#e1f4ee;color:#23846b}.avatar{background:#e9edf5;border-radius:50%;padding:10px;margin-left:18px}article{padding:34px 36px;max-width:1500px;margin:auto}.eyebrow{font-size:11px;color:#7b8c9f;letter-spacing:1.6px;font-weight:700}h1{font-size:30px;letter-spacing:-1px;margin:9px 0}h2{font-size:17px;margin:0 0 8px}p{color:#7a899a;line-height:1.6;margin:8px 0 22px}.row{display:flex;justify-content:space-between;align-items:center;gap:14px}.primary{background:#168b8e;border-color:#168b8e;color:white}.primary:hover{background:#117579}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:26px 0}.card{background:#fff;border:1px solid #e1e7ef;border-radius:12px;padding:23px;box-shadow:0 3px 8px #1a365005}.stat .num{font-size:31px;font-weight:650;margin:12px 0 5px}.muted{color:#8593a3;font-size:12px}.stat small{color:#198a7c}.grid{display:grid;grid-template-columns:1.7fr 1fr;gap:22px}.hero{background:linear-gradient(110deg,#16344e,#245267);color:white;position:relative;overflow:hidden;padding:30px;margin-bottom:23px}.hero p{color:#bed1dd;max-width:74%;margin-bottom:25px}.target{position:absolute;width:200px;height:200px;border-radius:50%;border:23px solid #ffffff0b;right:-35px;top:-15px;box-shadow:0 0 0 30px #ffffff05,inset 0 0 0 25px #ffffff08}.target:after{content:'';position:absolute;inset:47px;background:#60d6ca44;border-radius:50%}.step{padding:17px 0;border-bottom:1px solid #eef1f5;display:flex;gap:14px;align-items:center}.step:last-child{border:0}.step b{display:block;margin-bottom:5px}.step i{background:#e3f4ef;color:#238a77;font-style:normal;border-radius:50%;padding:8px 12px}.toolbar{display:flex;gap:10px;margin:22px 0;flex-wrap:wrap}input,select{border:1px solid #dce4ec;padding:10px 12px;border-radius:7px;background:white;color:#294057}input[type=search]{min-width:260px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{font-size:11px;text-transform:uppercase;letter-spacing:.6px;background:#f8fafc;color:#8291a3;padding:14px}td{padding:14px;border-bottom:1px solid #edf1f6}td small{display:block;color:#8a98a7;margin-top:4px}.name{font-weight:600}.badge{background:#edf3fa;color:#557491;padding:5px 8px;border-radius:5px;font-size:12px}.boards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.board h2{display:flex;justify-content:space-between;margin-bottom:18px}.slot{display:flex;gap:12px;align-items:center;border-top:1px solid #edf1f5;padding:13px 0}.slot em{font-style:normal;color:#19988f;background:#e8f6f3;border-radius:5px;padding:5px 8px}.slot button{margin-left:auto;padding:5px 9px}.empty{color:#a0acb9}.score{width:80px}.progress{height:7px;background:#edf1f5;border-radius:20px;overflow:hidden;margin:16px 0}.progress div{height:100%;background:#23a397}.notice{margin-top:25px;color:#8c99a9;font-size:12px}dialog{border:0;border-radius:14px;padding:28px;width:440px;box-shadow:0 25px 100px #1235}dialog::backdrop{background:#132d4966}dialog label{display:block;margin:15px 0 7px}dialog input,dialog select{width:100%}dialog .row{margin-top:25px}#toast{position:fixed;bottom:26px;right:26px;background:#153e4c;color:white;padding:16px 24px;border-radius:10px;display:none;z-index:10}.printing{display:none}@media(max-width:1000px){aside{width:190px}main{margin-left:190px}article{padding:24px}.grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.boards{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){aside{position:static;width:auto;padding:12px}.brand{padding:0 7px 10px;font-size:20px}.label,.sidefoot{display:none}nav{display:flex;overflow:auto}nav button{width:auto;white-space:nowrap;font-size:12px;padding:9px}nav span{display:none}main{margin:0}header{padding:14px 18px;font-size:12px}article{padding:22px 16px}h1{font-size:25px}.stats{gap:10px}.card{padding:17px}.boards{grid-template-columns:1fr}.row{flex-wrap:wrap}.hero p{max-width:85%}}@media print{aside,header,.toolbar,.notice,button,.noprint{display:none!important}main{margin:0}article{padding:0}.card{border:0;box-shadow:none}.printing{display:block}body{background:white}table{font-size:11px}}

a{color:#178a90}button:disabled{opacity:.5;cursor:wait}.error{background:#fff0ef;color:#a12f29;padding:12px;border-radius:7px;margin:12px 0}.live{background:#e0f4eb;color:#26775d}.offline{background:#fff0db;color:#955500}.filters{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.filters select{min-width:170px}.actions{display:flex;gap:7px}.fieldgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.fieldgrid label{margin:0}.fieldgrid input,.fieldgrid select{margin-top:6px}.audit{font-size:12px;line-height:1.6;padding:12px 0;border-bottom:1px solid #eef2f6}.mobile .brand{font-size:19px}.mobile aside{position:static;width:100%;padding:14px 18px}.mobile aside .brand{padding:0}.mobile aside nav,.mobile aside .sidefoot{display:none}.mobile main{margin:0}.mobile article{max-width:900px}.mobile header{padding:14px 20px}.arrowrow{display:grid;grid-template-columns:55px repeat(3,1fr);gap:8px;align-items:center;margin:9px 0}.arrowrow select{width:100%;margin:0;font-size:18px;padding:11px 4px;text-align:center}.tabs{display:flex;gap:8px;margin:16px 0}.tabs .selected{background:#168b8e;color:white}.mobilecard{border-left:4px solid #25a79b;margin-bottom:14px}.code{font:12px monospace;word-break:break-all;background:#f1f6f8;padding:15px;border-radius:8px}.dialogfooter{position:sticky;bottom:-28px;background:#fff;padding:16px 0 8px;box-shadow:0 -12px 18px #fff}dialog{max-height:92vh;overflow:auto;width:580px}#login{max-width:480px;margin:70px auto}#login input{width:100%}.big{font-size:32px;font-weight:650}.helper{font-size:12px;color:#738499;line-height:1.6}label{font-size:13px}.emptybox{text-align:center;padding:40px;color:#8190a2}@media(max-width:650px){.fieldgrid{grid-template-columns:1fr}.mobile .row{flex-wrap:wrap}dialog{width:95vw;padding:20px}.dialogfooter{bottom:-20px}.filters select{min-width:0;max-width:100%}header .crumb{display:none}.stats{grid-template-columns:1fr 1fr}.mobile article{padding:18px 14px}}@media print{.filters,.actions,#connection{display:none!important}.card{break-inside:avoid}.audit{display:none}}

aside{overflow-y:auto}nav button{padding:9px 12px}.scoresheet{margin:18px 0}.sheetgrid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.scoresheet td{height:30px;padding:6px;border:1px solid #9ba8b2}.scoresheet th{padding:7px}.scoresheet p{color:#20334a}@media(max-width:650px){.sheetgrid{grid-template-columns:1fr}}@media print{.scoresheet{break-after:page;break-inside:avoid;margin:0;padding:8mm}.scoresheet:last-child{break-after:auto}.sheetgrid{grid-template-columns:1fr 1fr}.scoresheet td{height:8mm}.scoresheet th{font-size:9px}article:has(.scoresheet)>.row{display:none}}
.certificate{max-width:760px;min-height:900px;margin:25px auto;background:white;border:8px double #168b8e;padding:65px 35px;text-align:center}.certificate h1{font-size:48px;letter-spacing:8px;margin:40px 0}.certificate h2{font-size:28px;margin:25px 0}.certificate p{color:#294057}.certificate .place{font-size:45px;color:#168b8e;font-weight:bold;margin:35px}.certificate .signature{margin-top:80px}.certificate .draft{color:#a12f29;font-weight:bold}@media print{article:has(.certificate)>.row{display:none}.certificate{width:100%;min-height:250mm;height:250mm;margin:0;break-after:page;break-inside:avoid;padding:20mm 10mm}.certificate:last-child{break-after:auto}}

textarea{width:100%;min-height:80px;font:inherit;padding:10px;border:1px solid #dce4ec;border-radius:7px}fieldset{border:1px solid #dce4ec}dialog input[type=checkbox]{width:auto}article>.card{margin-bottom:18px}.clublogo{max-width:150px;max-height:90px;object-fit:contain}.signatures{display:flex;justify-content:space-evenly;margin-top:60px}.certificate{height:auto;min-height:900px}.certificate h1{letter-spacing:3px;overflow-wrap:anywhere}.finaltree{display:flex;gap:20px;overflow:auto}.finalround{flex:0 0 220px}.matchcard{border:1px solid #dce4ec;border-radius:9px;padding:14px;margin-bottom:18px}.matchcard p{margin:10px 0}.prewrap{white-space:pre-wrap}@media print{.finaltree{display:block;overflow:visible}.finalround{display:block}.final-event{break-before:page}.matchcard{break-inside:avoid}.club-list{break-before:page}.certificate{height:250mm;min-height:250mm}.signatures{margin-top:15mm}article:has(.certificate)>.row{display:none}.toolbar{display:none!important}}

/* Grouped navigation: stable sidebar on desktop, expandable menu on small screens. */
aside{width:264px;padding:22px 14px 12px;overflow:hidden}
main{margin-left:264px}
.brandrow{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-shrink:0}
.brandrow .brand{padding:0 9px 22px;font-size:22px;gap:9px}
#nav-toggle{display:none}
#nav-toggle[hidden]{display:none!important}
#nav{display:block;flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 3px 10px;scrollbar-width:thin;scrollbar-color:#49667b transparent}
#nav button{display:block;width:100%;white-space:normal;text-align:left;line-height:1.35;min-height:40px;padding:10px 12px;font-size:13px;border-radius:8px;margin:3px 0}
#nav>.nav-page{font-size:14px;font-weight:600;margin-bottom:12px}
#nav details{margin:4px 0}
#nav summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;border-radius:8px;min-height:44px;padding:11px 12px;color:#c2cedb;font-size:14px;font-weight:600;line-height:1.3}
#nav summary::-webkit-details-marker{display:none}
#nav summary::after{content:'';display:block;flex:0 0 6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);margin-right:3px}
#nav details[open]>summary::after{transform:rotate(45deg)}
#nav summary:hover{background:#203c55;color:#fff}
#nav summary:focus-visible{outline:3px solid #55b9bf;outline-offset:-3px}
#nav .contains-current>summary{color:#80dfd2}
#nav .nav-section-items{padding-left:8px;margin:2px 0 10px 12px;border-left:1px solid #355267}
#nav .nav-subgroup>summary{font-size:12px;color:#a3b7c7;font-weight:600;min-height:36px;padding:8px 10px}
#nav .nav-items{padding-left:6px}
#nav button.active{background:#224c5b;color:#98f0df;box-shadow:inset 3px 0 #5ed7bf;font-weight:600}
#nav button:hover{background:#203c55}
.sidefoot{flex-shrink:0;padding:12px 10px 0;font-size:11px}
.header-location{min-width:0;line-height:1.5}
#header-tournament{font-size:14px;color:#294057;overflow-wrap:anywhere}
#breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:5px 9px;list-style:none;margin:3px 0 0;padding:0;font-size:12px;color:#738499}
#breadcrumb li+li::before{content:'›';margin-right:9px;color:#9aa9b5}
#breadcrumb [aria-current=page]{color:#168b8e}
@media(max-width:900px){
 aside{position:static;width:auto;padding:12px 16px;overflow:visible}
 main{margin-left:0}
 .brandrow .brand{padding:0;font-size:20px}
 #nav-toggle{display:block;background:#22455b;color:#e6f6f4;border:1px solid #486477;padding:9px 14px;min-height:42px}
 #nav{display:none;flex:none;max-height:65vh;max-height:65dvh;padding:14px 0 0;overflow-y:auto;overflow-x:hidden}
 body.nav-open #nav{display:block}
 #nav button{font-size:14px;min-height:44px}
 #nav summary{min-height:46px}
 .sidefoot{display:none}
 header{padding:14px 18px;gap:12px;align-items:flex-start}
 #connection{flex-shrink:0;font-size:11px}
}
.mobile #nav-toggle,.mobile #nav{display:none!important}
.mobile .brandrow .brand{padding:0}
.mobile main{margin:0}
@media print{main{margin-left:0!important}#breadcrumb{display:none}}

.quick-arrow{width:64px;min-height:46px;font-size:22px;text-align:center;padding:7px}.danger{color:#a12f29;border-color:#e5bdb8}#quickform{max-width:100%}#quickform .tablewrap{margin-bottom:14px}#quickform td{padding:10px}#quickform:focus-within{border-color:#168b8e}@media(max-width:650px){.quick-arrow{width:48px;font-size:19px}#quickform td{padding:7px 3px}#quickform td:first-child{white-space:normal;min-width:105px}#quickform{padding:12px}}

progress{width:min(100%,24rem);height:1rem;accent-color:var(--accent,#487d54);display:block;margin:8px 0}.live-card .step>div{min-width:0}.live-card{margin-bottom:16px}

.arrowrow{display:flex;flex-wrap:wrap}.arrowrow select{flex:1;min-width:3.5rem}.scoresheet table{width:100%}

/* Copyright (c) 2026 Christoph Häusler. */
#copyright{padding:18px 28px;color:var(--muted,#667085);font-size:.8rem;text-align:center}
#accountcontrols{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:.85rem}
#accountcontrols button{padding:6px 10px}
.auth-card{max-width:560px;margin:40px auto}.auth-card form{display:grid;gap:16px}.auth-card details{margin-top:24px}
@media(max-width:700px){header{flex-wrap:wrap;gap:12px}#accountcontrols{width:100%}.auth-card{margin:16px auto}}
@media print{#accountcontrols,#copyright{display:none!important}}
.process-guide{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.process-guide h2{margin-top:12px}.process-phases{width:100%;display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0;font-size:.85rem;color:var(--muted,#667085)}
.process-phases li{border:1px solid var(--border,#ddd);border-radius:8px;padding:6px 10px}
