/* ShiftForge: independent four-crew identity. Not a corporate brand asset. */
:root{--blue:#006b3c;--green:#006b3c;--active:#00843d;--fresh:#78be20;--ink:#1f2d27;--muted:#596b60;--border:#dce5dc;color:var(--ink);background:#f5f7f2;font-size:16px} [hidden]{display:none!important}button{background:var(--green);border-radius:10px;box-shadow:0 2px 3px #1434210a}button:hover{background:#005530;box-shadow:0 4px 12px #006b3c20}.secondary,.icon-button{color:#345644;border-color:#d8e3d8}.secondary:hover,.icon-button:hover{background:#edf5e9}.text-button{color:#006b3c;background:transparent;box-shadow:none}.text-button:hover{background:#e7f1e6}.field{font-size:15px;gap:8px}.field>span{font-weight:600}input,select,textarea{border-color:#b3c6b9;color:var(--ink);padding:11px 13px;background:#fff}input:focus,select:focus,textarea:focus{border-color:#00843d;box-shadow:0 0 0 3px #00843d15}:focus-visible{outline-color:#00843d}h1{font-size:32px;font-weight:720;letter-spacing:-1px}h2{font-size:23px}small{font-size:12px}main{padding:30px 32px 60px}.shell{grid-template-columns:218px minmax(0,1fr)}.rail{background:#172e22;color:#e5eee7;border-right:0;padding-top:27px}.brand{color:#fff!important;letter-spacing:-.6px;font-size:24px;margin:0 0 37px;gap:10px}.brand img{background:#f9fcf3;border-radius:12px;padding:4px;width:44px;height:44px}.brand small{font-size:11px;color:#b3c8b9;letter-spacing:.2px;font-weight:400}.rail nav button{color:#c0d1c4;font-size:14px;border-radius:10px;padding:13px 12px;margin-bottom:3px}.rail nav button:hover{background:#284333}.rail nav button.active{background:#eaf4dc;color:#14472d;box-shadow:inset 3px 0 #78be20}.nav-count{background:#d5e9c0;color:#305c28;font-size:12px}.more summary{color:#bdd0c1;font-size:14px}.more-menu button{color:#c4d6c7}.more-menu button:hover{background:#2b4635;color:white}.rail-foot{color:#92b39c;padding-top:20px}.rail-foot small{color:#92b39c}.account-session{margin-top:auto;padding:20px 8px 0}.account-session button{color:#c4d6c7;width:100%;text-align:left}.account-session button:hover{background:#294735}.devbar{background:#efe2b9;color:#5c4a24}.page-header{margin-bottom:26px;min-height:72px;border-bottom:1px solid #dde6db;padding-bottom:20px}#context{color:#477b57;letter-spacing:1.2px;font-size:11px;text-transform:uppercase;font-weight:700}#subtitle{font-size:15px}.schedule-spotlight{background:linear-gradient(120deg,#17482f 0%,#006b3c 64%,#137144 100%);color:white;box-shadow:0 8px 22px #17372212;position:relative;overflow:hidden;padding:26px 30px;min-height:230px;border-radius:17px}.schedule-spotlight:after{content:'';position:absolute;width:340px;height:340px;border:1px solid #a7d76835;border-radius:50%;right:-100px;top:-60px;box-shadow:0 0 0 35px #a7d76810,0 0 0 70px #a7d7680b;pointer-events:none}.schedule-spotlight>div{z-index:1}.schedule-spotlight .pill{color:#eaf7df;background:#ffffff19;border:1px solid #ffffff26}.schedule-spotlight h2{font-size:31px;color:white;margin:14px 0 8px}.schedule-spotlight p{color:#c6dfce;font-size:15px}.schedule-spotlight button:not(.text-button){background:#d1eea0;color:#24491a;border:0}.schedule-spotlight button:hover{background:#e0f5bd}.schedule-spotlight .text-button{color:#ecf4e6}.schedule-spotlight .text-button:hover{background:#ffffff16}.calendar-art{transform:none;min-width:130px;background:#ffffffed;padding:18px;color:#285c3e;box-shadow:0 8px 18px #17372225}.calendar-art img{margin-top:10px}.calendar-art b{font-size:22px}.home-layout{gap:25px;grid-template-columns:minmax(0,2.4fr) minmax(255px,1fr)}.tip-card{background:#e7eddd;border:0}.tip-card h3{font-size:17px}.small-icon{background:#d1e5b3;color:#286327}.section-heading h2{font-size:23px}.request-card{border:1px solid #e4eade;padding:17px 20px;box-shadow:0 3px 7px #283b2607;border-left:3px solid #96b275}.request-card:hover{border-left-color:#00843d}.request-type{font-size:12px;color:#627d69;font-weight:600}.request-copy h3{font-size:16px}.request-copy p{font-size:14px}.filters button,.view-switch button{font-size:14px;color:#526958}.filters button.chosen,.view-switch .chosen{color:#006b3c;background:white;border:1px solid #cbdcc7;box-shadow:0 2px 4px #1f352a09}.view-switch{background:#e7eddf}.soft-count{background:#deecd1;color:#486735}.pill.posted{color:#236238;background:#dfefda}.pill.draft{color:#7b5400;background:#fff0bf}.draft-strip,.notice{background:#e6f0df;color:#3a5d41;font-size:14px}.legend{font-size:12px}.weekday{color:#5e7364;background:#f1f5ec}.calendar-shell{border-color:#dce5d6;box-shadow:0 4px 18px #253b2205}.day-number{font-size:14px}.shift-card{font-size:12px}.oncall-line{font-size:11px}.badge{font-size:11px;font-weight:650}.badge.FULL{background:#d8efdb;color:#245e2e}.badge.YELLOW_OPTIONAL_OT{background:#fff0b3;color:#765700;border-left:2px solid #cf9b14}.badge.RED_MANDATORY_COVERAGE{background:#ffe3d9;color:#a0311e;border-left:2px solid #c24d33}.badge.CRITICAL{background:#f6dce8;color:#97214c;border-left:2px solid #b82962}.badge.UNVERIFIED{background:#f2e7cd;color:#79551e;border-left:2px dashed #967128}.crew-A{--crew:#5288c0;background:#e9f1fc;color:#285681}.crew-B{--crew:#8b7dc2;background:#f0ecfa;color:#625394}.crew-C{--crew:#b78346;background:#f9efde;color:#86602c}.crew-D{--crew:#3f919a;background:#e4f3f4;color:#2b6971}.notification{border:1px solid #e5eadf;padding:17px 21px}.notification.unread{box-shadow:inset 3px 0 #00843d}.notification h3{font-size:15px}.notification p{font-size:14px}.roster-head{background:#eef3e7;color:#506955}.roster-row,.roster-head{grid-template-columns:minmax(180px,1.4fr) .6fr .65fr minmax(130px,1fr) .6fr 130px;padding:15px 20px;font-size:14px}.roster-actions{display:flex;align-items:center;flex-wrap:wrap;gap:0}.roster-actions small{display:block;flex-basis:100%;color:#657763;font-size:11px}.roster-actions button{padding:4px 8px}.roster-actions button[data-access]{font-weight:700}.email{color:#5f7366}.personal-hero{background:linear-gradient(105deg,#e8f1dd,#d9eccf);border-left:4px solid #00843d;position:relative;overflow:hidden}.personal-hero h2{color:#174b2b}.personal-hero:after{content:'';position:absolute;width:130px;height:130px;border:16px solid #a8c77738;border-radius:50%;right:25px;top:10px;pointer-events:none}.date-tile strong{color:#006b3c}.impact{background:#edf3e7;color:#3c5b44}.auth-error,#dialog-error:not(:empty),#error:not(:empty){color:#952f25;background:#ffebe7;border-radius:9px;padding:10px 13px;font-size:14px}.auth-error:empty{padding:0;background:none}#success:not(:empty){background:#e0efce;color:#315c22;border-left:3px solid #78be20;animation:success-in .22s ease-out}.history-card{border:1px solid #e3eadd}.history-card h3{color:#345b40}.detail-card{border-top-color:#00843d}.field-error{color:#952f25}#loading{padding:13px 20px;border-radius:10px;background:linear-gradient(90deg,#e2edda,#f2f7ec);color:#406245;margin-bottom:15px;animation:success-in .25s ease-out}.schedule-empty{padding:36px 24px;background:linear-gradient(120deg,#fff,#eef4e6)}.schedule-empty img{margin-bottom:15px}.empty.compact{background:#fdfefb;color:#5c735f}.auth-page{background:#f5f7f2}.auth-layout{padding:0;margin:0;max-width:none;display:grid;grid-template-columns:1.1fr 1fr;min-height:100vh}.auth-story{position:relative;background:linear-gradient(145deg,#e9f0df 0%,#dce9c9 50%,#c4d8a5 100%);padding:50px 64px 28px;overflow:hidden;display:flex;flex-direction:column}.auth-story:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(155deg,transparent 0 44px,#34592b06 45px 46px);pointer-events:none}.auth-wordmark{width:218px;position:relative;margin-bottom:55px}.story-copy{position:relative}.story-copy .eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:2px;color:#49712f;font-weight:650}.story-copy h1{font-size:clamp(36px,3.6vw,56px);line-height:1.1;letter-spacing:-2.2px;margin:16px 0 20px;color:#194429;font-weight:750}.story-copy p{font-size:18px;color:#4c6b40}.rotation-visual{position:relative;width:330px;height:300px;margin:30px auto 15px;flex-shrink:0}.orbit{position:absolute;border:1px solid #7c9c5c70;border-radius:50%;width:250px;height:250px;left:40px;top:0}.orbit-outer{transform:rotate(25deg);border-style:dashed;width:290px;height:290px;left:20px;top:-20px}.orbit-inner{width:190px;height:190px;left:70px;top:30px;border-color:#96b07860}.rotation-core{position:absolute;left:100px;top:60px;width:130px;height:130px;display:grid;place-items:center;background:#f8fcf0;border-radius:32px;box-shadow:0 18px 35px #2445201c;transform:rotate(-7deg)}.rotation-core img{width:90px;transform:rotate(7deg)}.orbit-crew{position:absolute;border-radius:12px;display:grid;place-items:center;width:45px;height:45px;font-size:18px;font-weight:700;background:#f6faef;color:#2f583a;box-shadow:0 3px 10px #29482110}.orbit-a{top:-10px;left:120px;background:#e5edfb;color:#416184}.orbit-b{right:22px;top:95px;background:#efe7fa;color:#715192}.orbit-c{bottom:32px;left:142px;background:#faeacd;color:#82632e}.orbit-d{left:10px;top:108px;background:#e2f0ee;color:#357078}.flow-note{position:absolute;bottom:-53px;right:-12px;border-radius:13px;background:#fbfdf6;padding:12px 17px;display:flex;align-items:center;gap:12px;box-shadow:0 8px 20px #29462112;font-size:13px;font-weight:650;transform:rotate(-3deg)}.flow-note small{display:block;font-size:11px;font-weight:400}.flow-check{background:#dcecc5;color:#356c22;border-radius:50%;padding:4px 9px}.story-footer{margin-top:auto;padding-top:24px;color:#3e5b31;font-size:12px}.auth-form-side{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:45px 55px;background:#f8faf5}.auth-card{width:100%;max-width:390px}.auth-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.pilot-tag{font-size:12px;letter-spacing:1px;text-transform:uppercase;border:1px solid #b7caa4;color:#527136;border-radius:5px;padding:3px 9px}.auth-card h2{font-size:33px;letter-spacing:-1px;margin:0 0 8px}.auth-card>p{color:#607260;font-size:15px}#login-form{margin-top:30px}.auth-card .field{font-size:14px;font-weight:600;margin-bottom:22px}.auth-card input{height:51px;background:white;border:1px solid #bfccbc;font-size:16px}.password-control{display:flex;background:white;border:1px solid #bfccbc;border-radius:9px;overflow:hidden}.password-control input{border:0;min-width:0;flex:1}.password-control button{font-size:13px;padding:6px 13px}.signin-button{width:100%;display:flex;justify-content:space-between;align-items:center;padding:14px 18px;margin-top:12px;font-size:16px;background:#006b3c}.reset-guidance{font-size:13px!important;line-height:1.65;padding-top:24px;color:#607160}.auth-privacy{border-top:1px solid #dce5d5;margin-top:25px;padding-top:20px;display:flex;gap:10px;font-size:12px;color:#596b60}.auth-footer{font-size:12px;color:#596b60;margin:30px 0 0}.account-options{display:flex;gap:12px;flex-wrap:wrap}.account-status{display:inline-block;background:#e7f0df;color:#45623a;border-radius:7px;padding:5px 10px}#credential-slip{padding:20px;background:#f5f8ef;border:1px solid #d5e3c8;border-radius:12px}#credential-slip h3{font-size:20px;margin:18px 0 10px}#credential-slip dl{margin:10px 0}#credential-slip dt{font-size:12px;color:#64745c;margin-top:12px}#credential-slip dd{margin:0;font-size:16px;overflow-wrap:anywhere;font-weight:600}#credential-slip p{font-size:13px;margin-top:15px}.dialog-header{gap:10px}dialog{color:var(--ink)}.printing-slip dialog{max-height:none}.printing-slip #credential-slip{break-inside:avoid}.auth-page .skip-link{color:#006b3c}@keyframes success-in{from{opacity:.65;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1150px){.shell{grid-template-columns:180px minmax(0,1fr)}.brand{font-size:20px}.brand img{width:34px;height:34px}.brand small{font-size:10px}.home-layout{grid-template-columns:1fr}.auth-story{padding:40px 35px 25px}.auth-form-side{padding:40px 35px}.roster-row,.roster-head{grid-template-columns:minmax(130px,1.2fr) .6fr .6fr minmax(100px,1fr) .5fr 110px;padding:12px;gap:8px}.story-copy h1{font-size:40px}.rotation-visual{transform:scale(.9);transform-origin:top center;margin-bottom:0}}
@media(max-width:760px){.auth-layout{grid-template-columns:1fr}.auth-story{padding:26px 25px 24px}.auth-wordmark{width:180px;margin-bottom:22px}.story-copy h1{font-size:29px;letter-spacing:-1px;margin:8px 0 10px}.story-copy h1 br{display:none}.story-copy .eyebrow,.rotation-visual,.story-footer{display:none}.story-copy p{font-size:14px;margin:0}.auth-form-side{padding:28px 25px 20px;justify-content:flex-start}.auth-card{max-width:430px}.auth-card-top{margin-bottom:12px}.auth-card-top>img{display:none}.auth-card-top{justify-content:flex-end}.auth-card h2{font-size:27px}#login-form{margin-top:22px}.auth-footer{margin-top:18px}.reset-guidance{padding-top:16px}.auth-privacy{margin-top:18px;padding-top:15px}}
@media(max-width:700px){.shell{display:block}.rail{padding:12px}.rail .brand{display:flex;margin:0 0 13px;font-size:23px;gap:9px}.rail .brand small{display:none}.rail .brand img{width:30px;height:30px;border-radius:8px}.rail nav button{font-size:11px;padding:7px 2px;margin:0}.rail nav button.active{box-shadow:inset 0 -2px #78be20}.rail .more{margin:12px 8px 5px}.account-session{position:absolute;top:12px;right:12px;padding:0;margin:0}.devbar:not([hidden])~.shell .account-session{position:static}.account-session button{font-size:12px;padding:6px 10px}.rail-foot{display:none}main{padding:22px 16px 40px}.page-header{padding-bottom:15px;margin-bottom:20px;gap:14px}h1{font-size:28px}.schedule-spotlight{padding:23px;min-height:auto}.schedule-spotlight h2{font-size:27px}.schedule-spotlight p{font-size:14px}.roster-head{display:none}.roster-row{grid-template-columns:1fr 1fr;padding:18px;gap:11px}.person-cell,.roster-row .email{grid-column:1/-1}.roster-actions{justify-content:flex-end}.roster-actions small{text-align:right}.personal-hero{padding:23px}.personal-hero:after{display:none}.personal-hero h2{font-size:25px}.filters button{font-size:13px}.legend{font-size:12px}.view-switch button{font-size:12px}.auth-layout{padding:0}.auth-story{min-width:0}.notification p{font-size:13px}.flow-note{display:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{body.printing-slip{background:white!important}body.printing-slip>:not(dialog){display:none!important}body.printing-slip dialog{position:static;display:block!important;inset:auto;width:100%;max-width:none;max-height:none;border:0;border-radius:0;box-shadow:none;padding:0;overflow:visible}body.printing-slip dialog::backdrop{display:none}body.printing-slip dialog>:not(#dialog-body),body.printing-slip #dialog-body>:not(#credential-slip){display:none!important}body.printing-slip #credential-slip{border:1px solid #777;background:white;max-width:500px}body.printing-slip #credential-slip img{max-width:210px}}

/* Keep controls reachable on touch screens and narrow layouts. */
.auth-layout{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.auth-form-side,.auth-card,.password-control input{min-width:0}.auth-card input{max-width:100%}@media(max-width:760px){.auth-layout{grid-template-columns:minmax(0,1fr)}}
.month-toolbar{flex-wrap:wrap}.month-label{min-width:0}.person-cell,.request-copy,.shift-row-names,.agenda-row>div,.notification>div{min-width:0;overflow-wrap:anywhere}.roster-row>div{min-width:0}.roster-actions{overflow-wrap:anywhere}.agenda-row{flex-wrap:wrap}.section-heading{flex-wrap:wrap}#panel{scroll-margin-top:20px}.check{min-height:44px;align-items:center}
@media(max-width:1000px){.roster-head{display:none}.roster-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:18px;gap:11px}.person-cell,.roster-row .email{grid-column:1/-1}.roster-actions{justify-content:flex-end}}
@media(max-width:700px),(pointer:coarse){button,.roster-actions button,.account-session button,.filters button,.view-switch button,.icon-button,#close-dialog{min-height:44px}.icon-button,#close-dialog{min-width:44px}.more summary{min-height:44px}.more-menu button{min-height:44px}input,select,textarea{font-size:16px}}
@media(max-width:480px){.month-toolbar{gap:6px}.month-label{flex:1}.month-label input{width:100%;min-width:0}.view-switch{flex-basis:100%;margin-left:0}.view-switch button{flex:1}.request-copy{min-width:0;flex-basis:calc(100% - 44px)}.request-card>button{margin-left:0}.notice{flex-wrap:wrap}.detail-card,#panel:not(:empty){padding:18px}.dialog-header{align-items:flex-start}dialog{padding:20px}.person-cell strong{overflow-wrap:anywhere}.agenda-row>button{margin-left:67px}}
