:root{color:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--green:#a8170f;--green-dark:#8a150f;--muted:#8e857c;--line:#f0eadf;background:#f8f5f0;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.sidebar{background:var(--card);border-right:1px solid var(--line);z-index:4;flex-direction:column;width:252px;padding:29px 18px 17px;display:flex;position:fixed;inset:0 auto 0 0}.brand{justify-content:center;align-items:center;width:100%;margin:0 auto 30px;text-decoration:none;display:flex}.brand-logo{object-fit:contain;width:138px;height:138px;display:block}.brand-mark{grid-template-columns:repeat(2,1fr);gap:3px;width:28px;height:28px;display:grid;transform:rotate(-7deg)}.brand-mark span{background:#315b4a;border-radius:2px 6px;display:block}.brand-mark span:nth-child(2),.brand-mark span:nth-child(3){background:#b3aea8}.brand-name{letter-spacing:-1.1px;font:800 21px Manrope,sans-serif}.brand-name-roadmap{color:var(--ink)}.sidebar-label{color:var(--ink-muted);letter-spacing:1.45px;margin-bottom:12px;padding:0 13px;font-size:9px;font-weight:700}.main-nav{gap:4px;display:grid}.nav-item{text-align:left;width:100%;height:43px;color:var(--ink-muted);background:0 0;border:0;border-radius:7px;align-items:center;gap:12px;padding:0 12px;font-size:12px;font-weight:500;transition:all .18s;display:flex}.nav-active{color:var(--ink);background:#f4f0e7;font-weight:700}.nav-active:hover{background:#f2ece1}.nav-active:before{content:"";background:#47745b;border-radius:0 3px 3px 0;width:3px;height:28px;position:absolute;left:0}.soon-tag{color:var(--ink-muted);letter-spacing:.55px;margin-left:auto;font-size:8px;font-weight:700}.sidebar-bottom{margin-top:auto}.coach-card{border:1px solid var(--line);background:linear-gradient(140deg,#f8faf7,#f7f3ec);border-radius:9px;padding:14px 14px 13px}.coach-icon{color:#716a63;background:#e7efe4;border-radius:7px;place-items:center;width:29px;height:29px;margin-bottom:10px;display:grid}.coach-card strong{color:var(--ink);font-size:11px;display:block}.coach-card p{color:var(--ink-muted);margin:6px 0 11px;font-size:10px;line-height:1.6}.coach-progress{background:#e9e6e1;border-radius:4px;height:3px;margin-bottom:7px;overflow:hidden}.coach-progress span{border-radius:inherit;background:#968f87;width:28%;height:100%;display:block}.coach-card small{color:var(--ink-muted);font-size:9px}.settings-link{height:36px;margin:15px 0 7px}.profile{border-top:1px solid var(--line);align-items:center;gap:10px;padding:14px 4px 0;display:flex}.avatar{color:#69625b;background:#e9efe5;border-radius:50%;place-items:center;width:31px;height:31px;font:700 12px Manrope,sans-serif;display:grid}.profile-copy{gap:3px;display:grid}.profile-copy strong{color:var(--ink);font-size:10px}.profile-copy small{color:var(--ink-muted);font-size:9px}.profile-more{color:var(--ink-muted);margin-left:auto}.main-content{flex-direction:column;min-height:100vh;margin-left:252px;display:flex}.topbar{border-bottom:1px solid var(--line);background:#ffffff8c;justify-content:space-between;align-items:center;height:65px;padding:0 6.1%;display:flex}.breadcrumb{color:var(--ink-muted);align-items:center;gap:10px;font-size:11px;display:flex}.breadcrumb-slash{color:#cfc7bc}.breadcrumb strong{color:#574d47;font-weight:600}.help-button{color:var(--ink-muted);background:0 0;border:0;align-items:center;gap:7px;padding:6px 0;font-size:10px;display:flex}.mobile-menu{display:none!important}.page-content{flex:1;width:min(1120px,100%);margin:0 auto;padding:51px 6.1% 25px}.page-intro{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:29px;display:flex}.eyebrow{color:var(--ink-muted);letter-spacing:1.3px;align-items:center;gap:8px;font-size:9px;font-weight:700;display:flex}.eyebrow-line{background:#a09991;width:19px;height:1px;display:inline-block}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-1.55px;color:var(--ink);margin:11px 0 6px;font:700 35px Manrope,sans-serif}.intro-copy{color:var(--ink-muted);margin:0;font-size:12px}.button{border-radius:6px;justify-content:center;align-items:center;gap:8px;height:39px;padding:0 15px;font-size:11px;font-weight:600;transition:all .18s;display:inline-flex}.button-primary{border:1px solid var(--green);color:var(--card);background:var(--green);box-shadow:0 2px 4px #27493618}.button-primary:hover{background:var(--green-dark);transform:translateY(-1px);box-shadow:0 4px 10px #27493620}.button:disabled{cursor:not-allowed;opacity:.48;box-shadow:none;transform:none}.button-quiet{border:1px solid var(--line);color:#645d56;background:var(--card)}.button-quiet:hover{background:#f8faf7}.add-button{height:39px;margin-bottom:1px;padding:0 14px}.stats-row{grid-template-columns:1.2fr 1fr 1fr 1fr;gap:12px;margin-bottom:42px;display:grid}.stat-card{border:1px solid var(--line);background:var(--card);border-radius:8px;align-items:center;gap:11px;min-height:81px;padding:14px 15px;display:flex;position:relative;overflow:hidden}.stat-icon{color:#69625b;background:#f4f0e7;border-radius:7px;flex:0 0 34px;place-items:center;width:34px;height:34px;display:grid}.gi-icon{color:#776f67;background:#f4f0e7}.nogi-icon{color:var(--ink-muted);background:#f7f0e8}.video-icon{color:var(--ink-muted);background:#f6f2ea}.gi-mini{font:700 10px Manrope,sans-serif}.stat-card>div:nth-child(2){gap:4px;display:grid}.stat-label{letter-spacing:.7px;color:var(--ink-muted);white-space:nowrap;font-size:8px;font-weight:700}.stat-card strong{color:var(--ink);letter-spacing:-.5px;font:700 17px Manrope,sans-serif}.stat-card strong small{letter-spacing:0;color:var(--ink-muted);font:400 10px DM Sans,sans-serif}.stat-accent{background:#9b938b;width:28px;height:2px;position:absolute;top:0;right:12px}.stat-dot{background:#bdc9a6;border-radius:50%;width:6px;height:6px;position:absolute;top:17px;right:13px}.video-dot{background:#c3baac}.library-section{border-top:1px solid var(--line);padding-top:26px}.section-heading{justify-content:space-between;align-items:flex-end;margin-bottom:20px;display:flex}.section-heading .eyebrow{margin-bottom:6px;font-size:8px}.section-heading h2{letter-spacing:-.5px;color:var(--ink);margin:0;font:700 18px Manrope,sans-serif}.section-heading h2 span{min-width:19px;height:19px;color:var(--ink-muted);vertical-align:2px;background:#f3eee4;border-radius:5px;place-items:center;margin-left:4px;padding:0 5px;font:600 9px DM Sans,sans-serif;display:inline-grid}.sort-hint{color:var(--ink-muted);align-items:center;gap:6px;padding-bottom:2px;font-size:10px;display:flex}.filter-toolbar{gap:10px;margin-bottom:15px;display:flex}.search-box{border:1px solid var(--line);background:var(--card);min-width:220px;max-width:370px;height:38px;color:var(--ink-muted);border-radius:6px;flex:1;align-items:center;gap:9px;padding:0 10px;display:flex}.search-box:focus-within{border-color:#aea8a1;box-shadow:0 0 0 2px #dce8da7a}.search-box input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;flex:1;font-size:10px}.search-box input::placeholder{color:var(--ink-muted)}.search-box kbd{border:1px solid var(--line);color:var(--ink-muted);background:#f9f7f2;border-radius:3px;padding:2px 4px;font:9px DM Sans,sans-serif}.clear-search{color:var(--ink-muted);background:0 0;border:0;place-items:center;padding:3px;display:grid}.filter-select{height:38px;color:var(--ink-muted);border:1px solid var(--line);background:var(--card);border-radius:6px;align-items:center;gap:7px;padding:0 10px;display:flex;position:relative}.filter-select select{appearance:none;color:#6e675f;cursor:pointer;background:0 0;border:0;outline:0;width:91px;font-size:10px}.filter-select>svg:last-child{pointer-events:none;margin-left:-6px}.category-tabs{scrollbar-width:none;align-items:center;gap:6px;margin-bottom:17px;padding-bottom:3px;display:flex;overflow-x:auto}.category-tabs::-webkit-scrollbar{display:none}.category-tab{min-height:27px;color:var(--ink-muted);background:0 0;border:1px solid #0000;border-radius:5px;flex:none;padding:0 10px;font-size:9px;transition:all .15s}.category-active{color:#5d534c;background:#f2ede2;font-weight:600}.category-tab span{color:var(--ink-muted);margin-left:6px}.technique-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.technique-card{border:1px solid var(--line);background:var(--card);border-radius:8px;flex-direction:column;min-width:0;padding:15px 15px 0;transition:all .18s;display:flex}.technique-card:hover{border-color:var(--line);transform:translateY(-1px);box-shadow:0 5px 16px #2c48380a}.card-topline{justify-content:space-between;align-items:flex-start;min-height:24px;display:flex}.style-pill{color:#777068;background:#eff4ed;border-radius:4px;align-items:center;gap:5px;padding:4px 7px;font-size:8px;font-weight:600;display:inline-flex}.pill-dot{background:currentColor;border-radius:50%;width:5px;height:5px}.card-menu{opacity:.46;gap:3px;margin:-4px -6px 0 0;transition:opacity .16s;display:flex}.technique-card:hover .card-menu,.card-menu:focus-within{opacity:1}.icon-button{width:33px;height:33px;color:var(--ink-muted);background:0 0;border:0;border-radius:6px;place-items:center;display:grid}.icon-button:hover{color:var(--ink);background:#f5f1e9}.icon-button.small{width:25px;height:25px}.delete-button:hover{color:#c81f16;background:#fdf2ee}.technique-card h3{color:var(--ink);letter-spacing:-.25px;margin:8px 0 10px;font:700 14px/1.4 Manrope,sans-serif}.card-meta{color:var(--ink-muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:9px;display:flex}.card-meta>span{align-items:center;gap:5px;display:inline-flex}.steps-preview{border-top:1px solid var(--line);margin-top:14px;padding-top:10px}.steps-preview p{color:var(--ink-muted);align-items:baseline;gap:8px;margin:0 0 6px;font-size:9px;line-height:1.4;display:flex}.steps-preview p span{color:var(--ink-muted);flex:none;font:600 8px Manrope,sans-serif}.steps-preview small{color:var(--ink-muted);padding:1px 0 0 23px;font-size:8px;display:block}.card-note{color:var(--ink-muted);margin:9px 0 0;font-size:9px;line-height:1.5}.video-link{color:#726b64;align-items:center;gap:6px;width:fit-content;margin-top:12px;font-size:9px;font-weight:600;text-decoration:none;display:flex}.video-link:hover{color:var(--ink);text-decoration:underline}.video-link>svg{margin-left:1px}.play-dot{width:16px;height:16px;color:var(--ink-muted);background:#edf3eb;border-radius:50%;place-items:center;padding-left:1px;font-size:7px;display:grid}.linked-moves-preview{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.linked-label{color:var(--ink-muted);letter-spacing:.75px;align-items:center;gap:5px;margin-bottom:7px;font-size:7px;font-weight:700;display:inline-flex}.linked-moves-preview>div{flex-wrap:wrap;gap:5px;display:flex}.linked-moves-preview a{border:1px solid var(--line);color:#706962;background:#f7f9f5;border-radius:4px;align-items:center;gap:4px;max-width:100%;padding:5px 7px;font-size:8px;line-height:1.3;text-decoration:none;display:inline-flex}.linked-moves-preview a svg{flex:none}.card-footer{border-top:1px solid var(--line);color:var(--ink-muted);align-items:center;gap:5px;margin-top:13px;padding:9px 0;font-size:8px;display:flex}.sync-notice{border:1px solid var(--line);color:#756e66;background:#f4f7f1;border-radius:5px;margin:-12px 0 20px;padding:9px 11px;font-size:9px;line-height:1.5}.sync-error{color:#a8170f;background:#fdf2ee;border-color:#f6d3cc}.local-mode{color:var(--ink-muted);align-items:center;gap:6px;font-size:10px;display:inline-flex}.bottom-note{border:1px solid var(--line);color:var(--ink-muted);background:#f6f8f4;border-radius:6px;align-items:center;gap:9px;margin-top:23px;padding:11px 13px;font-size:9px;display:flex}.bottom-note strong{color:#67615a;font-weight:600}.bottom-note-icon{width:23px;height:23px;color:var(--ink-muted);background:#f1ebdf;border-radius:5px;flex:none;place-items:center;display:grid}.empty-state{border:1px dashed var(--line);text-align:center;background:#fbfcfa;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;min-height:255px;padding:25px;display:flex}.empty-illustration{width:48px;height:48px;color:var(--ink-muted);background:#f3eee5;border-radius:14px;place-items:center;margin-bottom:12px;display:grid;position:relative}.empty-illustration span{border:2px solid var(--line);width:19px;height:19px;color:var(--card);background:#6c655e;border-radius:50%;place-items:center;display:grid;position:absolute;bottom:-3px;right:-4px}.empty-state h3{color:var(--ink);margin:0 0 6px;font:700 14px Manrope,sans-serif}.empty-state p{max-width:330px;color:var(--ink-muted);margin:0 0 16px;font-size:10px;line-height:1.6}.empty-state .button{height:34px}.page-footer{border-top:1px solid var(--line);color:var(--ink-muted);letter-spacing:.75px;justify-content:space-between;padding:16px 6.1% 17px;font-size:8px;display:flex}.page-footer i{color:#c5bdb0;padding:0 4px;font-style:normal}.page-footer>span:last-child{letter-spacing:0;font-size:9px}.footer-heart{color:var(--ink-muted);margin-left:2px}.modal-backdrop{z-index:10;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#211d1bb8;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--card);border-radius:11px;width:min(510px,100%);max-height:min(92vh,850px);padding:24px;overflow-y:auto;box-shadow:0 20px 70px #15231d40}.modal-heading{justify-content:space-between;align-items:flex-start;margin-bottom:19px;display:flex}.modal-heading .eyebrow{font-size:8px}.modal-heading h2{color:var(--ink);letter-spacing:-.7px;margin:6px 0 0;font:700 22px Manrope,sans-serif}.modal form{gap:13px;display:grid}.field{color:#655e57;gap:6px;font-size:10px;font-weight:600;display:grid}.field>span:first-child{align-items:baseline;gap:5px;display:flex}.field b{color:#c81f16}.field small{color:var(--ink-muted);font-size:9px;font-weight:400}.field input,.field textarea,.field select{border:1px solid var(--line);width:100%;min-width:0;color:var(--ink);background:var(--card);border-radius:5px;outline:none;padding:9px 10px;font-size:10px;font-weight:400}.field input{height:36px}.field textarea{resize:vertical;line-height:1.55}.field input::placeholder,.field textarea::placeholder{color:var(--ink-muted)}.field-hint{border:1px dashed var(--line);color:var(--ink-muted);background:#faf8f5;border-radius:5px;margin:0;padding:10px;font-size:9px;font-weight:400;line-height:1.5}.move-picker{gap:5px;max-height:150px;padding-right:2px;display:grid;overflow-y:auto}.move-option{border:1px solid var(--line);min-height:40px;color:var(--ink-muted);cursor:pointer;background:#fbfcfa;border-radius:5px;align-items:center;gap:9px;padding:7px 9px;display:flex}.move-option input{accent-color:#6c655d;width:14px;height:14px;margin:0}.move-option>span{flex:1;gap:3px;min-width:0;display:grid}.move-option strong{color:#544b45;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:600;overflow:hidden}.move-option small{color:var(--ink-muted);font-size:8px}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.style-options{grid-template-columns:1fr 1fr;gap:6px;display:grid}.style-option{border:1px solid var(--line);color:#655e57;background:var(--card);cursor:pointer;border-radius:5px;justify-content:center;align-items:center;height:36px;font-size:10px;font-weight:600;transition:border-color .15s,background .15s,color .15s;display:flex;position:relative}.style-option:hover{border-color:#e0675d}.field .style-option input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.style-option-active{border-color:var(--green);color:var(--card);background:var(--green)}.style-option:has(input:focus-visible){box-shadow:0 0 0 2px #fae6e0}.select-wrap{display:block;position:relative}.select-wrap select{appearance:none;height:36px;padding-right:30px}.select-wrap>svg{color:var(--ink-muted);pointer-events:none;position:absolute;top:10px;right:10px}.input-icon{position:relative}.input-icon>svg{color:var(--ink-muted);position:absolute;top:10px;left:10px}.input-icon input{padding-left:33px}.form-error{color:#c81f16;margin:-2px 0 0;font-size:10px}.modal-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;margin-top:1px;padding-top:6px;display:flex}.modal-actions .button{height:35px}.nav-scrim{display:none}.sidebar{border-right-color:var(--line)}.nav-item{color:#645e57}.nav-item:hover{color:var(--ink);background:#f6f3ec}.nav-active,.nav-active:hover{color:#8a150f;background:#f9f6f1}.nav-active:before{background:#a8170f}.soon-tag{color:var(--ink-muted)}.coach-card{background:linear-gradient(140deg,#fefdfb,#fdf2ee);border-color:#fae6e0}.coach-icon{color:#a8170f;background:#fae6e0}.coach-card strong{color:var(--ink)}.coach-progress{background:#e9e6e1}.coach-progress span{background:#a8170f}.profile-copy strong,.breadcrumb strong{color:var(--ink)}.help-button:hover{color:#8a150f}.eyebrow-line{background:#a8170f}.eyebrow{color:var(--ink-muted)}h1{color:var(--ink)}.title-period{color:#a8170f}.intro-copy em{color:#8a150f}.button-primary{border-color:#a8170f}.button-primary:hover{background:#8a150f}.stats-row .stat-icon{color:#8a150f;background:#fae6e0}.stats-row .nogi-icon{color:var(--ink);background:#f3efe5}.stats-row .video-icon{color:#8a150f;background:#fdf2ee}.stat-label{color:var(--ink-muted)}.stat-card strong{color:var(--ink)}.stat-accent,.gi-dot,.video-dot{background:#a8170f}.nogi-dot{background:#26221f}.section-heading h2{color:var(--ink)}.section-heading h2 span,.category-active{color:#8a150f;background:#fae6e0}.category-tab:hover{color:#8a150f;background:#fdf2ee}.style-pill{color:#8a150f;background:#fae6e0}.style-pill.no-gi{color:var(--ink);background:#f3eee4}.style-pill.both{color:#8a150f;background:#fae6e0}.category-tag,.video-link,.video-link:hover{color:#8a150f}.play-dot{color:#8a150f;background:#fae6e0}.linked-label{color:var(--ink-muted)}.linked-moves-preview a{color:#8a150f;background:#fefcf9;border-color:#fae6e0}.linked-moves-preview a:hover{color:#8a150f;background:#fdf2ee;border-color:#eea79f}.bottom-note{background:#faf8f4;border-color:#fae6e0}.bottom-note strong{color:#8a150f}.bottom-note-icon,.empty-illustration{color:#8a150f;background:#fae6e0}.empty-illustration span{background:#a8170f}.empty-state h3{color:var(--ink)}.footer-heart{color:#a8170f}.modal-heading h2,.field{color:var(--ink)}.field b,.form-error{color:#8a150f}.field input:focus,.field textarea:focus,.field select:focus{border-color:#e0675d;box-shadow:0 0 0 2px #fae6e0}.move-option:has(input:checked){background:#faf8f4;border-color:#eea79f}.move-option input{accent-color:#a8170f}.move-option>svg{color:#8a150f}.sync-notice{color:#676059;background:#faf8f3;border-color:#fae6e0}.local-mode{color:#6d665e}.profile-trigger{border-top:1px solid var(--line);text-align:left;background:0 0;width:100%;padding:14px 4px 0}.profile-trigger:hover .profile-more{color:#8a150f}.profile-trigger .avatar{object-fit:cover;flex:0 0 31px}.profile-page{max-width:760px;margin:0 auto}.profile-intro{margin-bottom:24px}.profile-form{gap:14px;display:grid}.profile-hero-card,.profile-form-card{border:1px solid var(--line);background:var(--card);border-radius:9px;padding:19px;box-shadow:0 3px 12px #1d1a1808}.profile-hero-card{align-items:center;gap:17px;display:flex}.profile-photo-wrap{flex:none;position:relative}.profile-photo{object-fit:cover;border-radius:50%;width:86px;height:86px}.profile-photo-placeholder{color:#8a150f;background:linear-gradient(140deg,#faf8f4,#fae6e0);border:1px solid #f6d3cc;place-items:center;font:700 23px Manrope,sans-serif;display:grid}.photo-upload{border:2px solid var(--card);width:29px;height:29px;color:var(--card);cursor:pointer;background:#a8170f;border-radius:50%;place-items:center;display:grid;position:absolute;bottom:1px;right:0}.photo-upload:hover{background:#8a150f}.photo-upload input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.profile-hero-copy{min-width:0}.profile-hero-copy .eyebrow{margin-bottom:6px;font-size:8px}.profile-hero-copy>strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font:700 17px Manrope,sans-serif;display:block;overflow:hidden}.profile-hero-copy p{color:var(--ink-muted);margin:5px 0 0;font-size:10px;line-height:1.55}.remove-photo{color:#8a150f;background:0 0;border:0;align-items:center;gap:5px;margin-top:8px;padding:0;font-size:9px;display:inline-flex}.profile-card-heading{border-bottom:1px solid var(--line);color:#a8170f;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:14px;display:flex}.profile-card-heading .eyebrow{margin-bottom:4px;font-size:8px}.profile-card-heading h2{color:var(--ink);margin:0;font:700 15px Manrope,sans-serif}.profile-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 15px;display:grid}.profile-fields .field{font-size:10px}.profile-fields .field input,.profile-fields .field select,.profile-about textarea{height:38px;font-size:11px}.belt-fields{grid-template-columns:1fr 1fr;gap:8px;display:grid}.belt-fields .select-wrap select,.profile-fields .select-wrap select{padding:9px 28px 9px 10px}.profile-about{margin-top:14px}.profile-about textarea{min-height:86px;height:auto!important}.profile-actions{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-top:15px;padding-top:13px;display:flex}.profile-actions .button,.profile-save-top{height:36px}.profile-save-status{color:#8a150f;align-items:center;gap:5px;font-size:10px;display:inline-flex}.profile-save-top{flex:none}@media (width>=1500px){.page-content{padding-top:64px}.stats-row{margin-bottom:49px}}@media (width<=1100px){.sidebar{width:224px}.main-content{margin-left:224px}.page-content,.topbar,.page-footer{padding-left:4.5%;padding-right:4.5%}.stats-row{grid-template-columns:repeat(2,1fr);margin-bottom:33px}.technique-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.sidebar{width:260px;transition:transform .24s;transform:translate(-105%);box-shadow:8px 0 30px #201c1a12}.sidebar-open{transform:translate(0)}.nav-scrim{z-index:3;background:#2722204a;border:0;display:block;position:fixed;inset:0}.main-content{margin-left:0}.topbar{height:56px;padding:0 20px}.mobile-menu{margin-left:-8px;display:grid!important}.breadcrumb{margin-left:9px;margin-right:auto;font-size:10px}.help-button span{display:none}.page-content{padding:37px 20px 24px}.page-intro{flex-direction:column;align-items:flex-start;gap:17px;margin-bottom:24px}h1{font-size:30px}.add-button{align-self:stretch}.stats-row{gap:8px;margin-bottom:30px}.stat-card{gap:8px;min-height:72px;padding:10px}.stat-icon{flex-basis:30px;width:30px;height:30px}.stat-label{letter-spacing:.4px;font-size:7px}.stat-card strong{font-size:16px}.stat-card strong small{font-size:9px}.stat-dot{top:10px;right:9px}.stat-accent{right:9px}.section-heading{margin-bottom:16px}.sort-hint{font-size:9px}.technique-grid{gap:9px}.technique-card{padding-left:12px;padding-right:12px}.page-footer{padding:14px 20px}}@media (width<=520px){.page-content{padding:30px 16px 20px}.topbar{padding:0 16px}.help-button{justify-content:center;width:27px}.breadcrumb{gap:6px}.breadcrumb>span:first-child,.breadcrumb-slash{display:none}.stats-row{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{min-height:69px}.stat-card strong{font-size:15px}.filter-toolbar{gap:7px}.search-box{gap:6px;min-width:0;padding:0 8px}.search-box kbd{display:none}.search-box input{font-size:9px}.filter-select{gap:5px;padding:0 7px}.filter-select select{width:76px;font-size:9px}.category-tabs{margin-right:-16px}.technique-grid{grid-template-columns:1fr;gap:10px}.technique-card{padding:14px 14px 0}.card-menu{opacity:.8}.section-heading h2{font-size:16px}.sort-hint{text-align:right;max-width:94px;line-height:1.35}.bottom-note{align-items:flex-start;line-height:1.5}.page-footer{padding:13px 16px;font-size:7px}.page-footer>span:last-child{font-size:8px}.modal-backdrop{padding:10px}.modal{padding:19px 16px}.field-row{gap:8px}.profile-hero-card,.profile-form-card{padding:14px}.profile-photo{width:70px;height:70px}.profile-fields{grid-template-columns:1fr;gap:11px}.profile-save-top{align-self:stretch;width:100%}}.style-option{text-align:center;height:auto;min-height:36px;padding:4px 6px;line-height:1.25}.card-pills{flex-wrap:wrap;gap:5px;display:inline-flex}.status-pill{white-space:nowrap;border-radius:4px;align-items:center;padding:4px 7px;font-size:8px;font-weight:600;display:inline-flex}.status-learning{color:#706961;background:#f4f0e7}.status-drilling{color:#9a5b00;background:#fdf1dc}.status-sparring{color:#1f5f9e;background:#e7f0fa}.status-reliable{color:#1d7a3d;background:#e5f5ea}.modal-wide{width:min(620px,100%)}.panel{border:1px solid var(--line);background:var(--card);border-radius:9px;padding:18px;box-shadow:0 3px 12px #1d1a1806}.panel-heading{align-items:center;gap:11px;margin-bottom:14px;display:flex}.panel-heading .eyebrow{margin-bottom:3px;font-size:8px}.panel-heading h2{color:var(--ink);letter-spacing:-.3px;margin:0;font:700 15px Manrope,sans-serif}.insight-badge{color:#8a150f;background:#fae6e0;border-radius:7px;flex:none;place-items:center;width:30px;height:30px;display:grid}.panel-hint{color:var(--ink-muted);margin:0 0 10px;font-size:10px;line-height:1.6}.insights-panel{margin:-18px 0 34px}.text-button{color:#8a150f;background:0 0;border:0;align-items:center;gap:5px;padding:0;font-size:10px;font-weight:600;display:inline-flex}.text-button:hover{color:#5e0f0b;text-decoration:underline}.text-button.danger{color:#a8170f;margin-top:4px}.chip{color:#8a150f;background:#fefcf9;border:1px solid #fae6e0;border-radius:4px;align-items:center;gap:4px;max-width:100%;padding:5px 8px;font-size:9px;line-height:1.3;display:inline-flex}.chip-quiet{color:#655f58;border-color:var(--line);background:#faf8f4}.chip-button{cursor:pointer}.chip-button:hover{background:#fdf2ee;border-color:#eea79f}.insight-list{gap:8px;margin:0 0 12px;padding:0;list-style:none;display:grid}.insight{border:1px solid var(--line);background:#fbf9f6;border-radius:7px;align-items:flex-start;gap:10px;padding:10px 11px;display:flex}.insight p{color:var(--ink);margin:0 0 5px;font-size:11px;line-height:1.55}.insight-icon{border-radius:6px;flex:none;place-items:center;width:26px;height:26px;display:grid}.insight-struggle{background:#fbf9f6;border-color:#fae6e0}.insight-struggle .insight-icon{color:#8a150f;background:#fae6e0}.insight-strength .insight-icon{color:#1d7a3d;background:#e5f5ea}.insight-frequency .insight-icon{color:#706961;background:#f4f0e7}.insight-done{color:#1d7a3d;align-items:center;gap:4px;font-size:10px;font-weight:600;display:inline-flex}.session-list{gap:12px;display:grid}.session-card,.goal-card{border:1px solid var(--line);background:var(--card);border-radius:8px;min-width:0;padding:16px;transition:all .18s}.session-card:hover,.goal-card:hover{border-color:var(--line);box-shadow:0 5px 16px #2824210a}.session-card:hover .card-menu,.goal-card:hover .card-menu{opacity:1}.session-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.session-head h3{color:var(--ink);letter-spacing:-.25px;margin:0 0 8px;font:700 14px Manrope,sans-serif}.session-techniques{flex-wrap:wrap;gap:5px;margin-top:12px;display:flex}.session-drilled{color:#625c55;margin:10px 0 0;font-size:10px;line-height:1.55}.session-drilled strong{color:var(--ink)}.reflections{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin-top:12px;display:grid}.reflection{border-left:3px solid;border-radius:6px;padding:9px 10px}.reflection span{letter-spacing:.75px;margin-bottom:4px;font-size:7px;font-weight:700;display:block}.reflection p{color:var(--ink);white-space:pre-line;margin:0;font-size:10px;line-height:1.5}.reflection-worked{background:#f2faf5;border-color:#3a9a5b}.reflection-worked span{color:#1d7a3d}.reflection-wrong{background:#faf8f5;border-color:#a8170f}.reflection-wrong span{color:#8a150f}.reflection-next{background:#f2f7fc;border-color:#2f6fb0}.reflection-next span{color:#1f5f9e}.suggestions{margin:-10px 0 26px}.suggestions .eyebrow{margin-bottom:8px;font-size:8px}.suggestions>div{flex-wrap:wrap;gap:6px;display:flex}.goal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.goal-achieved{border-color:var(--line);background:#fbfdfb}.achieved-tag{color:#1d7a3d;letter-spacing:.6px;align-items:center;gap:4px;margin-bottom:6px;font-size:8px;font-weight:700;display:inline-flex}.progress{align-items:center;gap:10px;margin:12px 0 4px;display:flex}.progress-track{background:#f3ede3;border-radius:6px;flex:1;height:6px;overflow:hidden}.progress-track span{border-radius:inherit;background:linear-gradient(90deg,#e0675d,#a8170f);height:100%;transition:width .3s;display:block}.goal-achieved .progress-track span{background:#3a9a5b}.progress strong{text-align:right;min-width:32px;color:var(--ink);font:700 11px Manrope,sans-serif}.goal-techniques{gap:5px;margin:10px 0 0;padding:0;list-style:none;display:grid}.goal-techniques li{border-top:1px solid var(--line);color:var(--ink);justify-content:space-between;align-items:center;gap:8px;padding:5px 0;font-size:10px;display:flex}.goal-techniques li>span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.status-select select{appearance:none;border:1px solid var(--line);height:26px;color:var(--ink);background:var(--card);cursor:pointer;border-radius:5px;padding:0 24px 0 8px;font-size:9px}.status-select>svg{top:6px;right:7px}.goal-actions{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.status-section{margin-top:34px}.status-board{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.status-column{border:1px solid var(--line);background:#fbf9f5;border-radius:8px;min-width:0;padding:10px}.status-column-head{color:var(--ink-muted);justify-content:space-between;align-items:center;margin-bottom:9px;font-size:9px;font-weight:600;display:flex}.status-item{border:1px solid var(--line);background:var(--card);border-radius:6px;gap:3px;margin-bottom:6px;padding:8px;display:grid}.status-item strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.status-item small{color:var(--ink-muted);font-size:8px}.status-item .status-select{margin-top:4px}.status-item .status-select select{width:100%}.status-empty{color:var(--ink-muted);margin:4px 0;font-size:9px}.game-tabs{margin-top:-8px}.game-editor{padding:0;overflow:hidden}.game-editor-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:14px;padding:16px 18px 12px;display:flex}.game-title-fields{flex:1;gap:2px;min-width:0;display:grid}.game-title-input,.game-description-input{background:0 0;border:1px solid #0000;border-radius:5px;outline:none;width:100%;margin-left:-6px;padding:3px 6px}.game-title-input{color:var(--ink);letter-spacing:-.4px;font:700 18px Manrope,sans-serif}.game-description-input{color:#746d65;font-size:11px}.game-title-input:hover,.game-description-input:hover{border-color:var(--line)}.game-title-input:focus,.game-description-input:focus{background:var(--card);border-color:#e0675d;box-shadow:0 0 0 2px #fae6e0}.game-editor-actions{align-items:center;gap:8px;padding-top:6px;display:flex}.save-state{color:var(--ink-muted);white-space:nowrap;font-size:9px}.save-saving,.save-unsaved{color:#9a5b00}.save-error{color:#8a150f;font-weight:600}.game-editor>.sync-notice{margin:10px 18px 0}.game-workspace{grid-template-columns:minmax(0,1fr);display:grid}.diagram-wrap{background-color:#fefcf9;background-image:radial-gradient(#efe9dc 1px,#0000 1px);background-size:18px 18px;flex-direction:column;min-width:0;min-height:260px;display:flex}.diagram-scroll{flex:1;padding:8px;overflow:auto}.game-diagram{width:100%;height:auto;margin:0 auto;display:block}.edge path{fill:none;stroke-width:2.2px}.edge-next path{stroke:#3fa155}.edge-fallback path{stroke:#a8170f;stroke-dasharray:6 4}.edge text{fill:#7f776f;paint-order:stroke;stroke:#fefcf9;stroke-width:4px;stroke-linejoin:round;font:600 9px DM Sans,sans-serif}.edge-fallback text{fill:#8a150f}.edge-active path{stroke-width:3.2px}.arrow-next{fill:#3fa155}.arrow-fallback{fill:#a8170f}.node{cursor:pointer;outline:none}.node rect{stroke-width:2px;filter:drop-shadow(0 2px 3px #5e0f0b22);transition:filter .15s}.node text{pointer-events:none;font:600 11px DM Sans,sans-serif}.node:hover rect,.node:focus-visible rect{filter:drop-shadow(0 3px 7px #5e0f0b40)}.node-selected rect{stroke-width:3.5px;stroke:#201d1b!important}.node:focus-visible rect{stroke:#201d1b}.node-technique{stroke:var(--card);stroke-width:1.5px}.phase-standing rect{fill:#f8cfa9;stroke:#d48848}.phase-standing text{fill:#4a2a0f}.phase-takedown rect{fill:#eea79f;stroke:#c81f16}.phase-takedown text{fill:#5e0f0b}.phase-guard rect{fill:#5a2a86;stroke:#3d1763}.phase-guard text{fill:var(--card)}.phase-pass rect{fill:#f7e7a3;stroke:#c7a73a}.phase-pass text{fill:#4a3b05}.phase-sweep rect{fill:#3f2370;stroke:#26114d}.phase-sweep text{fill:var(--card)}.phase-escape rect{fill:#cfe3f5;stroke:#4a7fb0}.phase-escape text{fill:#0f2e4d}.phase-dominant rect{fill:#a8170f;stroke:#8a150f}.phase-dominant text{fill:var(--card)}.phase-submission rect{fill:#f6d3cc;stroke:#8a150f}.phase-submission text{fill:#5e0f0b}.status-dot-learning{fill:#9f9890}.status-dot-drilling{fill:#e09a1e}.status-dot-sparring{fill:#2f6fb0}.status-dot-reliable{fill:#2f9a52}.diagram-empty{color:var(--ink-muted);flex:1;place-content:center;justify-items:center;gap:10px;font-size:11px;display:grid}.diagram-legend{border-top:1px solid var(--line);background:var(--card);color:var(--ink-muted);flex-wrap:wrap;gap:14px;padding:9px 14px;font-size:9px;display:flex}.diagram-legend span{align-items:center;gap:6px;display:inline-flex}.legend-line{border-top:2.5px solid #3fa155;width:20px;height:0;display:inline-block}.legend-fallback{border-top:2.5px dashed #a8170f}.legend-dot{background:#2f9a52;border-radius:50%;width:9px;height:9px;display:inline-block}.inspector{border-top:1px solid var(--line);background:var(--card);grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:11px 18px;padding:16px 18px;display:grid}.inspector>.inspector-head,.inspector>.inspector-technique,.inspector>.text-button{grid-column:1/-1}.inspector>.text-button{justify-self:start}.inspector-empty{text-align:center;color:#8a150f;grid-template-columns:1fr;align-content:center;justify-items:center}.inspector-empty p{color:var(--ink-muted);margin:0;font-size:10px;line-height:1.6}.inspector-head{justify-content:space-between;align-items:center;display:flex}.phase-chip{border-radius:5px;padding:4px 8px;font-size:9px;font-weight:700;display:inline-flex}.phase-chip.phase-standing{color:#4a2a0f;background:#f8cfa9}.phase-chip.phase-takedown{color:#5e0f0b;background:#eea79f}.phase-chip.phase-guard{color:var(--card);background:#5a2a86}.phase-chip.phase-pass{color:#4a3b05;background:#f7e7a3}.phase-chip.phase-sweep{color:var(--card);background:#3f2370}.phase-chip.phase-escape{color:#0f2e4d;background:#cfe3f5}.phase-chip.phase-dominant{color:var(--card);background:#a8170f}.phase-chip.phase-submission{color:#5e0f0b;background:#f6d3cc}.inspector-technique{border:1px solid var(--line);background:#fbf9f6;border-radius:6px;padding:8px 9px}.inspector-technique ol{color:#625c55;margin:7px 0 0;padding-left:16px;font-size:9px;line-height:1.5}.inspector-quick{grid-template-columns:1fr 1fr;gap:6px;display:grid}.inspector-quick .button{height:34px;padding:0 8px;font-size:10px}.fallback-button{color:#8a150f;border-color:#f6d3cc}.fallback-button:hover{background:#faf8f5}.inspector-section{border-top:1px solid var(--line);gap:7px;padding-top:10px;display:grid}.inspector-section .eyebrow{font-size:8px}.inspector-section .panel-hint{margin:0}.connection-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.connection{border:1px solid var(--line);border-left:3px solid #3fa155;border-radius:6px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:5px;padding:6px 6px 6px 8px;display:grid}.connection-fallback{border-left:3px dashed #a8170f}.connection-target{min-width:0;color:var(--ink);text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;padding:0;font-size:10px;font-weight:600;overflow:hidden}.connection-target:hover{color:#8a150f;text-decoration:underline}.connection-kind select{appearance:none;border:1px solid var(--line);background:var(--card);height:24px;color:var(--ink);cursor:pointer;border-radius:4px;padding:0 20px 0 6px;font-size:9px}.connection-kind>svg{top:6px;right:5px}.connection-label{border:1px solid var(--line);height:24px;color:var(--ink);border-radius:4px;outline:none;grid-column:1/3;padding:0 6px;font-size:9px}.connection-label:focus{border-color:#e0675d}.connect-row{grid-template-columns:minmax(0,1fr) 88px auto;gap:5px;display:grid}.connect-row select{appearance:none;border:1px solid var(--line);background:var(--card);width:100%;height:30px;color:var(--ink);border-radius:5px;padding:0 22px 0 7px;font-size:9px}.connect-row .select-wrap>svg{top:8px;right:6px}.connect-row .button{height:30px;padding:0 10px;font-size:10px}.from-list{flex-wrap:wrap;gap:5px;display:flex}.overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.overview-wide{grid-column:1/-1}.overview-goals,.overview-sessions{gap:4px;margin:0 0 12px;padding:0;list-style:none;display:grid}.overview-goals li{border-bottom:1px solid var(--line);color:var(--ink);padding:6px 0;font-size:11px;font-weight:600}.overview-goals .progress{margin:6px 0 0}.overview-sessions li{border-bottom:1px solid var(--line);grid-template-columns:150px auto minmax(0,1fr);align-items:center;gap:10px;padding:8px 0;font-size:10px;display:grid}.overview-sessions strong{color:var(--ink)}.overview-session-text{color:#746d65;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.profile-trigger{border:0;border-top:1px solid var(--line)}.topbar{background:linear-gradient(90deg,#a8170f 0%,#8a150f 100%);border-bottom-color:#8a150f}.breadcrumb strong,.topbar .mobile-menu{color:var(--card)}.topbar .mobile-menu:hover{color:var(--card);background:#ffffff26}.page-logo-anchor{height:0;position:relative}.page-logo{background:0 0;border:0;width:86px;height:86px;padding:0;display:block;position:absolute;top:-37px;right:0}@media (width>=1500px){.page-logo{top:-50px}}.page-logo img{object-fit:contain;width:100%;height:100%;transition:transform .18s;display:block}.page-logo:hover img{transform:scale(1.04)}@media (width<=760px){.page-logo{width:72px;height:72px;top:-27px}.page-intro .eyebrow,.page-intro h1{padding-right:76px}}.sidebar-toggle{margin-left:-10px;margin-right:6px;color:var(--card)!important}@media (width>=761px){.topbar{justify-content:flex-start}}.sidebar-toggle:hover{background:#ffffff26!important}.sidebar,.main-content{transition:width .2s,margin-left .2s,padding .2s}@media (width>=761px){.sidebar-collapsed .sidebar{width:76px;padding:22px 12px 17px}.sidebar-collapsed .main-content{margin-left:76px}.sidebar-collapsed .brand{margin-bottom:20px}.sidebar-collapsed .brand-logo{width:50px;height:50px}.sidebar-collapsed .sidebar-label,.sidebar-collapsed .nav-item span,.sidebar-collapsed .coach-card,.sidebar-collapsed .profile-copy,.sidebar-collapsed .profile-more{display:none}.sidebar-collapsed .nav-item{justify-content:center;padding:0}.sidebar-collapsed .profile-trigger{justify-content:center;padding-left:0;padding-right:0}}@media (width<=760px){.sidebar-toggle{display:none!important}}.stat-card-link{width:100%;font:inherit;text-align:left;cursor:pointer;transition:all .18s}.stat-card-link:hover{border-color:#eea79f;transform:translateY(-1px);box-shadow:0 5px 16px #28242110}.stat-card-link:focus-visible{outline-offset:2px;outline:2px solid #a8170f}.stat-go{color:#c9c1b5;transition:color .18s;position:absolute;bottom:11px;right:11px}.stat-card-link:hover .stat-go{color:#a8170f}.field>span:first-child{flex-wrap:wrap}.mic-button{color:#8a150f;background:var(--card);cursor:pointer;border:1px solid #f6d3cc;border-radius:11px;align-items:center;gap:4px;height:22px;margin-left:auto;padding:0 8px;font-size:9px;font-weight:600;display:inline-flex}.mic-button:hover{background:#faf8f5;border-color:#eea79f}.mic-on{color:var(--card);background:#a8170f;border-color:#a8170f;animation:1.4s ease-in-out infinite mic-pulse}.mic-on:hover{background:#8a150f}@keyframes mic-pulse{0%,to{box-shadow:0 0 #a8170f55}50%{box-shadow:0 0 0 5px #a8170f00}}.mic-interim{color:var(--ink-muted);flex-basis:100%;font-size:9px;font-style:italic;font-weight:400}.mic-error{color:#8a150f;flex-basis:100%;margin:0;font-size:9px;font-weight:400}.voice-panel{background:#fefdfb;border:1px dashed #f6d3cc;border-radius:8px;gap:8px;padding:12px;display:grid}.voice-live{background:#faf8f5;border-style:solid;border-color:#a8170f}.voice-button{justify-self:start;height:36px}.voice-live .voice-button{animation:1.4s ease-in-out infinite mic-pulse}.voice-panel p{color:#746d65;margin:0;font-size:10px;line-height:1.55}.voice-transcript{color:var(--ink)}.voice-transcript i{color:var(--ink-muted)}@media (prefers-reduced-motion:reduce){.mic-on,.voice-live .voice-button{animation:none}}.auth-loading{background:#f8f5f0;place-items:center;min-height:100vh;display:grid}.auth-loading img{opacity:.85;width:120px;animation:1.6s ease-in-out infinite auth-breathe}@keyframes auth-breathe{50%{opacity:.6;transform:scale(.96)}}.auth-shell{background:#f8f5f0;place-items:start center;min-height:100vh;padding:0 16px 40px;display:grid;position:relative}.auth-band{background:linear-gradient(90deg,#a8170f 0%,#8a150f 100%);height:190px;position:absolute;inset:0 0 auto}.auth-card{border:1px solid var(--line);background:var(--card);text-align:center;border-radius:14px;width:min(420px,100%);margin-top:60px;padding:28px 28px 22px;position:relative;box-shadow:0 20px 60px #5e0f0b26}.auth-logo{object-fit:contain;width:120px;height:120px;margin:-6px auto 6px;display:block}.auth-card h1{margin:0 0 6px;font-size:28px}.auth-card .intro-copy{margin-bottom:18px}.auth-notice{text-align:left;margin:0 0 14px}.auth-tabs{background:#f6f2ea;border-radius:8px;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:16px;padding:4px;display:grid}.auth-tabs button{color:#746d65;background:0 0;border:0;border-radius:6px;height:34px;font-size:11px;font-weight:600}.auth-tabs .auth-tab-active{background:var(--card);color:#8a150f;box-shadow:0 1px 4px #2824211a}.auth-form{text-align:left;gap:13px;display:grid}.auth-form .field input{height:40px;font-size:12px}.password-wrap{display:block;position:relative}.password-wrap input{padding-right:40px}.password-wrap .icon-button{position:absolute;top:7px;right:6px}.auth-submit{width:100%;height:42px;margin-top:2px;font-size:12px}.auth-footnote{color:var(--ink-muted);margin:16px 0 0;font-size:9px;line-height:1.5}@media (width<=520px){.auth-band{height:150px}.auth-card{margin-top:36px;padding:22px 18px 18px}}@media (width<=1100px){.status-board{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.goal-grid,.overview-grid{grid-template-columns:1fr}.insights-panel{margin-top:-10px}.overview-sessions li{grid-template-columns:1fr auto}.overview-session-text{grid-column:1/-1}.inspector{grid-template-columns:minmax(0,1fr)}}@media (width<=520px){.page-logo{top:-20px}.style-options{grid-template-columns:repeat(2,minmax(0,1fr))!important}.field-row,.status-board{grid-template-columns:1fr}.game-editor-head{flex-direction:column;gap:6px}.diagram-scroll{max-height:60vh}.panel{padding:14px}}.category-field{border:0;min-width:0;margin:0;padding:0}.category-field legend{width:100%;color:var(--ink);flex-wrap:wrap;align-items:baseline;gap:5px;margin-bottom:6px;padding:0;font-size:10px;font-weight:600;display:flex}.category-field legend small{color:var(--ink-muted);font-size:9px;font-weight:400}.category-manage{margin-left:auto;font-size:9px}.category-checks{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px;display:grid}.category-check{border:1px solid var(--line);min-height:36px;color:var(--ink);background:var(--card);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 9px;font-size:10px;font-weight:500;transition:border-color .15s,background .15s;display:flex;position:relative}.category-check:hover{border-color:#e0675d}.category-check input{opacity:0;width:1px;height:1px;position:absolute}.category-box{color:#0000;background:var(--card);border:1.5px solid #d4cdc3;border-radius:4px;flex:none;place-items:center;width:16px;height:16px;transition:all .15s;display:grid}.category-check-on{color:#8a150f;background:#faf8f4;border-color:#eea79f;font-weight:600}.category-check-on .category-box{color:var(--card);background:#a8170f;border-color:#a8170f}.category-check:has(input:focus-visible){border-color:#a8170f;box-shadow:0 0 0 2px #fae6e0}.card-meta .category-tag+.category-tag{margin-left:-4px}.settings-page{max-width:760px}.settings-panel{margin-bottom:16px}.category-list{gap:6px;margin:0 0 14px;padding:0;list-style:none;display:grid}.category-list li{border:1px solid var(--line);background:#fbf9f6;border-radius:7px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:8px 8px 8px 12px;display:grid}.category-list li>span{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.category-list small{color:var(--ink-muted);font-size:9px}.category-add{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;margin-bottom:14px;display:grid}.category-add .field input{height:38px;font-size:11px}.category-add .button{height:38px}.category-unlisted{gap:7px;margin-bottom:14px;display:grid}.category-unlisted .eyebrow{font-size:8px}.category-unlisted>div{flex-wrap:wrap;gap:6px;display:flex}.settings-message{margin:0 0 12px}.settings-panel .panel-hint strong{color:var(--ink)}.signout-link{height:36px;margin:0 0 7px}.sidebar-edge{z-index:5;border:1px solid var(--line);width:24px;height:24px;color:var(--ink-muted);background:var(--card);cursor:pointer;border-radius:50%;place-items:center;padding:0;transition:all .15s;display:grid;position:absolute;top:74px;right:-12px;box-shadow:0 2px 6px #2824211a}.sidebar-edge:hover{color:var(--card);background:#a8170f;border-color:#a8170f}.sidebar-edge:focus-visible{outline-offset:2px;outline:2px solid #a8170f}@media (width>=761px){.sidebar-collapsed .signout-link,.sidebar-collapsed .settings-link{justify-content:center;padding:0}}@media (width<=760px){.sidebar-edge{display:none}}.video-drop{color:#8a150f;cursor:pointer;background:#fefdfb;border:1.5px dashed #f6d3cc;border-radius:8px;justify-items:center;gap:4px;width:100%;padding:16px;transition:all .15s;display:grid}.video-drop:hover:not(:disabled){background:#faf8f4;border-color:#a8170f}.video-drop:disabled{cursor:progress}.video-drop strong{color:var(--ink);font-size:11px}.video-drop small{color:var(--ink-muted);font-size:9px;font-weight:400}.video-preview{gap:8px;display:grid}.video-preview video,.card-video{background:#13110f;border-radius:8px;width:100%;max-height:280px;display:block}.video-preview-actions{gap:6px;display:flex}.video-preview-actions .button{height:30px;padding:0 10px;font-size:10px}.video-remove{color:#8a150f}.upload-progress{background:#f3ede3;border-radius:9px;height:18px;position:relative;overflow:hidden}.upload-progress span{background:linear-gradient(90deg,#e0675d,#a8170f);transition:width .2s;position:absolute;inset:0 auto 0 0}.upload-progress b{text-align:center;color:var(--ink);font-size:9px;line-height:18px;display:block;position:relative}.card-video{max-height:220px;margin-top:12px}.handle-input{display:block;position:relative}.handle-input b{color:#8a150f;font-size:12px;font-weight:700;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.handle-input input{padding-left:24px}.field input:disabled{color:#746d65;cursor:not-allowed;background:#f7f4ee}.profile-handle,.person-handle{color:#8a150f;font-size:11px;font-weight:600;display:block}.sharing-hint{margin:10px 0 12px}.sharing-hint strong{color:var(--ink)}.share-options{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;margin-bottom:8px;display:grid}.share-option-text{gap:2px;display:grid}.share-option-text strong{font-size:10px}.share-option-text small{color:var(--ink-muted);font-size:9px;font-weight:400}.share-private-note{grid-column:1/-1;margin:2px 0 0}.profile-form-card+.profile-form-card{margin-top:0}.community-me{border:1px solid var(--line);color:var(--ink);background:#f4faf5;border-radius:7px;flex-wrap:wrap;align-items:center;gap:8px;margin:-12px 0 22px;padding:10px 12px;font-size:10px;display:flex}.community-me>svg{color:#1d7a3d}.community-me-private{background:#faf8f3;border-color:#fae6e0}.community-me-private>svg{color:#8a150f}.community-me .text-button{margin-left:auto}.community-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.community-toolbar .category-tabs{margin:0}.community-toolbar .category-tab{align-items:center;gap:5px;display:inline-flex}.community-search{flex:1;max-width:380px;margin-left:auto}.gym-filter{border:1px solid var(--line);background:var(--card);height:38px;color:var(--ink-muted);border-radius:8px;align-items:center;gap:7px;padding:0 10px;display:inline-flex}.gym-filter:focus-within{border-color:#a8170f}.gym-filter select{font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;outline:none;max-width:220px;font-size:13px}.active-filter{color:#716a62;align-items:center;gap:8px;margin:-6px 0 14px;font-size:13px;display:flex}.people-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.person-card{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:9px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;transition:all .18s;display:grid}.person-card:hover{border-color:#eea79f;transform:translateY(-1px);box-shadow:0 5px 16px #28242110}.person-card:focus-visible{outline-offset:2px;outline:2px solid #a8170f}.person-card-private{cursor:default;opacity:.75}.person-card-private:hover{box-shadow:none;border-color:var(--line);transform:none}.person-avatar{object-fit:cover;border-radius:50%;flex:none;place-items:center;display:grid}.person-avatar-initials{color:#8a150f;background:linear-gradient(140deg,#faf8f4,#fae6e0);font-family:Manrope,sans-serif;font-weight:700}.person-copy{gap:2px;min-width:0;display:grid}.person-copy strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font:700 13px Manrope,sans-serif;overflow:hidden}.person-copy small{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.person-counts{color:#746d65;gap:10px;margin-top:3px;font-size:9px;display:flex}.person-counts span{align-items:center;gap:4px;display:inline-flex}.favourite-button{border:1px solid var(--line);color:#746d65;background:var(--card);cursor:pointer;border-radius:17px;align-items:center;gap:6px;height:34px;padding:0 12px;font-size:10px;font-weight:600;transition:all .15s;display:inline-flex}.favourite-button:hover{color:#b07a06;border-color:#e0a72e}.favourite-on{color:#a87000;background:#fff8e6;border-color:#f1c75b}.favourite-compact{justify-content:center;width:34px;padding:0}.person-page{gap:16px;display:grid}.back-link{justify-self:start}.person-hero{grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:18px;display:grid}.person-hero-copy h1{margin:6px 0 2px;font-size:26px}.person-hero-copy .eyebrow{font-size:8px}.person-meta{color:#746d65;margin:6px 0 0;font-size:11px}.person-about{color:var(--ink);white-space:pre-line;margin:10px 0 0;font-size:11px;line-height:1.6}.person-tabs{margin-bottom:0}.person-tabs .category-tab{align-items:center;gap:5px;display:inline-flex}.readonly-card{padding-bottom:0}.readonly-head{border-bottom:1px solid var(--line)}.readonly-game-title{color:var(--ink);margin:0 0 4px;font:700 17px Manrope,sans-serif}.readonly-goal-title{color:var(--ink);margin:0 0 6px;font:700 14px Manrope,sans-serif}.readonly-inspector{grid-template-columns:1fr}.readonly-inspector h4{color:var(--ink);margin:0;font:700 14px Manrope,sans-serif}@media (width<=760px){.person-hero{grid-template-columns:auto minmax(0,1fr)}.person-hero .favourite-button{grid-column:1/-1;justify-self:start}.community-me .text-button{margin-left:0}.community-search{flex-basis:100%;max-width:none}.gym-filter{flex-basis:100%}.gym-filter select{flex:1;max-width:none}}.private-pill,.public-pill{white-space:nowrap;border-radius:4px;align-items:center;gap:4px;padding:4px 7px;font-size:8px;font-weight:600;display:inline-flex}.private-pill{color:#625c55;background:#f3eee4}.public-pill{color:#1d7a3d;background:#e5f5ea}.card-meta .public-pill{padding:3px 6px}.clickable-card{cursor:pointer}.card-title-button{color:inherit;font:inherit;letter-spacing:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.card-title-button:hover{color:#8a150f;text-underline-offset:3px;text-decoration:underline}.card-title-button:focus-visible{outline-offset:2px;border-radius:3px;outline:2px solid #a8170f}.card-open-hint{display:none}.readonly-card .card-open-hint{color:#8a150f;margin-right:auto;font-weight:600;display:inline}.detail{gap:14px;display:grid}.detail-pills{align-items:center}.detail-date{color:var(--ink-muted);align-items:center;gap:4px;margin-left:4px;font-size:9px;display:inline-flex}.detail-video{background:#13110f;border-radius:10px;width:100%;max-height:60vh;display:block}.detail-embed{aspect-ratio:16/9;background:#13110f;border-radius:10px;width:100%;position:relative;overflow:hidden}.detail-embed iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.detail-link{justify-self:start;height:34px;text-decoration:none}.detail-section{border-top:1px solid var(--line);gap:8px;padding-top:12px;display:grid}.detail-section .eyebrow{font-size:8px}.detail-steps{gap:8px;margin:0;padding:0;list-style:none;display:grid}.detail-steps li{color:var(--ink);grid-template-columns:24px minmax(0,1fr);align-items:start;gap:8px;font-size:12px;line-height:1.55;display:grid}.detail-steps li span{width:22px;height:22px;color:var(--card);background:#a8170f;border-radius:50%;place-items:center;font:700 10px Manrope,sans-serif;display:grid}.detail-notes{color:var(--ink);white-space:pre-line;margin:0;font-size:12px;line-height:1.6}.detail-links{flex-wrap:wrap;gap:6px;display:flex}.detail-links .chip{font-size:10px}.belt-card{--belt:#e5e1dc;--belt-bar:var(--belt);padding-left:20px;position:relative;overflow:hidden;border-left:0!important}.belt-card:before{content:"";background:linear-gradient(var(--belt) 0 70%, var(--belt-bar) 70% 100%);width:6px;position:absolute;inset:0 auto 0 0}.belt-card .person-avatar{box-shadow:0 0 0 3px var(--card), 0 0 0 5px var(--belt)}.belt-white{--belt:#ddd8d0}.belt-blue{--belt:#1f5fbf}.belt-purple{--belt:#6b3fa0}.belt-brown{--belt:#7a4a24}.belt-black{--belt:#1e1b19;--belt-bar:#a8170f}.belt-red{--belt:#a8170f}.belt-coral .person-avatar{box-shadow:0 0 0 3px var(--card), 0 0 0 5px #a8170f}.belt-card.belt-coral:before{background:repeating-linear-gradient(#a8170f 0 12px,#1e1b19 12px 24px)}.belt-card.belt-blue{background:linear-gradient(90deg, #1f5fbf0d, var(--card) 40%)}.belt-card.belt-purple{background:linear-gradient(90deg, #6b3fa00f, var(--card) 40%)}.belt-card.belt-brown{background:linear-gradient(90deg, #7a4a240f, var(--card) 40%)}.belt-card.belt-black,.belt-card.belt-coral,.belt-card.belt-red{background:linear-gradient(90deg, #1e1b190d, var(--card) 40%)}.person-handle{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.role-badge{letter-spacing:.02em;border-radius:999px;align-items:center;gap:4px;padding:2px 7px;font-size:10px;font-weight:700;line-height:1.5;display:inline-flex}.role-coach{color:#1f5fbf;background:#e9f0fb}.role-professor{color:#7a5200;background:#fdf1d2;border:1px solid #f0d58a}.photo-status{color:#2f7a43;margin:6px 0 0;font-size:12px}.photo-status-error{color:#8a150f}.save-compact{gap:5px;height:28px;padding:0 10px;font-size:11px}.save-done{color:#2f7a43}.save-done:disabled{opacity:1;cursor:default}.save-actions{flex-wrap:wrap}.save-message{color:#2f7a43;text-align:right;flex:100%;font-size:12px}.saved-from{color:#8a150f;font-size:11px;text-decoration:none}.saved-from:hover{text-decoration:underline}:root{--paper:#f5f0e7;--paper-deep:#f0e9dd;--sidebar:#f0e9dd;--card:#fffcf7;--ink:#211c19;--ink-soft:#3b3530;--ink-muted:#8b8176;--line:#e5d9c8;--sun-bright:#e3261c;--sun:#c51f16;--sun-deep:#a8170f;--green:var(--sun-deep);--green-dark:#8a150f;color:var(--ink);background:var(--paper);--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .25 0 0 0 0 .18 0 0 0 0 .1 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--brush:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 12' preserveAspectRatio='none'%3E%3Cpath d='M0 7.5C40 4 90 3.2 160 3.6 240 4 320 2.4 400 1.2 360 6 300 9.6 220 10.2 140 10.8 60 10.5 0 7.5Z' fill='%23c51f16'/%3E%3Cpath d='M30 9.4C110 8.6 200 9 300 6.4' stroke='%23e3261c' stroke-width='.8' fill='none' opacity='.6'/%3E%3C/svg%3E")}body{background:var(--paper) var(--grain);color:var(--ink)}.app-shell,.main-content{background:0 0}.topbar{background:var(--ink);border-bottom:0;position:relative}.topbar:after{content:"";background:var(--brush) center / 100% 100% no-repeat;pointer-events:none;z-index:1;height:7px;position:absolute;bottom:-5px;left:0;right:0}.breadcrumb,.breadcrumb-slash{color:var(--ink-muted)}.breadcrumb strong{color:var(--card)}.topbar .mobile-menu,.sidebar-toggle{color:var(--card)!important}.topbar .mobile-menu:hover,.sidebar-toggle:hover{background:#fffdf81f!important}.sidebar{background:var(--sidebar) var(--grain);border-right:1px solid var(--line)}.sidebar-label{color:var(--ink-muted)}.nav-item{color:var(--ink-soft);position:relative}.nav-item:hover{background:var(--paper-deep);color:var(--ink)}.nav-active,.nav-active:hover{background:var(--ink);color:var(--card);font-weight:600}.nav-active:before{content:"";background:radial-gradient(circle at 35% 35%, var(--sun-bright), var(--sun) 70%);border-radius:50%;width:7px;height:7px;margin-top:-3.5px;position:absolute;top:50%;left:auto;right:12px;box-shadow:0 0 0 3px #e3261c2e}.sidebar-collapsed .nav-active:before{width:6px;height:6px;margin-top:0;top:8px;right:6px}.sidebar-edge{background:var(--card);border-color:var(--line);color:var(--ink-muted)}.sidebar-edge:hover{background:var(--ink);border-color:var(--ink);color:var(--card)}.avatar{color:var(--card);background:var(--ink)}h1,.section-heading h2,.modal-heading h2,.panel-heading h2,.profile-card-heading h2,.person-hero-copy h1{letter-spacing:-.3px;color:var(--ink);font-family:Shippori Mincho B1,Hiragino Mincho ProN,Yu Mincho,Georgia,serif;font-weight:800}h1{font-size:38px}.title-period{color:#0000;width:.3em;display:inline-block;position:relative}.title-period:after{content:"";background:radial-gradient(circle at 38% 36%, #f04a3c, var(--sun) 55%, var(--sun-deep));border-radius:50%;width:.19em;height:.19em;position:absolute;bottom:.14em;left:.07em}.intro-copy{color:var(--ink-muted)}.intro-copy em{color:var(--sun-deep);font-style:italic}.eyebrow{color:var(--ink-muted);letter-spacing:1.6px}.eyebrow-line{background:var(--brush) center / 100% 100% no-repeat;width:26px;height:5px}.button-primary{color:var(--card);background:var(--sun);border-color:var(--sun);box-shadow:inset 0 1px #ffffff26,0 2px 6px #8a150f2e}.button-primary:hover{background:var(--sun-deep);border-color:var(--sun-deep);box-shadow:inset 0 1px #ffffff1f,0 5px 14px #8a150f38}.button-quiet{color:var(--ink-soft);background:var(--card);border-color:var(--line)}.button-quiet:hover{background:var(--paper);border-color:#d6cab5}.style-option-active{background:var(--ink);border-color:var(--ink);color:var(--card)}.style-option-active:hover{border-color:var(--ink)}.technique-card,.panel,.stat-card,.profile-hero-card,.profile-form-card,.person-card,.modal,.auth-card{background-color:var(--card);border-color:var(--line)}.technique-card:hover,.person-card:hover{border-color:#d9c9b0;box-shadow:0 6px 18px #3b2a1414}.belt-card.belt-blue,.belt-card.belt-purple,.belt-card.belt-brown,.belt-card.belt-black,.belt-card.belt-coral,.belt-card.belt-red{background-color:var(--card)}.modal-backdrop{background:#211c19b8}.page-footer{border-top-color:var(--line);color:var(--ink-muted)}.auth-loading,.auth-shell{background:var(--paper) var(--grain)}.auth-band{background:var(--ink)}.auth-band:after{content:"";background:var(--brush) center / 100% 100% no-repeat;height:9px;position:absolute;bottom:-6px;left:0;right:0}.auth-tabs .auth-tab-active{color:var(--sun-deep)}@media (width<=760px){h1{font-size:32px}}.video-links-list{gap:6px;display:grid}.video-link-row{align-items:center;gap:6px;display:flex}.video-link-row .input-icon{flex:1;min-width:0}.add-link-button{height:30px;color:var(--sun-deep);background:0 0;border:1px dashed #d6cab5;border-radius:5px;justify-self:start;align-items:center;gap:5px;padding:0 10px;font-size:10px;font-weight:600;display:inline-flex}.add-link-button:hover{border-style:solid;border-color:var(--sun-deep);background:#fdf2ee}.video-links{flex-direction:column;gap:2px;display:flex}.video-links .video-link+.video-link{margin-top:6px}.detail-link-list{flex-wrap:wrap;gap:8px;display:flex}.detail-link-list .detail-link{margin:0}.topbar-logo{z-index:2;background:0 0;border:0;height:56px;margin-left:auto;padding:0;display:block;position:relative}.topbar-logo img{width:auto;height:100%;transition:transform .18s;display:block}.topbar-logo:hover img{transform:scale(1.05)}.topbar-logo:focus-visible{outline:2px solid var(--sun-bright);outline-offset:2px;border-radius:4px}.page-intro .eyebrow,.page-intro h1{padding-right:0!important}@media (width<=760px){.topbar-logo{height:46px}}.belt-graphic{border-radius:3px;flex:none;align-items:stretch;display:inline-flex;overflow:hidden;box-shadow:inset 0 1px #ffffff80,0 2px 5px #211c191f}.belt-graphic-small{width:46px;height:7px;box-shadow:none;border-radius:2px}.belt-graphic .belt-body,.belt-graphic .belt-tip{background:var(--belt,#ddd8d0) repeating-linear-gradient(180deg, transparent 0 3px, #00000012 3px 4px)}.belt-graphic .belt-body{flex:1}.belt-graphic .belt-tip{width:9%}.belt-graphic .belt-bar{background:#161210;justify-content:flex-end;align-items:stretch;gap:9%;width:38%;padding:0 7%;display:flex}.belt-graphic.belt-black .belt-bar{background:var(--sun)}.belt-graphic.belt-white .belt-body,.belt-graphic.belt-white .belt-tip{background-color:#f3eee4}.belt-graphic.belt-coral .belt-body,.belt-graphic.belt-coral .belt-tip{background:repeating-linear-gradient(90deg, var(--sun) 0 14px, #161210 14px 28px)}.belt-graphic.belt-red .belt-body,.belt-graphic.belt-red .belt-tip{background-color:var(--sun)}.belt-graphic-small .belt-bar{gap:8%;padding:0 5%}.welcome-hero{border:1px solid var(--line);background:repeating-linear-gradient(45deg, #211c1903 0 2px, transparent 2px 6px), repeating-linear-gradient(-45deg, #211c1903 0 2px, transparent 2px 6px), var(--card);border-radius:14px;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:28px;margin-bottom:18px;padding:30px 32px 28px;display:grid;position:relative;overflow:hidden;box-shadow:0 6px 24px #3b2a1410}.welcome-hero:before{content:"";background:linear-gradient(90deg, var(--belt,#ddd8d0) 0 62%, #161210 62% 82%, var(--belt,#ddd8d0) 82%);opacity:.13;pointer-events:none;border-radius:4px;width:58%;height:30px;position:absolute;bottom:34px;right:-60px;transform:rotate(-6deg)}.welcome-hero.belt-black:before{background:linear-gradient(90deg, #161210 0 62%, var(--sun) 62% 82%, #161210 82%);opacity:.09}.welcome-hero>*{position:relative}.welcome-hero h1{margin:12px 0 8px;font-size:46px;line-height:1.05}.welcome-belt{align-items:center;gap:14px;margin-top:20px;display:flex}.welcome-belt>div{gap:3px;display:grid}.welcome-belt strong{color:var(--ink);font-size:13px}.welcome-belt small{color:var(--ink-muted);font-size:11px}.welcome-side{justify-items:end;gap:14px;max-width:290px;display:grid}.welcome-message{border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);border-radius:9px;gap:8px;margin:0;padding:11px 13px;font-size:12px;line-height:1.5;display:flex}.welcome-message svg{color:var(--sun);flex:none;margin-top:1px}.welcome-log{border-radius:9px;height:52px;padding:0 28px;font-size:14px}@media (width<=760px){.welcome-hero{grid-template-columns:1fr;gap:18px;padding:22px 18px}.welcome-hero h1{font-size:34px}.welcome-side{justify-items:stretch;max-width:none}.welcome-log{width:100%}.welcome-hero:before{width:90%;bottom:150px}}.training-centre{margin-bottom:18px;padding:22px 24px}.centre-head{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:18px;display:flex}.centre-head .eyebrow{margin-bottom:4px;font-size:8px}.centre-head h2{color:var(--ink);margin:0;font:800 21px Shippori Mincho B1,Georgia,serif}.centre-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:30px;display:grid}.mat-grid{gap:3px;max-width:420px;display:flex}.mat-days{color:var(--ink-muted);grid-template-rows:repeat(7,1fr);gap:3px;margin-right:4px;font-size:8px;display:grid}.mat-days span{align-items:center;display:flex}.mat-week{flex:1;grid-template-rows:repeat(7,1fr);gap:3px;display:grid}.mat-cell{aspect-ratio:1;background:#ece3d4;border-radius:3px}.mat-stats{color:var(--ink-muted);flex-wrap:wrap;gap:6px 20px;margin-top:14px;font-size:11px;display:flex}.mat-stats strong{color:var(--ink);margin-right:3px;font:800 19px Shippori Mincho B1,Georgia,serif}.centre-side{align-content:start;gap:16px;display:grid}.this-week{border-bottom:1px solid var(--line);align-items:center;gap:14px;padding-bottom:14px;display:flex}.this-week .eyebrow{margin-bottom:4px;font-size:8px}.this-week p{color:var(--ink-soft);margin:0;font-size:12px;line-height:1.5}.pulse-ring{flex:0 0 76px;width:76px;height:76px;position:relative}.pulse-ring svg{width:100%;height:100%}.pulse-ring circle{fill:none;stroke-width:8px}.ring-track{stroke:#ece3d4}.ring-value{stroke:var(--sun);stroke-linecap:round;transition:stroke-dasharray .4s}.pulse-ring>span{color:var(--ink-muted);justify-content:center;align-items:baseline;padding-top:24px;font-size:11px;display:flex;position:absolute;inset:0}.pulse-ring strong{color:var(--ink);font:800 22px Shippori Mincho B1,Georgia,serif}.metric-label{color:var(--ink);justify-content:space-between;align-items:baseline;margin-bottom:7px;font-size:11px;font-weight:600;display:flex}.metric-label small{color:var(--ink-muted);font-weight:400}.metric-label .text-button{font-size:10px}.split-bar{background:var(--ink);border-radius:5px;height:10px;overflow:hidden}.split-bar span{background:var(--sun);height:100%;display:block}.pipeline-bar{border-radius:5px;gap:2px;height:10px;display:flex;overflow:hidden}.pipeline-bar span{min-width:6px}.split-legend{color:var(--ink-muted);flex-wrap:wrap;gap:4px 12px;margin-top:7px;font-size:10px;display:flex}.split-legend span{align-items:center;gap:5px;display:inline-flex}.split-legend i{border-radius:2px;width:8px;height:8px}.dot-gi{background:var(--sun)}.dot-nogi{background:var(--ink)}.pipe-learning{background:#cfc3b0}.pipe-drilling{background:#e0a541}.pipe-sparring{background:#3f7cc0}.pipe-reliable{background:#2f8a4c}.focus-row{border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:20px;padding-top:18px;display:grid}.focus-tile{border:1px solid var(--line);background:var(--paper);color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:9px;align-items:flex-start;gap:10px;padding:12px;transition:all .16s;display:flex}.focus-tile:hover{background:var(--card);border-color:#d9a49c;transform:translateY(-1px)}.focus-tile>span:last-child{gap:4px;min-width:0;display:grid}.focus-tile small{color:var(--ink-muted);letter-spacing:1.2px;font-size:8px;font-weight:700}.focus-tile strong{-webkit-line-clamp:2;color:var(--ink);-webkit-box-orient:vertical;font-size:12px;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.focus-icon{width:28px;height:28px;color:var(--sun-deep);background:#fae6e0;border-radius:7px;flex:0 0 28px;place-items:center;display:grid}.focus-progress{background:#ece3d4;border-radius:2px;height:4px;margin-top:3px;display:block;overflow:hidden}.focus-progress span{background:var(--sun);height:100%;display:block}@media (width<=900px){.centre-grid{grid-template-columns:1fr;gap:22px}.focus-row{grid-template-columns:1fr}}@media (width<=520px){.training-centre{padding:16px}.centre-head{flex-direction:column;align-items:flex-start}}.brand{margin-bottom:20px}.brand-logo{width:104px;height:104px}.main-nav{gap:12px}.nav-group{gap:3px;display:grid}.nav-group .sidebar-label{letter-spacing:1.6px;margin:0 0 4px;font-size:8.5px}.nav-item{height:40px}.nav-active,.nav-active:hover{background:var(--ink);color:var(--card);box-shadow:inset 4px 0 0 var(--sun)}.nav-active svg{color:#ff5a4d}.nav-active:before{display:none}.sidebar-collapsed .nav-group+.nav-group{border-top:1px solid var(--line);margin-top:2px;padding-top:10px}.coach-card{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;border:1px solid var(--line);background:var(--card);transition:all .16s;display:block}.coach-card:hover{border-color:#d9a49c}.coach-progress span{width:0;transition:width .4s}.profile-trigger .avatar{box-shadow:0 0 0 2px var(--sidebar), 0 0 0 4px var(--belt,#ddd8d0)}.profile-belt{align-items:center;gap:6px;margin-top:2px;display:flex}.profile-belt small{color:var(--ink-muted);font-size:9px}.welcome-hero+.stats-row{margin-bottom:18px}.breakdown-card{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:14px 16px 16px}.breakdown-card h3{color:var(--ink);margin:0 0 10px;font:800 16px Shippori Mincho B1,Georgia,serif}.breakdown-meta{color:var(--ink-muted);justify-content:space-between;align-items:baseline;margin-bottom:10px;font-size:11px;display:flex}.breakdown-meta strong{color:var(--ink);font-size:11px}.breakdown-row+.breakdown-row{margin-top:11px}.breakdown-label{color:var(--ink);justify-content:space-between;margin-bottom:5px;font-size:12px;display:flex}.breakdown-label span:last-child{font-variant-numeric:tabular-nums}.breakdown-track{background:#ece3d4;border-radius:5px;height:9px;overflow:hidden}.breakdown-track span{border-radius:inherit;height:100%;transition:width .5s;display:block}.bar-gi{background:var(--sun)}.bar-nogi{background:#d49a3f}.empty-state h3,.readonly-game-title,.readonly-goal-title,.game-title-input,.settings-panel h2{letter-spacing:-.2px;font-family:Shippori Mincho B1,Hiragino Mincho ProN,Yu Mincho,Georgia,serif;font-weight:800}.panel-heading h2,.profile-card-heading h2{font-size:18px}.section-heading h2{font-size:21px}.modal-heading h2{font-size:24px}.empty-state h3{font-size:19px}.empty-state{border-color:var(--line);background:var(--card)}.empty-illustration{display:none}.empty-art{width:92px;height:92px;color:var(--ink);place-items:center;margin-bottom:12px;display:grid;position:relative}.empty-art .enso{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.empty-art>svg:not(.enso){position:relative}.enso-stroke{fill:none;stroke:var(--ink);stroke-width:7px;stroke-linecap:round;opacity:.85}.enso-dry{fill:none;stroke:var(--ink);stroke-width:1.4px;stroke-linecap:round;opacity:.35;transform:translate(4px,5px)}.enso-sun{fill:var(--sun)}.empty-state p{color:var(--ink-muted);font-size:12px}.empty-compact{border-style:dashed;min-height:0;padding:22px 18px}.empty-compact .empty-art{width:72px;height:72px}.mat-calendar{position:relative}.mat-calendar-empty .mat-grid{opacity:.35;filter:saturate(.6)}.mat-calendar-empty .mat-stats{visibility:hidden}.mat-invite{z-index:1;border:1px solid var(--line);text-align:center;background:#fffcf7eb;border-radius:12px;justify-items:center;gap:6px;width:min(340px,92%);padding:20px 18px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-60%);box-shadow:0 10px 30px #3b2a1418}.mat-invite strong{color:var(--ink);font:800 20px Shippori Mincho B1,Georgia,serif}.mat-invite span{color:var(--ink-muted);font-size:12px}.mat-invite .button{margin-top:8px}.position-art{width:100%;height:100%;display:block}.position-art .art-ink{stroke:var(--ink)}.position-art .art-paper{stroke:var(--card)}.position-art .art-head{fill:var(--ink)}.position-art .art-head-outline{fill:var(--card);stroke:var(--ink)}.position-art .art-belt,.position-art .art-arrow{stroke:var(--sun)}.position-art .art-red-fill{fill:var(--sun)}.position-art .art-sun{fill:var(--sun);opacity:.13}.position-art .art-mat{stroke:var(--line)}.card-art{border-bottom:1px solid var(--line);background:radial-gradient(circle at 82% 30%,#c51f160d,#0000 45%),repeating-linear-gradient(0deg,#0000 0 11px,#211c1905 11px 12px),#faf5ec;border-radius:8px 8px 0 0;height:116px;margin:-15px -15px 12px;padding:8px 18px 0}.technique-card:hover .card-art .art-arrow{stroke-dasharray:160;animation:.9s art-draw}@keyframes art-draw{0%{stroke-dashoffset:160px}to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.technique-card:hover .card-art .art-arrow{animation:none}}@media (width<=760px){.card-art{margin-left:-12px;margin-right:-12px}}@media (width<=520px){.card-art{height:128px;margin:-14px -14px 12px}}.detail-art{border:1px solid var(--line);background:#faf5ec;border-radius:10px;height:170px;margin-bottom:14px;padding:10px 40px 0}.art-picker{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px;max-height:236px;padding:2px;display:grid;overflow-y:auto}.art-option{border:1px solid var(--line);color:var(--ink-soft);font:inherit;cursor:pointer;background:#faf5ec;border-radius:7px;gap:2px;padding:5px 5px 6px;font-size:9px;font-weight:600;transition:all .15s;display:grid}.art-option .position-art{height:52px}.art-option:hover{border-color:#d9a49c}.art-option-active{border-color:var(--sun);background:var(--card);color:var(--sun-deep);box-shadow:0 0 0 2px #c51f1626}.style-label{letter-spacing:1px;text-transform:uppercase;align-items:center;padding:3px 0;font-size:9px;font-weight:700;display:inline-flex}.style-label.style-gi{color:var(--sun-deep)}.style-label.style-nogi{color:var(--ink)}.style-label+.status-pill{margin-left:2px}.card-pills{align-items:center}.category-tag{color:var(--ink-soft);align-items:center;gap:5px;display:inline-flex}.category-tag svg{color:var(--sun)}.video-preview{gap:6px;margin-top:12px;display:grid}.video-thumb{aspect-ratio:16/9;background:var(--ink);border-radius:7px;display:block;position:relative;overflow:hidden}.video-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .3s;display:block}.video-thumb:hover img{transform:scale(1.03)}.video-thumb-play{width:42px;height:42px;color:var(--card);background:var(--sun);border-radius:50%;place-items:center;margin:-21px 0 0 -21px;padding-left:2px;display:grid;position:absolute;top:50%;left:50%;box-shadow:0 4px 14px #0000004d}.video-thumb-label{color:var(--card);letter-spacing:.5px;background:#211c19b3;border-radius:3px;padding:2px 6px;font-size:9px;font-weight:700;position:absolute;bottom:7px;left:8px}.video-preview .video-link{margin-top:0}.detail-pills .category-tag{font-size:10px}.detail-pills .category-tag svg{width:12px;height:12px}.category-list li{background:var(--card);padding:0;display:block}.category-list li.category-open{border-color:#d9a49c;box-shadow:0 4px 14px #3b2a140f}.category-row{grid-template-columns:auto minmax(0,1fr) auto auto auto auto;align-items:center;gap:10px;padding:7px 8px 7px 9px;display:grid}.category-icon{width:30px;height:30px;color:var(--sun);background:#fae6e0;border-radius:7px;place-items:center;display:grid}.category-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.category-mini-art{border:1px solid var(--line);background:#faf5ec;border-radius:5px;width:54px;height:34px;padding:2px 4px 0;display:block}.customise-button{border:1px solid var(--line);height:28px;color:var(--ink-soft);background:var(--card);font:inherit;cursor:pointer;border-radius:6px;align-items:center;gap:5px;padding:0 9px;font-size:10px;font-weight:600;display:inline-flex}.customise-button:hover{color:var(--sun-deep);border-color:#d9a49c}.customise-button[aria-expanded=true]{color:var(--sun-deep);border-color:var(--sun)}.customise-button[aria-expanded=true] svg:last-child{transform:rotate(180deg)}.category-look{border-top:1px dashed var(--line);gap:14px;padding:12px 12px 14px;display:grid}.look-label{color:var(--ink);margin-bottom:7px;font-size:11px;font-weight:600;display:block}.look-label small{color:var(--ink-muted);margin-left:4px;font-weight:400}.icon-picker{grid-template-columns:repeat(auto-fill,minmax(66px,1fr));gap:5px;display:grid}.icon-choice{border:1px solid var(--line);color:var(--ink-soft);background:var(--paper);font:inherit;cursor:pointer;border-radius:7px;justify-items:center;gap:3px;padding:7px 4px 6px;transition:all .15s;display:grid}.icon-choice small{color:var(--ink-muted);font-size:8.5px}.icon-choice:hover{color:var(--sun);border-color:#d9a49c}.icon-choice-active{border-color:var(--sun);background:var(--card);color:var(--sun);box-shadow:0 0 0 2px #c51f1626}.icon-choice-active small{color:var(--sun-deep);font-weight:600}.art-picker-compact{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));max-height:none}@media (width<=620px){.category-row{grid-template-columns:auto minmax(0,1fr) auto auto}.category-row small,.category-mini-art{display:none}.customise-button{padding:0 7px}}.quick-add-open{margin-top:-4px}.quick-add{background:#fdf6f3;border:1px solid #e8c9c3;border-radius:9px;gap:10px;margin-top:-4px;padding:12px;display:grid}.quick-add-head{gap:2px;display:grid}.quick-add-head strong{color:var(--ink);font-size:12px}.quick-add-head small{color:var(--ink-muted);font-size:10px}.quick-add-fields{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,.8fr);gap:8px;display:grid}.quick-add-actions{justify-content:flex-end;gap:8px;display:flex}.quick-add-actions .button{height:32px}@media (width<=520px){.quick-add-fields{grid-template-columns:1fr 1fr}.quick-add-fields .field:first-child{grid-column:1/-1}}.session-head .class-title{color:var(--ink);margin-bottom:2px;font:800 17px Shippori Mincho B1,Georgia,serif}.class-date{color:var(--ink-muted);margin-bottom:8px;font-size:11px;display:block}.session-type{border:1px solid var(--line);width:fit-content;color:var(--ink-soft);background:var(--paper);letter-spacing:.4px;white-space:nowrap;border-radius:4px;align-items:center;padding:3px 7px;font-size:9px;font-weight:700;display:inline-flex}.overview-session-text b{color:var(--ink);font-weight:600}.bottom-nav{display:none}@media (width<=760px){.bottom-nav{z-index:2;padding:6px 4px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffcf7f2;grid-template-columns:repeat(5,minmax(0,1fr));align-items:end;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 18px #3b2a140d}.bottom-nav-item{min-width:0;color:var(--ink-muted);-webkit-tap-highlight-color:transparent;background:0 0;border:0;justify-items:center;gap:3px;padding:5px 0 2px;font-size:10px;font-weight:600;display:grid}.bottom-nav-item span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.bottom-nav-active{color:var(--sun-deep)}.bottom-nav-item:focus-visible{outline:2px solid var(--sun);outline-offset:-2px;border-radius:8px}.page-footer{padding-bottom:calc(76px + env(safe-area-inset-bottom))!important}.topbar{height:50px}.topbar-logo{height:44px}.topbar-logo img{filter:drop-shadow(0 1px 3px #00000059)brightness(1.06)}.page-content{padding-top:22px}body{background:linear-gradient(#f8f5f0d9, #f8f5f0d9), var(--grain), var(--paper);background-color:var(--paper)}.panel,.training-centre,.breakdown-card,.welcome-hero,.modal{border-radius:12px}.panel,.training-centre,.breakdown-card{padding:16px}.stat-card,.technique-card,.focus-tile{border-radius:10px}.stat-card{padding:12px}.button-primary{height:36px}.welcome-hero{background:var(--card);gap:12px;margin-bottom:14px;padding:16px;box-shadow:0 3px 12px #1d1a1806}.welcome-hero:before{display:none}.welcome-hero .eyebrow{font-size:8px}.welcome-hero h1{letter-spacing:-1px;margin:6px 0 0;font-size:26px}.welcome-hero .intro-copy{display:none}.welcome-belt{gap:10px;margin-top:10px}.welcome-belt strong{font-size:12px}.welcome-belt small{font-size:10px}.welcome-side{gap:0}.welcome-message{padding:8px 10px;font-size:11px;line-height:1.45}.welcome-log{display:none}.welcome-belt .belt-graphic-large{width:124px;height:16px}.belt-graphic-large .belt-bar{gap:10%;width:44%;padding:0 6%}.belt-graphic-large .belt-bar i{width:8%;min-width:3px}.belt-graphic-large .belt-tip{width:7%}}.stat-label{font-size:9px}.stat-copy{gap:2px;min-width:0;display:grid}.stat-caption{color:var(--ink-muted);font-size:10.5px;line-height:1.3}.focus-tile small,.centre-head .eyebrow{font-size:9px}.welcome-belt{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;margin:14px 0 0 -10px;padding:8px 10px;transition:background .15s}.welcome-belt:hover{background:#f4ecdf}.welcome-belt:focus-visible{outline:2px solid var(--sun);outline-offset:2px}.welcome-belt-copy{gap:3px;display:grid}.welcome-belt .welcome-belt-link{color:var(--sun-deep);align-items:center;gap:3px;font-weight:600;display:inline-flex}.belt-graphic-large{width:184px;height:24px}.belt-graphic .belt-bar i{background:#ffffff2e;width:9%;min-width:3px}.belt-graphic .belt-bar i.stripe-on{background:#fff;box-shadow:0 0 0 .5px #00000080,0 0 3px #ffffff80}.centre-summary{align-items:center;gap:14px;display:flex}.centre-summary .pulse-ring{flex:0 0 66px;width:66px;height:66px}.centre-summary .pulse-ring>span{padding-top:20px;font-size:10px}.centre-summary .pulse-ring strong{font-size:19px}.summary-copy{gap:7px;min-width:0;display:grid}.summary-week{color:var(--ink-muted);font-size:11px}.summary-week strong{color:var(--ink)}.summary-stats{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.summary-stats li{border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:11px}.summary-stats strong{color:var(--ink);font:800 13px Shippori Mincho B1,Georgia,serif}.activity-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin:16px 0 10px;display:flex}.range-switch{border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:2px;display:inline-flex}.range-switch button{color:var(--ink-muted);background:0 0;border:0;border-radius:6px;padding:5px 10px;font-size:11px;font-weight:600}.range-switch .range-active{background:var(--card);color:var(--ink);box-shadow:0 1px 3px #3b2a1418}.chart-toggle{color:var(--sun-deep);background:0 0;border:0;align-items:center;gap:4px;padding:4px 2px;font-size:11px;font-weight:600;display:inline-flex}.chart-toggle svg{transition:transform .18s}.chart-toggle-open svg{transform:rotate(180deg)}.mat-scroll{scrollbar-width:thin;margin:-3px -3px 0;padding:3px 3px 4px;overflow-x:auto}.mat-months,.mat-grid{gap:4px;max-width:none;display:flex}.mat-months{color:var(--ink-muted);margin-bottom:4px;font-size:9px}.mat-months>span{white-space:nowrap;overflow:visible}.mat-days-spacer,.mat-days{flex:0 0 24px;margin:0}.mat-days{gap:4px;font-size:9px}.mat-week{gap:4px}.mat-range-16 .mat-months,.mat-range-16 .mat-grid{max-width:600px}.mat-range-16 .mat-week,.mat-range-16 .mat-months>span:not(.mat-days-spacer){flex:1 1 0;min-width:0}.mat-range-26 .mat-week,.mat-range-26 .mat-months>span:not(.mat-days-spacer){flex:0 0 15px}.mat-range-52 .mat-week,.mat-range-52 .mat-months>span:not(.mat-days-spacer){flex:0 0 12px}.mat-cell{aspect-ratio:1;background:#efe4d1;border:0;border-radius:50%;width:100%;padding:0;display:block}button.mat-cell{cursor:pointer;transition:transform .12s}button.mat-cell:hover{transform:scale(1.18)}button.mat-cell:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.mat-cell.mat-1{background:#ec9488}.mat-cell.mat-2{background:#d6372a}.mat-cell.mat-3{background:#9a130b}.mat-cell.mat-future{background:0 0;box-shadow:inset 0 0 0 1px #e5d9c8}.mat-cell.mat-today{box-shadow:0 0 0 1.5px var(--ink)}.mat-cell.mat-selected{box-shadow:0 0 0 2px var(--card), 0 0 0 3.5px var(--ink)}.mat-foot{color:var(--ink-muted);justify-content:space-between;align-items:center;gap:10px;margin-top:10px;font-size:10px;display:flex}.mat-legend{align-items:center;gap:4px;margin-left:auto;display:inline-flex}.mat-legend .mat-cell{width:11px;height:11px}.day-detail{border:1px solid var(--line);background:var(--paper);border-radius:10px;margin-top:10px;padding:11px 13px}.day-detail-head{color:var(--ink);justify-content:space-between;align-items:baseline;margin-bottom:7px;font-size:12px;display:flex}.day-detail ul{gap:6px;margin:0 0 8px;padding:0;list-style:none;display:grid}.day-detail li{min-width:0;color:var(--ink-soft);align-items:center;gap:8px;font-size:12px;display:flex}.day-detail-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.day-detail-text b{color:var(--ink)}.day-detail p{color:var(--ink-muted);margin:0;font-size:12px}.focus-row{grid-template-columns:repeat(4,minmax(0,1fr))}@media (width<=1100px){.focus-row{grid-template-columns:repeat(2,minmax(0,1fr))}}.belt-progress-hero{border:1px solid var(--line);background:var(--paper);border-radius:12px;align-items:center;gap:14px;margin-bottom:14px;padding:14px;display:flex}.belt-progress-hero>div{gap:3px;min-width:0;display:grid}.belt-progress-hero strong{color:var(--ink);font-size:13px}.belt-progress-hero small{color:var(--ink-muted);font-size:11px}.belt-ladder{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:0 0 18px;padding:0;list-style:none;display:grid}.belt-ladder li{color:var(--ink-muted);opacity:.45;justify-items:center;gap:5px;font-size:10px;display:grid}.belt-ladder .ladder-done{opacity:.8}.belt-ladder .ladder-current{opacity:1;color:var(--ink);font-weight:700}.ladder-swatch{background:var(--belt);border-radius:3px;width:100%;height:10px;box-shadow:inset 0 0 0 1px #0000001f}.ladder-current .ladder-swatch{height:14px;box-shadow:0 0 0 2px var(--card), 0 0 0 3.5px var(--sun)}.promotion-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.promotion-head h3{color:var(--ink);margin:0;font:800 16px Shippori Mincho B1,Georgia,serif}.promotion-form{border:1px solid var(--line);background:var(--paper);border-radius:10px;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px;padding:12px;display:grid}.promotion-note,.promotion-current,.promotion-actions{grid-column:1/-1}.promotion-current{color:var(--ink);align-items:center;gap:8px;font-size:11px;display:flex}.promotion-actions{justify-content:flex-end;gap:8px;display:flex}.promotion-list{margin:0;padding:0;list-style:none;display:grid}.promotion-list li{border-top:1px solid var(--line);grid-template-columns:46px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:8px 0;display:grid}.promotion-list li>span{gap:2px;min-width:0;display:grid}.promotion-list strong{color:var(--ink);font-size:12px}.promotion-list small{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.promotion-list time{color:var(--ink-muted);white-space:nowrap;font-size:11px}@media (width<=760px){.bottom-nav-plus{color:#fff;background:var(--sun);border-radius:50%;place-items:center;width:40px;height:40px;margin-top:-19px;display:grid;box-shadow:0 0 0 4px #fffcf7,0 6px 14px #8a150f47}.bottom-nav-log{color:var(--sun-deep);font-weight:700}.bottom-nav-log:active .bottom-nav-plus{background:var(--sun-deep);transform:scale(.96)}.page-footer{padding-bottom:calc(96px + env(safe-area-inset-bottom))!important}.topbar-logo{height:48px}.stat-label{letter-spacing:.5px;font-size:8.5px}.stat-caption{font-size:10px}.welcome-belt{margin-top:8px}.welcome-belt .belt-graphic-large{width:150px;height:20px}.welcome-belt small{font-size:10.5px}.centre-summary{gap:12px}.centre-summary .pulse-ring{flex-basis:58px;width:58px;height:58px}.centre-summary .pulse-ring>span{padding-top:17px}.summary-stats li{padding:3px 8px;font-size:10.5px}.activity-bar{margin-top:14px}.mat-days-spacer,.mat-days{flex-basis:22px}.mat-months,.mat-grid,.mat-week,.mat-days{gap:3px}.mat-hint{display:none}.focus-row{grid-template-columns:1fr}.promotion-form{grid-template-columns:1fr 1fr}.promotion-form .field:nth-child(3){grid-column:1/-1}}.belt-grey,.belt-grey-white,.belt-grey-black{--belt:#8f8b86}.belt-yellow,.belt-yellow-white,.belt-yellow-black{--belt:#efc02c}.belt-orange,.belt-orange-white,.belt-orange-black{--belt:#ec7a22}.belt-green,.belt-green-white,.belt-green-black{--belt:#2f8a4c}.belt-grey-white,.belt-yellow-white,.belt-orange-white,.belt-green-white{--belt-line:#f6f2ea}.belt-grey-black,.belt-yellow-black,.belt-orange-black,.belt-green-black{--belt-line:#161210}.belt-graphic.belt-lined .belt-body,.belt-graphic.belt-lined .belt-tip,.ladder-swatch.belt-lined{background:repeating-linear-gradient(180deg, transparent 0 3px, #00000012 3px 4px), linear-gradient(180deg, var(--belt) 0 33%, var(--belt-line) 33% 67%, var(--belt) 67%)}.belt-card.belt-lined:before{background:linear-gradient(90deg, var(--belt) 0 33%, var(--belt-line) 33% 67%, var(--belt) 67%)}.welcome-hero.belt-lined:before{background:linear-gradient(90deg, var(--belt) 0 62%, #161210 62% 82%, var(--belt) 82%)}.belt-ladder-kids{grid-template-columns:repeat(13,minmax(0,1fr));gap:4px}.belt-ladder-kids small{visibility:hidden;white-space:nowrap}.belt-ladder-kids .ladder-current small{visibility:visible}.belt-ladder-kids li:first-child{justify-items:start}.belt-ladder-kids li:last-child{justify-items:end}.unit-switch{border:1px solid var(--line);background:var(--paper);border-radius:6px;margin-left:auto;padding:1px;display:inline-flex}.unit-switch button{color:var(--ink-muted);background:0 0;border:0;border-radius:4px;padding:1px 8px;font-size:10px;font-weight:600}.unit-switch .unit-active{background:var(--card);color:var(--ink);box-shadow:0 1px 2px #3b2a1418}.unit-hint{margin-top:-2px}.school-input{display:block;position:relative}.school-options{z-index:30;border:1px solid var(--line);background:var(--card);border-radius:8px;max-height:220px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 10px 24px #211c1922}.school-options li{min-height:36px;color:var(--ink);cursor:pointer;border-radius:5px;align-items:center;gap:8px;padding:6px 8px;font-size:11px;font-weight:500;display:flex}.school-options li svg{color:#a8170f;flex:none}.school-options li span{display:grid}.school-options li small{color:var(--ink-muted);font-size:9px;font-weight:400}.school-options li:hover,.school-option-active{background:#faf3ee}.schools-add{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;align-items:end;gap:10px;margin-bottom:12px;display:grid}.schools-add .button{height:36px}.schools-search{margin-bottom:8px}.schools-list{gap:4px;max-height:320px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.schools-list li{border:1px solid var(--line);background:#fefdfb;border-radius:6px;justify-content:space-between;align-items:center;gap:10px;padding:7px 10px;display:flex}.schools-list li>span{gap:2px;font-size:11px;display:grid}.schools-list small{color:var(--ink-muted);align-items:center;gap:3px;font-size:9px;display:inline-flex}.schools-empty{color:var(--ink-muted);font-size:10px;justify-content:center!important}.voice-review{margin:0}.voice-found{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.voice-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.voice-actions .button{height:34px}@media (width<=760px){.schools-add{grid-template-columns:1fr}.voice-button{justify-self:stretch;height:44px;font-size:12px}.mic-button{height:28px;padding:0 10px;font-size:10px}.school-options li{min-height:42px}}.link-fill-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.link-fill-button{color:#8a150f;border-color:#f6d3cc;height:32px}.link-fill-button svg{color:#a8170f}.link-fill-message{color:var(--ink-muted);font-size:10px;font-weight:400}.share-link-row{border:1px dashed var(--line);background:#faf8f5;border-radius:6px;align-items:center;gap:8px;margin-top:-4px;padding:8px 10px;display:flex}.share-link-row code{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-muted);flex:1;font-size:10px;overflow:hidden}.share-link-row .button{flex:none;height:30px}.library-fields{border:0;margin:0;padding:0}.library-fields legend{margin-bottom:8px;padding:0}.library-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;display:grid}.library-grid .field{margin:0}.library-tags{flex-wrap:wrap;gap:5px;display:flex}.library-tag{color:#6e3a2c;background:#fbf4ee;border:1px solid #ecdcd0;border-radius:10px;align-items:center;height:20px;padding:0 8px;font-size:9px;font-weight:600;display:inline-flex}.share-pill{color:#2f6b45;background:#f0f7f1;border-color:#cfe3d3}.detail-creator{border:1px solid var(--line);color:var(--ink);background:var(--card);border-radius:18px;align-self:flex-start;align-items:center;gap:8px;padding:6px 10px;font-size:11px;text-decoration:none;display:inline-flex}.detail-creator[href]:hover{background:#faf8f5;border-color:#d4cdc3}.detail-creator svg{color:#a8170f}.detail-creator span{display:grid}.detail-creator small{color:var(--ink-muted);font-size:9px}.detail-description{color:var(--ink);white-space:pre-line;margin:0;font-size:12px;line-height:1.6}.detail-list{color:var(--ink);margin:0;padding-left:18px;font-size:11px;line-height:1.6}.explore-panel{gap:10px;margin-bottom:16px;padding:14px 16px;display:grid}.explore-search .search-box{width:100%}.explore-filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.explore-filter{align-items:center;display:inline-flex;position:relative}.explore-filter select{appearance:none;border:1px solid var(--line);height:32px;color:var(--ink);background:var(--card);cursor:pointer;border-radius:16px;outline:none;padding:0 28px 0 11px;font-size:10px;font-weight:500}.explore-filter select:focus{border-color:#ada6a0}.explore-filter svg{color:var(--ink-muted);pointer-events:none;position:absolute;right:10px}.explore-sort{margin-left:auto}.explore-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;display:grid}.explore-card{flex-direction:column;display:flex}.explore-card-body{flex:1;align-content:start;gap:7px;padding:12px 14px 14px;display:grid}.explore-card h3{color:var(--ink);margin:0;font-size:14px;line-height:1.3}.explore-creator{color:var(--ink-muted);align-items:center;gap:4px;font-size:10px;display:inline-flex}.explore-description{-webkit-line-clamp:3;color:#5f5851;-webkit-box-orient:vertical;margin:0;font-size:11px;line-height:1.5;display:-webkit-box;overflow:hidden}.explore-card-foot{justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:6px;display:flex}.explore-card-foot small{color:var(--ink-muted);font-size:9px}.explore-yours{color:#2f6b45;align-items:center;gap:4px;font-size:10px;font-weight:600;display:inline-flex}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=760px){.library-grid{grid-template-columns:1fr 1fr;gap:8px}.explore-panel{padding:12px}.explore-filters{scrollbar-width:none;flex-wrap:nowrap;margin:0 -12px;padding:0 12px 2px;overflow-x:auto}.explore-filters::-webkit-scrollbar{display:none}.explore-filter{flex:none}.explore-sort{margin-left:0}.explore-grid{grid-template-columns:1fr;gap:12px}}.library-intro-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}@media (width<=760px){.library-intro-actions{width:100%}.library-intro-actions .button{flex:1;justify-content:center}}.community-tabs{border:1px solid var(--line);background:var(--card);border-radius:22px;gap:4px;margin-bottom:16px;padding:4px;display:inline-flex}.community-tabs button{height:34px;color:var(--ink-muted);background:0 0;border:0;border-radius:18px;align-items:center;gap:6px;padding:0 16px;font-size:11px;font-weight:600;display:inline-flex}.community-tabs button:hover{color:var(--ink)}.community-tabs .community-tab-active{color:#fff;background:#a8170f}.goals-panel{gap:12px;display:grid}.goals-panel-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.goals-panel-head .panel-heading{margin:0}.goals-panel-head .button{flex:none;height:34px}.goals-count{color:var(--ink-muted);margin-left:4px;font-size:.8em;font-weight:500}.goals-panel .suggestions{margin:0}.create-sheet-backdrop{z-index:60;background:#211c1966;justify-content:center;align-items:flex-end;animation:.15s ease-out sheet-fade;display:flex;position:fixed;inset:0}.create-sheet{width:min(520px,100%);padding:18px 16px calc(18px + env(safe-area-inset-bottom));background:var(--card);border-radius:18px 18px 0 0;animation:.2s ease-out sheet-up;box-shadow:0 -10px 30px #211c1926}.create-sheet h2{color:var(--ink);margin:0 0 12px;font-size:16px}.create-options{border:1px solid var(--line);border-radius:12px;overflow:hidden}.create-option{width:100%;color:var(--ink);background:var(--card);text-align:left;border:0;align-items:center;gap:14px;padding:16px;display:flex}.create-option+.create-option{border-top:1px solid var(--line)}.create-option:hover,.create-option:active{background:#faf8f5}.create-option:disabled{opacity:.5}.create-option span{flex:1;gap:2px;display:grid}.create-option strong{font-size:14px}.create-option small{color:var(--ink-muted);font-size:11px}.create-option>svg:last-child{color:var(--ink-muted)}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}@keyframes sheet-fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.create-sheet,.create-sheet-backdrop{animation:none}}@media (width<=760px){.community-tabs{display:flex}.community-tabs button{flex:1;justify-content:center}.goals-panel-head .button{height:32px;padding:0 10px}}
