.loading-state{color:var(--soft-text);padding:1.5rem 0}.competition-header{background:linear-gradient(160deg, var(--light-blue), var(--white) 65%);border:1px solid var(--border);border-radius:1rem;margin-top:1.25rem;padding:1.25rem 1.25rem 1.4rem;box-shadow:0 1px 3px #0f172a0f}.competition-header h1{color:var(--dark-blue);margin:.6rem 0 .85rem;font-size:1.5rem;line-height:1.25}.competition-meta{flex-wrap:wrap;gap:.4rem 1.1rem;font-size:.88rem;display:flex}.sessions{margin-top:1.5rem}.login-panel{background:var(--white);border:1px solid var(--border);border-radius:1rem;margin-top:2.5rem;padding:1.5rem;box-shadow:0 1px 3px #0f172a0f}.login-panel h1{color:var(--dark-blue);text-align:center;margin:0 0 1.25rem;font-size:1.3rem}.submit-btn{background:var(--blue);width:100%;color:var(--white);font:inherit;cursor:pointer;border:none;border-radius:.5rem;padding:.7rem;font-weight:600}.submit-btn:hover{background:var(--dark-blue)}.submit-btn:disabled{opacity:.6;cursor:default}.error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;margin-bottom:1rem;padding:.6rem .75rem;font-size:.9rem}main.wide{max-width:64rem}.dashboard-loading{color:var(--soft-text);padding-top:1.5rem}.dashboard-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 1.5rem;margin-top:2rem;display:flex}.dashboard-user{align-items:center;gap:.9rem;min-width:0;display:flex}.avatar{background:var(--blue);width:3.2rem;height:3.2rem;color:var(--white);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;font-weight:700;display:flex}.dashboard-user h1{color:var(--dark-blue);margin:0;font-size:1.45rem}.dashboard-user p{color:var(--soft-text);margin:.15rem 0 0}.link-btn{font:inherit;color:var(--blue);cursor:pointer;background:0 0;border:none;padding:0}.link-btn:hover{text-decoration:underline}.notice{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.6rem;justify-content:space-between;align-items:center;gap:1rem;margin:1.5rem 0 0;padding:.5rem .5rem .5rem 1rem;display:flex}.notice .icon-btn{color:inherit;background:0 0;border-color:#0000}.header-actions{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.calendar-link{color:var(--dark-blue);align-items:center;gap:.4rem;font-size:.92rem;font-weight:600;text-decoration:none;display:inline-flex}.calendar-link:hover{color:var(--bright-blue)}.calendar-link svg{width:1.1rem;height:1.1rem}.logout-btn{background:var(--white);color:var(--dark-blue);font:inherit;cursor:pointer;border:1px solid #cbd5e1;border-radius:.5rem;padding:.5rem 1rem;font-size:.9rem;font-weight:600}.logout-btn:hover{background:var(--light-blue)}.tabs{scrollbar-width:none;border-bottom:1px solid #cbd5e1;gap:.25rem;margin-top:2rem;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{color:var(--soft-text);white-space:nowrap;border-bottom:3px solid #0000;align-items:center;gap:.5rem;margin-bottom:-1px;padding:.8rem 1rem;font-weight:600;text-decoration:none;display:inline-flex}.tab svg{flex-shrink:0;width:1.2rem;height:1.2rem}.tab:hover{color:var(--dark-blue)}.tab.active{color:var(--dark-blue);border-bottom-color:var(--bright-blue)}.tab:focus-visible{outline:2px solid var(--bright-blue);outline-offset:-2px;border-radius:.3rem}.dashboard-card{background:var(--white);border:1px solid var(--border);border-radius:1rem;margin-top:1.5rem;padding:1.5rem;box-shadow:0 4px 16px #0f172a0f}.section-heading{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.dashboard-card .section-heading h2{margin:0}.dashboard-card>.back-link{margin:0 0 1.25rem}.detail-heading{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:flex-start;margin-bottom:1.5rem;padding-bottom:1.25rem}.detail-heading p{margin:.3rem 0 0;font-size:.9rem}.detail-heading p a{color:var(--blue);font-weight:600}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.75rem;display:grid}.stat-card{border:1px solid var(--border);color:var(--dark-blue);border-radius:.8rem;align-items:center;gap:.5rem;padding:1rem;text-decoration:none;display:flex}.stat-card:hover{background:var(--light-blue)}.stat-card svg{width:1.3rem;height:1.3rem;color:var(--blue)}.stat-value{font-size:1.3rem;font-weight:700}.stat-label{color:var(--soft-text);font-weight:600}.subsection-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.subsection-heading h3{color:var(--dark-blue);margin:0;font-size:1.05rem}.item-list li.is-link{color:var(--soft-text);padding:0 .9rem 0 0}.item-list li.is-link>svg{flex-shrink:0;width:1.1rem;height:1.1rem}.item-list li.is-link .item-main{color:var(--text);padding:.65rem .9rem;text-decoration:none}.item-list li.is-link:hover{background:var(--light-blue)}.item-list li.is-link:hover .item-title{color:var(--blue)}.section-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-bottom:1.25rem;display:flex}.section-toolbar .search-box{box-shadow:none;border-color:#cbd5e1;flex:16rem}.section-toolbar select{flex:0 14rem;width:auto}.dashboard-card h2{color:var(--dark-blue);margin:0 0 .5rem;font-size:1.25rem}.dashboard-card>h2+p,.dashboard-card>p:only-child{color:var(--soft-text);margin:0}:root{--blue:#1d4ed8;--dark-blue:#1e3a8a;--bright-blue:#2563eb;--light-blue:#eff6ff;--border:#dbeafe;--text:#0f172a;--soft-text:#475569;--white:#fff;--background:#eef2f9;--amber-background:#fef3c7;--amber-text:#92400e}*{box-sizing:border-box}body{color:var(--text);background:var(--background);margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif}header{background:linear-gradient(135deg, var(--bright-blue), var(--dark-blue));color:var(--white);align-items:center;gap:.65rem;padding:1rem 1.25rem;display:flex;box-shadow:0 2px 10px #1e3a8a40}header a{color:inherit;align-items:center;gap:.65rem;text-decoration:none;display:flex}header .brand{background:var(--white);width:2.1rem;height:2.1rem;color:var(--blue);border-radius:.6rem;flex-shrink:0;justify-content:center;align-items:center;display:flex}header .brand img{width:1.3rem;height:1.3rem;display:block}header strong{letter-spacing:.01em;font-size:1.15rem;font-weight:700}header .access-link{border:1px solid #ffffff80;border-radius:.5rem;flex-shrink:0;margin-left:auto;padding:.35rem .8rem;font-size:.85rem;font-weight:600}header .access-link:hover{background:#ffffff26}main{max-width:36rem;margin:0 auto;padding:0 1.25rem 3rem}.hero{text-align:center;padding:2.75rem 0 1.5rem}.hero h1{color:var(--dark-blue);margin:0 0 .6rem;font-size:1.6rem}.logo-hero{border-radius:1rem;width:100%;max-width:30rem;height:auto;margin:0 auto 1.25rem;display:block;box-shadow:0 8px 24px #0f172a14}.hero p{color:var(--soft-text);margin:0;line-height:1.5}section{margin-top:2rem}section h2{text-transform:uppercase;letter-spacing:.04em;color:var(--blue);margin:0 0 .75rem;font-size:1rem}.cards{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.cards li{border:1px solid var(--border);background:var(--white);border-radius:.7rem;align-items:center;gap:.5rem;padding:0;transition:transform .12s,box-shadow .12s,border-color .12s;display:flex;box-shadow:0 1px 3px #0f172a0f}:is(.cards li:has(a.competition-link:hover),.cards li:has(a.competition-link:focus-visible)){border-color:var(--bright-blue);transform:translateY(-1px);box-shadow:0 4px 14px #2563eb29}.cards a:focus-visible{outline:2px solid var(--bright-blue);outline-offset:2px;border-radius:.3rem}.cards a{color:inherit;text-decoration:none;display:block}.cards a.competition-link{flex:auto;min-width:0;padding:.9rem 1rem}.empty,.error{color:var(--soft-text);font-weight:400}.error{color:#b91c1c}.cards li.empty,.cards li.error{background:var(--white);padding:.9rem 1rem}.cards li.error{border-color:#fecaca}.panel{background:var(--white);border:1px solid var(--border);border-radius:.9rem;margin-bottom:1.25rem;overflow:hidden;box-shadow:0 1px 3px #0f172a0f}.panel-header{background:var(--light-blue);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;padding:.85rem 1rem;display:flex}.panel-header h2{color:var(--dark-blue);text-transform:none;letter-spacing:normal;margin:0;font-size:.95rem;font-weight:700}.panel-header .meta-item{font-size:.8rem}.rows{margin:0;padding:0;list-style:none}.rows li{border-bottom:1px solid var(--border);padding:.55rem .9rem}.rows li:last-child{border-bottom:none}.rows li:nth-child(2n){background:#f8fafc}.rows li.empty,.rows li.error{padding:.9rem 1rem}.rows li:not(.empty):not(.error):hover{background:var(--light-blue)}.search-container{z-index:5;background:var(--background);padding:1rem 0 .75rem;position:sticky;top:0}.search-box{background:var(--white);border:1px solid var(--border);border-radius:999px;align-items:center;gap:.5rem;padding:.6rem 1rem;display:flex;box-shadow:0 1px 3px #0f172a0f}.search-box svg{width:1.1rem;height:1.1rem;color:var(--soft-text);flex-shrink:0}.search-box input{min-width:0;font:inherit;color:var(--text);background:0 0;border:none;outline:none;flex:auto}.search-box input::placeholder{color:var(--soft-text)}.meta-item{color:var(--soft-text);align-items:center;gap:.35rem;display:inline-flex}.meta-item svg{width:1rem;height:1rem;color:var(--blue);flex-shrink:0}a.meta-item{text-decoration:none}a.meta-item:hover,a.meta-item:focus-visible{text-decoration:underline}.type-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;align-items:center;padding:.2rem .55rem;font-size:.72rem;font-weight:700;display:inline-flex}.type-badge.league{background:var(--blue);color:var(--white)}.type-badge.tournament{background:var(--amber-background);color:var(--amber-text)}.row-header{flex-wrap:wrap;align-items:baseline;gap:.5rem;display:flex}.row-position{color:var(--blue);font-variant-numeric:tabular-nums;min-width:1.4rem;font-weight:700}.row-time{font-variant-numeric:tabular-nums;min-width:3rem;font-weight:700}.row-name{flex:auto;min-width:7rem;font-weight:600}.row-header .badge{margin-left:0}.row-details{color:var(--soft-text);margin-top:.1rem;font-size:.8rem;display:block}.competition-name{font-weight:600;display:block}.competition-name .type-badge{vertical-align:middle;margin-left:.4rem}.competition-details{color:var(--soft-text);margin-top:.2rem;font-size:.85rem;display:block}.badge{text-transform:uppercase;letter-spacing:.03em;color:var(--blue);background:var(--white);border:1px solid var(--border);border-radius:.3rem;margin-left:.4rem;padding:.1rem .4rem;font-size:.7rem;font-weight:600;display:inline-block}.back-link{color:var(--blue);align-items:center;gap:.3rem;margin-top:1.25rem;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex}.back-link:hover,.back-link:focus-visible{text-decoration:underline}.back-link svg{width:1rem;height:1rem}.field{flex:12rem;min-width:0;margin-bottom:1rem}.field label{color:var(--soft-text);margin-bottom:.35rem;font-size:.85rem;font-weight:600;display:block}.field .optional{font-weight:400}.field input,.field select,.section-toolbar select{width:100%;font:inherit;color:var(--text);background:var(--white);border:1px solid #cbd5e1;border-radius:.5rem;padding:.6rem .75rem}.field input:focus,.field select:focus,.section-toolbar select:focus{outline:2px solid var(--bright-blue);outline-offset:1px}.field-hint{color:var(--soft-text);margin:.35rem 0 0;font-size:.8rem}.field input.read-only{color:var(--soft-text);background:#f1f5f9}.field input.read-only:focus{outline:none}.field-row{flex-wrap:wrap;gap:0 1rem;display:flex}.form-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;margin:0 0 1rem;padding:.6rem .75rem;font-size:.9rem}.form-actions{flex-wrap:wrap;justify-content:flex-end;gap:.6rem;margin-top:.5rem;display:flex}.form-actions-start{align-items:center;margin-right:auto;display:flex}.checkbox{color:var(--soft-text);cursor:pointer;white-space:nowrap;align-items:center;gap:.4rem;font-size:.9rem;display:inline-flex}.checkbox input{width:1rem;height:1rem;accent-color:var(--blue)}.member-picker{border:none;min-width:0;margin:0 0 1rem;padding:0}.member-picker legend{color:var(--soft-text);margin-bottom:.5rem;padding:0;font-size:.85rem;font-weight:600}.member-picker-toolbar{flex-wrap:wrap;gap:.5rem;margin-bottom:.6rem;display:flex}.member-picker-toolbar .search-box{box-shadow:none;border-color:#cbd5e1;flex:12rem;padding:.45rem .9rem}.member-list{border:1px solid var(--border);border-radius:.6rem;max-height:16rem;margin:0;padding:0;list-style:none;overflow-y:auto}.member-list li+li{border-top:1px solid var(--border)}.member-list label{cursor:pointer;align-items:center;gap:.6rem;padding:.55rem .75rem;display:flex}.member-list label:hover{background:#f8fafc}.member-list label.is-selected{background:var(--light-blue)}.member-list input{width:1.05rem;height:1.05rem;accent-color:var(--blue);flex-shrink:0}.member-list span:first-of-type{flex:auto;min-width:0}.member-year{color:var(--soft-text);font-variant-numeric:tabular-nums;font-size:.82rem}.btn{font:inherit;cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:.5rem;justify-content:center;align-items:center;gap:.4rem;padding:.55rem 1rem;font-size:.9rem;font-weight:600;display:inline-flex}.btn svg{width:1.1rem;height:1.1rem}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--blue);color:var(--white)}.btn-primary:hover:not(:disabled){background:var(--dark-blue)}.btn-secondary{background:var(--white);color:var(--dark-blue);border-color:#cbd5e1}.btn-secondary:hover{background:var(--light-blue)}.icon-btn{background:var(--white);width:2.2rem;height:2.2rem;color:var(--dark-blue);cursor:pointer;border:1px solid #cbd5e1;border-radius:.5rem;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon-btn svg{width:1.05rem;height:1.05rem}.icon-btn:hover{background:var(--light-blue)}.btn-text{font:inherit;color:var(--soft-text);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:.4rem .3rem;font-size:.85rem;font-weight:600}.btn-text:hover{color:var(--dark-blue);text-decoration:underline}.btn-text.danger{color:#b91c1c}.btn-text.danger:hover{color:#7f1d1d}.modal{width:min(32rem,100vw - 2rem);color:var(--text);border:none;border-radius:1rem;padding:1.5rem;box-shadow:0 20px 50px #0f172a40}.modal::backdrop{background:#0f172a73}.modal-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.modal-header h2{color:var(--dark-blue);margin:0;font-size:1.2rem}.modal-header .icon-btn{border-color:#0000}.muted{color:var(--soft-text)}.list-count{margin:0 0 .5rem;font-size:.85rem}.item-list{border:1px solid var(--border);border-radius:.7rem;margin:0;padding:0;list-style:none;overflow:hidden}.item-list li{border-bottom:1px solid var(--border);align-items:center;gap:.75rem;padding:.65rem .9rem;display:flex}.item-list li:last-child{border-bottom:none}.item-list li:hover{background:#f8fafc}.item-list li.is-inactive .item-title{color:var(--soft-text)}.item-main{flex:auto;min-width:0}.item-title{font-weight:600;display:block}.item-meta{color:var(--soft-text);margin-top:.1rem;font-size:.82rem;display:block}.item-actions{flex-shrink:0;align-items:center;gap:.35rem;display:flex}.not-found{text-align:center;padding:3rem 0 1rem}.not-found h1{color:var(--dark-blue);margin:0 0 .5rem;font-size:1.4rem}.not-found p{color:var(--soft-text);margin:0 0 1.25rem}.not-found a{color:var(--blue);font-weight:600}footer{text-align:center;color:var(--soft-text);padding:1.5rem 1.25rem;font-size:.85rem}
