:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#172c2c;background:#f3f6f5;font-synthesis:none;--ink: #182d2d;--muted: #546764;--line: #dce6e3;--deep: #102d2c;--teal: #0c5d51;--soft-teal: #e5f4ed;--sand: #fbf1d9;--surface: #fff;--radius: 16px}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:300px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #59ab98;outline-offset:2px}h1,h2,h3,p{margin:0}h1,h2,h3{color:var(--ink);letter-spacing:-.035em}h1{font-size:clamp(1.8rem,4vw,2.65rem);line-height:1.1}h2{font-size:1.45rem;line-height:1.2}h3{font-size:1.04rem;margin-bottom:.8rem}p{line-height:1.55}a{color:var(--teal)}label{display:grid;gap:.38rem;color:var(--ink);font-weight:650;font-size:.85rem}input:not([type=checkbox]),select,textarea{width:100%;min-height:42px;border:1px solid #c5d4cf;border-radius:8px;background:#fff;color:var(--ink);padding:.56rem .65rem;min-width:0}input[readonly]{background:#f3f7f5}input[type=file]{padding:.4rem}input::placeholder,textarea::placeholder{color:#667771}textarea{resize:vertical}fieldset{border:0;min-width:0;margin:0;padding:0}strong{font-weight:680}.primary,.secondary,.text-button,.danger-text{display:inline-flex;align-items:center;justify-content:center;gap:.48rem;min-height:40px;padding:.54rem .82rem;border:1px solid transparent;border-radius:9px;font-weight:660;font-size:.84rem;line-height:1.2}.primary{background:var(--teal);color:#fff}.primary:hover:not(:disabled){background:#084b42}.secondary{background:#fff;border-color:#d3e0dc;color:#244640}.secondary:hover:not(:disabled){background:#f1f7f5;border-color:#9ab9af}.small{min-height:34px;padding:.4rem .68rem}.icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;border:1px solid transparent;border-radius:9px;color:inherit;background:transparent}.icon:hover:not(:disabled){background:#e5efeb;color:var(--ink)}.text-button{background:transparent;color:var(--teal)}.danger-text{background:transparent;color:#9b302a;margin-right:auto;padding-inline:0}.muted,.hint{color:var(--muted)}.muted{font-size:.91rem}.hint{font-size:.82rem;margin-top:.75rem}.eyebrow{color:var(--teal);font-size:.72rem;font-weight:760;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.33rem}.checkbox{display:flex;align-items:center;gap:.5rem;font-weight:560}.checkbox input{width:17px;height:17px;accent-color:var(--teal);margin:0;flex:none}.brand{display:flex;align-items:center;gap:.65rem;min-width:0;position:relative;z-index:1}.brand-icon{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;flex:none;background:#b8f0d7;color:#123c35}.brand strong,.brand small{display:block}.brand strong{font-size:.92rem}.brand small{font-size:.75rem;margin-top:.12rem;opacity:.78}.access{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}.access-aside{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;min-height:590px;padding:clamp(1.5rem,5vw,4.8rem);background:linear-gradient(140deg,#102e2d,#123c35);color:#fff}.access-copy{z-index:1;max-width:500px}.overline{display:inline-block;border:1px solid #50766b;color:#b9eed8;border-radius:100px;padding:.35rem .65rem;font-size:.77rem}.access-copy h1{color:#fff;margin:1rem 0;font-size:clamp(2.8rem,6vw,6rem);letter-spacing:-.065em}.access-copy p{max-width:330px;color:#cde4dc;font-size:1.05rem}.access-footer{display:flex;align-items:center;gap:.5rem;color:#c0ded3;font-size:.83rem;z-index:1}.access-decoration{position:absolute;right:-6.5rem;bottom:-5rem;color:#75a697;opacity:.28;transform:rotate(-13deg)}.access-main{background:#fbfdfc;display:grid;place-items:center;padding:2rem 1.2rem}.access-form{width:min(100%,350px)}.lock-icon{display:grid;place-items:center;width:48px;height:48px;color:var(--teal);background:var(--soft-teal);border-radius:13px;margin-bottom:1rem}.access-form h2{font-size:1.85rem}.access-form p{margin:.45rem 0 1.5rem}.access-form label+label{margin-top:.8rem}.wide-button{width:100%;min-height:46px;margin-top:1.15rem}.access-form .error{margin-top:1rem}.startup{display:grid;justify-items:center;align-content:center;gap:1rem;min-height:80vh}.app-shell{display:grid;min-height:100dvh;grid-template-columns:232px minmax(0,1fr)}.sidebar{min-height:100dvh;position:sticky;top:0;align-self:start;display:flex;flex-direction:column;background:var(--deep);color:#f3faf6;padding:1.45rem 1rem 1rem}.sidebar .brand{margin:0 .3rem}.sidebar nav{display:grid;gap:.32rem;margin-top:2.5rem}.nav-label{text-transform:uppercase;letter-spacing:.095em;font-size:.64rem;font-weight:700;color:#a4c9bc;padding:.35rem .65rem}.sidebar nav button{display:flex;align-items:center;gap:.66rem;padding:.75rem .62rem;min-height:44px;border:1px solid transparent;border-radius:9px;text-align:left;font-size:.87rem;color:#d3e8e1;background:transparent}.sidebar nav button:hover,.sidebar nav button.active{background:#214743;color:#fff}.sidebar nav button.active{border-color:#3b665c}.sidebar nav button.active svg{color:#a1e9cb}.side-foot{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.52rem;align-items:center;border-top:1px solid #355953;margin-top:auto;padding-top:.9rem}.side-foot strong,.side-foot small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-foot strong{font-size:.78rem}.side-foot small{color:#b3d3c9;font-size:.69rem;margin-top:.1rem}.avatar{display:grid;place-items:center;width:33px;height:33px;border-radius:50%;background:#315b52;color:#d6f2e5;font-weight:700}.workspace{min-width:0;width:100%;padding:clamp(1rem,3vw,2.4rem)}.page-header{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:.9rem;margin-bottom:1.35rem}.page-header .eyebrow{margin-bottom:.52rem}.week-nav{display:flex;align-items:center;gap:.2rem;flex-wrap:wrap}.week-nav .icon{background:#fff;border-color:var(--line)}.week-select{position:relative;place-items:center;min-height:36px;min-width:148px;padding-inline:.48rem;overflow:hidden;font-size:.86rem}.week-select input{position:absolute;opacity:0;cursor:pointer;inset:0;padding:0;height:100%;min-height:0}.week-select input::-webkit-calendar-picker-indicator{position:absolute;cursor:pointer;inset:0;width:100%;height:100%}.week-select:focus-within{outline:2px solid #59ab98;border-radius:7px}.workflow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin-bottom:1rem}.workflow article{border:1px solid var(--line);border-radius:12px;background:#fff;padding:.83rem .7rem;display:flex;align-items:flex-start;gap:.6rem;min-width:0}.step-tag{display:inline-flex;justify-content:center;align-items:center;min-width:29px;padding:.28rem .35rem;background:var(--soft-teal);color:var(--teal);border-radius:6px;font-size:.73rem;font-weight:750;flex:none}.workflow strong{display:block;font-size:.82rem;line-height:1.2}.workflow small{display:block;color:var(--muted);font-size:.74rem;margin-top:.25rem;line-height:1.25}.shortage{display:flex;align-items:flex-start;gap:.7rem;margin:0 0 1rem;background:#fff6de;border:1px solid #ecdca9;padding:.75rem .9rem;border-radius:12px;color:#614721}.shortage-icon{display:flex;align-items:center;min-height:24px}.shortage details{margin-top:.2rem;font-size:.79rem}.shortage ul{margin:.45rem 0 .1rem;padding-left:1.2rem}.shortage button{margin-left:auto;flex:none}.panel{border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:0 4px 18px #2a544009;overflow:hidden;min-width:0}.padded{padding:clamp(1rem,2.3vw,1.45rem)}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;flex-wrap:wrap}.section-head p{margin-top:.3rem}.panel.padded>.section-head{margin-bottom:1.2rem}.calendar-head{padding:1.15rem}.calendar-meta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:.54rem;color:var(--muted);font-size:.77rem}.legend{display:inline-block;width:.56rem;height:.56rem;border-radius:50%;margin-right:.14rem}.legend.confirmed{background:#318c6b}.legend.draft{background:#b77a1c}.toolbar{display:flex;flex-wrap:wrap;gap:.42rem}.filters{display:flex;align-items:end;flex-wrap:wrap;gap:.8rem 1.15rem;border-top:1px solid var(--line);padding:.7rem 1.15rem}.filters label{font-size:.78rem}.filters select{min-height:34px;padding:.3rem .55rem;min-width:145px}.filters .checkbox{align-self:center;margin-top:.7rem}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(108px,1fr));border-top:1px solid var(--line);overflow:auto;min-height:340px}.calendar-day{border-right:1px solid var(--line);min-width:0}.calendar-day:last-child{border-right:0}.calendar-day header{min-height:65px;display:flex;justify-content:space-between;align-items:center;padding:.58rem .52rem;background:#f7faf8;border-bottom:1px solid var(--line)}.calendar-day.today header{background:#e1f2e9}.calendar-day header span,.calendar-day header strong{display:block}.calendar-day header span{color:#49625b;font-size:.72rem;text-transform:capitalize}.calendar-day header strong{margin-top:.15rem;font-size:.93rem}.day-add{width:27px;height:27px}.day-content{display:grid;align-content:start;gap:.42rem;padding:.46rem}.day-empty{color:#768d85;font-size:.8rem;text-align:center;padding:.52rem 0}.event{width:100%;min-width:0;display:grid;align-content:start;gap:.19rem;padding:.48rem;text-align:left;background:#e8f5ee;border:1px solid #c3e2d4;border-left:3px solid #258365;border-radius:7px;color:#1d5342;overflow-wrap:anywhere}.event.draft{background:#fcf3dd;border-color:#ebd7a4;border-left-color:#a97724;color:#604517}.event.cancelled{background:#f6eeec;border-color:#e8d3d0;border-left-color:#a55e58;color:#703b35}button.event:hover{box-shadow:0 0 0 2px #9fbeb2}.event strong{font-size:.81rem;line-height:1.26}.event span,.event small{font-size:.71rem;line-height:1.28}.event small{font-weight:640}.event .event-time{display:flex;align-items:center;gap:.22rem;white-space:nowrap;font-weight:700}.event-time svg{flex:none}.calendar-footer,.workspace-foot{display:flex;gap:.45rem;align-items:center;color:var(--muted);font-size:.77rem}.calendar-footer{border-top:1px solid var(--line);padding:.75rem 1.15rem}.calendar-footer svg{flex:none}.workspace-foot{justify-content:flex-end;margin-top:.9rem}.empty{display:grid;justify-items:center;gap:.33rem;padding:2.2rem 1rem;text-align:center;color:var(--muted)}.empty svg{color:var(--teal);margin-bottom:.25rem}.empty strong{color:var(--ink)}.empty p{font-size:.85rem}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left}th,td{padding:.75rem 1rem;border-top:1px solid var(--line);font-size:.86rem}th{background:#f6faf8;color:#486159;font-size:.77rem;white-space:nowrap}td{overflow-wrap:anywhere}td:last-child{text-align:right}.table-sub{display:block;color:var(--muted);margin-top:.14rem;font-size:.74rem}.badge{display:inline-flex;padding:.26rem .44rem;border-radius:100px;font-size:.72rem;font-weight:690}.badge.confirmed{color:#215f45;background:#e0f3e8}.badge.cancelled{color:#843a32;background:#f6e5e1}dialog{width:min(580px,calc(100vw - 1.5rem));max-height:calc(100dvh - 1.5rem);overflow:auto;border:1px solid var(--line);border-radius:16px;box-shadow:0 22px 60px #061c1b40;padding:clamp(1rem,3vw,1.5rem);color:var(--ink)}dialog::backdrop{background:#091e1dc0}.dialog-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.9rem;margin-bottom:1rem}.dialog-header .icon{margin:-.25rem -.25rem 0 0}.form-grid{display:grid;gap:.8rem;grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.wide{grid-column:1 / -1}.field-section{margin-top:1.05rem}.field-section p{margin:.24rem 0 .55rem}.dialog-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem;margin-top:1.1rem;padding-top:.9rem;border-top:1px solid var(--line)}.windows{display:grid;justify-items:start;gap:.55rem}.window-row{width:100%;display:grid;grid-template-columns:minmax(110px,1.5fr) repeat(2,minmax(78px,1fr)) auto;gap:.45rem;align-items:end}.window-row .icon{height:42px;color:#8a3a34}.trainer-select{max-width:340px;margin-bottom:.9rem}.section-button{margin-top:1rem}.stage-settings{display:grid;gap:.42rem}.stage-setting{display:grid;grid-template-columns:minmax(160px,1fr) minmax(125px,1fr) minmax(92px,.5fr);gap:.7rem;align-items:center;border:1px solid var(--line);border-radius:9px;padding:.62rem}.stage-setting strong{margin-left:.45rem;font-size:.86rem}.identifier-list{padding:.4rem .2rem;color:var(--muted);font-size:.83rem}.notice,.error,.callout{border-radius:9px;padding:.65rem .8rem;font-size:.86rem;line-height:1.42}.notice{position:fixed;z-index:5;right:1rem;bottom:1rem;max-width:min(500px,calc(100% - 2rem));display:flex;align-items:center;gap:.7rem;box-shadow:0 8px 28px #1c433022}.notice .icon{width:27px;height:27px}.error{background:#fceee9;color:#882e25;border:1px solid #edc8c1;margin-top:.75rem}.success,.callout{background:#e7f6ee;color:#24583e;border:1px solid #cce6d8}.callout{display:flex;align-items:center;gap:.4rem;margin-top:.7rem}@media(max-width:1000px){.app-shell{grid-template-columns:195px minmax(0,1fr)}.workflow{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.access{grid-template-columns:1fr}.access-aside{min-height:250px;gap:1.4rem;padding:1.2rem}.access-copy h1{font-size:2.45rem;margin:.5rem 0}.access-copy h1 br{display:none}.access-copy p{font-size:.92rem}.access-footer{display:none}.access-main{align-content:start;padding:1.5rem 1rem 2rem}.app-shell{grid-template-columns:minmax(0,1fr)}.sidebar{position:static;min-height:0;padding:.78rem .75rem}.sidebar nav{display:flex;flex-wrap:wrap;gap:.24rem;margin-top:.7rem}.nav-label{display:none}.sidebar nav button{font-size:.76rem;min-height:34px;gap:.34rem;padding:.38rem .48rem}.sidebar nav svg{width:15px;height:15px}.side-foot{margin-top:.66rem;padding-top:.42rem}.form-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.shortage{flex-wrap:wrap}}@media(max-width:480px){.calendar-grid{display:block;min-height:0}.calendar-day{border:0;border-bottom:1px solid var(--line)}.calendar-day:last-child{border-bottom:0}.calendar-day header{min-height:0;padding:.45rem .72rem}.calendar-day header div{display:flex;align-items:baseline;gap:.5rem}.day-content{padding:.44rem .72rem}.day-empty{padding:.1rem 0}.window-row{grid-template-columns:repeat(2,minmax(0,1fr)) auto}.window-row>label:first-child{grid-column:1 / -1}.stage-setting{grid-template-columns:minmax(0,1fr) 96px;gap:.45rem}.stage-setting>div{grid-column:1 / -1}.shortage button{margin-left:0}}
