:root{color:#193b32;font-synthesis:none;background:#f4f5ef;font-family:Inter,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;color:#fff;background:#234b3d;border:1px solid #234b3d;border-radius:8px;padding:11px 16px;font-weight:600}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #bc7e23}.quiet{color:#234b3d;background:0 0;border-color:#ced6ce}.danger{color:#922f2f;background:0 0;border-color:#e6c4bd}header{background:#fafbf6;border-bottom:1px solid #dce1d7;align-items:center;gap:26px;height:88px;padding:0 max(24px,50vw - 590px);display:flex}.brand{letter-spacing:-1px;color:#234b3d;font-size:28px;font-weight:850;text-decoration:none}.brand span{letter-spacing:3px;margin-left:9px;font-size:12px}.portal{color:#607569;font-size:14px}header button{margin-left:auto}main{max-width:1180px;min-height:calc(100vh - 155px);margin:auto;padding:52px 24px 80px}h1{letter-spacing:-1.6px;margin:12px 0 24px;font-size:clamp(32px,5vw,48px);line-height:1.12}h2{margin:0 0 7px;font-size:18px}.eyebrow{letter-spacing:2px;color:#637b63;margin:0;font-size:11px;font-weight:800}.login{max-width:450px;margin:28px auto}.login>p{line-height:1.7}.login form{gap:19px;margin:28px 0;display:grid}.login form button{padding:14px}label{gap:8px;font-size:13px;font-weight:600;display:grid}input{color:#193b32;background:#fff;border:1px solid #bac9bb;border-radius:7px;width:100%;padding:12px;font-size:16px}.muted{color:#647469;font-size:13px;line-height:1.65}.page-title{justify-content:space-between;align-items:center;gap:20px;display:flex}.summary{gap:16px;margin:12px 0 32px;display:flex}.summary>div{background:#e7eddf;border:1px solid #d7e0ce;border-radius:12px;gap:6px;min-width:210px;padding:22px 28px;display:grid}.summary strong{font-size:32px;font-weight:650}.summary span{color:#4e6757;font-size:13px}.directory{background:#fff;border:1px solid #d8e0d4;border-radius:15px;padding:24px}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:20px;display:flex}.filters{flex-wrap:wrap;gap:6px;display:flex}.filters button{padding:10px 14px;font-size:13px}.search{width:260px}.members{border-top:1px solid #e3e8df;margin-top:20px}article{border-bottom:1px solid #e3e8df;justify-content:space-between;align-items:center;gap:22px;padding:24px 0;display:flex}article:last-child{border-bottom:0}.email{color:#63766b;overflow-wrap:anywhere;margin:7px 0 14px;font-size:14px}.badge{background:#e9eee8;border-radius:5px;padding:5px 9px;font-size:11px;display:inline-block}.pending{color:#75550a;background:#fff0c7}.revoked{color:#873d2e;background:#f4e4df}.actions{flex-wrap:wrap;justify-content:end;gap:8px;display:flex}.actions button{font-size:12px}.empty{text-align:center;color:#647469;padding:48px 12px}.notice{background:#fff;border:1px solid #d8e0d4;border-radius:12px;max-width:700px;margin-top:26px;padding:32px}.notice p{line-height:1.7}.error{color:#8d3027;background:#f8e9e4;border-left:3px solid #b45442;margin-top:24px;padding:16px;line-height:1.5}.confirm{background:#fff;border-radius:16px;width:100%;max-width:470px;padding:30px;box-shadow:0 24px 100px #112c2350}.confirm p{overflow-wrap:anywhere;line-height:1.6}footer{text-align:center;color:#728073;border-top:1px solid #dce1d7;padding:22px;font-size:12px}@media (width<=640px){header{gap:12px;height:72px;padding:0 18px}.portal{display:none}main{padding:32px 16px}.summary{gap:10px}.summary>div{flex:1;min-width:0;padding:18px}.directory{padding:17px}.search{width:100%}article{flex-direction:column;align-items:start}.actions{justify-content:start}.page-title{align-items:start}.page-title>button{font-size:12px}h1{letter-spacing:-.7px}}nav{gap:8px;display:flex}nav button{font-size:12px}nav button[aria-pressed=true]{background:#e7eddf}.teaching .toolbar{margin:28px 0}.checkbox{align-items:center;gap:9px;display:flex}.checkbox input{width:auto}.new-teaching{max-width:530px;margin:24px 0}select,textarea{font:inherit;color:#193b32;background:#fff;border:1px solid #bac9bb;border-radius:7px;width:100%;padding:12px}textarea{resize:vertical;min-height:150px}.editor{background:#fff;border:1px solid #bac9bb;border-radius:12px;gap:20px;margin:26px 0;padding:26px;display:grid}.teaching-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:22px;display:grid}.teaching-card{background:#fff;border:1px solid #d8e0d4;border-radius:12px;flex-direction:column;align-items:stretch;padding:25px;display:flex}.teaching-card h2{margin:14px 0;font-size:25px}.teaching-card h3{font-size:14px}.preserve{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.history{border-top:1px solid #d8e0d4;padding-top:18px}.history section{border-bottom:1px solid #e3e8df;padding:15px 0}@media (width<=640px){header{flex-wrap:wrap;height:auto;min-height:72px;padding:16px}nav{order:3;width:100%}header>button{margin-left:auto}.teaching-card{padding:20px}}.month-controls{justify-content:start;align-items:center;margin:26px 0}.month-controls label{max-width:230px}.legend{gap:10px;display:flex}.gi{color:#584000;background:#ffe6a1}.nogi{color:#26481b;background:#cce7bb}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin:25px 0 32px;display:grid}.weekday{text-align:center;color:#63766b;padding-bottom:8px;font-size:12px}.day{color:#193b32;text-align:left;background:#fff;border-color:#d4ded0;flex-direction:column;align-items:start;gap:5px;width:100%;min-height:94px;display:flex}.day.chosen{outline-offset:0;background:#eaf0e2;outline:2px solid #234b3d}.day small{border-radius:4px;padding:3px 6px;font-size:10px}.form-row{grid-template-columns:repeat(3,1fr);gap:15px;display:grid}.ordered-technique{border-bottom:1px solid #e3e8df;justify-content:space-between;align-items:center;gap:15px;padding:12px 0;display:flex}@media (width<=640px){.calendar-grid{gap:3px}.day{min-height:80px;padding:6px;font-size:13px}.day small{padding:2px;font-size:9px}.form-row{grid-template-columns:1fr}.ordered-technique{flex-direction:column;align-items:start}nav button{padding:8px 10px;font-size:11px}}.editor fieldset{border:0;gap:20px;min-width:0;margin:0;padding:0;display:grid}.editor fieldset:disabled{opacity:.7}.recovery-fields{border:0;gap:20px;min-width:0;margin:0;padding:0;display:grid}.login>button{margin-top:18px}nav{flex-wrap:wrap}@media (width<=960px){header{flex-wrap:wrap;height:auto;min-height:72px;padding:16px}nav{order:3;width:100%}}.confirm{overscroll-behavior:contain;color:#193b32;border:0;width:min(470px,100vw - 32px);max-width:none;max-height:calc(100dvh - 32px);margin:auto;overflow-y:auto}.confirm::backdrop{background:#122c2377}.confirm .actions{margin-top:22px}.confirm button{min-height:44px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:3px;outline:3px solid #bc7e23}@media (width<=480px){.confirm{padding:22px}.confirm .actions{grid-template-columns:1fr;display:grid}.confirm .actions button{width:100%}}.teaching-card,.editor,.ordered-technique{overflow-wrap:anywhere}.editor fieldset{grid-template-columns:minmax(0,1fr)}.actions button{overflow-wrap:anywhere;min-width:0;max-width:100%}.training-home{max-width:1000px;margin:auto}.training-overview{color:#fff;background:#18342b;border-radius:24px;margin:24px 0;padding:32px}.training-overview .eyebrow{color:#bdd7c8}.training-metrics{flex-wrap:wrap;gap:28px;margin:24px 0;display:flex}.training-metrics>div{flex-direction:column;flex:1;gap:8px;min-width:150px;display:flex}.training-metrics strong{font-size:42px;line-height:1.2}.training-days{gap:8px;max-width:520px;margin:28px 0;display:flex}.training-days>div{flex-direction:column;flex:1;align-items:center;gap:10px;font-size:12px;display:flex}.training-days strong{background:#2d4a3f;border:2px solid #0000;border-radius:50%;place-items:center;width:42px;height:42px;font-size:16px;display:grid}.training-days .trained{color:#18342b;background:#c8ead2}.training-days .today{border-color:#f9e9a5}.training-note{color:#d3e4d9;font-size:12px}@media (width<=480px){.training-overview{padding:20px}.training-days{gap:3px}.training-days strong{width:30px;height:30px}.training-metrics strong{font-size:34px}.training-metrics>div{min-width:110px}}.training-profile{background:#fff;border:1px solid #d8e0da;border-radius:18px;margin-top:32px;padding:24px}.profile-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.profile-heading h2{margin:0}.profile-heading p{color:#5b6c63;margin:8px 0 20px}.profile-belt{border:1px solid #d8e0da;border-radius:4px;justify-content:flex-end;align-items:center;height:24px;display:flex;overflow:hidden}.profile-belt span{width:64px;height:22px;margin-right:22px}.training-profile fieldset{border:0;gap:16px;min-width:0;margin:20px 0 0;padding:0;display:grid}.training-profile input,.training-profile select{width:100%}.training-profile fieldset:disabled{opacity:.6}.weekly-goal{margin:20px 0}.goal-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.weekly-goal progress{accent-color:#c8ead2;width:100%;height:12px}.weekly-goal fieldset{border:1px solid #6e8c79;border-radius:12px;gap:12px;min-width:0;margin-top:16px;padding:16px;display:grid}.weekly-goal label{color:#fff}.weekly-goal input{color:#18342b;width:100%;max-width:180px}.weekly-goal .quiet{color:#18342b;background:#e8eee9}.weekly-goal button{border-color:#d8e0da}.weekly-goal fieldset p{font-size:13px;line-height:1.6}.training-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.training-metrics>div{min-width:0}.training-metrics .training-time{font-size:28px}.training-metrics .weekly-goal{margin:0}.goal-value{align-items:baseline;gap:5px;display:flex}.goal-target{font-size:24px}.weekly-goal .goal-edit{color:#d3e4d9;background:0 0;border:0;align-self:flex-start;min-height:44px;padding:0;font-size:14px;text-decoration:underline}.weekly-goal:has(form){grid-column:1/-1}@media (width<=480px){.training-metrics{gap:20px 14px}.training-metrics .training-time{font-size:22px}}.training-metrics>div{background:#24493b;border:2px solid #8bb69c;border-radius:14px;padding:16px}@media (width<=480px){.training-metrics>div{padding:12px}}.training-metrics>div{color:#18342b;background:#fff}.training-metrics span{color:#5b6c63}.weekly-goal .goal-edit,.weekly-goal label{color:#18342b}.weekly-goal progress{accent-color:#18342b}.training-home>.training-profile{margin-top:0;margin-bottom:24px}.profile-belt>.belt-rank-panel{box-sizing:border-box;background:#161b1a;justify-content:flex-end;align-items:center;gap:4px;width:72px;padding:0 6px;display:flex}.profile-belt .belt-stripe{background:#fff;flex:none;width:4px;height:22px;display:block}
