:root{--ink: #1d252c;--muted: #5f6f7a;--line: #d5dee5;--surface: #ffffff;--panel: #f6f8fa;--nav: #111923;--nav-soft: #22303b;--blue: #1f5f8b;--blue-dark: #174766;--teal: #087f7a;--amber: #b7791f;--gold: #f0c34e;--red: #b42318;--green: #1f7a4d;--shadow: 0 18px 50px rgba(16, 24, 32, .12)}*{box-sizing:border-box}html{overscroll-behavior-y:contain}body{margin:0;min-height:100vh;background:#edf2f5;color:var(--ink);font-family:Arial,Helvetica,sans-serif;letter-spacing:0;overscroll-behavior-y:contain}.auth-setup{min-height:100vh;display:grid;place-content:center;gap:8px;padding:24px;text-align:center;background:var(--panel)}.auth-setup h1,.auth-setup p{margin:0}.auth-page{position:relative;isolation:isolate;min-height:100vh;display:grid;place-items:center;padding:28px;overflow:hidden;background:#050607}.auth-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2;background:radial-gradient(circle at center,rgba(255,255,255,.11),transparent 42%),linear-gradient(180deg,#0506071f,#050607b8)}.auth-background-brand{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;display:block;padding:40px;text-align:center;color:#fff;opacity:.5}.auth-background-brand img{position:absolute;top:clamp(8px,3.5vh,42px);left:50%;width:min(680px,72vw);max-height:24vh;object-fit:contain;transform:translate(-50%);filter:drop-shadow(0 0 24px rgba(255,255,255,.38))}.auth-background-brand div{position:absolute;left:50%;bottom:clamp(34px,6vh,72px);transform:translate(-50%);width:min(760px,90vw)}.auth-background-brand .eyebrow{color:#a9d8d5}.auth-background-brand h1{margin:0;font-size:clamp(40px,7vw,84px);line-height:1}.auth-card{width:min(470px,100%);padding:14px;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:#070a0d6b;box-shadow:0 28px 80px #00000080;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);transform:translateY(44px)}.clerk-root{width:100%}.clerk-card{width:100%;margin:0 auto;border:1px solid rgba(255,255,255,.18);background:#080c1094;box-shadow:none;color:#f8fbfd;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.clerk-inner-card{background:transparent}.clerk-title{color:#f8fbfd}.clerk-subtitle{color:#b8c8d2}.clerk-social-button,.clerk-field-input,.clerk-code-input,.clerk-card input[inputmode=numeric],.clerk-card input[autocomplete=one-time-code]{border-color:#ffffff38;background:#ffffff1a;color:#f8fbfd;box-shadow:none}.clerk-code-input::selection,.clerk-field-input::selection{background:#2f89c58c;color:#fff}.clerk-card input[inputmode=numeric]::placeholder,.clerk-card input[autocomplete=one-time-code]::placeholder{color:#f8fbfd94}.clerk-social-button-text,.clerk-field-label,.clerk-divider-text,.clerk-footer-text,.clerk-muted-text{color:#cbd7df}.clerk-divider-line{background:#ffffff2e}.clerk-primary-button{background:#2f89c5e6;box-shadow:0 10px 28px #1f5f8b42}.clerk-primary-button:hover{background:#2f89c5}.clerk-footer,.clerk-footer-pages{background:transparent;border-color:#ffffff1f}.clerk-footer-link{color:#8fd4ff}button,input,select{font:inherit}button{cursor:pointer}#root{min-height:100vh}.app-shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh}.app-shell.sidebar-collapsed{grid-template-columns:1fr}.sidebar{background:var(--nav);color:#f6f8fa;display:flex;flex-direction:column;padding:24px 18px;gap:28px}.sidebar.collapsed{display:none}.brand,.sidebar-footer{display:flex;align-items:center;gap:12px}.brand{position:relative}.avatar{width:42px;height:42px;display:grid;place-items:center;background:var(--blue);color:#fff;font-weight:800;border-radius:8px;flex:0 0 auto}.brand-logo{width:58px;height:42px;object-fit:contain;flex:0 0 auto;border-radius:8px;background:#ffffff0f}.brand span,.sidebar-footer span{display:block;color:#b8c4ce;font-size:13px;margin-top:3px}.sidebar-footer .app-version{color:#7f95a6;font-size:12px}.sidebar-close{display:none;margin-left:auto;width:36px;height:36px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#ffffff14;color:#fff}.nav-list{display:grid;gap:6px}.nav-item{width:100%;border:0;color:#dce5ec;background:transparent;border-radius:8px;padding:12px;text-align:left;display:flex;align-items:center;gap:10px}.nav-item.active,.nav-item:hover{background:var(--nav-soft);color:#fff}.sidebar-footer{margin-top:auto;padding-top:18px;border-top:1px solid rgba(255,255,255,.12)}.workspace{position:relative;min-width:0;padding:24px}.refresh-indicator{position:fixed;top:14px;left:50%;z-index:30;min-height:34px;display:grid;place-items:center;padding:0 14px;border:1px solid rgba(31,95,139,.22);border-radius:999px;background:#fffffff0;color:var(--blue);font-size:13px;font-weight:700;box-shadow:0 10px 30px #10182024;opacity:0;pointer-events:none;transition:opacity .14s ease,transform .14s ease}.refresh-indicator.visible{opacity:1}.topbar,.section-toolbar,.panel-heading,.modal-heading,.modal-actions{display:flex;align-items:center;justify-content:space-between;gap:16px}.topbar{margin-bottom:24px}.menu-button{display:inline-grid;place-items:center}.topbar h1,.section-toolbar h2,.panel h2,.modal h2{margin:0}.eyebrow{margin:0 0 4px;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:0;text-transform:uppercase}.topbar-actions{display:flex;gap:10px;align-items:center;position:relative}.primary-button,.secondary-button,.text-button,.icon-button,.menu-button{border-radius:8px;min-height:40px;border:1px solid transparent}.primary-button{background:var(--blue);color:#fff;border-color:var(--blue);padding:0 14px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:7px}.primary-button:hover{background:var(--blue-dark);border-color:var(--blue-dark)}.secondary-button{background:#fff;color:var(--ink);border-color:var(--line);padding:0 14px}.text-button{background:transparent;color:var(--blue);padding:0;min-height:auto;font-weight:700}.icon-button,.menu-button{width:40px;background:#fff;border-color:var(--line);color:var(--ink);display:inline-grid;place-items:center}.notification-menu,.notification-button{position:relative}.notification-button span{position:absolute;top:-7px;right:-7px;min-width:20px;height:20px;display:grid;place-items:center;padding:0 5px;border:2px solid var(--panel);border-radius:999px;background:var(--blue);color:#fff;font-size:11px;font-weight:800}.notification-panel{position:absolute;top:calc(100% + 10px);right:0;z-index:40;width:min(380px,calc(100vw - 32px));max-height:min(560px,calc(100vh - 110px));overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 20px 48px #1018202e;padding:12px}.notification-heading{display:grid;gap:3px;padding:4px 4px 10px;border-bottom:1px solid var(--line)}.notification-heading span,.notification-item small,.notification-item em{color:var(--muted);font-size:12px}.notification-list{display:grid;gap:8px;margin-top:10px}.notification-item{width:100%;display:grid;gap:4px;border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:10px;text-align:left}.notification-item:hover{border-color:#1f5f8b59;background:#eaf2fb}.notification-item span,.notification-item strong{overflow-wrap:anywhere}.notification-item em{font-style:normal}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.85fr);gap:18px}.wide-panel{grid-column:1 / -1}.panel,.task-item,.project-card,.estimate-card,.board-column{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 1px #10182008}.panel{padding:18px}.api-banner,.loading-panel{margin-bottom:18px}.api-banner{display:flex;justify-content:space-between;gap:14px;align-items:center;border:1px solid #fecaca;border-left:4px solid var(--red);border-radius:8px;background:#fff7f7;padding:14px}.api-banner span,.loading-panel span{display:block;color:var(--muted);font-size:13px;margin-top:4px}.loading-panel{display:grid;gap:4px}.count-pill,.status-pill,.priority-pill{border-radius:999px;padding:5px 9px;font-size:12px;font-weight:700;white-space:nowrap}.count-pill{background:#fff4d6;color:#7a4a00}.alert-list,.task-list,.event-list{display:grid;gap:10px;margin-top:16px}.alert-item,.event-item{display:grid;gap:4px;padding:12px;border-left:3px solid var(--blue);background:var(--panel);border-radius:6px}.draggable-card{cursor:grab;transition:background .14s ease,box-shadow .14s ease,opacity .14s ease,transform .14s ease}.draggable-card:active{cursor:grabbing}.draggable-card.dragging{opacity:.62;background:#eaf2fb;box-shadow:inset 0 0 0 2px #1f5f8b2e;transform:scale(.995)}.alert-item strong,.event-item strong,.task-item strong,.project-card strong,.estimate-card strong{overflow-wrap:anywhere}.alert-item span,.event-item span,.task-meta,.card-meta{color:var(--muted);font-size:13px}.event-item-button,.note-card-button{width:100%;border:0;text-align:left;font:inherit;cursor:pointer}.event-item-button:hover,.note-card-button:hover{background:#eaf2fb}.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.quick-action{min-height:96px;border:1px solid var(--line);border-radius:8px;background:var(--panel);display:grid;place-items:center;gap:6px;color:var(--ink)}.quick-action span{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:#dbeafe;color:var(--blue);font-weight:800}.project-table{display:grid;gap:1px;overflow:hidden;border:1px solid var(--line);border-radius:8px;margin-top:16px}.project-row{display:grid;grid-template-columns:120px 1fr 150px 130px;gap:12px;align-items:center;padding:12px;background:#fff}.project-row-button{width:100%;border:0;text-align:left;color:var(--ink)}.project-row-button:hover{background:var(--panel)}.project-row.header{background:var(--panel);color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase}.section-toolbar{margin-bottom:18px}.view-switcher{display:flex;gap:8px;margin:0 0 18px}.view-switcher button{display:inline-flex;align-items:center;gap:7px;min-height:36px;border:1px solid var(--line);border-radius:6px;padding:0 12px;background:#fff;color:var(--muted);font:inherit;font-weight:700;cursor:pointer}.view-switcher button.active{border-color:var(--blue);background:#dbeafe;color:#1e3a8a}.view-switcher strong{font-size:12px}.list-controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:0 0 18px}.list-search,.list-sort{display:grid;gap:6px}.list-search{width:min(520px,100%)}.list-sort{min-width:160px}.list-search span,.list-sort span{color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase}.list-search input,.list-sort select{min-height:40px;border:1px solid var(--line);border-radius:8px;padding:0 12px;background:#fff;font:inherit}.task-item{display:grid;grid-template-columns:24px minmax(0,1fr) minmax(160px,210px);align-items:center;gap:12px;padding:14px}.task-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:nowrap;min-width:0}.my-day-button{border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);min-height:30px;padding:0 10px;font-size:12px;font-weight:700;white-space:nowrap}.my-day-button.active{border-color:#bfdbfe;background:#dbeafe;color:#1e3a8a}.task-item.complete,.compact-task.complete{background:#f8fafc}.task-item.complete .task-info strong,.compact-task.complete strong{color:var(--muted);text-decoration:line-through}.check-dot{width:22px;height:22px;border-radius:6px;border:2px solid var(--blue);background:#fff;color:#fff;display:inline-grid;place-items:center;padding:0;flex:0 0 auto}.check-dot.checked{background:var(--green);border-color:var(--green)}.task-info{min-width:0}.task-edit-trigger{display:grid;gap:3px;min-width:0;border:0;padding:0;background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer}.task-meta{margin-top:3px}.priority-high{background:#fee4e2;color:var(--red)}.priority-normal{background:#e0f2fe;color:#075985}.priority-low{background:#dcfce7;color:var(--green)}.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px}.calendar-toolbar-actions,.calendar-nav{display:flex;align-items:center;gap:10px}.calendar-nav strong{min-width:150px;text-align:center}.calendar-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--line)}.calendar-head,.calendar-day,.muted-day{min-height:104px;background:#fff;padding:10px}.calendar-day,.muted-day{border:0;border-radius:0;color:var(--ink);text-align:left;font:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start}.calendar-head{min-height:auto;color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;background:var(--panel)}.calendar-event-stack{display:grid;gap:3px;min-height:0;margin-top:8px}.calendar-day .event-segment{display:block;min-height:24px;margin:0;padding:6px;border-radius:0;background:#dbeafe;color:#1e3a8a;font-size:12px;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-day .event-segment-start{border-top-left-radius:6px;border-bottom-left-radius:6px}.calendar-day .event-segment-end{border-top-right-radius:6px;border-bottom-right-radius:6px}.calendar-day .event-segment:not(.event-segment-start){margin-left:-10px;padding-left:10px}.calendar-day .event-segment:not(.event-segment-end){margin-right:-10px;padding-right:10px}.calendar-day .more-events{display:block;padding:4px 6px;color:var(--blue);font-size:12px;font-weight:700}.calendar-day>strong{display:block;color:var(--ink)}.active-day{outline:2px solid var(--blue);outline-offset:-2px}.selected-day{background:#eff6ff}.muted-day{color:#9aa7b2}.calendar-upcoming-heading{margin-top:22px}.danger-button{display:inline-flex;align-items:center;gap:7px;border:1px solid #fecaca;border-radius:6px;padding:9px 12px;background:#fff1f2;color:var(--red);font:inherit;font-weight:700;cursor:pointer}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:14px}.project-card,.estimate-card{padding:16px;display:grid;gap:12px}.archive-card-grid{grid-template-columns:repeat(4,minmax(210px,1fr));gap:10px}.archive-card{padding:12px}.archive-card .card-actions{gap:6px}.archive-card .small-button{padding:7px 8px;font-size:12px}.card-topline{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.card-actions{display:flex;flex-wrap:wrap;gap:8px}.small-button{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:8px;min-height:34px;padding:0 10px}.small-button.danger-small{border-color:#fecaca;background:#fff7f7;color:var(--red);font-weight:800}.small-button.danger-small:hover{border-color:var(--red);background:#fee4e2}.status-start-project{background:#e0f2fe;color:#075985}.status-ongoing{background:#ccfbf1;color:var(--teal)}.status-completed{background:#dcfce7;color:var(--green)}.status-billed{background:#fef3c7;color:var(--amber)}.status-archived{background:#e5e7eb;color:#374151}.board{display:grid;grid-template-columns:repeat(5,minmax(210px,1fr));gap:12px;overflow-x:auto;padding-bottom:6px}.board-column{padding:12px;min-height:360px;background:var(--panel);transition:background .16s ease,outline-color .16s ease}.board-column.drop-target{outline:2px dashed var(--blue);outline-offset:-2px;background:#eff6ff}.board-column-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}.board-column-heading h3{margin:0;font-size:15px}.board-column-heading label{display:grid;gap:4px;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase}.board-column-heading select{min-height:30px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);font-size:12px;font-weight:700;padding:0 8px}.board-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px;display:grid;gap:8px;margin-bottom:10px;cursor:grab}.board-card:active{cursor:grabbing}.project-detail{display:grid;gap:16px}.detail-header{display:grid;gap:14px;padding:18px;border:1px solid var(--line);border-radius:8px;background:#fff}.detail-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.detail-title-row h2{margin:0}.detail-meta-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.meta-tile{border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:12px;display:grid;gap:4px}.meta-tile span{color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase}.meta-tile strong{overflow-wrap:anywhere}.meta-tile.warning{border-color:#fed7aa;background:#fff7ed}.detail-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.detail-tab{border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);min-height:38px;padding:0 12px;white-space:nowrap}.detail-tab.active{border-color:var(--blue);background:#dbeafe;color:#1e3a8a;font-weight:700}.detail-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:16px}.summary-list{display:grid;gap:10px;margin:16px 0 0}.summary-list div{display:grid;grid-template-columns:120px 1fr;gap:10px;border-bottom:1px solid var(--line);padding-bottom:10px}.summary-list dt{color:var(--muted);font-weight:700}.summary-list dd{margin:0}.compact-task-list{display:grid;gap:10px;margin-top:16px}.compact-task{display:grid;grid-template-columns:24px minmax(0,1fr) minmax(150px,auto);gap:12px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--panel)}.compact-task>.task-edit-trigger{display:grid;gap:4px;min-width:0}.compact-task span:not(.priority-pill),.empty-copy,.placeholder-panel p,.empty-state span{color:var(--muted)}.completed-section{display:grid;gap:10px;margin-top:4px}.completed-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:40px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:0 12px;font-weight:700}.completed-toggle strong{display:grid;place-items:center;min-width:24px;height:24px;border-radius:999px;background:var(--panel);color:var(--muted);font-size:12px}.completed-list{margin-top:0}.placeholder-panel,.empty-state{display:flex;align-items:center;justify-content:space-between;gap:16px}.document-list{display:grid;gap:10px;margin-top:16px}.document-drop-panel{transition:border-color .14s ease,background .14s ease,box-shadow .14s ease}.document-drop-panel.dragging{border-color:var(--blue);background:#f7fbff;box-shadow:inset 0 0 0 2px #1f5f8b29}.document-drop-zone{display:flex;align-items:center;justify-content:center;gap:10px;min-height:82px;margin-top:14px;border:1px dashed #9db9cc;border-radius:8px;background:#f8fbfd;color:var(--muted);text-align:center;padding:14px}.document-drop-panel.dragging .document-drop-zone{border-color:var(--blue);background:#eaf4fb;color:var(--blue)}.document-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--panel)}.document-row>div:first-child{display:grid;gap:4px;min-width:0}.document-row span{color:var(--muted);font-size:12px}.document-row a{display:inline-flex;align-items:center;gap:6px;text-decoration:none}.media-viewer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:18px;background:#04080cd1}.media-viewer{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(1120px,100%);height:min(780px,calc(100vh - 36px));overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:#071018;color:#f8fbfd;box-shadow:0 28px 80px #0000005c}.media-viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-bottom:1px solid rgba(255,255,255,.14);background:#0a1218f5}.media-viewer-toolbar>div:first-child{display:grid;gap:3px;min-width:0}.media-viewer-toolbar strong,.media-viewer-toolbar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-viewer-toolbar span{color:#b8c8d2;font-size:12px}.media-viewer-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.media-viewer-actions .icon-button,.media-viewer-actions .small-button{border-color:#fff3;background:#ffffff17;color:#f8fbfd;text-decoration:none}.media-viewer-actions .icon-button:disabled{opacity:.45;cursor:not-allowed}.media-viewer-stage{display:grid;place-items:center;overflow:auto;padding:24px;touch-action:none;overscroll-behavior:contain}.media-viewer-stage img{display:block;max-width:100%;max-height:100%;object-fit:contain;transform-origin:center center;transition:transform .12s ease}.document-viewer-stage{display:grid;min-height:0;background:#111820}.document-viewer-stage iframe,.document-viewer-stage img{width:100%;height:100%;border:0;background:#fff}.document-viewer-stage img{object-fit:contain}.document-preview-fallback{display:grid;place-content:center;gap:8px;padding:28px;text-align:center;color:#d7e3eb}.document-preview-fallback p{max-width:440px;margin:0;color:#b8c8d2}.shop-stock-form{display:grid;gap:16px}.form-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:4px}.form-summary div{display:grid;gap:4px;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:10px}.form-summary span,.stock-line-header{color:var(--muted);font-size:12px;font-weight:700}.form-summary strong{min-width:0;overflow-wrap:anywhere}.form-success{border:1px solid #bbf7d0;border-radius:8px;background:#f0fdf4;color:#166534;padding:10px;font-size:13px;font-weight:700}.form-section-title{border-top:1px solid var(--line);padding-top:14px;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.stock-lines{display:grid;gap:8px}.stock-line{display:grid;grid-template-columns:90px minmax(0,1fr) 42px;gap:8px;align-items:center}.stock-line input{width:100%;min-height:42px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 10px}.stock-line-header{padding:0 10px}.form-row-list{display:grid;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-top:16px}.form-row-button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;min-height:42px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink);padding:0 12px;text-align:left}.form-row-button:last-child{border-bottom:0}.saved-form-row{display:grid;grid-template-columns:minmax(0,1fr);border-bottom:1px solid var(--line);background:#fff}.saved-form-row.has-delete{grid-template-columns:minmax(0,1fr) 44px}.saved-form-row:last-child{border-bottom:0}.saved-form-row .form-row-button{border-bottom:0}.saved-form-delete{align-self:center;justify-self:center}.form-row-button:not(:disabled):hover{background:var(--panel)}.form-row-button:disabled{color:var(--muted);cursor:not-allowed}.form-row-button span,.form-row-button small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-row-button strong{color:var(--muted);font-size:12px}.sent-form-row{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;min-height:48px}.sent-form-row small{grid-column:1 / -1;color:var(--muted);font-size:12px}.wide-modal{width:min(1120px,94vw);max-height:90vh;overflow:auto}.timesheet-modal{width:min(1240px,94vw);max-height:90vh;overflow:auto}.timesheet-description-grid{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));gap:8px}.timesheet-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:8px}.timesheet-employee-grid,.timesheet-equipment-grid,.travel-request-grid{display:grid;gap:6px;align-items:center;min-width:980px;border-bottom:1px solid var(--line);padding:8px}.timesheet-employee-grid{grid-template-columns:58px 170px 86px repeat(7,112px) 42px}.timesheet-equipment-grid{grid-template-columns:220px repeat(7,80px) 42px}.travel-request-grid{grid-template-columns:180px 120px 124px 124px 86px 94px 86px 116px 126px 76px 42px;min-width:1180px}.timesheet-employee-grid:last-child,.timesheet-equipment-grid:last-child,.travel-request-grid:last-child{border-bottom:0}.timesheet-header-row,.travel-request-header-row{background:var(--panel);color:var(--muted);font-size:12px;font-weight:800}.timesheet-day-heading{display:grid;gap:2px;text-align:center}.timesheet-day-heading strong{color:var(--ink);font-size:12px}.timesheet-day-heading small{color:var(--muted);font-size:11px}.hour-triplet{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.timesheet-employee-grid input,.timesheet-equipment-grid input,.travel-request-grid input,.travel-request-grid select,.hour-triplet input{width:100%;min-height:36px;border:1px solid var(--line);border-radius:8px;padding:0 8px}.form-history-list{display:grid;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-top:16px}.form-history-card{background:#fff}.form-history-meta{display:flex;flex-wrap:wrap;gap:8px}.form-history-meta span{border-radius:999px;background:var(--panel);color:var(--muted);padding:4px 8px;font-size:12px;font-weight:700}.sent-lines{display:grid;gap:6px;margin-top:4px}.sent-line{display:grid;grid-template-columns:80px minmax(0,1fr);gap:8px;border-top:1px solid var(--line);padding-top:6px}.sent-line strong{color:var(--ink)}.placeholder-panel p{margin:8px 0 0}.notes-layout{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(0,1.15fr);gap:16px}.photos-panel{min-width:0}.photo-drop-panel{transition:border-color .14s ease,background .14s ease,box-shadow .14s ease}.photo-drop-panel.dragging{border-color:var(--blue);background:#f7fbff;box-shadow:inset 0 0 0 2px #1f5f8b29}.photos-heading{align-items:flex-start}.photo-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:18px}.photo-drop-zone{display:flex;align-items:center;justify-content:center;gap:10px;min-height:82px;margin-top:14px;border:1px dashed #9db9cc;border-radius:8px;background:#f8fbfd;color:var(--muted);text-align:center;padding:14px}.photo-drop-panel.dragging .photo-drop-zone{border-color:var(--blue);background:#eaf4fb;color:var(--blue)}.photo-card{overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.photo-open-button{display:block;width:100%;border:0;padding:0;background:transparent;cursor:zoom-in}.photo-card img{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover;background:#e8edf1}.photo-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px}.photo-card-footer div{display:grid;gap:4px;min-width:0}.photo-card-footer strong,.photo-card-footer span,.photo-card-footer small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-card-footer span,.photo-card-footer small,.photo-error{color:var(--muted);font-size:12px}.photo-card-footer small{font-style:italic}.photo-error{display:flex;align-items:flex-start;gap:10px}.photo-error .form-error{flex:1}.icon-button.danger{color:var(--red)}.photo-editor-modal{width:min(1080px,calc(100vw - 28px));max-height:min(92vh,920px);display:grid;gap:14px}.photo-editor-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#f8fbfd}.photo-editor-tool-group{display:grid;gap:6px}.photo-editor-tool-group>span,.photo-editor-size>span{color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase}.photo-editor-colors{display:flex;align-items:center;gap:8px}.color-swatch{width:30px;height:30px;border:2px solid transparent;border-radius:50%;cursor:pointer}.color-swatch.selected{border-color:var(--ink);box-shadow:0 0 0 2px #fff,0 0 0 4px #1f5f8b33}.photo-editor-size{display:grid;gap:6px;min-width:160px}.photo-editor-size input{width:160px}.photo-editor-stage{display:flex;align-items:center;justify-content:center;min-height:280px;max-height:56vh;overflow:auto;border:1px solid var(--line);border-radius:8px;background:#0f1720;padding:12px}.photo-editor-canvas{display:block;max-width:100%;max-height:52vh;background:#e8edf1;touch-action:none;cursor:crosshair}.photo-editor-note{display:grid;gap:8px;color:var(--ink);font-size:14px;font-weight:700}.photo-editor-note textarea{width:100%;min-height:92px;resize:vertical;border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px 14px;color:var(--ink);font:inherit;line-height:1.4}.photo-editor-note textarea:focus{outline:2px solid rgba(31,95,139,.2);border-color:var(--blue)}.photo-editor-modal .modal-actions{padding-top:2px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.note-form{display:grid;gap:12px;margin-top:16px}.field textarea{width:100%;resize:vertical;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fff;line-height:1.45}.dictation-field{gap:8px}.dictation-control-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.dictation-control-row small,.inline-error{color:var(--muted);font-size:12px}.inline-error{color:var(--red)}.compact-button{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:6px}.crew-member-grid{display:grid;grid-template-columns:minmax(160px,.75fr) minmax(260px,1.25fr) 44px;gap:8px;align-items:start}.signature-pad{display:grid;gap:6px}.signature-canvas{width:100%;height:118px;display:block;border:1px solid var(--line);border-radius:8px;background:linear-gradient(to bottom,transparent calc(100% - 29px),rgba(31,95,139,.16) calc(100% - 28px),transparent calc(100% - 27px)),#fff;touch-action:none;cursor:crosshair}.signature-pad-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.signature-pad-actions small,.signature-typed-note{color:var(--muted);font-size:12px}.signature-pad-actions .text-button:disabled{color:#9aa7b3;cursor:not-allowed}.email-note-fields{display:grid;gap:10px;margin:14px 0}.note-photo-field{display:grid;gap:8px;border:1px dashed var(--line);border-radius:8px;background:#f8fafc;padding:10px}.note-photo-field>span{font-weight:700}.note-photo-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.note-photo-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:fit-content;border-color:#1f5f8b42;background:#eaf2fb;color:var(--blue);font-weight:800;cursor:pointer}.note-photo-button:hover{border-color:var(--blue);background:#dbeafe}.note-photo-remove{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #fecaca;border-radius:8px;background:#fff7f7;color:var(--red);padding:0 12px;font-weight:800}.note-photo-remove:hover{border-color:var(--red);background:#fee4e2}.note-photo-field small{width:fit-content;border:1px solid var(--line);border-radius:999px;background:#fff;padding:6px 10px;color:var(--muted);font-weight:700;overflow-wrap:anywhere}.notes-list{display:grid;gap:12px;margin-top:16px}.ai-note-recorder{display:grid;gap:12px;margin:0 0 16px;padding:14px;border:1px solid rgba(31,95,139,.22);border-radius:8px;background:#f8fbfd}.ai-note-recorder-copy{display:grid;gap:6px}.ai-note-recorder-copy span{display:inline-flex;align-items:center;gap:7px;color:var(--blue);font-weight:800}.ai-note-recorder-copy p{margin:0;color:var(--muted);line-height:1.4}.ai-note-recorder-actions{display:flex;flex-wrap:wrap;gap:10px}.ai-form-helper-modal{width:min(720px,calc(100vw - 32px));max-height:min(760px,calc(100dvh - 32px));overflow:auto}.ai-form-helper{display:grid;gap:14px;margin-top:16px}.ai-form-helper textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:12px;resize:vertical;line-height:1.45}.ai-form-result{display:grid;gap:12px;margin-top:16px;padding:14px;border:1px solid rgba(31,95,139,.22);border-radius:8px;background:#f8fbfd}.ai-form-result-card{display:grid;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fff}.ai-form-result-card span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.ai-form-result p{margin:0;color:var(--muted);line-height:1.45}.ai-form-questions{display:grid;gap:8px}.ai-form-questions ul{margin:0;padding-left:20px}.ai-form-questions li{margin-bottom:6px;line-height:1.4}.ai-form-transcript{display:grid;gap:6px;padding:10px 12px;border-left:3px solid var(--blue);background:#fff}.ai-form-transcript p{margin:0;white-space:pre-wrap}.realtime-voice-panel{background:#eef7ff}.realtime-transcript{max-height:170px;overflow:auto}.realtime-transcript p{color:var(--text)}.realtime-transcript span{color:var(--blue);font-weight:800}.note-card{display:grid;gap:8px;border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:12px}.note-card-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.note-card-header span,.note-card-header div>span{display:block;color:var(--muted);font-size:12px;margin-top:3px;white-space:nowrap}.note-card p{margin:0;white-space:pre-wrap;line-height:1.45}.note-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}.note-action-button{min-height:34px;padding:0 12px;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;color:var(--blue);font-weight:700}.note-action-button:hover{border-color:var(--blue);background:#dbeafe}.note-action-button.danger{border-color:#fecaca;background:#fff7f7;color:var(--red)}.note-action-button.danger:hover{border-color:var(--red);background:#fee4e2}.note-edit-form{display:grid;gap:12px}.note-form-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}.note-form-actions .primary-button,.note-form-actions .secondary-button{flex:1 1 180px}.danger-text{color:var(--red)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:16px;background:#1018206b}.modal{width:min(560px,calc(100vw - 32px));border-radius:8px;background:#fff;box-shadow:var(--shadow);padding:20px}.modal.wide-modal{width:min(1120px,94vw);max-height:90vh;overflow:auto}.modal.timesheet-modal{width:min(1240px,94vw);max-height:90vh;overflow:auto}.quick-add-modal{display:flex;flex-direction:column;max-height:min(720px,calc(100dvh - 32px));overflow:hidden}.quick-add-fields{overflow-y:auto;overscroll-behavior:contain;padding-right:4px}.modal-intro{margin:14px 0 0;color:var(--muted)}.form-grid{display:grid;gap:12px;margin:18px 0}.form-error{margin-top:14px;border:1px solid #fecaca;border-radius:8px;background:#fff7f7;color:var(--red);padding:10px;font-size:13px;font-weight:700}.field span{display:block;font-weight:700;margin-bottom:6px}.field input,.field select{width:100%;border:1px solid var(--line);border-radius:8px;min-height:42px;padding:0 10px;background:#fff}.event-share-panel{display:grid;gap:12px;margin:16px 0;padding:14px;border:1px solid var(--line);border-radius:8px;background:#f8fbfd}.event-share-panel h3{margin:0;font-size:16px}.event-share-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end}.event-share-list{display:grid;gap:8px}.event-share-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.event-share-item div{display:grid;gap:3px;min-width:0}.event-share-item strong,.event-share-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-share-item span{color:var(--muted);font-size:12px}.checkbox-field{display:flex;align-items:center;gap:9px;font-weight:700}.checkbox-field input{width:18px;height:18px;accent-color:var(--blue)}.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}@media(max-width:980px){.auth-background-brand img{top:clamp(8px,3vh,34px);width:min(560px,78vw);max-height:20vh}.auth-card{transform:translateY(34px)}.app-shell{grid-template-columns:1fr}.sidebar{display:none}.sidebar.open{display:flex;position:fixed;z-index:10;inset:0 auto 0 0;width:min(320px,86vw);box-shadow:var(--shadow)}.sidebar-close,.menu-button{display:inline-grid;place-items:center}.dashboard-grid,.calendar-layout,.detail-grid,.notes-layout{grid-template-columns:1fr}.photos-heading{flex-direction:column}.photo-actions{justify-content:flex-start}.card-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}.project-row{grid-template-columns:1fr}.detail-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-summary{grid-template-columns:1fr}.project-row.header{display:none}}@media(max-width:640px){.auth-page{padding:16px}.auth-card{padding:16px;transform:translateY(20px)}.auth-background-brand{padding:18px;opacity:.4}.auth-background-brand img{top:10px;width:86vw;max-height:18vh}.auth-background-brand div{bottom:26px}.workspace{padding:16px}.topbar{align-items:flex-start}.topbar-actions{flex-direction:column;align-items:stretch}.section-toolbar,.panel-heading{align-items:flex-start;flex-direction:column}.card-grid{grid-template-columns:1fr}.task-item{grid-template-columns:auto 1fr}.task-item .task-actions{grid-column:2;justify-content:flex-start;flex-wrap:wrap}.compact-task{grid-template-columns:auto 1fr}.compact-task .task-actions{grid-column:2;justify-content:flex-start;flex-wrap:wrap}.calendar-month{grid-template-columns:1fr}.calendar-head{display:none}.calendar-day,.muted-day{min-height:74px}.detail-title-row,.placeholder-panel,.empty-state,.compact-task,.note-card-header{align-items:flex-start;flex-direction:column}.detail-meta-grid,.summary-list div,.event-share-form{grid-template-columns:1fr}.modal-backdrop{padding:0;place-items:stretch}.modal,.wide-modal,.timesheet-modal{width:100%;max-height:100dvh;border-radius:0}.quick-add-modal{height:100dvh;max-height:100dvh;padding-bottom:max(20px,env(safe-area-inset-bottom))}.quick-add-fields{min-height:0;padding-bottom:96px}.stock-line{grid-template-columns:70px minmax(0,1fr) 42px}.media-viewer-backdrop{padding:0}.media-viewer{width:100%;height:100%;border-radius:0}.media-viewer-toolbar{align-items:flex-start;flex-direction:column}.media-viewer-actions{width:100%;justify-content:flex-end;flex-wrap:wrap}.media-viewer-stage{padding:12px}}
