:root{--navy:#002a55;--blue:#0086c5;--teal:#00a78f;--gold:#ddaf36;--orange:#e87722;--purple:#7160ad;--ink:#1e2933;--gray:#68747e;--pale:#eef3f7;--line:#d8e1e8;--white:#fff;--danger:#b42318;--shadow:0 10px 32px rgba(0,42,85,.12);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--pale);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--pale)}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid rgba(0,134,197,.35);outline-offset:2px}
.app-header{min-height:88px;padding:14px clamp(18px,4vw,52px);display:flex;align-items:center;gap:14px;color:#fff;background:linear-gradient(120deg,var(--navy),#003d76)}.brand-mark{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--blue);color:var(--white);font-weight:900;font-size:30px;box-shadow:inset 0 0 0 3px rgba(255,255,255,.4)}.brand-copy{min-width:250px}.brand-copy p,.eyebrow{margin:0 0 3px;text-transform:uppercase;letter-spacing:.11em;font-size:11px;font-weight:800}.brand-copy p{color:#b9d9ea}.brand-copy h1{margin:0;font-size:clamp(19px,2.5vw,29px);line-height:1.1}.coach-control{margin-left:auto}.coach-control label{display:block;color:#b9d9ea;text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:800;margin-bottom:4px}.coach-control>div{display:flex;gap:8px}.coach-control select{min-width:160px;border:0;border-radius:9px;padding:9px 34px 9px 10px;background:#fff;color:var(--navy)}
.top-nav{position:sticky;top:0;z-index:20;display:flex;gap:4px;padding:0 clamp(18px,4vw,52px);background:#fff;border-bottom:1px solid var(--line);box-shadow:0 3px 12px rgba(0,42,85,.06);overflow:auto}.nav-button{min-height:52px;padding:0 16px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--gray);white-space:nowrap;font-weight:750}.nav-button:hover,.nav-button.active{color:var(--navy);border-bottom-color:var(--blue)}.count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--pale);font-size:11px}
main{max-width:1560px;margin:auto;padding:clamp(20px,3vw,40px)}.view{display:none}.view.active{display:block}.hidden{display:none!important}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:22px}.section-heading h2,.empty-state h2{margin:0;color:var(--navy);font-size:clamp(25px,3vw,38px);line-height:1.1}.section-heading>p{max-width:590px;margin:0;color:var(--gray);line-height:1.55}.eyebrow{color:var(--blue)}
.chip-row{display:flex;gap:7px;margin:0 0 20px;overflow:auto;padding-bottom:3px}.chip{border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--navy);padding:8px 13px;font-size:13px;font-weight:750;white-space:nowrap}.chip.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.plans-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:15px}.plan-card,.activity-card,.saved-card{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 4px 15px rgba(0,42,85,.05)}.plan-card{padding:19px;display:flex;flex-direction:column;min-height:245px}.plan-card .week-tag{color:var(--blue);font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.plan-card h3{margin:8px 0 7px;color:var(--navy);font-size:19px}.plan-card .theme{margin:0;color:var(--gray);font-size:13px}.plan-card .flow{margin:16px 0;padding:12px;background:var(--pale);border-radius:10px;color:var(--ink);font-size:12px;line-height:1.5;flex:1}.plan-card .flow strong{color:var(--navy)}.card-actions,.button-row,.plan-actions,.saved-toolbar{display:flex;flex-wrap:wrap;gap:8px}
.button{min-height:42px;border-radius:9px;border:1px solid transparent;padding:9px 14px;font-weight:780;font-size:13px}.button.primary{background:var(--navy);color:#fff}.button.secondary{background:var(--blue);color:#fff}.button.ghost{background:#fff;border-color:var(--line);color:var(--navy)}.button.danger{color:var(--danger);border-color:#f0b4ae;background:#fff}.button.small{min-height:36px;padding:7px 10px}.app-header .button.ghost{color:#fff;border-color:rgba(255,255,255,.42);background:rgba(255,255,255,.1)}
.empty-state{padding:65px 25px;text-align:center;background:#fff;border:1px dashed #aebdca;border-radius:18px}.empty-state .button-row{justify-content:center;margin-top:24px}
.builder-shell{display:grid;grid-template-columns:minmax(560px,1fr) minmax(310px,410px);gap:18px;align-items:start}.plan-workspace,.builder-library{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.plan-workspace{padding:20px}.builder-library{position:sticky;top:72px;max-height:calc(100vh - 95px);padding:18px;overflow:auto}.builder-toolbar{display:grid;grid-template-columns:minmax(230px,1fr) 100px 105px;gap:12px;align-items:end}.builder-toolbar label,.plan-title-fields label,.target-field label{display:block;color:var(--gray);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;margin-bottom:5px}.builder-toolbar input,.builder-toolbar select,.search-input,.filter-grid select,.library-toolbar select{width:100%;height:44px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);padding:9px 11px}.total-clock{height:59px;border-radius:10px;background:var(--navy);color:#fff;padding:8px 12px;text-align:right}.total-clock span{display:block;color:#b9d9ea;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.total-clock strong{font-size:20px}.total-clock.over{background:var(--danger)}.time-warning{margin:12px 0 0;padding:10px 12px;border-radius:9px;background:#fff1f0;color:var(--danger);font-weight:700;font-size:13px}.plan-context{margin:14px 0 4px;color:var(--gray);font-size:13px}.plan-context strong{color:var(--navy)}.plan-list-header{display:flex;justify-content:space-between;gap:10px;margin-top:15px;padding:8px 3px;color:var(--navy);font-weight:850}.plan-list-header small{color:var(--gray);font-weight:500}.plan-list{min-height:140px}.plan-module{display:grid;grid-template-columns:36px 56px minmax(180px,1fr) 78px auto;gap:10px;align-items:center;margin-bottom:9px;padding:11px;background:#fff;border:1px solid var(--line);border-left:5px solid var(--teal);border-radius:11px}.plan-module.locked{border-left-color:var(--gold);background:#fffcf3}.drag-handle{display:grid;place-items:center;align-self:stretch;border:0;background:transparent;color:#81909c;font-size:20px;touch-action:none}.plan-module.locked .drag-handle{color:var(--gold);cursor:not-allowed}.sequence{display:grid;place-items:center;width:43px;height:43px;border-radius:50%;background:var(--pale);color:var(--navy);font-weight:900}.module-copy .phase{color:var(--blue);font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:850}.module-copy h4{margin:3px 0;color:var(--navy);font-size:15px}.module-copy p{margin:0;color:var(--gray);font-size:12px;line-height:1.35}.module-time label{display:block;color:var(--gray);font-size:9px;text-transform:uppercase}.module-time input{width:65px;height:38px;border:1px solid var(--line);border-radius:8px;padding:6px}.module-buttons{display:flex;gap:5px}.icon-button{width:38px;height:38px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--navy);font-size:18px}.icon-button:hover{background:var(--pale)}.plan-actions{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.library-head{display:flex;justify-content:space-between;align-items:start}.library-head h3{margin:0;color:var(--navy);font-size:21px}.objective-note{margin:10px 0;padding:10px;border-radius:9px;background:#f2effa;color:#4d3d83;font-size:12px;line-height:1.4}.builder-library .search-input{margin:14px 0 9px}.filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.drag-note{margin:9px 1px;color:var(--gray);font-size:11px}.activity-results{display:grid;gap:8px}.result-card{position:relative;padding:12px 88px 12px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:grab}.result-card:active{cursor:grabbing}.result-card .id{color:var(--blue);font-size:10px;font-weight:850}.result-card h4{margin:3px 0 4px;color:var(--navy);font-size:14px}.result-card p{margin:0;color:var(--gray);font-size:11px}.result-card .result-actions{position:absolute;right:8px;top:8px;display:grid;gap:5px}.result-card .result-actions button{height:30px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--navy);font-size:11px;font-weight:750}.result-card .result-actions .add-result{background:var(--blue);color:#fff;border-color:var(--blue)}
.library-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 250px;gap:10px;margin-bottom:18px}.activity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:13px}.activity-card{overflow:hidden;display:flex;flex-direction:column}.activity-card .color-bar{height:7px;background:var(--blue)}.activity-card[data-prefix="CS"] .color-bar{background:var(--gold)}.activity-card[data-prefix="PAS"] .color-bar{background:var(--blue)}.activity-card[data-prefix="SRV"] .color-bar{background:var(--teal)}.activity-card[data-prefix="TRN"] .color-bar{background:var(--orange)}.activity-card[data-prefix="ATK"] .color-bar{background:var(--purple)}.activity-card[data-prefix="BLK"] .color-bar{background:var(--navy)}.activity-card[data-prefix="DEF"] .color-bar{background:#277ea5}.activity-card[data-prefix="SYS"] .color-bar{background:#465b70}.activity-card .body{padding:15px;display:flex;flex-direction:column;flex:1}.activity-card .idline{display:flex;justify-content:space-between;color:var(--blue);font-size:11px;font-weight:850}.activity-card h3{margin:7px 0;color:var(--navy);font-size:18px}.activity-card .habit{margin:0 0 13px;color:var(--gray);font-size:12px;line-height:1.45;flex:1}.tags{display:flex;flex-wrap:wrap;gap:5px}.tag{padding:4px 7px;border-radius:999px;background:var(--pale);color:#50606c;font-size:10px;font-weight:700}.activity-card .card-actions{margin-top:14px}.activity-card .button{flex:1}.difficulty{letter-spacing:1px;color:var(--gold)}
.saved-toolbar{margin-bottom:18px}.file-button{position:relative;display:inline-grid;place-items:center}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.saved-meta{margin:8px 0 15px;color:var(--gray);font-size:12px}.saved-meta strong{color:var(--navy)}
.coach-card-dialog{width:min(1040px,94vw);max-height:92vh;padding:0;border:0;border-radius:18px;box-shadow:0 25px 90px rgba(0,42,85,.35);overflow:auto}.coach-card-dialog::backdrop{background:rgba(0,28,55,.68)}.dialog-close{position:sticky;float:right;top:12px;right:12px;z-index:3;width:42px;height:42px;border:0;border-radius:50%;background:var(--navy);color:#fff;font-size:25px}.card-hero{padding:28px 72px 23px 28px;color:#fff;background:linear-gradient(120deg,var(--navy),#004b88)}.card-hero .code{color:#b9d9ea;text-transform:uppercase;letter-spacing:.1em;font-size:12px;font-weight:850}.card-hero h2{margin:7px 0 10px;font-size:clamp(27px,4vw,42px)}.card-meta{display:flex;flex-wrap:wrap;gap:7px}.card-meta span{padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.13);font-size:11px;font-weight:750}.card-body{padding:25px}.card-lead-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.info-panel{padding:16px;border-radius:12px;background:var(--pale)}.info-panel h3,.instruction-panel h3{margin:0 0 8px;color:var(--navy);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.info-panel p{margin:0;line-height:1.55}.card-main-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;margin-top:18px}.instruction-panel{padding:17px;border:1px solid var(--line);border-radius:12px;margin-bottom:11px}.instruction-panel ul{margin:0;padding-left:20px}.instruction-panel li{margin:0 0 7px;line-height:1.45}.diagram-panel img{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:12px;background:#fff}.fix-table{width:100%;border-collapse:collapse;font-size:12px}.fix-table td{padding:8px;border-bottom:1px solid var(--line);vertical-align:top}.fix-table td:first-child{color:var(--navy);font-weight:800;width:42%}.score-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.score-item{text-align:center;padding:9px 4px;background:var(--pale);border-radius:8px}.score-item strong{display:block;color:var(--blue);font-size:18px}.score-item span{font-size:9px;color:var(--gray)}
.toast{position:fixed;left:50%;bottom:24px;z-index:100;transform:translate(-50%,130%);padding:12px 18px;border-radius:10px;background:var(--ink);color:#fff;box-shadow:var(--shadow);transition:transform .2s}.toast.show{transform:translate(-50%,0)}.sortable-ghost{opacity:.35}.sortable-drag{box-shadow:var(--shadow)}
@media(max-width:980px){.builder-shell{grid-template-columns:1fr}.builder-library{position:relative;top:0;max-height:none}.section-heading{align-items:start;flex-direction:column;gap:10px}.card-main-grid{grid-template-columns:1fr}.plan-module{grid-template-columns:34px 48px minmax(150px,1fr) 70px}.module-buttons{grid-column:3/6}.coach-control{min-width:170px}}
@media(max-width:700px){.app-header{align-items:flex-start;flex-wrap:wrap}.brand-mark{width:44px;height:44px}.brand-copy{min-width:calc(100% - 62px)}.coach-control{width:100%;margin:2px 0 0}.coach-control>div{width:100%}.coach-control select{flex:1}.top-nav{padding:0 8px}.nav-button{padding:0 11px}main{padding:18px 12px}.builder-toolbar{grid-template-columns:1fr 88px}.total-clock{grid-column:1/3}.plan-list-header small{display:none}.plan-module{grid-template-columns:30px 42px 1fr 65px;padding:8px;gap:6px}.module-buttons{grid-column:3/5}.module-copy p{display:none}.library-toolbar{grid-template-columns:1fr}.card-lead-grid{grid-template-columns:1fr}.card-body{padding:14px}.card-hero{padding-left:18px}.score-grid{grid-template-columns:repeat(2,1fr)}}
@media print{body{background:#fff}.app-header,.top-nav,.builder-library,.plan-actions,.time-warning,.dialog-close,.plan-list-header small{display:none!important}main{max-width:none;padding:0}.view{display:none!important}#view-builder.active{display:block!important}.builder-shell{display:block!important}.plan-workspace{border:0;box-shadow:none;padding:0}.builder-toolbar{grid-template-columns:1fr 95px 100px}.plan-module{break-inside:avoid;margin-bottom:6px;padding:8px}.drag-handle,.module-buttons{display:none}.plan-module{grid-template-columns:48px 1fr 70px}.sequence{grid-column:1}.module-copy{grid-column:2}.module-time{grid-column:3}.plan-context{font-size:11px}.plan-title-fields input,.target-field select,.module-time input{border:0;background:transparent}.plan-title-fields input{font-size:20px;font-weight:800;color:var(--navy)}}
