.fan-checklist-stack{min-width:0}.fan-checklist-summary{display:flex;flex-direction:column;gap:12px}.fan-summary-row{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start;justify-content:space-between}.fan-summary-actions{display:flex;flex-wrap:wrap;gap:8px}.fan-progress-track{position:relative;height:10px;border-radius:999px;border:1px solid var(--border-light);background:color-mix(in srgb,var(--surface-hover) 70%,var(--surface-card));overflow:hidden}.fan-progress-track.compact{height:6px}.fan-progress-fill{height:100%;background:linear-gradient(90deg,color-mix(in srgb,var(--brand-accent) 90%,#fff 10%),color-mix(in srgb,var(--brand-accent) 60%,#fff 40%));transition:width var(--duration-base) var(--ease-standard)}.fan-section-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:12px;gap:12px}.fan-section-tile{display:flex;flex-direction:column;gap:8px;text-align:left;border-radius:var(--radius-lg);border:1px solid var(--border-light);background:var(--surface-card);padding:12px;cursor:pointer;transition:border-color var(--duration-base) var(--ease-standard),background-color var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard);min-width:0}.fan-section-tile:hover{background:var(--surface-hover)}.fan-section-tile.active{border-color:var(--brand-accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--brand-accent) 35%,transparent)}.fan-section-tile.optional{border-style:dashed}.fan-section-tile-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.fan-section-tile-meta{display:flex;flex-wrap:wrap;gap:6px}.fan-focus-card{display:flex;flex-direction:column;gap:12px}.fan-focus-header{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start;justify-content:space-between}.fan-focus-actions{display:flex;flex-wrap:wrap;gap:8px}.fan-focus-meta{display:flex;flex-wrap:wrap;gap:6px}.fan-section-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:12px;gap:12px}.fan-section-fields.fan-two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.fan-section-fields .field{margin-bottom:0;min-width:0}.fan-motor-focus{display:flex;flex-direction:column;gap:12px}.fan-focus-table-wrap,.fan-motor-table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.fan-focus-table,.fan-motor-table{width:100%;border-collapse:separate;border-spacing:0;white-space:normal;border:1px solid var(--border-light);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface-card)}.fan-focus-table td,.fan-focus-table th,.fan-motor-table td,.fan-motor-table th{padding:.5rem .75rem;border-bottom:1px solid var(--border-light)}.fan-focus-table thead th,.fan-motor-table thead th{background:var(--surface-hover)}.fan-focus-table tbody th,.fan-motor-table tbody th{color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--w-semibold);width:90px}.fan-focus-input,.fan-motor-input{height:var(--control-height-sm);min-height:var(--control-height-sm);padding:0 var(--s-3);font-size:var(--text-sm)}.fan-focus-input[type=number],.fan-motor-input[type=number]{text-align:right}.fan-focus-input.missing,.fan-motor-input.missing{border-color:var(--status-warn-bg);background:color-mix(in srgb,var(--status-warn-bg) 18%,var(--surface-card))}.fan-focus-input.error,.fan-motor-input.error{border-color:var(--status-bad-bg);background:color-mix(in srgb,var(--status-bad-bg) 18%,var(--surface-card))}.fan-motor-avg{font-weight:var(--w-semibold)}.fan-motor-chips{display:flex;flex-wrap:wrap;gap:6px}.fan-range-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(160px,2fr) 96px;grid-gap:10px;gap:10px;align-items:center;border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:10px 12px;background:var(--surface-card)}.fan-range-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fan-range{width:100%;min-height:0;height:var(--control-height-sm);padding:0;accent-color:var(--brand-accent)}.fan-range-number{text-align:right}.fan-issues-card{display:flex;flex-direction:column;gap:12px}.fan-issues-header{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;justify-content:space-between}.fan-issues-list{display:flex;flex-direction:column;gap:10px}.fan-issue-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:8px;gap:8px;align-items:center}.fan-issue-row input[type=text]{width:100%}@media (max-width:720px){.fan-section-fields,.fan-section-tiles{grid-template-columns:1fr}.fan-section-fields.fan-two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.fan-results-grid.collapsed .fan-results-drive{display:none}.fan-range-row{grid-template-columns:1fr;align-items:stretch}.fan-range-label{white-space:normal}.fan-issue-row{grid-template-columns:1fr;align-items:stretch}}@media (max-width:900px){.fan-editor-layout{grid-template-columns:1fr}.fan-editor-nav{display:none}.fan-section-tabs{display:flex}.fan-section-link{min-width:160px;flex:0 0 auto}}@media (min-width:900px){.fan-results-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}:root{--brand-primary:#0f172a;--brand-accent:#2563eb;--brand-accent-hover:#1d4ed8;--surface-page:#f8fafc;--surface-card:#fff;--surface-hover:#f1f5f9;--text-main:#020617;--text-secondary:#334155;--text-muted:#64748b;--text-inverse:#fff;--border-light:#cbd5e1;--border-medium:#94a3b8;--border-subtle:#e2e8f0;--status-good-bg:#dcfce7;--status-good-text:#166534;--status-warn-bg:#fef9c3;--status-warn-text:#854d0e;--status-bad-bg:#fee2e2;--status-bad-text:#991b1b;--status-info-bg:#e0f2fe;--status-info-text:#075985;--s-1:0.25rem;--s-2:0.5rem;--s-3:0.75rem;--s-4:1rem;--s-5:1.5rem;--s-6:2rem;--radius-sm:0.375rem;--radius-md:0.75rem;--radius-lg:1rem;--radius-full:9999px;--r-1:var(--radius-sm);--r-2:var(--radius-md);--r-3:var(--radius-lg);--r-4:var(--radius-full);--wrapper-max-width:1560px;--header-height:64px;--bottom-nav-height:80px;--fixed-stack-offset:0px;--sidebar-width:280px;--sidebar-width-collapsed:72px;--control-height:44px;--control-height-sm:32px;--font-sans:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji",sans-serif;--text-xs:0.75rem;--text-sm:0.8125rem;--text-md:0.9375rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.75rem;--w-regular:400;--w-medium:500;--w-semibold:600;--trk-tight:-0.02em;--trk-normal:0em;--trk-wide:0.01em;--lh-tight:1.2;--lh-snug:1.3;--lh-normal:1.5;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--shadow-card:0 1px 2px 0 rgba(15,23,42,.06),0 6px 16px -12px rgba(15,23,42,.18);--duration-fast:120ms;--duration-base:200ms;--duration-slow:320ms;--ease-standard:cubic-bezier(0.2,0,0,1);--ease-emphasized:cubic-bezier(0.2,0.8,0.2,1);--focus-ring:color-mix(in srgb,var(--brand-accent) 35%,transparent);--brand-3:var(--brand-accent);--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--header-stack-height:calc(var(--header-height) + var(--safe-top));--surface-glass:color-mix(in srgb,var(--surface-card) 92%,transparent);--surface-glass-soft:color-mix(in srgb,var(--surface-card) 84%,transparent);--border-glass:color-mix(in srgb,var(--border-light) 70%,transparent);--glass-blur:12px;color-scheme:light;accent-color:var(--brand-accent)}:root[data-theme=dark]{--brand-primary:#020617;--brand-accent:#38bdf8;--brand-accent-hover:#0ea5e9;--surface-page:#0f172a;--surface-card:#1e293b;--surface-hover:#334155;--text-main:#f8fafc;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--border-light:#475569;--border-medium:#64748b;--border-subtle:#334155;--status-good-bg:#052e16;--status-good-text:#4ade80;--status-warn-bg:#422006;--status-warn-text:#facc15;--status-bad-bg:#450a0a;--status-bad-text:#f87171;--status-info-bg:#082f49;--status-info-text:#38bdf8;--shadow-card:0 1px 2px 0 rgba(2,6,23,.4),0 8px 20px -16px rgba(2,6,23,.8);color-scheme:dark}:root[data-theme=dark] .iconbtn{background:var(--surface-card);border-color:var(--border-light);color:var(--text-main)}.toggle{display:inline-flex;align-items:center;gap:10px;cursor:pointer;min-height:28px}.toggle input{position:absolute;opacity:0;pointer-events:none}.toggle-track{width:36px;height:20px;border-radius:var(--radius-full);border:1px solid var(--border-medium);background-color:var(--surface-hover);position:relative;flex:0 0 auto;transition:background-color var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard)}.toggle-track:after{content:"";width:16px;height:16px;border-radius:var(--radius-full);position:absolute;top:1px;left:1px;background:var(--surface-card);box-shadow:var(--shadow-sm);transition:transform var(--duration-base) var(--ease-standard)}.toggle input:checked+.toggle-track{background-color:var(--brand-accent);border-color:var(--brand-accent)}.toggle input:checked+.toggle-track:after{transform:translateX(16px)}.toggle-label{color:var(--text-main);font-size:.9rem}:root[data-theme=orange]{--brand-primary:#18181b;--brand-accent:#f97316;--brand-accent-hover:#ea580c;--surface-page:#fff;--surface-card:#f8fafc;--text-main:#0f172a;--status-info-bg:#ffedd5;--status-info-text:#9a3412}:root[data-theme=blue]{--brand-primary:#0284c7;--brand-accent:#0f766e;--brand-accent-hover:#0d9488;--surface-page:#f0f9ff;--surface-card:#fff;--surface-hover:#e0f2fe;--text-main:#334155}:root[data-theme=green]{--brand-primary:#2f3b2f;--brand-accent:#5f7c3a;--brand-accent-hover:#4f672f;--surface-page:#f3f5f1;--surface-card:#fff;--surface-hover:#e6ecdf;--text-main:#1d241d;--status-info-text:#3f552a}:root[data-theme=lavender]{--brand-primary:#1f2a44;--brand-accent:#3f5c8a;--brand-accent-hover:#334c72;--surface-page:#f3f5f8;--surface-card:#fff;--surface-hover:#e6ebf3;--text-main:#1c2535;--status-info-text:#2f4a72}:root[data-theme=crimson]{--brand-primary:#3b1f17;--brand-accent:#b45309;--brand-accent-hover:#92400e;--surface-page:#f8f3ef;--surface-card:#fff;--surface-hover:#ece2d8;--text-main:#332019;--status-info-text:#7c3f0a}:root[data-theme=slate]{--brand-primary:#0f172a;--brand-accent:#64748b;--brand-accent-hover:#475569;--surface-page:#f8fafc;--surface-card:#fff;--surface-hover:#f1f5f9;--text-main:#020617;--status-info-text:#334155}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--border-medium) var(--surface-page)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:color-mix(in srgb,var(--border-medium) 70%,transparent);border-radius:var(--radius-full);border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background-color:color-mix(in srgb,var(--border-medium) 90%,transparent)}html{width:100%;font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:var(--header-height);scrollbar-gutter:stable}body,html{overflow-x:hidden}body{margin:0;min-height:100dvh;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--lh-normal);color:var(--text-main);background:radial-gradient(1200px 600px at 10% -10%,color-mix(in srgb,var(--brand-accent) 18%,transparent) 0,transparent 60%),radial-gradient(1000px 600px at 90% 0,color-mix(in srgb,var(--brand-primary) 10%,transparent) 0,transparent 55%),var(--surface-page);background-attachment:fixed;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-overflow-scrolling:touch}body.has-tool-footer{--fixed-stack-offset:calc(72px + var(--safe-bottom))}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms;animation-iteration-count:1;transition-duration:.01ms}}@media (pointer:coarse){:root{--control-height:48px}}button{color:var(--text-main);font-family:inherit;font-size:var(--text-base)}h1,h2,h3,h4,h5,h6{margin:0;font-weight:var(--w-semibold);color:var(--text-main)}h1,h2{letter-spacing:var(--trk-tight)}h3,h4,h5,h6{letter-spacing:var(--trk-normal)}h1{font-size:var(--text-3xl);margin-bottom:var(--s-4);line-height:1.1}h2{font-size:var(--text-2xl);margin-bottom:var(--s-3);line-height:1.2}h3{font-size:var(--text-lg);margin-bottom:var(--s-2);line-height:1.25}p{margin:0 0 var(--s-4)}a{color:var(--brand-accent);text-decoration:none}a,button,input,select,textarea{transition:color var(--duration-base) var(--ease-standard),background-color var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard),transform var(--duration-base) var(--ease-standard)}[role=button]:focus-visible,[tabindex]:focus-visible,a:focus-visible,button:focus-visible{outline:none;box-shadow:0 0 0 4px var(--focus-ring);border-radius:var(--radius-sm)}a:focus-visible{border-radius:var(--radius-sm)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none}::selection{background:color-mix(in srgb,var(--brand-accent) 70%,transparent);color:var(--text-inverse)}::-moz-selection{background:color-mix(in srgb,var(--brand-accent) 70%,transparent);color:var(--text-inverse)}.layout{display:grid;grid-template-columns:var(--sidebar-width) 1fr;min-height:100vh;transition:grid-template-columns var(--duration-base) var(--ease-standard)}.layout:has(.sidebar.collapsed){grid-template-columns:var(--sidebar-width-collapsed) 1fr}.sidebar{background:linear-gradient(180deg,color-mix(in srgb,var(--surface-card) 94%,var(--brand-accent) 6%) 0,var(--surface-card) 20%,var(--surface-card) 100%);border-right:1px solid var(--border-light);padding:1.5rem;position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-width);overflow:hidden;display:flex;flex-direction:column;z-index:40;box-shadow:10px 0 26px -22px rgba(15,23,42,.35);transition:width var(--duration-base) var(--ease-standard),padding var(--duration-base) var(--ease-standard)}.sidebar-content{flex:1 1;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;padding-right:2px;scrollbar-width:thin}.sidebar-footer{flex-shrink:0;border-top:1px solid var(--border-light);background:var(--surface-card)}.sidebar.collapsed{width:var(--sidebar-width-collapsed);padding:1rem .5rem}.sidebar.collapsed .brand{justify-content:center;margin-bottom:1rem;padding:0}.sidebar-footer .user-card{margin:0;border-bottom:none;padding:.5rem;display:flex;flex-direction:row;align-items:center;gap:.75rem}.sidebar.collapsed .sidebar-footer .user-card{display:flex;justify-content:center;padding:.75rem 0}.avatar-circle{width:40px;height:40px;background:var(--brand-accent);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1.25rem}.sidebar.collapsed .admin-header,.sidebar.collapsed .btnrow,.sidebar.collapsed .ctx-menu,.sidebar.collapsed .nav-label,.sidebar.collapsed .pill,.sidebar.collapsed .sub,.sidebar.collapsed .text-bold{display:none}.sidebar.collapsed .nav-item{justify-content:center;padding:.75rem;position:relative}.nav-badge{margin-left:auto;padding:.15rem .5rem;font-size:.7rem;font-weight:600;background:linear-gradient(135deg,color-mix(in srgb,var(--status-bad-text) 78%,#fff 22%),var(--status-bad-text));color:#fff;border-radius:var(--radius-full);min-width:1.25rem;text-align:center;line-height:1;box-shadow:0 3px 10px -6px color-mix(in srgb,var(--status-bad-text) 70%,transparent)}.nav-badge-dot{position:absolute;top:8px;right:8px;width:8px;height:8px;background-color:color-mix(in srgb,var(--status-bad-text) 92%,#fff 8%);border-radius:50%;border:1px solid var(--surface-card);box-shadow:0 2px 8px -4px color-mix(in srgb,var(--status-bad-text) 80%,transparent)}.nav-attention-dot{margin-left:auto;width:8px;height:8px;border-radius:50%;background:color-mix(in srgb,var(--status-warn-text) 86%,#fff 14%);flex-shrink:0}.nav-attention-dot,.nav-attention-dot-collapsed{box-shadow:0 2px 8px -4px color-mix(in srgb,var(--status-warn-text) 70%,transparent)}.nav-attention-dot-collapsed{background-color:color-mix(in srgb,var(--status-warn-text) 86%,#fff 14%)}.brand{display:flex;align-items:center;gap:.75rem;padding:.75rem;margin-bottom:2rem;transition:all var(--duration-base) var(--ease-standard)}.logo{width:40px;height:40px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--brand-primary),var(--brand-accent));box-shadow:var(--shadow-md);flex-shrink:0}.sidebar-logo{width:100%;max-width:240px;height:auto;border-radius:0;box-shadow:none;background:none;display:block;transition:opacity var(--duration-base) var(--ease-standard)}.brand h1{font-size:1rem;line-height:1.2}.sub{font-size:.75rem;color:var(--text-secondary);font-weight:500}.admin-menu,.nav-menu{display:flex;flex-direction:column;gap:.25rem}.admin-menu{margin-top:auto;padding-top:1rem;border-top:1px dashed color-mix(in srgb,var(--border-light) 70%,var(--brand-accent) 30%)}.ctx-menu{background:linear-gradient(160deg,color-mix(in srgb,var(--brand-accent) 8%,var(--surface-card)) 0,color-mix(in srgb,var(--brand-primary) 4%,var(--surface-card)) 100%);border:1px solid color-mix(in srgb,var(--border-light) 80%,var(--brand-accent) 20%);border-radius:var(--radius-md);padding:1rem;margin-bottom:1.5rem;position:relative;box-shadow:var(--shadow-sm)}.ctx-menu:after{content:"";display:block;position:absolute;bottom:-.75rem;left:.5rem;right:.5rem;height:1px;background:var(--border-light)}.ctx-header{margin-bottom:.75rem}.ctx-title{font-size:.75rem;font-weight:700;color:var(--brand-accent);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem}.ctx-project{font-weight:600;color:var(--text-main);line-height:1.3}.ctx-actions{display:flex;gap:.5rem}.admin-header{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.5rem;padding-left:.75rem;font-weight:600}.nav-item{display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;border-radius:var(--radius-md);color:var(--text-secondary);font-weight:500;font-size:.925rem;transition:all var(--duration-base) var(--ease-standard);text-decoration:none;border:1px solid transparent;white-space:nowrap;position:relative;overflow:hidden}.nav-item:after{content:"";position:absolute;left:4px;top:50%;width:3px;height:18px;border-radius:999px;background:var(--brand-accent);opacity:0;transform:translateY(-50%) scaleY(.35);transition:opacity var(--duration-base) var(--ease-standard),transform var(--duration-base) var(--ease-standard)}.nav-item:hover{background:var(--surface-hover);color:var(--text-main);border-color:color-mix(in srgb,var(--border-light) 75%,var(--brand-accent) 25%)}.sidebar:not(.collapsed) .nav-item:hover{transform:translateX(2px)}.nav-item:focus-visible{outline:2px solid transparent;border-color:color-mix(in srgb,var(--brand-accent) 35%,var(--border-light));box-shadow:0 0 0 3px var(--focus-ring);background:var(--surface-hover);color:var(--text-main)}.nav-item.active{background:color-mix(in srgb,var(--brand-accent) 10%,var(--surface-card));color:var(--brand-accent);font-weight:600;border-color:color-mix(in srgb,var(--brand-accent) 28%,var(--border-light));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand-accent) 12%,transparent)}.nav-item.active:after{opacity:1;transform:translateY(-50%) scaleY(1)}.sidebar.collapsed .nav-item:after{display:none}.collapse-toggle{display:flex;align-items:center;justify-content:center;padding:.75rem;border:none;border-top:1px solid var(--border-light);background:transparent;cursor:pointer;color:var(--text-muted);transition:all var(--duration-base) ease;width:100%}.collapse-toggle:hover{background:var(--surface-hover);color:var(--text-main)}.collapse-toggle:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 3px var(--focus-ring);color:var(--text-main)}.sidebar.collapsed .collapse-toggle{width:auto;align-self:stretch;border-top:none}.sidecard{background:var(--status-info-bg);border:1px solid rgba(7,89,133,.1);border-radius:var(--radius-md);padding:1rem;margin-top:auto}.user-card{margin-bottom:0;padding:.5rem;border-bottom:1px solid var(--border-light);overflow:hidden}.sidecard .pill{font-size:.75rem;font-weight:700;margin-bottom:.25rem}.pill,.sidecard .pill{display:inline-flex;color:var(--status-info-text)}.pill{align-items:center;justify-content:center;gap:.35rem;padding:.2rem .55rem;border-radius:999px;border:1px solid var(--border-light);background:var(--status-info-bg);text-decoration:none}.label-text,.pill{font-size:var(--text-xs);font-weight:var(--w-semibold)}.label-text{text-transform:none;letter-spacing:var(--trk-wide);color:var(--text-muted)}.prop-row{display:flex;align-items:center;gap:.35rem}.text-brand{color:var(--brand-accent)}.main{padding:2rem 3rem calc(6rem + var(--fixed-stack-offset));max-width:var(--wrapper-max-width);width:100%;margin:0 auto;min-width:0;grid-column:2}.main--fullwidth,body.awpb-visual-focus-active .main{max-width:none;margin:0}.page-shell-layout{width:100%;max-width:var(--wrapper-max-width);margin:0 auto;padding:var(--s-5) var(--s-6);min-width:0}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap;margin-bottom:var(--s-5)}.page-header__titles{display:flex;flex-direction:column;gap:var(--s-2);min-width:0}.page-title{font-size:var(--text-2xl);font-weight:var(--w-semibold);letter-spacing:var(--trk-tight);margin:0}.page-subtitle{margin:0;color:var(--text-secondary);font-size:var(--text-sm)}.page-header__actions{display:flex;flex-wrap:wrap;gap:var(--s-2);align-items:center}.scrollable-tabs{margin-bottom:var(--s-4)}.sticky-actions{position:-webkit-sticky;position:sticky;bottom:calc(var(--bottom-nav-height) + var(--fixed-stack-offset) + var(--s-3));z-index:5;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--r-2);box-shadow:var(--shadow-card);padding:var(--s-3) var(--s-4);display:flex;flex-wrap:wrap;gap:var(--s-3);justify-content:flex-end;align-items:center}@media (min-width:900px){.sticky-actions{top:calc(var(--header-height) + var(--s-3));bottom:auto}}@media (max-width:900px){.page-shell-layout{padding:var(--s-3) var(--s-3)}.page-header__titles{display:none}.page-header{margin-bottom:var(--s-3);padding:0}.mobile-hide{display:none!important}.workspace-actions .btn{font-size:var(--text-xs);padding:.5rem .75rem}.text-3xl,h1{font-size:var(--text-xl);font-weight:var(--w-semibold)}.text-2xl,h2,h3{font-size:var(--text-lg)}.text-2xl,h2,h3,h4{font-weight:var(--w-semibold)}h4{font-size:var(--text-base)}h5,h6{font-size:var(--text-sm);font-weight:var(--w-semibold)}.text-xl{font-weight:var(--w-medium)}.text-lg,.text-xl{font-size:var(--text-base)}.text-bold{font-weight:var(--w-medium)}.muted.text-bold{font-weight:var(--w-regular);font-size:var(--text-sm)}}@media (max-width:480px){.page-shell-layout{padding:var(--s-2) var(--s-2)}.page-header{flex-direction:column;align-items:stretch;gap:var(--s-2);padding:0}.page-header__actions{justify-content:stretch}.page-header__actions .btn{flex:1 1}.btn{min-height:48px}.col{gap:var(--s-2)}input,select,textarea{width:100%}}.bottomnav,.topbar{display:none}@media (max-width:900px){.layout{grid-template-columns:1fr}.sidebar{display:none}.main{padding:calc(var(--header-stack-height) + .5rem) 0 calc(7rem + var(--fixed-stack-offset));grid-column:1}.topbar{justify-content:space-between;position:fixed;top:0;left:0;right:0;z-index:50;background:var(--surface-glass);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-bottom:1px solid var(--border-glass);padding-top:calc(.75rem + var(--safe-top));padding-bottom:.75rem;padding-left:calc(.75rem + var(--safe-left));padding-right:calc(.75rem + var(--safe-right));height:auto}.topbar,.topbar-brand{display:flex;align-items:center}.topbar-brand{gap:.75rem;background:none;border:none;padding:0}.topbar-logo{width:auto;height:56px;border-radius:0;background:none}.topbar-title{font-size:1rem;font-weight:700}.schedule-table{display:block;overflow-x:auto;width:100%;-webkit-overflow-scrolling:touch}.topbar-sub{font-size:.75rem;color:var(--text-secondary);font-weight:400}.iconbtn{width:40px;height:40px;background:var(--surface-card);border:1px solid var(--border-light);border-radius:var(--radius-full);color:var(--text-main);cursor:pointer;position:relative;transition:background-color var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard),color var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard)}.badge,.iconbtn{display:flex;align-items:center;justify-content:center}.badge{position:absolute;top:-2px;right:-2px;background:var(--status-bad-text);color:#fff;font-size:.65rem;font-weight:700;padding:0 .35rem;height:16px;border-radius:999px;border:2px solid #fff}.bottomnav{justify-content:space-around;position:fixed;bottom:0;left:0;right:0;background:var(--surface-glass);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-top:1px solid var(--border-glass);height:var(--bottom-nav-height);padding-bottom:var(--safe-bottom);z-index:50}.bottomnav,.bottomnav-item{display:flex;align-items:center}.bottomnav-item{flex-direction:column;justify-content:center;gap:4px;background:none;border:none;color:var(--text-muted);font-size:.7rem;font-weight:600;width:60px;padding:0;cursor:pointer;position:relative;transition:color var(--duration-base) var(--ease-standard),transform var(--duration-base) var(--ease-standard)}.bottomnav-item.active{color:var(--brand-accent)}.bottomnav-center{width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--text-muted);border-radius:var(--radius-full);transition:background-color var(--duration-base) var(--ease-standard),color var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard)}.bottomnav-center.active{background:transparent;color:var(--brand-accent);box-shadow:none}.bottomnav-item svg,.iconbtn svg{display:block;flex-shrink:0;stroke:currentColor}.bottomnav-center svg{width:24px;height:24px}.nav-badge{position:absolute;top:2px;right:8px;width:10px;height:10px;border-radius:999px;background:var(--status-bad-text);border:2px solid var(--surface-card)}}.card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--r-2);box-shadow:0 1px 2px rgba(0,0,0,.02);padding:1.5rem;margin-bottom:var(--s-5);transition:transform var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard);color:var(--text-main);overflow-wrap:break-word;max-width:100%}.card.no-margin{margin:0}.card:hover{box-shadow:var(--shadow-sm)}@media (max-width:768px){.card{padding:var(--s-4);border-radius:0;margin-left:0;margin-right:0}.card.mobile-rounded{border-radius:var(--r-2);margin-left:var(--s-3);margin-right:var(--s-3);border:1px solid var(--border-subtle)}}.site-list{max-height:280px;overflow-y:auto;padding-right:4px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:0 var(--s-4);border-radius:var(--radius-md);font-weight:var(--w-semibold);font-size:var(--text-md);cursor:pointer;transition:background-color var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard),color var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard),transform var(--duration-base) var(--ease-standard);border:1px solid var(--border-subtle);background:var(--surface-card);color:var(--text-main);height:var(--control-height)}.btn.small{height:var(--control-height-sm);padding:0 var(--s-3);font-size:var(--text-sm)}.btn.icon-only{width:var(--control-height);padding:0;display:flex;align-items:center;justify-content:center;flex-shrink:0}.btn:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-medium)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--brand-accent);border-color:var(--brand-accent);color:#fff;box-shadow:var(--shadow-sm)}.btn.primary:hover:not(:disabled){background:var(--brand-accent-hover);border-color:var(--brand-accent-hover)}.btn.ghost{border-color:transparent;background:transparent;color:var(--text-secondary)}.btn.ghost:hover:not(:disabled){background:rgba(0,0,0,.04);color:var(--text-main)}.btn.secondary{background:color-mix(in srgb,var(--brand-accent) 6%,var(--surface-card));border-color:color-mix(in srgb,var(--brand-accent) 18%,var(--border-subtle));color:var(--text-main)}.btn.secondary:hover:not(:disabled){background:color-mix(in srgb,var(--brand-accent) 10%,var(--surface-card));border-color:color-mix(in srgb,var(--brand-accent) 30%,var(--border-subtle))}:root[data-theme=dark] .btn.secondary{background:color-mix(in srgb,var(--brand-accent) 16%,var(--surface-card));border-color:color-mix(in srgb,var(--brand-accent) 42%,var(--border-light));color:var(--text-main)}:root[data-theme=dark] .btn.secondary:hover:not(:disabled){background:color-mix(in srgb,var(--brand-accent) 24%,var(--surface-hover));border-color:color-mix(in srgb,var(--brand-accent) 58%,var(--border-medium))}:root[data-theme=dark] .btn.ghost:hover:not(:disabled){background:color-mix(in srgb,var(--surface-hover) 74%,transparent);color:var(--text-main)}.btn.danger{background:var(--status-bad-bg);border-color:color-mix(in srgb,var(--status-bad-text) 20%,var(--status-bad-bg));color:var(--status-bad-text)}.btn.danger:hover:not(:disabled){background:color-mix(in srgb,var(--status-bad-bg) 85%,var(--status-bad-text));border-color:color-mix(in srgb,var(--status-bad-text) 35%,var(--status-bad-bg))}.btnrow{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1rem}.btnrow.inline-actions{flex-wrap:nowrap;gap:.5rem;margin-top:0;align-items:center;overflow-x:auto;max-width:100%}.btnrow.inline-actions .btn{height:var(--control-height-sm);padding:0 var(--s-3);font-size:var(--text-sm);white-space:nowrap;flex:0 0 auto}.schedule-actions{display:flex;flex-direction:column;gap:.5rem;min-width:180px}.schedule-actions .btnrow{flex-direction:column;align-items:stretch;margin-top:0}.schedule-actions .btn{width:100%}.schedule-table td,.schedule-table th{vertical-align:top}.schedule-table .assigned-list{max-height:5.5rem;overflow:auto;padding-right:4px}.field{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.25rem}label{font-size:var(--text-xs);font-weight:var(--w-semibold);color:var(--text-muted);text-transform:none;letter-spacing:var(--trk-wide)}input,select,textarea{width:100%;max-width:100%;padding:0 var(--s-4);border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--surface-card);font-size:var(--text-md);font-family:inherit;color:var(--text-main);transition:border-color var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard),background-color var(--duration-base) var(--ease-standard),color var(--duration-base) var(--ease-standard);min-height:var(--control-height)}input,textarea{caret-color:var(--brand-accent)}input[type=checkbox],input[type=radio]{width:auto;max-width:none;height:auto;min-height:auto;padding:0;accent-color:var(--brand-accent)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand-accent);box-shadow:0 0 0 3px var(--focus-ring)}.form-error{color:var(--status-bad-text);font-size:.85rem;margin-top:.25rem;font-weight:500}.chip{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--w-semibold);text-transform:none;letter-spacing:var(--trk-wide);background:var(--surface-hover);color:var(--text-secondary)}.chip.good{background:var(--status-good-bg);color:var(--status-good-text)}.chip.warn{background:var(--status-warn-bg);color:var(--status-warn-text)}.chip.info{background:var(--status-info-bg);color:var(--status-info-text)}.chip.bad{background:var(--status-bad-bg);color:var(--status-bad-text)}.table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.hide-mobile{display:block!important}.show-mobile-only{display:none!important}@media (max-width:768px){.hide-mobile{display:none!important}.show-mobile-only{display:block!important}}.scroll-panel{height:360px;overflow-y:auto;overflow-x:hidden}@media (max-width:768px){.scroll-panel{height:300px}}.scroll-panel-5{max-height:260px}.scroll-panel-15,.scroll-panel-5{overflow-y:auto;overflow-x:hidden}.scroll-panel-15{max-height:620px}@media (max-width:768px){.scroll-panel-5{max-height:240px}.scroll-panel-15{max-height:520px}}.schedule-calendar-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.schedule-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(140px,1fr));grid-gap:12px;gap:12px;min-width:980px;width:max-content}.schedule-job-highlight{border-color:color-mix(in srgb,var(--brand-accent) 50%,var(--border-light));box-shadow:0 0 0 2px color-mix(in srgb,var(--brand-accent) 22%,transparent);animation:schedule-job-focus-pulse 2.4s ease-out}@keyframes schedule-job-focus-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--brand-accent) 36%,transparent)}to{box-shadow:0 0 0 10px transparent}}table{width:100%;border-collapse:collapse;white-space:nowrap}table.projects-table{white-space:normal;overflow-wrap:anywhere}table.projects-table td,table.projects-table th{vertical-align:top}th{text-align:left;font-size:var(--text-xs);text-transform:none;letter-spacing:var(--trk-wide);color:var(--text-muted);font-weight:var(--w-semibold)}td,th{padding:1rem;border-bottom:1px solid var(--border-light)}td{font-size:var(--text-md);line-height:1.4;color:var(--text-main)}tr:last-child td{border-bottom:none}table.pitot-measurements td,table.pitot-measurements th{padding:.5rem .75rem}table.pitot-measurements th{font-size:.7rem}.pitot-measurements-input{width:100%;min-width:72px;padding:.4rem .6rem;font-size:.9rem;text-align:right;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);color:var(--text-main)}.navtabs,.tabs{display:flex;gap:var(--s-2);border-bottom:1px solid var(--border-subtle);padding-bottom:var(--scrollable-tabs-padding-bottom,var(--s-3));margin-bottom:var(--scrollable-tabs-margin-bottom,var(--s-5));overflow-x:var(--scrollable-tabs-overflow-x,auto);overflow-y:var(--scrollable-tabs-overflow-y,visible);-webkit-overflow-scrolling:touch;flex-wrap:var(--scrollable-tabs-wrap,nowrap);row-gap:var(--scrollable-tabs-row-gap,0);max-width:100%}.navtab,.tab{height:var(--control-height-sm);padding:0 var(--s-4);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);background:transparent;border:1px solid transparent;cursor:pointer;transition:background-color var(--duration-base) var(--ease-standard),color var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard);white-space:nowrap;flex-shrink:0}.navtab:hover,.tab:hover{background:var(--surface-hover)}.navtab.active,.tab.active{background:color-mix(in srgb,var(--brand-accent) 10%,var(--surface-card));color:var(--brand-accent);border-color:color-mix(in srgb,var(--brand-accent) 20%,var(--border-light));box-shadow:none}.navtab:active,.tab:active{transform:scale(.98)}.validation-summary{border:1px solid var(--border-medium);border-radius:var(--radius-lg);padding:.75rem 1rem;background:color-mix(in srgb,var(--status-warn-bg) 30%,var(--surface-card));color:var(--text-main);margin-bottom:1rem}.fan-editor-layout{display:grid;grid-template-columns:minmax(200px,240px) minmax(0,1fr);grid-gap:16px;gap:16px;align-items:start}.fan-editor-nav{position:-webkit-sticky;position:sticky;top:16px;align-self:start}.fan-editor-nav-title{margin-bottom:6px;text-transform:uppercase;letter-spacing:.08em}.fan-section-list{display:flex;flex-direction:column;gap:6px}.fan-section-link{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:var(--radius-md);border:1px solid transparent;text-decoration:none;color:var(--text-main);background:transparent}.fan-section-link:hover{background:var(--surface-hover)}.fan-section-link.active{background:var(--surface-card);border-color:var(--border-light)}.fan-section-title{font-weight:600}.fan-section-meta{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.fan-section-meta .chip{font-size:.65rem;padding:.2rem .5rem}.fan-section-tabs{display:none;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:12px}.fan-editor-main{display:flex;flex-direction:column;gap:16px;min-width:0}.fan-editor-actions{margin-bottom:4px}.fan-results-card h3{margin-top:0}.fan-results-grid{display:grid;grid-gap:12px;gap:12px}.fan-results-block{border:1px solid var(--border-light);border-radius:var(--radius-md);padding:12px;background:var(--surface-hover);display:flex;flex-direction:column;gap:10px}.fan-results-row{display:flex;flex-wrap:wrap;gap:16px}.fan-results-metric{min-width:140px}.fan-performance-grid{display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px}.fan-performance-group{display:flex;flex-direction:column;gap:10px;min-width:0}@media (min-width:720px){.fan-performance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.fan-diagram-collapsed{border:1px dashed var(--border-medium);border-radius:var(--radius-lg);padding:12px;background:var(--surface-hover)}.fan-diagram-hidden{display:none}@keyframes sheet-overlay-fade-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-panel-slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.sheet-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:200;display:flex;justify-content:center;align-items:flex-end;animation:sheet-overlay-fade-in var(--duration-base) var(--ease-standard)}@media (min-width:600px){.sheet-overlay{align-items:center}}.sheet{background:var(--surface-card);width:100%;max-width:600px;max-height:90vh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;overflow-y:auto;box-shadow:var(--shadow-xl);display:flex;flex-direction:column;animation:sheet-panel-slide-up var(--duration-slow) var(--ease-emphasized)}.sheet .field input,.sheet .field select,.sheet .field textarea{background:var(--surface-page);border-color:var(--border-medium);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--border-medium) 55%,transparent)}.sheet .field input:focus,.sheet .field select:focus,.sheet .field textarea:focus{background:var(--surface-card)}@media (min-width:600px){.sheet{border-radius:var(--radius-lg);max-height:85vh}}@media (prefers-reduced-motion:reduce){.sheet,.sheet-overlay{animation:none}}.sheet-header{padding:1.5rem 2rem;border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between;background:var(--surface-card);position:-webkit-sticky;position:sticky;top:0;z-index:10}.sheet-body{padding:2rem}.sheet-title{font-size:1.25rem;font-weight:700;color:var(--text-main)}.sheet-list{padding:.5rem 0;display:flex;flex-direction:column;gap:1rem}.sheet-body .sheet-list{padding:0}.sheet-item{display:flex;align-items:center;justify-content:space-between;padding:1rem;border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--surface-card);font-weight:600;cursor:pointer;transition:background-color var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard),color var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard),transform var(--duration-base) var(--ease-standard);color:var(--text-main);text-align:left}.sheet-item:hover{border-color:var(--brand-accent);background:var(--surface-hover)}.sheet-item.danger{color:var(--status-bad-text);border-color:var(--status-bad-bg);background:snow}.tutorial-overlay{position:fixed;inset:0;background:transparent;z-index:130;pointer-events:auto}.tutorial-overlay.dim{background:color-mix(in srgb,var(--brand-primary) 18%,transparent)}.tutorial-highlight{position:fixed;border:3px solid var(--brand-accent);border-radius:var(--radius-md);box-shadow:0 0 0 9999px color-mix(in srgb,var(--brand-primary) 35%,transparent),0 0 0 6px color-mix(in srgb,var(--brand-accent) 22%,transparent),var(--shadow-xl);pointer-events:none;z-index:140}.tutorial-callout{position:fixed;z-index:150;width:min(360px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow:auto;background:var(--surface-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:1rem}.tutorial-menu-overlay{position:fixed;inset:0;z-index:120}.tutorial-menu{position:absolute;top:16px;right:16px;width:min(420px,calc(100vw - 32px));margin:0}.tutorial-sheet{padding:1rem}.muted{color:var(--text-secondary);font-size:.925rem}.text-bold{font-weight:700}.text-sm{font-size:var(--text-sm)}.text-lg{font-size:var(--text-md)}.text-xs{font-size:var(--text-xs)}.text-xl{font-size:var(--text-xl)}.hidden{display:none!important}.border-b{border-bottom:1px solid var(--border-light)}.py-2{padding-top:.5rem;padding-bottom:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.text-center{text-align:center}.row{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.row.nowrap{flex-wrap:nowrap}.swipe-pan-y{touch-action:pan-y}.col{display:flex;flex-direction:column;gap:1rem}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.items-start{align-items:flex-start}.items-center{align-items:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mr-2{margin-right:.5rem}.ml-auto{margin-left:auto}.w-full{width:100%}.w-auto{width:auto}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:1.5rem;gap:1.5rem}@media (max-width:768px){.grid2{grid-template-columns:1fr}}.banner{position:fixed;bottom:calc(var(--bottom-nav-height) + var(--fixed-stack-offset) + 1rem);left:50%;transform:translateX(-50%);background:var(--brand-primary);color:#fff;padding:.75rem 1.25rem;border-radius:var(--radius-full);font-weight:600;box-shadow:var(--shadow-lg);z-index:90;font-size:.9rem;width:max-content;max-width:90vw;text-align:center}.banner.success{background:var(--status-good-bg);color:var(--status-good-text)}.banner.error{background:var(--status-bad-bg);color:var(--status-bad-text)}.banner.warn{background:var(--status-warn-bg);color:var(--status-warn-text)}.banner.info{background:var(--status-info-bg);color:var(--status-info-text)}