@import url("https://fonts.googleapis.com/css2?family=Maven+Pro:wght@400;500;600;700;800;900&family=Lato:wght@300;400;700;900&family=JetBrains+Mono:wght@400;500;600&display=swap");*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }

/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Lato,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.break-all{word-break:break-all}.border{border-width:1px}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.line-through{text-decoration-line:line-through}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{--font-display:"Maven Pro",system-ui,sans-serif;--font-sans:"Lato",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace;--green:#4ca244;--green-bright:#5cbf52;--green-dim:#3a7d34;--teal:#2a9a9e;--teal-bright:#38bdc2;--teal-dim:#1f7579;--amber:#e0a83c;--amber-bright:#f0bd55;--orange:#f7931e;--brand-apple-green:#3a9e3a;--brand-jelly-bean:#2d9db0;--brand-tree-poppy:#f7931e;--bg-sunken:#0a100e;--bg-base:#0d1411;--surface-1:#131d18;--surface-2:#1a2620;--surface-3:#233029;--border-subtle:rgba(255,255,255,0.06);--border-default:rgba(255,255,255,0.1);--border-strong:rgba(255,255,255,0.17);--border-green:rgba(92,191,82,0.4);--border-teal:rgba(56,189,194,0.4);--fg-1:#eaf3ee;--fg-2:#a6b8af;--fg-3:#6f827a;--fg-disabled:#495951;--fg-on-accent:#07140d;--success:#4ca244;--info:#2a9a9e;--warning:#e0a83c;--danger:#e0654e;--tint-green:rgba(76,162,68,0.15);--tint-teal:rgba(42,154,158,0.15);--tint-amber:rgba(224,168,60,0.15);--tint-danger:rgba(224,101,78,0.15);--tint-neutral:rgba(255,255,255,0.06);--cream:#f5efe4;--cream-deep:#ece3d2;--ink:#1c2622;--r-xs:6px;--r-sm:9px;--r-md:12px;--r-lg:16px;--r-xl:22px;--r-pill:999px;--shadow-sm:0 1px 2px rgba(0,0,0,0.4);--shadow-md:0 4px 14px rgba(0,0,0,0.45);--shadow-lg:0 14px 40px rgba(0,0,0,0.55);--glow-green:0 0 0 1px rgba(92,191,82,0.3),0 6px 22px rgba(76,162,68,0.28);--glow-teal:0 0 0 1px rgba(56,189,194,0.3),0 6px 22px rgba(42,154,158,0.26);--ease:cubic-bezier(0.22,0.61,0.36,1);--dur-fast:120ms;--dur:200ms}*{box-sizing:border-box;margin:0;padding:0}body,html{font-family:var(--font-sans);background:var(--bg-base);color:var(--fg-1);line-height:1.6;-webkit-font-smoothing:antialiased}.dashboard-shell{display:flex;height:100vh;overflow:hidden;background:var(--bg-base)}.dashboard-sidebar{width:244px;flex:none;background:var(--surface-1);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;height:100%;overflow-y:auto}.dashboard-main{flex:1;display:flex;flex-direction:column;overflow:hidden}.dashboard-content{flex:1;overflow-y:auto;padding:28px 32px}.nav-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:var(--r-sm);font-size:13.5px;font-weight:500;color:var(--fg-2);cursor:pointer;margin-bottom:2px;transition:all var(--dur-fast) var(--ease);text-decoration:none;border:none;background:transparent;width:100%;text-align:left}.nav-item:hover{background:var(--surface-2);color:var(--fg-1)}.nav-item.active{background:var(--tint-green);color:var(--green-bright);font-weight:600}.card{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:20px}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--r-pill);font-size:11.5px;font-weight:600}.badge-progress{background:var(--tint-teal);color:var(--teal-bright)}.badge-live{background:var(--tint-green);color:var(--green-bright)}.badge-needs{background:var(--tint-amber);color:var(--amber-bright)}.badge-overdue{background:var(--tint-danger);color:#f0937e}.btn-primary{display:inline-flex;align-items:center;gap:7px;background:var(--green);color:var(--fg-on-accent);padding:9px 16px;border-radius:var(--r-sm);font-weight:700;font-size:13.5px;border:none;cursor:pointer;transition:all var(--dur-fast) var(--ease);box-shadow:var(--glow-green);font-family:var(--font-sans)}.btn-primary:hover{background:var(--green-bright)}.btn-secondary{display:inline-flex;align-items:center;gap:7px;background:var(--tint-teal);color:var(--teal-bright);padding:9px 16px;border-radius:var(--r-sm);font-weight:700;font-size:13.5px;border:1px solid var(--border-teal);cursor:pointer;font-family:var(--font-sans);transition:all var(--dur-fast) var(--ease)}.btn-secondary:hover{background:rgba(42,154,158,.24)}.btn-ghost{display:inline-flex;align-items:center;gap:7px;background:transparent;color:var(--fg-2);padding:9px 14px;border-radius:var(--r-sm);font-weight:600;font-size:13px;border:1px solid var(--border-default);cursor:pointer;font-family:var(--font-sans);transition:all var(--dur-fast) var(--ease)}.btn-ghost:hover,.field{background:var(--surface-2);color:var(--fg-1)}.field{width:100%;box-sizing:border-box;border:1px solid var(--border-default);border-radius:var(--r-sm);padding:10px 12px;font-size:13.5px;font-family:var(--font-sans)}.field::-moz-placeholder{color:var(--fg-3)}.field::placeholder{color:var(--fg-3)}.top-bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:16px;padding:18px 32px;background:rgba(13,20,17,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border-subtle)}.eyebrow{font-family:var(--font-sans);font-weight:900;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal-bright)}.status-dot{width:8px;height:8px;border-radius:50%;flex:none}.status-dot.progress{background:var(--teal)}.status-dot.live{background:var(--green)}.status-dot.needs{background:var(--amber)}.status-dot.overdue{background:var(--danger)}.status-dot.upcoming{background:var(--fg-3)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--fg-3)}.hamburger-btn{display:none;width:38px;height:38px;border-radius:var(--r-sm);background:var(--surface-2);justify-content:center;cursor:pointer;color:var(--fg-1)}.hamburger-btn,.search-bar{border:1px solid var(--border-subtle);align-items:center;flex:none}.search-bar{display:flex;gap:8px;background:var(--surface-1);border-radius:var(--r-sm);padding:8px 12px;width:30%;min-width:300px}.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;z-index:40;background:rgba(19,29,24,.95);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--border-subtle);padding-bottom:env(safe-area-inset-bottom,0)}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 4px;text-decoration:none;color:var(--fg-3);transition:color var(--dur-fast) var(--ease);position:relative;font-size:10px;font-weight:500;letter-spacing:.02em;gap:4px}.bottom-nav-item.active{color:var(--green-bright);font-weight:700}.bottom-nav-indicator{position:absolute;top:0;left:25%;right:25%;height:2px;border-radius:var(--r-pill);background:var(--green-bright)}.bottom-nav-badge{position:absolute;top:8px;right:calc(50% - 14px);width:16px;height:16px;background:var(--amber);color:#1c1405;font-size:9px;font-weight:700;border-radius:50%;display:flex;align-items:center;justify-content:center}@media (min-width:768px) and (max-width:1023px){.desktop-sidebar{display:none!important}.hamburger-btn{display:flex}.search-bar{display:none}.dashboard-shell{display:block}.dashboard-main{overflow-y:auto;height:100vh}.dashboard-content{padding:20px 24px}.top-bar h1{font-size:19px!important}}@media (max-width:767px){.desktop-sidebar{display:none!important}.hamburger-btn,.search-bar{display:none}.bottom-nav{display:flex}.dashboard-shell{display:block}.dashboard-main{overflow-y:auto;height:100vh;padding-bottom:70px}.dashboard-content{padding:16px}.top-bar{padding:14px 16px!important}.top-bar h1{font-size:18px!important}}.grid-kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}@media (max-width:1023px){.grid-kpi{grid-template-columns:repeat(2,1fr)}}.portal-col{display:flex;flex-direction:column;gap:18px;height:100%}.portal-col>:last-child{flex:1}.grid-2col{display:grid;grid-template-columns:1fr 1.3fr;gap:18px;margin-bottom:20px}@media (max-width:1023px){.portal-col{height:auto}.portal-col>:last-child{flex:none}.grid-2col{grid-template-columns:1fr}}.grid-detail{display:grid;grid-template-columns:300px 1fr;gap:20px;align-items:start}@media (max-width:1023px){.grid-detail{grid-template-columns:1fr}}.grid-project{display:grid;grid-template-columns:1.2fr 1fr;gap:20px;align-items:start}@media (max-width:1023px){.grid-project{grid-template-columns:1fr}}@media (max-width:767px){.login-brand-panel{display:none!important}}.journey-bar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.journey-step{min-width:0}.journey-track{height:5px;border-radius:var(--r-pill)}@media (max-width:700px){.journey-bar{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}}.portal-mobile-bar{display:none}@media (max-width:767px){.portal-mobile-bar{display:flex;align-items:center;gap:11px;padding:12px 16px;background:var(--surface-1);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:30}.portal-greeting-who{display:none}.card{padding:16px}.btn-ghost,.btn-primary,.btn-secondary{padding:11px 16px;font-size:14px}.nav-item{padding:13px 12px;font-size:14.5px}.invoice-lines{overflow-x:auto;-webkit-overflow-scrolling:touch}.invoice-lines>div{min-width:440px}}@media (max-width:1023px){.portal-mobile-stack{grid-template-columns:1fr!important}}.grid-3col,.my-work-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}.grid-3col{margin-bottom:22px}@media (max-width:1200px){.grid-3col{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.grid-3col{grid-template-columns:1fr}}.my-work-column{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:16px;min-height:220px}@media (max-width:900px){.my-work-board{grid-template-columns:1fr}.my-work-column{min-height:0}}input[type=date],input[type=datetime-local],input[type=time]{color-scheme:dark}input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.75;-webkit-transition:opacity var(--dur-fast) var(--ease);transition:opacity var(--dur-fast) var(--ease)}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}@media print{.bottom-nav,.dashboard-sidebar,.no-print,.top-bar{display:none!important}.dashboard-content,.dashboard-main,.dashboard-shell,body,html{background:#fff!important;color:#111!important;display:block!important;margin:0!important;padding:0!important;height:auto!important;overflow:visible!important}.invoice-sheet{border:none!important;box-shadow:none!important;background:#fff!important;padding:0!important}.invoice-sheet,.invoice-sheet *{color:#111!important;background-image:none!important}.invoice-sheet .eyebrow{color:#666!important}.invoice-band,.invoice-band *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.invoice-band{background:#262626!important}.invoice-band,.invoice-band *{color:#fff!important}.invoice-band .brand-jorvik{color:#3a9e3a!important}.invoice-band .brand-webdev{color:#2d9db0!important}.invoice-band .invoice-kicker{color:#f7931e!important}.invoice-panel,.invoice-sheet>div[style*="height: 5px"],.invoice-sheet>div[style*="height:5px"]{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.invoice-panel{background:#E7F2F4!important}.invoice-sheet input{border:none!important;background:transparent!important;padding:0!important;color:#111!important;-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important}.invoice-sheet input[type=number]::-webkit-inner-spin-button,.invoice-sheet input[type=number]::-webkit-outer-spin-button{display:none!important}.badge{border:1px solid #999!important;background:transparent!important;color:#111!important}@page{margin:18mm}}@keyframes spin{to{transform:rotate(1turn)}}.spin{animation:spin .9s linear infinite}:root[data-theme=light]{--bg-sunken:#ece3d2;--bg-base:#f6f2ea;--surface-1:#fffdf9;--surface-2:#f1ece1;--surface-3:#e6dfd1;--border-subtle:rgba(28,38,34,0.09);--border-default:rgba(28,38,34,0.16);--border-strong:rgba(28,38,34,0.28);--border-green:rgba(58,125,52,0.45);--border-teal:rgba(31,117,121,0.45);--fg-1:#1c2622;--fg-2:#47564f;--fg-3:#6b7a73;--fg-disabled:#a3aea8;--fg-on-accent:#ffffff;--green-bright:#2f6b2a;--teal-bright:#1a6b6f;--amber-bright:#c26a00;--brand-apple-green:#3a9e3a;--brand-jelly-bean:#2d9db0;--brand-tree-poppy:#f7931e;--tint-green:rgba(76,162,68,0.16);--tint-teal:rgba(42,154,158,0.15);--tint-amber:rgba(224,168,60,0.22);--tint-danger:rgba(224,101,78,0.16);--tint-neutral:rgba(28,38,34,0.06);--shadow-sm:0 1px 2px rgba(28,38,34,0.08);--shadow-md:0 4px 14px rgba(28,38,34,0.10);--shadow-lg:0 14px 40px rgba(28,38,34,0.14);--glow-green:0 1px 2px rgba(28,38,34,0.12);--glow-teal:0 1px 2px rgba(28,38,34,0.12)}:root[data-theme=light] .badge-overdue{color:#a8341c}:root[data-theme] *{transition-property:none}:root[data-theme] .btn-ghost,:root[data-theme] .btn-primary,:root[data-theme] .btn-secondary,:root[data-theme] .nav-item,:root[data-theme] .theme-toggle{transition-property:background,color,border-color}