:root{--navy:#221859;--navy-2:#43368D;--orange:#EC6303;--orange-ink:#B14B03;--bg:#F4F3F8;--surface:#FFFFFF;--surface-2:#EDEBF4;--line:#D9D5E6;--line-2:#C6C1D9;--ink:#1A1A18;--muted:#615D78;--faint:#8C889F;--na-bg:#FFF6E5;--na-bg-2:#FBEBC9;--na-ink:#8A5A00;--na-line:#E9C77E;--ok-bg:#E6F4EA;--ok-ink:#1E6B3A;--ok-line:#9BD1AD;--err-bg:#FDE8E8;--err-ink:#9B2C2C;--today-bg:#FBF1E8;--crewchip-bg:#E9E6F5;--crewchip-ink:#221859;--shadow:0 14px 36px rgba(34,24,89,.20);--font-body:"Barlow","Helvetica Neue",Arial,sans-serif;--font-cond:"Barlow Condensed","Roboto Condensed","Arial Narrow",Arial,sans-serif}*,:after,:before{box-sizing:border-box}html{color-scheme:light}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 var(--font-body);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--navy-2)}:focus-visible{outline:2px solid var(--orange);outline-offset:2px}.muted{color:var(--muted)}.small{font-size:13px}.topbar{background:var(--navy);color:#fff;border-bottom:4px solid var(--orange)}.topbar-inner{max-width:1280px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.brand{display:flex;flex-direction:column;color:#fff;text-decoration:none;line-height:1}.brand .wordmark{text-transform:uppercase;letter-spacing:.14em;font-size:12px;color:#C9C4E6}.brand .appname,.brand .wordmark{font-family:var(--font-cond);font-weight:700}.brand .appname{font-size:26px;margin-top:3px}.nav{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.nav a{color:#E6E3F4;text-decoration:none;font-weight:600;font-size:14px;padding:7px 10px;border-radius:4px}.nav a:hover{background:rgba(255,255,255,.1);color:#fff}.nav a.active{background:rgba(255,255,255,.16);color:#fff}.nav .who{color:#C9C4E6;font-size:13px;padding:0 6px}.nav button.linkish{background:transparent;border:0;color:#C9C4E6;font-size:13px;padding:7px 8px;border-radius:4px}.nav button.linkish:hover{color:#fff;background:rgba(255,255,255,.1)}main{max-width:1280px;margin:0 auto;padding-block:18px 48px;padding-inline:20px}main.narrow{max-width:760px}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid var(--line-2);border-radius:4px;background:var(--surface);color:var(--navy);font-weight:600;font-size:14px;line-height:1.2;white-space:nowrap;text-decoration:none}.btn:hover{border-color:var(--navy-2)}.btn.primary{background:var(--orange);border-color:var(--orange);color:#fff}.btn.primary:hover{background:var(--orange-ink);border-color:var(--orange-ink)}.btn.ghost,.btn.link{background:transparent}.btn.link{border:0;color:var(--navy-2);text-decoration:underline;padding-inline:4px}.btn.danger:hover{color:#B42318;border-color:#B42318}.btn[disabled]{opacity:.5;cursor:not-allowed}.btn.block{width:100%;justify-content:center}.weeknav{display:inline-flex;align-items:center;border:1px solid var(--line-2);border-radius:4px;background:var(--surface);overflow:hidden}.weeknav button{border:0;background:transparent;padding:7px 10px;font-weight:700;color:var(--navy)}.weeknav button:hover{background:var(--surface-2)}.weeknav .label{padding:0 10px;font-family:var(--font-cond);font-weight:700;font-size:18px;letter-spacing:.01em;border-inline:1px solid var(--line-2);white-space:nowrap;min-width:15ch;text-align:center}.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:4px;overflow:hidden;background:var(--surface)}.seg button{border:0;background:transparent;padding:7px 12px;font-weight:600;font-size:14px;color:var(--muted)}.seg button[aria-pressed=true]{background:var(--navy);color:#fff}.check{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--muted);cursor:pointer}.check input{accent-color:var(--orange);width:16px;height:16px;margin:0}.field{display:grid;grid-gap:4px;gap:4px;font-size:13px;font-weight:600;color:var(--muted)}.field input,.field select,.field textarea{width:100%;padding:8px 10px;border:1px solid var(--line-2);border-radius:4px;background:var(--surface);color:var(--ink);font-weight:500}.field textarea{min-height:90px;resize:vertical;font-family:inherit}.banner{padding:10px 12px;border-radius:4px;font-size:14px;border:1px solid transparent}.banner.error{background:var(--err-bg);color:var(--err-ink);border-color:#F3B8B8}.banner.ok{background:var(--ok-bg);color:var(--ok-ink);border-color:var(--ok-line)}.banner.warn{background:var(--na-bg);color:var(--na-ink);border-color:var(--na-line)}.card{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:18px}.card h1,.card h2{margin:0 0 6px;font-family:var(--font-cond);font-weight:700;letter-spacing:.02em}.card h1{font-size:28px}.card h2{font-size:22px}.login-box{max-width:420px;margin:30px auto;display:grid;grid-gap:14px;gap:14px}.pagehead{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 16px;margin-bottom:12px}.pagehead h1{font-family:var(--font-cond);font-weight:700;font-size:30px;letter-spacing:.02em;margin:0}.pagehead p{margin:0;color:var(--muted);font-size:14px;max-width:70ch}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:12px}.toolbar .spacer{flex:1 1}.editnote{font-size:13px;color:var(--orange-ink);margin:-4px 0 10px}.summary{display:flex;flex-wrap:wrap;gap:6px 22px;align-items:baseline;font-size:14px;color:var(--muted);margin-bottom:10px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.summary b{color:var(--ink);font-weight:700}.summary .warn,.summary .warn b{color:var(--na-ink)}.gridwrap{overflow-x:auto;border:1px solid var(--line);border-radius:6px;background:var(--surface)}table.sched{border-collapse:separate;border-spacing:0;width:100%;min-width:880px;table-layout:fixed}.sched td,.sched th{border-bottom:1px solid var(--line);border-right:1px solid var(--line);vertical-align:top;text-align:left}.sched tr>:last-child{border-right:0}.sched tbody tr:last-child>*{border-bottom:0}.sched thead th{background:var(--surface-2);padding:8px 10px;font-family:var(--font-cond);font-weight:700;font-size:17px;letter-spacing:.04em;text-transform:uppercase;line-height:1.1}.sched thead th small{display:block;font-family:var(--font-body);font-weight:500;font-size:12px;letter-spacing:0;text-transform:none;color:var(--muted);margin-top:2px}.sched thead th.today{box-shadow:inset 0 -3px 0 var(--orange)}.sched thead th.today small{color:var(--orange-ink);font-weight:600}.sched th.crewcol{width:176px;z-index:2}.sched tbody th,.sched th.crewcol{position:-webkit-sticky;position:sticky;left:0}.sched tbody th{z-index:1;background:var(--surface);padding:10px 12px;font-weight:400}.sched tbody th .crewname{font-family:var(--font-cond);font-weight:700;font-size:18px;letter-spacing:.03em;text-transform:uppercase;line-height:1.05}.sched tbody th .crewname a{color:inherit;text-decoration:none}.sched tbody th .crewname a:hover{color:var(--navy-2);text-decoration:underline}.sched tbody th .foreman{font-size:12.5px;color:var(--muted);margin-top:2px}.sched td{padding:6px;height:66px}.sched td.today{background:var(--today-bg)}.sched td .stack{display:flex;flex-direction:column;gap:4px}.sched td.na{background-image:repeating-linear-gradient(135deg,var(--na-bg) 0 7px,var(--na-bg-2) 7px 14px)}.sched td.na.today{box-shadow:inset 0 0 0 2px var(--orange)}.sched td.holiday,.sched td.weekend{background-color:var(--surface-2)}.sched td .daytag{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-weight:600}.sched td.editable{cursor:pointer;position:relative}.sched td.editable:focus-visible,.sched td.editable:hover{box-shadow:inset 0 0 0 2px var(--orange);outline:none}.sched td.editable:after{content:"+";position:absolute;right:7px;bottom:3px;font-family:var(--font-cond);font-weight:700;font-size:16px;color:var(--faint);opacity:0}.sched td.editable:hover:after{opacity:1}.na-label{display:inline-block;font-family:var(--font-cond);font-weight:700;letter-spacing:.07em;text-transform:uppercase;font-size:12px;color:var(--na-ink);border:1px dashed var(--na-line);padding:3px 7px;border-radius:3px;background:var(--na-bg)}.chip{--jc:#888;display:flex;flex-direction:column;gap:1px;padding:5px 8px 5px 9px;border-radius:4px;background:color-mix(in srgb,var(--jc) 16%,var(--surface));border-left:3px solid var(--jc);font-size:13.5px;font-weight:600;color:var(--ink);line-height:1.2}.chip .note{font-weight:400;font-size:12px;color:var(--muted)}.chip .num{font-weight:500;color:var(--faint);font-size:12px}.chip.off{background:var(--surface-2);border-left-style:dashed;color:var(--muted);font-style:italic;font-weight:500}.chip.crew{background:var(--crewchip-bg);color:var(--crewchip-ink);border-left-color:var(--navy-2);font-family:var(--font-cond);font-size:15px;letter-spacing:.03em;text-transform:uppercase;font-weight:700}.chip.crew .note{font-family:var(--font-body);text-transform:none;letter-spacing:0;font-weight:400}.chip.gap{background:var(--na-bg);color:var(--na-ink);border-left-color:var(--na-line);border-left-style:dashed;font-size:15px}.chip.gap,.jobrow .jobname{font-family:var(--font-cond);letter-spacing:.03em;text-transform:uppercase;font-weight:700}.jobrow .jobname{font-size:18px;line-height:1.05;display:flex;align-items:center;gap:8px}.jobrow .dot{width:10px;height:10px;border-radius:2px;background:var(--jc);flex:none}.jobrow .jobsub{font-size:12.5px;color:var(--muted);margin-top:2px}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:13px;color:var(--muted);align-items:center}.legend .sw{display:inline-block;width:12px;height:12px;border-radius:2px;vertical-align:-1px;margin-right:5px;background:var(--jc)}.lastchange{margin-top:8px;font-size:13px;color:var(--faint)}.scrim{position:fixed;inset:0;background:rgba(20,16,40,.45);z-index:20}.editor{position:fixed;z-index:21;left:50%;top:50%;transform:translate(-50%,-50%);width:min(460px,calc(100% - 32px));max-height:calc(100% - 32px);overflow:auto;background:var(--surface);color:var(--ink);border:1px solid var(--line-2);border-radius:8px;box-shadow:var(--shadow)}.editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px 10px;border-bottom:1px solid var(--line)}.editor-title{font-family:var(--font-cond);font-weight:700;font-size:24px;letter-spacing:.03em;text-transform:uppercase;line-height:1}.editor-sub{color:var(--muted);font-size:14px;margin-top:4px}.editor .x{border:0;background:transparent;font-size:20px;line-height:1;color:var(--muted);padding:4px 6px;border-radius:4px}.editor .x:hover{background:var(--surface-2);color:var(--ink)}.editor-current{padding:12px 16px;border-bottom:1px solid var(--line);background:var(--surface-2)}.editor-current .lbl{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:6px}.editor-current .row{display:flex;align-items:center;gap:8px;margin-top:4px}.editor-current .row .chip{flex:1 1}.editor-current .row button{border:1px solid var(--line-2);background:var(--surface);border-radius:4px;padding:5px 8px;font-size:13px;color:var(--muted)}.editor-current .row button:hover{color:var(--ink);border-color:var(--navy-2)}.editor-current .empty{display:inline-flex;align-items:center;gap:8px}.editor form{padding:14px 16px 16px;display:grid;grid-gap:12px;gap:12px}.editor fieldset{border:1px solid var(--line);border-radius:4px;padding:8px 12px 10px;margin:0}.editor legend{font-size:13px;font-weight:600;color:var(--muted);padding:0 4px}.editor .radios{display:grid;grid-gap:6px;gap:6px}.editor .radios label{display:flex;align-items:center;gap:8px;font-size:14px}.editor .radios input[type=radio]{accent-color:var(--orange);margin:0}.editor .radios input[type=date]{width:auto;padding:4px 6px;font-size:13px;border:1px solid var(--line-2);border-radius:4px}.editor-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.editor-actions .danger{margin-left:auto;color:var(--muted)}.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:var(--navy);color:#fff;padding:10px 16px;border-radius:6px;font-size:14px;font-weight:600;box-shadow:var(--shadow);z-index:30;max-width:calc(100% - 32px)}.toast.error{background:#9B2C2C}.crewpage h1{font-family:var(--font-cond);font-weight:700;font-size:34px;letter-spacing:.03em;text-transform:uppercase;margin:0;line-height:1}.crewpage .foreman{color:var(--muted);margin:4px 0 16px}.daylist{display:grid;grid-gap:8px;gap:8px}.dayrow{display:grid;grid-template-columns:110px 1fr;grid-gap:12px;gap:12px;align-items:start;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:12px 14px}.dayrow.today{border-color:var(--orange);box-shadow:inset 3px 0 0 var(--orange)}.dayrow.na{background-image:repeating-linear-gradient(135deg,var(--na-bg) 0 7px,var(--na-bg-2) 7px 14px)}.dayrow .d1{font-family:var(--font-cond);font-weight:700;font-size:20px;letter-spacing:.03em;text-transform:uppercase;line-height:1}.dayrow .d2{font-size:13px;color:var(--muted);margin-top:2px}.dayrow .stack{display:flex;flex-direction:column;gap:6px}.dayrow .chip{font-size:16px;padding:8px 10px}.crewlist{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.crewpick{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:10px;gap:10px}.crewbtn{display:flex;flex-direction:column;gap:2px;padding:16px;background:var(--surface);border:1px solid var(--line-2);border-left:4px solid var(--orange);border-radius:6px;text-decoration:none;color:var(--ink)}.crewbtn:hover{border-color:var(--navy-2);border-left-color:var(--orange)}.crewbtn .n{font-family:var(--font-cond);font-weight:700;font-size:22px;letter-spacing:.03em;text-transform:uppercase;line-height:1}.crewbtn .f{font-size:13px;color:var(--muted)}.switcher{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;margin-bottom:12px;-webkit-overflow-scrolling:touch}.switcher .btn{flex:none;font-family:var(--font-cond);font-size:15px;letter-spacing:.03em;text-transform:uppercase}.switcher .btn.current{background:var(--navy);border-color:var(--navy);color:#fff}.mailframe{border:1px solid var(--line);border-radius:6px;background:var(--surface);max-width:760px}.mailmeta{padding:12px 18px;border-bottom:1px solid var(--line);font-size:13px;color:var(--muted);display:grid;grid-template-columns:auto 1fr;grid-gap:3px 12px;gap:3px 12px}.mailmeta b{color:var(--ink);font-weight:600}.mailbody{padding:4px 0;background:#F4F3F8;overflow-x:auto}.digest-controls{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;font-size:14px;color:var(--muted);margin-bottom:14px}.digest-controls label{display:inline-flex;align-items:center;gap:8px}.digest-controls input,.digest-controls select{padding:6px 8px;border:1px solid var(--line-2);border-radius:4px;background:var(--surface);color:var(--ink)}.settings{display:grid;grid-gap:18px;gap:18px}.settings .card h2{margin-bottom:2px}.settings .card p.lead{margin:0 0 12px;color:var(--muted);font-size:14px}table.edit{width:100%;border-collapse:collapse;font-size:14px}table.edit th{text-align:left;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:6px;border-bottom:2px solid var(--line-2)}table.edit td{padding:5px 6px;border-bottom:1px solid var(--line);vertical-align:middle}table.edit input[type=text],table.edit select{width:100%;padding:6px 8px;border:1px solid var(--line-2);border-radius:4px;background:var(--surface)}table.edit input[type=color]{width:36px;height:30px;padding:0;border:1px solid var(--line-2);border-radius:4px;background:var(--surface)}table.edit input[type=checkbox]{accent-color:var(--orange);width:16px;height:16px}table.edit .ord button{border:1px solid var(--line-2);background:var(--surface);border-radius:3px;padding:2px 6px;font-size:12px;color:var(--muted)}table.edit .ord button:hover{color:var(--ink);border-color:var(--navy-2)}table.edit .mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;color:var(--muted)}.tablewrap{overflow-x:auto}.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}.grid2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:14px;gap:14px}.grid2,.kv{display:grid}.kv{grid-template-columns:auto 1fr;grid-gap:4px 14px;gap:4px 14px;font-size:14px}.kv dt{color:var(--muted)}.kv dd{margin:0}@media (max-width:640px){.brand .appname{font-size:22px}.weeknav .label{min-width:0;font-size:16px}.sched td{height:60px}.dayrow{grid-template-columns:90px 1fr}}@media print{.editnote,.lastchange,.legend,.nav,.toolbar,.topbar{display:none!important}main{padding:0;max-width:none}.gridwrap{border:0;overflow:visible}table.sched{min-width:0;font-size:12px}.sched td{height:auto}.chip,.sched td.na,.sched td.today{-webkit-print-color-adjust:exact;print-color-adjust:exact}@page{size:landscape;margin:12mm}}