.training-layout{display:grid;grid-template-columns:1fr;grid-gap:1rem;gap:1rem;align-items:start}.overlays-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:2rem;gap:2rem}.overlay-editor-grid{display:grid;grid-template-columns:1fr;grid-gap:1rem;gap:1rem;align-items:start}@media (min-width:1200px){.overlay-editor-grid{grid-template-columns:280px 1fr 320px}}@media (min-width:900px) and (max-width:1199px){.overlay-editor-grid{grid-template-columns:240px 1fr 260px}}.pdf-overlay-tool{--overlay-left:260px;--overlay-right:320px;position:fixed;inset:0;z-index:160;display:flex;flex-direction:column;gap:1rem;padding:calc(1rem + var(--safe-top)) calc(1.25rem + var(--safe-right)) calc(1rem + var(--safe-bottom)) calc(1.25rem + var(--safe-left));background:var(--surface-page);overflow:hidden}.pdf-overlay-tool.left-collapsed{--overlay-left:36px}.pdf-overlay-tool.right-collapsed{--overlay-right:36px}.pdf-overlay-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.pdf-overlay-tool .overlay-editor-grid{grid-template-columns:var(--overlay-left) minmax(0,1fr) var(--overlay-right);grid-template-rows:minmax(0,1fr);align-items:stretch;flex:1 1;height:100%;min-height:0;transition:grid-template-columns .3s cubic-bezier(.4,0,.2,1)}.pdf-overlay-body{flex:1 1;min-height:0}.pdf-overlay-toolbar{flex:0 0 auto}.pdf-overlay-rail{gap:.75rem;min-width:0;position:relative}.pdf-overlay-rail,.pdf-overlay-rail-content{display:flex;flex-direction:column;min-height:0}.pdf-overlay-rail-content{gap:1rem;overflow:auto;-webkit-overflow-scrolling:touch}.pdf-overlay-rail.collapsed{align-items:center}.pdf-overlay-rail.collapsed .pdf-overlay-rail-content{display:none}.pdf-overlay-rail-toggle{width:var(--control-height);height:var(--control-height);min-width:var(--control-height);min-height:var(--control-height);border-radius:var(--radius-md);border:1px solid var(--border-light);background:var(--surface-card);color:var(--text-main);font-weight:700;cursor:pointer;align-self:flex-end}.pdf-overlay-rail.right .pdf-overlay-rail-toggle{align-self:flex-start}.pdf-overlay-canvas{display:flex;flex-direction:column;min-height:clamp(360px,60vh,900px);overflow:hidden;padding:0}.pdf-overlay-stage{position:relative;flex:1 1;min-height:0;overflow:hidden;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;background:#f1f5f9}.pdf-overlay-edit-layer{position:absolute;inset:0;pointer-events:none;z-index:3}.pdf-overlay-airflow-edit,.pdf-overlay-roomname-edit,.pdf-overlay-text-edit{position:absolute;pointer-events:auto;border:1px solid var(--brand-3);background:var(--surface-card);color:var(--text-main);border-radius:var(--radius-sm);padding:4px;box-shadow:var(--shadow-sm);outline:none}.pdf-overlay-text-edit{resize:none;-webkit-user-select:text;-moz-user-select:text;user-select:text;cursor:text}:root[data-theme=dark] .pdf-overlay-stage{background:#0f172a}.pdf-overlay-context-menu,.pdf-overlay-picker{position:fixed;z-index:200;min-width:200px;background:var(--surface-card);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:.5rem;display:flex;flex-direction:column;gap:.35rem;box-shadow:0 12px 28px rgba(2,8,23,.18)}.pdf-overlay-context-menu .btn,.pdf-overlay-picker .btn{justify-content:space-between}.pdf-overlay-toast{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);background:var(--surface-card);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:.35rem .75rem;font-size:.8rem;color:var(--text-main);z-index:5}.glass-panel{background:var(--surface-glass-soft);padding:1.5rem;box-shadow:var(--shadow-lg)}.glass-card,.glass-panel{border:1px solid var(--border-glass);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur))}.glass-card{background:var(--surface-glass);padding:1.25rem;box-shadow:var(--shadow-card);transition:transform var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard)}@media (hover:hover){.glass-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-xl);border-color:color-mix(in srgb,var(--brand-accent) 35%,var(--border-glass))}}.glass-header{background:color-mix(in srgb,var(--surface-page) 88%,transparent);border-bottom:1px solid var(--border-glass);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur))}@media (max-width:768px){.glass-card,.glass-panel{border-radius:0;border-left:0;border-right:0;margin-left:0;margin-right:0}.glass-card.mobile-rounded,.glass-panel.mobile-rounded{border-radius:var(--radius-lg);margin-left:var(--s-3);margin-right:var(--s-3);border:1px solid var(--border-glass)}}.skeleton,.skeleton-shimmer{position:relative;overflow:hidden;background:var(--surface-hover);border-radius:var(--radius-md)}.skeleton-shimmer:after,.skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--surface-card) 55%,transparent),transparent);animation:skeleton-shimmer 1.2s var(--ease-standard) infinite}.pdf-overlay-page-controls{padding-top:.5rem;padding-right:.75rem;padding-bottom:calc(.5rem + var(--safe-bottom));padding-left:.75rem;border-top:1px solid var(--border-light);overflow-x:auto}@media (max-width:900px){.pdf-overlay-tool{padding:calc(.75rem + var(--safe-top)) calc(.75rem + var(--safe-right)) calc(.75rem + var(--safe-bottom)) calc(.75rem + var(--safe-left))}.pdf-overlay-header{flex-direction:column;align-items:flex-start}}@media (min-width:900px){.training-layout{grid-template-columns:320px 1fr}.training-nav{position:-webkit-sticky;position:sticky;top:1rem;height:-moz-fit-content;height:fit-content}}.training-content,.training-nav{margin-bottom:0}.training-catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:1rem;gap:1rem}.training-module-card{margin-bottom:0;display:flex;flex-direction:column;height:100%}.training-module-title{margin-bottom:6px}.training-module-desc{margin-bottom:0}.training-module-footer{margin-top:auto;padding-top:12px;display:flex;flex-direction:column;gap:12px}.training-module-meta{display:flex;flex-direction:column;gap:8px}.training-module-meta-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.training-module-actions{margin-top:0}.training-hero-card{margin-bottom:0}.training-progress{height:10px;border-radius:var(--radius-full);background:var(--surface-hover);overflow:hidden}.training-progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--brand-primary),var(--brand-3))}.training-map-item{text-align:left}.training-module-pills{margin-top:12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:10px;gap:10px}.training-map-item.is-complete{border-color:color-mix(in srgb,var(--status-good-border) 65%,var(--border-light))}.training-badge-grid{margin-top:10px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:10px;gap:10px}.training-badge-item{border:1px solid var(--border-light);background:var(--surface-hover);border-radius:var(--radius-md);padding:10px}.training-module-list{margin-top:10px;display:flex;flex-direction:column;gap:10px}.training-module-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;border:1px solid var(--border-light);border-radius:var(--radius-md);padding:10px}.training-lesson-card{margin-bottom:0}.training-feedback-box{margin-top:10px;border:1px solid var(--border-light);background:var(--surface-hover);border-radius:var(--radius-md);padding:10px}.training-domain-grid{margin-top:10px;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:10px;gap:10px}.training-domain-item,.training-history-item,.training-missed-item{border:1px solid var(--border-light);border-radius:var(--radius-md);padding:10px;background:var(--surface-hover)}.training-history-list{margin-top:10px;display:flex;flex-direction:column;gap:8px}@media (max-width:900px){.training-module-row{flex-direction:column}}@media (min-width:900px){.banner{bottom:calc(2rem + var(--fixed-stack-offset))}}.banner.hidden{display:none}.page-shell{min-height:100vh;padding:2rem;display:flex;align-items:center;justify-content:center}.auth-card{width:100%;max-width:440px;margin:0}.login-shell{position:relative;overflow:hidden;background:radial-gradient(circle at 12% 18%,color-mix(in srgb,var(--brand-accent) 16%,transparent),transparent 46%),radial-gradient(circle at 88% 82%,color-mix(in srgb,var(--status-info-text) 12%,transparent),transparent 44%),var(--surface-page)}.login-shell:before{inset:-20vh -10vw;background:repeating-linear-gradient(0deg,color-mix(in srgb,var(--text-muted) 18%,transparent) 0,color-mix(in srgb,var(--text-muted) 18%,transparent) 1px,transparent 1px,transparent 40px),repeating-linear-gradient(90deg,color-mix(in srgb,var(--text-muted) 18%,transparent) 0,color-mix(in srgb,var(--text-muted) 18%,transparent) 1px,transparent 1px,transparent 40px),repeating-linear-gradient(0deg,color-mix(in srgb,var(--brand-accent) 24%,transparent) 0,color-mix(in srgb,var(--brand-accent) 24%,transparent) 2px,transparent 2px,transparent 200px),repeating-linear-gradient(90deg,color-mix(in srgb,var(--brand-accent) 24%,transparent) 0,color-mix(in srgb,var(--brand-accent) 24%,transparent) 2px,transparent 2px,transparent 200px),repeating-linear-gradient(30deg,color-mix(in srgb,var(--brand-accent) 16%,transparent) 0,color-mix(in srgb,var(--brand-accent) 16%,transparent) 1px,transparent 1px,transparent 120px);opacity:.72}.login-shell:after,.login-shell:before{content:"";position:absolute;pointer-events:none}.login-shell:after{inset:0;background:radial-gradient(circle at 16% 74%,transparent 0 118px,color-mix(in srgb,var(--brand-accent) 30%,transparent) 118px 120px,transparent 119px),radial-gradient(circle at 84% 22%,transparent 0 168px,color-mix(in srgb,var(--status-info-text) 24%,transparent) 168px 170px,transparent 169px),linear-gradient(125deg,transparent 0 58%,color-mix(in srgb,var(--status-info-text) 18%,transparent) 58% 58.3%,transparent 58.3% 100%);opacity:.58}:root[data-theme=dark] .login-shell:before{opacity:.5}:root[data-theme=dark] .login-shell:after{opacity:.42}.login-card{position:relative;z-index:1;gap:1rem;box-shadow:var(--shadow-lg)}.login-card,.login-header{display:flex;flex-direction:column}.login-header{gap:.5rem}.login-header p{margin:0}.login-kicker{margin:0;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--trk-wide);font-weight:var(--w-semibold);color:var(--text-muted)}.login-title{margin:0;font-size:clamp(1.6rem,4vw,2rem);line-height:1.1}.login-inline-note{margin:0;font-size:var(--text-sm);color:var(--status-info-text);background:color-mix(in srgb,var(--status-info-bg) 45%,var(--surface-card));border:1px solid color-mix(in srgb,var(--status-info-text) 20%,var(--status-info-bg));border-radius:var(--radius-md);padding:.6rem .75rem}.login-primary-button{width:100%}.login-divider{display:flex;align-items:center;gap:.75rem;margin:.25rem 0;color:var(--text-muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--trk-wide)}.login-divider:after,.login-divider:before{content:"";height:1px;flex:1 1;background:var(--border-subtle)}.login-dev-panel{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:color-mix(in srgb,var(--brand-accent) 5%,var(--surface-card));padding:.9rem}.login-dev-form{display:flex;flex-direction:column;gap:.75rem}.login-dev-field{margin-bottom:0}.login-dev-hint{margin:0}@media (max-width:768px){.login-shell{padding:1rem}.login-card.mobile-rounded{margin:0}.fc .fc-toolbar{flex-direction:column;gap:.75rem}.fc .fc-toolbar-title{font-size:1.1rem!important}.fc .fc-button{padding:.4rem .65rem!important;font-size:.8rem!important}.fc .fc-toolbar-chunk{display:flex;justify-content:center;flex-wrap:wrap;gap:.25rem}.fc-view-harness{min-height:400px;width:100%}.fc-view{overflow-x:auto}.fc,.fc-view{max-width:100%}.fc .fc-daygrid-day-frame{min-height:72px}.fc .fc-daygrid-day-number{font-size:.75rem}.fc .fc-daygrid-event{font-size:.75rem;padding:2px 4px;line-height:1.2}.fc .fc-daygrid-event .fc-event-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fc .fc-daygrid-more-link{font-size:.75rem;padding:2px 4px;display:inline-block}}.tool-footer{position:fixed;bottom:0;left:0;right:0;z-index:100;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;background:var(--surface-glass);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-top:1px solid var(--border-glass);padding-bottom:calc(12px + var(--safe-bottom))}@media (min-width:900px){.tool-footer{left:280px}}@media (max-width:900px){.tool-footer{bottom:var(--bottom-nav-height)}}:root{--fan-curve-a:var(--brand-accent);--fan-curve-b:#22c55e;--fan-curve-c:#f59e0b}:root[data-theme=dark]{--fan-curve-a:#38bdf8;--fan-curve-b:#4ade80;--fan-curve-c:#fbbf24}.fan-curve-layout{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);grid-gap:1rem;gap:1rem;align-items:start}.fan-curve-tool.fullscreen{position:fixed;top:0;right:0;bottom:0;left:var(--sidebar-width);z-index:140;margin:0;padding:1rem;background:var(--surface-page);overflow:auto}.layout:has(.sidebar.collapsed) .fan-curve-tool.fullscreen{left:var(--sidebar-width-collapsed)}.fan-curve-tool.fullscreen .fan-curve-layout{max-width:1400px;margin:0 auto}.fan-curve-rotate{border:1px dashed var(--border-medium);border-radius:var(--radius-lg);padding:1.25rem;background:var(--surface-card);max-width:520px}.fan-curve-sidebar{position:-webkit-sticky;position:sticky;top:12px;height:-moz-fit-content;height:fit-content}.fan-curve-main,.fan-curve-sidebar{display:grid;grid-gap:1rem;gap:1rem}.fan-curve-main{min-width:0}.fan-curve-tabs{display:flex;flex-wrap:wrap;gap:.5rem}.fan-curve-tab{border:1px solid var(--border-light);background:var(--surface-card);color:var(--text-secondary);border-radius:var(--radius-md);padding:.35rem .7rem;font-size:.8rem;font-weight:600;cursor:pointer}.fan-curve-tab.active{border-color:var(--brand-accent);color:var(--brand-accent);background:color-mix(in srgb,var(--brand-accent) 10%,var(--surface-card))}.fan-curve-chart{margin-top:1rem;border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:.5rem;background:var(--surface-card);overflow:auto}.fan-curve-svg{width:100%;height:auto;display:block;min-height:320px}.fan-curve-bg{fill:var(--surface-card)}.fan-curve-grid line{stroke:var(--border-light);stroke-dasharray:4 4;shape-rendering:crispEdges}.fan-curve-axis{stroke:var(--border-medium);shape-rendering:crispEdges}.fan-curve-label{fill:var(--text-secondary);font-size:.75rem}.fan-curve-axis-title{fill:var(--text-main);font-size:.85rem;font-weight:600}.fan-curve-title{fill:var(--text-main);font-size:.85rem;font-weight:700}.fan-curve-series,.fan-curve-series-a{--curve-color:var(--fan-curve-a)}.fan-curve-series-b{--curve-color:var(--fan-curve-b)}.fan-curve-series-c{--curve-color:var(--fan-curve-c)}.fan-curve-line{stroke:var(--curve-color);fill:none}.fan-curve-point{fill:var(--curve-color);stroke:var(--surface-card);stroke-width:1}.fan-curve-legend{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.fan-curve-legend-item{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text-secondary)}.fan-curve-legend-dot{width:10px;height:10px;border-radius:999px;background:var(--curve-color)}.fan-curve-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.fan-curve-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:.75rem;gap:.75rem;margin-top:1rem}.fan-curve-summary-card{border:1px solid var(--border-light);border-left:4px solid var(--curve-color);background:var(--surface-hover);border-radius:var(--radius-md);padding:.75rem;display:grid;grid-gap:6px;gap:6px}.fan-curve-warning{margin-top:8px;background:color-mix(in srgb,var(--status-warn-bg) 25%,var(--surface-card));border:1px solid var(--status-warn-bg);border-radius:var(--radius-md);padding:6px 8px;font-size:.75rem;color:var(--status-warn-text)}.fan-curve-table table{width:100%;min-width:960px;border-collapse:collapse;font-size:.85rem}.fan-curve-table{overflow-x:auto;max-width:100%}.fan-curve-table td,.fan-curve-table th{padding:.55rem .6rem;border-bottom:1px solid var(--border-light);vertical-align:top}.fan-curve-table th{text-transform:uppercase;font-size:.7rem;letter-spacing:.04em;color:var(--text-secondary)}.fan-curve-col-index{width:48px}.fan-curve-col-airflow{min-width:140px}.fan-curve-col-pressure{min-width:170px}.fan-curve-col-rpm{min-width:120px}.fan-curve-col-notes{min-width:220px}.fan-curve-col-exclude{width:90px}.fan-curve-col-actions{width:110px}.fan-curve-table input:not([type=checkbox]){height:36px;padding:.35rem .6rem;font-size:.85rem}.fan-curve-inline-chip{margin-left:6px}.fan-curve-import{margin-top:1rem;border:1px dashed var(--border-light);border-radius:var(--radius-md);padding:.75rem;background:var(--surface-hover)}.fan-curve-import summary{cursor:pointer;font-weight:700;margin-bottom:.75rem;list-style:none}.fan-curve-import summary::-webkit-details-marker{display:none}.fan-curve-import textarea{min-height:140px;margin-bottom:.75rem}@media (max-width:1024px){.fan-curve-layout{grid-template-columns:1fr}.fan-curve-sidebar{position:static}}.fan-diagram-card.fullscreen{position:fixed;top:0;right:0;bottom:0;left:var(--sidebar-width);z-index:140;margin:0;border-radius:0;padding:1rem;overflow:hidden;display:flex;flex-direction:column;gap:.75rem}.fan-diagram-card.fullscreen .fan-diagram-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.fan-diagram-rotate{border:1px dashed var(--border-medium);border-radius:var(--radius-lg);padding:1.25rem;background:var(--surface-card);max-width:520px}.fan-diagram-card.fullscreen .schematic-builder{flex:1 1 auto;min-height:0}.fan-diagram-card.fullscreen .schematic-toolbar{position:-webkit-sticky;position:sticky;top:0;z-index:6;background:var(--surface-card);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:.5rem}.fan-diagram-card.fullscreen .schematic-layout{flex:1 1 auto;min-height:0;grid-template-rows:1fr;align-items:stretch}.fan-diagram-card.fullscreen .schematic-main,.fan-diagram-card.fullscreen .schematic-props{min-height:0}.fan-diagram-card.fullscreen .schematic-props-card{height:100%;overflow:auto}.fan-diagram-card.fullscreen .schematic-canvas{max-height:none;height:100%}.calendar-widget-card.fullscreen{position:fixed;top:0;right:0;bottom:0;left:var(--sidebar-width);z-index:140;margin:0;border-radius:0;padding:1rem;overflow:hidden;display:flex;flex-direction:column;gap:.75rem}.calendar-widget-card.fullscreen .fc{flex:1 1 auto;min-height:0}.grille-rows-card.fullscreen{position:fixed;top:0;right:0;bottom:0;left:var(--sidebar-width);z-index:140;margin:0;border-radius:0;padding:1rem;overflow:hidden;display:flex;flex-direction:column;gap:.75rem;height:100vh;width:calc(100vw - var(--sidebar-width));overscroll-behavior:contain}.grille-rows-card.fullscreen summary{display:flex;align-items:center;flex:0 0 auto}.grille-rows-card.fullscreen .grille-rows-body{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;height:calc(100vh - 140px)}.layout:has(.sidebar.collapsed) .admin-dashboard.fullscreen,.layout:has(.sidebar.collapsed) .calendar-widget-card.fullscreen,.layout:has(.sidebar.collapsed) .fan-diagram-card.fullscreen,.layout:has(.sidebar.collapsed) .grille-balance-mode.fullscreen,.layout:has(.sidebar.collapsed) .grille-rows-card.fullscreen,.layout:has(.sidebar.collapsed) .review-detail-card.fullscreen,.layout:has(.sidebar.collapsed) .workspace-uploads-panel.fullscreen{left:var(--sidebar-width-collapsed)}.layout:has(.sidebar.collapsed) .grille-rows-card.fullscreen{width:calc(100vw - var(--sidebar-width-collapsed))}.grille-balance-mode.fullscreen{background:var(--surface-card)}.grille-balance-mode.fullscreen,.workspace-uploads-panel.fullscreen{position:fixed;top:0;right:0;bottom:0;left:var(--sidebar-width);z-index:140;margin:0;padding:1rem;overflow:auto}.workspace-uploads-panel.fullscreen{background:var(--surface-page)}.upload-thumb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));grid-gap:.75rem;gap:.75rem}.upload-thumb{padding:0;border-radius:var(--radius-md);border:1px solid var(--border-light);background:var(--surface-card);overflow:hidden;cursor:pointer}.upload-thumb-img{position:relative;width:100%;height:120px;display:block}.upload-name-scroll{display:inline-block;max-width:20ch;white-space:nowrap;overflow-x:auto;overflow-y:hidden;vertical-align:bottom}.upload-preview-overlay{position:fixed;inset:0;z-index:160;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:1rem}.upload-preview{width:min(1100px,100%);height:calc(100vh - 2rem);max-height:calc(100vh - 2rem);overflow:hidden;display:flex;flex-direction:column;gap:.75rem}.upload-preview-body{flex:1 1 auto;min-height:0;border-radius:var(--radius-lg);border:1px solid var(--border-light);background:var(--surface-page);overflow:auto;display:flex;align-items:center;justify-content:center;padding:.75rem}.upload-preview-image{position:relative;width:100%;height:100%;min-height:240px}.review-detail-card.fullscreen{border-radius:0}.admin-dashboard.fullscreen,.review-detail-card.fullscreen{position:fixed;top:0;right:0;bottom:0;left:var(--sidebar-width);z-index:140;margin:0;padding:1rem;overflow:auto}.admin-dashboard.fullscreen{background:var(--surface-page)}.schematic-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;grid-gap:1rem;gap:1rem;align-items:start}.schematic-layout.collapsed{grid-template-columns:minmax(0,1fr) 64px}@media (max-width:900px){.schematic-layout,.schematic-layout.collapsed{grid-template-columns:1fr}}.schematic-props-card.collapsed{padding:.75rem .5rem;display:flex;flex-direction:column;align-items:center;gap:.75rem}.schematic-props-tab{writing-mode:vertical-rl;transform:rotate(180deg);font-weight:800;font-size:.8rem;letter-spacing:.04em;color:var(--text-secondary)}.schematic-canvas{border:1px solid var(--border-light);border-radius:var(--radius-lg);background-color:var(--surface-card);background-image:radial-gradient(var(--border-light) 1px,transparent 1px);background-size:20px 20px;overflow:auto;max-width:100%;max-height:520px;-webkit-overflow-scrolling:touch}:root[data-theme=dark] .schematic-canvas{background-image:radial-gradient(var(--border-medium) 1px,transparent 1px)}.schematic-deck{margin-bottom:1rem}.schematic-deck.ahu{margin-bottom:0}.schematic-deck.ahu+.schematic-deck.ahu{margin-top:-70px}.schematic-svg{display:block}.schematic-data-row{display:flex;width:-moz-fit-content;width:fit-content;align-items:stretch;margin-bottom:.5rem}.schematic-data-cell{border:1px solid var(--border-medium);background:var(--surface-card);color:var(--text-main);padding:.5rem;text-align:left;border-radius:0;cursor:pointer;box-shadow:var(--shadow-sm)}.schematic-data-cell:hover{background:var(--surface-hover)}.schematic-data-cell.selected{background:var(--status-info-bg);border-color:var(--brand-accent)}.schematic-data-cell:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px;position:relative;z-index:1}.schematic-segment-hit{cursor:pointer}.schematic-segment-hit:focus-visible{outline:none}.schematic-segment-focus-ring{fill:none;stroke:var(--brand-accent);stroke-width:3;stroke-dasharray:6 4;opacity:0;pointer-events:none}.schematic-segment-hit:focus-visible .schematic-segment-focus-ring{opacity:1}.schematic-data-title{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-light);padding-bottom:.25rem;margin-bottom:.35rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schematic-data-kv{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.7rem;display:flex;flex-direction:column;gap:.2rem}.schematic-data-kv-row{display:flex;justify-content:space-between;gap:.5rem;white-space:nowrap}.schematic-rows{display:flex;flex-direction:column;gap:.5rem}.schematic-row{display:grid;grid-template-columns:1fr 1fr auto;grid-gap:.5rem;gap:.5rem;align-items:end}@media (max-width:768px){.schematic-row{grid-template-columns:1fr}}@media (pointer:coarse){.schematic-builder .btn,.schematic-data-cell{min-height:44px}}.review-layout{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);grid-gap:16px;gap:16px;align-items:start}.review-queue-list{display:flex;flex-direction:column;gap:12px;max-height:70vh;overflow-y:auto;padding-top:12px;padding-bottom:8px}.review-queue-list .card{width:100%}.review-actions-bar{position:-webkit-sticky;position:sticky;top:12px;z-index:3}.review-actions-bar .btnrow{flex-wrap:wrap}.admin-layout,.settings-layout{display:grid;grid-template-columns:220px minmax(0,1fr);grid-gap:16px;gap:16px}.admin-nav,.settings-nav{position:-webkit-sticky;position:sticky;top:12px;height:-moz-fit-content;height:fit-content;display:grid;grid-gap:8px;gap:8px}.admin-nav-item,.settings-nav-item{display:block;padding:8px 12px;border-radius:var(--radius-md);color:var(--text-main);text-decoration:none;border:1px solid transparent}.admin-nav-item:hover,.settings-nav-item:hover{background:var(--surface-hover);border-color:var(--border-light)}.admin-nav-item.active,.settings-nav-item.active{background:var(--surface-card);border-color:var(--border-medium);font-weight:700}.wizard-layout{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);grid-gap:16px;gap:16px;align-items:start}.wizard-stepper{position:-webkit-sticky;position:sticky;top:12px;display:grid;grid-gap:8px;gap:8px}.wizard-step{border:1px solid var(--border-light);background:var(--surface-card);color:var(--text-main);border-radius:var(--radius-md);padding:10px 12px;text-align:left;display:flex;gap:10px;align-items:flex-start;cursor:pointer;transition:background-color var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard)}.wizard-step:disabled{opacity:.5;cursor:not-allowed}.wizard-step:hover:not(:disabled){background:var(--surface-hover)}.wizard-step.active{border-color:var(--brand-accent);box-shadow:0 0 0 2px var(--focus-ring)}.wizard-step.complete{border-color:var(--status-good-text)}.wizard-step-index{width:24px;height:24px;border-radius:var(--radius-full);background:var(--surface-hover);display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700}.wizard-step.complete .wizard-step-index{background:var(--status-good-bg);color:var(--status-good-text)}.wizard-step-text{display:grid;grid-gap:2px;gap:2px}.wizard-step-title{font-weight:700;font-size:.9rem}.wizard-step-desc{color:var(--text-secondary);font-size:.8rem}.wizard-summary{display:flex;flex-wrap:wrap;gap:12px;align-items:center;background:var(--surface-hover);border-radius:var(--radius-md);padding:8px 12px;font-size:.85rem}.wizard-alert{background:color-mix(in srgb,var(--status-info-bg) 35%,var(--surface-card));border:1px solid var(--border-light)}.wizard-alert.error{background:color-mix(in srgb,var(--status-bad-bg) 20%,var(--surface-card));border-color:var(--status-bad-bg)}.wizard-alert.warn{background:color-mix(in srgb,var(--status-warn-bg) 30%,var(--surface-card));border-color:var(--status-warn-bg)}.wizard-table{width:100%;border-collapse:collapse;font-size:.85rem}.wizard-table td,.wizard-table th{padding:.55rem .6rem;border-bottom:1px solid var(--border-light);vertical-align:top}.wizard-table th{text-transform:uppercase;font-size:.7rem;letter-spacing:.05em;color:var(--text-secondary)}.wizard-table input,.wizard-table select,.wizard-table textarea{height:36px;padding:.35rem .6rem;font-size:.85rem}.wizard-table textarea{height:auto;min-height:36px;resize:vertical}.wizard-table .btn{height:32px;padding:.3rem .6rem;font-size:.8rem}.wizard-grid-preview{border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--surface-card)}.wizard-grid-scroll{max-height:320px;overflow:auto;border-radius:inherit}.wizard-grid-table{width:max-content;min-width:100%;border-collapse:collapse;font-size:.8rem}.wizard-grid-table td,.wizard-grid-table th{border:1px solid var(--border-light);padding:.4rem .6rem;min-width:140px;vertical-align:top}.wizard-grid-table th{background:var(--surface-hover);text-transform:uppercase;font-size:.7rem;letter-spacing:.04em;color:var(--text-secondary)}.wizard-grid-table .wizard-grid-group-row th{background:color-mix(in srgb,var(--surface-hover) 70%,var(--surface-card));text-align:center;font-size:.65rem;letter-spacing:.06em}.row-error{background:color-mix(in srgb,var(--status-bad-bg) 18%,transparent)}.row-warn{background:color-mix(in srgb,var(--status-warn-bg) 18%,transparent)}.wizard-schema-layout{display:grid;grid-template-columns:minmax(200px,240px) minmax(240px,320px) minmax(0,1fr);grid-gap:16px;gap:16px}.wizard-schema-panel{min-height:420px}.wizard-field-list,.wizard-section-list{display:grid;grid-gap:8px;gap:8px;max-height:360px;overflow-y:auto;padding-right:4px}.wizard-field-item,.wizard-section-item{border:1px solid var(--border-light);background:var(--surface-card);border-radius:var(--radius-md);padding:8px 10px;text-align:left;display:grid;grid-gap:4px;gap:4px;cursor:pointer}.wizard-field-item.active,.wizard-section-item.active{border-color:var(--brand-accent);background:color-mix(in srgb,var(--brand-accent) 8%,var(--surface-card))}.wizard-code{background:var(--surface-hover);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.75rem;max-height:320px;overflow:auto;white-space:pre}.wizard-mobile-warning{border:1px solid var(--status-warn-bg);background:color-mix(in srgb,var(--status-warn-bg) 30%,var(--surface-card))}.wizard-fullscreen .main{max-width:none;width:100%;margin:0;padding:1.5rem 2rem 6rem}@media (max-width:900px){.wizard-fullscreen .main{padding:calc(var(--header-height) + 1rem) 1rem 7rem}}@media (max-width:1024px){.wizard-layout{grid-template-columns:1fr}.wizard-stepper{position:static;grid-auto-flow:column;grid-auto-columns:minmax(200px,1fr);overflow-x:auto}.wizard-step{min-width:200px}.wizard-schema-layout{grid-template-columns:1fr}.wizard-schema-panel{min-height:auto}}.danger-zone{border:1px solid var(--status-bad-bg);background:color-mix(in srgb,var(--status-bad-bg) 18%,var(--surface-card));border-radius:var(--radius-lg);padding:12px}.danger-zone,.details-body{display:grid;grid-gap:12px;gap:12px}.card details summary,details.card summary{cursor:pointer;font-weight:700;list-style:none}.card details summary::-webkit-details-marker,details.card summary::-webkit-details-marker{display:none}.card details summary:after,details.card summary:after{content:"v";float:right;color:var(--text-secondary)}.card details[open] summary:after,details.card[open] summary:after{content:"^"}.empty-state-icon{width:44px;height:44px;background:var(--surface-hover);display:inline-flex;color:var(--text-secondary)}@media (prefers-reduced-motion:reduce){.skeleton-shimmer:after,.skeleton:after{animation:none}}@supports (view-transition-name:none){::view-transition-old(root){animation:view-fade-out .18s var(--ease-standard) both}::view-transition-new(root){animation:view-fade-in .22s var(--ease-emphasized) both}}@keyframes view-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes view-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}@media (prefers-reduced-motion:reduce){::view-transition-new(root),::view-transition-old(root){animation:none}}@media (max-width:900px){.admin-layout,.review-layout,.settings-layout{grid-template-columns:minmax(0,1fr)}.admin-nav,.settings-nav{position:static;display:flex;overflow-x:auto;padding-bottom:6px}.admin-nav-item,.settings-nav-item{white-space:nowrap}}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table td,.data-table th{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--border-light)}.data-table th{font-weight:600;color:var(--text-secondary);background:color-mix(in srgb,var(--surface-hover) 65%,var(--surface-card))}.data-table tr:hover td{background:color-mix(in srgb,var(--brand-accent) 6%,var(--surface-card))}.data-table tr:last-child td{border-bottom:none}.panel-header{padding:.75rem 1rem;border-bottom:1px solid var(--border-light);background:color-mix(in srgb,var(--surface-card) 95%,transparent);display:flex;align-items:center;justify-content:space-between;gap:1rem;font-weight:600;color:var(--text-main)}:root{--fc-border-color:var(--border-light);--fc-button-text-color:var(--text-main);--fc-button-bg-color:var(--surface-card);--fc-button-border-color:var(--border-subtle);--fc-button-hover-bg-color:var(--surface-hover);--fc-button-hover-border-color:var(--border-medium);--fc-button-active-bg-color:var(--brand-accent);--fc-button-active-border-color:var(--brand-accent);--fc-today-bg-color:color-mix(in srgb,var(--brand-accent) 5%,transparent);--fc-event-bg-color:var(--brand-accent);--fc-event-border-color:var(--brand-accent);--fc-page-bg-color:var(--surface-card);--fc-neutral-bg-color:var(--surface-hover)}:root[data-theme=dark]{--fc-button-text-color:var(--text-main);--fc-button-bg-color:var(--surface-card);--fc-button-border-color:var(--border-light);--fc-button-hover-bg-color:var(--surface-hover)}.fc .fc-col-header-cell-cushion,.fc .fc-daygrid-day-top,.fc .fc-list-day-cushion{position:relative}.fc .fc-daygrid-day-top{gap:.2rem}.fc .fc-col-header-cell-cushion,.fc .fc-list-day-cushion{display:inline-flex;align-items:center;gap:.35rem}.calendar-widget-card .fc .fc-daygrid-day-events{padding-inline:2px}.calendar-widget-card .fc{--schedule-calendar-day-cell-height:132px}.calendar-widget-card .fc .fc-daygrid-day-frame{min-height:var(--schedule-calendar-day-cell-height);height:var(--schedule-calendar-day-cell-height)}.calendar-widget-card .fc .fc-daygrid-more-link{font-size:.75rem;font-weight:600;color:var(--brand-accent);padding:0 2px}@media (max-width:768px){.calendar-widget-card .fc{--schedule-calendar-day-cell-height:108px}}.calendar-day-action-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;font-weight:600;line-height:1;font-size:1.1em;padding:0;margin-left:.15rem;cursor:pointer;opacity:0;transition:opacity .18s ease,color .18s ease}.calendar-day-action-btn:focus-visible,.calendar-day-action-btn:hover{color:var(--brand-accent)}.calendar-day-action-btn.in-day-cell,.calendar-day-action-btn.in-day-header,.calendar-day-action-btn.in-list-header{position:static}.fc .fc-col-header-cell:focus-within .calendar-day-action-btn,.fc .fc-col-header-cell:hover .calendar-day-action-btn,.fc .fc-daygrid-day:focus-within .calendar-day-action-btn,.fc .fc-daygrid-day:hover .calendar-day-action-btn,.fc .fc-list-day:focus-within .calendar-day-action-btn,.fc .fc-list-day:hover .calendar-day-action-btn{opacity:1}@media (hover:none),(pointer:coarse){.calendar-day-action-btn{opacity:1}}.fc .calendar-event-follow-up{border-width:1px;border-left:3px var(--brand-accent);border-style:solid;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand-accent) 22%,transparent);color:var(--text-main)}.fc .calendar-event-follow-up .fc-event-title{font-weight:600;color:var(--text-main)}.fc .calendar-event-follow-up .fc-event-main,.fc .calendar-event-follow-up .fc-event-time{color:var(--text-main)}.fc .calendar-event-follow-up .fc-event-time{font-weight:var(--w-semibold);letter-spacing:.01em}.fc .fc-list-event.calendar-event-follow-up td{background:color-mix(in srgb,var(--brand-accent) 8%,var(--surface-card))}.fc .fc-list-event.calendar-event-follow-up .fc-list-event-time,.fc .fc-list-event.calendar-event-follow-up .fc-list-event-title{color:var(--text-main)}.fc .calendar-event-time_off{border-width:1px;border-left:3px var(--status-bad-text);border-style:solid;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--status-bad-text) 18%,transparent);color:var(--status-bad-text)}.fc .calendar-event-time_off .fc-event-main,.fc .calendar-event-time_off .fc-event-time,.fc .calendar-event-time_off .fc-event-title{color:var(--status-bad-text)}.fc .fc-list-event.calendar-event-time_off td{background:color-mix(in srgb,var(--status-bad-bg) 24%,var(--surface-card))}.fc .fc-list-event.calendar-event-time_off .fc-list-event-time,.fc .fc-list-event.calendar-event-time_off .fc-list-event-title{color:var(--status-bad-text)}.fc .calendar-event-tentative{border-style:dashed;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand-accent) 40%,transparent)}.planner-layout{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);grid-gap:var(--s-3);gap:var(--s-3);align-items:start}.planner-pane{margin-bottom:0}.planner-pane-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);margin-bottom:var(--s-2)}.planner-pool-controls{display:grid;grid-gap:var(--s-2);gap:var(--s-2)}.planner-project-list{margin-top:var(--s-2);display:grid;grid-gap:8px;gap:8px;max-height:640px;overflow:auto;overflow-x:hidden;padding-right:2px;-webkit-overflow-scrolling:touch}.planner-project-item{box-sizing:border-box;width:100%;min-width:0;border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--surface-card);padding:10px 12px;text-align:left;display:grid;grid-gap:3px;gap:3px;cursor:-webkit-grab;cursor:grab}.planner-project-item.dragging{opacity:.72}.planner-project-item.highlighted{border-color:var(--brand-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand-accent) 24%,transparent)}.planner-project-number{font-weight:var(--w-semibold);color:var(--text-main)}.planner-project-description{color:var(--text-secondary);font-size:var(--text-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planner-project-status{color:var(--text-muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.03em}.planner-board-pane{overflow:visible;position:relative}.planner-board-header{position:-webkit-sticky;position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--surface-card) 96%,var(--surface-page));padding-top:2px;padding-bottom:8px;border-bottom:1px solid color-mix(in srgb,var(--border-subtle) 78%,transparent)}.planner-board-scroll{overflow-x:auto;overflow-y:visible}.planner-board-grid{min-width:980px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:8px;gap:8px}.planner-day-card{box-sizing:border-box;min-width:0;border:1px solid var(--border-light);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface-card) 94%,var(--surface-page));padding:8px;min-height:192px;display:grid;grid-template-rows:auto 1fr auto auto;grid-gap:6px;gap:6px;overflow:hidden}.planner-day-card.drop-target{border-color:var(--brand-accent);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--brand-accent) 24%,transparent)}.planner-day-header{display:flex;justify-content:flex-start;align-items:center;gap:6px;min-width:0}.planner-day-title{font-size:var(--text-sm);font-weight:var(--w-semibold);white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}.planner-open-assign-btn{width:100%;min-height:30px;padding:0 10px;font-size:var(--text-xs);white-space:nowrap;justify-content:center}.planner-day-jobs{display:grid;align-content:start;grid-gap:6px;gap:6px;min-height:0;overflow:hidden}.planner-day-empty{border:1px dashed var(--border-medium);border-radius:var(--radius-sm);padding:6px;text-align:center;font-size:var(--text-sm);line-height:1.2;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.planner-job-chip{box-sizing:border-box;min-width:0;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--surface-card);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;grid-gap:6px;gap:6px;padding:6px;cursor:-webkit-grab;cursor:grab}.planner-job-chip.tentative{border-style:dashed}.planner-job-chip.dragging{opacity:.74}.planner-job-main{box-sizing:border-box;min-width:0;border:none;background:transparent;text-align:left;width:100%;display:grid;grid-gap:2px;gap:2px;color:var(--text-main);padding:0}.planner-job-title{font-weight:var(--w-medium);font-size:var(--text-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planner-job-time{color:var(--text-muted);font-size:var(--text-xs)}.planner-job-remove{border:none;background:transparent;color:var(--text-muted);font-weight:var(--w-semibold);cursor:pointer;width:24px;height:24px}.planner-job-remove:focus-visible,.planner-job-remove:hover{color:var(--status-bad-text)}.planner-overflow-btn{justify-self:start;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--surface-hover);color:var(--text-secondary);padding:2px 8px;font-size:var(--text-xs);font-weight:var(--w-semibold)}.planner-day-footer{margin-top:2px;padding-top:6px;border-top:1px solid color-mix(in srgb,var(--border-subtle) 75%,transparent)}.planner-overflow-list{display:grid;grid-gap:10px;gap:10px}.planner-overflow-row{border:1px solid var(--border-light);border-radius:var(--radius-md);padding:10px;display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.planner-drag-overlay{min-width:180px;max-width:280px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--brand-accent) 35%,var(--border-light));border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface-card) 92%,#fff 8%);box-shadow:var(--shadow-md);pointer-events:none}.planner-drag-overlay-title{font-weight:var(--w-semibold);color:var(--text-main);line-height:1.2}.planner-drag-overlay-subtitle{margin-top:2px;color:var(--text-muted);font-size:var(--text-xs);line-height:1.25}@media (max-width:820px){.planner-layout{grid-template-columns:1fr}}.processing-shell{display:grid;place-items:center;grid-gap:8px;gap:8px;padding:16px;border-radius:var(--radius-lg);border:1px solid var(--border-subtle);background:radial-gradient(circle at top,color-mix(in srgb,var(--status-info-bg) 45%,transparent),var(--surface-card));box-shadow:var(--shadow-sm)}.processing-orbit{position:relative;width:72px;height:72px;border-radius:50%;border:1px dashed color-mix(in srgb,var(--brand-accent) 30%,transparent);animation:processing-spin 2.4s linear infinite}.processing-orbit:before{content:"";position:absolute;inset:10px;border-radius:50%;border:2px solid color-mix(in srgb,var(--brand-accent) 55%,transparent);border-top-color:var(--brand-accent);animation:processing-spin 1.4s linear infinite reverse}.processing-orbit:after{content:"";position:absolute;top:-4px;left:50%;width:10px;height:10px;border-radius:50%;background:var(--brand-accent);box-shadow:0 0 12px color-mix(in srgb,var(--brand-accent) 70%,transparent);transform:translateX(-50%)}.processing-label{font-size:var(--text-sm);color:var(--text-secondary);letter-spacing:.01em}@keyframes processing-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.processing-orbit,.processing-orbit:before{animation:none}}.overlay-backdrop{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;background:color-mix(in srgb,var(--surface-base) 60%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:overlay-fade-in .25s cubic-bezier(.16,1,.3,1);touch-action:none}.overlay-content{width:min(calc(100vw - 32px),1024px);height:min(calc(100vh - 32px),85vh);background:var(--surface-page);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);overflow:hidden;animation:overlay-scale-in .25s cubic-bezier(.16,1,.3,1);border:1px solid var(--border-subtle);display:flex;flex-direction:column}.settings-overlay-backdrop{--settings-modal-offset:var(--sidebar-width);padding-left:var(--settings-modal-offset)}.settings-overlay-backdrop .overlay-content{width:min(calc(100vw - var(--settings-modal-offset) - 32px),1024px)}body:has(.sidebar.collapsed) .settings-overlay-backdrop{--settings-modal-offset:var(--sidebar-width-collapsed)}@media (max-width:900px){.settings-overlay-backdrop{--settings-modal-offset:0px;padding-left:0}.settings-overlay-backdrop .overlay-content{width:min(calc(100vw - 32px),1024px)}}.offline-lock-modal{width:min(calc(100vw - 32px),520px);height:auto;max-height:90vh}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}@keyframes overlay-scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.confirm-modal{width:min(calc(100vw - 32px),520px);height:auto;max-height:90vh}.confirm-modal-body{padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-2)}.confirm-modal-actions{display:flex;justify-content:flex-end;gap:var(--s-2);padding:var(--s-3) var(--s-5) var(--s-5);border-top:1px solid var(--border-subtle);background:color-mix(in srgb,var(--surface-card) 92%,transparent)}@media (max-width:600px){.confirm-modal-actions{flex-direction:column-reverse;align-items:stretch}}.processing-overlay-backdrop{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:color-mix(in srgb,var(--surface-page) 85%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:processing-fade-in .2s ease-out}.processing-overlay-inline{display:grid;place-items:center;padding:24px;animation:processing-fade-in .15s ease-out}.processing-subtitle{font-size:var(--text-xs);color:var(--text-tertiary);text-align:center;max-width:280px;margin-top:4px}@keyframes processing-fade-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes wiggle{0%{transform:rotate(0deg)}25%{transform:rotate(-1deg)}75%{transform:rotate(1deg)}to{transform:rotate(0deg)}}.animate-wiggle{animation:wiggle .3s ease-in-out infinite}.drag-preview{opacity:.5}.drag-preview .sub,.drag-preview .widget-body,.drag-preview .widget-center,.drag-preview .widget-chip,.drag-preview .widget-row,.drag-preview .widget-stat-value,.drag-preview button{opacity:0;pointer-events:none}.dashboard-host{display:flex;flex-direction:column;gap:1rem;min-width:0}.dashboard-loading{padding:1rem;text-align:center}.dashboard-header{justify-content:space-between;padding:0 .5rem}.dashboard-header,.dashboard-title-row{display:flex;align-items:flex-start;gap:.75rem}.dashboard-title-row{min-width:0;flex:1 1 auto;flex-wrap:wrap}.dashboard-title{font-size:var(--text-2xl);font-weight:var(--w-semibold);letter-spacing:var(--trk-tight);margin:0;line-height:1.2}.dashboard-day-notes-wrap{min-width:0;flex:1 1 360px;display:flex;align-items:flex-start;gap:.5rem;flex-wrap:wrap}.dashboard-day-notes{color:var(--text-muted);font-size:var(--text-sm);flex:1 1 280px;min-width:0;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.dashboard-day-notes.expanded{display:block;white-space:pre-wrap}.dashboard-notes-toggle{min-height:44px;padding-inline:.65rem;font-size:var(--text-xs)}.dashboard-trust-row{padding-inline:.5rem}.dashboard-item,.dashboard-item-inner{height:100%;position:relative}.dashboard-widget-shield{position:absolute;inset:0;z-index:10}.dashboard-drag-handle{top:.4rem;left:.4rem;z-index:12;border-radius:var(--radius-sm);border:1px solid var(--border-medium);background:color-mix(in srgb,var(--surface-card) 86%,var(--surface-hover));color:var(--text-muted);font-size:var(--text-xs);letter-spacing:var(--trk-wide);text-transform:uppercase;padding:.2rem .4rem;pointer-events:none}.dashboard-drag-handle,.dashboard-remove-btn{position:absolute;font-weight:var(--w-semibold)}.dashboard-remove-btn{top:-.65rem;right:-.65rem;width:2.75rem;height:2.75rem;border-radius:50%;background:var(--status-bad-text);color:#fff;border:2px solid var(--surface-card);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem;z-index:13}.dashboard-remove-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring)}.dashboard-picker{margin-top:1rem;padding:1rem;background:var(--surface-card);border-radius:var(--radius-md);border:1px solid var(--border-light)}.dashboard-picker-title{font-size:var(--text-sm);font-weight:var(--w-semibold);margin-bottom:.5rem}.dashboard-picker-list{display:flex;flex-wrap:wrap;gap:.5rem}.dashboard-picker-button{font-size:var(--text-xs)}.dashboard-customize-bar{display:flex;justify-content:center;margin-top:1rem;position:-webkit-sticky;position:sticky;bottom:calc(var(--bottom-nav-height) + var(--safe-bottom) + .5rem);z-index:8;padding-bottom:.5rem;pointer-events:none}.dashboard-customize-button{width:100%;max-width:340px;min-width:200px;min-height:44px;pointer-events:auto}@media (min-width:901px){.dashboard-customize-bar{bottom:1rem}}.widget-body{overflow:hidden}.widget-body,.widget-center{display:flex;flex-direction:column;height:100%}.widget-center{justify-content:center;align-items:center;text-align:center}.widget-list{flex:1 1;overflow-y:auto;min-height:0;padding-right:.25rem}.widget-list-item{display:flex;align-items:center;gap:.5rem;padding:.25rem 0;min-width:0}.widget-list-item:focus-within .widget-delete,.widget-list-item:hover .widget-delete{opacity:1}.widget-delete{margin-left:auto;opacity:0;color:var(--text-muted);background:none;border:none;cursor:pointer;font-size:1rem;padding:0;transition:opacity .15s,color .15s}.widget-delete:hover{color:var(--status-bad-text)}.widget-delete:focus-visible{outline:none;color:var(--status-bad-text);box-shadow:0 0 0 3px var(--focus-ring);border-radius:var(--radius-sm)}.widget-checkbox{width:22px;height:22px;border-radius:var(--radius-full);border:1px solid var(--border-medium);flex:0 0 22px;background:transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:transparent;font-size:var(--text-sm);font-weight:var(--w-semibold);transition:border-color var(--duration-base) var(--ease-standard),background-color var(--duration-base) var(--ease-standard),color var(--duration-base) var(--ease-standard)}.widget-checkbox:hover{border-color:var(--brand-accent)}.widget-checkbox.checked{background:var(--status-good-bg);border-color:var(--status-good-text);color:var(--status-good-text)}.widget-checkbox:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring)}.widget-empty{font-size:var(--text-xs);color:var(--text-muted);font-style:italic;padding:1rem 0;text-align:center}.widget-stat-value{font-size:var(--text-2xl);font-weight:var(--w-semibold);color:var(--brand-accent)}.widget-stat-label,.widget-stat-value.muted{color:var(--text-muted)}.widget-stat-label{font-size:var(--text-xs)}.widget-row{display:flex;justify-content:space-between;align-items:center}.widget-chip{display:inline-block;padding:.125rem .5rem;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--w-medium);background:var(--status-good-bg);color:var(--status-good-text)}.widget-chip.warn{background:var(--status-warn-bg);color:var(--status-warn-text)}.widget-chip.info{background:var(--status-info-bg);color:var(--status-info-text)}.widget-chip.bad{background:var(--status-bad-bg);color:var(--status-bad-text)}.widget-link-reset{text-decoration:none;color:inherit;display:block}.widget-link-reset:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring);border-radius:var(--radius-sm)}.widget-disabled-link{opacity:.85;cursor:default}.widget-inline-actions{display:inline-flex;gap:.75rem;align-items:center}.widget-meta{font-size:var(--text-xs);color:var(--text-muted)}.widget-meta-tight{margin-top:.25rem}.widget-stack-sm{display:flex;flex-direction:column;gap:.5rem}.widget-action-button{border:none;background:transparent;color:var(--brand-accent);font-size:var(--text-xs);font-weight:var(--w-semibold);cursor:pointer;padding:.25rem 0;min-height:32px}.widget-action-button:disabled{color:var(--text-muted);cursor:default}.widget-action-button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring);border-radius:var(--radius-sm)}.widget-error-text{color:var(--status-bad-text);font-size:var(--text-xs)}.widget-callout-info,.widget-callout-muted,.widget-callout-warn{margin-top:.5rem;width:100%;border-radius:var(--radius-sm);padding:.45rem .6rem}.widget-callout-info{background:var(--status-info-bg)}.widget-callout-warn{background:var(--status-warn-bg)}.widget-callout-muted{background:var(--surface-hover);border:1px solid var(--border-light);padding:.5rem .65rem}.widget-callout-title{font-size:var(--text-xs);color:var(--text-muted);font-weight:var(--w-medium)}.widget-callout-title.info{color:var(--status-info-text)}.widget-callout-title.warn{color:var(--status-warn-text)}.widget-trust-row{display:flex;align-items:center;justify-content:flex-start;gap:.35rem;min-width:0}.widget-trust-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.18rem .55rem;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--w-semibold);border:1px solid var(--border-light);line-height:1.2;max-width:100%}.widget-trust-badge.good{background:var(--status-good-bg);color:var(--status-good-text)}.widget-trust-badge.info{background:var(--status-info-bg);color:var(--status-info-text)}.widget-trust-badge.warn{background:var(--status-warn-bg);color:var(--status-warn-text)}.widget-trust-badge.bad{background:var(--status-bad-bg);color:var(--status-bad-text)}.active-project-empty{justify-content:center;align-items:center}.active-project-body{justify-content:space-between;gap:.5rem}.active-project-main{min-width:0}.my-stats-body{justify-content:center;gap:.35rem}.my-stats-value{font-size:var(--text-lg);font-weight:var(--w-semibold)}.my-stats-value.completed{color:var(--status-good-text)}.inbox-widget-center{position:relative}.widget-alert-dot{position:absolute;top:0;right:0;width:.75rem;height:.75rem;border-radius:50%;background:var(--status-bad-text);border:2px solid var(--surface-card)}.quick-tool-center{gap:.5rem;cursor:pointer}.recent-files-body{gap:.5rem}.widget-list-item-button{padding:.25rem;border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:transparent;border:none;width:100%}.widget-list-item-button:disabled{cursor:default;opacity:.85}.widget-list-item-button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring)}.recent-files-type-chip{font-size:var(--text-xs);text-transform:uppercase;font-weight:var(--w-semibold);min-width:2rem;text-align:center}.recent-files-main{flex:1 1;min-width:0}.recent-files-name{font-weight:var(--w-medium);font-size:var(--text-sm)}.recent-files-meta{font-size:var(--text-xs)}.sync-health-center{gap:.25rem}.sync-health-status{font-weight:var(--w-semibold);font-size:var(--text-sm)}.sync-health-detail{font-size:var(--text-xs)}.active-project-number{font-size:var(--text-lg);font-weight:var(--w-semibold)}.active-project-chips{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.active-project-notes-list{gap:6px;margin-top:4px}.active-project-note{white-space:pre-wrap;font-size:var(--text-sm)}.up-next-body{gap:.5rem}.up-next-row{gap:.5rem;align-items:flex-start;padding:.25rem 0}.up-next-time{font-weight:var(--w-semibold);font-size:var(--text-xs);width:3rem;text-align:center;color:var(--brand-accent);flex-shrink:0}.up-next-details{flex:1 1 auto;min-width:0}.up-next-title{font-weight:var(--w-medium);font-size:var(--text-sm)}.up-next-chip-wrap{margin-top:4px}.up-next-secondary{text-align:center}.line-clamp-1{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.widget-status-icon{width:2.5rem;height:2.5rem;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center}.widget-status-icon.good{background:var(--status-good-bg);color:var(--status-good-text)}.widget-status-icon.bad{background:var(--status-bad-bg);color:var(--status-bad-text)}.widget-status-icon.info{background:var(--status-info-bg);color:var(--status-info-text)}.schedule-calendar-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.schedule-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));grid-gap:.5rem;gap:.5rem}@media (max-width:900px){.schedule-calendar-grid{grid-template-columns:repeat(7,minmax(120px,1fr))}}.schedule-calendar-grid .card{padding:.5rem;margin:.25rem 0;font-size:var(--text-sm)}.schedule-calendar-grid .card .muted{font-size:var(--text-xs)}.toast-container{position:fixed;bottom:var(--s-4);right:var(--s-4);z-index:9999;display:flex;flex-direction:column;gap:var(--s-3);max-width:420px;pointer-events:none}@media (max-width:900px){.toast-container{bottom:calc(var(--bottomnav-height) + var(--s-3));right:var(--s-3);left:var(--s-3);max-width:none}}.assistant-fab-wrap{position:fixed;right:var(--s-4);bottom:calc(var(--s-4) + var(--safe-bottom));z-index:3000}.assistant-fab{width:56px;height:56px;border-radius:var(--radius-full);border:1px solid color-mix(in srgb,var(--brand-accent) 55%,transparent);background:radial-gradient(circle at 28% 28%,color-mix(in srgb,#fff 28%,transparent) 0,color-mix(in srgb,var(--brand-accent) 30%,transparent) 36%,transparent 70%),radial-gradient(circle at 70% 80%,color-mix(in srgb,var(--brand-primary) 40%,transparent) 0,transparent 55%),linear-gradient(155deg,color-mix(in srgb,var(--brand-primary) 70%,var(--brand-accent)),color-mix(in srgb,var(--brand-accent) 70%,#fff 10%));color:var(--text-inverse);font-weight:var(--w-semibold);font-size:1.05rem;letter-spacing:.06em;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 18px 36px -18px color-mix(in srgb,var(--brand-primary) 75%,transparent),0 12px 28px -18px color-mix(in srgb,var(--brand-accent) 75%,transparent),0 0 0 1px color-mix(in srgb,var(--surface-card) 30%,transparent);cursor:pointer;position:relative;isolation:isolate;transition:transform var(--duration-base) var(--ease-emphasized),box-shadow var(--duration-base) var(--ease-emphasized),border-color var(--duration-base) var(--ease-standard);animation:assistant-float 6s ease-in-out infinite;text-shadow:0 1px 6px color-mix(in srgb,var(--brand-primary) 80%,transparent)}.assistant-fab:before{inset:-10px;background:radial-gradient(circle,color-mix(in srgb,var(--brand-accent) 45%,transparent),transparent 75%);opacity:.45;z-index:-1}.assistant-fab:after,.assistant-fab:before{content:"";position:absolute;border-radius:inherit}.assistant-fab:after{inset:7px 9px 10px 9px;border:1px solid color-mix(in srgb,var(--surface-card) 55%,transparent);opacity:.7}.assistant-fab:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 22px 40px -20px color-mix(in srgb,var(--brand-primary) 80%,transparent),0 14px 32px -18px color-mix(in srgb,var(--brand-accent) 80%,transparent),0 0 0 6px color-mix(in srgb,var(--brand-accent) 15%,transparent)}.assistant-fab:active{transform:translateY(-1px) scale(.98)}.assistant-fab[aria-pressed=true]{border-color:color-mix(in srgb,var(--brand-accent) 70%,transparent);box-shadow:0 0 0 6px color-mix(in srgb,var(--brand-accent) 20%,transparent),0 16px 32px -20px color-mix(in srgb,var(--brand-accent) 70%,transparent);animation:assistant-pulse 2.6s ease-in-out infinite}@media (max-width:600px){.assistant-fab{width:50px;height:50px;font-size:1rem}}@media (max-width:900px){.assistant-fab-wrap{bottom:calc(var(--s-4) + var(--safe-bottom) + var(--bottom-nav-height))}}@keyframes assistant-float{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes assistant-pulse{0%,to{box-shadow:0 0 0 6px color-mix(in srgb,var(--brand-accent) 18%,transparent),0 16px 32px -20px color-mix(in srgb,var(--brand-accent) 70%,transparent)}50%{box-shadow:0 0 0 10px color-mix(in srgb,var(--brand-accent) 12%,transparent),0 18px 36px -22px color-mix(in srgb,var(--brand-accent) 80%,transparent)}}@media (prefers-reduced-motion:reduce){.assistant-fab,.assistant-fab[aria-pressed=true]{animation:none}}.toast{display:flex;align-items:flex-start;gap:var(--s-3);padding:var(--s-3) var(--s-4);background:var(--surface-card);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);pointer-events:all;animation:toastSlideIn .2s ease-out;min-height:48px}@keyframes toastSlideIn{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}.toast-icon{flex-shrink:0;width:20px;height:20px;margin-top:2px}.toast-message{flex:1 1;font-size:var(--text-sm);line-height:1.5;color:var(--text-main)}.toast-close{flex-shrink:0;padding:var(--s-1);background:none;border:none;cursor:pointer;color:var(--text-muted);border-radius:var(--radius-sm);transition:background-color var(--duration-fast) var(--ease-standard)}.toast-close:hover{background:var(--surface-hover);color:var(--text-secondary)}.toast-success{border-left:4px solid #22c55e}.toast-success .toast-icon{color:#22c55e}.toast-error{border-left:4px solid #ef4444}.toast-error .toast-icon{color:#ef4444}.toast-warning{border-left:4px solid #f59e0b}.toast-warning .toast-icon{color:#f59e0b}.toast-info{border-left:4px solid #3b82f6}.toast-info .toast-icon{color:#3b82f6}.breadcrumb{margin-bottom:var(--s-3)}.breadcrumb ol{flex-wrap:wrap;list-style:none;padding:0;margin:0;font-size:var(--text-sm);color:var(--text-muted)}.breadcrumb li,.breadcrumb ol{display:flex;align-items:center;gap:var(--s-2)}.breadcrumb a{color:var(--text-link);text-decoration:none;transition:color var(--duration-fast) var(--ease-standard)}.breadcrumb a:hover{color:var(--brand-accent-hover)}.breadcrumb li:last-child span{color:var(--text-secondary);font-weight:500}.breadcrumb-separator{color:var(--text-muted);-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (max-width:900px){.breadcrumb{display:none}}.empty-state{padding:var(--s-6) var(--s-4);min-height:240px}.empty-state-icon{width:64px;height:64px;margin-bottom:var(--s-4);color:var(--text-muted);opacity:.5}.empty-state-icon svg{width:100%;height:100%}.empty-state-title{font-weight:600;color:var(--text-secondary);margin-bottom:var(--s-2)}.empty-state-description{font-size:var(--text-sm);max-width:400px;margin-bottom:var(--s-4)}.workspace-tab-pane{display:flex;flex-direction:column;gap:var(--s-4);min-width:0}.workspace-tab-pane>.card,.workspace-tab-pane>.grid2>.card{margin-bottom:0}.workspace-surface-card{border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);background:var(--surface-card)}.workspace-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-3);flex-wrap:wrap;margin-bottom:var(--s-2)}.workspace-section-heading{margin:0;font-size:var(--text-lg);font-weight:var(--w-semibold);color:var(--text-main)}.workspace-section-subtitle{margin-top:2px;color:var(--text-muted);font-size:var(--text-sm)}.workspace-top-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.workspace-inline-empty{border:1px dashed var(--border-light);border-radius:var(--radius-md);background:var(--surface-page);padding:var(--s-3);color:var(--text-muted)}.workspace-inline-empty strong{display:block;color:var(--text-main);margin-bottom:var(--s-1)}.workspace-table-shell{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-card);padding:var(--s-2)}.workspace-observation-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:var(--s-2);gap:var(--s-2);margin-bottom:var(--s-2)}.workspace-observation-filters .field{margin:0}.workspace-observation-view-text{white-space:pre-wrap}.workspace-note-list{display:grid;grid-gap:var(--s-2);gap:var(--s-2)}.workspace-note-item{border:1px solid var(--border-subtle);background:var(--surface-hover);border-radius:var(--radius-md);padding:var(--s-2) var(--s-3)}.workspace-note-prewrap{white-space:pre-wrap}.workspace-site-card{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,1fr);grid-gap:var(--s-3);gap:var(--s-3)}.workspace-site-hero{border:1px solid color-mix(in srgb,var(--brand-accent) 24%,var(--border-subtle));border-radius:var(--radius-lg);padding:var(--s-3);background:linear-gradient(145deg,color-mix(in srgb,var(--brand-accent) 8%,var(--surface-card)) 0,var(--surface-card) 70%);min-width:0}.workspace-site-name{font-size:var(--text-lg);font-weight:var(--w-semibold);color:var(--text-main);line-height:1.3}.workspace-site-address{margin-top:var(--s-1);color:var(--text-secondary);font-size:var(--text-sm);line-height:1.4;white-space:pre-wrap}.workspace-site-actions{margin-top:var(--s-3);display:flex;flex-wrap:wrap;gap:var(--s-2)}.workspace-site-contact-card{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface-hover) 72%,var(--surface-card));padding:var(--s-3);min-width:0}.workspace-site-contact-label{font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.workspace-site-contact-content{margin-top:var(--s-2);display:grid;grid-gap:6px;gap:6px}.workspace-site-contact-name{font-weight:var(--w-semibold);color:var(--text-main)}.workspace-site-contact-link{color:var(--text-link);text-decoration:none;overflow-wrap:anywhere}.workspace-site-contact-link:hover{text-decoration:underline}.workspace-site-contact-role{color:var(--text-secondary);font-size:var(--text-sm)}.workspace-site-contact-empty{margin-top:var(--s-2);color:var(--text-muted)}.workspace-uploads-commandbar{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;grid-gap:var(--s-2);gap:var(--s-2);align-items:center;margin-bottom:var(--s-3)}.workspace-uploads-list-pane{min-width:0}.workspace-uploads-desktop-table{display:block}.workspace-uploads-mobile-list{display:none}.workspace-upload-row{cursor:pointer}.workspace-upload-row.is-selected td{background:color-mix(in srgb,var(--brand-accent) 9%,var(--surface-card))}.workspace-upload-row.is-selected td:first-child{box-shadow:inset 3px 0 0 var(--brand-accent)}.workspace-upload-row-menu-wrap{position:relative;display:flex;justify-content:flex-end}.workspace-upload-row-menu-btn{width:34px;height:34px;padding:0}.workspace-upload-kebab-dots{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;pointer-events:none}.workspace-upload-kebab-dots span{width:4px;height:4px;border-radius:999px;background:currentColor;display:block}.workspace-upload-row-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:180px;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--s-1);display:grid;grid-gap:2px;gap:2px;z-index:30}.workspace-upload-row-menu-item{border:none;background:transparent;text-align:left;width:100%;border-radius:var(--radius-sm);padding:.45rem .6rem;font-size:var(--text-sm);color:var(--text-main);cursor:pointer}.workspace-upload-row-menu-item:hover:not(:disabled){background:var(--surface-hover)}.workspace-upload-row-menu-item:disabled{opacity:.6;cursor:not-allowed}.workspace-upload-row-menu-item.danger{color:var(--status-bad-text)}.workspace-upload-mobile-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-card);padding:var(--s-3)}.workspace-upload-mobile-card.is-selected{border-color:color-mix(in srgb,var(--brand-accent) 55%,var(--border-subtle));background:color-mix(in srgb,var(--brand-accent) 10%,var(--surface-card));box-shadow:0 0 0 1px color-mix(in srgb,var(--brand-accent) 28%,transparent)}.workspace-table-mobile-list{display:none}.workspace-table-mobile-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-card);padding:var(--s-3)}.workspace-table-mobile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-2)}.workspace-table-mobile-title{font-weight:var(--w-semibold);color:var(--text-main);line-height:1.35}.workspace-table-mobile-body{margin-top:var(--s-1);color:var(--text-secondary);font-size:var(--text-sm)}.workspace-table-mobile-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-2);margin-top:var(--s-1)}.workspace-table-mobile-row span:last-child{text-align:right;overflow-wrap:anywhere;flex:1 1}@media (max-width:900px){.card{padding:var(--s-3);margin-bottom:var(--s-3)}.card+.card{margin-top:0}grid2{gap:var(--s-3)}.quick-actions-grid{display:grid;grid-gap:var(--s-2);gap:var(--s-2)}.quick-actions-grid,.workspace-uploads-commandbar{grid-template-columns:1fr}.workspace-uploads-desktop-table{display:none}.workspace-table-mobile-list,.workspace-uploads-mobile-list{display:grid;grid-gap:var(--s-2);gap:var(--s-2)}.workspace-upload-mobile-card .btn{flex:1 1 140px}.workspace-site-card{grid-template-columns:1fr}}@media (min-width:769px){.workspace-table-mobile-list{display:none}}@media (min-width:400px) and (max-width:900px){.quick-actions-grid{grid-template-columns:1fr 1fr}}@media (min-width:901px){.quick-actions-grid{display:flex;flex-wrap:wrap;gap:var(--s-2)}.quick-actions-grid .btn{flex:0 0 auto}}@media (max-width:480px){.card{padding:var(--s-2);margin-bottom:var(--s-2)}.grid2{gap:var(--s-2)}}@media (max-width:900px){.workspace-status-pills{display:none}.glass-panel{padding:var(--s-2) var(--s-3)}.admin-dashboard.fullscreen,.calendar-widget-card.fullscreen,.fan-curve-tool.fullscreen,.fan-diagram-card.fullscreen,.grille-balance-mode.fullscreen,.grille-rows-card.fullscreen,.review-detail-card.fullscreen,.workspace-uploads-panel.fullscreen{left:0!important;width:100vw!important}.card{max-width:100%;overflow-x:auto}.card,.card *{box-sizing:border-box}}.workspace-page .btn{font-size:var(--text-sm);padding:.5rem 1rem}.rich-text-editor{border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--surface-card);overflow:hidden}.rich-text-editor.disabled{opacity:.6;pointer-events:none}.rich-text-toolbar{display:flex;align-items:center;gap:var(--s-1);padding:var(--s-2);background:var(--surface-hover);border-bottom:1px solid var(--border-light);flex-wrap:wrap}.rich-text-toolbar .btn.icon-only{min-width:32px;min-height:32px;padding:0;font-size:var(--text-sm);display:flex;align-items:center;justify-content:center}.rich-text-divider{width:1px;height:20px;background:var(--border-light);margin:0 var(--s-1)}.rich-text-content{min-height:150px;max-height:400px;padding:var(--s-3);overflow-y:auto;font-size:var(--text-base);line-height:var(--lh-normal);color:var(--text-main)}.rich-text-content:focus{outline:none}.rich-text-content:empty:before{content:attr(data-placeholder);color:var(--text-muted);pointer-events:none}.rich-text-content ol,.rich-text-content ul{margin:var(--s-2) 0;padding-left:1.5rem}.rich-text-content li{margin-bottom:var(--s-1)}.project-notes-preview{padding:var(--s-3);background:var(--surface-hover);border-radius:var(--radius-md);max-height:300px;overflow-y:auto;white-space:pre-wrap}.project-notes-preview ol,.project-notes-preview ul{margin:var(--s-2) 0;padding-left:1.5rem}.project-notes-preview li{margin-bottom:var(--s-1)}.loading-spinner{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2)}.loading-spinner:before{content:"";width:20px;height:20px;border:2px solid var(--border-light);border-top-color:var(--brand-accent);border-radius:50%;animation:spin .8s linear infinite}.loading-spinner.sm:before{width:14px;height:14px;border-width:1.5px}.loading-spinner.lg:before{width:32px;height:32px;border-width:3px}@keyframes spin{to{transform:rotate(1turn)}}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-3);padding:var(--s-6);min-height:200px;color:var(--text-muted)}.loading-container .loading-spinner:before{width:32px;height:32px;border-width:3px}.skeleton{background:linear-gradient(90deg,var(--surface-hover) 0,color-mix(in srgb,var(--surface-hover) 70%,var(--surface-card)) 50%,var(--surface-hover) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}.skeleton-text{height:1em;width:100%;margin-bottom:var(--s-2)}.skeleton-text:last-child{margin-bottom:0;width:70%}.skeleton-avatar{width:40px;height:40px;border-radius:50%;flex-shrink:0}.skeleton-button{height:var(--control-height);width:120px;border-radius:var(--radius-md)}.skeleton-card{height:120px;border-radius:var(--radius-lg)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--s-6);min-height:200px;gap:var(--s-3)}.empty-state.card{background:var(--surface-card);border:1px dashed var(--border-light);border-radius:var(--radius-lg)}.empty-state.inline{background:transparent;border:none;min-height:auto;padding:var(--s-4)}.empty-state-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--brand-accent) 10%,transparent);border-radius:var(--radius-full);color:var(--brand-accent)}.empty-state-icon svg{width:28px;height:28px}.empty-state-title{font-size:var(--text-lg);font-weight:var(--w-semibold);color:var(--text-main);line-height:var(--lh-tight)}.empty-state-description{font-size:var(--text-md);color:var(--text-muted);max-width:320px;line-height:var(--lh-normal)}.empty-state-action{margin-top:var(--s-2)}.empty-state.compact{padding:var(--s-4);min-height:120px;gap:var(--s-2)}.empty-state.compact .empty-state-icon{width:40px;height:40px}.empty-state.compact .empty-state-icon svg{width:20px;height:20px}.empty-state.compact .empty-state-title{font-size:var(--text-md)}.empty-state.compact .empty-state-description{font-size:var(--text-sm)}.admin-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 calc(-1 * var(--s-4));padding:0 var(--s-4)}.admin-table-scroll table{min-width:600px}.admin-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:var(--s-4);gap:var(--s-4)}@media (max-width:640px){.admin-form-row{flex-direction:column!important;align-items:stretch!important}.admin-form-row>*{width:100%!important;min-width:0!important}.admin-actions{flex-direction:column}.admin-actions .btn{width:100%;justify-content:center}.flagRow{flex-direction:column;align-items:stretch!important;gap:var(--s-2)!important}.flagToggle{margin-left:0!important;margin-top:var(--s-2)}}@media (max-width:900px){.admin-nav-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 calc(-1 * var(--s-4));padding:0 var(--s-4) var(--s-3)}.admin-nav-scroll .navtabs{flex-wrap:nowrap;min-width:max-content}}