:root{--ink:#17201d;--muted:#6d7773;--line:#e1e7e3;--paper:#f6f5f1;--surface:#fff;--surface-soft:#fbfcfa;--surface-muted:#f0f3f1;--green:#124b37;--green2:#eaf4ed;--lime:#dff36c;--red:#d96356;--red2:#fff0ed}*{box-sizing:border-box}html{min-width:320px}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Trebuchet MS",ui-rounded,"Segoe UI",Arial,sans-serif}button,input,textarea,select{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}.site-shell{min-height:100vh;padding:0 clamp(16px,4vw,68px) 60px;background:radial-gradient(circle at 84% 7%,rgba(223,243,108,.26),transparent 24rem),var(--paper)}
.bar{min-height:86px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid var(--line)}.wordmark{display:flex;border:0;background:none;padding:0;text-align:left;cursor:pointer;color:rgba(0,0,0,.68)}.wordmark span{font-size:clamp(27px,3vw,42px);font-weight:400}.bar nav{display:flex;align-self:stretch;gap:28px}.bar nav button{position:relative;border:0;background:none;color:var(--muted);font-size:16px;cursor:pointer}.bar nav button.on{color:var(--ink)}.bar nav button.on:after{content:"";position:absolute;left:20%;right:20%;bottom:-1px;height:2px;background:var(--green)}.header-actions{justify-self:end}.signin{padding:11px 18px;border:0;border-radius:999px;background:var(--green);color:#fff;font-size:12px;font-weight:700;cursor:pointer}.account{display:flex;align-items:center;gap:9px}.account-avatar,.avatar{display:grid;place-items:center;border-radius:50%;border:0;background:#e8e7e9;color:var(--green);font-weight:700}.account-avatar{width:34px;height:34px;font-size:10px;cursor:pointer}.account div{font-size:11px;font-weight:700}.account small{display:block;color:var(--muted);font-size:8px}.logout{display:flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);cursor:pointer}.logout span{font-size:16px;transform:rotate(180deg)}.logout em{font-size:9px;font-style:normal;font-weight:750}
.intro-row,.matrix-card,.beneath,.subpage,.announcement,.announcement-empty{width:min(1600px,100%);margin-left:auto;margin-right:auto}.intro-row{padding:48px 0 28px;display:flex;align-items:flex-end;justify-content:space-between;gap:25px}.intro-row h1,.subhead h1{margin:0;line-height:.96;letter-spacing:-.055em}.intro-row h1{font-size:clamp(34px,4vw,56px)}.intro-row p{margin:14px 0 0;color:var(--muted);font-size:14px}.month-nav{display:flex;align-items:center;gap:6px;padding:5px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 10px 30px rgba(23,32,29,.05)}.month-nav button{width:37px;height:37px;border:0;border-radius:10px;background:var(--surface-muted);cursor:pointer}.month-nav strong{min-width:145px;text-align:center;text-transform:capitalize;font-size:13px}
.matrix-card{border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.9);box-shadow:0 16px 55px rgba(23,32,29,.055);overflow:hidden}.matrix-scroll{overflow-x:auto}.matrix{--cols:5;display:grid;grid-template-columns:minmax(210px,1.4fr) repeat(var(--cols),minmax(95px,1fr));min-width:720px}.matrix-row{display:contents}.matrix-head{height:77px;padding:15px 18px;display:flex;flex-direction:column;justify-content:center;border-bottom:1px solid var(--line);border-right:1px solid var(--line);background:var(--surface-soft)}.name-head{position:sticky;left:0;z-index:4;align-items:flex-start}.matrix-head span{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.matrix-head small{color:#929b97;font-size:10px;margin-top:3px}.date-head{align-items:center}.date-head b{font-size:23px;line-height:1}.date-head small{margin-top:2px;text-transform:uppercase}.player{position:sticky;left:0;z-index:3;min-height:56px;padding:6px 13px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);background:var(--surface)}.avatar{flex:0 0 auto;width:30px;height:30px;font-size:9px}.a1{background:#efe5d6;color:#79582d}.a2{background:#e5e4f0;color:#504d78}.a3{background:#f2e0dd;color:#884c46}.a4{background:#e4e9d6;color:#546828}.player b{display:block;font-size:13px}.player small{display:block;margin-top:2px;color:#929b97;font-size:9px}.cell{position:relative;min-height:56px;padding:4px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:default}.cell.editable{cursor:pointer}.cell.editable:hover{box-shadow:inset 0 0 0 2px var(--green)}.cell i{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#edf0ee;color:#a2aaa6;font-style:normal;font-size:13px;font-weight:900}.cell>span:last-child{margin-top:2px;color:#9ba39f;font-size:9px;font-weight:700}.cell.yes{background:var(--green2)}.cell.yes i{background:var(--green);color:#fff}.cell.yes>span:last-child{color:var(--green)}.cell.no{background:var(--red2)}.cell.no i{background:var(--red);color:#fff}.cell.no>span:last-child{color:#a94c42}.cell em{position:absolute;right:7px;top:3px;color:#d19d1a;font-size:17px;font-style:normal}.comment-tooltip{position:absolute;z-index:8;left:50%;bottom:calc(100% - 4px);width:190px;padding:10px;transform:translateX(-50%);border-radius:10px;background:var(--ink);color:#fff!important;font-size:10px!important;line-height:1.4;opacity:0;visibility:hidden;pointer-events:none;box-shadow:0 10px 30px rgba(0,0,0,.2)}.comment-tooltip b{display:block;margin-bottom:3px;color:var(--lime)}.cell.has-comment:hover .comment-tooltip,.cell.has-comment:focus .comment-tooltip{opacity:1;visibility:visible}.matrix-foot{min-height:62px;padding:8px 13px;display:flex;flex-direction:column;justify-content:center;align-items:center;border-right:1px solid var(--line);background:var(--surface-soft)}.name-foot{position:sticky;left:0;z-index:3;align-items:flex-start}.matrix-foot b{font-size:14px}.matrix-foot small{color:var(--muted);font-size:9px}.sum b{font-size:23px}.sum span{font-size:9px;font-weight:800}.sum-yes{color:var(--green)}.beneath{margin-top:14px;display:flex;align-items:center;justify-content:space-between;gap:20px}.legend{display:flex;gap:18px;color:var(--muted);font-size:11px}.legend span{display:flex;align-items:center;gap:6px}.legend i{width:7px;height:7px;border-radius:50%}.legend i.yes{background:var(--green)}.legend i.no{background:var(--red)}.legend i.unset{background:#cbd2ce}.legend b{color:#d19d1a}.public-note{display:flex;align-items:center;gap:10px;font-size:11px}.public-note span{color:var(--muted)}.public-note button{border:0;background:none;color:var(--green);font-weight:800;cursor:pointer}
.next-training{box-shadow:inset 1px 0 0 color-mix(in srgb,var(--lime) 55%,var(--line)),inset -1px 0 0 color-mix(in srgb,var(--lime) 55%,var(--line))}.date-head.next-training,.matrix-foot.next-training{background:color-mix(in srgb,var(--lime) 14%,var(--surface-soft))}.cell.next-training{background-image:linear-gradient(color-mix(in srgb,var(--lime) 8%,transparent),color-mix(in srgb,var(--lime) 8%,transparent))}
.announcement,.announcement-empty{margin-top:18px}.announcement{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:15px;padding:17px 19px;border:1px solid color-mix(in srgb,var(--green) 22%,var(--line));border-radius:16px;background:color-mix(in srgb,var(--green2) 82%,var(--surface));box-shadow:0 12px 35px rgba(23,32,29,.045)}.announcement-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--green);color:var(--lime);font-weight:900}.announcement p{margin:0 0 3px;color:var(--green);font-size:8px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.announcement h2{margin:0 0 4px;font-size:16px}.announcement-body{font-size:11px;line-height:1.55;white-space:pre-wrap}.announcement small{display:block;margin-top:6px;color:var(--muted);font-size:8px}.announcement>button,.announcement-empty{border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--green);font-size:9px;font-weight:850;cursor:pointer}.announcement>button{padding:8px 10px}.announcement-empty{display:block;padding:10px 14px;text-align:center;border-style:dashed}
.subpage{padding-top:45px}.subhead p{margin:0 0 8px;color:var(--green);font-size:10px;font-weight:850;letter-spacing:.11em;text-transform:uppercase}.subhead h1{font-size:clamp(44px,5.2vw,70px)}.subhead span{display:block;margin-top:12px;color:var(--muted);font-size:14px}.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:30px}.contact{position:relative;min-height:104px;padding:14px 15px;display:flex;gap:10px;border:1px solid var(--line);border-radius:15px;background:var(--surface)}.contact h3{margin:1px 0 5px;font-size:16px}.contact p{margin:2px 0;color:var(--muted);font-size:11px}.contact small{display:block;margin-top:7px;font-size:10px}.contact button{position:absolute;right:12px;bottom:11px;border:0;background:none;color:var(--green);font-size:10px;font-weight:800;cursor:pointer}
.admin-grid{display:grid;grid-template-columns:1fr;gap:14px;margin-top:30px}.admin-card{min-width:0;border:1px solid var(--line);border-radius:18px;background:var(--surface);padding:20px}.admin-card>header{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-bottom:15px;border-bottom:1px solid var(--line)}.admin-card h2{margin:0;font-size:18px}.admin-card p{margin:4px 0 0;color:var(--muted);font-size:10px}.small-primary,.primary{border:0;background:var(--green);color:#fff;font-weight:800;cursor:pointer}.small-primary{padding:9px 12px;border-radius:9px;font-size:9px}.primary{width:100%;margin-top:12px;padding:13px;border-radius:11px;font-size:11px}.primary:disabled{opacity:.6}.admin-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.user-list.enhanced>div{min-height:60px;display:grid;grid-template-columns:38px minmax(240px,1fr) 110px 72px 34px 34px;align-items:center;gap:12px;border-bottom:1px solid var(--line)}.user-list.enhanced>div:last-child{border-bottom:0}.user-edit{border:0;background:none;padding:7px 0;text-align:left;cursor:pointer}.user-edit b{display:block;font-size:12px}.user-edit small{display:block;color:var(--muted);font-size:9px}.user-role{padding:7px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:9px}.active-pill,.inactive-pill{padding:6px;border:0;border-radius:999px;font-size:8px;font-weight:800;cursor:pointer}.active-pill{background:var(--green2);color:var(--green)}.inactive-pill{background:var(--red2);color:var(--red)}.password-user,.delete-user{width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:var(--surface);cursor:pointer}.delete-user{border-color:#efcbc6;background:#fff5f3;color:var(--red);font-size:16px}.delete-user:disabled{opacity:.3}.add-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(190px,1fr) minmax(210px,1fr) auto;gap:7px;padding:12px 0}.add-row input,.dialog input,.dialog textarea,.dialog select,.settings input{width:100%;margin-top:6px;padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);outline:none;font-size:11px}.add-row input{margin:0}.add-row button{border:0;border-radius:9px;background:var(--green);color:#fff;font-weight:800}.add-row .auth-error{grid-column:1/-1}.settings label,.dialog label{display:block;margin-top:15px;font-size:9px;font-weight:800}.settings .switch{display:flex;align-items:center;justify-content:space-between}.settings .switch input{width:18px;margin:0}.switch small{display:block;color:var(--muted);font-size:8px}.weekday-picker{margin:16px 0 0;padding:0;border:0}.weekday-picker legend{margin-bottom:8px;font-size:9px;font-weight:800}.weekday-picker>div{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.weekday-picker label{margin:0;padding:8px 3px;border:1px solid var(--line);border-radius:9px;text-align:center;cursor:pointer}.weekday-picker label.selected{border-color:var(--green);background:var(--green2)}.weekday-picker input{position:absolute;opacity:0}.weekday-picker span{display:block;font-size:9px;font-weight:800}.weekday-picker small{display:none}.logs>div{display:grid;grid-template-columns:8px 1fr auto;gap:8px;padding:11px 0;border-bottom:1px solid var(--line)}.logs>div>i{width:6px;height:6px;margin-top:3px;border-radius:50%;background:var(--lime);border:1px solid var(--green)}.logs b,.logs small{display:block;font-size:8px}.logs small,.logs time{color:var(--muted);font-size:7px}
.overlay{position:fixed;z-index:50;inset:0;padding:18px;display:grid;place-items:center;background:rgba(13,23,19,.48);backdrop-filter:blur(7px)}.dialog{position:relative;width:min(430px,100%);max-height:92vh;overflow:auto;padding:28px;border-radius:22px;background:var(--surface);box-shadow:0 25px 80px rgba(0,0,0,.25)}.close{position:absolute;right:16px;top:16px;width:32px;height:32px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--muted);cursor:pointer;font-size:20px}.dialog-kicker{margin:0 0 9px;color:var(--green);font-size:9px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.dialog h2{max-width:340px;margin:0 0 22px;font-size:28px;line-height:1.05;letter-spacing:-.04em}.dialog textarea{min-height:88px;resize:vertical}.dialog label>small{float:right;color:var(--muted);font-weight:500}.answers{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.answer{display:flex!important;align-items:center;gap:8px!important;margin:0!important;padding:10px;border:1px solid var(--line);border-radius:13px;background:var(--surface);text-align:left;cursor:pointer}.answer input{position:absolute;opacity:0}.answer i{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:#eef1ef;font-style:normal;font-weight:900}.answer span{font-size:10px;font-weight:800}.answer small{display:block;float:none!important;margin-top:2px;color:var(--muted);font-size:7px;font-weight:500}.yes-answer{border-color:#8eb7a0;background:var(--green2)}.yes-answer i{background:var(--green);color:#fff}.no-answer{border-color:#dca29b;background:var(--red2)}.no-answer i{background:var(--red);color:#fff}.unset-answer{border-color:#aeb7b2;background:var(--surface-muted)}.unset-answer i{background:#7a8580;color:#fff}.auth-copy{color:var(--muted);font-size:11px;line-height:1.55}.auth-error{margin:12px 0 0;color:#a63f38;font-size:10px;font-weight:700}.profile-section,.password-section{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.profile-section h3,.password-section h3{margin:0;font-size:13px}.profile-section p,.password-section p{margin:4px 0 0;color:var(--muted);font-size:9px}.announcement-switch{display:flex!important;align-items:center;justify-content:space-between}.announcement-switch input{width:18px;margin:0}.dialog blockquote{margin:16px 0;padding:16px;border-left:3px solid var(--lime);background:var(--surface-soft);font-size:13px;line-height:1.55;white-space:pre-wrap}.log-filters{margin:18px 0 14px;padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:8px;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft)}.log-filters button{min-height:36px;border-radius:8px;font-size:9px}.filter-reset{border:1px solid var(--line);background:var(--surface)}.clear-logs{border:1px solid #efcbc6;background:var(--red2);color:var(--red)}.log-table{max-height:48vh;overflow:auto;border:1px solid var(--line);border-radius:13px}.log-entry{padding:13px;border-bottom:1px solid var(--line)}.log-entry time{color:var(--muted);font-size:9px}.log-entry h3{margin:4px 0;font-size:12px}.log-entry p{margin:0 0 4px;font-size:10px}.log-entry small{color:var(--muted);font-size:8px}.log-empty{padding:22px;color:var(--muted);text-align:center;font-size:11px}.toast{position:fixed;z-index:70;left:50%;bottom:28px;transform:translateX(-50%);padding:12px 18px;border-radius:999px;background:var(--ink);color:#fff;font-size:10px;font-weight:750;box-shadow:0 12px 30px rgba(0,0,0,.2)}
.loading-card,.installer{min-height:100vh;display:grid;place-items:center;padding:20px}.loading-card{align-content:center;text-align:center}.loading-card h1{margin:14px 0 8px;font-size:clamp(30px,5vw,50px)}.loading-card p{max-width:630px;margin:5px auto;color:var(--muted);line-height:1.6}.loading-mark{display:grid;place-items:center;width:54px;height:54px;margin:auto;border-radius:16px;background:var(--green);color:var(--lime);font-weight:900}.primary-link{display:inline-block;margin-top:14px;padding:12px 16px;border-radius:10px;background:var(--green);color:#fff;text-decoration:none;font-size:12px;font-weight:800}.install-card{height:auto}.install-card h1{margin:0;font-size:38px}.install-card>p{color:var(--muted);line-height:1.5}
:root[data-theme="dark"]{--ink:#edf5f0;--muted:#a4b2ab;--line:#34433d;--paper:#101714;--surface:#17211d;--surface-soft:#1c2823;--surface-muted:#24312c;--green:#53bd8c;--green2:#18372b;--lime:#dff36c;--red:#ef7d70;--red2:#3a211f}:root[data-theme="dark"] .wordmark{color:var(--ink)}:root[data-theme="dark"] .site-shell{background:radial-gradient(circle at 84% 7%,rgba(223,243,108,.07),transparent 24rem),var(--paper)}:root[data-theme="dark"] .matrix-card{background:var(--surface)}:root[data-theme="dark"] .delete-user{background:#321d1b}:root[data-theme="dark"] .comment-tooltip{border:1px solid #cbd8d0;background:#f3f7f4;color:#101714!important}:root[data-theme="dark"] .comment-tooltip b{color:#124b37}
@media(max-width:1100px){.bar{grid-template-columns:minmax(0,1fr) auto;padding-top:10px}.bar nav{display:flex;grid-column:1/-1;grid-row:2;justify-content:center;width:100%;height:46px;margin-top:8px;border-top:1px solid var(--line);gap:0}.bar nav button{flex:1;max-width:220px}.header-actions{grid-column:2;grid-row:1}.account div{display:none}.contact-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.admin-side{grid-template-columns:1fr}.admin-card{padding:15px}.add-row{grid-template-columns:1fr 1fr}.user-list.enhanced>div{min-height:82px;padding:10px 0;grid-template-columns:34px minmax(0,1fr) 32px 32px;grid-template-rows:auto auto;gap:7px}.user-list.enhanced .avatar{grid-row:1/3}.user-edit{grid-column:2;grid-row:1;min-width:0}.user-edit small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-role{grid-column:2;grid-row:2;width:100%}.active-pill,.inactive-pill{grid-column:3/5;grid-row:2}.password-user{grid-column:3;grid-row:1}.delete-user{grid-column:4;grid-row:1}.contact-grid{grid-template-columns:1fr}}
@media(max-width:620px){.site-shell{padding:0 12px 35px}.bar{min-height:106px;padding-top:9px}.wordmark span{font-size:clamp(15px,5vw,21px)}.bar nav{height:42px;margin-top:7px}.bar nav button{font-size:12px}.logout em{display:none}.logout{padding:7px}.intro-row{padding:30px 3px 23px;align-items:flex-start;flex-direction:column}.intro-row p{font-size:13px;line-height:1.5}.month-nav{width:100%;justify-content:space-between}.matrix-card{border-radius:16px}.matrix{grid-template-columns:150px repeat(var(--cols),74px);min-width:max-content}.matrix-head{height:68px;padding:9px}.matrix-head b{font-size:26px}.player,.cell{min-height:58px}.player{padding:6px 8px;gap:7px}.player .avatar{width:30px;height:30px}.player b{max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.player small{font-size:9px}.cell i{width:28px;height:28px}.cell>span:last-child{font-size:9px}.matrix-foot{min-height:62px;padding:6px}.beneath{align-items:flex-start;flex-direction:column}.legend{gap:10px;flex-wrap:wrap}.public-note{align-items:flex-start;flex-direction:column;gap:4px;padding:12px;border-radius:12px;background:var(--surface)}.subpage{padding-top:30px}.subhead h1{font-size:43px}.subhead span{font-size:13px}.contact{min-height:100px;padding:13px}.announcement{grid-template-columns:auto 1fr}.announcement>button{grid-column:1/-1}.add-row{grid-template-columns:1fr}.dialog{padding:23px}.answers{grid-template-columns:1fr}.weekday-picker>div{grid-template-columns:repeat(4,1fr)}}
@media(max-width:390px){.wordmark span{font-size:15px}.account{gap:5px}.account-avatar{width:31px;height:31px}.bar nav button{font-size:11px}.admin-card{padding:12px}.dialog{padding:21px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.weekday-picker input,.answer input{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;opacity:0}
.matrix.cols-1{--cols:1}.matrix.cols-2{--cols:2}.matrix.cols-3{--cols:3}.matrix.cols-4{--cols:4}.matrix.cols-5{--cols:5}.matrix.cols-6{--cols:6}.matrix.cols-7{--cols:7}.matrix.cols-8{--cols:8}.matrix.cols-9{--cols:9}.matrix.cols-10{--cols:10}.matrix.cols-11{--cols:11}.matrix.cols-12{--cols:12}.matrix.cols-13{--cols:13}.matrix.cols-14{--cols:14}.matrix.cols-15{--cols:15}.matrix.cols-16{--cols:16}.matrix.cols-17{--cols:17}.matrix.cols-18{--cols:18}.matrix.cols-19{--cols:19}.matrix.cols-20{--cols:20}.matrix.cols-21{--cols:21}.matrix.cols-22{--cols:22}.matrix.cols-23{--cols:23}.matrix.cols-24{--cols:24}.matrix.cols-25{--cols:25}.matrix.cols-26{--cols:26}.matrix.cols-27{--cols:27}.matrix.cols-28{--cols:28}.matrix.cols-29{--cols:29}.matrix.cols-30{--cols:30}.matrix.cols-31{--cols:31}
