:root{--bg: #F4F5F7;--card: #FFFFFF;--ink: #14171F;--ink2: #3B4150;--muted: #5B6170;--line: #E2E5EA;--line2: #EDEFF2;--blue: #1F5FD6;--blue-d: #163F8F;--blue-bg: #EEF3FD;--green: #1A6B3D;--green-2: #1E7A46;--green-bg: #E6F4EC;--orange: #9A3F07;--orange-2: #A8480A;--orange-bg: #FDEBE0;--red: #B42318;--red-bg: #FDECEC;--gray-bg: #EEF0F3;--subtle: #F8F9FB;--faint: #FAFBFC;--track: #F1F2F5;--busy: #3B4150;--dot-off: #C2C7D0;--input-line: #D3D7DE;--line-hover: #9AA0AD;--blue-bg-hover: #DCE7FB;--on-accent: #FFFFFF;--conf: #C2410C;--conf-ink: #C2410C;--red-ink: #7A1A12;--red-line: #F2C2BE;--red-btn-line: #E4B2AE;--orange-line: #F3CDB8;--green-line: #BFE3CC;--blue-line: #C9D9F7;color-scheme:light dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #111418;--card: #181C22;--ink: #E7EBF0;--ink2: #C3CAD5;--muted: #97A3B3;--line: #2C333D;--line2: #232932;--blue: #5B8CFF;--blue-d: #8FB0FF;--blue-bg: #1B2748;--green: #5FD07D;--green-2: #4CC26A;--green-bg: #14331E;--orange: #F5A26B;--orange-2: #EE8A4A;--orange-bg: #3A2214;--red: #FF6B6B;--red-bg: #3A1D1D;--gray-bg: #252B34;--subtle: #1D2229;--faint: #15191E;--track: #1F242C;--busy: #4A5262;--dot-off: #4A5262;--input-line: #3A424E;--line-hover: #5B6474;--blue-bg-hover: #23345E;--on-accent: #0B1220;--conf: #C2410C;--conf-ink: #F59E6B;--red-ink: #FFB4AB;--red-line: #5A2A2A;--red-btn-line: #6B2E2E;--orange-line: #5A3A22;--green-line: #22502F;--blue-line: #2A3F70}}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,sans-serif;font-size:15px;line-height:1.4}a{color:var(--blue)}a:hover{color:var(--blue-d)}button{font:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}code{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:13px;background:var(--gray-bg);padding:1px 5px;border-radius:4px}h1{margin:0;font-size:28px;font-weight:700;letter-spacing:-.01em}h2{margin:0;font-size:17px;font-weight:700}h3{margin:0;font-size:15px;font-weight:700}p{margin:0}.sub{margin:4px 0 0;color:var(--muted);font-size:15px}.small{font-size:13px;color:var(--muted)}.muted{color:var(--muted)}.mono{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12px;color:var(--muted)}.lbl{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.hint{font-size:13px;color:var(--muted)}.nowrap{white-space:nowrap}.demo-bar{background:#14171f;color:#e8eaee;font-size:13px;padding:8px 20px;display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:center;text-align:center}.demo-bar button{background:transparent;border:1px solid #4A505E;color:#fff;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:600}header.top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;padding:14px 28px;background:var(--card);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px}.logo{width:36px;height:36px;border-radius:9px;background:var(--ink);color:var(--card);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex:none}.brand b{display:block;font-size:17px}.brand span{font-size:13px;color:var(--muted)}nav.tabs{display:flex;flex-wrap:wrap;gap:4px}nav.tabs a{border:0;background:transparent;padding:10px 14px;border-radius:8px;font-size:14px;font-weight:500;color:var(--ink2);min-height:44px;display:inline-flex;align-items:center;text-decoration:none}nav.tabs a:hover{background:var(--gray-bg);color:var(--ink)}nav.tabs a[aria-current=page]{background:var(--blue-bg);color:var(--blue);font-weight:600}.who{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.sync{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.dot{width:8px;height:8px;border-radius:50%;background:var(--green-2);display:inline-block}.dot.off{background:var(--dot-off)}main{max-width:1376px;margin:0 auto;padding:26px 28px 56px;display:flex;flex-direction:column;gap:22px}.page-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px 18px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px}.section{padding:20px 22px;display:flex;flex-direction:column;gap:16px}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.between{justify-content:space-between}.row-wrap{display:flex;flex-wrap:wrap;gap:22px;align-items:flex-start}.grow{flex:999 1 880px;min-width:0}.side{flex:1 1 300px;min-width:0;display:flex;flex-direction:column;gap:16px}.side .card{padding:16px 18px;display:flex;flex-direction:column;gap:12px}.scroll{overflow-x:auto}.minw{min-width:860px}.empty{padding:40px 20px;text-align:center;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}.stat{padding:16px 18px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;border:1px solid var(--line);background:var(--card);border-radius:12px;min-height:44px;color:var(--ink);-webkit-appearance:none;appearance:none;text-decoration:none}.stat span{display:block;font-size:13px;font-weight:600;color:var(--muted)}.stat strong{display:block;font-size:30px;font-weight:700;line-height:1.15;color:var(--ink)}.stat.active{outline:2px solid var(--blue);outline-offset:-2px}.stat:hover{border-color:var(--line-hover)}.list-head{padding:14px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.filter{display:flex;gap:6px;flex-wrap:wrap}.chipbtn{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;color:var(--ink2);min-height:36px}.chipbtn[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--card)}.colhead{display:grid;grid-template-columns:150px minmax(0,1.6fr) 170px minmax(0,1.4fr) 210px;gap:16px;padding:10px 20px;background:var(--subtle);border-bottom:1px solid var(--line);font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.wo{display:grid;grid-template-columns:150px minmax(0,1.6fr) 170px minmax(0,1.4fr) 210px;gap:16px;padding:16px 20px;border-bottom:1px solid var(--line2);align-items:center}.wo:last-child{border-bottom:0}.wo.done{background:var(--faint)}.wo .cell{display:flex;flex-direction:column;gap:5px;min-width:0;align-items:flex-start}.portal{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600}.sw{width:10px;height:10px;border-radius:3px;display:inline-block;flex:none}.jobbtn{border:0;background:none;padding:0;text-align:left;font-size:15px;font-weight:600;color:var(--ink);text-decoration:none}.jobbtn:hover{color:var(--blue);text-decoration:underline}.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:13px;font-weight:600;white-space:nowrap}.fit{background:var(--green-bg);color:var(--green)}.conflict{background:var(--orange-bg);color:var(--orange)}.review{background:var(--gray-bg);color:var(--ink2)}.actions{display:flex;flex-direction:column;gap:8px;align-items:stretch}.status-ok{font-size:14px;font-weight:600;color:var(--green-2)}.status-no{font-size:14px;font-weight:600;color:var(--muted)}.confirm{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;border-radius:10px;background:var(--blue-bg);font-size:14px}.confirm b{margin-right:auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px;padding:0 14px;border-radius:8px;font-size:14px;font-weight:600;text-decoration:none;border:1px solid transparent;background:var(--card);color:var(--ink)}.btn-primary{background:var(--blue);color:var(--on-accent)}.btn-primary:hover{background:var(--blue-d);color:var(--on-accent)}.btn-ghost{background:var(--card);border-color:var(--input-line);color:var(--ink)}.btn-ghost:hover{border-color:var(--line-hover);color:var(--ink)}.btn-green{background:var(--card);border-color:var(--green-2);color:var(--green-2)}.btn-green:hover{background:var(--green-bg)}.btn-danger{background:var(--card);border-color:var(--red-btn-line);color:var(--red)}.btn-danger:hover{background:var(--red-bg)}.btn-lg{min-height:48px;padding:0 20px;font-size:15px}.btn-sm{min-height:34px;padding:0 10px;font-size:13px}.btn-link{background:none;border:0;padding:0;min-height:0;font-weight:500;color:var(--muted);text-decoration:underline}.btn-link:hover{color:var(--ink)}.slot{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:8px;background:var(--track);font-size:13px;color:var(--ink);text-decoration:none}.slot.open{background:var(--green-bg);color:var(--green)}.slot.new{background:var(--blue-bg);color:var(--blue);font-weight:600}a.slot.new:hover{background:var(--blue-bg-hover)}.slot em{font-style:normal;font-size:12px;font-weight:600;width:74px;flex:none}.slot span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portals{display:grid;grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:8px}.portals a,.portals button{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:44px;padding:0 12px;border-radius:8px;border:1px solid var(--line);color:var(--ink);font-size:13px;font-weight:600;text-decoration:none;white-space:nowrap;min-width:0}.portals a:hover,.portals button:hover{border-color:var(--line-hover)}.portals button[aria-pressed=true]{border-color:var(--blue);background:var(--blue-bg)}.portals .portal{min-width:0;overflow:hidden;text-overflow:ellipsis;display:block;line-height:42px}.portals .portal .sw{vertical-align:middle;margin-right:6px}.portals .small{flex:none}.week{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:12px}.day{padding:14px;display:flex;flex-direction:column;gap:8px}.day h3{margin:0 0 4px;font-size:14px}.day.today{outline:2px solid var(--blue);outline-offset:-2px}.day.off{background:var(--faint)}.week .slot{align-items:flex-start}.week .slot em{width:62px}.week .slot span{white-space:normal;overflow-wrap:anywhere}.back{align-self:flex-start}.detail-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:18px}.detail-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.hours{display:grid;font-size:12px;color:var(--muted)}.track{position:relative;height:64px;background:var(--track);border-radius:10px;overflow:hidden}.blk{position:absolute;top:6px;bottom:6px;border-radius:8px;display:block;line-height:52px;text-align:center;font-size:12.5px;font-weight:600;padding:0 6px;color:#fff;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-decoration:none}.blk.busy{background:var(--busy)}.blk.sugg{background:var(--blue);color:var(--on-accent)}.blk.conf{background:var(--conf);color:#fff}.blk.req{background:transparent;border:2px dashed var(--blue);color:var(--blue);top:2px;bottom:2px;line-height:56px}.blk.req.conf{border-color:var(--conf-ink);color:var(--conf-ink)}.blk.lower{top:30px;bottom:4px;opacity:.95;line-height:30px}.legend{display:flex;flex-wrap:wrap;gap:16px;font-size:13px;color:var(--ink2)}.legend span{display:inline-flex;align-items:center;gap:6px}.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.facts>div{min-width:0;overflow-wrap:anywhere}.email{padding:14px 16px;border-radius:10px;background:var(--subtle);border:1px solid var(--line2);display:flex;flex-direction:column;gap:6px}.email p{margin:0;font-size:14px;line-height:1.5;color:var(--ink2);white-space:pre-wrap}ol.steps{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}ol.steps li{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.45}ol.steps li label{display:flex;gap:12px;align-items:flex-start;cursor:pointer}ol.steps input{position:absolute;opacity:0;width:1px;height:1px}.num{flex:none;width:26px;height:26px;border-radius:50%;background:var(--gray-bg);color:var(--ink2);font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}.num.on{background:var(--blue);color:var(--on-accent)}.num.ok{background:var(--green-2);color:var(--on-accent)}ol.steps input:focus-visible+.num{outline:2px solid var(--blue);outline-offset:2px}ul.why{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:15px;line-height:1.45}.alts{display:flex;flex-direction:column;gap:8px}.alt{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;background:var(--green-bg);color:var(--green);font-size:14px;font-weight:600}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 16px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field.span-2{grid-column:span 2}.field.span-3{grid-column:1 / -1}.field label{font-size:13px;font-weight:600;color:var(--ink2)}.field input,.field select,.field textarea{font:inherit;font-size:14px;padding:9px 11px;border:1px solid var(--input-line);border-radius:8px;background:var(--card);color:var(--ink);min-height:42px;width:100%}.field textarea{min-height:96px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--blue);outline-offset:0;border-color:var(--blue)}.field input[type=color]{padding:2px;height:42px;width:64px}.checkbox{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}.checkbox input{width:18px;height:18px;margin:0}.form-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;align-items:center}.form-actions .left{margin-right:auto}.search{font:inherit;font-size:14px;padding:8px 12px;border:1px solid var(--input-line);border-radius:999px;background:var(--card);color:var(--ink);min-height:36px;min-width:200px}table.data{width:100%;border-collapse:collapse;font-size:14px}table.data th,table.data td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line2);vertical-align:top}table.data th{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;background:var(--subtle)}table.data tr:last-child td{border-bottom:0}table.data td.r,table.data th.r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}table.data tfoot td{font-weight:700;background:var(--subtle)}.diff{display:grid;grid-template-columns:minmax(120px,1fr) 2fr 2fr;gap:4px 12px;font-size:13px}.diff .old{color:var(--red);text-decoration:line-through;overflow-wrap:anywhere}.diff .new{color:var(--green);overflow-wrap:anywhere}details>summary{cursor:pointer;font-weight:600;font-size:14px}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;background:var(--gray-bg);color:var(--ink2)}.badge.ok{background:var(--green-bg);color:var(--green)}.badge.warn{background:var(--orange-bg);color:var(--orange)}.badge.danger{background:var(--red-bg);color:var(--red)}.badge.accent{background:var(--blue-bg);color:var(--blue)}.banner{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:10px;border:1px solid var(--line);background:var(--subtle);font-size:14px}.banner.danger{background:var(--red-bg);border-color:var(--red-line);color:var(--red-ink)}.banner.warn{background:var(--orange-bg);border-color:var(--orange-line);color:var(--orange)}.banner.ok{background:var(--green-bg);border-color:var(--green-line);color:var(--green)}.banner.info{background:var(--blue-bg);border-color:var(--blue-line);color:var(--blue-d)}.modal-backdrop{position:fixed;inset:0;background:#080c1480;display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;z-index:50;overflow-y:auto}.modal{width:min(720px,100%);background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px 22px;display:flex;flex-direction:column;gap:16px;box-shadow:0 16px 48px #0003}.modal header{display:flex;justify-content:space-between;align-items:center;gap:12px}.toasts{position:fixed;left:50%;bottom:24px;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:200;max-width:calc(100% - 32px);pointer-events:none}.toast{background:var(--ink);color:var(--card);padding:12px 18px;border-radius:10px;font-size:14px;font-weight:500;box-shadow:0 8px 24px #0000002e;text-align:center}.toast.danger{background:#7a1a12;color:#fff}.toast.ok{background:var(--ink)}.signin{min-height:100vh;display:grid;place-items:center;padding:24px}.signin-card{width:min(520px,100%);padding:24px}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--blue);animation:spin .8s linear infinite;display:inline-block;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}.reauth-overlay{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;background:var(--bg)}.reauth-overlay p{margin:0}.reauth-actions{display:flex;gap:8px}.reauth-fallback{color:var(--muted)}@media(max-width:1100px){.week{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}}@media(max-width:820px){header.top{padding:12px 16px}main{padding:18px 14px 48px}.sync,.user-email,.colhead{display:none}.minw{min-width:0}.wo{grid-template-columns:1fr;gap:10px}.actions{flex-direction:row;flex-wrap:wrap}.actions .btn{flex:1}.facts{grid-template-columns:1fr 1fr}.form-grid,.form-grid.two{grid-template-columns:1fr}.field.span-2{grid-column:auto}h1{font-size:23px}}
