:root{--accent:#f60;--accent-soft:#fff0e6;--ink:#2a2a2a;--ink-2:#2a2a2ab8;--ink-3:#2a2a2a85;--ink-4:#2a2a2a52;--paper:#f6f4f1;--surface:#fff;--line:#2a2a2a1a;--line-2:#2a2a2a29;--hover:#2a2a2a0b;--amber:#b7791f;--amber-soft:#fdf3e1;--red:#c2412d;--red-soft:#fbe9e5;--green:#4d7c4a;--radius:6px;--shadow:0 1px 2px #0000000a, 0 8px 28px #00000014;--font:ui-sans-serif, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif;--mono:"OCR A BT", "OCR-A BT", "OCR A Std", "OCR A", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);font:14px/1.45 var(--font);-webkit-font-smoothing:antialiased;margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}:focus-visible{outline-offset:2px;outline:2px solid #f609}.ocr{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;font-size:11px}.muted{color:var(--ink-3)}.small{font-size:12px}.grow{flex:1;min-width:0}.row{align-items:center;gap:8px;display:flex}.stack{flex-direction:column;gap:8px;display:flex}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.btn{border:1px solid var(--line-2);border-radius:var(--radius);background:var(--surface);height:32px;color:var(--ink);white-space:nowrap;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.btn:hover{background:#fafaf8;border-color:#2a2a2a42}.btn.primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn.primary:hover{background:#000}.btn.accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--hover)}.btn.sm{height:26px;padding:0 8px;font-size:12px}.btn.icon{justify-content:center;width:32px;padding:0}.btn.sm.icon{width:26px}.btn.danger{color:var(--red)}.btn:disabled{opacity:.45;cursor:default}.seg{border:1px solid var(--line-2);border-radius:var(--radius);background:var(--surface);display:inline-flex;overflow:hidden}.seg button{height:30px;color:var(--ink-2);background:0 0;border:0;padding:0 12px}.seg button+button{border-left:1px solid var(--line)}.seg button.on{background:var(--ink);color:var(--paper)}.field{border:1px solid var(--line-2);border-radius:var(--radius);background:var(--surface);min-width:0;height:30px;padding:0 8px}textarea.field{resize:vertical;height:auto;padding:6px 8px}.field:focus{border-color:#ff6600b3;outline:none;box-shadow:0 0 0 3px #ff66001f}.inline{background:0 0;border:1px solid #0000;border-radius:4px;min-width:0;height:28px;padding:2px 6px}.inline:hover{border-color:var(--line);background:var(--surface)}.inline:focus{background:var(--surface);border-color:#ff6600b3;outline:none}select.inline{appearance:none;cursor:pointer;padding-right:6px}input[type=date].inline.empty:not(:focus){color:var(--ink-4)}input[type=date].inherit:not(:focus){color:var(--ink-4);font-style:italic}input[type=date].late{color:var(--red)}.comments .field{width:100%}.label{color:var(--ink-3);margin-bottom:4px;display:block}.chip{background:var(--hover);height:22px;color:var(--ink-2);white-space:nowrap;border-radius:11px;align-items:center;gap:4px;padding:0 8px;font-size:12px;display:inline-flex}.chip.red{background:var(--red-soft);color:var(--red)}.chip.amber{background:var(--amber-soft);color:var(--amber)}.chip.green{color:var(--green);background:#e9f1e7}.chip.accent{background:var(--accent-soft);color:#b54800}.swatch{border-radius:3px;flex:none;width:10px;height:10px}.red-dot{background:var(--red);border-radius:50%;flex:none;width:7px;height:7px;box-shadow:0 0 0 2px #fff}.shell{grid-template-columns:240px 1fr;height:100%;display:grid}.app-sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;padding:16px 10px;display:flex;overflow-y:auto}.app-sidebar .brand{align-items:center;gap:10px;margin-bottom:20px;padding:4px 8px;text-decoration:none;display:flex}.app-sidebar .brand .ocr{font-size:11px}.app-nav{flex-direction:column;gap:2px;display:flex}.nav-item{border-radius:var(--radius);color:var(--ink-2);white-space:nowrap;align-items:center;gap:10px;padding:8px 10px;font-size:14px;text-decoration:none;display:flex}.nav-item:hover{background:var(--hover);color:var(--ink)}.nav-item.on{color:var(--ink);background:var(--hover);font-weight:500}.nav-item .swatch{border-radius:2px;flex:none;width:8px;height:8px}.nav-section{margin-top:24px}.nav-heading{color:var(--ink-3);margin:0;padding:0 10px 6px;font-size:10px}.nav-bottom{border-top:1px solid var(--line);margin-top:auto;padding-top:16px}.app-content{grid-template-rows:48px 1fr;min-width:0;display:grid}.topbar{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:0 16px;display:flex}.searchbtn{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);width:260px;height:32px;color:var(--ink-3);align-items:center;gap:8px;padding:0 10px;display:flex}.searchbtn kbd{margin-left:auto}kbd{font:11px var(--font);border:1px solid var(--line-2);background:var(--surface);color:var(--ink-3);border-radius:4px;padding:1px 5px}.viewing{border-left:1px solid var(--line);align-items:center;gap:8px;padding-left:12px;display:flex}.avatar{color:#fff;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:11px;font-weight:600;display:grid}.main{min-height:0;position:relative;overflow:hidden}.page{height:100%;overflow:auto}.page-inner{max-width:1040px;margin:0 auto;padding:32px 32px 80px}.page h1{letter-spacing:-.01em;margin:6px 0 4px;font-size:26px;font-weight:400}.page h2{margin:36px 0 12px}.popover{z-index:50;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;position:absolute}.menu{min-width:240px;padding:6px}.menu .item{text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;width:100%;padding:7px 10px;display:flex}.menu .item:hover,.menu .item.active{background:var(--hover)}.menu .sep{background:var(--line);height:1px;margin:6px 4px}.menu .heading{color:var(--ink-3);padding:8px 10px 4px}.anchor{position:relative}.badge{background:var(--accent);color:#fff;border-radius:9px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:600;display:inline-grid}.schedule{grid-template-columns:256px 1fr;height:100%;display:grid}.sidebar{border-right:1px solid var(--line);background:var(--surface);padding:16px 12px 40px;overflow:auto}.sidebar .create{justify-content:center;width:100%;height:36px;margin-bottom:18px}.sidebar h3{justify-content:space-between;align-items:center;margin:22px 8px 6px;display:flex}.sidebar h3 button{color:var(--ink-3);background:0 0;border:0;padding:0;font-size:11px}.sidebar h3 button:hover{color:var(--ink)}.check-row{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:9px;padding:4px 8px;display:flex}.check-row:hover{background:var(--hover)}.check-row input{opacity:0;pointer-events:none;position:absolute}.check-box{color:#fff;border:2px solid;border-radius:3.5px;flex:none;place-items:center;width:15px;height:15px;display:grid}.check-row .sub-trade{color:var(--ink-4);white-space:nowrap;text-overflow:ellipsis;flex:none;max-width:45%;margin-left:auto;font-size:11px;overflow:hidden}.mini{padding:0 4px}.mini-head{justify-content:space-between;align-items:center;padding:0 2px 6px 6px;font-weight:500;display:flex}.mini-grid{text-align:center;grid-template-columns:repeat(7,1fr);font-size:11px;display:grid}.mini-grid .dow{color:var(--ink-4);padding:4px 0}.mini-grid button{width:28px;height:28px;color:var(--ink-2);background:0 0;border:0;border-radius:50%;margin:0 auto;font-size:11px}.mini-grid button:hover{background:var(--hover)}.mini-grid button.out{color:var(--ink-4)}.mini-grid button.in-range{background:var(--hover);border-radius:0;width:100%}.mini-grid button.today{background:var(--accent);color:#fff;border-radius:50%;width:28px}.sched-main{background:var(--surface);grid-template-rows:auto 1fr;min-width:0;min-height:0;display:grid}.toolbar{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:12px 20px;display:flex}.toolbar .title{min-width:190px;margin-left:6px;font-size:20px;font-weight:400}.toolbar .spacer{flex:1}.cal{grid-template-rows:auto 1fr;min-height:0;display:grid}.cal-head{border-bottom:1px solid var(--line);padding-right:var(--scrollbar,0px);display:grid}.cal-head .day{border-left:1px solid var(--line);padding:10px 10px 8px}.cal-head .day:first-child{border-left:0}.cal-head .dname{color:var(--ink-3)}.cal-head .dnum{border-radius:50%;place-items:center;width:38px;height:38px;margin-top:2px;margin-left:-6px;font-size:22px;font-weight:300;display:grid}.cal-head .day.today .dnum{background:var(--accent);color:#fff}.cal-head .day.today .dname{color:#b54800}.cal-body{position:relative;overflow:auto}.daygrid{position:relative}.daygrid-bg{display:grid;position:absolute;inset:0}.daygrid-bg .cell{border-left:1px solid var(--line);cursor:cell}.daygrid-bg .cell:first-child{border-left:0}.daygrid-bg .cell.weekend{background:#fbfaf8}.daygrid-bg .cell.today{background:#ff660009}.daygrid-bg .cell.double{background:repeating-linear-gradient(135deg,#c2412d12 0 6px,#0000 6px 12px)}.daygrid-fg{pointer-events:none;grid-auto-rows:44px;row-gap:4px;padding:6px 0 12px;display:grid;position:relative}.cal .daygrid-fg{grid-auto-rows:52px}.vblock{pointer-events:auto;cursor:grab;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:6px;flex-direction:column;justify-content:center;gap:1px;margin:0 4px;padding:5px 8px 5px 10px;transition:box-shadow .12s;display:flex;position:relative;overflow:hidden}.vblock:before{content:"";background:var(--c);width:3px;position:absolute;top:0;bottom:0;left:0}.vblock:hover{box-shadow:0 2px 8px #0000001a}.vblock.selected{box-shadow:0 0 0 2px var(--c), 0 4px 14px #0000001f}.vblock.unplanned{border:1px dashed var(--c);background:#fff!important}.vblock.closed{opacity:.55}.vblock.dragging{opacity:.9;cursor:grabbing;z-index:5;box-shadow:0 8px 24px #0000002e}.vblock.clip-l{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:0}.vblock.clip-r{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0}.vblock .l1{align-items:center;gap:5px;font-size:13px;font-weight:550;display:flex}.vblock .l2{color:var(--ink-2);align-items:center;gap:6px;font-size:11.5px;display:flex}.vblock .count{color:var(--ink-3);flex:none;margin-left:auto;font-size:11px}.vblock .count.none{color:var(--amber);font-weight:600}.vblock .handle{cursor:ew-resize;width:8px;position:absolute;top:0;bottom:0}.vblock .handle.l{left:0}.vblock .handle.r{right:0}.crew{grid-template-rows:auto 1fr;min-height:0;display:grid}.crew-head,.crew-row{grid-template-columns:200px 1fr;display:grid}.crew-head{border-bottom:1px solid var(--line);padding-right:var(--scrollbar,0px)}.crew-head .days{display:grid}.crew-head .day{border-left:1px solid var(--line);padding:8px 10px}.crew-head .day.today{color:#b54800}.crew-head .day.today .n{color:#b54800;font-weight:600}.crew-body{overflow:auto}.crew-row{border-bottom:1px solid var(--line)}.crew-row .who{border-right:1px solid var(--line);align-items:center;gap:10px;min-width:0;padding:10px 12px;display:flex}.crew-row .who .name{font-weight:500}.crew-row .who .detail{color:var(--ink-3);font-size:11.5px}.crew-row .daygrid-fg{min-height:54px;padding:5px 0}.crew-group{background:var(--paper);border-bottom:1px solid var(--line);color:var(--ink-3);padding:14px 12px 6px}.vblock.placeholder{pointer-events:none;color:#b54800;background:#ff66001a;border:1.5px dashed #ff6600bf;box-shadow:0 4px 14px #ff66001f}.vblock.placeholder:before{display:none}.create-card{z-index:60;outline:none;padding:12px 16px 14px}.cc-head{justify-content:space-between;align-items:center;margin:-2px -6px 6px 0;display:flex}.cc-who-input{border:0;border-bottom:2px solid var(--line-2);background:0 0;outline:none;width:100%;padding:6px 0 8px;font-size:20px}.cc-who-input:focus{border-color:var(--accent)}.cc-who{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:4px 0 10px;display:flex}.cc-who-name{font-size:18px;line-height:1.2}.combo-list{max-height:184px;margin:6px -8px 4px;overflow:auto}.combo-h{color:var(--ink-4);padding:8px 10px 3px;font-size:10px}.combo-opt{cursor:pointer;border-radius:6px;align-items:center;gap:9px;padding:6px 10px;display:flex}.combo-opt.active{background:var(--hover)}.cc-row{align-items:flex-start;gap:12px;margin-top:12px;display:flex}.cc-label{width:56px;color:var(--ink-3);flex:none;padding-top:6px;font-size:12.5px}.cc-row .field[type=date]{width:142px}.cc-chips{flex-wrap:wrap;gap:6px;display:flex}.pchip{border:1px solid var(--line-2);background:var(--surface);border-radius:14px;align-items:center;gap:6px;height:28px;padding:0 10px;font-size:12.5px;display:inline-flex}.pchip .dot{background:var(--c);border-radius:50%;width:8px;height:8px}.pchip:hover{border-color:var(--c)}.pchip.on{background:var(--c);border-color:var(--c);color:#fff}.pchip.on .dot{background:#fff}.cc-foot{align-items:center;gap:8px;margin-top:16px;display:flex}textarea.field.grow{resize:none}.scrim{z-index:30;position:absolute;inset:0}.sidepanel{z-index:40;background:var(--surface);border-left:1px solid var(--line);flex-direction:column;width:min(760px,62vw);animation:.16s ease-out slidein;display:flex;position:absolute;top:0;bottom:0;right:0;box-shadow:-12px 0 40px #00000014}.sidepanel.narrow{width:min(520px,50vw)}@keyframes slidein{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.sp-head{border-bottom:1px solid var(--line);padding:18px 22px 14px}.sp-head .top{align-items:center;gap:10px;display:flex}.sp-head h2{margin:0;font-size:19px;font-weight:500}.sp-body{flex:1;padding:18px 22px 40px;overflow:auto}.sp-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.sp-grid .wide{grid-column:span 2}.sp-grid .full{grid-column:1/-1}.sp-grid .field{width:100%}.sp-field{min-width:0;display:block}.sp-field .label{font-size:10px}.meter .bar{background:var(--hover);border-radius:3px;height:6px;margin-top:6px;overflow:hidden}.meter .fill{background:var(--ink);border-radius:3px;height:100%;transition:width .2s}.plan{grid-template-columns:1fr 1fr;gap:14px;margin-top:14px;display:grid}.plan-col{border:1px solid var(--line);background:var(--paper);border-radius:8px;flex-direction:column;min-height:220px;display:flex}.plan-col.drop{border-color:var(--accent);background:var(--accent-soft)}.plan-col .hd{justify-content:space-between;align-items:baseline;padding:10px 12px 8px;display:flex}.plan-col .list{flex-direction:column;flex:1;gap:6px;padding:0 8px 8px;display:flex}.plan-col .add{padding:0 8px 10px}.plan-col .add input{width:100%}.ptask{background:var(--surface);border:1px solid var(--line);cursor:grab;border-radius:6px;align-items:center;gap:6px;padding:5px 6px 5px 8px;display:flex}.ptask:hover{border-color:var(--line-2)}.ptask.dragging{opacity:.4}.ptask .title{flex:1;min-width:0;font-size:13px}.ptask.done .title{color:var(--ink-3);text-decoration:line-through}.drop-marker{background:var(--accent);border-radius:1px;height:2px;margin:-4px 0}.empty{color:var(--ink-4);text-align:center;padding:18px 8px;font-size:12.5px}.cb{border:1.5px solid var(--ink-4);color:#fff;background:#fff;border-radius:4px;flex:none;place-items:center;width:16px;height:16px;padding:0;display:grid}.cb.on{background:var(--ink);border-color:var(--ink)}.section{margin-top:26px}.section>.hd{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.blocker{border:1px solid var(--line);background:var(--surface);border-radius:6px;align-items:flex-start;gap:10px;margin-bottom:6px;padding:9px 10px;display:flex}.blocker.resolved{opacity:.55}.blocker .ico{color:var(--red);margin-top:1px}.blocker.resolved .ico{color:var(--ink-4)}.warn{background:var(--amber-soft);color:#7a5313;border-radius:6px;align-items:flex-start;gap:8px;margin-top:10px;padding:9px 11px;font-size:12.5px;display:flex}.warn.red{background:var(--red-soft);color:#8c2e20}.comments .c{border-bottom:1px solid var(--line);padding:8px 0}.comments .c:last-child{border-bottom:0}.comments .who{font-size:12.5px;font-weight:500}.tlist .trow{border-bottom:1px solid var(--line);grid-template-columns:22px 1fr 170px 216px 216px 84px 28px;align-items:center;gap:6px;padding:5px 10px;display:grid}.tlist .trow:last-child{border-bottom:0}.tlist .trow:hover{background:#fcfbfa}.tlist .trow.done .title-in{color:var(--ink-3);text-decoration:line-through}.tlist .trow .title-in{width:100%}.tlist .thead{color:var(--ink-4);padding-top:8px;padding-bottom:8px;font-size:11px}.tlist .thead:hover{background:0 0}.tlist .addrow{padding:8px 10px}.tlist .addrow input{background:0 0;border:0;width:100%;height:28px}.tlist .addrow input:focus{outline:none}.req{border-bottom:1px solid var(--line);padding:14px 16px}.req:last-child{border-bottom:0}.tabs{border-bottom:1px solid var(--line);gap:4px;margin-top:22px;display:flex}.tabs button{color:var(--ink-3);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:8px 8px 0 0;align-items:center;gap:8px;margin-bottom:-1px;padding:8px 14px;font-size:13px;font-weight:500;transition:color .15s,background .15s;display:inline-flex}.tabs button:hover{color:var(--ink-2);background:var(--hover)}.tabs button.on{color:var(--ink);border-color:var(--accent);background:0 0}.tabs .count{background:var(--hover);min-width:20px;height:20px;color:var(--ink-3);border-radius:10px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:600;display:inline-flex}.tabs button.on .count{background:var(--accent-soft);color:#b54800}table.admin{border-collapse:collapse;width:100%}table.admin th{text-align:left;color:var(--ink-3);border-bottom:1px solid var(--line);padding:10px 8px;font-size:11px;font-weight:500}table.admin td{border-bottom:1px solid var(--line);padding:6px 8px}table.admin td .inline{width:100%}table.admin tr:last-child td{border-bottom:0}table.admin tbody tr{transition:background .1s}table.admin tbody tr:hover{background:var(--hover)}table.admin .row-action{opacity:0;transition:opacity .15s}table.admin tbody tr:hover .row-action{opacity:1}table.admin .addrow td{border-bottom:0;padding:10px 8px}table.admin .addrow td .field{border-style:dashed;border-color:var(--line-2);background:0 0;width:100%}table.admin .addrow td .field::placeholder{color:var(--ink-4)}table.admin .addrow td .field:focus{background:var(--surface);border-style:solid}.overlay{z-index:100;background:#2a2a2a2e;justify-content:center;align-items:flex-start;padding-top:12vh;display:flex;position:fixed;inset:0}.palette{background:var(--surface);width:560px;max-width:calc(100vw - 32px);box-shadow:var(--shadow);border-radius:12px;overflow:hidden}.palette input{border:0;border-bottom:1px solid var(--line);outline:none;width:100%;padding:16px 18px;font-size:16px}.palette .results{max-height:380px;padding:6px;overflow:auto}.palette .res{cursor:pointer;border-radius:7px;align-items:center;gap:10px;padding:9px 12px;display:flex}.palette .res.active{background:var(--hover)}.palette .res .kind{margin-left:auto}.tray{width:420px;max-height:70vh;top:40px;right:0;overflow:auto}.flag{border-bottom:1px solid var(--line);gap:10px;padding:11px 14px;display:flex}.flag:last-child{border-bottom:0}.flag .body{cursor:pointer;flex:1;min-width:0}.flag .body:hover .t{text-decoration:underline}.flag .t{font-size:13px;font-weight:500}.flag .d{color:var(--ink-2);margin-top:2px;font-size:12.5px}.flag .acts{gap:6px;margin-top:8px;display:flex}.toasts{z-index:200;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}.toast{background:var(--ink);color:var(--paper);box-shadow:var(--shadow);border-radius:8px;max-width:520px;padding:10px 16px;font-size:13px}.gate{flex-direction:column;justify-content:center;max-width:420px;min-height:100%;margin:0 auto;padding:32px 24px;display:flex}.gate h1{margin:26px 0 10px;font-size:28px;font-weight:400;line-height:1.2}.public{background:var(--paper);min-height:100%}.public header{background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:14px 16px;display:flex}.public .wrap{max-width:720px;margin:0 auto;padding:24px 16px 60px}.public h1{margin:6px 0 2px;font-size:26px;font-weight:400}.public h2{margin:30px 0 10px}.public .card{overflow:hidden}.pitem{border-bottom:1px solid var(--line);padding:14px 16px}.pitem:last-child{border-bottom:0}.pitem .t{font-weight:500}.decision{border-left:3px solid var(--accent)}.timeline .pitem{grid-template-columns:118px 1fr;gap:12px;display:grid}.pform{gap:8px;margin-top:10px;display:flex}.pform .field{flex:1;height:38px;font-size:15px}.pform .btn{height:38px}.visit-card{border-bottom:1px solid var(--line);padding:16px}.visit-card:last-child{border-bottom:0}.visit-card ol{margin:10px 0 0;padding-left:20px}.visit-card li{padding:3px 0}@media (width<=640px){.timeline .pitem{grid-template-columns:1fr;gap:2px}.pform{flex-direction:column}.pform .field{flex:none}}.tasks-page{grid-template-columns:272px 1fr;height:100%;display:grid}.tasks-rail{border-right:1px solid var(--line);background:var(--surface);padding:16px 10px 40px;overflow:auto}.tasks-rail .seg button{height:32px}.rail-h{color:var(--ink-4);margin:18px 10px 6px;font-size:10px}.rail-item{text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:10px;width:100%;margin-top:2px;padding:7px 10px;display:flex}.rail-item:first-of-type{margin-top:12px}.rail-item:hover{background:var(--hover)}.rail-item.on{background:var(--ink);color:var(--paper)}.rail-item.on .muted{color:#f6f4f199}.rail-item.dim{opacity:.55}.rail-counts{flex:none;gap:4px;display:flex}.rc{background:var(--hover);min-width:22px;height:20px;color:var(--ink-2);border-radius:10px;justify-content:center;align-items:center;gap:2px;padding:0 6px;font-size:11px;display:inline-flex}.rc.amber{background:var(--amber-soft);color:var(--amber)}.rc.red{background:var(--red-soft);color:var(--red)}.rail-item.on .rc{color:var(--paper);background:#ffffff24}.tasks-main{padding:28px 32px 80px;overflow:auto}.tasks-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;display:flex}.tasks-head h1{letter-spacing:-.01em;margin:6px 0 2px;font-size:26px;font-weight:400}.search{border:1px solid var(--line-2);border-radius:var(--radius);background:var(--surface);height:32px;color:var(--ink-3);align-items:center;gap:6px;padding:0 10px;display:flex}.search input{width:150px;color:var(--ink);background:0 0;border:0;outline:none}.primary-group{margin-bottom:28px}.pg-head{align-items:center;gap:8px;margin:8px 0 10px;display:flex}.scope{margin-bottom:12px;overflow:hidden}.scope.unassigned{border-color:#b7791f66}.scope-head{border-bottom:1px solid var(--line);background:#fcfbfa;align-items:center;gap:12px;padding:12px 14px;display:flex}.scope-title{white-space:nowrap;font-size:14.5px;font-weight:550}.vchip{border:1px solid var(--line-2);background:var(--surface);height:22px;color:var(--ink-2);border-radius:11px;padding:0 9px;font-size:11.5px}.vchip:hover{border-color:var(--ink-3);color:var(--ink)}.tlist .trow.task-line{grid-template-columns:22px 1fr 180px 216px 216px 28px}.inline.when{font-size:12.5px}.inline.when.unsched{color:var(--amber)}.inline.when.late{color:var(--red)}.add-scope{margin-top:6px}.vchip.late{color:var(--red);border-color:#c2412d73}.rail-legend{color:var(--ink-4);align-items:center;gap:4px;padding:6px 10px 0;font-size:11px;display:flex}.rail-legend .rc{min-width:16px;height:16px;margin-left:4px;padding:0 4px}.rail-legend .rc:first-child{margin-left:0}.daygrid-bg .cell.week-start,.cal-head .day.week-start,.crew-head .day.week-start{border-left:1px solid var(--line-2)}.cal-head .day.dense{padding:8px 6px 6px}.cal-head .day.dense .dnum{width:30px;height:30px;margin-left:-4px;font-size:17px}.crew-head .day.dense{padding:8px 5px;font-size:12px}.daygrid.dense .vblock{margin:0 2px;padding:4px 5px 4px 7px}.daygrid.dense .vblock .l1{gap:3px;font-size:12px}.daygrid.dense .vblock .l2{font-size:10.5px}.daygrid.dense .vblock .count.narrow{display:none}.daygrid.dense .vblock .handle{width:5px}.tl{background:var(--surface);min-height:0;position:relative;overflow:auto}.tl-inner{position:relative}.tl-head{z-index:6;background:var(--surface);border-bottom:1px solid var(--line);display:flex;position:sticky;top:0}.tl-corner{z-index:7;background:var(--surface);border-right:1px solid var(--line);flex:none;align-items:flex-end;width:320px;padding:0 12px 8px;display:flex;position:sticky;left:0}.tl-scale{flex:none;height:52px;position:relative}.tl-months,.tl-ticks{position:absolute;left:0;right:0}.tl-months{height:26px;top:0}.tl-ticks{height:26px;top:26px}.tl-months .m{border-left:1px solid var(--line-2);padding:6px 8px 0;position:absolute;top:0;bottom:0;overflow:hidden}.tl-months .m span{white-space:nowrap;font-size:12.5px;font-weight:550;position:sticky;left:330px}.tl-ticks .k{border-left:1px solid var(--line);color:var(--ink-3);white-space:nowrap;padding:6px 0 0 4px;font-size:10.5px;position:absolute;top:0;bottom:0;overflow:hidden}.tl-ticks .k.weekend{color:var(--ink-4)}.tl-ticks .k.today{color:#fff;background:var(--accent);font-weight:600}.tl-body{position:relative}.tl-grid{pointer-events:none;position:absolute;top:0}.tl-today{z-index:3;background:#ff66008c;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0}.tl-arrows{pointer-events:none;z-index:2;position:absolute;top:0;overflow:visible}.tl-row{border-bottom:1px solid var(--line);display:flex;position:relative}.tl-row.project{border-top:1px solid var(--line-2);background:#fbfaf8}.tl-row.effort:hover .tl-label,.tl-row.visit:hover .tl-label{background:#faf9f7}.tl-row.task,.tl-row.add-crew,.tl-row.unsched{border-bottom-color:#2a2a2a0d}.tl-label{z-index:4;background:var(--surface);border-right:1px solid var(--line);flex:none;align-items:center;gap:7px;width:320px;min-width:0;padding-right:10px;display:flex;position:sticky;left:0}.tl-row.project .tl-label{background:#fbfaf8}.tl-name{cursor:pointer;min-width:0}.tl-name:hover{text-decoration:underline;-webkit-text-decoration-color:var(--ink-4);text-decoration-color:var(--ink-4)}.tl-name.strong{font-size:14px;font-weight:600}.tl-row.effort .tl-name{font-weight:550}.tl-row.task .tl-name{font-size:12.5px}.tl-name.done{color:var(--ink-3);text-decoration:line-through}.tl-meta{flex:none;align-items:center;gap:6px;margin-left:auto;display:flex}.tl-chev{width:18px;height:18px;color:var(--ink-3);background:0 0;border:0;border-radius:4px;flex:none;place-items:center;padding:0;display:grid}.tl-chev:hover{background:var(--hover);color:var(--ink)}.chip.tiny{height:17px;padding:0 6px;font-size:10.5px}.tl-add{color:var(--ink-3);background:0 0;border:0;border-radius:5px;align-items:center;gap:6px;padding:4px 6px;font-size:12.5px;display:inline-flex}.tl-add:hover{color:var(--ink);background:var(--hover)}.tl-add-input{width:100%;height:26px}.tl-track{flex:none;position:relative}.tl-row.effort .tl-track,.tl-row.add-crew .tl-track{cursor:cell}.tl-bar{border-radius:5px;position:absolute;top:50%;transform:translateY(-50%)}.tl-bar.project{border-radius:4px;height:8px}.tl-bar.effort{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;border:1px solid;height:22px}.tl-bar.effort .clip{pointer-events:none;border-radius:4px;position:absolute;inset:0;overflow:hidden}.tl-bar.effort.slipped{box-shadow:0 0 0 2px #b7791f73}.tl-bar.effort .seg{border-radius:3px;position:absolute;top:3px;bottom:5px}.tl-bar.effort .progress{height:3px;position:absolute;bottom:0;left:0}.tl-bar .bar-label{color:var(--ink-2);pointer-events:none;white-space:nowrap;align-items:center;gap:4px;font-size:11px;font-weight:600;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.tl-bar.visit{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;border-left:3px solid;height:20px}.tl-bar.visit .bar-label{font-weight:500;left:6px;right:auto}.tl-bar.visit.unplanned{border:1px dashed;border-left-width:3px}.tl-bar.visit.closed{opacity:.5}.tl-bar.visit.dragging{cursor:grabbing;z-index:5;box-shadow:0 6px 18px #0000002e}.tl-bar.visit:hover{box-shadow:0 2px 8px #0000001a}.tl-band{background:#2a2a2a0b;border-radius:3px;position:absolute;top:6px;bottom:6px}.tl-hint{color:var(--ink-4);white-space:nowrap;pointer-events:none;font-size:11.5px;position:absolute;top:50%;transform:translateY(-50%)}.effort-title{width:100%;height:32px;margin:6px 0 0 -6px;font-size:19px;font-weight:500}.crew-list{flex-direction:column;gap:8px;display:flex}.crew-item{border:1px solid var(--line);background:var(--surface);border-radius:8px}.crew-item.closed{opacity:.6}.crew-row-h{cursor:pointer;align-items:center;gap:8px;padding:9px 10px;display:flex}.crew-step{background:var(--hover);width:20px;height:20px;color:var(--ink-2);border-radius:50%;flex:none;place-items:center;font-size:11px;font-weight:600;display:grid}.crew-tasks{border-top:1px solid var(--line);flex-direction:column;gap:6px;padding:8px 12px 10px 44px;display:flex}.crew-tasks .field{width:100%;margin-top:4px}.crew-task{align-items:center;gap:8px;font-size:13px;display:flex}.crew-task .done{color:var(--ink-3);text-decoration:line-through}.section .field[placeholder^=Add\ work]{width:100%;margin-top:8px}.tl-date{color:var(--ink-3);white-space:nowrap;flex:none;margin-left:auto;padding-left:6px;font-size:11.5px}.tl-bar.project.closed{height:14px;overflow:hidden}.tl-bar.project .seg{border-radius:2px;position:absolute;top:2px;bottom:2px}.tl-bar.task{cursor:grab;background:color-mix(in srgb, var(--c) 30%, white);border:1px solid color-mix(in srgb, var(--c) 55%, white);border-radius:4px;height:18px;overflow:hidden}.tl-bar.task:hover{box-shadow:0 2px 8px #0000001f}.tl-bar.task.done{background:#eef3ec;border-color:#c9d9c5}.tl-bar.task.done .task-label{color:var(--green);text-decoration:line-through}.tl-bar.task.blocked{background:var(--red-soft);border-color:#c2412d73}.tl-bar.task.backlog{background:color-mix(in srgb, var(--c) 12%, white);border-style:dashed}.tl-bar.task.late{border:1.5px solid var(--red)}.tl-bar.task.dragging{cursor:grabbing;z-index:5;box-shadow:0 6px 18px #0000002e}.tl-bar.task .edge i{height:10px}.tl-bar.task .task-label{white-space:nowrap;text-overflow:ellipsis;color:var(--ink);font-size:11px;position:absolute;top:50%;left:6px;right:4px;overflow:hidden;transform:translateY(-50%)}.tl-row.effort .tl-label{box-shadow:inset 3px 0 0 var(--line-2)}.tl-row.visit .tl-label{background:#fdfdfc}.tl-row.task .tl-label{background:#fcfbfa}.tl-row.task .tl-track{background:#fcfbfa99}.tl-row.project .tl-meta .chip{background:var(--surface);border:1px solid var(--line)}.tl-grip{width:14px;color:var(--ink-4);cursor:grab;-webkit-user-select:none;user-select:none;text-align:center;opacity:0;flex:none;margin-left:-14px;font-size:13px;line-height:1;transition:opacity .1s}.tl-row:hover .tl-grip,.tl-row.row-dragging .tl-grip{opacity:1}.tl-grip:hover{color:var(--ink)}.tl-row.row-dragging{opacity:.45}.tl-row.drop-into .tl-label,.tl-row.drop-into .tl-track{background:var(--accent-soft)!important}.tl-row.drop-into .tl-label{box-shadow:inset 3px 0 0 var(--accent)}.tl-drop-line{background:var(--accent);z-index:8;pointer-events:none;height:4px;position:absolute;left:0;box-shadow:0 0 0 3px #ff66002e,0 0 14px #ff660059}.tl-drop-line:before,.tl-drop-line:after{content:"";background:var(--accent);border-radius:50%;width:12px;height:12px;position:absolute;top:-4px}.tl-drop-line:before{left:8px}.tl-drop-line:after{left:314px}.tl-drop-tag{background:var(--accent);color:#fff;white-space:nowrap;border-radius:10px;margin-left:28px;padding:2px 8px;font-size:11.5px;font-weight:600;display:inline-block;position:sticky;left:28px;transform:translateY(-120%)}.tl-drag-ghost{z-index:9;pointer-events:none;background:var(--ink);max-width:280px;color:var(--paper);box-shadow:var(--shadow);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;padding:4px 10px;font-size:12.5px;position:absolute;left:24px;overflow:hidden}body:has(.tl-drag-ghost){cursor:grabbing}.tl-bar .edge{z-index:3;cursor:ew-resize;align-items:center;display:flex;position:absolute;top:-4px;bottom:-4px}.tl-bar .edge.l{justify-content:flex-start;padding-left:4px}.tl-bar .edge.r{justify-content:flex-end;padding-right:4px}.tl-bar .edge i{background:var(--surface);opacity:0;border:1px solid #2a2a2a59;border-radius:3px;width:5px;height:16px;transition:opacity .12s;box-shadow:0 1px 3px #00000026}.tl-bar.visit .edge i{height:14px}.tl-row:hover .tl-bar .edge i{opacity:.9}.tl-bar .edge:hover i,.tl-bar.dragging .edge i{opacity:1;background:var(--accent);border-color:var(--accent)}.tl-resize-hint{z-index:9;pointer-events:none;white-space:nowrap;background:var(--ink);color:var(--paper);box-shadow:var(--shadow);border-radius:6px;padding:3px 9px;font-size:11.5px;font-weight:500;position:absolute}.task-date{color:var(--ink-3);white-space:nowrap;flex:none;font-size:11px}.task-date.late{color:var(--red)}.people-pick .cc-who.picked{align-items:flex-start}.person-chip{background:color-mix(in srgb, var(--c) 12%, white);border:1px solid color-mix(in srgb, var(--c) 40%, white);border-radius:12px;align-items:center;gap:5px;height:24px;padding:0 4px 0 8px;font-size:12.5px;display:inline-flex}.person-chip .dot{background:var(--c);border-radius:50%;width:7px;height:7px}.person-chip .x{width:16px;height:16px;color:var(--ink-3);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;display:flex}.person-chip .x:hover{color:var(--ink);background:#00000014}.people-cell{min-width:0;position:relative}.people-btn{text-align:left;cursor:pointer;align-items:center;width:100%;display:flex}.people-btn.empty{color:var(--ink-4)}.people-pop{z-index:30;width:320px;padding:6px;position:absolute;top:calc(100% + 4px);left:0}select.office{color:var(--ink-3)}.chip.with{cursor:pointer;white-space:nowrap;border:0;flex:none;height:18px;font-size:10.5px}.agenda{margin-bottom:18px;padding:4px 0}.agenda-h{align-items:baseline;gap:10px;padding:10px 14px 6px;display:flex}.agenda-day{border-top:1px solid var(--line);gap:12px;padding:6px 14px;display:flex}.agenda-day.today .agenda-date{color:var(--accent)}.agenda-day.late .agenda-date{color:var(--red)}.agenda-date{flex:none;width:96px;padding-top:4px;font-size:12.5px;font-weight:500}.agenda-item{align-items:center;gap:8px;min-height:28px;display:flex}.agenda-empty{padding-top:5px}.agenda-time{width:118px;color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums;flex:none;font-size:11.5px}.toast{align-items:center;gap:12px;display:flex}.toast-action{color:var(--paper);cursor:pointer;background:0 0;border:1px solid #f6f4f166;border-radius:6px;flex:none;padding:3px 10px;font-size:12.5px;font-weight:600}.toast-action:hover{background:#f6f4f11f}.link-row{border-bottom:1px solid var(--line);align-items:center;gap:6px;padding:4px 0;display:flex}.link-row:last-of-type{border-bottom:0}.link-name{height:24px;padding:0 4px;font-weight:500}.wait-in{text-align:right;width:44px}.chip.critical{background:var(--red-soft);color:#8c2e20}.done-box{border:1px solid var(--line);background:var(--surface);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.done-box.ok{background:#f1f6ef;border-color:#cfe0c9}.tl-bar.effort.critical{box-shadow:inset 0 3px 0 var(--red)}.inline.timing{font-size:12px}.seg.sm button{height:24px;padding:0 10px;font-size:12px}.steps{margin:0;padding:0;list-style:none}.step{border:1px solid var(--line);background:var(--surface);border-radius:8px;align-items:center;gap:8px;padding:6px 8px;display:flex}.step.done .step-title{color:var(--ink-3);text-decoration:line-through}.step-title{cursor:pointer}.step-link{flex-wrap:wrap;align-items:center;gap:6px;padding:3px 0 3px 14px;display:flex}.step-arrow{color:var(--ink-4);text-align:center;width:14px}.tl-who{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;flex:none;align-items:center;gap:4px;max-width:45%;margin-left:auto;padding-left:6px;font-size:11px;display:inline-flex;overflow:hidden}.tl-who .swatch{width:7px;height:7px}.tl-bar.task.step{border-left:3px solid var(--c)}.dtf{background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;min-width:0;display:inline-flex}.dtf.field{border-color:var(--line-2);background:var(--surface);height:32px;padding:0 2px}.dtf.inline:hover{border-color:var(--line);background:var(--surface)}.dtf:focus-within{background:var(--surface);border-color:#ff6600b3}.dtf.disabled{opacity:.6}.dtf input{font:inherit;color:inherit;background:0 0;border:0;outline:none;min-width:0;height:28px;padding:0 4px}.dtf .dtf-date{flex:auto}.dtf .dtf-time{border-left:1px solid var(--line);flex:none;width:88px}.dtf.field .dtf-time{width:104px}.dtf input::-webkit-calendar-picker-indicator{display:none}.dtf-cal{width:20px;height:22px;color:var(--ink-3);cursor:pointer;opacity:0;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:flex}.dtf:hover .dtf-cal,.dtf:focus-within .dtf-cal,.dtf.field .dtf-cal{opacity:.7}.dtf-cal:hover{opacity:1;color:var(--ink)}.dtf input.empty:not(:focus){color:var(--ink-4)}.dtf input.inherit:not(:focus){color:var(--ink-4);font-style:italic}.dtf input.late{color:var(--red)}.cc-row>.dtf,.grow>.dtf,.sp-field>.dtf,.tlist .trow .dtf{width:100%}.date-pair{display:contents}.pending-note{color:var(--ink-2);background:var(--paper);border-radius:6px;padding:4px 8px}.login-page{background:var(--paper);justify-content:center;align-items:center;min-height:100%;padding:32px 20px;display:flex}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;width:100%;max-width:400px;padding:40px 36px;box-shadow:0 1px 3px #0000000a,0 12px 36px #0000000f}.login-header{text-align:center;margin-bottom:32px}.login-title{letter-spacing:-.01em;margin:18px 0 6px;font-size:24px;font-weight:500}.login-subtitle{color:var(--ink-2);margin:0;font-size:14px}.login-error{background:var(--red-soft);color:var(--red);border-radius:var(--radius);text-align:left;align-items:flex-start;gap:8px;margin-bottom:20px;padding:12px 14px;font-size:13px;line-height:1.4;display:flex}.login-error svg{color:var(--red);flex:none;margin-top:1px}.login-google-btn{border:1px solid var(--line-2);border-radius:var(--radius);background:var(--surface);width:100%;height:44px;color:var(--ink);cursor:pointer;justify-content:center;align-items:center;gap:10px;font-size:14px;font-weight:500;transition:border-color .12s,box-shadow .12s;display:flex}.login-google-btn:hover{border-color:var(--ink-4);box-shadow:0 1px 4px #0000000f}.login-google-btn:active{background:#fafaf8}.login-google-btn:disabled{opacity:.5;cursor:default}.login-google-btn svg{flex:none}.login-divider{color:var(--ink-2);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:14px;margin:24px 0;font-size:11px;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--line-2);flex:1;height:1px}.login-form{flex-direction:column;gap:16px;display:flex}.login-field-group{flex-direction:column;gap:5px;display:flex}.login-label{color:var(--ink);font-size:13px;font-weight:500}.login-input{border:1px solid var(--line-2);border-radius:var(--radius);background:var(--surface);height:42px;font:inherit;color:var(--ink);padding:0 12px;transition:border-color .12s,box-shadow .12s}.login-input::placeholder{color:var(--ink-4)}.login-input:hover{border-color:var(--ink-4)}.login-input:focus{border-color:#ff6600b3;outline:none;box-shadow:0 0 0 3px #ff66001f}.login-input-code{letter-spacing:.3em;text-align:center;font-variant-numeric:tabular-nums;height:52px;font-size:24px;font-weight:500}.login-actions{flex-direction:column;gap:10px;margin-top:4px;display:flex}.login-btn{border-radius:var(--radius);width:100%;height:42px;font:inherit;cursor:pointer;border:none;justify-content:center;align-items:center;font-size:14px;font-weight:500;transition:background .12s,box-shadow .12s;display:flex}.login-btn:disabled{opacity:.45;cursor:default}.login-btn.primary{background:var(--ink);color:var(--paper)}.login-btn.primary:hover:not(:disabled){background:#1a1a1a;box-shadow:0 1px 4px #0000001f}.login-btn.primary:active:not(:disabled){background:#000}.login-btn.secondary{color:var(--ink-2);border:1px solid var(--line-2);background:0 0}.login-btn.secondary:hover:not(:disabled){border-color:var(--ink-4);color:var(--ink);background:#fafaf8}.login-btn.tertiary{color:var(--ink-2);background:0 0;border:none;height:36px;font-size:13px}.login-btn.tertiary:hover:not(:disabled){color:var(--ink);background:var(--hover);border-radius:var(--radius)}.login-otp-msg{color:var(--ink-2);text-align:center;margin:0 0 4px;font-size:14px;line-height:1.5}.login-otp-msg strong{color:var(--ink);font-weight:600}@media (width<=480px){.login-card{box-shadow:none;background:var(--paper);border:none;padding:32px 24px}}.item-filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.item-filters .field.compact{min-width:0;padding:4px 8px;font-size:13px}.filter-check{color:var(--ink-2);cursor:pointer;white-space:nowrap;align-items:center;gap:4px;font-size:13px;display:flex}table.admin tr.clickable{cursor:pointer}table.admin tr.clickable:hover{background:var(--accent-soft)}.item-number{font-family:var(--mono);letter-spacing:.03em;color:var(--ink-2);font-size:12px}.item-number.large{font-family:var(--mono);letter-spacing:.04em;color:var(--ink-3);font-size:14px}.type-badge{text-transform:uppercase;letter-spacing:.04em;background:var(--hover);color:var(--ink-3);border-radius:3px;padding:1px 6px;font-size:11px;font-weight:600;display:inline-block}.status-pill{background:var(--hover);color:var(--ink-2);border-radius:10px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-block}.status-pill.open{color:#1a56db;background:#e8f0fe}.status-pill.draft{background:var(--hover);color:var(--ink-3)}.status-pill.in_progress,.status-pill.in_review,.status-pill.submitted,.status-pill.sent,.status-pill.options_presented{color:#92400e;background:#fef3c7}.status-pill.answered,.status-pill.priced,.status-pill.chosen,.status-pill.fixed,.status-pill.returned{color:#065f46;background:#d1fae5}.status-pill.closed,.status-pill.done,.status-pill.approved,.status-pill.verified,.status-pill.delivered,.status-pill.ordered{color:#047857;background:#d1fae5}.status-pill.declined,.status-pill.void{background:var(--red-soft);color:var(--red)}.status-pill.assigned{color:#1a56db;background:#e8f0fe}td.overdue,.overdue{color:var(--red);font-weight:500}.board{gap:12px;padding-bottom:8px;display:flex;overflow-x:auto}.board-col{background:var(--hover);border-radius:var(--radius);flex:1;min-width:240px;padding:8px}.board-col-header{justify-content:space-between;align-items:center;margin-bottom:8px;padding:6px 8px;display:flex}.board-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;margin-bottom:6px;padding:10px 12px;transition:box-shadow .15s}.board-card:hover{box-shadow:0 2px 6px #00000014}.stat-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-width:140px;padding:12px 16px}.stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin-bottom:4px;font-size:11px;font-weight:600}.stat-value{font-variant-numeric:tabular-nums;font-size:20px;font-weight:600}table.admin tr.total-row td{border-top:2px solid var(--ink-3);border-bottom:0;padding-top:10px;font-weight:600}.item-header{align-items:baseline;gap:10px;margin-bottom:20px;display:flex}.item-meta{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:10px;margin-bottom:24px;padding:16px;display:flex}.meta-row{align-items:center;gap:10px;display:flex}.meta-row .label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);min-width:100px;font-size:12px;font-weight:600}.section-heading{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);border-bottom:1px solid var(--line);margin:24px 0 10px;padding-bottom:6px;font-size:14px;font-weight:600}.item-fields{flex-direction:column;gap:12px;display:flex}.field-label{color:var(--ink-2);flex-direction:column;gap:4px;font-size:12px;font-weight:600;display:flex}.timeline{flex-direction:column;gap:0;margin-bottom:24px;display:flex}.timeline-entry{border-left:2px solid var(--line);gap:12px;margin-left:8px;padding:8px 0 8px 16px;display:flex;position:relative}.timeline-dot{background:var(--ink-4);border-radius:50%;width:8px;height:8px;position:absolute;top:14px;left:-5px}.timeline-content{color:var(--ink-2);font-size:13px;line-height:1.5}.timeline-actor{color:var(--ink);font-weight:600}.timeline-time{color:var(--ink-3);margin-top:2px;font-size:11px;display:block}.timeline-comment{background:var(--hover);border-radius:var(--radius);color:var(--ink);margin-top:4px;padding:6px 10px;display:block}.comment-box{flex-direction:column;gap:0;display:flex}.comment-box .field{resize:vertical}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.btn.link{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px}.btn.link:hover{text-decoration:underline}.chip-btn{border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);cursor:pointer;border-radius:14px;align-items:center;gap:4px;padding:4px 10px;font-size:13px;transition:all .15s;display:inline-flex}.chip-btn:hover{border-color:var(--ink-4);background:var(--hover)}.chip-btn.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:500}.chip-btn .muted{font-size:11px}.notice-badge{background:var(--accent);color:#fff;text-align:center;border-radius:8px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:2px;right:2px}.drawer-scrim{z-index:80;background:#0006;position:fixed;inset:0}.app-sidebar.drawer{z-index:90;width:280px;box-shadow:var(--shadow);position:fixed;inset:0 auto 0 0}.drawer-close{position:absolute;top:12px;right:8px}.shell.mobile{grid-template-columns:1fr}.shell.mobile .app-content{min-width:0}.shell.mobile .topbar{gap:8px;padding:0 12px}.shell.mobile .searchbtn{flex:1;width:auto;min-width:0}.shell.mobile .viewing{padding-left:8px}@media (width<=767px){.page-inner{padding:20px 16px 60px}.page h1{font-size:22px}.schedule{grid-template-columns:1fr}.schedule>.sidebar{display:none}.cal-head,.crew-head .days{-webkit-overflow-scrolling:touch;overflow-x:auto}.toolbar{flex-wrap:wrap;gap:6px;padding:8px 12px}.toolbar .seg{font-size:12px}.toolbar .seg button{height:28px;padding:0 8px}.toolbar .title{font-size:14px}.crew-row .who{min-width:80px;max-width:100px}.crew-row .who .name{font-size:12px}.crew-row .who .detail{font-size:10px}.tasks-layout{grid-template-columns:1fr}.tasks-layout>.sidebar{display:none}.panel{max-width:100%;width:100%!important}.tab-bar{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto}.tab-bar>*{flex:none}}
