:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#1a1a1a;background:#e9edf2;line-height:1.5;font-weight:400}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#e9edf2}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}#app{min-height:100vh}.page-shell{max-width:1600px;margin:0 auto;padding:28px 20px 48px}.hero,.auth-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.9fr);gap:24px;align-items:stretch}.hero-copy,.auth-form,.dashboard-panel{min-width:0;background:#fff;border:1px solid #b8c4d0;border-radius:4px;padding:22px;box-shadow:none}.hero-copy,.auth-copy{padding:16px 0}.hero-copy h1,.auth-copy h1,.dashboard-header h1{margin:0 0 12px;font-size:clamp(2rem,4vw,3.5rem)}.eyebrow{margin:0 0 12px;font-size:.85rem;font-weight:700;text-transform:uppercase;color:#0d4f8b}.lead{margin:0;max-width:60ch;color:#47576a}.actions{display:flex;gap:12px;margin-top:24px}.button-group{display:flex;flex-wrap:wrap;gap:10px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:3px;border:1px solid #7f96ac;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease;font-weight:700}.button:disabled{cursor:wait;opacity:.7}.button-primary{background:#0d4f8b;color:#fff;border-color:#083c69}.button-primary:hover{background:#083c69}.button-secondary{background:#f5f7f9;color:#1a1a1a;border-color:#aab7c4}.link-button{display:inline-grid;gap:2px;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.link-button:hover strong{color:#0d4f8b;text-decoration:underline}.loading-overlay{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:#e9edf2ad;-webkit-backdrop-filter:grayscale(1);backdrop-filter:grayscale(1)}.loading-overlay-box{display:inline-flex;align-items:center;gap:12px;min-height:58px;padding:0 18px;border:1px solid #9fb0c2;border-radius:4px;background:#fff;color:#173d5e}.loading-spinner{width:26px;height:26px;border:3px solid #d4dee8;border-top-color:#0d4f8b;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hero-list{display:grid;gap:14px;list-style:none;margin:0;padding:0}.hero-panel{padding:14px 16px;border-radius:4px;background:#fff;border:1px solid #b8c4d0;font-weight:600;box-shadow:none}.auth-form{display:grid;gap:18px}.auth-form label{display:grid;gap:8px;font-weight:600}.auth-form input{min-height:46px;padding:0 14px;border:1px solid #aab7c4;border-radius:3px;background:#fff}select,textarea{border:1px solid #aab7c4;border-radius:3px;background:#fff}.error-message{margin:0;color:#9f1f1f;font-weight:600}.success-message{margin:0;color:#17633a;font-weight:600}.dashboard-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:18px;padding:16px 18px;border:1px solid #0a4a80;border-radius:4px;background:linear-gradient(180deg,#0e548f,#0a4677);color:#fff}.dashboard-header .eyebrow,.dashboard-header .lead{color:#ffffffe0}.dashboard-header h1{color:#fff}.dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.dashboard-panel h2{margin-top:0;margin-bottom:12px;font-size:1.125rem}.dashboard-panel p{margin:0;color:#47576a}.rankings-layout{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:24px;align-items:start}.admin-section-menu,.public-section-menu{display:grid;gap:14px;margin-bottom:18px}.admin-section-menu-header{margin-bottom:0;padding-bottom:0;border-bottom:0}.admin-menu-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.public-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-menu-button{display:grid;gap:6px;min-height:84px;padding:14px 16px;border:1px solid #b8c4d0;border-radius:3px;background:#f8fafc;text-align:left;cursor:pointer}.admin-menu-button strong{font-size:.95rem}.admin-menu-button span{color:#58697b;font-size:.86rem;line-height:1.35}.admin-menu-button.active{border-color:#0d4f8b;background:#eef4fb}.rankings-main{display:grid;gap:18px;align-content:start;align-self:start;min-width:0}.rankings-sidebar{align-self:start;min-width:0}.panel-header{margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid #d0d8e0}.panel-header h2{margin:0 0 8px;font-size:1.125rem}.panel-header p{margin:0;color:#4e6175}.ranking-list,.catalog-list{display:grid;gap:8px;list-style:none;margin:0;padding:0}.catalog-list-item{display:grid;gap:4px;padding:10px 12px;border:1px solid #c3ced8;border-radius:3px;background:#f8fafc}.catalog-list-item span{color:#5a6b7d;font-size:.92rem}.ranking-list-button{width:100%;display:grid;gap:4px;text-align:left;padding:10px 12px;border:1px solid #c3ced8;border-radius:3px;background:#f8fafc;cursor:pointer}.ranking-list-button span{color:#5a6b7d;font-size:.9rem}.ranking-list-button.active{border-color:#0d4f8b;background:#e8f0f7}.ranking-form,.field-group,.field-grid{display:grid;gap:16px}.field-grid label,.ranking-form label{display:grid;gap:8px;font-weight:600}.field-grid input,.field-grid select,.field-grid textarea,.ranking-form input,.ranking-form select,.ranking-form textarea{min-height:44px;padding:8px 10px}.field-grid select{width:100%}.field-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.field-grid-1{grid-template-columns:1fr}.info-tile{display:grid;gap:4px;padding:10px 12px;border:1px solid #c3ced8;border-radius:3px;background:#f8fafc}.info-tile strong{font-size:.9rem}.info-tile span{color:#4e6175}.status-stack{display:grid;gap:6px;justify-items:start}.status-stack-inline{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center}.status-badge{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border:1px solid #b8c4d0;border-radius:3px;font-size:.84rem;font-weight:700;background:#f3f6f8}.status-ok{border-color:#7ba274;background:#edf7eb;color:#1d5b1d}.status-off{border-color:#c98c8c;background:#fff0f0;color:#8c2525}.status-neutral{border-color:#b8c4d0;background:#f3f6f8;color:#45576a}.check-list{display:grid;gap:8px;list-style:none;margin:0;padding:0}.check-list li{display:grid;gap:2px}.check-ok strong{color:#1d5b1d}.check-fail strong{color:#8c2525}.selection-item-stacked{display:grid;gap:14px;align-items:start}.selection-item-grid{width:100%;align-items:start}.compact-field-group{gap:8px;min-width:0}.wrapped-checkbox-row{flex-wrap:wrap}.selection-item-header{display:flex;align-items:start;justify-content:space-between;gap:12px}.selection-item-header .button{flex:0 0 auto}.dataset-role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,max-content));gap:10px 18px;align-items:start}.dataset-role-grid .inline-checkbox{align-items:start}.dataset-visibility-toggle{align-self:end}.field-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.field-group-title{margin:0;font-weight:700;color:#234561}.field-hint{margin:0;color:#5a6b7d;font-size:.94rem}.checkbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.checkbox-card{display:flex;gap:8px;align-items:flex-start;padding:8px 9px;border:1px solid #c5d0da;border-radius:3px;background:#f7f9fb;font-weight:500}.checkbox-card input,.inline-checkbox input{width:14px;height:14px;min-height:14px;margin:2px 0 0;padding:0;flex:0 0 auto;accent-color:#0d4f8b}.checkbox-card.competition-card{display:grid;grid-template-columns:14px minmax(0,1fr);gap:10px;align-items:start}.checkbox-card.competition-card>input{margin-top:4px}.competition-card-copy,.selection-item-copy{display:grid;gap:6px;min-width:0;overflow-wrap:anywhere}.competition-card-copy strong,.selection-item-copy strong{display:block;font-size:.98rem;line-height:1.3}.competition-card-meta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}.competition-date-badge{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border:1px solid #c7d3df;border-radius:999px;background:#eef4f9;color:#234561;font-size:.78rem;font-weight:700}.competition-card-subtext,.selection-subtext{color:#58697b;font-size:.88rem;line-height:1.35}.competition-tag-list{display:flex;flex-wrap:wrap;gap:6px}.competition-tag-chip{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border:1px solid #d5dfe8;border-radius:999px;background:#fff;color:#4a6076;font-size:.8rem;line-height:1.2}.dataset-competition-grid{align-content:start}.dataset-competition-card{width:100%;padding:10px 12px;box-sizing:border-box}.checkbox-row{display:flex;flex-wrap:wrap;gap:18px}.subsection-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.inline-checkbox{display:inline-flex;align-items:center;gap:10px;font-weight:600}.compact-checkbox{min-height:0}.competition-grid,.competition-scroll-area{max-height:18rem;overflow-y:auto;padding-right:4px;scrollbar-gutter:stable}.selection-list{display:grid;gap:8px}.selection-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:9px 11px;border:1px solid #c5cfda;border-radius:3px;background:#fbfcfd}.selection-item .button{min-height:36px;padding:0 12px}.subranking-card,.subranking-result,.ranking-meta{display:grid;gap:14px;padding:14px;border:1px solid #c5cfda;border-radius:3px;background:#fbfcfd}.ranking-meta summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;font-weight:700}.summary-count{color:#5a6b7d;font-size:.86rem;font-weight:600}.form-error{margin:-6px 0 0;color:#a12424;font-size:.92rem;font-weight:600}.ranking-results-table{overflow-x:auto;border:1px solid #c5cfda}.ranking-results-table table{width:100%;border-collapse:collapse}.ranking-results-table th,.ranking-results-table td{padding:10px 12px;border-bottom:1px solid #d2d9e0;text-align:left;vertical-align:top}.ranking-results-table th{font-size:.85rem;text-transform:uppercase;color:#244663;background:#eff4f8}.table-row-selected{background:#f2f7fc}.table-subline{margin-top:4px;color:#58697b;font-size:.9rem}.contribution-list{display:grid;gap:4px;color:#425669;font-size:.92rem}.athlete-detail-toggle span{color:#0d4f8b;font-size:.82rem;font-weight:700}.profile-row-detail>td{background:#fbfcfd}.profile-row-detail-grid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) minmax(220px,1fr);gap:12px}.profile-row-detail-card{display:grid;gap:8px;min-width:0;padding:12px;border:1px solid #d5dfe8;border-radius:3px;background:#fff}.profile-row-detail-card p{margin:0;color:#4e6175}.representation-overview-stack,.overview-profile-list,.overview-athlete-list{display:grid;gap:12px}.representation-profile-header,.overview-year-header,.overview-profile-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.representation-profile-header{margin-bottom:18px}.representation-summary-panel{background:#fbfcfd}.overview-year-group{background:#fff}.representation-overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;align-items:start}.overview-category-card{display:grid;gap:12px;padding:12px;border:1px solid #c5cfda;border-radius:3px;background:#fbfcfd;align-content:start}.overview-title-stack{display:grid;gap:3px;min-width:0}.overview-title-stack>span{color:#58697b;font-size:.88rem}.overview-category-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.overview-stat{display:grid;gap:1px;min-width:0;padding:7px 8px;border:1px solid #d5dfe8;border-radius:3px;background:#fff}.overview-stat strong{color:#173d5e;font-size:1rem;line-height:1.1}.overview-stat span{color:#607184;font-size:.76rem;text-transform:uppercase}.overview-profile-row{display:grid;gap:10px;padding:10px;border:1px solid #d3dde6;border-radius:3px;background:#fff}.overview-profile-row.active{border-color:#0d4f8b;background:#eef4fb}.overview-profile-copy{display:grid;gap:4px;min-width:0}.overview-detail-button{min-height:34px;padding:0 11px;flex:0 0 auto}.overview-detail-button.active{border-color:#0d4f8b;background:#dceaf6;color:#173d5e}.overview-athlete-list{list-style:none;margin:0;padding:0}.overview-athlete-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding-top:9px;border-top:1px solid #e1e7ee}.overview-athlete-row:first-child{padding-top:0;border-top:0}.overview-athlete-row div{display:grid;gap:2px;min-width:0}.overview-athlete-row span{color:#5a6b7d;font-size:.88rem;line-height:1.35}.overview-athlete-score{white-space:nowrap;color:#173d5e}.overview-empty-state{display:grid;gap:3px;padding:10px 12px;border:1px dashed #c3ced8;border-radius:3px;background:#fff;color:#58697b}.overview-empty-state strong{color:#33485c}.overview-empty-state span{font-size:.9rem}.representation-view-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ranking-matrix-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}.representation-ranking-scroll{width:100%;min-width:0;max-height:min(80vh,900px);max-width:100%;overflow:auto;border:1px solid #c5cfda;scrollbar-gutter:stable}.representation-ranking-table{min-width:max-content;border-collapse:separate;border-spacing:0;background:#fff}.representation-ranking-table th,.representation-ranking-table td{min-width:74px;padding:8px 9px;border-right:1px solid #d5dde6;border-bottom:1px solid #d5dde6;text-align:right;vertical-align:bottom;white-space:nowrap}.representation-ranking-table th{position:sticky;top:0;z-index:3;height:172px;background:#eff4f8;color:#244663;font-size:.8rem;font-weight:700}.representation-ranking-table tbody td{font-size:.9rem}.rank-sticky{position:sticky;z-index:2;background:#fff}.representation-ranking-table thead .rank-sticky{z-index:6;background:#eff4f8}.representation-ranking-table .table-row-selected .rank-sticky{background:#f2f7fc}.representation-ranking-table .rank-col-position{left:0;min-width:52px;width:52px;text-align:center}.representation-ranking-table .rank-col-athlete{left:52px;min-width:230px;width:230px;text-align:left}.representation-ranking-table .rank-col-average{left:282px;min-width:96px;width:96px;color:#0047d9}.rank-col-athlete strong,.rank-col-athlete span{display:block}.rank-col-athlete strong{font-size:.98rem}.rank-col-athlete span{color:#5a6b7d;font-size:.82rem}.rank-starts-column,.rank-starts-cell{min-width:54px;width:54px;max-width:54px;text-align:center}.rank-competition-column{min-width:68px;width:68px;max-width:68px;padding:6px 4px}.rank-vertical-column>span{display:block;writing-mode:vertical-rl;transform:rotate(180deg);text-align:left}.rank-competition-date{color:#3a536a;font-size:.72rem;font-weight:700}.rank-competition-name{max-height:136px;overflow:hidden;text-overflow:ellipsis}.rank-score-counted{color:#d01818;font-weight:800}.rank-score-list{display:grid;gap:3px;justify-items:end}.rank-score-empty{color:#a0acb8}@media(max-width:900px){.hero,.auth-layout,.dashboard-grid,.admin-menu-grid,.public-mode-grid,.representation-overview-grid,.rankings-layout,.field-grid-2,.field-grid-3,.checkbox-grid{grid-template-columns:1fr}.dashboard-header{flex-direction:column;align-items:stretch}.selection-item,.representation-profile-header,.overview-year-header,.overview-profile-header{flex-direction:column}.status-stack-inline{justify-content:flex-start}.ranking-matrix-meta{grid-template-columns:1fr}.selection-item-header{flex-direction:column}.dataset-role-grid,.profile-row-detail-grid{grid-template-columns:1fr}}
