:root{--ink:#173c34;--muted:#597067;--green:#176348;--lime:#d3ef86;--line:#e0e7e0;--paper:#f5f6ef}*{box-sizing:border-box}body{color:var(--ink);background:var(--paper);margin:0;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;background:var(--green);color:#fff;border:1px solid #0000;border-radius:12px;min-height:46px;padding:11px 18px;font-weight:700}button:hover:not(:disabled){filter:brightness(.93)}button:disabled{cursor:not-allowed;opacity:.48}:focus-visible{outline-offset:3px;outline:3px solid #aa6b16}input{width:100%;min-height:48px;color:var(--ink);background:#fff;border:1px solid #b6c8bc;border-radius:10px;padding:10px 12px}input:disabled{background:#f0f3ee}label{margin-bottom:6px;font-size:.88rem;font-weight:700;display:block}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.055em;margin-bottom:16px;font-size:clamp(2.4rem,6vw,3.8rem);line-height:1.06}h2{letter-spacing:-.04em;margin-bottom:0;font-size:1.8rem;line-height:1.2}h3{font-size:1.06rem}.muted{color:var(--muted)}.accent{color:#789c36}.eyebrow{color:var(--muted);letter-spacing:.14em;margin-bottom:10px;font-size:.68rem;font-weight:700}.app-shell{max-width:1000px;margin:auto;padding:0 32px}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:24px 0;display:flex}.brand{color:var(--ink);letter-spacing:-.06em;align-items:center;gap:8px;font-size:1.4rem;font-weight:800;text-decoration:none;display:flex}.brand .accent{margin-left:-7px}.brand-mark{background:var(--green);width:60px;height:60px;color:var(--lime);letter-spacing:-.08em;border-radius:18px;place-items:center;font-size:1.4rem;font-weight:800;display:grid;transform:rotate(-5deg)}.brand-mark.small{border-radius:11px;width:36px;height:36px;margin-right:4px;font-size:.9rem}.page-heading{justify-content:space-between;align-items:center;padding:40px 0 22px;display:flex}.team-badge{color:#657f51;background:#e9efdf;border:2px solid #c5d5ba;border-radius:24px 24px 44px 44px;flex-direction:column;justify-content:center;align-items:center;width:104px;height:118px;font-size:3rem;font-weight:800;line-height:1;display:flex;transform:rotate(7deg)}.team-badge span{letter-spacing:.2em;margin-top:8px;font-size:.6rem}.tabs{background:#e9ede4;border-radius:15px;gap:6px;padding:5px;display:flex}.tabs button{color:var(--muted);background:0 0;flex:1;padding:10px;font-size:.9rem}.tabs button.active{color:var(--ink);background:#fff;box-shadow:0 2px 6px #173c3410}.card{border:1px solid var(--line);background:#fff;border-radius:22px;padding:30px;box-shadow:0 8px 25px #173c3404}.section-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;display:flex}.date-field{min-width:0;max-width:330px}.date-field label{color:var(--muted);font-size:.75rem}.date-controls{gap:8px;display:flex}.date-controls input{min-width:0}.calendar-toggle{padding-inline:12px}.training-calendar{border:1px solid var(--line);width:min(420px,100% - 16px);max-width:none;max-height:calc(100dvh - 16px);color:var(--ink);background:#fff;border-radius:18px;padding:20px;position:fixed;overflow-y:auto}.training-calendar::backdrop{background:#173c3466}.calendar-heading{justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}.calendar-heading h3{margin:0}.calendar-heading button{padding:4px 12px;font-size:1.4rem}.calendar-navigation{align-items:center;gap:6px;margin-bottom:12px;display:flex}.calendar-navigation>div{flex:1;min-width:0}.calendar-navigation>div:first-of-type{flex:1.5}.calendar-navigation button{min-width:40px;padding:6px;font-size:1.3rem}.calendar-navigation select{border:1px solid var(--line);width:100%;min-width:0;min-height:46px;color:var(--ink);font:inherit;background:#fff;border-radius:8px;padding:4px}.calendar-grid{table-layout:fixed;border-spacing:0;width:100%}.calendar-grid th{color:var(--muted);padding-bottom:6px;font-size:.8rem;font-weight:400}.calendar-grid td{text-align:center;padding:2px 0}.calendar-day{width:100%;min-height:48px;color:var(--ink);background:#fff;border:2px solid #0000;border-radius:9px;flex-direction:column;justify-content:center;align-items:center;padding:2px;display:flex;position:relative}.calendar-day.today{border-color:var(--green)}.calendar-day.selected{background:var(--green);color:#fff}.calendar-marker{height:10px;font-size:.55rem;line-height:10px}.calendar-legend,.calendar-help{color:var(--muted);margin:12px 0 0;font-size:.75rem}@media (max-width:380px){.training-calendar{padding:10px 4px}.calendar-heading,.calendar-navigation,.calendar-legend,.calendar-help{margin-left:4px;margin-right:4px}.calendar-navigation{gap:4px}}.attendance-summary{justify-content:space-between;align-items:center;gap:12px;display:flex}.attendance-summary strong{font-size:2rem}.attendance-summary span{color:var(--muted)}.save-hint{font-size:.75rem}progress{appearance:none;background:#edf1e8;border:0;border-radius:8px;width:100%;height:6px;margin:10px 0 25px;display:block;overflow:hidden}progress::-webkit-progress-bar{background:#edf1e8}progress::-webkit-progress-value{background:var(--green);border-radius:8px}progress::-moz-progress-bar{background:var(--green)}.participants{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.participant{cursor:pointer;border:1px solid var(--line);border-radius:14px;align-items:center;gap:13px;min-height:80px;margin:0;padding:15px;transition:background .15s;display:flex}.participant.present{background:#f0f7e9;border-color:#9ebb85}.avatar{color:#607464;background:#eef0ea;border-radius:50%;flex-shrink:0;place-items:center;width:42px;height:42px;font-size:1.1rem;display:grid}.present .avatar{color:#365b28;background:#d6e8c1}.participant-name{overflow-wrap:anywhere;flex:1;font-size:1rem}.participant-name small{color:var(--muted);font-size:.68rem;font-weight:400;display:block}.participant input{width:26px;height:26px;min-height:26px;accent-color:var(--green);cursor:pointer;flex-shrink:0;margin:0}.participant input[aria-disabled=true]{cursor:wait;opacity:.6}.card-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:15px;margin-top:26px;padding-top:20px;display:flex}.card-footer p{margin:0;font-size:.8rem}.card-footer button{flex-shrink:0;font-size:.8rem}.secondary{color:var(--ink);border-color:var(--line);background:#f3f5ef}.text-button{color:var(--muted);background:0 0;font-size:.85rem}.danger{color:#a52e32}.danger-button{background:#a52e32}.empty{text-align:center;color:var(--muted);padding:35px 10px}.empty h3{color:var(--ink)}.empty-icon{color:#6a8b4f;background:#edf3e6;border-radius:50%;width:60px;height:60px;margin:0 auto 18px;font-size:2.2rem}.feedback{min-height:32px;color:var(--green);padding:6px 3px;font-size:.8rem}.error{color:#8d292d;background:#fff1ef;border:1px solid #e8bbb5;border-radius:12px;padding:12px 16px;font-size:.9rem}.error-panel{margin-bottom:18px}.error-panel p{margin-bottom:8px}.history-list{margin:20px 0 0;padding:0;list-style:none}.history-list li+li{border-top:1px solid var(--line)}.history-entry{color:var(--ink);text-align:left;background:0 0;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;width:100%;padding:20px 8px;display:flex}.history-entry span{color:var(--muted);font-size:.85rem;font-weight:400}.month-navigation{align-items:end;gap:10px;margin:24px 0 18px;display:flex}.month-navigation>div{flex:1;max-width:240px}.overview-tabs{margin-bottom:22px}.overview-legend{color:var(--muted);font-size:.8rem}.overview-scroll{border:1px solid var(--line);border-radius:12px;max-width:100%;position:relative;overflow-x:auto}.overview-table{border-collapse:separate;border-spacing:0;width:100%;font-size:.9rem}.overview-table th,.overview-table td{border-bottom:1px solid var(--line);text-align:center;min-width:140px;padding:14px}.overview-table tr:last-child>*{border-bottom:0}.overview-table tr>th:first-child{z-index:1;text-align:left;overflow-wrap:anywhere;background:#f5f7f1;min-width:135px;max-width:180px;position:sticky;left:0}.overview-table thead th{background:#f5f7f1}.overview-table th button{white-space:nowrap;padding:6px}.overview-present{color:var(--green);background:#f0f7e9;font-weight:700}.archived-label{color:var(--muted);font-size:.7rem;font-weight:400;display:block}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.overview-days{margin:0;padding:0;list-style:none}.overview-days>li{border-top:1px solid var(--line);padding:22px 0}.overview-days .section-heading{margin-bottom:12px}.overview-days h3{margin-bottom:0}.present-names{flex-wrap:wrap;gap:8px;margin:0 0 16px;padding:0;list-style:none;display:flex}.present-names li{background:#f0f7e9;border-radius:10px;padding:6px 12px}.add-child{background:#f5f7f1;border-radius:14px;align-items:end;gap:12px;margin:22px 0 28px;padding:20px;display:flex}.add-child>div{flex:1}.add-child button{margin-bottom:1px}.roster-group{margin-top:25px}.child-editor{border-top:1px solid var(--line);padding:18px 0}.child-editor form{align-items:end;gap:12px;display:flex}.name-input{flex:1;min-width:0}.name-input label{color:var(--muted);font-size:.72rem}.row-actions{flex-wrap:wrap;gap:8px;display:flex}.row-actions button{padding:11px 12px;font-size:.8rem}.duplicate{color:#83550a;padding-top:5px;display:block}.delete-confirm{background:#fff1ef;border-radius:12px;margin-top:14px;padding:16px;font-size:.9rem}.pill{white-space:nowrap;background:#edf3e6;border-radius:20px;padding:6px 12px;font-size:.8rem}.privacy-note{color:var(--muted);margin:24px 0 0;font-size:.75rem}.site-footer{text-align:center;color:var(--muted);padding:32px 0;font-size:.8rem}.site-footer span{font-size:.7rem}.survey-public{max-width:700px;margin:0 auto;padding:32px 16px}.survey-public h1{overflow-wrap:anywhere;font-size:clamp(1.8rem,6vw,2.8rem)}.survey-fields{gap:18px;margin:20px 0;display:grid}.survey-public form>button{margin-top:16px}.survey-description{white-space:pre-wrap;overflow-wrap:anywhere}.survey-manager{overflow-wrap:anywhere}.survey-editor fieldset,.survey-manager form fieldset{border:1px solid var(--line);border-radius:12px;min-width:0;margin:20px 0;padding:16px}.survey-editor legend,.survey-manager legend{font-weight:700}.survey-manager label:not(.survey-check){margin-top:12px}.survey-manager textarea,.survey-manager select,.survey-fields select{width:100%;max-width:100%;min-height:48px;color:var(--ink);font:inherit;background:#fff;border:1px solid #b6c8bc;border-radius:10px;padding:10px}.survey-manager textarea{resize:vertical;min-height:100px}.survey-check{align-items:center;gap:10px;margin:16px 0;display:flex}.survey-check input{width:24px;height:24px;min-height:24px;accent-color:var(--green);flex-shrink:0}.survey-option{align-items:end;gap:6px;margin-bottom:12px;display:flex}.survey-option>div{flex:1;min-width:0}.survey-option button{min-width:44px;padding:10px}.survey-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin:20px 0;display:flex}.survey-manager details{border-top:1px solid var(--line);padding:18px 0}.survey-manager summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:700}.survey-secret{border:2px solid var(--green);background:#f0f7e9;border-radius:12px;margin-bottom:20px;padding:16px}.survey-secret button{margin-top:12px}.survey-counts{flex-wrap:wrap;gap:10px;padding:0;list-style:none;display:flex}.survey-counts li{background:#f0f7e9;border-radius:10px;padding:8px 12px}.survey-response{border:1px solid var(--line);border-radius:12px;margin:18px 0;padding:16px}.survey-response dl{gap:12px;margin:0;display:grid}.survey-response dt{font-size:.85rem;font-weight:700}.survey-response dd{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.survey-duplicate{color:#805015;background:#fff3d8;border-radius:8px;padding:10px}.login-shell{background:radial-gradient(at 10% 10%,#e1ebd6,#0000 60%);place-items:center;min-height:100dvh;padding:24px;display:grid}.login-card{width:100%;max-width:430px;padding:36px}.login-card .brand-mark{margin-bottom:35px}.login-card h1{font-size:3.4rem}.login-card form{margin-top:28px}.login-card input{margin-bottom:16px}.full{width:100%}@media (max-width:680px){.app-shell{padding:0 16px}.topbar{padding:16px 0}.page-heading{padding-top:28px}.team-badge{width:72px;height:86px;margin-right:8px;font-size:2.2rem}.team-badge span{font-size:.5rem}.card{border-radius:18px;padding:20px 16px}.section-heading{flex-wrap:wrap;align-items:start;gap:16px}.date-field{width:100%;max-width:none}.participants{grid-template-columns:1fr;gap:10px}.participant{min-height:74px}.card-footer{flex-direction:column;align-items:start}.tabs{flex-wrap:wrap;gap:2px}.tabs button{flex-basis:calc(50% - 2px);padding:10px 6px;font-size:.78rem}.add-child{flex-direction:column;align-items:stretch;padding:16px}.child-editor form{flex-direction:column;align-items:stretch}.history-entry{flex-wrap:wrap}.save-hint{font-size:.65rem}.login-card{padding:28px}}
