:root{--ui-dark:#0B1A3D;--ui-accent:#2350E8;--ui-bg:#F2F4F9;--ui-muted:#475569;--ui-line:#e2e8f0;--ui-radius:12px}
body{font-size:16px;line-height:1.5}
.project-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.project-actions p{flex:1;min-width:200px;margin:0;font-size:.875rem;color:#475569}
.project-actions>div{display:flex;gap:8px;flex-wrap:wrap}
.ui-icon{width:20px;height:20px;display:inline-block;vertical-align:middle;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
button{min-height:44px;line-height:1.3}
button:not(.account-button){border-radius:8px}
.btn-primary,.primary{background:var(--ui-accent);padding:12px 20px;font-size:1rem;font-weight:650}
.btn-primary:hover,.primary:hover{background:#1A3BB0}
.input{min-height:44px;font-size:1rem}
.stepper button{min-width:44px;min-height:44px}
.stepper input{font-size:1rem}
.app-header,.brand{height:72px;padding:10px 20px;background:var(--ui-dark)}
.app-header h1,.brand h1{font-size:1.25rem;font-weight:750;letter-spacing:-.02em}
.app-header p,.brand p{font-size:.875rem;letter-spacing:.02em}
.account-button img,.brand img{width:44px;height:44px}
.app-nav button{font-size:.875rem;min-height:56px}
.app-nav .nav-icon{display:inline-flex;align-items:center;vertical-align:middle}
.tab-active{background:#EEF2FF!important;color:#1A3BB0!important}
main{padding-top:28px!important}
h2{line-height:1.3}
.card,.panel{border-radius:var(--ui-radius);box-shadow:0 2px 8px rgba(11,26,61,.045)}
.panel{padding:28px}
.panel h2{font-size:1.5rem}
.panel p,.fine{color:var(--ui-muted)}
.panel label{font-size:.875rem}
.fine,.message,.links{font-size:.875rem}
.progress-step{display:flex;flex-direction:column;align-items:center;gap:8px;border:0;background:none;color:#475569;font:600 .875rem var(--font);padding:4px;min-width:76px}
.progress-number{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#e2e8f0}
.progress-step.current{color:#1A3BB0}
.progress-step.current .progress-number{background:var(--ui-accent);color:white;box-shadow:0 0 0 4px #DDE5FF}
.progress-step.completed .progress-number{background:#0B1A3D;color:white}
.progress-line{flex:1;height:2px;background:#e2e8f0;margin-bottom:27px}
.progress-line.completed{background:#0B1A3D}
.sport-header{display:flex;align-items:center;gap:12px}
.sport-header>.input{flex:1;min-width:0!important}
.sport-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:8px}
.sport-setting{display:flex;flex-direction:column;align-items:flex-start;gap:6px;color:#475569;font-size:.875rem}
.sport-setting .stepper{max-width:100%}
.sport-setting .stepper button{border-radius:0}
.field-labels{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px}
.field-labels label{display:flex;flex-direction:column;gap:4px;font-size:.875rem;color:#475569}
.field-labels .input{width:140px}
.sport-help{margin:0 0 20px;color:#475569}
.advanced-options{margin-top:24px;border:1px solid var(--ui-line);border-radius:12px;padding:16px}
.advanced-options summary{cursor:pointer;font-weight:650;color:var(--ui-dark);min-height:28px}
.advanced-options[open] summary{margin-bottom:16px}
.results-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}
.summary-item{padding:16px 20px;background:white;border:1px solid var(--ui-line);border-radius:12px}
.summary-item dt{font-size:.875rem;color:#475569}
.summary-item dd{margin:4px 0 0;font-size:1.5rem;font-weight:750;color:var(--ui-dark)}
.summary-item:last-child dd{font-size:1.125rem;padding-top:4px}
.table-scroll{max-height:65vh;overflow:auto;isolation:isolate}
.schema-table thead th{position:sticky;top:0;z-index:3;background:#0B1A3D;font-size:.875rem;text-transform:none;letter-spacing:0}
.schema-table thead th:first-child{z-index:4;background:#0B1A3D}
.schema-table td{border-bottom:1px solid #cbd5e1;padding:12px!important;font-size:.875rem!important}
table.grid th{background:#0B1A3D;text-transform:none;font-size:.875rem;letter-spacing:0}
table.grid td{padding:12px}
.schema-legend{display:flex;gap:16px;flex-wrap:wrap;margin:0 0 16px;font-size:.875rem;color:#475569}
.legend-key{display:inline-flex;align-items:center;gap:6px}
.legend-dot{width:12px;height:12px;border-radius:3px;border:1px solid currentColor;background:#EEF2FF;color:#1A3BB0}
.legend-dot.special{background:#FFF1EC;color:#A8361A}
.legend-dot.activity{background:#ecfdf5;color:#047857}
.empty-state{padding:40px 24px;text-align:center;color:#475569}
.empty-state>.ui-icon{width:40px;height:40px;color:#0B1A3D;margin-bottom:12px}
.empty-state h3{font-size:1.25rem;color:#0B1A3D;margin:0 0 8px}
.empty-state p{margin:0 0 20px}
.loading-overlay{position:fixed;inset:0;background:rgba(11,26,61,.35);backdrop-filter:blur(3px);z-index:9998;align-items:center;justify-content:center;padding:20px}
.loading-panel{width:min(420px,100%);padding:32px;background:white;border-radius:16px;box-shadow:0 12px 48px #0B1A3D33;text-align:center;color:#0B1A3D}
.loading-panel h2{margin:16px 0 8px;font-size:1.375rem}
.loading-panel p{margin:0;color:#475569}
.loading-spinner{width:36px;height:36px;margin:auto;border:3px solid #e2e8f0;border-top-color:#2350E8;border-radius:50%;animation:ui-spin 1s linear infinite}
@keyframes ui-spin{to{transform:rotate(360deg)}}
.score-input,.sport-input{width:56px;height:44px;font-size:1rem}
.score-time{color:#0B1A3D!important;font-size:1rem!important}
.match-time{display:block;color:#475569;font-size:.875rem;margin-top:6px}
.score-table .sport-tag{background:#f1f5f9!important;color:#0B1A3D!important;font-size:.875rem!important;padding:4px 8px!important}
.score-table .sport-input{background:#f8fafc;border-color:#cbd5e1}
.secondary-button{background:#fff!important;color:#475569!important;border:1px solid #cbd5e1!important;padding:10px 16px!important;font-size:.875rem!important;font-weight:600!important}
.quiet-button{background:#f8fafc!important;color:#0B1A3D!important;border:1px solid #cbd5e1!important;padding:10px 16px!important;font-size:.875rem!important;font-weight:600!important}
.delete-button{background:#fff!important;color:#b42318!important;border:1px solid #fecaca!important;min-width:44px}
.section-tab{padding:10px 16px!important;font-size:.875rem!important;border:1px solid #e2e8f0!important;background:#fff!important;color:#475569!important;box-shadow:none!important}
.section-tab.selected{background:#edf3f4!important;border-color:#0B1A3D!important;color:#0B1A3D!important}
.export-action{background:#f1f5f9!important;color:#0B1A3D!important;font-weight:650}
.link{min-height:44px;padding:8px 0}
.add-button{padding:12px 16px!important;border:1px dashed #94a3b8!important;background:#f8fafc!important;color:#475569!important;font-size:.875rem!important;font-weight:600!important}
.db-row{gap:12px;flex-wrap:wrap}
.db-row>div:last-child{flex-wrap:wrap}
.btn-primary:disabled,.primary:disabled{opacity:.6;cursor:wait}
.score-table th{white-space:normal}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,.table-scroll:focus-visible{outline:3px solid #1A3BB0;outline-offset:3px}
button:hover{filter:brightness(.98)}
@media(max-width:760px){
 .sport-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .sport-header>span:first-child{display:none}
 .results-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
 .score-table{min-width:0!important}
 .score-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .score-table tbody{display:block;padding:8px 16px}
 .score-table tbody tr{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px;margin-bottom:12px;border:1px solid #e2e8f0!important;border-radius:12px;background:#fff}
 .score-table td{display:flex;flex-direction:column;align-items:center;padding:0!important;min-width:0}
 .score-table .match-field{grid-column:1/-1;align-items:flex-start}
 .score-table .team-a{grid-column:1;grid-row:2;text-align:center!important}
 .score-table .team-b{grid-column:2;grid-row:2;text-align:center!important}
 .score-table .score-a{grid-column:1;grid-row:3}
 .score-table .score-b{grid-column:2;grid-row:3}
 .score-table .score-divider{display:none}
 .score-table .sport-a{grid-column:1;grid-row:4}
 .score-table .sport-b{grid-column:2;grid-row:4}
 .score-table td[data-label]::before{content:attr(data-label);font-size:.875rem;color:#475569;margin-bottom:4px}
 .score-table .score-input,.score-table .sport-input{width:80px;height:48px}
}
@media(max-width:640px){
 .app-header,.brand{height:calc(72px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 14px 0}
 .app-header h1,.brand h1{font-size:1.125rem}
 .app-nav button{font-size:.875rem;min-height:64px;padding:8px 2px}
 .app-nav .nav-icon{display:flex;justify-content:center;margin-bottom:5px}
 .app-nav .ui-icon{width:18px;height:18px}
 .app-nav .nav-label-short{font-size:.875rem}
 .progress-step{min-width:68px;font-size:.875rem}
 .summary-item{padding:12px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.loading-spinner{border-color:#2350E8}}
@media(max-width:380px){.sport-controls{grid-template-columns:1fr}.sport-setting{flex-direction:row;align-items:center;justify-content:space-between}.sport-setting>span{flex:1;min-width:0}.sport-setting .stepper{flex-shrink:0}.links{flex-wrap:wrap}}
