@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-vietnamese-400-normal-Dpl4UHAZ.woff2)format("woff2"),url(/assets/barlow-vietnamese-400-normal-BFeobeCK.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-ext-400-normal-HxX4XjxC.woff2)format("woff2"),url(/assets/barlow-latin-ext-400-normal-CvBsJvxq.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-400-normal-qiz4-Cze.woff2)format("woff2"),url(/assets/barlow-latin-400-normal-fsAxiSwU.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-vietnamese-500-normal-zTViEIzf.woff2)format("woff2"),url(/assets/barlow-vietnamese-500-normal-GNfB7rCE.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-latin-ext-500-normal-DOaysfXq.woff2)format("woff2"),url(/assets/barlow-latin-ext-500-normal-CJPcKP2Q.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-latin-500-normal-BPAOfeC8.woff2)format("woff2"),url(/assets/barlow-latin-500-normal-C1h8hMer.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-vietnamese-600-normal-DcjprdFV.woff2)format("woff2"),url(/assets/barlow-vietnamese-600-normal-CA_GiK2e.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-latin-ext-600-normal-B8NK_A3D.woff2)format("woff2"),url(/assets/barlow-latin-ext-600-normal-DMVRjfRT.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-latin-600-normal-DILqtrty.woff2)format("woff2"),url(/assets/barlow-latin-600-normal-CNwfPWQD.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-vietnamese-600-normal-A5AYRdjN.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-600-normal-CNlPk46_.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-ext-600-normal-18ESti3H.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-600-normal-Clv9cIcR.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2)format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-vietnamese-700-normal-DYeBwlKR.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-700-normal-DhIzd8Tb.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-ext-700-normal-CwuXbfVR.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-700-normal-BIHFfxf0.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2)format("woff2"),url(/assets/barlow-condensed-latin-700-normal-Dmwat-ge.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--header:#17191c;--header-text:#f3f1ec;--ground:#f3f1ec;--card:#fff;--ink:#17191c;--ink-2:#4a4f57;--line:#d9d5cc;--orange:#ea580c;--orange-text:#c2410c;--green:#15803d;--green-bg:#dcfce7;--red:#b91c1c;--red-bg:#fee2e2;--blue:#1d4ed8;--blue-bg:#dbeafe;--gray:#4b5563;--gray-bg:#e5e7eb;--amber:#a16207;--amber-bg:#fef3c7;--radius:10px;--tap:48px;color:var(--ink);background:var(--ground);-webkit-text-size-adjust:100%;font-family:Barlow,system-ui,sans-serif;font-size:17px;line-height:1.4}*{box-sizing:border-box}html,body{background:var(--ground);min-height:100%;margin:0}body{overscroll-behavior-y:none}h1,h2,h3{margin:0;font-family:Barlow Condensed,Barlow,sans-serif;font-weight:700;line-height:1.1}h1{font-size:1.9rem}h2{font-size:1.4rem}h3{font-size:1.15rem;font-weight:600}a{color:var(--orange-text)}button,input,select,textarea{font:inherit;color:inherit}.btn{min-height:var(--tap);border-radius:var(--radius);border:2px solid var(--ink);background:var(--card);cursor:pointer;color:var(--ink);justify-content:center;align-items:center;gap:8px;padding:0 20px;font-weight:600;text-decoration:none;display:inline-flex}.btn.primary{background:var(--orange);border-color:var(--orange);color:#fff}.btn.primary:disabled{opacity:.55}.btn.block{width:100%}.btn:focus-visible,input:focus-visible{outline:3px solid var(--orange);outline-offset:2px}input.field{border:2px solid var(--ink-2);border-radius:var(--radius);background:#fff;width:100%;min-height:52px;padding:0 14px;font-size:1.1rem}label{margin-bottom:6px;font-weight:600;display:block}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--header);color:var(--header-text);padding:calc(env(safe-area-inset-top) + 10px) 16px 12px;z-index:10;flex-direction:column;gap:10px;display:flex;position:sticky;top:0}.topbar>*{width:100%;max-width:1100px;margin-left:auto;margin-right:auto}.topbar-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.topbar-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.topbar .title{flex:1;min-width:0}.topbar .title h1{color:#fff;overflow-wrap:anywhere;font-size:1.75rem;line-height:1.05}.topbar .title .sub{color:#b5b2aa;margin-top:2px;font-size:.85rem}.topbar h1.big{color:#fff;font-size:2rem}.topbar .back{color:#d6d3cc;text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;min-width:0;min-height:44px;font-size:.95rem;text-decoration:none;display:inline-flex;overflow:hidden}.muted-dark{color:#b5b2aa}.topbar .hint{color:#b5b2aa;white-space:nowrap;align-self:flex-end;padding-bottom:2px;font-size:.75rem}.sync{white-space:nowrap;cursor:pointer;border:0;border-radius:999px;align-items:center;gap:6px;min-height:36px;padding:0 12px;font-size:.85rem;font-weight:600;display:inline-flex}.sync .dot{background:currentColor;border-radius:50%;width:8px;height:8px}.sync.ok{color:#b9e4c5;background:0 0;padding:0 4px}.sync.ok .dot{background:#5cc27a}.sync.demo{color:#fed7aa;cursor:default;background:#2a2d31}.sync.waiting{color:#fed7aa;background:#4a2a12}.sync.problem{color:#fecaca;background:#4c1d1d}main.page{width:100%;max-width:1100px;padding:16px 16px calc(env(safe-area-inset-bottom) + 24px);flex:1;margin:0 auto}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.stack>*+*{margin-top:12px}.muted{color:var(--ink-2)}.small{font-size:.88rem}.grid{grid-template-columns:1fr;gap:12px;display:grid}@media (width>=720px){.grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1040px){.grid{grid-template-columns:repeat(3,1fr)}}.job-card{color:inherit;min-height:var(--tap);text-decoration:none;display:block}.job-card .num{color:var(--orange-text);font-size:.9rem;font-weight:600}.progress{background:var(--gray-bg);border-radius:999px;height:10px;margin-top:10px;overflow:hidden}.progress>span{background:var(--orange);height:100%;display:block}.tag{background:var(--gray-bg);border-radius:6px;padding:2px 8px;font-size:.8rem;font-weight:600;display:inline-block}.status{border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:.9rem;font-weight:600;display:inline-flex}.status.showed_up{background:var(--green-bg);color:var(--green)}.status.no_show{background:var(--red-bg);color:var(--red)}.status.confirmed{background:var(--blue-bg);color:var(--blue)}.status.planned{background:var(--gray-bg);color:var(--gray)}.status.short_crew,.status.late_split{background:var(--amber-bg);color:var(--amber)}.entry{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.entry .who{flex:200px}.choices .btn{min-height:48px;padding:0 14px}.choices .btn.on{background:var(--ink);color:#fff}.banner{border-radius:var(--radius);background:var(--amber-bg);color:#713f12;padding:12px 16px;font-weight:500}.banner.red{background:var(--red-bg);color:#7f1d1d}.center-page{justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.center-page .card{width:100%;max-width:420px}.code-input{letter-spacing:.4em;text-align:center;font-weight:600;font-size:1.6rem!important}.divider{color:var(--ink-2);align-items:center;gap:12px;font-size:.9rem;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.grow{flex:1;min-width:0}.center{text-align:center}.tiny{font-size:.78rem}.row-between{justify-content:space-between;align-items:center;gap:10px;display:flex}.row-between.top{align-items:flex-start}.row-between.baseline{align-items:baseline}.row-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.row-3{grid-template-columns:1fr;gap:10px;display:grid}@media (width>=560px){.row-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.stack-sm>*+*{margin-top:8px}main.page.narrow{max-width:640px}.eyebrow{color:#5b6067;letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:600}.label{margin:0 0 6px;font-weight:600}p{margin:0}fieldset{border:0;margin:0;padding:0}.app.has-tabs main.page{padding-bottom:calc(env(safe-area-inset-bottom) + 96px)}.search{color:#fff;background:#2a2d31;border:1px solid #3a3e43;border-radius:12px;width:100%;height:46px;padding:0 14px;font-size:1rem}.search::placeholder{color:#9a978f}.avatar{background:var(--orange);width:44px;height:44px;color:var(--ink);border-radius:50%;justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:flex}.icon-btn{color:#fff;background:#2a2d31;border:1px solid #3a3e43;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.5rem;text-decoration:none;display:inline-flex}.icon-btn.orange{background:var(--orange);border-color:var(--orange);color:var(--ink);font-weight:600}.icon-btn.light{background:var(--ground);border-color:var(--line);color:var(--ink)}.btn.small{min-height:40px;padding:0 14px;font-size:.92rem}.btn.orange{background:var(--orange);border-color:var(--orange);color:var(--ink)}.btn.ghost-dark{color:#fff;background:0 0;border:1px solid #3a3e43}.btn.dark{background:var(--ink);border-color:var(--ink);color:#fff}.btn.grow{flex:1}.btn:disabled{opacity:.5;cursor:default}.switcher{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:6px;width:calc(100% + 32px);max-width:none;margin:0 -16px;padding:0 16px;display:flex;overflow-x:auto}.switcher::-webkit-scrollbar{display:none}.switcher.wrap{flex-wrap:wrap;width:100%;margin:0;padding:0;overflow:visible}.chip{cursor:pointer;white-space:nowrap;border-radius:20px;flex-shrink:0;align-items:center;gap:6px;min-height:40px;padding:0 13px;font-size:.92rem;text-decoration:none;display:inline-flex}.chip.dark{color:#d6d3cc;background:0 0;border:1px solid #3a3e43}.chip.dark.on{color:var(--ink);background:#fff;border-color:#fff;font-weight:600}.chip .count{color:#fff;background:#a32a1d;border-radius:8px;padding:1px 7px;font-size:.72rem;font-weight:600}.job-dot{vertical-align:middle;border-radius:3px;flex-shrink:0;display:inline-block}.week-nav{color:#d6d3cc;justify-content:center;align-items:center;gap:6px;font-size:.88rem;display:flex}.week-nav span{text-align:center;flex:1}.ghost{color:#fff;cursor:pointer;background:0 0;border:1px solid #3a3e43;border-radius:10px;min-width:44px;min-height:36px;font-size:1.1rem}.ghost.today{padding:0 10px;font-size:.85rem}.strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.strip-day{color:#d6d3cc;cursor:pointer;background:#2a2d31;border:1.5px solid #0000;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:56px;padding:0;display:flex}.strip-day .wd{font-size:.75rem}.strip-day .dm{color:#fff;font-size:1.1rem;font-weight:600}.strip-day.extra_work{border-color:var(--orange)}.strip-day.off,.strip-day.holiday{color:#8e8a80;background:0 0;border:1px dashed #4a4e54}.strip-day.off .dm,.strip-day.holiday .dm{color:#8e8a80}.strip-day.is-today .wd{text-underline-offset:3px;text-decoration:underline}.strip-day.on{background:var(--orange);border-color:var(--orange);color:var(--ink)}.strip-day.on .wd{font-weight:600}.strip-day.on .dm{color:var(--ink);font-weight:700}.card h3{font-family:Barlow,sans-serif;font-size:1.08rem;font-weight:600;line-height:1.25}.job-card{border-radius:16px;flex-direction:column;gap:10px;padding:14px;display:flex}.job-card.compact{padding:12px 14px}.job-name{align-items:center;gap:8px;display:flex}.progress{background:#ece9e2;height:8px;margin-top:4px}.chips{flex-wrap:wrap;gap:8px;display:flex}.topbar .chip-soft{color:#d6d3cc;background:#2a2d31}.chip-soft{background:var(--ground);white-space:nowrap;border-radius:8px;padding:4px 8px;font-size:.82rem}.pill{white-space:nowrap;border-radius:8px;padding:4px 8px;font-size:.78rem;font-weight:600}.pill.red{color:#a32a1d;background:#fbe4e1}.board h2{font-size:1.3rem}.entry-card{color:inherit;border-radius:14px;flex-direction:column;gap:8px;padding:12px 14px;text-decoration:none;display:flex}.entry-card.compact{padding:10px 14px}.entry-card .facts{flex-wrap:wrap;gap:14px;display:flex}.entry-card b.red{color:#a32a1d}.entry-card b.green{color:#1e6b34}.entry-card .note{border-top:1px solid #ece9e2;padding-top:8px}.same-sub{color:#5a3207;background:#fff4e5;border:1px solid #f2c894;border-radius:10px;flex-wrap:wrap;align-items:center;gap:4px;padding:6px 10px;display:flex}.heads-up{color:#5a3207;background:#fff4e5;border:1px solid #f2c894;border-radius:12px;padding:8px 12px}.amber-text{color:#8a4b0b;font-weight:600}.gate{color:#3d4a63;border:1.5px dashed #8e8a80;border-radius:14px;align-items:center;gap:12px;padding:10px 14px;display:flex}.gate h3{color:var(--ink);font-size:1rem}.milestone{border-radius:14px;align-items:center;gap:12px;padding:10px 14px;display:flex}.milestone .diamond{color:var(--orange-text);font-size:1.1rem}.next-day{margin-top:18px!important}.banner.orange{color:#7c2d12;background:#ffedd5}.status{white-space:nowrap}.status.no_show{color:#a32a1d;background:#fbe4e1}.status.showed_up{color:#1e6b34;background:#e3f1e6}.status.confirmed{color:#1e4e8c;background:#e3ecf8}.actions{gap:10px;display:flex;margin-top:16px!important}.actions .btn{white-space:nowrap;border-radius:12px;min-height:52px;padding:0 12px}.actions.sticky{background:linear-gradient(transparent, var(--ground) 30%);padding:16px 0 calc(env(safe-area-inset-bottom) + 8px);position:sticky;bottom:0}.status-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.status-btn{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;min-height:52px;font-size:1rem;font-weight:500}.status-btn.on{border-width:2px;font-weight:600}.status-btn.on.showed_up{color:#1e6b34;background:#e3f1e6;border-color:#1e6b34}.status-btn.on.no_show{color:#a32a1d;background:#fbe4e1;border-color:#a32a1d}.status-btn.on.short_crew,.status-btn.on.late_split{border-color:var(--amber);background:var(--amber-bg);color:var(--amber)}.choices{flex-wrap:wrap;gap:8px;display:flex}.chip-btn,.pill-btn{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:22px;min-height:44px;padding:0 14px;font-size:.95rem}.chip-btn.on,.pill-btn.on{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600}.pill-btn.on .muted{color:#d6d3cc}.crew{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.crew.one{grid-template-columns:minmax(0,1fr);max-width:320px}.crew-box{border-radius:14px;padding:10px 12px}.stepper{justify-content:space-between;align-items:center;margin-top:4px;display:flex}.stepper button{border:1px solid var(--line);background:var(--ground);cursor:pointer;border-radius:10px;width:48px;height:48px;font-size:1.4rem}.big-num{font-size:1.9rem;font-weight:600}.big-num.red{color:#a32a1d}textarea.field{border:1px solid var(--line);resize:vertical;background:#fff;border-radius:12px;width:100%;min-height:0;padding:10px 12px;font-size:1rem}select.field,input.field{border:2px solid var(--ink-2);border-radius:var(--radius);background:#fff;width:100%;min-height:52px;padding:0 12px;font-size:1.05rem}input[type=date].field{appearance:none}.stamp{align-items:center;gap:6px;display:flex}.check{align-items:center;gap:10px;min-height:44px;font-weight:500;display:flex}.check input{width:22px;height:22px;accent-color:var(--orange)}.sub-row{color:inherit;border-radius:14px;align-items:center;gap:10px;padding:12px 14px;text-decoration:none;display:flex}.contact-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.contact-btn{border:1px solid var(--line);min-height:56px;color:var(--ink);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:.85rem;font-weight:500;text-decoration:none;display:flex}.contact-btn.off{opacity:.4;pointer-events:none}.job-line{color:inherit;align-items:center;gap:8px;min-height:36px;text-decoration:none;display:flex}.stat{background:var(--ground);border-radius:10px;padding:8px 10px}.stat-num{margin-top:2px;font-size:1.1rem;font-weight:600}.private{color:#5a3207;background:#fff4e5;border:1px solid #f2c894;border-radius:12px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.private-head{color:#8a4b0b;text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:6px;font-size:.75rem;font-weight:600;display:flex}.private-note{border-bottom:1px solid #f2c894;padding-bottom:6px}.private textarea.field{border-color:#f2c894}.contact-line{border-top:1px solid #ece9e2;align-items:center;gap:8px;padding:6px 0;display:flex}.swatch{cursor:pointer;border:3px solid #0000;border-radius:12px;width:44px;height:44px}.swatch.on{border-color:var(--ink);box-shadow:inset 0 0 0 2px #fff}.cal-line{border-top:1px solid #ece9e2;padding-top:8px}.tabs{z-index:9;border-top:1px solid var(--line);padding:6px 0 calc(env(safe-area-inset-bottom) + 8px);background:#fff;grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0}.tab{color:#5b6067;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:48px;font-size:.75rem;text-decoration:none;display:flex}.tab.on{color:var(--orange-text);font-weight:600}@media (width>=900px){.tabs{border:1px solid var(--line);border-radius:16px;max-width:560px;margin:0 auto 12px;padding:4px;box-shadow:0 4px 16px #00000014}}.seg{background:#2a2d31;border-radius:12px;grid-template-columns:1fr 1fr;gap:3px;padding:3px;display:grid}.seg button{color:#d6d3cc;cursor:pointer;background:0 0;border:0;border-radius:10px;min-height:40px;font-weight:600}.seg button.on{color:var(--ink);background:#fff}.jump{text-align:center;cursor:pointer;flex:1;justify-content:center;align-items:center;min-height:36px;margin:0;font-weight:500;display:flex;position:relative}.jump input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.phases .banner{margin-top:8px}.week-block{border-radius:14px;flex-direction:column;gap:6px;padding:12px 14px;display:flex}.ahead-day{border-top:1px solid #ece9e2;align-items:flex-start;gap:10px;padding-top:6px;display:flex}.ahead-day.holiday .ahead-date,.ahead-day.off .ahead-date{color:#8e8a80;background:0 0;border-style:dashed}.ahead-day.extra_work .ahead-date{border-color:var(--orange)}.ahead-day.is-today .ahead-date{background:var(--orange);border-color:var(--orange)}.ahead-date{border:1.5px solid var(--line);background:var(--ground);cursor:pointer;border-radius:10px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:48px;min-height:44px;padding:2px 0;display:flex}.ahead-date .wd{font-size:.7rem}.ahead-date .dm{font-weight:700}.ahead-items{flex-wrap:wrap;flex:1;gap:6px;min-width:0;padding-top:4px;display:flex}.ahead-item{color:var(--ink);background:var(--ground);border:1px solid var(--line);border-left-width:4px;border-radius:8px;align-items:center;min-height:32px;padding:4px 8px;font-size:.85rem;text-decoration:none;display:inline-flex}.ahead-item.rough_in{border-left-color:#5b8def}.ahead-item.finishes{border-left-color:#9b5de5}.ahead-item.no_show{background:#fbe4e1}.ahead-item.short_crew,.ahead-item.late_split{background:var(--amber-bg)}.ahead-item.showed_up{background:#e3f1e6}.ahead-item.lock{border-style:dashed;border-left-width:1px}.phase-tag{background:#ece9e2;border-radius:6px;margin-right:6px;padding:2px 6px;font-size:.72rem;font-weight:600}.task-link{color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;gap:4px;min-height:48px;padding:10px 12px;text-decoration:none;display:flex}.viewas-bar{background:var(--orange);color:var(--ink);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:6px 6px 6px 12px;font-size:.9rem;display:flex}.viewas-bar button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:8px;min-height:36px;padding:0 10px;font-weight:600}.role-switch{align-items:center;gap:8px;margin:0;font-size:.9rem;font-weight:500;display:inline-flex}.role-switch.dark{color:#b5b2aa}.role-switch select{color:#fff;background:#2a2d31;border:1px solid #3a3e43;border-radius:10px;max-width:190px;min-height:40px;padding:0 10px;font-size:.95rem;font-weight:600}
