/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:host,:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.hidden{display:none}.inline{display:inline}.table{display:table}.rounded{border-radius:.25rem}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.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,)}}.project-images{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;padding:0 22px 22px;display:grid}.project-images figure{border:1px solid var(--line);background:var(--background);border-radius:7px;margin:0;overflow:hidden}.project-images a{aspect-ratio:4/3;background:oklch(94% .008 255);display:block}.project-images img{object-fit:cover;width:100%;height:100%;display:block}.project-images figcaption{flex-direction:column;gap:3px;padding:10px 11px;font-size:.75rem;display:flex}.project-images figcaption strong{font-weight:600}.project-images figcaption span{color:var(--muted);overflow-wrap:anywhere}@media (max-width:680px){.project-images{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:0 14px 16px}}@media print{.project-images{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0}.project-images figure{break-inside:avoid}.project-images figcaption{font-size:8pt}}.image-field{gap:8px}.image-input{border:1px dashed var(--line);background:var(--background);border-radius:7px;align-items:center;gap:10px;padding:8px 12px;display:flex}.image-input>svg{color:var(--accent);flex-shrink:0}.image-input input{background:0 0;border:0;width:100%;min-height:38px;padding:0}.image-input input:focus{box-shadow:none;outline:0}.selected-images{flex-wrap:wrap;gap:7px;display:flex}.selected-images>span{border:1px solid var(--line);background:var(--surface);overflow-wrap:anywhere;border-radius:5px;align-items:center;gap:6px;max-width:100%;padding:5px 7px 5px 9px;font-size:.75rem;display:inline-flex}.selected-images button{color:var(--muted);background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.field-error{color:var(--danger);font-size:.8125rem}.entry-images{flex-wrap:wrap;gap:7px;margin-top:10px;display:flex}.entry-image{border:1px solid var(--line);background:var(--background);border-radius:6px;width:64px;height:64px;position:relative;overflow:hidden}.entry-image img,.entry-image>a{width:100%;height:100%;display:block}.entry-image img{object-fit:cover}.image-delete{width:26px;height:26px;color:var(--danger);background:oklch(98% .01 25/.94);border:1px solid oklch(87% .02 25);border-radius:5px;top:3px;right:3px}.image-delete,.image-delete-confirm{justify-content:center;align-items:center;display:flex;position:absolute}.image-delete-confirm{background:oklch(98% .01 25/.97);gap:2px;padding:3px;inset:0}.image-delete-confirm .danger{min-height:30px;padding:4px 6px;font-size:.6875rem}.image-delete-confirm .icon-button{width:26px;min-width:26px;min-height:30px}@media (max-width:680px){.image-input{flex-direction:column;align-items:flex-start}.image-input input{font-size:.8125rem}.entry-image{width:72px;height:72px}}:root{--background:oklch(97.5% .005 255);--foreground:oklch(26% .02 255);--surface:oklch(99.7% .002 255);--muted:oklch(52% .02 255);--line:oklch(91% .009 255);--accent:oklch(42.5% .072 183);--accent-light:oklch(95.5% .028 170);--brand-lime:oklch(82.4% .16 122);--sidebar:oklch(98.5% .006 255);--positive:oklch(42% .095 170);--danger:oklch(49% .18 25)}*{box-sizing:border-box}body{background:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,Segoe UI,system-ui,sans-serif;font-size:16px;line-height:1.5}button,input,select,textarea{font:inherit}a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}a,button{transition:background .15s,color .15s}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline-offset:3px;outline:3px solid oklch(62% .11 170)}h1,h2,h3,p{margin:0}h1{letter-spacing:-.035em;font-size:2rem;line-height:1.2}h1,h2{font-weight:650}h2{letter-spacing:-.015em;font-size:1.125rem;line-height:1.4}h3{font-size:1rem;font-weight:600}a svg,button svg{flex-shrink:0}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--sidebar);border-right:1px solid var(--line);z-index:10;flex-direction:column;width:236px;padding:30px 18px;display:flex;position:fixed;inset:0 auto 0 0}.brand,.login-brand{letter-spacing:-.04em;align-items:center;gap:11px;font-size:1.3rem;font-weight:720;display:flex}.brand{padding:0 13px}.brand-logo{width:auto;max-width:100%;height:36px;display:block}.load-logo{margin:0}.load-logo .brand-logo{height:56px}.brand-mark{width:64px;height:auto;display:block}.nav-heading{letter-spacing:.11em;color:var(--muted);margin:52px 14px 14px;font-size:.6875rem;font-weight:650}.nav-item{color:var(--muted);text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:12px;width:100%;min-height:46px;margin:4px 0;padding:13px 14px;font-size:.875rem;font-weight:550;display:flex}.nav-item span{flex:1}.nav-item.active,.nav-item:hover{background:var(--accent-light)}.nav-item.active{color:var(--accent);font-weight:650}.sidebar-bottom{margin-top:auto;padding:22px 10px 0}.profile{border-top:1px solid var(--line);align-items:center;gap:10px;padding-top:20px;display:flex}.profile strong{overflow-wrap:anywhere;max-width:135px;font-size:.875rem;display:block}.profile small{color:var(--muted);font-size:.75rem}.avatar{color:oklch(38% .066 183);background:oklch(92% .035 165);border-radius:50%;flex-shrink:0;justify-content:center;width:34px;height:34px;font-size:.6875rem;font-weight:700}.avatar,.logout{align-items:center;display:flex}.logout{color:var(--muted);gap:9px;min-height:44px;padding:15px 0 0;font-size:.8125rem}.main-content{width:calc(100% - 236px);min-width:0;margin-left:236px}.topbar{border-bottom:1px solid var(--line);height:73px;color:var(--muted);background:var(--surface);justify-content:space-between;padding:0 38px;font-size:.8125rem}.topbar,.topbar>span{align-items:center;display:flex}.topbar>span{gap:12px}.topbar strong{color:var(--foreground);font-weight:500}.page{max-width:1500px;margin:auto;padding:38px 38px 20px}.page-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:29px;display:flex}.eyebrow{letter-spacing:.14em;color:var(--muted);margin-bottom:9px;font-size:.6875rem;font-weight:700}.subtitle{color:var(--muted);margin-top:10px;font-size:.9375rem}.danger,.primary,.secondary{white-space:nowrap;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;gap:9px;min-height:44px;padding:10px 17px;font-size:.875rem;font-weight:600;display:inline-flex}.primary{background:var(--accent);color:var(--surface);box-shadow:0 1px 2px oklch(20% .02 255/.1)}.primary:hover{background:oklch(36% .066 183)}.secondary{background:var(--surface);border-color:var(--line);color:var(--foreground)}.icon-button:hover,.secondary:hover{background:var(--accent-light)}.danger{color:var(--danger);background:oklch(96% .02 25);border-color:oklch(88% .05 25)}.small{min-height:38px;padding:7px 12px;font-size:.8125rem}.panel{border:1px solid var(--line);background:var(--surface);border-radius:11px;overflow:hidden}.section-heading{justify-content:space-between;align-items:center;gap:14px;padding:22px 24px 18px;display:flex}.label-tag{letter-spacing:.085em;font-size:.625rem;font-weight:650}.count,.label-tag{color:var(--muted)}.count{font-size:.8125rem}.time-layout{grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:24px;margin-bottom:28px;display:grid}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:4px 24px 24px;display:grid}.wide{grid-column:1/-1}.field{flex-direction:column;gap:7px;min-width:0;display:flex}.field>span{font-size:.875rem;font-weight:550}input,select,textarea{background:var(--surface);width:100%;min-width:0;min-height:44px;color:var(--foreground);border:1px solid oklch(86% .012 255);border-radius:6px;outline:none;padding:10px 12px;font-size:.9375rem}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:oklch(62% .015 255)}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}input:disabled,select:disabled{background:var(--background)}.form-bottom{justify-content:space-between;align-items:center;gap:14px;margin-top:3px;display:flex}.form-bottom>div{gap:8px;display:flex}.muted{color:var(--muted);font-size:.8125rem}.form-bottom .muted{max-width:220px;font-size:.75rem}.week-panel{border:1px solid var(--line);background:oklch(96.5% .018 170);border-radius:11px;flex-direction:column;padding:25px;display:flex}.week-total{letter-spacing:-.06em;margin-top:4px;font-size:2.5rem;font-weight:600}.week-total span{letter-spacing:0;color:var(--muted);font-size:.875rem;font-weight:400}.week-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-top:auto;padding-top:30px;display:grid}.week-days>div{color:var(--muted);flex-direction:column;align-items:center;gap:8px;font-size:.75rem;display:flex}.week-days strong{color:var(--foreground);justify-content:center;align-items:center;width:29px;height:29px;font-size:.8125rem;font-weight:500;display:flex}.week-days .is-today strong{background:var(--accent);color:var(--surface);border-radius:50%}.day-track{background:oklch(90% .03 170);border-radius:4px;align-items:flex-end;width:16px;height:96px;display:flex;overflow:hidden}.day-track i{background:var(--accent);border-radius:4px;width:100%;min-height:2px}.week-caption{color:var(--muted);border-top:1px solid oklch(89% .02 170);margin-top:22px;padding-top:16px;font-size:.75rem}.filters{align-items:flex-end;gap:14px;margin:28px 0 18px;display:flex}.filters .field{flex:1}.filters .field>span{color:var(--muted);font-size:.75rem}.filters input,.filters select{background:var(--surface);min-height:40px;font-size:.8125rem}.table-wrap{overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%;font-size:.875rem}th{color:var(--muted);border-top:1px solid var(--line);white-space:nowrap;background:oklch(98% .004 255);padding:12px 22px;font-size:.75rem;font-weight:500}td,th{border-bottom:1px solid var(--line)}td{vertical-align:middle;padding:17px 22px}tr:last-child td{border-bottom:0}td strong{font-weight:550}.numeric{text-align:right;font-variant-numeric:tabular-nums}.date-cell,.numeric{white-space:nowrap}.row-note{color:var(--muted);overflow-wrap:anywhere;white-space:pre-wrap;max-width:400px;margin-top:3px;font-size:.75rem;display:block}.row-actions{justify-content:flex-end;gap:3px;display:flex}.icon-button{background:0 0;border:0;border-radius:6px;flex-shrink:0;justify-content:center;width:36px;height:40px;display:inline-flex}.empty,.icon-button{color:var(--muted);align-items:center}.empty{text-align:center;flex-direction:column;gap:12px;padding:42px 22px 48px;display:flex}.empty>svg{color:oklch(67% .03 255);margin-bottom:5px}.empty h3{color:var(--foreground)}.empty p{max-width:380px;font-size:.875rem}.empty .primary{margin:20px auto 0;display:flex}.notice{border:1px solid var(--line);border-radius:7px;gap:10px;margin-bottom:18px;padding:12px 16px;font-size:.875rem}.notice,.notice button{align-items:center;display:flex}.notice button{background:0 0;border:0;justify-content:center;min-width:32px;min-height:32px;margin-left:auto}.error{color:var(--danger);background:oklch(97% .01 25)}.success{color:var(--positive);background:oklch(97% .015 170)}.record-editor{margin-bottom:24px}.name-cell{gap:12px}.name-cell,.project-symbol{align-items:center;display:flex}.project-symbol{background:var(--accent-light);width:36px;height:36px;color:var(--accent);border-radius:8px;flex-shrink:0;justify-content:center}.tone-1{color:oklch(43% .075 170);background:oklch(95% .025 170)}.tone-2{color:oklch(45% .09 65);background:oklch(96% .03 80)}.status{color:var(--positive);white-space:nowrap;background:oklch(95.5% .02 170);border-radius:5px;padding:4px 9px;font-size:.75rem;display:inline-block}.status.inactive{background:var(--background);color:var(--muted)}.footnote{color:var(--muted);max-width:95ch;margin-top:17px;font-size:.75rem;line-height:1.7}.stat-strip{background:var(--surface);border:1px solid var(--line);border-radius:10px;grid-template-columns:repeat(4,minmax(0,1fr));margin:22px 0 26px;padding:24px 0;display:grid}.stat-strip>div{border-right:1px solid var(--line);padding:0 22px}.stat-strip>div:last-child{border:0}.stat-strip span{color:var(--muted);margin-bottom:10px;font-size:.75rem;display:block}.stat-strip strong{letter-spacing:-.04em;font-size:1.375rem;font-weight:600}.stat-strip small{font-size:.875rem;font-weight:400}.positive{color:var(--positive)}.negative{color:var(--danger)}.invoice-actions{color:var(--muted);justify-content:space-between;align-items:center;gap:14px;margin:25px 0 18px;font-size:.8125rem;display:flex}.invoice-actions>div{gap:10px;display:flex}.invoice-paper{background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:36px;box-shadow:0 3px 10px oklch(30% .02 255/.025)}.invoice-top{justify-content:space-between;gap:16px;display:flex}.invoice-top h2{letter-spacing:-.035em;font-size:1.75rem}.invoice-top p:not(.eyebrow){color:var(--muted);margin-top:8px;font-size:.875rem}.invoice-top>svg{color:var(--accent)}.invoice-meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:32px 0;display:grid}.invoice-meta span{letter-spacing:.09em;color:var(--muted);margin-bottom:5px;font-size:.625rem;display:block}.invoice-meta strong{font-size:.875rem;font-weight:500}.invoice-paper td,.invoice-paper th{padding-left:12px;padding-right:12px}.invoice-total{border-top:2px solid var(--foreground);justify-content:space-between;align-items:center;margin-top:24px;padding-top:20px;font-size:.875rem;display:flex}.invoice-total>div{text-align:right}.invoice-total strong{letter-spacing:-.04em;font-size:1.5rem;font-weight:600}.invoice-total small{color:var(--muted);font-size:.75rem;display:block}.page-footer{color:var(--muted);justify-content:space-between;align-items:center;margin-top:45px;padding:18px 0;font-size:.6875rem;display:flex}.page-footer>span:first-child{color:var(--foreground);font-size:.8125rem;font-weight:650}.load-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:100vh;padding:30px;display:flex}.load-page p{max-width:500px}.load-page a{color:var(--muted);font-size:.875rem;text-decoration:underline}.login{background:var(--surface);flex-direction:column;min-height:100svh;padding:38px 7vw;display:flex}.login-content{max-width:660px;margin:auto 0;padding:65px 0}.login-content h1{letter-spacing:-.055em;font-size:clamp(2.5rem,5vw,4.3rem);line-height:1.08}.login-intro{color:var(--muted);max-width:460px;margin:24px 0 32px;font-size:1.125rem}.login-button{min-height:52px;margin-bottom:15px}.login-content>.muted{max-width:370px}.login-notes{gap:26px;margin-top:48px;font-size:.8125rem;display:flex}.login-notes span{align-items:center;gap:7px;display:flex}.login-notes svg{color:var(--positive)}.login-footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;padding-top:22px;font-size:.8125rem;display:flex}.sr-only{clip:rect(0,0,0,0);width:1px;height:1px;position:absolute;overflow:hidden}@media (min-width:1500px){.page{padding-top:45px}.time-layout{grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr)}}@media (max-width:1150px){.sidebar{width:210px;padding:26px 12px}.main-content{width:calc(100% - 210px);margin-left:210px}.page{padding:28px 24px}.topbar{padding:0 24px}.time-layout{grid-template-columns:minmax(0,1fr) 270px;gap:18px}.week-panel{padding:22px 18px}.stat-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 0}.stat-strip>div:nth-child(2){border:0}.form-bottom{flex-wrap:wrap}.label-tag{display:none}.filters{gap:10px}td,th{padding-left:16px;padding-right:16px}}@media (max-width:900px){.time-layout{grid-template-columns:1fr}.week-panel{display:none}.filters{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.invoice-actions{flex-direction:column;align-items:flex-start}.invoice-paper{padding:24px}}@media (max-width:680px){.app-shell{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);width:100%;height:auto;padding:12px 16px 0;position:sticky;top:0}.brand{margin-bottom:12px;padding:0;font-size:1.125rem}.brand-logo{height:30px}.nav-heading,.sidebar-bottom{display:none}.sidebar nav{gap:3px;display:flex;overflow-x:auto}.nav-item{white-space:nowrap;border-radius:6px 6px 0 0;gap:6px;width:auto;min-height:44px;margin:0;padding:10px 11px;font-size:.75rem}.nav-item>svg{width:16px}.nav-item>svg:last-child:not(:first-child){display:none}.main-content{width:100%;margin-left:0}.topbar{height:45px;padding:0 18px;font-size:.75rem}.topbar .today{gap:5px;font-size:.6875rem}.page{padding:26px 16px 12px}.page-heading{flex-direction:column;align-items:flex-start;gap:15px;margin-bottom:22px}h1{font-size:1.75rem}.subtitle{font-size:.875rem;line-height:1.6}.section-heading{padding:20px 18px 16px}.form-grid{gap:16px 12px;padding:3px 18px 20px}.form-bottom{gap:16px}.form-bottom>div{width:100%}.form-bottom .primary{flex:1}.form-bottom .muted{max-width:none}.time-layout{margin-bottom:20px}.filters{gap:12px;margin-top:20px}.field>span{font-size:.8125rem}input,select,textarea{font-size:16px}.filters input,.filters select{padding-left:8px;padding-right:8px;font-size:16px}.table-wrap table{min-width:540px}.invoice-paper .table-wrap table{min-width:650px}.history td,.history th{padding:14px 12px}.stat-strip>div{padding:0 16px}.stat-strip strong{font-size:1.1875rem}.invoice-actions>div{grid-template-columns:1fr 1fr;gap:8px;width:100%;display:grid}.invoice-actions button{padding:9px;font-size:.75rem}.invoice-paper{padding:22px 16px}.invoice-meta{grid-template-columns:1fr 1fr;gap:18px}.invoice-top h2{font-size:1.5rem}.invoice-total strong{font-size:1.25rem}.login{padding:25px 24px}.login-content{padding:55px 0}.login-notes{flex-direction:column;gap:14px}.login-footer span{text-align:right;max-width:180px}.empty{padding:32px 18px}.page-footer{margin-top:26px}.footnote{font-size:.75rem}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition:none!important}}@media print{@page{size:A4 landscape;margin:14mm}body{background:var(--surface);font-size:11pt}.no-print{display:none!important}.app-shell{display:block}.main-content{width:100%;margin:0}.page{max-width:none;padding:0}.invoice-paper{box-shadow:none;border:0;padding:0}.invoice-paper .table-wrap{overflow:visible}.invoice-paper .table-wrap table{width:100%;min-width:0;font-size:9pt}.invoice-paper td,.invoice-paper th{padding:8px}.invoice-paper tr{break-inside:avoid}.invoice-paper thead{display:table-header-group}.invoice-meta{margin:20px 0}.invoice-total{break-inside:avoid}.footnote{max-width:none}}.mobile-logout{display:none}@media (max-width:680px){.mobile-logout{align-items:center;min-height:44px;display:inline-flex}.topbar .today{display:none}}.table-wrap{position:relative}.sr-only{top:0;left:0}.finance-stats{grid-template-columns:repeat(5,minmax(0,1fr))}.finance-stats strong{font-size:1.125rem}.attachment-link{color:var(--accent);text-underline-offset:3px;align-items:center;gap:6px;min-height:44px;font-size:.8125rem;text-decoration:underline;display:inline-flex}.attachment-link span{overflow-wrap:anywhere;max-width:160px}.current-attachment{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;display:flex}.checkbox-label{align-items:center;gap:9px;font-size:.8125rem;display:flex}.checkbox-label input{width:18px;min-height:18px}.amount-link{color:var(--accent);text-underline-offset:3px;background:0 0;border:0;padding:8px 0;text-decoration:underline}.field input[type=file]{padding:8px;font-size:.8125rem}.field input[type=file]::file-selector-button{border:1px solid var(--line);background:var(--background);font:inherit;cursor:pointer;border-radius:4px;margin-right:10px;padding:6px 10px}@media (max-width:1150px){.finance-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-stats>div:nth-child(2n){border:0}.finance-stats>div:last-child{grid-column:1/-1}}.report-heading{justify-content:space-between;align-items:center;gap:22px;padding:23px 0 4px;display:flex}.report-heading h2{font-size:1.75rem}.report-heading p:not(.eyebrow){color:var(--muted);margin-top:6px}.report-period{text-align:right;font-size:.8125rem}.report-period strong{font-weight:550}.report-period span{color:var(--muted);margin-top:6px;display:block}.report-section{margin-bottom:22px}.report-subtotal{border-top:1px solid var(--line);justify-content:space-between;gap:15px;padding:16px 22px;font-size:.875rem;display:flex}.report-grandtotal{background:var(--accent-light)}.report-description{white-space:pre-wrap;overflow-wrap:anywhere;max-width:400px}@media (max-width:680px){.report-heading{flex-direction:column;align-items:flex-start}.report-period{text-align:left}.report-subtotal{padding:16px}.project-report .table-wrap table{min-width:680px}}@media print{.project-report .table-wrap{overflow:visible}.project-report .table-wrap table{table-layout:auto;min-width:0;font-size:9pt}.project-report td,.project-report th{padding:7px}.report-section{break-inside:auto;border-radius:0;overflow:visible}.project-report tr{break-inside:avoid}.project-report thead{display:table-header-group}.project-report .stat-strip,.report-heading,.section-heading{break-inside:avoid;break-after:avoid}.project-report .stat-strip{grid-template-columns:repeat(5,minmax(0,1fr));gap:0}.project-report .stat-strip>div:last-child{grid-column:auto}.project-report .stat-strip strong{font-size:11pt}.report-subtotal{break-inside:avoid}}.equipment-choice{border:0;min-width:0;padding:0}.equipment-choice legend{margin-bottom:10px;font-size:.875rem;font-weight:550}.equipment-choice>p{margin-top:9px}.equipment-options{border:1px solid var(--line);border-radius:7px;max-height:260px;overflow:auto}.equipment-options label{border-bottom:1px solid var(--line);cursor:pointer;align-items:center;gap:10px;min-height:52px;padding:10px 12px;display:flex}.equipment-options label:last-child{border-bottom:0}.equipment-options input{flex-shrink:0;width:18px;min-height:18px}.equipment-options span{flex:1;font-size:.875rem}.equipment-options small{color:var(--muted);font-size:.75rem;display:block}.equipment-options strong{white-space:nowrap;font-size:.75rem;font-weight:500}.finance-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 0}.finance-stats>div:nth-child(3){border:0}@media (max-width:680px){.finance-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-stats>div:last-child{grid-column:auto}.equipment-options label{flex-wrap:wrap}}@media print{.project-report .stat-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 0}}.markup-settings{background:var(--surface);border:1px solid var(--line);border-radius:8px;grid-template-columns:1.3fr repeat(3,1fr) auto;align-items:end;gap:15px;margin:24px 0 15px;padding:20px;display:grid}.markup-settings h2{font-size:1rem}.markup-settings .muted{margin-top:5px}.markup-settings .field>span{font-size:.75rem}.final-invoice{background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:35px}.final-invoice-header{border-bottom:2px solid var(--foreground);justify-content:space-between;gap:25px;margin-bottom:38px;padding-bottom:24px;display:flex}.final-invoice-header p{letter-spacing:.1em;color:var(--muted);font-size:.6875rem}.final-invoice-header h2{margin:5px 0 14px;font-size:2rem}.final-invoice-header span{color:var(--muted);font-size:.875rem}.final-invoice-header dl{grid-template-columns:auto auto;align-content:start;gap:5px 20px;margin:0;font-size:.75rem;display:grid}.final-invoice-header dt{font-weight:600}.final-invoice-header dd{margin:0}.final-section{margin:0 0 28px}.final-section h3{margin-bottom:8px;font-size:1rem;font-weight:700}.final-section table{border:1px solid var(--foreground);font-size:.75rem}.final-section td,.final-section th{border:1px solid oklch(55% .01 255);padding:6px 7px;font-size:.75rem}.final-section th{color:var(--foreground);background:var(--background);white-space:normal;font-weight:650}.final-section .bill-description{white-space:pre-wrap;overflow-wrap:anywhere;max-width:260px}.final-section .final-subtotal td{border-top:2px solid var(--foreground);font-weight:650}.final-summary{border-top:2px solid var(--foreground);max-width:520px;margin-left:auto;padding-top:14px}.final-summary h3{margin-bottom:10px}.final-summary>div{justify-content:space-between;gap:25px;padding:7px 0;font-size:.8125rem;display:flex}.final-summary strong{white-space:nowrap}.final-summary .final-grandtotal{border-top:1px solid var(--foreground);margin-top:10px;padding-top:14px;font-size:1rem;font-weight:650}@media (max-width:1100px){.markup-settings{grid-template-columns:repeat(3,minmax(0,1fr))}.markup-settings>button,.markup-settings>div{grid-column:1/-1}}@media (max-width:680px){.markup-settings{grid-template-columns:1fr}.markup-settings .field{grid-column:1/-1}.final-invoice{padding:20px 14px}.final-invoice-header{flex-direction:column}.final-section .table-wrap table{min-width:740px}.final-summary>div{gap:12px}}@page finalinvoice{size:A4 portrait;margin:12mm}@media print{.final-invoice{page:finalinvoice;border:0;padding:0}.final-invoice .table-wrap{overflow:visible}.final-section .table-wrap table{table-layout:auto;width:100%;min-width:0}.final-section td,.final-section th{padding:3px 4px;font-size:8pt}.final-section h3{break-after:avoid;font-size:10pt}.final-section thead{display:table-header-group}.final-section tr{break-inside:avoid}.final-subtotal{break-before:avoid}.final-summary{break-inside:avoid}.final-invoice-header{break-inside:avoid;margin-bottom:22px}.final-invoice .footnote{font-size:8pt}.final-invoice-header h2{font-size:22pt}.final-section{margin-bottom:20px}}.invoice-attachments{margin-top:32px}.invoice-attachments>div{margin-bottom:20px}.invoice-attachment-page{border-top:1px solid var(--line);margin:24px 0 0;padding-top:12px}.invoice-attachment-page figcaption{overflow-wrap:anywhere;margin-bottom:10px;font-size:.75rem}.invoice-attachment-page img{object-fit:contain;width:100%;height:auto;display:block}.attachment-print-warning{display:none}@media print{.invoice-attachments{margin:0}.invoice-attachment-page{page:finalinvoice;break-before:page;break-inside:avoid;border:0;flex-direction:column;height:270mm;margin:0;padding:0;display:flex}.invoice-attachment-page figcaption{flex:none;margin:0 0 3mm;font-size:8pt}.invoice-attachment-page img{object-fit:contain;object-position:top center;flex:1;width:100%;height:0;min-height:0}.attachment-print-warning{break-before:page;display:block}}.invoice-runs{margin-top:24px}label.notice{cursor:pointer}.notice .small{margin-left:auto}.calendar-entry-actions .status{align-items:center;gap:5px;display:inline-flex}.audit-filters{flex-wrap:wrap}.audit-filters .field{flex:140px}.audit-filters .audit-search{flex:2 260px}.audit-details{flex-direction:column;gap:2px;display:flex}.audit-details strong{color:var(--foreground);font-weight:600}.deleted-projects{margin-top:24px}.deleted-projects .row-actions .secondary{white-space:nowrap}.purge-confirm{background:oklch(97.5% .012 25);border:1px solid oklch(88% .05 25);border-radius:9px;flex-direction:column;gap:8px;margin:0 24px 20px;padding:16px 18px;font-size:.875rem;display:flex}.purge-confirm strong{color:var(--danger)}.purge-confirm ul{margin:0;padding-left:20px}.purge-confirm .row-actions{justify-content:flex-start;gap:8px;margin-top:4px}.search-box{flex:220px;align-items:center;min-width:0;max-width:380px;display:flex;position:relative}.search-box>svg{color:var(--muted);pointer-events:none;position:absolute;left:12px}.search-box input{min-height:40px;padding-left:38px;padding-right:38px;font-size:.875rem}.search-box input::-webkit-search-cancel-button{display:none}.search-box button{width:32px;height:32px;color:var(--muted);background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;display:inline-flex;position:absolute;right:4px}.search-box button:hover{background:var(--accent-light)}.section-heading{flex-wrap:wrap}.section-heading .search-box{margin-left:auto}.calendar-search{margin:14px 0 6px}.calendar-search .search-box{max-width:none}.calendar-entry-date{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;margin-bottom:2px;padding:0;font-size:.75rem;font-weight:600;text-decoration:underline;display:block}@media (max-width:680px){.section-heading .search-box{flex-basis:100%;order:3;max-width:none;margin-left:0}}.required{color:var(--danger);font-weight:700}.camera-button{cursor:pointer;align-self:flex-start;margin-top:8px}.equipment-choice legend .muted{margin-top:2px;font-weight:400;display:block}.sort-header{color:inherit;font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:5px;align-items:center;gap:5px;margin:-3px -5px;padding:3px 5px;display:inline-flex}.sort-header:hover{color:var(--foreground);background:var(--accent-light)}.sort-header[aria-pressed=true]{color:var(--accent);font-weight:600}.sort-idle{opacity:.4}.sort-header:hover .sort-idle{opacity:.8}@media print{@page finalinvoice{margin:0}.final-invoice{padding:12mm 12mm 14mm}.bill-note{font-size:8pt}}.bill-note{color:var(--muted);margin:8px 0 0;font-size:.8125rem}.final-invoice-header dl.bill-meta{grid-template-columns:auto auto}.weather-prompt{border-color:var(--accent);margin-bottom:18px}.weather-prompt .form-grid .muted{margin:0}.calendar-weather{font-size:.8125rem}.nav-group-heading{color:var(--foreground);margin:4px 0 0;padding:13px 14px 4px;font-size:.8125rem;font-weight:650}.nav-item.child{min-height:40px;margin:1px 0;padding-left:34px;font-size:.8125rem}.nav-item.child>svg{width:16px}@media (max-width:680px){.nav-group{display:contents}.nav-group-heading{display:none}.nav-item.child{min-height:44px;padding-left:11px;font-size:.75rem}}.diary-cover{flex-direction:column;gap:12px;min-height:60vh;padding:40px;display:flex}.diary-cover h2{letter-spacing:-.04em;font-size:2.5rem}.diary-cover dl{grid-template-columns:auto 1fr;gap:6px 18px;margin-top:20px;font-size:1rem;display:grid}.diary-cover dt{color:var(--muted)}.diary-day{margin-top:24px}.diary-head{border-bottom:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 18px;padding:20px 24px;display:grid}.diary-head span{letter-spacing:.08em;color:var(--muted);text-transform:uppercase;font-size:.6875rem;display:block}.diary-head strong{font-weight:550}.diary-section{border-bottom:1px solid var(--line);padding:16px 24px}.diary-section:last-child{border-bottom:0}.diary-section h3{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;font-size:.9375rem;display:flex}.diary-section h3 .row-actions{font-weight:400}.diary-section textarea{min-height:88px}.diary-section p{white-space:pre-wrap}.diary-section ul{margin:0;padding-left:20px}.diary-photos{gap:12px;padding:16px 24px;display:grid}.diary-photos.one{grid-template-columns:1fr}.diary-photos.two{grid-template-columns:repeat(2,minmax(0,1fr))}.diary-photos.many{grid-template-columns:repeat(3,minmax(0,1fr))}.diary-photos figure{border:1px solid var(--line);background:var(--background);border-radius:7px;margin:0;overflow:hidden}.diary-photos img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.diary-photos figcaption{color:var(--muted);padding:6px 10px;font-size:.75rem}.diary-empty{color:var(--muted);font-style:italic}.diary-save{justify-content:flex-end;gap:8px;padding:12px 24px 20px;display:flex}@media (max-width:680px){.diary-head{grid-template-columns:repeat(2,minmax(0,1fr));padding:16px}.diary-photos,.diary-save,.diary-section{padding:14px 16px}.diary-photos.many{grid-template-columns:repeat(2,minmax(0,1fr))}.diary-cover{padding:24px}.diary-cover h2{font-size:1.75rem}}@media print{.diary-cover,.diary-day{break-before:page;border:0;margin:0}.diary-cover:first-child{break-before:auto}.diary-save,.diary-section textarea{display:none}.diary-photos figure{break-inside:avoid}}.diary-cover{text-align:center;align-items:center}.diary-cover dl{text-align:left}.company-logo{object-fit:contain;max-width:240px;max-height:64px;display:block}.diary-cover .company-logo{max-width:320px;max-height:96px;margin-bottom:24px}.logo-settings{flex-wrap:wrap;align-items:center;gap:18px;padding:18px 24px 22px;display:flex}.logo-settings .logo-preview{border:1px dashed var(--line);background:var(--background);border-radius:7px;justify-content:center;align-items:center;min-width:140px;min-height:72px;padding:10px;display:flex}.logo-settings .logo-preview span{color:var(--muted);font-size:.8125rem}.logo-settings .row-actions{flex-wrap:wrap;justify-content:flex-start}.logo-settings input[type=file]{display:none}@media print{.company-logo{max-height:18mm}}.diary-cover{padding-top:120px;position:relative}.diary-cover .company-logo{margin:0;position:absolute;top:24px;left:24px}.diary-day-logo{padding:18px 24px 0}.diary-day-logo .company-logo{max-height:48px}.final-invoice-header .company-logo{margin-bottom:14px}@media (max-width:680px){.diary-cover{padding-top:110px}.diary-cover .company-logo{max-height:64px;top:16px;left:16px}.diary-day-logo{padding:14px 16px 0}}.diary-cover{justify-content:center;gap:0;min-height:70vh}.diary-cover-line,.diary-cover-title{letter-spacing:-.03em;margin:0 0 28px;font-size:2.75rem;font-weight:700;line-height:1.2}.diary-cover-period{margin:40px 0 10px;font-size:1.75rem;font-weight:700}.diary-cover-dates{font-variant-numeric:tabular-nums;white-space:pre;font-size:1.5rem;font-weight:600}@media (max-width:680px){.diary-cover-line,.diary-cover-title{margin-bottom:18px;font-size:1.9rem}.diary-cover-period{margin-top:28px;font-size:1.3rem}.diary-cover-dates{font-size:1.1rem}}@media print{.diary-cover{min-height:240mm}.diary-cover-line,.diary-cover-title{font-size:30pt}.diary-cover-period{font-size:20pt}.diary-cover-dates{font-size:16pt}}.diary{align-items:center;gap:24px}.diary,.diary-page{flex-direction:column;display:flex}.diary-page{box-sizing:border-box;background:var(--surface);width:210mm;max-width:100%;min-height:297mm;margin:0;box-shadow:0 3px 10px oklch(30% .02 255/.06)}.diary-day.diary-page{margin-top:0}.diary-photo-page{padding:0}.diary-photo-caption{color:var(--muted);padding:6px 24px 10px;font-size:.8125rem}.diary-photo{flex:1;justify-content:center;align-items:center;min-height:0;padding:0 12mm 12mm;display:flex}.diary-photo img{object-fit:contain;width:100%;max-width:100%;height:100%;max-height:250mm}.diary .notice{width:210mm;max-width:100%}@media (max-width:900px){.diary-page{min-height:0}.diary-photo{padding:0 16px 16px}.diary-photo img{height:auto;max-height:none}}@page diary{size:A4 portrait;margin:0}@media print{.diary-page{page:diary;break-after:page;break-inside:avoid;width:210mm;max-width:none;height:297mm;min-height:0;box-shadow:none;border:0;border-radius:0;margin:0;padding:12mm;overflow:hidden}.diary-cover.diary-page{padding-top:12mm}.diary-cover .company-logo{top:12mm;left:12mm}.diary-photo-page.diary-page{padding:12mm}.diary-day-logo{padding:0 0 6mm}.diary-photo{padding:0}.diary-photo img{max-height:245mm}.diary{display:block}.diary-page:last-child{break-after:auto}}.company-picker .company-list{flex-direction:column;gap:10px;width:min(100%,420px);display:flex}.company-choice{text-align:left;justify-content:flex-start;gap:12px;min-height:56px}.company-choice span{flex-direction:column;flex:1;display:flex}.company-choice small{color:var(--muted);font-weight:400}.company-picker .primary{display:inline-flex}.sidebar-company{border:1px solid var(--line);background:var(--surface);border-radius:9px;margin:26px 14px 0;padding:12px 14px}.sidebar-company small{letter-spacing:.09em;color:var(--muted);margin-bottom:3px;font-size:.6875rem;display:block}.sidebar-company strong{overflow-wrap:anywhere;font-size:.9375rem;display:block}.sidebar-company .sidebar-links{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.sidebar-company .sidebar-links a,.sidebar-company .sidebar-links button{color:var(--accent);cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;padding:0;font-size:.8125rem;font-weight:600;display:inline-flex}.impersonation-banner{background:oklch(96% .05 80);border-bottom:1px solid oklch(85% .08 80);justify-content:space-between;align-items:center;gap:12px;padding:10px 18px;font-size:.875rem;display:flex}.impersonation-banner strong{font-weight:600}.impersonation-banner button{white-space:nowrap}@media (max-width:680px){.sidebar-company{margin:0 0 10px;padding:9px 12px}.sidebar-company strong{font-size:.875rem}.impersonation-banner{flex-wrap:wrap;padding:8px 16px;font-size:.8125rem}}.platform-main{width:100%;margin-left:0}.platform-list{flex-direction:column;display:flex}.platform-company{border-top:1px solid var(--line);padding:18px 24px}.platform-company.inactive{background:var(--background)}.platform-company-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.platform-modules{flex-wrap:wrap;gap:8px 18px;margin-top:12px;font-size:.8125rem;display:flex}.platform-modules .checkbox-label{align-items:center;gap:6px;display:inline-flex}.rename-form{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.rename-form input{max-width:260px;min-height:36px}.platform-company .icon-button{width:28px;height:28px}@media (max-width:680px){.platform-company{padding:14px 16px}}.env-banner{z-index:1000;color:#fff;text-align:center;letter-spacing:.06em;background:oklch(72% .18 55);padding:6px 12px;font-size:.8125rem;font-weight:700;position:fixed;top:0;left:0;right:0;box-shadow:0 1px 4px oklch(30% .05 55/.3)}body.has-env-banner{padding-top:32px}body.has-env-banner .sidebar{top:32px}body.has-env-banner .bottom-navigation{bottom:0}@media print{.env-banner{display:none}body.has-env-banner{padding-top:0}}.material-qty{align-items:center;gap:6px;display:flex}.material-qty input{text-align:right;width:96px;min-height:40px;padding:6px 10px}.material-stepper .material-qty{gap:4px}.material-stepper .material-qty input{text-align:center;width:72px;min-height:44px;padding:6px 4px}.material-stepper .material-qty small{min-width:22px}.material-qty small{color:var(--muted);min-width:34px}.copy-from{align-items:center;gap:6px;display:inline-flex}.copy-from select{max-width:240px;min-height:44px;font-size:.875rem}.checkbox-grid{flex-wrap:wrap;gap:8px 20px;padding:6px 0;display:flex}.platform-hero{color:#fff;background:linear-gradient(135deg,oklch(30% .055 190),oklch(42.5% .072 183) 55%,oklch(60% .12 140));border-radius:16px;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start;gap:24px 32px;margin-bottom:26px;padding:34px 36px 30px;display:grid;position:relative;overflow:hidden}.platform-hero .eyebrow{color:oklch(90% .05 125)}.platform-hero h1{color:#fff;max-width:22ch;font-size:2.1rem}.platform-hero .subtitle{color:oklch(92% .02 170);max-width:60ch}.platform-hero:after{content:"";background:oklch(100% 0 0/.08);border-radius:50%;width:280px;height:280px;position:absolute;top:-80px;right:-80px}.platform-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid;position:relative}.platform-stats>div{text-align:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:oklch(100% 0 0/.12);border:1px solid oklch(100% 0 0/.18);border-radius:12px;padding:14px 12px}.platform-stats strong{letter-spacing:-.04em;font-size:1.75rem;font-weight:700;line-height:1.1;display:block}.platform-stats span{color:oklch(92% .02 170);font-size:.75rem}.platform-cta{color:oklch(35% .12 260);background:#fff;grid-column:1/-1;justify-self:start;box-shadow:0 4px 14px oklch(0 0 0/.18)}.platform-cta:hover{background:oklch(95% .025 170)}.platform-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:8px 0 14px;display:flex}.platform-toolbar h2{align-items:center;gap:8px;display:flex}.platform-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;display:grid}.platform-card{flex-direction:column;gap:14px;padding:20px 22px;transition:transform .15s,box-shadow .15s;display:flex}.platform-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px oklch(30% .05 255/.12)}.platform-card.inactive{background:var(--background);opacity:.85}.platform-card-head{align-items:flex-start;gap:12px;display:flex}.platform-avatar{color:#fff;background:linear-gradient(135deg,oklch(50% .15 255),oklch(60% .16 205));border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:.9375rem;font-weight:700;display:flex}.platform-avatar.inactive{background:oklch(75% .02 255)}.platform-card-title{flex:1;min-width:0}.platform-card-title h3{overflow-wrap:anywhere;align-items:center;gap:4px;font-size:1.0625rem;display:flex}.platform-card-title .icon-button{width:26px;height:26px}.platform-card-title p{flex-wrap:wrap;align-items:center;gap:5px;margin-top:2px;display:flex}.platform-chips{flex-wrap:wrap;gap:7px;display:flex}.chip{border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:999px;align-items:center;gap:5px;padding:6px 11px;font-size:.75rem;font-weight:600;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.chip.on{color:oklch(40% .1 170);background:oklch(95% .03 170);border-color:oklch(82% .08 170)}.chip.off{-webkit-text-decoration:line-through oklch(80% .01 255);text-decoration:line-through oklch(80% .01 255)}.chip:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.platform-card-actions{border-top:1px solid var(--line);flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:4px;display:flex}.platform-card-actions .small{min-height:38px}@media (max-width:900px){.platform-hero{grid-template-columns:1fr;padding:24px 20px}.platform-hero h1{font-size:1.6rem}.platform-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-grid{grid-template-columns:1fr}}.price-index{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:flex-end;gap:10px;padding:4px 24px 16px;display:flex}.price-index .field{width:170px}.price-index .muted{flex:1;align-self:center;min-width:200px}.indexed-price{color:var(--accent);font-weight:600}@media (max-width:680px){.price-index{padding:4px 16px 14px}.price-index .field{width:100%}}.ata-choice .ata-modes{flex-wrap:wrap;gap:8px 20px;margin-bottom:10px;display:flex}.ata-choice select,.ata-new{margin-bottom:8px}.ata-new{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.ata-new .wide{grid-column:1/-1}.ata-badge{color:oklch(42% .1 65);background:oklch(95% .05 80);border-radius:5px;margin-top:4px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-block}.underlag-scope{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;display:flex}.underlag-scope>span{font-size:.875rem;font-weight:600}.underlag-scope select{max-width:280px;min-height:44px}@media (max-width:680px){.ata-new{grid-template-columns:1fr}}.clickable-row{cursor:pointer}.clickable-row:hover td{background:var(--accent-light)}.invite-notice{align-items:flex-start}.invite-body{flex-direction:column;gap:6px;min-width:0;display:flex}.invite-body p{margin:0}.invite-code{border:1px dashed var(--line);background:var(--surface);letter-spacing:.12em;-webkit-user-select:all;user-select:all;border-radius:6px;align-self:flex-start;padding:4px 12px;font-family:ui-monospace,Consolas,monospace;font-size:1.25rem}.invite-field p{margin:0 0 8px}.invite-field button{align-self:flex-start;align-items:center;gap:6px;display:inline-flex}.join-company{text-align:left;flex-direction:column;gap:12px;width:min(100%,420px);display:flex}.join-company input{text-transform:uppercase;letter-spacing:.08em;font-family:ui-monospace,Consolas,monospace}.join-company .notice{margin:0}.join-details{text-align:left;width:min(100%,420px)}.join-details summary{cursor:pointer;color:var(--accent);margin-bottom:10px;font-size:.875rem;font-weight:600}.topbar-links{align-items:center;gap:14px;display:flex}.platform-logout{color:var(--muted);font-size:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;min-height:44px;padding:0;display:inline-flex}.platform-admins{margin-top:24px;padding-bottom:24px}.platform-admins>:not(.section-heading):not(.form-grid){margin-left:24px;margin-right:24px}.platform-admins>.muted{margin-top:0;margin-bottom:14px}.platform-subheading{align-items:center;gap:8px;margin:22px 0 10px;font-size:1rem;display:flex}.admin-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.admin-list li{border:1px solid var(--line);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;padding:12px 14px;display:flex}.admin-list li>div:first-child{flex-direction:column;gap:2px;min-width:0;display:flex}.admin-list small{color:var(--muted);overflow-wrap:anywhere}.admin-list .warning-text{color:var(--danger)}.admin-actions{flex-wrap:wrap;gap:8px;display:flex}.confirm-box{border:1px solid var(--accent);background:var(--accent-light);border-radius:8px;flex-direction:column;gap:12px;margin-bottom:14px;padding:14px;display:flex}.confirm-box>div{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.confirm-box input{letter-spacing:.2em;max-width:200px;font-family:ui-monospace,Consolas,monospace}.event-list{border:1px solid var(--line);border-radius:8px;max-height:360px;margin:0;padding:0;font-size:.8125rem;list-style:none;overflow:auto}.event-list li{border-bottom:1px solid var(--line);gap:12px;padding:8px 12px;display:flex}.event-list li:last-child{border-bottom:0}.event-list time{color:var(--muted);white-space:nowrap;min-width:110px}.event-list li.alert{background:var(--danger)}@supports (color:color-mix(in lab,red,red)){.event-list li.alert{background:color-mix(in oklch,var(--danger) 10%,transparent)}}.platform-security-card .setup-key{word-spacing:.3em;text-align:center;align-self:stretch;margin:6px 0 10px;font-size:1.05rem;display:block}.backup-codes{grid-template-columns:repeat(2,1fr);gap:8px;margin:0 0 18px;padding:0;list-style:none;display:grid}.backup-codes code{text-align:center;border:1px dashed var(--line);letter-spacing:.08em;border-radius:6px;padding:6px;font-family:ui-monospace,Consolas,monospace;display:block}.backup-actions{flex-wrap:wrap;gap:10px;display:flex}.backup-actions .primary,.backup-actions .secondary{flex:1;justify-content:center}@media (max-width:680px){.event-list li{flex-direction:column;gap:2px}.event-list time{min-width:0}.platform-admins{padding-bottom:20px}.platform-admins>:not(.section-heading):not(.form-grid){margin-left:18px;margin-right:18px}}.crumb{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.crumb:hover{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.wizard-callout{background:var(--accent-light);border-color:#0000;justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px;padding:20px 24px;display:flex}.wizard-callout h2{margin-bottom:4px;font-size:1rem}.wizard-steps{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:6px 20px;margin:0;padding:0 24px 18px;list-style:none;display:flex}.wizard-steps li,.wizard-steps li>button,.wizard-steps li>span{color:var(--muted);align-items:center;gap:8px;font-size:.8125rem;display:flex}.wizard-steps li>button{cursor:pointer;font:inherit;color:var(--foreground);background:0 0;border:0;padding:0}.wizard-steps li>button:hover{color:var(--accent)}.wizard-steps .step-number{border:1px solid var(--line);background:var(--surface);border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:.75rem;font-weight:650;display:inline-flex}.wizard-steps .current>span{color:var(--foreground);font-weight:650}.wizard-steps .current .step-number{background:var(--accent);border-color:var(--accent);color:var(--surface)}.wizard-steps .done .step-number{background:var(--accent-light);color:var(--accent);border-color:#0000}.wizard-body{flex-direction:column;gap:14px;padding:22px 24px 0;display:flex}.wizard-body>h3{outline:none;font-size:1.0625rem}.wizard-note{color:var(--muted);max-width:75ch;font-size:.875rem}.wizard-choice{border:1px solid var(--line);border-radius:9px;flex-direction:column;gap:10px;padding:14px 16px;display:flex}.wizard-choice.selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.wizard-choice-head{cursor:pointer;align-items:center;gap:10px;display:flex}.wizard-choice-head input{width:18px;min-height:18px}.wizard-choice>input,.wizard-choice>select{max-width:520px}.wizard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;display:grid}.wizard-grid>small,.wizard-imports{grid-column:1/-1}.wizard-imports{border:0;flex-wrap:wrap;gap:8px 22px;margin:0;padding:0;display:flex}.wizard-imports legend{margin-bottom:8px;font-size:.875rem;font-weight:550}.wizard-price-tools{justify-content:space-between;align-items:center;gap:14px;display:flex}.wizard-price{text-align:right;max-width:130px;min-height:38px;padding:6px 10px}.wizard-summary{gap:10px;margin:0;padding:0;list-style:none;display:grid}.wizard-summary li{border:1px solid var(--line);border-radius:9px;align-items:flex-start;gap:14px;padding:14px 16px;display:flex}.wizard-summary li>svg{color:var(--accent);flex-shrink:0;margin-top:2px}.wizard-summary li>div{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.wizard-summary li>div>span{overflow-wrap:anywhere}.wizard-footer{border-top:1px solid var(--line);justify-content:space-between;gap:10px;margin-top:6px;padding:18px 0 22px;display:flex}.wizard-footer>div{gap:8px;display:flex}@media (max-width:680px){.wizard-callout{flex-direction:column;align-items:flex-start}.wizard-grid{grid-template-columns:1fr}.wizard-body{padding:18px 16px 0}.wizard-steps{padding:0 16px 14px}.wizard-footer{flex-wrap:wrap}}.register-row{cursor:pointer}.register-row:hover td{background:var(--accent-light)}.register-name{font:inherit;color:var(--foreground);text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.register-name:hover{color:var(--accent)}.economy-table .economy-total td{background:var(--accent-light);border-top:1px solid var(--line)}.economy-stats strong small{color:var(--muted);margin-left:4px}.project-heading{align-items:flex-end}.back-link{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;margin-bottom:14px;padding:0;font-size:.8125rem;display:inline-flex}.back-link:hover{color:var(--accent)}.project-heading-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.project-tabs{border-bottom:1px solid var(--line);scrollbar-width:thin;gap:2px;margin:0 0 22px;display:flex;overflow:auto hidden}.project-tabs button{color:var(--muted);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:7px;margin-bottom:-1px;padding:11px 14px;font-size:.875rem;font-weight:550;display:inline-flex}.project-tabs button:hover{color:var(--foreground)}.project-tabs button[aria-current=page]{color:var(--accent);border-bottom-color:var(--accent);font-weight:650}.tab-count{background:var(--accent-light);color:var(--accent);border-radius:999px;padding:0 7px;font-size:.6875rem;font-weight:650;line-height:1.6}.stat-link{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0;display:block}.stat-link:hover strong{color:var(--accent)}.project-overview{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start;gap:22px;display:grid}.project-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px;margin:0;padding:4px 24px 24px;display:grid}.project-facts dt{color:var(--muted);margin-bottom:3px;font-size:.75rem}.project-facts dd{overflow-wrap:anywhere;margin:0;font-size:.9375rem}.project-facts a{color:var(--accent);align-items:center;gap:4px;display:inline-flex}.recent-drawings{gap:8px;margin:0;padding:0 24px 20px;list-style:none;display:grid}.recent-drawings li{border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.recent-drawings a{color:var(--foreground);overflow-wrap:anywhere;align-items:center;gap:8px;font-weight:550;display:inline-flex}.recent-drawings a:hover{color:var(--accent)}.drawing-drop{border:2px dashed var(--line);align-items:center;gap:16px;margin-bottom:18px;padding:20px 24px;display:flex}.drawing-drop>svg{color:var(--accent);flex-shrink:0}.drawing-drop>div{flex:1}.drawing-drop.dragging{border-color:var(--accent);background:var(--accent-light)}.drawing-uploads{margin-bottom:18px}.drawing-uploads ul{gap:8px;margin:0;padding:12px 20px;list-style:none;display:grid}.drawing-uploads li{align-items:center;gap:12px;font-size:.8125rem;display:flex}.drawing-upload-name{overflow-wrap:anywhere;flex:0 40%}.drawing-uploads progress{height:8px;accent-color:var(--accent);flex:1}.drawing-name{color:var(--foreground);overflow-wrap:anywhere;font-weight:600}.drawing-name:hover{color:var(--accent);text-underline-offset:3px;text-decoration:underline}@media (max-width:680px){.project-heading{flex-direction:column;align-items:flex-start}.project-facts,.project-overview{grid-template-columns:1fr}.drawing-drop{flex-direction:column;align-items:flex-start}.drawing-upload-name{flex-basis:50%}}@media print{.back-link,.project-tabs{display:none}}@media (max-width:680px){.project-tabs{border-bottom:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:18px;display:grid;overflow:visible}.project-tabs button{border:1px solid var(--line);background:var(--surface);white-space:normal;text-align:left;border-radius:8px;justify-content:flex-start;min-height:44px;margin:0;padding:10px 12px}.project-tabs button[aria-current=page]{border-color:var(--accent);background:var(--accent-light)}.project-tabs button .tab-label,.project-tabs button .tab-short{flex:1;min-width:0}.project-tabs button:has(.tab-short) .tab-label{display:none}}.tab-short{display:none}@media (max-width:680px){.project-tabs .tab-short{display:inline}.table-wrap table.project-list tbody{gap:10px;padding:4px 14px 16px;display:grid}.table-wrap table.project-list tbody tr{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:0;box-shadow:0 1px 2px oklch(20% .02 183/.05)}.table-wrap table.project-list tbody tr:last-child{border-bottom:1px solid var(--line)}.table-wrap table.project-list tbody td:not(:first-child){display:none}.table-wrap table.project-list tbody td:first-child{padding:14px 16px}.table-wrap table.project-list tbody td:first-child:before{display:none}.table-wrap table.project-list tbody td:first-child .name-cell{width:100%}.table-wrap table.project-list tbody td:first-child .name-cell:after{content:"›";color:var(--muted);margin-left:auto;font-size:1.4rem;line-height:1}.table-wrap table.project-list .register-name{font-size:1rem}}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}.mobile-navigation{display:none}.nav-item span{min-width:0;overflow-wrap:anywhere;white-space:normal}@media screen and (max-width:1200px){.table-wrap{overflow:visible;min-width:0}.page .table-wrap table.responsive-table{display:block;width:100%;min-width:0;border:0}.responsive-table thead{display:block;position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.responsive-table thead th,.responsive-table thead tr{display:block;width:1px;height:1px;padding:0;overflow:hidden;white-space:normal}.responsive-table tbody{display:block}.responsive-table tbody tr{display:block;border-bottom:1px solid var(--line);padding:14px 16px}.responsive-table tbody tr:last-child{border-bottom:0}.responsive-table tbody td{display:flex;justify-content:space-between;align-items:baseline;gap:16px;min-width:0;padding:6px 0;border:0;text-align:left;white-space:normal;overflow-wrap:anywhere;max-width:none;font-size:.875rem}.responsive-table td:before{content:attr(data-label);flex:0 0 38%;color:var(--muted);font-size:.75rem;font-weight:500;text-align:left}.responsive-table td[data-label=""]:before,.responsive-table td[data-span]:not([data-span="1"]):before{display:none}.responsive-table td>*{min-width:0;max-width:100%}.responsive-table td.numeric{font-variant-numeric:tabular-nums;text-align:right}.responsive-table td:has(.entry-images),.responsive-table td:has(.row-note){display:block}.responsive-table td:has(.row-note):before{display:block;margin-bottom:4px}.responsive-table .name-cell{flex:1;align-items:flex-start}.responsive-table .row-actions{flex:1;flex-wrap:wrap}.responsive-table .final-subtotal{background:var(--background);font-weight:650}.responsive-table .final-subtotal td:empty{display:none}.history .responsive-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px}.history .responsive-table td{grid-column:1/-1;padding:4px 0}.history .responsive-table td:first-child{grid-column:1;grid-row:1;color:var(--muted);font-size:.8125rem}.history .responsive-table td.numeric{grid-column:2;grid-row:1;color:var(--accent);font-size:1.125rem;justify-content:flex-end}.history .responsive-table td:nth-child(2){grid-row:2}.history .responsive-table td.numeric:before,.history .responsive-table td:first-child:before,.history .responsive-table td:last-child:before,.history .responsive-table td:nth-child(2):before{display:none}.history .responsive-table td:last-child{border-top:1px solid var(--line);margin-top:8px;padding-top:8px}.history .row-note{font-size:.875rem;max-width:none}.section-heading{flex-wrap:wrap;align-items:flex-start}.section-heading h2{min-width:0;overflow-wrap:anywhere}.icon-button{width:44px;min-width:44px;min-height:44px}.attachment-link{max-width:100%;white-space:normal}.attachment-link,.stat-strip strong{overflow-wrap:anywhere}}@media screen and (max-width:760px){.app-shell{display:block}.sidebar{position:relative;inset:auto;width:100%;padding:12px 16px;border-right:0;border-bottom:1px solid var(--line)}.sidebar .brand{margin:0 0 12px;padding:0}.nav-heading,.sidebar nav,.sidebar-bottom{display:none}.mobile-navigation{display:block}.mobile-navigation select{font-weight:600;min-height:46px}.main-content{margin:0;width:100%}.topbar{padding:0 16px;height:auto;min-height:48px;gap:12px}.topbar>span{min-width:0;flex-wrap:wrap;gap:4px}.topbar .today{display:none}.mobile-logout{display:inline-flex;flex-shrink:0;align-items:center;min-height:44px}.page{padding:24px 16px 12px}.page-heading{flex-direction:column;align-items:flex-start}.page-heading>div{min-width:0}h1{overflow-wrap:anywhere}.time-layout{grid-template-columns:minmax(0,1fr)}.filters{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid{grid-template-columns:minmax(0,1fr)}.form-grid .wide{grid-column:auto}.form-bottom,.form-bottom>div{width:100%;flex-wrap:wrap}.form-bottom button{flex:1;white-space:normal}.filters input,.filters select,input,select,textarea{font-size:16px;max-width:100%;min-height:44px}.invoice-actions{align-items:stretch}.invoice-actions>div{display:flex;flex-wrap:wrap;width:100%}.invoice-actions button{flex:1;white-space:normal}.markup-settings{grid-template-columns:minmax(0,1fr)}.markup-settings .field,.markup-settings>button,.markup-settings>div{grid-column:1}.final-invoice{padding:20px 12px;min-width:0}.final-invoice-header{flex-direction:column;overflow-wrap:anywhere}.final-invoice-header h2{font-size:1.5rem}.final-invoice-header dl{grid-template-columns:auto minmax(0,1fr)}.final-invoice-header dd{overflow-wrap:anywhere}.final-summary>div,.report-subtotal{flex-wrap:wrap;gap:6px 12px}.final-summary strong{white-space:normal;overflow-wrap:anywhere}.report-heading{flex-direction:column;align-items:flex-start}.report-period{text-align:left}.name-cell>div{min-width:0}.notice{overflow-wrap:anywhere}.notice button{flex-shrink:0}.equipment-quantity-row{flex-wrap:wrap}.equipment-quantity-row>span{min-width:0;overflow-wrap:anywhere}.login-content{min-width:0}.login-content h1{overflow-wrap:anywhere}.login-footer{gap:12px;flex-wrap:wrap}}@media screen and (max-width:380px){.filters,.finance-stats,.stat-strip{grid-template-columns:minmax(0,1fr)}.stat-strip>div{border-right:0;padding:12px 16px}.stat-strip span{margin-bottom:4px}.invoice-actions>div{flex-direction:column}.page-footer{gap:16px;flex-wrap:wrap}}