:root{--bg-base:#000;--bg-elevated:#000;--bg-overlay:#141414;--bg-input:#363636;--bg-light:#fff;--bg-light-soft:#f4f6f5;--text-on-light:#0d1311;--text-on-light-muted:#5a6660;--border-on-light:#d8ddd8;--border:#202020;--border-strong:#2e2e2e;--font-ui:Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--text-primary:#ededee;--text-secondary:#a4a5ad;--text-muted:#6e6f78;--type-h1-size:22px;--type-h1-weight:700;--type-h1-line:1.15;--type-h2-size:18px;--type-h2-weight:700;--type-h2-line:1.2;--type-h3-size:15px;--type-h3-weight:700;--type-h3-line:1.2;--type-h4-size:13px;--type-h4-weight:600;--type-h4-line:1.2;--type-label-size:13px;--type-label-weight:600;--type-body-size:13px;--type-body-weight:400;--type-body-line:1.45;--type-body-strong-weight:600;--type-table-head-size:10.5px;--type-table-head-weight:600;--type-table-cell-size:10.5px;--type-table-cell-weight:500;--accent:#0f9d20;--accent-strong:#0b8419;--accent-soft:#0f9d201f;--accent-border:#0f9d208c;--accent-glow:0 0 24px #0f9d203d;--danger:#ff5e63;--danger-soft:#ff5e631f;--warning:#f5c542;--warning-soft:#f5c54224;--info:#6ea8ff;--info-soft:#6ea8ff24;--event:#14b8a6;--event-soft:#14b8a629;--event-deep:#0f766e;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--card-gap:var(--space-4);--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-pill:999px;--side-nav-width:248px;--content-max:1180px;--content-wide:1520px;--shadow-card:0 8px 24px #00000052;--shadow-pop:0 20px 60px #0006;--card-shadow-standard:0 0 0 1px #1219140f, 0 3px 10px #12191414, 0 12px 26px #1219140d}*{box-sizing:border-box}html,body{background:var(--bg-base);min-height:100%;color:var(--text-primary);font-family:var(--font-ui);font-feature-settings:"cv11", "ss01";-webkit-font-smoothing:antialiased;margin:0;font-size:14px}body{letter-spacing:-.02em;overflow-x:hidden}a{color:inherit}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}h1,h2,h3,h4,p{margin:0}h1{font-size:var(--type-h1-size);font-weight:var(--type-h1-weight);letter-spacing:-.02em;line-height:var(--type-h1-line)}h2{font-size:var(--type-h2-size);font-weight:var(--type-h2-weight);letter-spacing:-.01em;line-height:var(--type-h2-line)}h3{font-size:var(--type-h3-size);font-weight:var(--type-h3-weight);letter-spacing:-.01em;line-height:var(--type-h3-line)}h4{font-size:var(--type-h4-size);font-weight:var(--type-h4-weight);letter-spacing:0;line-height:var(--type-h4-line)}p{font-size:var(--type-body-size);font-weight:var(--type-body-weight);line-height:var(--type-body-line)}.brand-mark{border-radius:var(--radius-md);background:0 0;place-items:center;width:36px;height:36px;display:inline-grid;overflow:hidden}.brand-mark img{object-fit:contain;width:86%;height:86%;display:block}.brand-mark-large{border-radius:var(--radius-xl);width:96px;height:96px}.welcome-screen{background:#fff;grid-template-rows:minmax(0,2fr) minmax(33.33dvh,1fr);min-height:100dvh;display:grid}.welcome-illustration{padding:var(--space-6) var(--space-5) var(--space-7);background:#fff;place-items:center;display:grid}.welcome-illustration-stage{gap:var(--space-4);place-items:center;width:min(100%,420px);display:grid}.welcome-svg{width:100%;max-width:360px;height:auto}.welcome-image{object-fit:contain;display:block}.welcome-headline{margin:var(--space-3) 0 0;color:var(--accent);letter-spacing:-.04em;font-size:clamp(40px,12vw,56px);font-style:italic;font-weight:800;line-height:1}.welcome-subtitle{color:var(--accent);letter-spacing:-.005em;margin:0;font-size:16px;font-weight:500}.logo-orbit,.orbit-dot,.orbit-line,.welcome-feature-cards,.status-list{display:none}.welcome-panel{gap:var(--space-3);padding:var(--space-6) var(--space-5) calc(var(--space-6) + env(safe-area-inset-bottom));background:var(--bg-base);border-radius:32px 32px 0 0;align-content:center;min-height:33.33dvh;margin-top:-16px;display:grid}.eyebrow{margin:0 0 var(--space-1);color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:600}.eyebrow-accent,.welcome-panel .eyebrow{color:var(--accent)}.welcome-panel h1{letter-spacing:-.03em;font-size:clamp(32px,8vw,44px);line-height:1.05}.welcome-subtitle{color:var(--accent);letter-spacing:-.005em;font-size:16px;font-weight:500}.status-list{gap:var(--space-2);margin:var(--space-4) 0 0;padding:0;list-style:none;display:grid}.status-list li{align-items:center;gap:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text-primary);padding:var(--space-3) var(--space-4);font-size:14px;display:flex}.status-list span{border-radius:var(--radius-pill);background:var(--accent);width:8px;height:8px}.welcome-actions{justify-items:center;gap:var(--space-3);margin-top:var(--space-3);display:grid}.welcome-actions .button{width:75%}.welcome-actions .button-primary{color:#fff}.welcome-signup{border-color:var(--accent);color:var(--accent);background:0 0}.button,.social-row button{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-md);min-height:44px;padding:0 var(--space-5);cursor:pointer;border:1px solid #0000;font-size:14px;font-weight:600;text-decoration:none;transition:background .14s,border-color .14s,transform 80ms;display:inline-flex}.button:active,.social-row button:active:not(:disabled){transform:translateY(1px)}.button:focus-visible,.social-row button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.button-primary{background:var(--accent);color:#fff}.button-primary:hover:not(:disabled){background:var(--accent-strong)}.button-secondary{border-color:var(--accent);background:var(--bg-elevated);color:var(--text-primary)}.button-secondary:hover:not(:disabled){border-color:var(--accent-border);background:var(--accent-soft);color:var(--accent)}.button:disabled,.social-row button:disabled{cursor:not-allowed;opacity:.55}.icon-button{justify-content:center;align-items:center;gap:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);min-height:36px;color:var(--text-primary);padding:0 var(--space-4);font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.icon-button:hover{border-color:var(--border-strong);background:var(--bg-overlay)}.icon-button-green{border-color:var(--accent-border);background:var(--accent-soft);color:var(--accent)}.auth-shell,.legal-shell{background:var(--bg-base);flex-direction:column;min-height:100dvh;display:flex}.auth-hero{padding:var(--space-6) var(--space-5) calc(var(--space-7) + var(--space-5));background:var(--accent);color:#fff;position:relative}.auth-hero-back{align-items:center;gap:var(--space-2);color:#fff;margin-bottom:var(--space-3);font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.auth-hero-back svg{stroke:currentColor}.auth-hero h1{letter-spacing:-.02em;color:#fff;text-shadow:0 1px #00000014;margin:0;font-size:clamp(34px,9vw,44px);font-weight:800;line-height:1}.auth-hero .eyebrow{color:#001b06b3}.auth-hero .subtitle{color:#001b06d9;font-size:14px}.auth-panel{padding:var(--space-6) var(--space-5) calc(var(--space-6) + env(safe-area-inset-bottom));background:var(--bg-base);border-radius:32px 32px 0 0;flex:1;margin-top:-32px;position:relative}.auth-shell-no-hero-title .auth-hero{padding:var(--space-6) var(--space-5) calc(var(--space-6) + var(--space-4))}.auth-panel-title{margin:0 0 var(--space-2);color:#fff;letter-spacing:-.03em;text-align:center;font-size:clamp(28px,7vw,36px);font-weight:800}.auth-panel-subtitle{margin:0 0 var(--space-5);color:var(--text-secondary);text-align:center;font-size:13px}.auth-panel-no-subtitle .auth-panel-title{margin-bottom:var(--space-5)}.auth-form{gap:var(--space-4);width:100%;max-width:420px;margin:0 auto;display:grid}.auth-form label{gap:var(--space-2);color:var(--text-primary);letter-spacing:.18em;text-transform:uppercase;font-size:11px;font-weight:700;display:grid}.auth-form input,.auth-form select{border-radius:var(--radius-md);background:var(--bg-input);width:100%;min-height:50px;color:var(--text-primary);padding:0 var(--space-5);letter-spacing:0;text-transform:none;border:1px solid #0000;font-size:14px}.auth-form .button-primary{border-radius:var(--radius-md);min-height:44px;margin-top:var(--space-3);color:#fff;justify-self:center;width:75%;font-weight:700}.auth-form input::placeholder{color:var(--text-muted)}.auth-form input:hover,.auth-form select:hover{border-color:var(--accent)}.checkbox-row{grid-template-columns:18px 1fr;align-items:center;line-height:1.45;gap:var(--space-3)!important;color:var(--text-secondary)!important;letter-spacing:0!important;text-transform:none!important;font-size:13px!important;font-weight:400!important;display:grid!important}.checkbox-row input{width:18px;height:18px;min-height:auto;accent-color:var(--accent);border-radius:4px;padding:0}.checkbox-row .checkbox-link{color:var(--accent);cursor:pointer;font:inherit;text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline;text-decoration-thickness:1px}.checkbox-row .checkbox-link:hover,.checkbox-row .checkbox-link:focus-visible{color:var(--accent-strong);outline:none}.auth-document-overlay{z-index:1000;background:#000000b8;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.auth-document-dialog{border:1px solid var(--border-strong);background:var(--bg-elevated);border-radius:22px;grid-template-rows:auto minmax(0,1fr);width:min(920px,100%);height:min(820px,100dvh - 44px);display:grid;overflow:hidden;box-shadow:0 28px 72px #00000061}.auth-document-dialog header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:14px;padding:16px 18px;display:flex}.auth-document-dialog h2{color:var(--text-primary);font-size:16px;font-weight:760}.auth-document-dialog header button{border:1px solid var(--border);border-radius:var(--radius-pill);width:36px;height:36px;color:var(--text-primary);cursor:pointer;background:0 0;place-items:center;font-size:14px;font-weight:760;display:inline-grid}.auth-document-dialog iframe{background:#fff;border:0;width:100%;height:100%}@media (max-width:719px){.auth-document-overlay{align-items:stretch;padding:12px}.auth-document-dialog{border-radius:18px;width:100%;height:calc(100dvh - 24px)}.auth-document-dialog header{padding:12px 14px}.auth-document-dialog h2{font-size:14px}}.social-row{justify-items:center;gap:var(--space-3);margin-top:var(--space-2);grid-template-columns:1fr;display:grid}.social-row button{border-color:var(--accent);background:var(--bg-elevated);width:75%;color:var(--text-primary)}.auth-inline-link,.auth-footnote a{color:var(--accent);font-weight:600;text-decoration:none}.auth-form .auth-inline-link,.auth-footnote a{color:#fff;text-align:center;justify-content:center;justify-self:center;width:75%;display:inline-flex}.auth-form .auth-inline-link{margin-top:var(--space-5)}.auth-panel-no-subtitle .auth-footnote{margin-top:var(--space-3)}.auth-inline-link-back{align-items:center;gap:6px;display:inline-flex}.auth-inline-link-back svg{stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.4px;width:18px;height:18px}.auth-inline-link:hover,.auth-footnote a:hover{text-decoration:underline}.auth-footnote{margin:var(--space-5) 0 0;color:var(--text-secondary);text-align:center}.subtitle{color:var(--text-secondary);font-size:14px;line-height:1.55}.form-status{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin:0;font-size:13px;line-height:1.45}.form-status-loading{background:var(--bg-elevated);color:var(--text-secondary)}.form-status-success{border-color:var(--accent-border);background:var(--accent-soft);color:var(--accent)}.form-status-error{background:var(--danger-soft);color:#ffb0b3;border-color:#ff5e635c}.legal-shell{padding:var(--space-5);place-items:start center}.legal-card{border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--bg-elevated);width:min(100%,760px);padding:var(--space-6) var(--space-5);box-shadow:var(--shadow-card)}.legal-sections{gap:var(--space-5);margin-top:var(--space-5);display:grid}.legal-sections section{border-top:1px solid var(--border);padding-top:var(--space-4)}.legal-sections p{color:var(--text-secondary);line-height:1.65}@media (min-width:720px){.welcome-screen{grid-template-rows:minmax(0,2fr) minmax(33.33dvh,1fr);place-items:center}.welcome-illustration{width:100%;padding:var(--space-7) var(--space-6)}.welcome-illustration-stage{width:min(100%,520px)}.welcome-svg{max-width:460px}.welcome-panel{width:100%;padding:var(--space-7) var(--space-7) calc(var(--space-7) + env(safe-area-inset-bottom))}.welcome-actions{max-width:420px;margin:var(--space-3) auto 0;width:100%}.social-row{grid-template-columns:1fr 1fr}}@media (min-width:1100px){.welcome-screen{background:radial-gradient(circle at 24% 22%, #0f9d2024, transparent 28%), linear-gradient(90deg, #fff 0%, #fff 66.66%, var(--bg-base) 66.66%, var(--bg-base) 100%);grid-template-rows:1fr;grid-template-columns:minmax(0,2fr) minmax(360px,1fr);min-height:100dvh}.welcome-illustration{min-height:100dvh;padding:var(--space-8);background:0 0;align-content:center}.welcome-illustration-stage{width:min(100%,620px)}.welcome-svg{max-width:540px}.welcome-headline{font-size:clamp(64px,7vw,104px)}.welcome-panel{min-height:100dvh;padding:var(--space-8);border-left:1px solid #ffffff14;border-radius:40px 0 0 40px;align-content:center;justify-items:stretch;margin-top:0}.welcome-actions{width:100%;max-width:360px;margin:0 auto}.welcome-actions .button,.auth-form .button-primary,.social-row button{min-height:56px}.auth-shell{background:radial-gradient(circle at 18% 24%, #0f9d2038, transparent 28%), var(--bg-base);grid-template-columns:minmax(420px,.9fr) minmax(440px,560px);min-height:100dvh;display:grid}.auth-shell-no-hero-title{background:radial-gradient(circle at 50% 8%, #0f9d2029, transparent 34%), var(--bg-base);grid-template-columns:1fr;place-items:center}.auth-hero{min-height:100dvh;padding:var(--space-8);background:linear-gradient(145deg, #ffffff2e, transparent 32%), var(--accent);border-radius:0 44px 44px 0;align-content:center;display:grid}.auth-shell-no-hero-title .auth-hero{z-index:2;min-height:auto;padding:var(--space-6);background:0 0;border-radius:0;position:fixed;top:0;left:0}.auth-hero-back{top:var(--space-6);left:var(--space-6);position:absolute}.auth-shell-no-hero-title .auth-hero-back{position:static}.auth-hero h1{max-width:620px;font-size:clamp(56px,6vw,92px)}.auth-panel{min-height:100dvh;padding:var(--space-8) var(--space-7);border-radius:0;align-content:center;margin-top:0;display:grid}.auth-shell-no-hero-title .auth-panel{width:min(100% - 96px,560px);min-height:auto;padding:clamp(56px, 7dvh, 80px) var(--space-7);background:linear-gradient(180deg, #0f9d201a, #0f9d2000 26%), var(--bg-base);border:1px solid #0f9d20e0;border-radius:36px;align-content:center;justify-items:center;box-shadow:0 0 0 1px #0f9d2038,0 24px 90px #00000080,0 0 72px #0f9d201f}.auth-panel-title,.auth-panel-subtitle{text-align:left}.auth-panel-title,.auth-panel-subtitle,.auth-form,.auth-footnote{width:min(100%,420px);margin-left:0;margin-right:0}.auth-shell-no-hero-title .auth-panel-title,.auth-shell-no-hero-title .auth-panel-subtitle,.auth-shell-no-hero-title .auth-form,.auth-shell-no-hero-title .auth-footnote{text-align:center;margin-left:auto;margin-right:auto}.auth-shell-no-hero-title .auth-panel-title{margin-bottom:var(--space-4);line-height:1.05}.auth-shell-no-hero-title .auth-panel-subtitle{margin-bottom:var(--space-6);line-height:1.55}.auth-shell-no-hero-title .auth-panel.auth-panel-no-subtitle .auth-panel-title{margin-bottom:var(--space-6)}.auth-form{margin-top:var(--space-2)}.auth-shell-no-hero-title .auth-form{gap:var(--space-5);margin-top:var(--space-3)}.auth-shell-no-hero-title .auth-form label{gap:var(--space-3)}.auth-shell-no-hero-title .auth-form .button-primary{margin-top:var(--space-4)}.auth-shell-no-hero-title .social-row{gap:var(--space-4);margin-top:var(--space-3)}.auth-shell-no-hero-title .auth-form .auth-inline-link,.auth-shell-no-hero-title .auth-footnote{margin-top:var(--space-6)}.auth-footnote{text-align:left}.auth-shell-no-hero-title .auth-footnote{text-align:center}}
.app-shell{background:var(--bg-base);height:100dvh;position:relative;overflow:hidden}.app-main{overflow-clip-margin:var(--space-5);overscroll-behavior:contain;width:100%;height:100dvh;padding:calc(68px + env(safe-area-inset-top)) var(--space-4) calc(var(--space-5) + env(safe-area-inset-bottom));position:relative;overflow:clip auto}.app-shell-light{--bg-base:#fff;--bg-elevated:#fff;--bg-overlay:#f5f5f5;--bg-input:#fff;--border:#ececec;--border-strong:#dedede;--text-primary:#111;--text-secondary:#4d4d4d;--text-muted:#828282;--accent-soft:#0f9d201c;--shadow-card:0 14px 34px #00000014;--shadow-pop:0 22px 58px #0000001f;background:#fff}.app-shell-light .side-nav,.app-shell-light .mobile-side-drawer,.app-shell-light .mobile-side-drawer.mobile-side-drawer-labour{background:#fff;border-right-color:#e8e8e8;box-shadow:18px 0 38px #00000014}.app-shell-light .labour-profile-sidebar-head h2{color:var(--accent);text-shadow:none}.app-shell-light .side-nav-profile-card,.app-shell-light .labour-profile-card,.app-shell-light .labour-profile-editor-card,.app-shell-light .labour-profile-logout{background:#ffffffeb;border-color:#e6eee6;box-shadow:inset 0 1px #ffffffe0,0 12px 28px #00000014}.app-shell-light .side-nav-profile-avatar{color:var(--accent);background:#0f9d201a}.app-shell-light .side-nav-profile-copy strong,.app-shell-light .labour-profile-row,.app-shell-light .labour-profile-file-field strong{color:#171d17}.app-shell-light .side-nav-profile-copy button,.app-shell-light .side-nav-profile-copy a{color:var(--accent)}.app-shell-light .labour-profile-row{border-bottom-color:#ececec}.app-shell-light .labour-profile-row:hover,.app-shell-light .labour-profile-row:focus-visible,.app-shell-light .labour-profile-row-active{color:#101510;background:#f5f5f5}.app-shell-light .labour-profile-row-chevron{color:#7b857c}.app-shell-light .labour-profile-info-row:hover .labour-profile-row-chevron,.app-shell-light .labour-profile-row-active .labour-profile-row-chevron{color:var(--accent)}.app-shell-light .labour-profile-file-field{background:#fafafa;border-color:#0f9d2057}.app-shell-light .labour-profile-field>span,.app-shell-light .labour-profile-file-field>span{color:#6e786f}.app-shell-light .job-form-hero{background:#fff;border:1px solid #e6e6e6;box-shadow:0 18px 42px #00000017}.app-shell-light.app-shell-profile .job-form-hero{background:#fff}.app-shell-light .job-form-hero-icon-button{color:var(--accent)}.app-shell-light .job-form-hero-icon-button:hover{color:#0b7f1a}.app-shell-light .job-form-hero-icon-button:focus-visible,.app-shell-light .job-form-back:focus-visible{outline-color:var(--accent)}.app-shell-light .job-form-route-dots{border-top-color:#0f9d2057}.app-shell-light .job-route-pin{color:var(--accent)}.app-shell-light .job-route-node{color:#7d887e;background:#fff;border:1px solid #e3e3e3;box-shadow:0 8px 20px #00000014}.app-shell-light .invoice-list-hero,.app-shell-light .invoice-form-hero,.app-shell-light .invoice-hero,.app-main-light .invoice-list-hero,.app-main-light .invoice-form-hero,.app-main-light .invoice-hero{color:#171d17;background:#fff;border:1px solid #e6e6e6;box-shadow:0 18px 42px #00000017}.app-shell-light .invoice-hero p,.app-shell-light .invoice-hero .eyebrow,.app-main-light .invoice-hero p,.app-main-light .invoice-hero .eyebrow{color:#667168}.app-shell-light .invoice-hero-icon-button,.app-main-light .invoice-hero-icon-button{color:var(--accent)}.app-shell-light .invoice-hero-icon-button:hover,.app-main-light .invoice-hero-icon-button:hover{color:#0b7f1a}.app-shell-light .invoice-hero-icon-button:focus-visible,.app-main-light .invoice-hero-icon-button:focus-visible{outline-color:var(--accent)}.app-shell-light .invoice-hero-search-panel input,.app-main-light .invoice-hero-search-panel input{color:#171d17;background:#fff;border:1px solid #e3e3e3;box-shadow:0 10px 24px #00000014}.app-shell-light .invoice-hero-search-panel input::placeholder,.app-main-light .invoice-hero-search-panel input::placeholder,.app-shell-light .invoice-hero-search-icon,.app-main-light .invoice-hero-search-icon{color:#7b857c}.app-shell-light .invoice-toolbar-search,.app-main-light .invoice-toolbar-search{background:#fffffffa;border-color:#0f9d2061;box-shadow:0 14px 34px #0000001f}.app-shell-light .invoice-toolbar-search input,.app-main-light .invoice-toolbar-search input{color:#111711}.app-shell-light .invoice-toolbar-search input::placeholder,.app-main-light .invoice-toolbar-search input::placeholder{color:#7b857c}.app-main-light{--bg-base:#fff;--bg-elevated:#fff;--bg-overlay:#f5f5f5;--bg-input:#fff;--border:#ececec;--border-strong:#dedede;--text-primary:#111;--text-secondary:#4d4d4d;--text-muted:#828282;--accent-soft:#0f9d201c;--shadow-card:0 14px 34px #00000014;--shadow-pop:0 22px 58px #0000001f;color:var(--text-primary);background:#fff}.app-content{gap:var(--space-4);display:grid}.app-notification-balloon-backdrop{z-index:5200;padding:calc(24px + env(safe-area-inset-top)) 24px calc(24px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#00000061;place-items:center;display:grid;position:fixed;inset:0}.app-notification-balloon{color:#fff;background:#151515;border:1px solid #0f9d2057;border-radius:28px;gap:18px;width:min(430px,100%);padding:24px;display:grid;box-shadow:inset 0 1px #ffffff0f,0 28px 80px #0000006b}.app-notification-balloon-icon{width:54px;height:54px;color:var(--accent);background:#0f9d2024;border-radius:18px;place-items:center;display:inline-grid}.app-notification-balloon-copy{gap:8px;display:grid}.app-notification-balloon-copy h2,.app-notification-balloon-copy p{margin:0}.app-notification-balloon-copy h2{letter-spacing:-.05em;font-size:clamp(26px,5vw,34px);line-height:.95}.app-notification-balloon-copy p:not(.eyebrow){color:#ffffffb8;font-size:15px;line-height:1.45}.app-notification-balloon-actions{grid-template-columns:1fr .72fr;gap:12px;display:grid}.app-notification-balloon-actions .button{text-align:center;justify-content:center;width:100%}.app-shell-light .app-notification-balloon-backdrop{background:#0000003d}.app-shell-light .app-notification-balloon{color:#101510;background:#fff;border-color:#dce8dc;box-shadow:inset 0 1px #ffffffe0,0 28px 80px #0000002e}.app-shell-light .app-notification-balloon-copy p:not(.eyebrow){color:#5e695f}@media (max-width:520px){.app-notification-balloon-backdrop{padding-inline:18px}.app-notification-balloon{border-radius:24px;padding:22px}.app-notification-balloon-actions{grid-template-columns:1fr}}.side-nav{display:none}.side-nav-profile-card{background:#ffffff09;border:1px solid #ffffff12;border-radius:18px;align-items:center;gap:14px;min-width:0;padding:14px;display:flex;box-shadow:inset 0 1px #ffffff0a,0 14px 34px #0000002e}.side-nav-profile-avatar{width:58px;height:58px;color:var(--accent);background:#0f9d201f;border-radius:50%;flex:none;place-items:center;display:grid;overflow:hidden}.side-nav-profile-avatar img{object-fit:cover;width:100%;height:100%}.side-nav-profile-avatar svg{width:34px;height:34px}.side-nav-brand-card{place-items:center;height:100px;padding:0 0 4px;display:grid}.side-nav-brand-logo{object-fit:contain;width:auto;max-width:100%;height:92px;transition:height .22s}.app-shell-nav-collapsed .side-nav-brand-logo{height:34px}.side-nav-profile-copy{gap:7px;min-width:0;display:grid}.side-nav-profile-copy strong{color:#fff;letter-spacing:-.035em;text-overflow:ellipsis;white-space:nowrap;font-size:18px;font-weight:900;line-height:1.1;overflow:hidden}.side-nav-profile-copy a{color:var(--accent);align-items:center;gap:6px;font-size:13px;font-weight:800;text-decoration:none;display:inline-flex}.side-nav-profile-copy a span{font-size:18px;line-height:1}.side-nav-session-loading{gap:var(--space-5);grid-template-rows:auto 1fr;min-height:0;display:grid}.side-nav-profile-card-loading{pointer-events:none}.side-nav-skeleton-avatar,.side-nav-skeleton-copy span,.side-nav-skeleton-row{background:#ffffff13;border-radius:999px;display:block;position:relative;overflow:hidden}.side-nav-skeleton-avatar:after,.side-nav-skeleton-copy span:after,.side-nav-skeleton-row:after{content:"";background:linear-gradient(90deg,#0000,#0f9d2029,#0000);animation:1.25s ease-in-out infinite daly-skeleton-shimmer;position:absolute;inset:0;transform:translate(-100%)}.side-nav-skeleton-avatar{border-radius:50%;flex:none;width:58px;height:58px}.side-nav-skeleton-copy{flex:auto;gap:10px;display:grid}.side-nav-skeleton-copy span:first-child{width:82%;height:18px}.side-nav-skeleton-copy span:last-child{width:52%;height:13px}.side-nav-skeleton-list{align-content:start;gap:10px;display:grid}.side-nav-skeleton-row{border-radius:var(--radius-md);height:42px}@keyframes daly-skeleton-shimmer{to{transform:translate(100%)}}.mobile-nav-toggle{z-index:45;top:calc(16px + env(safe-area-inset-top));color:#0f9d20;width:40px;height:44px;box-shadow:none;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:0;place-items:center;padding:0;line-height:1;display:grid;position:fixed;left:0}.mobile-nav-toggle svg{stroke-width:3px;width:30px;height:30px}.mobile-nav-toggle:focus-visible,.mobile-nav-close:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.labour-profile-sidebar{gap:var(--space-4);height:100%;min-height:0;padding-bottom:var(--space-2);grid-template-rows:auto auto minmax(0,1fr) auto auto;align-content:stretch;display:grid;overflow:hidden}.labour-profile-sidebar:has(.labour-profile-editor-form){grid-template-rows:auto minmax(0,1fr)}.labour-profile-sidebar-mobile{height:100%;min-height:0;padding-right:2px}.labour-profile-sidebar-head{justify-content:space-between;align-items:center;min-height:46px;display:flex;position:relative}.labour-profile-sidebar-head h2{color:var(--accent);letter-spacing:-.07em;margin:0;font-size:clamp(36px,12vw,48px);font-weight:900;line-height:.95}.labour-profile-close{width:42px;height:42px;color:var(--accent);background:#ffffff0f;border-radius:11px;font-size:34px;font-weight:300;position:static}.labour-profile-card{background:#ffffff09;border:1px solid #ffffff0f;border-radius:18px;overflow:hidden;box-shadow:inset 0 1px #ffffff0a,0 16px 36px #0003}.labour-profile-info-list,.labour-profile-menu-list{display:grid}.labour-profile-info-list{overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;min-height:0;overflow:hidden auto}.labour-profile-menu-list,.labour-profile-logout{flex:none}.labour-profile-menu-list{margin-top:var(--space-1)}.labour-profile-row{color:#f7f7f7;border:0;border-bottom:1px solid #ffffff0e;grid-template-columns:34px minmax(0,1fr) 20px;align-items:center;gap:12px;min-height:56px;padding:0 18px;font-size:16px;font-weight:700;text-decoration:none;transition:background .13s,color .13s;display:grid}.labour-profile-row:last-child{border-bottom:0}.labour-profile-row:hover,.labour-profile-row:focus-visible,.labour-profile-row-active{color:#fff;background:#0f9d201f}.labour-profile-row-icon{width:30px;height:30px;color:var(--accent);place-items:center;display:grid}.labour-profile-row-icon svg,.labour-profile-menu-row>svg{stroke:currentColor;stroke-width:1.85px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.labour-profile-menu-row>svg{color:var(--accent)}.labour-profile-row span{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:15px;font-weight:650;line-height:1.15;overflow:hidden}.labour-profile-info-row>span,.labour-profile-menu-row>span,.labour-profile-theme-row>span{letter-spacing:-.01em;font-size:15px;font-weight:650}.labour-profile-row-chevron{color:#ffffff94;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.labour-profile-info-row:hover .labour-profile-row-chevron,.labour-profile-row-active .labour-profile-row-chevron{color:var(--accent)}.labour-profile-logout{background:#ffffff06;border-top:0;margin:0}.side-nav-profile-copy button{width:fit-content;color:var(--accent);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:13px;font-weight:800;display:inline-flex}.side-nav-profile-copy button span{font-size:18px;line-height:1}button.labour-profile-row{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0}.labour-profile-editor-back{width:36px;height:36px;color:var(--accent);cursor:pointer;background:#ffffff0f;border:0;border-radius:10px;place-items:center;display:grid}.labour-profile-editor-back svg{stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.labour-profile-sidebar-head:has(.labour-profile-editor-back){gap:var(--space-2);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.labour-profile-sidebar-head:has(.labour-profile-editor-back) h2{text-overflow:ellipsis;white-space:nowrap;align-self:center;overflow:hidden}.labour-profile-editor-form{gap:var(--space-4);flex-direction:column;min-height:0;display:flex;overflow:hidden}.labour-profile-editor-card{align-content:start;align-items:start;gap:var(--space-3);overscroll-behavior:contain;min-height:0;max-height:min(58dvh,520px);padding:var(--space-4);color:var(--text-primary);touch-action:pan-y;-webkit-overflow-scrolling:touch;background:#ffffff09;border:1px solid #ffffff0f;border-radius:18px;flex:0 auto;display:grid;overflow:hidden auto}.labour-profile-editor-card-loading{align-content:center;place-items:center;min-height:180px;overflow:hidden}.labour-profile-editor-card-loading .daly-loading-donut{border-width:3px;width:34px;height:34px}.labour-profile-editor-actions,.labour-profile-message{flex:none}.labour-profile-editor-actions{margin-top:auto}.labour-profile-field{align-self:start;gap:var(--space-2);width:100%;display:grid}.labour-profile-field .profile-input{height:56px;min-height:56px}.labour-profile-field>span,.labour-profile-file-field>span{color:#ffffff9e;letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:800}.labour-profile-file-field{border-radius:var(--radius-md);padding:var(--space-3);cursor:pointer;background:#ffffff09;border:1px solid #0f9d2080;position:relative;overflow:hidden}.labour-profile-file-field strong{color:#fff;font-size:14px;font-weight:800}.labour-profile-file-field input{opacity:0;cursor:pointer;position:absolute;inset:0}.labour-profile-photo-edit{gap:var(--space-4);justify-items:start;display:grid}.labour-profile-photo-edit .side-nav-profile-avatar{width:88px;height:88px}.labour-profile-check{margin:0}.labour-profile-message{border-radius:var(--radius-md);padding:var(--space-3);font-size:13px;font-weight:800}.labour-profile-message-success{color:#9affaa;background:#0f9d2029}.labour-profile-message-error{color:#ffb4b4;background:#ff4a4a29}.labour-profile-message-hint{color:#fff;background:#0f9d20eb}.labour-profile-editor-actions{justify-content:stretch;display:flex}.labour-profile-editor-actions .profile-save-button{width:100%}.mobile-nav-backdrop{z-index:50;opacity:0;pointer-events:none;background:#000000ad;border:0;transition:opacity .16s;position:fixed;inset:0}.mobile-nav-backdrop-open{opacity:1;pointer-events:auto}.mobile-side-drawer{z-index:60;gap:var(--space-4);border-right:1px solid var(--border);background:var(--bg-base);width:min(70vw,256px);padding:calc(var(--space-4) + env(safe-area-inset-top)) var(--space-3) calc(var(--space-4) + env(safe-area-inset-bottom));grid-template-rows:auto 1fr auto;transition:transform .18s;display:grid;position:fixed;top:0;bottom:0;left:0;overflow:hidden;transform:translate(-106%);box-shadow:24px 0 48px #0000006b}.mobile-side-drawer-open{transform:translate(0)}.mobile-side-drawer.mobile-side-drawer-labour{height:100dvh;max-height:100dvh;padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom));display:block;overflow:hidden}.mobile-side-drawer.mobile-side-drawer-labour .labour-profile-sidebar-mobile{height:100%;min-height:0;padding-bottom:0;overflow:hidden}.mobile-side-drawer.mobile-side-drawer-labour .labour-profile-editor-card{max-height:min(50dvh,430px);padding:var(--space-3)}.mobile-side-drawer.mobile-side-drawer-labour .labour-profile-field .profile-input{height:52px;min-height:52px;padding-inline:var(--space-3);border-radius:14px;font-size:15px}.mobile-side-drawer.mobile-side-drawer-labour .labour-profile-row{font-size:13px;font-weight:600}.mobile-side-drawer.mobile-side-drawer-labour .labour-profile-info-row>span,.mobile-side-drawer.mobile-side-drawer-labour .labour-profile-menu-row>span,.mobile-side-drawer.mobile-side-drawer-labour .labour-profile-theme-row>span{letter-spacing:-.005em;font-size:13px;font-weight:600}.mobile-side-nav-header{justify-content:space-between;align-items:flex-start;gap:var(--space-2);padding:0 0 var(--space-2);display:flex;position:relative}.mobile-side-nav-header .side-nav-profile-card{flex:auto;padding-right:42px}.mobile-nav-close{color:#ffffffb8;width:30px;height:30px;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;font-size:24px;line-height:1;display:grid;position:absolute;top:10px;right:10px}.mobile-side-drawer .side-nav-brand{align-items:center;gap:var(--space-3);min-width:0;display:flex}.mobile-side-drawer .side-nav-brand-mark{border-radius:var(--radius-md);flex:none;width:36px;height:36px;font-size:18px}.mobile-side-drawer .side-nav-brand-text{gap:2px;min-width:0;display:grid}.mobile-side-drawer .side-nav-wordmark{color:var(--text-primary);letter-spacing:-.02em;font-size:16px;font-weight:700}.mobile-side-drawer .side-nav-role{color:var(--text-muted);font-size:11px;font-weight:500}.mobile-side-drawer .side-nav-list{align-content:start;gap:var(--space-4);padding:0 var(--space-1) var(--space-2);margin:0;display:grid;overflow-y:auto}.mobile-side-drawer .side-nav-group{gap:4px;display:grid}.mobile-side-drawer .side-nav-group ul{gap:2px;margin:0;padding:0;list-style:none;display:grid}.mobile-side-drawer .side-nav-group-label{padding:0 var(--space-3);color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;margin:0 0 4px;font-size:10px;font-weight:600}.mobile-side-drawer .side-nav-link{align-items:center;gap:var(--space-3);border-radius:var(--radius-md);color:var(--text-secondary);padding:var(--space-3);font-size:14px;font-weight:600;text-decoration:none;transition:background .12s,color .12s;display:flex}.mobile-side-drawer .side-nav-link:active{background:var(--bg-overlay);color:var(--text-primary)}.mobile-side-drawer .side-nav-link-active{background:var(--accent-soft);color:var(--accent)}.mobile-side-drawer .side-nav-notification-badge{background:var(--accent);color:#fff;border-radius:999px;flex:none;justify-content:center;align-items:center;min-width:18px;height:18px;margin-left:auto;padding:0 5px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.mobile-side-drawer .side-nav-overdue-badge{background:var(--danger);color:#fff}.mobile-side-drawer .side-nav-logout{align-items:center;gap:var(--space-3);width:calc(100% - (var(--space-1) * 2));border:0;border-top:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);margin:0 var(--space-1);padding:var(--space-3);cursor:pointer;background:0 0;font-size:14px;font-weight:600;text-decoration:none;display:flex}.side-nav-theme-toggle{align-items:center;gap:var(--space-3);width:calc(100% - (var(--space-1) * 2));border-radius:var(--radius-md);color:var(--text-secondary);margin:var(--space-3) var(--space-1) 0;padding:var(--space-3);font:inherit;text-align:left;cursor:pointer;background:#ffffff06;border:1px solid #ffffff0f;font-size:14px;font-weight:700;display:flex}.side-nav-theme-toggle svg,.labour-profile-theme-row>svg{width:20px;height:20px;color:var(--accent);stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round}.side-nav-theme-toggle:hover,.side-nav-theme-toggle:focus-visible,.labour-profile-theme-row:hover,.labour-profile-theme-row:focus-visible{color:#fff;background:#0f9d201f}@media (min-width:1024px){.app-shell{--side-nav-width:212px;grid-template-columns:var(--side-nav-width) 1fr;background:var(--bg-base);align-items:start;transition:grid-template-columns .22s;display:grid}.side-nav{border-right:1px solid var(--border);background:var(--bg-base);height:100dvh;padding:var(--space-2) var(--space-3) var(--space-5);grid-template-rows:auto 1fr auto;display:grid;position:sticky;top:0}.side-nav-labour{grid-template-rows:1fr}.side-nav-labour .labour-profile-sidebar{height:calc(100dvh - (var(--space-5) * 2))}.side-nav-labour .side-nav-profile-card{margin:0}.side-nav-labour .labour-profile-sidebar-head h2{font-size:38px}.side-nav-labour .labour-profile-sidebar-head:has(.labour-profile-editor-back) h2{letter-spacing:-.055em;font-size:30px}.side-nav-labour .labour-profile-editor-back{border-radius:9px;width:32px;height:32px}.side-nav-labour .labour-profile-editor-back svg{width:20px;height:20px}.side-nav-labour .labour-profile-editor-form{gap:var(--space-3)}.side-nav-labour .labour-profile-editor-card{max-height:min(42dvh,360px);padding:var(--space-3);border-radius:16px}.side-nav-labour .labour-profile-field{gap:8px}.side-nav-labour .labour-profile-field .profile-input{border-radius:12px;height:46px;min-height:46px;padding-inline:12px;font-size:13px}.side-nav-labour .labour-profile-editor-actions{margin-top:0}.side-nav-labour .labour-profile-editor-actions .profile-save-button{min-height:46px;padding:12px 16px;font-size:14px}.side-nav-labour .labour-profile-row{min-height:48px;padding:0 14px;font-size:14px}.side-nav-labour .labour-profile-info-row>span,.side-nav-labour .labour-profile-menu-row>span,.side-nav-labour .labour-profile-theme-row>span{font-size:14px;font-weight:600}.side-nav-profile-card{margin:0 0 var(--space-5)}.side-nav-brand{display:none}.side-nav-brand-mark{border-radius:var(--radius-md);flex:none;width:36px;height:36px;font-size:18px}.side-nav-brand-text{gap:2px;min-width:0;display:grid}.side-nav-wordmark{color:var(--text-primary);letter-spacing:-.02em;font-size:16px;font-weight:700}.side-nav-role{color:var(--text-muted);font-size:11px;font-weight:500}.side-nav-list{gap:var(--space-4);margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.side-nav-group{gap:4px;display:grid}.side-nav-group ul{gap:2px;margin:0;padding:0;list-style:none;display:grid}.side-nav-group-label{padding:0 var(--space-3);color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;margin:0 0 4px;font-size:10px;font-weight:600}.side-nav-link{align-items:center;gap:var(--space-3);border-radius:var(--radius-md);color:var(--text-secondary);padding:var(--space-2) var(--space-3);font-size:13px;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:flex}.side-nav-link:hover{background:var(--bg-overlay);color:var(--text-primary)}.side-nav-link-active,.side-nav-link-active:hover{background:var(--accent-soft);color:var(--accent)}.side-nav-notification-badge{background:var(--accent);color:#fff;border-radius:999px;flex:none;justify-content:center;align-items:center;min-width:18px;height:18px;margin-left:auto;padding:0 5px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.side-nav-overdue-badge{background:var(--danger);color:#fff}.side-nav-logout{align-items:center;gap:var(--space-3);border:0;border-top:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--text-secondary);padding:var(--space-3);margin-top:var(--space-4);cursor:pointer;background:0 0;font-size:13px;font-weight:500;text-decoration:none;display:flex}.side-nav-logout:hover{color:var(--text-primary)}.side-nav-theme-toggle{width:100%;margin:var(--space-4) 0 0;padding:var(--space-3);font-size:13px;font-weight:600}.app-main{width:100%;max-width:min(100%, var(--content-max));height:100dvh;padding:var(--space-6) var(--space-6) var(--space-7);margin:0 auto;overflow-y:auto}.timesheet-accordion-list,.timesheet-kanban-board,.invoice-list-grid,.timesheet-list-grid{gap:var(--space-2)}.invoice-row-card,.timesheet-row-card{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md)}.invoice-row-card h3,.timesheet-row-card h3{font-size:15px}.mobile-nav-toggle,.mobile-nav-backdrop,.mobile-side-drawer{display:none}}@media (min-width:1280px){.app-shell{--side-nav-width:224px}.app-main{max-width:min(100%, var(--content-wide));padding:40px 48px 64px}.app-content{gap:var(--card-gap)}.side-nav{padding:var(--space-2) var(--space-4) var(--space-6)}.side-nav-link{min-height:42px;padding:var(--space-3) var(--space-4)}}.daly-loading-state{width:100%;min-height:min(420px,100dvh - 220px);padding:var(--space-6);place-items:center;display:grid}.daly-loading-donut{border:4px solid #0f9d2029;border-top-color:var(--accent);border-right-color:var(--accent);filter:drop-shadow(0 8px 18px #0f9d2033);border-radius:999px;width:clamp(42px,10vw,58px);height:clamp(42px,10vw,58px);animation:.78s linear infinite daly-donut-spin}.inline-state-loading{min-height:72px;padding:var(--space-3);background:0 0;border-color:#0000;place-items:center;display:grid}.inline-state-loading p{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.inline-state-loading .state-signal{border:3px solid #0f9d2029;border-top-color:var(--accent);border-right-color:var(--accent);background:0 0;width:28px;height:28px;animation:.78s linear infinite daly-donut-spin}@keyframes daly-donut-spin{to{transform:rotate(360deg)}}.route-panel,.state-panel{gap:var(--space-3);padding:var(--space-5);display:grid}.route-panel h2,.state-panel h2{margin:0;font-size:22px;font-weight:600}.route-panel p,.state-panel p{max-width:620px;color:var(--text-secondary);line-height:1.55}.route-secondary{border-left:3px solid var(--accent);padding-left:var(--space-3);color:var(--text-secondary);font-size:13px}.state-panel .button{justify-self:start}.state-panel-compact{padding:var(--space-4)}.state-panel-compact h2{font-size:16px}.state-signal{border-radius:var(--radius-pill);background:var(--accent);width:10px;height:10px;display:block}.state-panel-loading .state-signal,.inline-state-loading .state-signal{animation:1.1s ease-in-out infinite alternate pulse-signal}.state-panel-error .state-signal,.inline-state-error .state-signal{background:var(--danger)}.state-panel-forbidden .state-signal,.inline-state-forbidden .state-signal{background:var(--warning)}.state-panel-offline .state-signal,.inline-state-offline .state-signal{background:var(--info)}.inline-state{align-items:flex-start;gap:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text-secondary);padding:var(--space-3) var(--space-4);font-size:13px;display:flex}.inline-state p{margin:0;line-height:1.45}.inline-state strong{color:var(--text-primary)}.inline-state-success{border-color:var(--accent-border);background:var(--accent-soft)}.inline-state-error{background:var(--danger-soft);border-color:#ff5e6352}.inline-state-forbidden{background:var(--warning-soft);border-color:#f5c54252}@keyframes pulse-signal{0%{opacity:.5;transform:scale(.86)}to{opacity:1;transform:scale(1)}}.side-nav-collapse-toggle,.app-top-bar{z-index:60;top:0;right:0;left:var(--side-nav-width,268px);border-bottom:1px solid var(--border);background:var(--bg-base);justify-content:space-between;align-items:center;gap:18px;height:52px;padding:0 20px 0 34px;transition:left .22s;position:fixed}.app-top-bar-actions{align-items:center;gap:12px;display:flex}.app-top-bar-bell-wrap{position:relative}.app-top-bar-bell{cursor:pointer;width:34px;height:34px;color:var(--text-secondary);background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.app-top-bar-bell:hover,.app-top-bar-bell:focus-visible{background:var(--bg-overlay);color:var(--text-primary);outline:none}.app-top-bar-bell-badge{background:var(--accent);color:#fff;border-radius:999px;place-items:center;min-width:15px;height:15px;padding:0 4px;font-size:9px;font-weight:700;display:grid;position:absolute;top:2px;right:1px}.app-top-bar-bell-backdrop{z-index:80;cursor:default;background:0 0;border:0;position:fixed;inset:0}.app-top-bar-notif-panel{z-index:90;border:1px solid var(--border);background:var(--bg-elevated);width:min(380px,92vw);max-height:430px;box-shadow:var(--shadow-pop);border-radius:16px;grid-template-rows:auto minmax(0,1fr);display:grid;position:absolute;top:calc(100% + 10px);right:0;overflow:hidden}.app-top-bar-notif-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.app-top-bar-notif-head strong{color:var(--text-primary);font-size:13.5px;font-weight:600}.app-top-bar-notif-head a{color:var(--accent);font-size:12px;font-weight:600;text-decoration:none}.app-top-bar-notif-head a:hover,.app-top-bar-notif-head a:focus-visible{outline:none;text-decoration:underline}.app-top-bar-notif-list{align-content:start;padding:6px;display:grid;overflow-y:auto}.app-top-bar-notif-row{cursor:pointer;font:inherit;text-align:left;color:inherit;background:0 0;border:0;border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 8px;display:grid}.app-top-bar-notif-row:hover,.app-top-bar-notif-row:focus-visible{background:var(--bg-overlay);outline:none}.app-top-bar-notif-dot{background:0 0;border-radius:50%;width:7px;height:7px}.app-top-bar-notif-row-unread .app-top-bar-notif-dot{background:var(--accent)}.app-top-bar-notif-copy{gap:1px;min-width:0;display:grid}.app-top-bar-notif-copy strong{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:600;overflow:hidden}.app-top-bar-notif-copy span{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.app-top-bar-notif-time{color:var(--text-muted);white-space:nowrap;font-size:10.5px;font-weight:500}.app-top-bar-notif-empty{color:var(--text-muted);text-align:center;margin:0;padding:16px 12px;font-size:12.5px}.app-top-bar-search{border:1px solid var(--border);background:var(--bg-elevated);max-width:300px;height:34px;color:var(--text-muted);border-radius:12px;flex:1;align-items:center;gap:9px;padding:0 14px;transition:border-color .14s;display:flex}.app-top-bar-search:focus-within{border-color:var(--accent-border)}.app-top-bar-search svg{flex:none;width:14px;height:14px}.app-top-bar-search input{min-width:0;color:var(--text-primary);background:0 0;border:0;outline:0;flex:1;font-family:inherit;font-size:13px}.app-top-bar-search input::placeholder{color:var(--text-muted)}.app-top-bar-search input::-webkit-search-cancel-button{display:none}.app-top-bar-theme-switch{border:1px solid var(--border);background:var(--bg-elevated);border-radius:12px;flex:none;gap:2px;padding:3px;display:inline-flex}.app-top-bar-theme-option{width:30px;height:26px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:9px;justify-content:center;align-items:center;padding:0;transition:background .14s,color .14s;display:inline-flex}.app-top-bar-theme-option:hover{color:var(--text-primary)}.app-top-bar-theme-option-active{background:var(--accent-soft);color:var(--accent)}.app-top-bar-theme-option-active:hover{color:var(--accent)}.app-top-bar-theme-option:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-top-bar-theme-option svg{stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;fill:none;width:14px;height:14px}.app-top-bar-divider{background:var(--border);flex:none;width:1px;height:22px}.app-top-bar-user{align-items:center;gap:9px;min-width:0;display:flex}a.app-top-bar-user{color:inherit;border-radius:999px;margin:-4px -8px -4px 0;padding:4px 8px;text-decoration:none}a.app-top-bar-user:hover,a.app-top-bar-user:focus-visible{background:var(--bg-overlay);outline:none}.app-top-bar-avatar{border-radius:var(--radius-pill);background:var(--accent-soft);width:30px;height:30px;color:var(--accent);flex:none;place-items:center;display:grid;overflow:hidden}.app-top-bar-avatar img{object-fit:cover;width:100%;height:100%}.app-top-bar-avatar svg{width:15px;height:15px}.app-top-bar-user-copy{flex-direction:column;min-width:0;line-height:1.15;display:flex}.app-top-bar-user-copy strong{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:650;overflow:hidden}.app-top-bar-user-copy span{color:var(--text-muted);font-size:11px;font-weight:550}.app-top-bar,.side-nav-collapse-toggle{display:none}@media (min-width:1100px){.app-shell.app-shell-nav-collapsed{--side-nav-width:76px}.app-shell-nav-collapsed .side-nav{padding:var(--space-2) 12px var(--space-5)}.app-shell-nav-collapsed .side-nav-profile-card{box-shadow:none;background:0 0;border:0;justify-content:center;gap:0;padding:8px}.app-shell-nav-collapsed .side-nav-profile-avatar{width:40px;height:40px}.app-shell-nav-collapsed .side-nav-group+.side-nav-group{border-top:1px solid var(--border)}.app-shell-nav-collapsed .side-nav-group-label{visibility:hidden;white-space:nowrap;width:0;height:13px;padding:0;overflow:hidden}.app-shell-nav-collapsed .side-nav-link>span:not(.side-nav-notification-badge),.app-shell-nav-collapsed .side-nav-theme-toggle span,.app-shell-nav-collapsed .side-nav-logout span{display:none}.app-shell-nav-collapsed .side-nav-link,.app-shell-nav-collapsed .side-nav-theme-toggle,.app-shell-nav-collapsed .side-nav-logout{justify-content:center;padding-left:0;padding-right:0}.app-shell-nav-collapsed .side-nav-link{position:relative}.app-shell-nav-collapsed .side-nav-link .side-nav-notification-badge{margin-left:0;position:absolute;top:4px;right:8px}.side-nav-collapse-toggle{z-index:70;top:15px;left:calc(var(--side-nav-width,268px) - 15px);border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-elevated);width:30px;height:30px;color:var(--text-secondary);cursor:pointer;justify-content:center;align-items:center;padding:0;transition:left .22s;display:inline-flex;position:fixed;box-shadow:0 1px 3px #0000001f}.side-nav-collapse-toggle:hover{background:var(--bg-overlay);color:var(--text-primary)}.side-nav-collapse-toggle svg{transition:transform .16s}.app-shell-nav-collapsed .side-nav-collapse-toggle{left:61px}.app-shell-nav-collapsed .side-nav-collapse-toggle svg{transform:rotate(180deg)}.app-top-bar{display:flex}.app-shell .app-main{padding-top:calc(var(--space-6) + 52px)}}.app-top-bar-nav-toggle{display:none}@media (max-width:1099px){.app-top-bar{height:calc(56px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 12px 0 8px;gap:10px;display:flex;left:0}.app-main{padding-top:calc(56px + env(safe-area-inset-top) + var(--space-4))}.app-top-bar-search{display:none}.app-top-bar-actions{margin-left:auto}.app-top-bar-nav-toggle{width:38px;height:38px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.app-top-bar-nav-toggle svg{width:20px;height:20px}.app-top-bar-nav-toggle:hover,.app-top-bar-nav-toggle:focus-visible{background:var(--bg-overlay);color:var(--text-primary);outline:none}.app-top-bar-actions{flex:none;gap:8px}.app-top-bar-actions .app-top-bar-user{min-width:0;margin:-4px 0;padding:4px}.app-top-bar-user-copy{display:none}.app-top-bar-notif-panel{top:calc(64px + env(safe-area-inset-top));width:auto;position:fixed;left:12px;right:12px}.mobile-nav-toggle{display:none}}@media (min-width:1440px){.app-shell .app-main{padding-top:92px}}@media (prefers-reduced-motion:reduce){.side-nav-collapse-toggle,.side-nav-collapse-toggle svg,.app-top-bar{transition:none}}.labour-tab-bar{display:none}.labour-tab{width:42px;height:38px;color:var(--text-muted);border-radius:999px;place-items:center;text-decoration:none;transition:transform .14s,background .14s,color .14s;display:grid}.labour-tab:active{transform:scale(.86)}.labour-tab-active{background:var(--bg-overlay);color:var(--text-primary)}.labour-tab-profile img{object-fit:cover;border-radius:999px;width:26px;height:26px;display:block}.labour-tab-profile.labour-tab-active img{box-shadow:0 0 0 2px var(--text-primary)}@media (max-width:1099px){.app-shell--labour-tabs .labour-tab-bar{left:50%;bottom:calc(14px + env(safe-area-inset-bottom));z-index:70;border:1px solid var(--border);background:color-mix(in srgb, var(--bg-elevated) 82%, transparent);-webkit-backdrop-filter:blur(18px)saturate(1.5);backdrop-filter:blur(18px)saturate(1.5);border-radius:999px;align-items:center;gap:3px;padding:5px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 14px 34px #0006,0 2px 8px #00000040}.app-shell--labour-tabs .app-top-bar-nav-toggle,.app-shell--labour-tabs .mobile-nav-toggle,.app-shell--labour-tabs .mobile-side-drawer,.app-shell--labour-tabs .mobile-nav-backdrop{display:none!important}.app-shell--labour-tabs .app-main{padding-bottom:calc(82px + env(safe-area-inset-bottom))}}
.calendar-screen{gap:var(--space-4);padding:12px;display:grid}.calendar-header{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.calendar-header h2{letter-spacing:-.04em;margin:0;font-size:clamp(38px,11vw,56px);font-weight:800;line-height:1}.calendar-title-wrap{min-width:0;position:relative}.calendar-month-button{color:inherit;cursor:pointer;font:inherit;letter-spacing:inherit;line-height:inherit;text-align:left;background:0 0;border:0;padding:0}.calendar-month-button:hover,.calendar-month-button:focus-visible{color:var(--accent);outline:none}.calendar-month-menu{z-index:12;border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:min(260px,100vw - 32px);box-shadow:var(--shadow-pop);background:radial-gradient(circle at 18% 0,#0f9d2024,#0000 38%),#111111fa;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:8px;display:grid;position:absolute;top:calc(100% + 10px);left:0}.calendar-month-option{border-radius:var(--radius-sm);min-height:34px;color:var(--text-secondary);cursor:pointer;font:inherit;text-align:center;background:0 0;border:0;font-size:13px;font-weight:600}.calendar-month-option:hover,.calendar-month-option:focus-visible,.calendar-month-option[aria-selected=true]{background:var(--accent);color:#001b06;outline:none}.calendar-actions{align-items:center;gap:var(--space-2);display:flex;position:relative}.calendar-icon-button{border-radius:var(--radius-md);width:40px;height:40px;color:var(--text-primary);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;transition:background .12s,color .12s;display:inline-flex}.calendar-icon-button:hover{background:var(--bg-elevated)}.calendar-icon-button-accent{color:var(--accent)}.calendar-icon-button-accent:hover{color:var(--accent);background:var(--bg-elevated)}.calendar-search-toggle-hidden{opacity:0;pointer-events:none;transform:scale(.86)}.calendar-inline-search{z-index:5;border-radius:var(--radius-pill);opacity:0;pointer-events:none;transform-origin:100%;background:#111111f5;border:1px solid #0f9d206b;grid-template-columns:38px minmax(0,1fr) 38px;align-items:center;gap:4px;width:min(320px,72vw);padding:4px;transition:opacity .16s,transform .18s cubic-bezier(.2,.9,.2,1);display:grid;position:absolute;top:50%;right:0;transform:translateY(-50%)scaleX(.72);box-shadow:0 14px 34px #00000042}.calendar-inline-search-open{opacity:1;pointer-events:auto;transform:translateY(-50%)scaleX(1)}.calendar-inline-search input{width:100%;min-width:0;height:38px;color:var(--text-primary);font:inherit;background:0 0;border:0;outline:0;padding:0 4px;font-size:16px}.calendar-inline-search input::placeholder{color:var(--text-muted)}.calendar-inline-search-submit,.calendar-inline-search-close{border-radius:var(--radius-pill);width:38px;height:38px;color:var(--accent);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s,transform .12s;display:inline-flex}.calendar-inline-search-submit:hover,.calendar-inline-search-submit:focus-visible,.calendar-inline-search-close:hover,.calendar-inline-search-close:focus-visible{background:var(--accent-soft);color:var(--accent)}.calendar-inline-search-submit:active,.calendar-inline-search-close:active{transform:scale(.94)}.calendar-inline-search-submit svg,.calendar-inline-search-close svg{stroke:currentColor;width:20px;height:20px}.calendar-toolbar{gap:var(--space-1);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);padding:var(--space-1);grid-template-columns:repeat(3,1fr);display:grid}.view-pill{border-radius:var(--radius-sm);min-height:36px;color:var(--text-secondary);cursor:pointer;text-align:center;text-transform:capitalize;background:0 0;border:0;justify-content:center;align-items:center;font-size:13px;font-weight:600;line-height:1;display:inline-flex}.view-pill:hover{color:var(--text-primary)}.view-pill-active{background:var(--accent);color:#001b06}.view-pill-active:hover{color:#001b06}.weekday-pill{gap:var(--space-1);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-secondary);letter-spacing:.04em;text-align:center;padding:var(--space-2) 0;text-transform:capitalize;background:#ffffff0a;grid-template-columns:repeat(7,1fr);font-size:11px;font-weight:600;display:grid}.calendar-grid{gap:var(--space-1);display:grid}.calendar-grid-month{grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-grid-week,.calendar-grid-day{grid-template-columns:1fr}.calendar-day{min-height:112px;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:0;border-bottom:1px solid #ffffff0f;border-radius:0;grid-template-rows:34px minmax(0,1fr);align-content:start;align-items:start;gap:6px;padding:10px 12px;transition:background .12s;display:grid}.calendar-day:hover{background:#ffffff08}.calendar-grid-week .calendar-day,.calendar-grid-day .calendar-day{min-height:120px}.calendar-day-current .day-number{border-radius:var(--radius-pill);width:30px;height:30px;color:var(--accent);background:0 0;place-items:center;font-weight:800;display:inline-grid}.calendar-day-current.calendar-day-selected .day-number{background:var(--accent);color:#001b06;box-shadow:none}.calendar-day-current:not(.calendar-day-selected) .day-number{color:var(--accent);box-shadow:none;background:0 0}.calendar-day-selected.calendar-day-muted{opacity:1}.calendar-day-selected:not(.calendar-day-current) .day-number{border-radius:var(--radius-pill);color:#101510;background:#fff;place-items:center;width:30px;height:30px;font-weight:800;display:inline-grid;box-shadow:0 8px 20px #0003}.calendar-day-muted{opacity:.4}.day-number{place-self:start;place-items:center;width:30px;height:30px;font-size:18px;font-weight:700;line-height:1;display:inline-grid}.day-topline{justify-self:start;align-items:center;gap:6px;min-width:0;display:inline-flex}.calendar-day-overdue-badge{background:var(--danger);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:800;line-height:1;display:inline-flex;box-shadow:0 6px 14px #d7192038}.day-name{display:none}.day-jobs{align-self:start;justify-items:start;gap:4px;width:100%;display:grid}.job-chip{border-radius:var(--radius-pill);text-overflow:ellipsis;white-space:nowrap;background:var(--event-soft);max-width:100%;color:var(--event);align-items:center;gap:3px;padding:2px 6px;font-size:9px;font-weight:500;line-height:1.1;display:inline-flex;overflow:hidden}.job-chip:before{content:"";border-radius:var(--radius-pill);background:var(--event);flex:none;width:4px;height:4px;display:inline-block}.job-chip-confirmed,.status-dot-confirmed{background:var(--event-soft);color:var(--event)}.job-chip-cancelled,.status-dot-cancelled{background:var(--danger-soft);color:#ffb0b3}.job-chip-draft,.status-dot-draft{background:var(--warning-soft);color:var(--warning)}.job-chip-missing-labour,.job-chip-confirmed.job-chip-missing-labour,.job-chip-draft.job-chip-missing-labour{color:#facc15;background:#f5b7002e}.job-chip-missing-labour:before{background:#facc15}.job-chip-completed,.status-dot-completed{color:var(--text-secondary);background:#ffffff0f}.calendar-detail{gap:var(--space-3);padding:var(--space-4);display:grid}.calendar-detail h3{margin:0;font-size:18px}.calendar-detail-filters{grid-template-columns:1fr 1fr;gap:10px;display:grid}.calendar-detail-filter{gap:4px;min-width:0;display:grid}.calendar-detail-filter>span{color:var(--text-muted);font-size:11px;font-weight:600}.calendar-detail-filter select{border:1px solid var(--border);background:var(--bg-elevated);min-width:0;min-height:36px;color:var(--text-primary);font:inherit;cursor:pointer;border-radius:10px;padding:0 10px;font-size:13px}@media (max-width:1099px){.calendar-detail-filters{display:none}}.calendar-job-list{gap:var(--card-gap);display:grid}.calendar-job-list-summary{align-items:start}.calendar-detail .calendar-labour-summary-card{width:100%;height:auto;min-height:0}.calendar-detail .calendar-labour-summary-card.jobs-kanban-card.job-summary-card{color:#f5fff6;background:linear-gradient(#121313fa,#0a0a0afc);border:1px solid #92ff9e1f;box-shadow:0 22px 52px #00000057,inset 0 1px #ffffff09}.calendar-detail .calendar-labour-summary-card .jobs-card-title-row h3{color:#fff}.calendar-detail .calendar-labour-summary-card .job-summary-row strong,.calendar-detail .calendar-labour-summary-card .job-summary-row p,.calendar-detail .calendar-labour-summary-card .job-summary-row li,.calendar-detail .calendar-labour-summary-card .job-summary-row .job-summary-link,.calendar-detail .calendar-labour-summary-card .job-summary-row .job-summary-link:visited{color:var(--text-secondary)}.calendar-detail .calendar-labour-summary-card .job-summary-icon{color:#10b72a;filter:drop-shadow(0 0 10px #0f9d2029)}.calendar-detail .calendar-labour-summary-card .jobs-job-status{color:#e8ffec;background:linear-gradient(#2579316b,#10471d73);border:1px solid #5bff6f33}.calendar-detail .calendar-labour-summary-card .jobs-job-status-cancelled{color:#fecaca;background:#7f1d1d73;border-color:#f8717133}.calendar-detail .calendar-labour-summary-card .jobs-job-status-draft{color:#fde68a;background:#713f126b;border-color:#fbbf2438}.calendar-detail .calendar-labour-summary-card .jobs-job-status-completed{color:#bfdbfe;background:#1e40af57;border-color:#93c5fd33}.calendar-overdue-modal-backdrop{z-index:80;background:#00000094;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.calendar-overdue-modal{border:2px solid var(--danger);color:#101510;text-align:center;background:#fff;border-radius:22px;gap:18px;width:min(420px,100vw - 40px);padding:28px 26px 26px;display:grid;position:relative;box-shadow:0 24px 80px #00000047}.calendar-overdue-modal:after{content:"";border-right:2px solid var(--danger);border-bottom:2px solid var(--danger);background:#fff;width:20px;height:20px;position:absolute;bottom:-11px;right:44px;transform:rotate(45deg)}.calendar-overdue-modal p{color:#101510;letter-spacing:0;margin:0;font-size:24px;font-weight:700;line-height:1.2}.calendar-overdue-modal-action,.calendar-overdue-modal-action:visited{border-radius:var(--radius-pill);background:var(--danger);color:#fff;letter-spacing:0;text-transform:none;justify-content:center;align-items:center;min-height:48px;padding:0 22px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.calendar-overdue-modal-action:hover,.calendar-overdue-modal-action:focus-visible{color:#fff;background:#b91c1c;outline:none}.calendar-detail .state-panel .button-primary{color:#fff}.calendar-job-card{background:var(--bg-elevated);color:var(--text-primary);cursor:pointer;border:1px solid #0000;border-radius:16px;gap:12px;padding:16px 18px 18px;display:grid;position:relative;overflow:hidden;box-shadow:0 0 8px #12191414}.calendar-job-card-highlighted{background:var(--bg-elevated);border-color:#0000;box-shadow:inset 3px 0 #24e03feb,0 0 8px #12191414}.calendar-job-card-missing-labour,.calendar-job-card-highlighted.calendar-job-card-missing-labour{border-color:var(--border);box-shadow:none}.calendar-job-card-highlighted.calendar-job-card-missing-labour{box-shadow:inset 3px 0 #24e03feb}.app-shell:not(.app-shell-light) .calendar-job-card,.app-shell:not(.app-shell-light) .calendar-job-card-highlighted{border-color:var(--border);box-shadow:none}.app-shell:not(.app-shell-light) .calendar-job-card-highlighted{box-shadow:inset 3px 0 #24e03feb}.calendar-job-card-head{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;display:grid}.calendar-job-card-head strong{min-width:0;color:var(--text-primary);letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:700;overflow:hidden}.calendar-job-scheduled-badge{min-height:24px;color:var(--accent);background:0 0;border:1px solid #0f9d2080;border-radius:999px;justify-content:center;align-items:center;padding:4px 12px;font-size:12px;font-weight:600;line-height:1.2;display:inline-flex}.calendar-job-scheduled-badge span{display:none}.calendar-job-scheduled-badge-warning{color:#f5c84b;background:#f5b7001a;border-color:#f5b70059}.calendar-job-scheduled-badge-warning span{background:#f5b700;box-shadow:0 0 10px #f5b7008c}.calendar-job-scheduled-badge-confirmed{background:var(--accent-soft);color:var(--accent);border-color:#0000}.calendar-job-menu-wrap{position:relative}.calendar-job-more{width:24px;height:24px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:inline-grid}.calendar-job-more svg{stroke-width:1.7px;width:15px;height:15px}.calendar-job-more:hover,.calendar-job-more:focus-visible{color:var(--text-primary);outline:none}.calendar-job-menu{z-index:12;border:1px solid var(--border);background:var(--bg-elevated);min-width:190px;box-shadow:var(--shadow-pop);border-radius:12px;display:grid;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden}.calendar-job-menu button,.calendar-job-menu a{text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:0;width:100%;padding:10px 12px;text-decoration:none;color:var(--text-primary)!important;letter-spacing:0!important;font-family:inherit!important;font-size:12px!important;font-weight:400!important;line-height:normal!important}.calendar-job-menu button:hover:not(:disabled),.calendar-job-menu button:focus-visible:not(:disabled),.calendar-job-menu a:hover,.calendar-job-menu a:focus-visible{background:#0f9d201a;outline:none}.calendar-job-menu a:visited{color:var(--text-primary)!important}.calendar-job-menu button:disabled{color:var(--text-muted);cursor:not-allowed}.calendar-job-menu .calendar-job-menu-danger{color:#d71920!important}.calendar-job-divider{background:var(--border);height:1px}.calendar-info-row{touch-action:manipulation;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:12px 14px;text-decoration:none;display:grid}.calendar-info-row>span{color:var(--text-secondary);letter-spacing:0;text-transform:none;font-size:13px;font-weight:600}.calendar-info-row>span:not(.calendar-info-icon){color:var(--text-secondary);margin-bottom:4px;display:block}.calendar-info-row .calendar-info-icon{width:24px;height:24px;color:var(--accent);grid-row:span 2;place-items:center;padding-top:1px;display:inline-grid}.calendar-info-row .calendar-info-icon svg{stroke-linecap:round;stroke-linejoin:round;stroke-width:2.05px;width:20px;height:20px}.calendar-info-row p{color:var(--text-secondary);white-space:pre-line;grid-column:2;margin:0;font-size:13px;font-weight:400;line-height:1.6}.calendar-info-row-link,.calendar-info-row-link:visited{color:inherit;-webkit-tap-highlight-color:transparent}.calendar-info-row-link:hover p,.calendar-info-row-link:focus-visible p{color:var(--text-primary);outline:none;text-decoration:none}.calendar-info-row-link:focus-visible{outline:none}.calendar-job-card p{color:var(--text-secondary);margin:0;font-size:13px;font-weight:400}.status-dot{width:8px;height:8px;margin-right:var(--space-2);border-radius:var(--radius-pill);vertical-align:middle;display:inline-block}.calendar-job-status{font-size:12px;font-weight:600}.empty-copy{color:var(--text-muted)}@media (max-width:719px){.calendar-actions{z-index:20;top:calc(16px + env(safe-area-inset-top));gap:10px;height:44px;position:absolute;right:6px}.app-shell .app-main>.mobile-nav-toggle-scrollbound{z-index:20;top:calc(16px + env(safe-area-inset-top))!important;position:absolute!important;left:0!important}.calendar-inline-search{grid-template-columns:36px minmax(0,1fr) 36px;gap:2px;width:min(292px,100vw - 78px);padding:4px}.calendar-inline-search-close,.calendar-inline-search-submit{width:36px;height:36px}.calendar-inline-search input{height:36px;font-size:16px}.calendar-detail{gap:14px;padding:18px}.calendar-detail .eyebrow{color:#81828c;letter-spacing:.08em;font-size:13px;font-weight:600}.calendar-detail h3{color:#f4f4f5;letter-spacing:-.02em;font-size:22px;font-weight:700}.calendar-job-card{background:var(--bg-elevated);border-radius:16px;gap:14px;padding:18px}.calendar-job-card-head strong{color:#f3f4f6;letter-spacing:-.01em;font-size:17px;font-weight:700}.calendar-job-scheduled-badge{min-height:24px;color:var(--accent);font-size:12px;font-weight:600}.calendar-job-more{color:#a4a5ad}.calendar-info-row{grid-template-columns:24px minmax(0,1fr);gap:12px 14px}.calendar-info-row>span:not(.calendar-info-icon){color:var(--text-secondary);margin-bottom:0;font-size:13px;font-weight:600}.calendar-info-row .calendar-info-icon{color:#10b72a}.calendar-info-row p{color:var(--text-secondary);font-size:13px;font-weight:400;line-height:1.6}.calendar-info-row-link p,.calendar-info-row-link:visited p,.calendar-detail .calendar-labour-summary-card .job-summary-row .job-summary-link,.calendar-detail .calendar-labour-summary-card .job-summary-row .job-summary-link:visited{color:var(--text-secondary)}.calendar-info-row-link:hover p,.calendar-info-row-link:focus-visible p{color:#f4f4f5}.app-main-light .calendar-info-row>span:not(.calendar-info-icon){color:#101510;margin-bottom:0;font-size:13px;font-weight:600}.app-main-light .calendar-info-row p,.app-main-light .calendar-info-row-link p,.app-main-light .calendar-info-row-link:visited p{color:#4f5b53;font-size:13px;font-weight:400;line-height:1.6}}@media (min-width:720px){.calendar-header{grid-template-columns:1fr auto;align-items:end}.calendar-screen{column-gap:var(--space-5);grid-template-columns:minmax(0,1fr) minmax(280px,340px)}.calendar-header,.calendar-toolbar,.weekday-pill,.calendar-grid{grid-column:1}.calendar-detail{top:var(--space-5);grid-area:1/2/span 4;align-self:start;position:sticky}.calendar-day{min-height:120px;padding:var(--space-2) var(--space-3)}}@media (min-width:1024px){.calendar-day{min-height:132px}.day-number{font-size:16px}.job-chip{padding:2px 6px;font-size:9.5px}}@media (min-width:1280px){.calendar-screen{column-gap:var(--space-6);grid-template-columns:minmax(0,1fr) minmax(340px,400px)}.calendar-header h2{font-size:clamp(48px,4.8vw,72px)}.calendar-toolbar{max-width:520px}.calendar-grid{border-radius:var(--radius-lg);background:#ffffff05;border:1px solid #ffffff0f;gap:2px;overflow:hidden}.calendar-day{min-height:156px;padding:var(--space-3);border-bottom:1px solid #ffffff0d;border-right:1px solid #ffffff0d}.calendar-grid-week .calendar-day,.calendar-grid-day .calendar-day{min-height:220px}.calendar-detail{padding:var(--space-5)}}.app-main-light .calendar-header h2{color:#101510;letter-spacing:-.055em}.app-main-light .calendar-month-menu{background:radial-gradient(circle at 18% 0,#0f9d201a,#0000 38%),#fffffffa;border-color:#dfe8df;box-shadow:0 18px 42px #10211224}.app-main-light .calendar-month-option{color:#4f5a50}.app-main-light .calendar-month-option:hover,.app-main-light .calendar-month-option:focus-visible,.app-main-light .calendar-month-option[aria-selected=true]{background:var(--accent);color:#fff}.app-main-light .calendar-icon-button{color:var(--accent)}.app-main-light .calendar-icon-button:hover,.app-main-light .calendar-icon-button-accent:hover{color:var(--accent);background:#eef8ef}.app-main-light .calendar-inline-search{background:radial-gradient(circle at 0%,#0f9d2017,#0000 36%),#fffffff5;border-color:#0f9d2061;box-shadow:0 14px 34px #10211214}.app-main-light .calendar-inline-search input{color:#101510;background:#fff;border:1px solid #e4ebe4}.app-main-light .calendar-inline-search-close{color:#7b857c}.app-main-light .calendar-inline-search-close:hover,.app-main-light .calendar-inline-search-close:focus-visible{color:#101510;background:#eef8ef}.app-main-light .view-pill-active,.app-main-light .view-pill-active:hover{background:var(--accent);color:#fff}.app-main-light .calendar-toolbar,.app-main-light .weekday-pill{background:#ffffffeb;border-color:#e4ebe4;box-shadow:0 14px 34px #10211212}.app-main-light .calendar-job-card{box-shadow:var(--card-shadow-standard);background:#fff;border-color:#0000}.app-main-light .calendar-job-card-highlighted{box-shadow:inset 3px 0 0 #0f9d20a8, var(--card-shadow-standard);border-color:#0000}.app-main-light .calendar-job-card-missing-labour,.app-main-light .calendar-job-card-highlighted.calendar-job-card-missing-labour{box-shadow:var(--card-shadow-standard);border-color:#0000}.app-main-light .calendar-job-card-highlighted.calendar-job-card-missing-labour{box-shadow:inset 3px 0 #0f9d20a8,0 0 8px #12191414}.app-main-light .calendar-job-scheduled-badge-warning{color:#8a6100;background:#f5b7001f;border-color:#d3970047}.app-main-light .calendar-job-scheduled-badge-confirmed{color:#0f7d20;background:#0f9d201a;border-color:#0f9d204d}.app-main-light .weekday-pill{color:#4f5a50}.app-main-light .calendar-grid{border-radius:var(--radius-lg);box-shadow:var(--card-shadow-standard);background:#fff;border:1px solid #0000;gap:0;overflow:hidden}.app-main-light .calendar-day{color:#151b15;background:#fff;border-bottom:1px solid #edf2ed;border-right:1px solid #edf2ed}.app-main-light .calendar-day:hover{background:#f7fbf7}.app-main-light .calendar-day-selected{color:#151b15;background:#fff}.app-main-light .calendar-day-selected:hover{background:#f7fbf7}.app-main-light .calendar-day-current.calendar-day-selected{background:#fff}.app-main-light .calendar-day-current.calendar-day-selected .day-number{background:var(--accent);color:#fff;box-shadow:0 8px 18px #0f9d2042}.app-main-light .calendar-day-selected:not(.calendar-day-current) .day-number{color:#101510;background:#fff;box-shadow:inset 0 0 0 1px #0f9d2085,0 8px 18px #0f9d202e}.app-main-light .calendar-day-current .day-number{color:var(--accent);box-shadow:none;background:0 0}.app-main-light .calendar-day-muted{opacity:1;color:#a6afa7}.app-main-light .calendar-detail{background:#fffffff0}.app-main-light .calendar-detail h3,.app-main-light .calendar-job-card strong,.app-main-light .day-number{color:#171d17}.app-main-light .calendar-job-card{background:#fff}.app-main-light .calendar-job-card p,.app-main-light .empty-copy{color:#4f5b53}.app-main-light .calendar-info-row>span{color:#101510}.app-main-light .calendar-info-row .calendar-info-icon{color:var(--accent)}.app-main-light .calendar-info-row p{color:#4f5b53}.app-main-light .calendar-info-row a{color:#4f5b53;text-decoration:none}.app-main-light .calendar-detail .calendar-labour-summary-card.jobs-kanban-card.job-summary-card{color:#111712;background:#fff;border-color:#1220161a;box-shadow:0 6px 16px #1219140d}.app-main-light .calendar-detail .calendar-labour-summary-card .jobs-card-title-row h3{color:#111712}.app-main-light .calendar-detail .calendar-labour-summary-card .job-summary-row strong{color:#151915}.app-main-light .calendar-detail .calendar-labour-summary-card .job-summary-row p,.app-main-light .calendar-detail .calendar-labour-summary-card .job-summary-row li,.app-main-light .calendar-detail .calendar-labour-summary-card .job-summary-row .job-summary-link,.app-main-light .calendar-detail .calendar-labour-summary-card .job-summary-row .job-summary-link:visited{color:#4f5b53}.app-main-light .calendar-detail .calendar-labour-summary-card .job-summary-icon{color:var(--accent);filter:none}.app-main-light .calendar-detail .calendar-labour-summary-card .jobs-job-status{color:#087116;background:#e6f5e8;border:0}.app-main-light .calendar-detail .calendar-labour-summary-card .jobs-job-status-cancelled{color:#b91c1c;background:#fee2e2}.app-main-light .calendar-detail .calendar-labour-summary-card .jobs-job-status-draft{color:#92400e;background:#fef3c7}.app-main-light .calendar-detail .calendar-labour-summary-card .jobs-job-status-completed{color:#1d4ed8;background:#dbeafe}.app-main-light .job-chip-completed,.app-main-light .status-dot-completed{color:#5f6a60;background:#eef2ee}.app-main-light .job-chip-missing-labour,.app-main-light .job-chip-confirmed.job-chip-missing-labour,.app-main-light .job-chip-draft.job-chip-missing-labour{color:#8a6100;background:#f5b7002e}.app-main-light .job-chip-missing-labour:before{background:#d39700}.job-detail-shell{gap:0;display:grid}.job-detail-shell>*+*{margin-top:var(--space-4)}.job-detail-shell>.job-detail-header+*{margin-top:0}.job-detail-header{gap:var(--space-3);margin:calc(-1 * var(--space-4)) calc(-1 * var(--space-4)) calc(-1 * var(--space-5));padding:var(--space-5) var(--space-5) calc(var(--space-6) + var(--space-3));color:#fff;z-index:1;background:#16171c;border-radius:0 0 32px 32px;display:grid;position:relative;overflow:hidden}.job-detail-header:before{content:"";background:var(--accent);z-index:0;border-radius:0 0 100%;width:96px;height:96px;position:absolute;top:0;left:0}.job-detail-header>*{z-index:1;position:relative}.job-detail-header h2{color:var(--accent);letter-spacing:-.02em;margin:0;font-size:clamp(30px,8vw,42px);font-style:italic;font-weight:800;line-height:1}.job-detail-header p{color:#ffffffb8}.job-detail-header .eyebrow{color:#fff9}.job-detail-card,.job-form-card{gap:var(--space-4);border-radius:28px 28px var(--radius-lg) var(--radius-lg);background:var(--bg-light);color:var(--text-on-light);padding:var(--space-5);margin-top:calc(-1 * var(--space-5));box-shadow:var(--shadow-card);z-index:2;display:grid;position:relative}.job-progress-line{gap:var(--space-2);grid-template-columns:repeat(3,1fr);display:grid}.job-progress-line span{border-radius:var(--radius-pill);background:var(--accent);height:4px}.job-info-grid,.form-grid-two,.form-grid-three{gap:var(--space-3);display:grid}.info-pill{gap:var(--space-1);border-radius:var(--radius-pill);background:var(--bg-light-soft);padding:var(--space-3) var(--space-4);display:grid}.info-pill span,.job-form-card label{color:var(--text-on-light);letter-spacing:0;text-transform:none;font-size:13px;font-weight:500}.info-pill>span{color:var(--text-on-light-muted);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:600}.info-pill strong{color:var(--text-on-light);font-size:14px;font-weight:600}.job-section{gap:var(--space-3);border-top:1px solid var(--border-on-light);padding-top:var(--space-4);display:grid}.job-section h3{margin:0;font-size:18px}.job-section-title,.assignment-row{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.assignment-list,.job-action-grid{gap:var(--space-3);display:grid}.assignment-row{border-radius:var(--radius-pill);background:var(--bg-light-soft);padding:var(--space-3) var(--space-4)}.assignment-row p{margin:var(--space-1) 0 0;color:var(--text-on-light-muted);font-size:13px}.assignment-row small{color:var(--text-on-light-muted);margin-top:4px;font-size:12px;line-height:1.4;display:block}.assignment-row strong{color:var(--text-on-light);font-weight:600}.assignment-row span{border-radius:var(--radius-pill);background:var(--accent);color:#fff;place-items:center;width:26px;height:26px;padding:0;font-size:14px;font-weight:700;display:inline-grid}.job-form-card label{gap:var(--space-2);display:grid}.job-form-card input,.job-form-card select,.job-form-card textarea{border-radius:var(--radius-pill);background:var(--bg-light-soft);min-height:46px;color:var(--text-on-light);padding:0 var(--space-4);border:1px solid #0000;font-size:14px}.job-form-card input::placeholder,.job-form-card textarea::placeholder{color:var(--text-on-light-muted)}.job-form-card textarea{border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);min-height:96px;padding:var(--space-3);resize:vertical}.job-form-card .button-secondary{border-color:var(--accent);color:var(--accent);background:0 0}.job-form-card .button-primary{background:var(--accent);color:#fff;font-weight:700}@media (min-width:720px){.job-detail-header{grid-template-columns:1fr auto;align-items:end}.job-info-grid,.form-grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid-three{grid-template-columns:repeat(3,minmax(0,1fr))}.job-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.job-detail-header{margin:0 0 calc(-1 * var(--space-5));border-radius:var(--radius-xl);padding:var(--space-6) var(--space-6) calc(var(--space-7) + var(--space-4))}.job-detail-card,.job-form-card{border-radius:var(--radius-xl);padding:var(--space-6)}}@media (min-width:1280px){.job-info-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.job-detail-card,.job-form-card,.invoice-preview-card,.profile-card{max-width:none}.assignment-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.calendar-info-more{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:0;margin-left:8px;padding:0;font-size:12px;font-weight:650}.calendar-info-more:hover{text-underline-offset:3px;text-decoration:underline}.calendar-info-more:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
