/* Football identity: readable humanist type, pitch greens and referee accents. */
:root{--ink:#eef8f1;--muted:#b6ccbf;--blue:#c5f76a;--line:#34574a;--paper:#10291fee;--bg:#061510}
body{font-family:'Trebuchet MS','Avenir Next','Segoe UI',sans-serif;background:radial-gradient(ellipse at 90% 0%,#56702130,transparent 45%),radial-gradient(ellipse at 0% 55%,#15835722,transparent 45%),#061510}
body:before{background-image:repeating-linear-gradient(90deg,transparent 0 105px,#ffffff02 105px 210px);background-size:auto}
h1,h2,h3,.brand,.distance{font-family:'Trebuchet MS','Avenir Next',sans-serif;letter-spacing:-.035em}input,select,textarea,button{font-family:inherit}.distance{font-variant-numeric:tabular-nums;text-shadow:0 0 30px #a9ed5720}
.top{background:linear-gradient(110deg,#091b15f7,#173027f5);border-bottom-color:#b7ec6755;box-shadow:0 4px 30px #0003}.brand{filter:none}.brand-symbol{font-size:0;width:46px;height:46px;display:inline-block;background:#16392b url('icons/ball.svg') center/37px no-repeat;border:1px solid #96bf6255;box-shadow:none}.brand small{color:#c5f76a;letter-spacing:.18em}
#group-start,#team-dashboard,.protocol,.result>section,.coach,dialog,.route-picker,.picker,.groups-home{background:linear-gradient(140deg,#163027f5,#0b211af7);border-color:#355d4b;box-shadow:0 16px 40px #0003}#group-start,#team-dashboard,.protocol,.groups-home{border-top-color:#c5f76a}.athlete-panel{background:#0d241c;border-color:#345747}.athlete-data,.muted,label,.small-label,.coach-body>p{color:#bed4c7}.eyebrow{color:#c5f76a;text-shadow:none}
button{background:linear-gradient(120deg,#254e38,#25443d);color:#f2faee;border:1px solid #59866a}button:hover{background:linear-gradient(120deg,#34694a,#315950);border-color:#c5f76a}button:focus-visible,summary:focus-visible{outline:2px solid #c5f76a;outline-offset:4px}
#add-group,#go-protocol,#download-card,#dose-search{background:linear-gradient(120deg,#c5f76a,#8fdd83);color:#102514;border-color:#b6ec74;font-weight:700}#profile-info{color:#dafb9e;background:#244730}.angle-card{background:#102a22;border-color:#3a5f4d;color:#bbd9c9}.angle-card[aria-pressed=true]{background:#2b4829;border-color:#c5f76a;color:#ddffa1;box-shadow:0 0 14px #b8e96318}
.settings input,.settings select,input,textarea,select,#group-name,#group-inputs input,#group-inputs select,.session-toolbar input{background:#091c16;color:#f0f8f2;border-color:#537763}.settings input:disabled,.settings select:disabled{background:#23392e;color:#c0d2c6;-webkit-text-fill-color:#c0d2c6}.settings input:focus,.settings select:focus,input:focus,select:focus{border-color:#c5f76a;box-shadow:0 0 0 3px #c5f76a20}option,optgroup{background:#10291f;color:#f0f8f2}
th{background:#204032!important;color:#dcf6b9;border-bottom-color:#64825c!important}td{border-color:#2d4a3b!important}tbody tr:nth-child(even),.team-table tbody tr:nth-child(even){background:#1c392750}table{color:#daeadf}.table-wrap{border-color:#345747}summary{color:#d5e8dc}.zone-bar .fill{background:linear-gradient(90deg,#67cf98,#c5f76a)!important}.execution-group,.my-group-card{background:linear-gradient(135deg,#18392b,#10271f);border-color:#3d674e;border-top-color:#c5f76a}.execution-group:nth-of-type(2n){border-top-color:#f6d55d}.group-controls,.dose-fit,.rpl-route-note{background:#102b21;border-color:#426a52}.fit-suggestions{background:#283624;border-color:#78864c;border-left-color:#f6d55d}.fit-option{background:#10271f;border-color:#4a634b}a,.catalog-link{color:#c5f76a!important}.view-switch{border-color:#345747}
/* Small decorative symbols sit beside titles, never over data. */
#groups-home h1:before,.route-picker h2:before,#coach-settings>summary:before,.athlete-panel h1:before{content:'';display:inline-block;width:32px;height:32px;margin-right:12px;vertical-align:-5px;background:center/contain no-repeat url('icons/ball.svg')}.route-picker h2:before{background-image:url('icons/pitch.svg')}.athlete-panel h1:before{background-image:url('icons/whistle.svg');width:29px;height:29px}#coach-settings>summary:before{background-image:url('icons/cards.svg');width:25px;height:25px}
#groups-home{position:relative;overflow:hidden}#groups-home:after{content:'';position:absolute;right:26px;bottom:16px;width:64px;height:64px;background:url('icons/flag.svg') center/contain no-repeat;opacity:.18;pointer-events:none}#my-groups-list{position:relative;z-index:1}.my-group-card h2:before{content:'';display:inline-block;width:23px;height:23px;vertical-align:-4px;margin-right:9px;background:url('icons/flag.svg') center/contain no-repeat}
@media(max-width:760px){.brand-symbol{width:38px;height:38px;background-size:30px}.brand{font-size:17px}#groups-home h1:before{width:27px;height:27px}}

.match-model-tools,.motion-coverage{padding:22px;background:#102b21;border:1px solid #426a52;border-radius:16px;margin:20px 0}.match-model-tools label{max-width:500px}.match-model-tools p,.motion-coverage p{font-size:14px;color:#bed4c7}.model-input-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:12px 0}.model-input-row input{width:100%;padding:10px}.coach-group-step .motion-coverage,.conduct-mode .motion-coverage{display:none}
/* Complete dark-surface contract, including dialogs and legacy components. */
.profile-types article,.coach-note,#source-range,.roster-row button{background:#19392d;color:#edf8f1;border:1px solid #4b735d}
.profile-types article h3{color:#def6b7}.profile-types article p{color:#d0e3d7}
.coach-note p,#source-range,.roster-row button{color:#e3f0e7}
.execution-group details{background:#0c241b;color:#edf8f1;border-color:#41634f}
.time-strip>div{background:#193a2d;color:#edf8f1}.time-strip .rest{background:#27392b;color:#e3f0e7}
.angle-card:hover{background:#284a36;color:#edf8f1}
#profile-dialog,#roster-dialog,#invite-dialog,#sessions-dialog,#download-dialog,dialog{color:#edf8f1}
dialog p,dialog label,dialog summary,.execution-group p,.execution-group small,.dose-fit p,.fit-option p,.rpl-route-note p{color:#c9ded0}
dialog h1,dialog h2,dialog h3{color:#f1faee}
input::placeholder,textarea::placeholder{color:#aabdac!important;opacity:1}
input:disabled,select:disabled,textarea:disabled{opacity:1;color:#c0d2c6;background:#23392e;-webkit-text-fill-color:#c0d2c6}
.form-error,#form-error,#model-edit-error{color:#ffb79f}.route-warning{color:#ffd59a}
.zone-bar .track{background:#2a4939}.zone-bar small,.method,.lead,.note,.athlete-data,.athlete-data b{color:#bfd6c7}
#reference-label,#source-note,footer{color:#b6cbbf!important}
.settings-actions button:last-child,.dialog-head button{background:#284936;color:#f1faee;border-color:#648570}
/* Solid fallbacks also preserve contrast when gradients are unavailable. */
#add-group,#go-protocol,#download-card,#dose-search,#save-session,#team-pdf{background-color:#b4ed78}
button:disabled{opacity:1;background:#25382e;color:#b4c8ba;border-color:#506659;box-shadow:none}
#match-model-form>label input,#model-motion-inputs>label input,#new-group-form input{display:block;width:100%;min-height:44px;padding:10px;margin-top:6px}

#fit-options{grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr))}.fit-option svg{width:100%;height:auto}.fit-option h3{font-size:23px}
