@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=Plus+Jakarta+Sans:wght@300;400;500;600;700&display=swap";:root{--font-heading: "Outfit", sans-serif;--font-body: "Plus Jakarta Sans", sans-serif;--bg-app: #f2f3f6;--bg-card: #ffffff;--bg-card-hover: #ffffff;--bg-subtle: #f6f7f9;--surface-glass: #ffffff;--surface-muted: #f6f7f9;--border-glass: #e6e8ec;--border-subtle: #f0f2f5;--border-strong: #dfe3ea;--primary: #2f5bea;--primary-rgb: 47, 91, 234;--primary-light: #5b7ff0;--primary-dark: #2449c7;--primary-soft: rgba(47, 91, 234, .1);--border-focus: var(--primary);--focus-ring: 0 0 0 3px rgba(var(--primary-rgb), .25);--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #64748b;--text-disabled: #94a3b8;--status-neutral-fg: #475569;--status-neutral-bg: #eef0f3;--status-neutral-solid: #94a3b8;--status-info-fg: #2f5bea;--status-info-bg: #e8eeff;--status-info-solid: #2f5bea;--status-transit-fg: #6d28d9;--status-transit-bg: #efe9fd;--status-transit-solid: #7c3aed;--status-success-fg: #047857;--status-success-bg: #e3f6ee;--status-success-solid: #059669;--status-warning-fg: #b45309;--status-warning-bg: #fdf1e3;--status-warning-solid: #d97706;--status-danger-fg: #b42318;--status-danger-bg: #fdecea;--status-danger-solid: #d92d20;--status-warning: var(--status-warning-fg);--danger: var(--status-danger-fg);--text-xs: .8rem;--text-sm: .867rem;--text-md: 1rem;--text-lg: 1.133rem;--text-xl: 1.467rem;--text-2xl: 2.133rem;--shadow-card: 0 1px 2px rgba(15, 23, 42, .04);--shadow-overlay: 0 12px 32px -8px rgba(15, 23, 42, .18);--shadow-glow: var(--shadow-card);--border-radius-lg: 16px;--border-radius-md: 10px;--border-radius-sm: 8px;--radius-md: var(--border-radius-md);--ease: cubic-bezier(.2, 0, 0, 1);--dur-fast: .12s;--dur-med: .2s;--transition-normal: background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), opacity var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), width var(--dur-med) var(--ease)}html{font-size:15px}*{box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased}body{background-color:var(--bg-app);color:var(--text-primary);font-family:var(--font-body);font-variant-numeric:tabular-nums;line-height:1.5;min-height:100vh}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:600;letter-spacing:-.01em}a{color:var(--primary)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.glass-card{background:var(--bg-card);border:1px solid var(--border-glass);border-radius:var(--border-radius-lg);padding:24px;box-shadow:var(--shadow-card)}.app-shell{min-height:100vh}.work-shell{display:flex;flex-direction:column;min-height:0;margin:-8px -4px 0;background:var(--bg-card);border:1px solid var(--border-glass);border-radius:var(--border-radius-md);overflow:hidden}.project-tabs{display:flex;align-items:stretch;gap:24px;padding:0 20px;overflow-x:auto;scrollbar-width:none;background:#fff;border-bottom:1px solid var(--border-glass)}.project-tabs::-webkit-scrollbar{display:none}.project-tabs-item{border:0;background:none;padding:12px 0 11px;white-space:nowrap;font-family:var(--font-body);font-size:var(--text-md);font-weight:500;color:var(--text-muted);border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;transition:var(--transition-normal)}.project-tabs-item:hover{color:var(--text-primary)}.project-tabs-item.is-on{color:var(--text-primary);font-weight:600;border-bottom-color:var(--primary)}.work-ident{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:40px;padding:6px 12px;border-bottom:1px solid var(--border-glass)}.work-ident h1{margin:0;font-size:var(--text-xl);font-weight:600;letter-spacing:-.02em}.work-ident-back{border:0;background:none;color:var(--primary);font-size:var(--text-md);font-weight:600;padding:0;cursor:pointer;font-family:inherit}.work-ident-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:var(--text-sm);color:var(--text-secondary)}.work-ident-spacer{flex:1;min-width:0}.work-split{display:flex;flex:1;min-height:0}.app-rail{width:232px;flex-shrink:0;display:flex;flex-direction:column;min-height:0;background:#fff;border-right:1px solid var(--border-glass)}.app-rail-brand{display:flex;align-items:center;gap:10px;flex-shrink:0;padding:18px 20px 16px}.app-rail-brand-mark{width:30px;height:30px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;background:var(--primary);color:#fff;font-family:var(--font-heading);font-size:var(--text-md);font-weight:700;line-height:1}.app-rail-brand-name{font-family:var(--font-heading);font-size:var(--text-lg);font-weight:600;letter-spacing:-.01em;color:var(--text-primary)}.app-rail-body{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:2px;padding:0 12px 12px}.app-rail-cap{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app-rail-item,.app-rail-filter{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;border:0;border-radius:var(--border-radius-md);background:none;text-align:left;font-family:inherit;cursor:pointer;color:#334155;text-decoration:none;transition:var(--transition-normal)}.app-rail-item{min-height:40px;padding:0 12px;font-size:var(--text-md);font-weight:500}.app-rail-item:hover,.app-rail-filter:hover{background:var(--bg-subtle);color:var(--text-primary)}.app-rail-item.is-on{background:var(--primary-soft);color:var(--primary);font-weight:600}.app-rail-item-icon{display:inline-flex;flex-shrink:0;color:var(--text-muted)}.app-rail-item.is-on .app-rail-item-icon{color:var(--primary)}.app-rail-item-label{flex:1;min-width:0}.app-rail-account-item{position:relative;margin-top:auto;padding-top:12px;border-top:1px solid var(--border-glass)}.app-rail-avatar{width:26px;height:26px;border-radius:50%;align-items:center;justify-content:center;background:var(--status-neutral-bg);color:#334155;font-family:var(--font-body);font-size:var(--text-xs);font-weight:700;line-height:1}.app-rail-item.is-on .app-rail-avatar{background:var(--primary);color:#fff}.app-rail-account-backdrop{display:none}.app-rail-account-dropdown{margin:8px 0 0;padding:6px;background:#fff;border:1px solid var(--border-glass);border-radius:var(--border-radius-md);box-shadow:var(--shadow-overlay)}.app-rail-filters-mobile-only{display:none}.app-rail-filter{min-height:34px;padding:0 12px 0 44px;font-size:var(--text-sm);color:var(--text-secondary)}.app-rail-filter.is-on{color:var(--text-primary);font-weight:600;background:var(--bg-subtle)}.app-rail-count{min-width:22px;height:20px;padding:0 6px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:var(--status-neutral-bg);color:var(--text-secondary);font-size:var(--text-xs);font-weight:600}.work-pane{flex:1;min-width:0;min-height:0;overflow:auto;background:var(--bg-app)}.work-pane>.admin-table-wrap,.work-pane .admin-pagination,.work-pane .admin-loading-text,.work-pane .installer-checklist-root,.work-pane .project-stat-grid,.work-pane .pc-overview-pending,.work-pane .quotation-form,.work-pane>.form-hint{padding-left:14px;padding-right:14px}.work-pane>.quotation-section-header{padding:12px 14px 0}.work-toolbar .quotation-list-search{width:min(360px,100%)}.work-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:16px 20px 0}.work-toolbar .quotation-header-actions{width:auto;flex-direction:row;flex-wrap:wrap}.work-toolbar--actions{margin:0 20px;padding:12px 16px;border-radius:var(--border-radius-lg);border:1px solid var(--border-glass);background:linear-gradient(180deg,#fafbfc,#fff);box-shadow:var(--shadow-card)}.work-action-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px;margin-left:auto}.work-action-bar .btn{min-height:36px;padding:8px 16px;font-size:var(--text-sm);font-weight:600;border-radius:var(--border-radius-sm);white-space:nowrap}.work-action-bar__status{min-height:36px;padding:8px 14px;display:inline-flex;align-items:center;font-size:var(--text-sm);font-weight:600}.work-action-bar--header .btn{min-height:40px;padding:10px 18px;font-size:var(--text-sm)}.section-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px 16px;flex-wrap:wrap;width:100%}.section-card-header__title{margin:0;font-family:var(--font-heading);font-size:var(--text-lg);font-weight:600;color:var(--text-primary)}.section-card-header .work-action-bar{margin-left:auto}.project-boq-overview-header{margin:-4px 0 4px}.project-boq-overview-toolbar{margin:0 0 12px}.section-card-header--boq{align-items:center}.section-card-header--boq .work-action-bar{flex:0 0 auto;margin-left:auto}.section-card-header--boq .work-action-bar .btn{width:auto;min-width:0}.project-boq-overview-hint{margin-top:0;margin-bottom:16px}.quotation-header-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px;margin-left:auto}.quotation-header-actions .btn{min-height:36px;padding:8px 16px;font-size:var(--text-sm);font-weight:600}.work-toolbar h2{margin:0;font-size:var(--text-xl)}.work-field{display:flex;flex-direction:column;gap:4px;font-size:var(--text-xs);font-weight:700;color:var(--text-muted)}.work-field select{height:32px;border:1px solid var(--border-glass);border-radius:6px;padding:0 10px;font-size:var(--text-sm);background:#fff;text-transform:none;font-weight:500;color:var(--text-primary);letter-spacing:normal}.work-pane .glass-card,.work-pane .admin-table-wrap:not(.glass-card .admin-table-wrap){background:#fff;border:1px solid var(--border-glass);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-card)}.work-pane .glass-card,.work-pane>.admin-table-wrap{margin:16px 20px}.work-pane .glass-card{padding:20px}.work-pane .admin-table-wrap:not(.glass-card .admin-table-wrap){padding:0 4px}.work-pane .glass-card .glass-card{margin:0;padding:0;border:0;border-radius:0;box-shadow:none}@media(max-width:767px){.app-rail{position:fixed;left:0;right:0;bottom:0;width:100%;height:58px;flex-direction:row;z-index:30;border-right:0;border-top:1px solid var(--border-glass);padding-bottom:env(safe-area-inset-bottom,0px);overflow:visible}.app-rail-brand,.app-rail-cap{display:none}.app-rail-body{display:flex;flex-direction:row;gap:0;padding:0;overflow:visible}.app-rail-filters-desktop-only{display:none}.app-rail-filters-mobile-only{display:block}.app-rail-item{flex-direction:column;justify-content:center;gap:3px;flex:1;min-height:0;padding:6px 4px;border-radius:0;font-size:.733rem;font-weight:600;color:var(--text-muted);text-align:center}.app-rail-item:hover{background:none}.app-rail-item.is-on{background:none;color:var(--primary)}.app-rail-item-icon svg{width:24px;height:24px}.app-rail-item-label{flex:none;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-rail-count{display:none}.app-rail-account-item{flex:1;display:flex;margin-top:0;padding-top:0;border-top:0}.app-rail-account-item .app-rail-item{width:100%}.app-rail-avatar{width:24px;height:24px;font-size:.667rem}.app-rail-account-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;bottom:calc(58px + env(safe-area-inset-bottom,0px));z-index:90;border:0;padding:0;background:#0f172a47;cursor:pointer}.app-rail-account-dropdown{position:fixed;left:12px;right:12px;bottom:calc(66px + env(safe-area-inset-bottom,0px));z-index:100;margin:0}.work-pane{padding-bottom:calc(58px + env(safe-area-inset-bottom,0px))}}.app-shell--compact{height:100vh;overflow:hidden;display:flex;flex-direction:column}.app-main--full{flex:1;display:flex;min-height:0}.app-main--full .work-shell{flex:1;margin:0;border:0;border-radius:0}.work-topbar{display:flex;align-items:center;flex-wrap:nowrap;gap:12px;padding:10px 20px;min-height:60px;background:#fff;border-bottom:1px solid var(--border-glass)}.work-topbar .work-ident{flex:1 1 auto;min-width:0;padding:0;min-height:0;border-bottom:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px}.work-topbar .work-ident h1{max-width:100%;line-height:1.25;overflow-wrap:anywhere}.work-topbar .work-ident-meta{max-width:100%;line-height:1.3;overflow-wrap:anywhere}.work-topbar .work-ident-spacer{display:none}.work-topbar-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px;flex-shrink:0;margin-left:auto;padding-top:2px}.work-topbar-btn{white-space:nowrap}@media(max-width:767px){.work-topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 8px;min-height:56px;padding:6px 12px 6px 16px}.work-topbar .work-ident{grid-column:1;grid-row:1;min-width:0;flex-direction:column;align-items:flex-start;gap:2px}.work-topbar .work-ident h1{font-size:var(--text-lg);width:100%}.work-topbar .work-ident-meta{font-size:var(--text-xs);gap:6px;width:100%}.work-topbar-actions{grid-column:2;grid-row:1;margin-left:0;gap:6px;max-width:100%}.work-topbar .admin-role-switcher-label{display:none}.work-topbar .admin-role-switcher-trigger{width:44px;min-width:44px;max-width:44px;padding:0;justify-content:center}.work-topbar .admin-role-switcher-value,.work-topbar .admin-role-switcher-chevron{display:none}.work-topbar-btn.btn-sm{min-height:36px;padding:0 10px;font-size:var(--text-xs)}}.user-menu-item{display:flex;align-items:center;width:100%;padding:10px 12px;border:none;border-radius:var(--border-radius-sm);background:none;color:var(--text-primary);font-size:var(--text-md);font-family:inherit;text-align:left;cursor:pointer}.user-menu-item:hover,.user-menu-item:focus-visible{background:#0f172a0d;outline:none}.user-menu-identity{padding:8px 12px 10px;margin-bottom:4px;border-bottom:1px solid var(--border-glass)}.user-menu-identity-name{font-size:var(--text-md);font-weight:650;color:var(--text-primary)}.user-menu-identity-role{font-size:var(--text-xs);color:var(--text-secondary)}.app-refresh-btn__icon{display:none}.btn.app-refresh-btn--icon-only{width:36px;min-height:36px;padding:0;color:var(--text-secondary)}.app-refresh-btn--icon-only .app-refresh-btn__icon{display:inline-flex}@media(pointer:coarse){.btn.app-refresh-btn--icon-only{width:44px}}.app-refresh-btn--spinning{pointer-events:none;opacity:.85}.app-refresh-btn--spinning .app-refresh-btn__icon{display:inline-flex;animation:refresh-spin .65s linear infinite}.app-refresh-btn--spinning .app-refresh-btn__label{opacity:.55}@keyframes refresh-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.login-card{width:100%;max-width:400px;text-align:center}.login-card__title{font-size:var(--text-xl);font-weight:600;color:var(--text-primary);margin-bottom:4px}.login-card__subtitle{color:var(--text-secondary);font-size:var(--text-md);margin-bottom:24px}.login-form{display:flex;flex-direction:column;gap:4px;text-align:left}.login-submit-btn{width:100%;margin-top:8px}.form-group{margin-bottom:20px;display:flex;flex-direction:column;gap:8px}.form-group--compact{margin-bottom:0;gap:4px;min-width:0}.form-group--compact label{font-size:var(--text-xs)}.form-group--compact input,.form-group--compact select,.form-group--compact textarea{padding:8px 12px;font-size:var(--text-md)}label{color:var(--text-secondary);font-size:var(--text-sm);font-weight:500}input[type=text],input[type=tel],input[type=password],input[type=number],input[type=email],input[type=url],input[type=date],textarea,select{background:#fff;border:1px solid var(--border-strong);border-radius:var(--border-radius-sm);min-height:40px;padding:8px 12px;color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-md);transition:var(--transition-normal);width:100%}textarea{resize:vertical;min-height:60px}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-text-fill-color:var(--text-primary);caret-color:var(--text-primary);transition:background-color 0s 600000s,color 0s 600000s;box-shadow:0 0 0 1000px #fff inset}select{cursor:pointer}input::placeholder,textarea::placeholder{color:var(--text-disabled)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--border-focus);box-shadow:var(--focus-ring)}input:disabled,textarea:disabled,select:disabled{background:var(--bg-subtle);color:var(--text-muted);cursor:not-allowed}input[aria-invalid=true],textarea[aria-invalid=true],select[aria-invalid=true]{border-color:var(--status-danger-fg)}.admin-checkbox-row{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:var(--text-md);text-transform:none;font-weight:400;letter-spacing:normal;color:var(--text-primary)}.admin-checkbox-row input[type=checkbox]{width:auto;margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:8px 16px;font-family:var(--font-body);font-weight:600;font-size:var(--text-md);line-height:1.2;text-align:center;border-radius:var(--border-radius-md);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:var(--transition-normal)}.btn:active:not(:disabled){transform:scale(.98)}.btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 1px 2px #0f172a1f}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-secondary{background:#fff;color:var(--text-primary);border-color:var(--border-strong)}.btn-secondary:hover:not(:disabled){background:var(--bg-subtle);border-color:#cfd5de}.btn-tonal{background:var(--primary-soft);color:var(--primary)}.btn-tonal:hover:not(:disabled){background:rgba(var(--primary-rgb),.16)}.btn-danger{background:var(--status-danger-bg);color:var(--status-danger-fg);border-color:#f6cdc8}.btn-danger:hover:not(:disabled){background:#fbdcd8}.btn-success{background:var(--status-success-bg);color:var(--status-success-fg);border-color:#bfe8d6}.btn-success:hover:not(:disabled){background:#d2f0e3}.btn-sm{min-height:32px;padding:6px 12px;font-size:var(--text-sm);border-radius:var(--border-radius-sm)}@media(pointer:coarse){.btn,.btn-sm{min-height:44px}}.push-banner{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:12px 20px 0;padding:10px 14px;background:var(--status-info-bg);border:1px solid #c7d7fe;border-radius:var(--border-radius-md)}.push-banner__text{flex:1 1 200px;color:var(--text-primary);font-size:var(--text-md)}@media(max-width:767px){.push-banner{margin:10px 16px 0}.push-banner__text{flex-basis:100%}}.project-load-gone{display:grid;justify-items:center;gap:12px;margin:24px 20px;padding:32px 20px;background:#fff;border:1px solid var(--border-glass);border-radius:var(--border-radius-md);color:var(--text-secondary);text-align:center}.project-load-gone p{margin:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.notif-bell,.notif-bell__btn{position:relative}.notif-bell__badge{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--status-danger-solid);color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center}.notif-panel{position:absolute;top:calc(100% + 6px);right:0;z-index:200;display:flex;flex-direction:column;width:min(22rem,calc(100vw - 24px));max-height:min(70vh,32rem);background:#fff;border:1px solid var(--border-glass);border-radius:var(--border-radius-md);box-shadow:var(--shadow-overlay)}.notif-panel__head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border-glass)}.notif-panel__title{margin:0;font-size:var(--text-md);font-weight:650}.notif-panel__mark-all{border:0;background:none;padding:4px 0;color:var(--primary);font:inherit;font-size:var(--text-sm);cursor:pointer}.notif-panel__empty{margin:0;padding:24px 14px;color:var(--text-secondary);font-size:var(--text-sm);text-align:center}.notif-panel__list{margin:0;padding:4px;list-style:none;overflow-y:auto}.notif-item{display:flex;flex-direction:column;gap:2px;width:100%;padding:10px 12px 10px 22px;border:0;border-radius:var(--border-radius-sm);background:none;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;position:relative}.notif-item:hover,.notif-item:focus-visible{background:#0f172a0d;outline:none}.notif-item.is-unread{background:var(--primary-soft)}.notif-item.is-unread:before{content:"";position:absolute;left:9px;top:16px;width:7px;height:7px;border-radius:50%;background:var(--primary)}.notif-item__title{font-size:var(--text-sm);font-weight:600}.notif-item__body{overflow:hidden;color:var(--text-secondary);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap}.notif-item__time{color:var(--text-secondary);font-size:var(--text-xs)}@media(max-width:767px){.notif-panel{position:fixed;top:calc(env(safe-area-inset-top,0px) + 60px);left:12px;right:12px;width:auto;max-height:calc(100dvh - env(safe-area-inset-top,0px) - 134px - env(safe-area-inset-bottom,0px))}}.user-menu-hint{padding:8px 12px;font-size:var(--text-xs);color:var(--text-secondary);cursor:default}.user-menu-hint:hover{background:none}.error-banner{display:flex;align-items:flex-start;gap:10px;background:var(--status-danger-bg);border:1px solid #f6cdc8;border-radius:var(--border-radius-md);padding:12px 14px;margin-bottom:16px}.error-banner__icon{color:var(--status-danger-fg);font-weight:700}.error-banner__message{color:var(--text-primary);font-size:var(--text-md);flex:1}.error-banner__dismiss{background:transparent;border:none;color:var(--text-secondary);font-size:var(--text-lg);cursor:pointer;line-height:1}.toast-container{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:10px;z-index:1000}.toast{display:flex;align-items:center;gap:10px;min-width:260px;max-width:360px;padding:12px 14px 12px 16px;border-radius:var(--border-radius-md);color:#fff;font-weight:500;box-shadow:var(--shadow-overlay);animation:toast-in var(--dur-med) var(--ease)}.toast-success{background:var(--status-success-fg)}.toast-error{background:var(--status-danger-fg)}.toast-info{background:#1e293b}.toast__message{flex:1;font-size:var(--text-md)}.toast__dismiss{background:transparent;border:none;color:#fff;font-size:var(--text-lg);cursor:pointer;line-height:1;opacity:.8}.toast__dismiss:hover{opacity:1}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.role-home-placeholder{color:var(--text-secondary);margin-top:12px}.status-pill{display:inline-flex;align-items:center;gap:6px;width:fit-content;justify-self:start;height:22px;padding:0 8px;border-radius:11px;font-size:var(--text-xs);font-weight:600;line-height:1;white-space:nowrap;color:var(--status-neutral-fg);background:var(--status-neutral-bg)}.status-pill--dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.status-active,.status-pill--success{color:var(--status-success-fg);background:var(--status-success-bg)}.status-inactive,.business-line-mark{margin-left:8px}.business-line-mark--vrv{color:var(--status-info-fg);background:var(--status-info-bg);border:1px solid color-mix(in srgb,var(--status-info-fg) 28%,transparent)}.business-line-mark--individual{color:#6d28d9;background:#ede9fe;border:1px solid #c4b5fd}.work-ident-meta>.business-line-mark{margin-left:0}.business-line-change{display:inline-flex;align-items:center;gap:6px}.business-line-change .business-line-mark{margin-left:0}.business-line-change__action{min-height:22px;padding:0 10px;font-size:var(--text-xs);font-weight:600;line-height:1}.business-line-change-modal__panel{margin:0;padding:18px 20px}.business-line-change-modal__panel .form-warning-title{margin:0 0 14px;font-size:var(--text-md);line-height:1.4}.business-line-change-modal__switch{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:14px}.business-line-change-modal__switch .business-line-mark,.business-line-change-modal__switch .status-pill{height:26px;padding:0 10px;font-size:var(--text-sm);border-radius:13px}.business-line-change-modal__arrow{font-size:var(--text-lg);font-weight:700;color:var(--text-secondary);line-height:1}.business-line-change-modal__list{margin:0 0 0 1.15rem;font-size:var(--text-md);line-height:1.5;color:var(--text-secondary)}.business-line-change-modal__actions{margin-top:24px;padding-top:20px;border-top:1px solid var(--border-glass)}.business-line-change-modal__actions .btn{min-height:44px;padding-left:20px;padding-right:20px;font-size:var(--text-md);font-weight:600}dialog.modal-panel-confirm.modal-panel-confirm--warning{border-top-color:var(--color-warning, #c98700)}.status-pill--neutral{color:var(--status-neutral-fg);background:var(--status-neutral-bg)}.status-pill--info{color:var(--status-info-fg);background:var(--status-info-bg)}.status-pill--transit{color:var(--status-transit-fg);background:var(--status-transit-bg)}.status-pill--warning{color:var(--status-warning-fg);background:var(--status-warning-bg)}.status-pill--danger{color:var(--status-danger-fg);background:var(--status-danger-bg)}.admin-role-switcher{display:inline-flex;align-items:center;gap:10px;width:fit-content;max-width:100%}.admin-role-switcher-label{margin:0;font-size:var(--text-sm);font-weight:500;color:var(--text-muted);white-space:nowrap}.admin-role-switcher-control{position:relative;display:inline-flex;align-items:center}.admin-role-switcher-trigger{position:relative;display:inline-flex;align-items:center;gap:8px;width:auto;min-width:8.5rem;height:36px;min-height:36px;padding:0 2rem 0 .65rem;border-radius:var(--border-radius-md);border:1px solid var(--border-strong);background-color:#fff;color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;cursor:pointer;text-align:left}.admin-role-switcher-icon{display:inline-flex;flex-shrink:0;color:var(--text-secondary)}.admin-role-switcher-value{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-role-switcher-chevron{position:absolute;right:12px;top:50%;width:10px;height:10px;transform:translateY(-50%);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748b' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;pointer-events:none}.admin-role-switcher-trigger:focus{outline:none;border-color:var(--border-focus);box-shadow:var(--focus-ring)}.admin-role-switcher-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:200;min-width:100%;width:max-content;max-width:min(18rem,calc(100vw - 24px));margin:0;padding:6px;list-style:none;background:#fff;border:1px solid var(--border-glass);border-radius:var(--border-radius-md);box-shadow:var(--shadow-overlay)}.admin-role-switcher-option{display:flex;align-items:center;gap:10px;width:100%;min-height:40px;padding:8px 10px;border:none;border-radius:var(--border-radius-sm);background:none;color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;text-align:left;cursor:pointer}.admin-role-switcher-option:hover,.admin-role-switcher-option:focus{outline:none;background:var(--status-neutral-bg)}.admin-role-switcher-option.is-selected{background:#2f5bea14;color:var(--primary);font-weight:600}.admin-role-switcher-option-icon{display:inline-flex;flex-shrink:0;color:var(--text-secondary)}.admin-role-switcher-option.is-selected .admin-role-switcher-option-icon{color:var(--primary)}.admin-role-switcher-option-label{flex:1;min-width:0}.admin-role-switcher-option-check{flex-shrink:0;color:var(--primary);font-size:var(--text-sm);font-weight:700}.admin-section-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:16px}.admin-section-subtitle{color:var(--text-muted);font-size:var(--text-md);margin-top:4px}.installer-project-customer{font-size:var(--text-lg);margin:0;min-width:0;overflow-wrap:break-word}.admin-loading-text{position:relative;min-height:132px;margin:16px 20px;padding:0;color:transparent;-webkit-user-select:none;user-select:none;border-radius:var(--border-radius-lg);background:linear-gradient(90deg,transparent 0,rgba(255,255,255,.7) 50%,transparent 100%) 0 0 / 40% 100% no-repeat,linear-gradient(var(--status-neutral-bg) 0 0) 20px 22px / 45% 12px no-repeat,linear-gradient(var(--status-neutral-bg) 0 0) 20px 46px / 28% 10px no-repeat,linear-gradient(var(--status-neutral-bg) 0 0) 20px 78px / 55% 12px no-repeat,linear-gradient(var(--status-neutral-bg) 0 0) 20px 102px / 22% 10px no-repeat,#fff;border:1px solid var(--border-glass);animation:skeleton-shimmer 1.2s linear infinite}@keyframes skeleton-shimmer{0%{background-position:-40% 0,20px 22px,20px 46px,20px 78px,20px 102px,0 0}to{background-position:140% 0,20px 22px,20px 46px,20px 78px,20px 102px,0 0}}.admin-empty-cell{color:var(--text-muted);font-size:var(--text-sm);text-align:center;padding:40px 16px 36px}.admin-table td.admin-empty-cell{text-align:center}.admin-empty-cell:before{content:"";display:block;width:40px;height:40px;margin:0 auto 10px;border-radius:12px;background:var(--bg-subtle) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='22 12 16 12 14 15 10 15 8 12 2 12'/%3E%3Cpath d='M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z'/%3E%3C/svg%3E") center / 20px no-repeat}.admin-toolbar{display:flex;flex-wrap:wrap;gap:8px}.admin-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.admin-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;color:var(--text-muted);font-size:var(--text-md);flex-wrap:wrap}.admin-pagination-buttons{display:flex;align-items:center;gap:12px}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--border-subtle);font-size:var(--text-md)}.admin-table th{color:var(--text-muted);font-size:var(--text-sm);font-weight:500;white-space:nowrap}.admin-table:not(.admin-table--stacked) tbody tr:last-child td{border-bottom:0}@media(min-width:768px){.admin-table--stacked tbody tr:last-child td{border-bottom:0}}.member-cell{display:flex;flex-direction:column;gap:2px}.member-cell-name{font-weight:600;color:var(--text-primary)}.member-cell-phone,.member-cell-email{font-size:var(--text-sm);color:var(--text-muted)}.member-you-label{color:var(--text-muted);font-size:var(--text-md)}.clickable-row{cursor:pointer}.clickable-row:hover{background:var(--bg-subtle)}.clickable-row:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;background:var(--bg-subtle)}.admin-table .cell-date{white-space:nowrap;color:var(--text-secondary)}.members-row-actions{display:flex;gap:4px}.members-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:none;border-radius:var(--border-radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;font-size:var(--text-lg);line-height:1;transition:var(--transition-normal)}.members-icon-btn:hover{background:#0f172a0d;color:var(--text-primary)}.members-icon-btn-danger:hover{color:var(--status-danger-fg)}.admin-config-form .form-group{margin-bottom:16px}.admin-config-form .form-hint,.form-hint{margin:6px 0 0;font-size:var(--text-xs);color:var(--text-muted)}.form-error{margin:8px 0 0;font-size:var(--text-sm);color:var(--status-danger-fg)}.pipe-details-table{margin-top:4px}.pipe-details-head,.pipe-details-row{display:grid;grid-template-columns:minmax(0,1fr) 5.75rem 7rem;gap:12px 16px;align-items:start}.pipe-details-head{padding:0 0 8px;border-bottom:1px solid var(--border-subtle);font-size:var(--text-xs);font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted)}.pipe-details-head-value,.pipe-details-head-unit{text-align:right}.pipe-details-list{display:flex;flex-direction:column}.pipe-details-row{padding:14px 0;border-top:1px solid var(--border-subtle)}.pipe-details-row:first-child{border-top:0}.pipe-details-info{min-width:0;flex:1}.pipe-details-label{display:block;font-weight:600;font-size:var(--text-md);color:var(--text-primary);overflow-wrap:anywhere}.pipe-details-meta{margin:4px 0 0;font-size:var(--text-xs);color:var(--text-muted)}.pipe-details-value-col{display:flex;justify-content:flex-end;min-width:0}.pipe-details-unit-col{display:flex;justify-content:flex-end;align-items:flex-start;padding-top:2px}input.pipe-details-input{width:100%;max-width:5.75rem;text-align:right;font-variant-numeric:tabular-nums;-moz-appearance:textfield}.pipe-details-input::-webkit-outer-spin-button,.pipe-details-input::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}.pipe-details-unit,.pipe-details-figure{font-variant-numeric:tabular-nums;font-size:var(--text-md);color:var(--text-primary)}.pipe-details-unit{font-weight:500;text-align:right;overflow-wrap:anywhere;max-width:7rem}.pipe-details-figure{margin:0;font-weight:600;text-align:right;white-space:nowrap}.pipe-details-figure.is-empty{font-weight:500;color:var(--text-muted)}.pipe-details-save{display:flex;justify-content:flex-end;margin-top:16px}.pipe-details-phase-sections{margin-top:8px;padding-top:8px;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:4px}.pipe-details-table--phase{margin-top:12px}.pipe-details-table--phase:first-child{margin-top:4px}.pipe-details-updated{margin:0 0 8px}.pipe-details-head--phase{grid-template-columns:minmax(0,1fr) 17rem 5.75rem 7rem}.pipe-details-row--phase{grid-template-columns:minmax(0,1fr) auto;align-items:start}.pipe-details-head-when{text-align:left}.pipe-details-phase-body{display:grid;grid-template-columns:17rem 5.75rem 7rem;gap:8px 12px;align-items:start;min-width:0}.pipe-details-phase-metrics{display:contents}.pipe-details-when-group{display:flex;gap:8px;align-items:center;grid-column:1;min-width:0}input.pipe-details-date-input{flex:1 1 auto;min-width:0;min-height:40px;padding:8px 10px;font-size:var(--text-sm);font-variant-numeric:tabular-nums}input.pipe-details-time-input{flex:0 0 5.75rem;width:5.75rem;min-height:40px;padding:8px;font-size:var(--text-sm);font-variant-numeric:tabular-nums;text-align:center;letter-spacing:.02em}.pipe-details-phase-body>.pipe-details-when-read{grid-column:1}.pipe-details-phase-body .pipe-details-value-col{grid-column:2}.pipe-details-phase-body .pipe-details-unit-col{grid-column:3}.pipe-details-when-read{margin:0;max-width:11rem;font-size:var(--text-md);font-weight:600;font-variant-numeric:tabular-nums;line-height:1.35;overflow-wrap:anywhere}.pipe-details-when-read.is-empty{font-weight:500;color:var(--text-muted)}@media(max-width:767px){.pipe-details-head,.pipe-details-row{grid-template-columns:minmax(0,1fr) 5rem 6.25rem;gap:8px 10px}input.pipe-details-input{max-width:none;text-align:right}.pipe-details-unit{max-width:6.25rem;font-size:var(--text-sm)}.pipe-details-save{position:fixed;left:0;right:0;bottom:calc(58px + env(safe-area-inset-bottom,0px));z-index:20;margin:0;padding:10px 12px;background:#fff;border-top:1px solid var(--border-glass)}.pipe-details-save .btn{width:100%}.work-pane:has(.pipe-details-save){padding-bottom:calc(126px + env(safe-area-inset-bottom,0px))}.pipe-details-head--phase{display:none}.pipe-details-row--phase{grid-template-columns:1fr;gap:8px}.pipe-details-phase-body{grid-template-columns:1fr;gap:8px;width:100%}.pipe-details-phase-metrics{display:grid;grid-template-columns:minmax(0,1fr) 6.25rem;gap:8px 10px;align-items:center}.pipe-details-when-group,.pipe-details-phase-body>.pipe-details-when-read,.pipe-details-phase-body .pipe-details-value-col,.pipe-details-phase-body .pipe-details-unit-col{grid-column:auto}.pipe-details-when-group{width:100%}input.pipe-details-date-input,input.pipe-details-time-input{min-height:44px;font-size:16px}input.pipe-details-time-input{flex:0 0 6.25rem;width:6.25rem}.pipe-details-phase-body .pipe-details-value-col,.pipe-details-phase-body .pipe-details-unit-col{justify-content:flex-end}.pipe-details-phase-body .pipe-details-unit{max-width:none}.pipe-details-when-read{max-width:none;width:100%}.pipe-details-phase-body .pipe-details-input{max-width:none;width:100%;min-height:44px;font-size:16px}}.file-upload-wrapper{position:relative;border:2px dashed var(--border-glass);border-radius:var(--border-radius-md);padding:30px;text-align:center;cursor:pointer;transition:var(--transition-normal);background:var(--bg-subtle)}.file-upload-wrapper:hover{border-color:var(--border-focus);background:rgba(var(--primary-rgb),.04)}.file-upload-wrapper input[type=file]{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload-icon{font-size:var(--text-2xl);margin-bottom:10px;display:block}.file-preview-thumbnail{max-width:100%;max-height:120px;object-fit:contain;border-radius:var(--border-radius-sm);margin-top:12px;border:1px solid var(--border-glass);background:#fff;padding:4px}.brand-logo-thumb{width:32px;height:32px;object-fit:contain;border-radius:6px;border:1px solid var(--border-glass);background:#fff;padding:2px;vertical-align:middle;margin-right:8px}.logo-picker-actions{display:flex;gap:8px;margin-top:8px}.pick-add-list{display:flex;flex-direction:column;gap:10px}.pick-add-row{display:flex;gap:8px}.pick-add-row select{flex:1}.pick-add-selected-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.pick-add-selected-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border-radius:8px;border:1px solid var(--border-glass);background:#fff;font-size:var(--text-sm);color:var(--text-primary)}.pick-add-sublabel{color:var(--text-muted);font-size:var(--text-xs)}.tab-panel{padding-top:20px}.bizbotify-template-list{display:flex;flex-direction:column;gap:12px}.bizbotify-template-card{border:1px solid var(--border-glass);border-radius:12px;overflow:hidden}.bizbotify-template-card.active{border-color:rgba(var(--primary-rgb),.35)}.bizbotify-template-card-header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:var(--bg-subtle);border:0;color:inherit;cursor:pointer;text-align:left;font-family:inherit}.bizbotify-template-card-title{font-weight:600}.bizbotify-template-card-body{padding:16px}.bizbotify-template-form-grid{display:grid;grid-template-columns:1fr 160px;gap:16px}.bizbotify-template-preview{padding:14px 16px;border-radius:12px;background:var(--bg-subtle);border:1px solid var(--border-glass)}.bizbotify-template-preview-label{margin:0 0 4px;font-size:var(--text-xs);color:var(--text-muted)}.bizbotify-template-preview-meta{margin:0 0 10px;font-size:var(--text-sm);color:var(--text-muted)}.bizbotify-template-preview-body{margin:0;white-space:pre-wrap;font-family:inherit;font-size:var(--text-md);line-height:1.5}@media(max-width:640px){.bizbotify-template-form-grid{grid-template-columns:1fr}}.quotation-form{display:flex;flex-direction:column;gap:16px;margin-top:20px}.quotation-checkbox-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.quotation-checkbox-label{margin:0;text-transform:none;font-size:var(--text-sm)}.quotation-address-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--bg-subtle);border:1px solid var(--border-glass);border-radius:var(--border-radius-sm)}.quotation-address-row .address-preview{flex:1 1 220px;min-width:0}.quotation-address-row .btn{flex-shrink:0}.quotation-form-grid .address-lines{grid-column:1 / -1}.address-lines__label{display:block;margin-bottom:6px;font-size:var(--text-sm);font-weight:600;color:var(--text-secondary)}.address-lines__stack{display:flex;flex-direction:column;gap:8px}.address-lines__hint{margin-top:6px;margin-bottom:0}.address-preview{margin:0;white-space:pre-line;line-height:1.45;font-size:var(--text-sm);color:var(--text-secondary)}.address-preview--empty,.address-preview--muted{color:var(--text-muted)}.quotation-address-maps-row{margin-top:8px;padding-top:8px;border-top:1px solid var(--border-glass)}.quotation-address-maps-link{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-sm);font-weight:600;color:var(--border-focus);text-decoration:none}.quotation-address-maps-link:hover{text-decoration:underline}.quotation-step-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border-glass)}.quotation-review-actions{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:16px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border-glass)}.quotation-review-actions-hint{flex:1;margin:0;min-width:0}.quotation-review-section{margin-bottom:24px}.quotation-review-section-title{margin:0 0 12px;font-size:var(--text-md);font-weight:600}.quotation-review-install-rate,.quotation-install-rate-intro{margin:0 0 12px}.quotation-install-rate-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 16px;margin-bottom:10px;padding:14px 16px;border-radius:var(--radius-md);border:1px solid var(--border-glass);background:var(--surface-glass)}.quotation-install-rate-label{display:block;margin-bottom:6px;font-size:var(--text-sm);color:var(--text-muted)}.quotation-install-rate-hp{flex:1 1 120px;min-width:0}.quotation-install-rate-hp-value{display:block;font-size:var(--text-lg);line-height:1.2}.quotation-install-rate-field{flex:0 0 auto}.quotation-install-rate-input{width:7.5rem;max-width:100%;min-height:44px;padding:10px 12px;font-size:var(--text-md)}.quotation-install-rate-actions{flex:1 1 100%;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.quotation-install-rate-compute{min-height:44px;min-width:7.5rem;padding-left:18px;padding-right:18px}.quotation-install-rate-preview{margin:0 0 16px}@media(min-width:520px){.quotation-install-rate-actions{flex:0 0 auto;margin-left:auto}}@media(max-width:519px){.quotation-install-rate-compute{flex:1 1 100%;width:100%}.quotation-install-rate-input{width:100%}.quotation-install-rate-field{flex:1 1 100%}}@media(max-width:640px){.quotation-review-actions{flex-direction:column;align-items:stretch}.quotation-review-actions .btn{width:100%}}.quotation-list-toolbar{margin-bottom:16px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.business-line-filter{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto}.business-line-filter__btn{display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--border-glass);background:#fff;color:var(--text-secondary);font-family:inherit;font-size:var(--text-sm);font-weight:600;line-height:1;white-space:nowrap;cursor:pointer;transition:var(--transition-normal)}.business-line-filter__btn:hover{background:var(--bg-subtle);color:var(--text-primary)}.business-line-filter__btn.is-on.business-line-filter__btn--all{background:var(--status-neutral-bg);color:var(--text-primary);border-color:var(--border-strong)}.business-line-filter__btn--vrv.is-on{color:var(--status-info-fg);background:var(--status-info-bg);border-color:color-mix(in srgb,var(--status-info-fg) 28%,transparent)}.business-line-filter__btn--individual.is-on{color:#6d28d9;background:#ede9fe;border-color:#c4b5fd}.business-line-filter__btn--vrv:not(.is-on){color:var(--status-info-fg);border-color:color-mix(in srgb,var(--status-info-fg) 18%,transparent)}.business-line-filter__btn--individual:not(.is-on){color:#6d28d9;border-color:color-mix(in srgb,#6d28d9 18%,transparent)}.work-toolbar .business-line-filter,.quotation-list-toolbar .business-line-filter{flex:0 0 auto}.quotation-list-toolbar--with-group{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.quotation-list-toolbar--with-group .quotation-list-search{flex:1 1 220px;width:auto;max-width:420px}.quotation-list-group-by.pc-pending-boq-field{flex-direction:row;align-items:center;gap:8px;min-width:0}.quotation-list-group-by .pc-pending-boq-label{white-space:nowrap}.quotation-list-group-by .pc-pending-boq-select{min-height:40px;min-width:148px}.quotation-customer-group td{background:var(--bg-subtle);font-weight:600}.quotation-customer-group-label{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}.quotation-customer-group-meta{font-weight:400;color:var(--text-muted);font-size:var(--text-sm)}input.quotation-list-search{width:100%;max-width:420px;min-height:40px;padding:8px 12px 8px 38px;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:12px center;border:1px solid var(--border-glass);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-md)}.quotation-list-search:focus{outline:none;border-color:var(--border-focus);box-shadow:var(--focus-ring)}.quotation-list-actions{white-space:nowrap}.quotation-list-number{font-weight:600;white-space:nowrap}.admin-table-subtext{display:block;margin-top:2px;font-size:var(--text-sm);color:var(--text-muted)}.admin-quotation-view{display:flex;flex-direction:column;gap:20px}.admin-quotation-view-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.admin-quotation-view-id{margin:0 0 4px;font-size:var(--text-lg)}.admin-quotation-view-id-row{display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px}.admin-quotation-view-meta{margin:0;font-size:var(--text-md);color:var(--text-muted)}.admin-quotation-section{padding-top:4px;border-top:1px solid var(--border-glass)}.admin-quotation-section .detail-section-title{margin:12px 0 10px;font-size:var(--text-md)}.customer-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px 16px}.info-block{display:flex;flex-direction:column;gap:4px}.info-block>span:first-child{font-size:var(--text-xs);color:var(--text-muted)}.info-block>span:last-child{font-weight:600;word-break:break-word}.quotation-event-timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;max-height:min(45vh,380px);overflow-y:auto}.quotation-event-timeline-item{display:grid;grid-template-columns:minmax(120px,150px) minmax(0,1fr);gap:12px;padding-bottom:12px;border-bottom:1px solid var(--border-glass)}.quotation-event-timeline-time{font-size:var(--text-sm);color:var(--text-muted)}.quotation-event-timeline-label{font-weight:600;margin-bottom:4px}.quotation-event-timeline-meta{font-size:var(--text-sm);color:var(--text-secondary, var(--text-muted))}.quotation-event-timeline-empty,.quotation-event-timeline-loading{color:var(--text-muted);margin:8px 0 0}.quotation-submit-btn{width:100%;margin-top:8px}.quotation-empty-state-hint{margin-top:20px}.quotation-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:16px}.quotation-form-grid:last-child{margin-bottom:0}.quotation-header-stat{margin:0;display:flex;flex-wrap:wrap;gap:0 .35rem;align-items:baseline}.quotation-diversity{white-space:nowrap}.quotation-diversity-ok,.quotation-diversity-ok strong{color:var(--status-success-fg)}.quotation-diversity-over,.quotation-diversity-over strong{color:var(--status-danger-fg)}.quotation-diversity-pending{color:var(--text-muted)}.quotation-fieldset{border:none;padding:0;margin:0;display:flex;flex-direction:column;gap:16px}.quotation-room-sqft{color:var(--text-muted);font-weight:400;font-size:var(--text-sm)}.quotation-grand-total-row td{border-top:2px solid var(--border-glass);font-size:var(--text-lg);padding-top:12px}.project-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px;margin:12px 0 8px}.project-stat-tile{background:#fff;border:1px solid var(--border-glass);border-radius:var(--border-radius-lg);padding:14px 16px;min-width:0}.project-stat-value{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:600;line-height:1.15;overflow-wrap:anywhere}.project-stat-label{display:block;margin-top:4px;font-size:var(--text-xs);color:var(--text-muted)}.project-stat-tile--pending{border-color:#f3d9b1;background:var(--status-warning-bg)}.project-stat-tile--pending .project-stat-value{color:var(--status-warning-fg)}.project-stat-tile--agreed{border-color:#c7d7fe;background:color-mix(in srgb,#eef2ff 70%,#fff)}.project-stat-tile--agreed .project-stat-value{color:var(--primary)}.project-stat-tile--paid{border-color:#a7e3c9;background:var(--status-success-bg)}.project-stat-tile--paid .project-stat-value{color:var(--status-success-fg)}.project-stat-tile--clear{border-color:#a7e3c9;background:color-mix(in srgb,var(--status-success-bg) 65%,#fff)}.project-stat-tile--clear .project-stat-value{color:var(--status-success-fg)}.project-stat-grid--installer-head{gap:12px}.installer-head-ledger-card{border:1px solid #c7d7fe;box-shadow:0 8px 24px #2f5bea14}.installer-head-payments-banner-wrap{margin:12px 20px 0}.installer-head-payments-banner{padding:18px 20px;border-radius:var(--border-radius-lg);border:1px solid #c7d7fe;background:linear-gradient(135deg,#eef2ff,#fff 55%,#f0fdf4);box-shadow:var(--shadow-card)}.installer-head-payments-title{margin:0;font-family:var(--font-heading);font-size:var(--text-xl);font-weight:600;color:var(--primary)}.installer-head-payments-subtitle{margin:4px 0 0;font-size:var(--text-sm);color:var(--text-secondary)}.installer-head-payments-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.installer-head-payments-stat{border-radius:var(--border-radius-md);border:1px solid var(--border-glass);background:#fff;padding:12px 14px;min-width:0}.installer-head-payments-stat-value{display:block;font-family:var(--font-heading);font-size:var(--text-xl);font-weight:700;line-height:1.15}.installer-head-payments-stat-label{display:block;margin-top:4px;font-size:var(--text-xs);font-weight:500;color:var(--text-muted)}.installer-head-payments-stat--agreed{border-color:#c7d7fe;background:color-mix(in srgb,#eef2ff 75%,#fff)}.installer-head-payments-stat--agreed .installer-head-payments-stat-value{color:var(--primary)}.installer-head-payments-stat--paid{border-color:#a7e3c9;background:var(--status-success-bg)}.installer-head-payments-stat--paid .installer-head-payments-stat-value{color:var(--status-success-fg)}.installer-head-payments-stat--balance.is-outstanding{border-color:#f3d9b1;background:var(--status-warning-bg)}.installer-head-payments-stat--balance.is-outstanding .installer-head-payments-stat-value{color:var(--status-warning-fg)}.installer-head-payments-stat--balance.is-clear{border-color:#a7e3c9;background:color-mix(in srgb,var(--status-success-bg) 70%,#fff)}.installer-head-payments-stat--balance.is-clear .installer-head-payments-stat-value{color:var(--status-success-fg)}.installer-head-payments-callout{margin:14px 0 0;padding:10px 12px;border-radius:var(--border-radius-md);font-size:var(--text-sm);color:var(--status-warning-fg);background:var(--status-warning-bg);border:1px solid #f3d9b1}.installer-head-payments-callout--muted{color:var(--status-success-fg);background:var(--status-success-bg);border-color:#a7e3c9}.installer-head-th-money{color:var(--primary)}.cell-money{font-weight:600;font-variant-numeric:tabular-nums}.cell-money--agreed{color:var(--primary);background:color-mix(in srgb,#eef2ff 45%,transparent)}.cell-money--paid{color:var(--status-success-fg);background:color-mix(in srgb,var(--status-success-bg) 55%,transparent)}.cell-money--outstanding{color:var(--status-warning-fg);background:color-mix(in srgb,var(--status-warning-bg) 65%,transparent)}.cell-money--clear{color:var(--status-success-fg);background:color-mix(in srgb,var(--status-success-bg) 45%,transparent)}.cell-money--muted{color:var(--text-muted)}.project-tabs-item--featured:not(.is-on){color:var(--primary);background:color-mix(in srgb,#eef2ff 65%,transparent)}.project-tabs-item--featured.is-on{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}@media(max-width:767px){.installer-head-payments-stats{grid-template-columns:1fr}.installer-head-payments-banner-wrap{margin:8px 12px 0}}.pc-overview-pending{margin:4px 0 24px}.pc-pending-boq-toolbar{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}.pc-pending-boq-field{display:flex;flex-direction:column;gap:4px;flex:0 0 auto}.pc-pending-boq-label{font-size:var(--text-xs);color:var(--text-muted)}.pc-pending-boq-select{border:1px solid var(--border-glass);border-radius:var(--border-radius-md);padding:8px 10px;background:#fff;font-size:var(--text-md);color:var(--text-primary)}.pc-pending-boq-expand-cell{width:2.25rem;padding-left:0;padding-right:0}.pc-pending-boq-expand-btn{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;border-radius:var(--border-radius-md);background:transparent;color:var(--text-muted);cursor:pointer}.pc-pending-boq-expand-btn:hover{background:var(--surface-muted);color:var(--text-primary)}.pc-pending-boq-chevron{display:inline-block;font-size:.65rem;transition:transform .15s ease}.pc-pending-boq-chevron.is-open{transform:rotate(90deg)}.pc-pending-boq-row.is-expanded{background:var(--surface-muted)}.pc-pending-boq-detail-row td{padding-top:0;padding-bottom:12px;background:var(--surface-muted);border-bottom:1px solid var(--border-glass)}.pc-pending-boq-drill-panel{padding:8px 8px 4px 2.25rem}.pc-pending-boq-drill-panel--brand{padding-left:.5rem}.pc-pending-boq-drill-label{margin:0 0 8px;font-size:var(--text-xs);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.pc-pending-boq-drill-hint,.pc-pending-boq-nested-table{margin:0}.pc-pending-boq-row--nested .pc-pending-boq-expand-cell{padding-left:.25rem}.pc-pending-boq-project-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.pc-pending-boq-project-link{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:var(--border-radius-md);border:1px solid var(--border-glass);background:#fff;text-decoration:none;color:inherit}.pc-pending-boq-project-link:hover{border-color:var(--accent-primary);background:var(--surface-muted)}.pc-pending-boq-project-link-title{font-size:var(--text-md);font-weight:500}.project-boq-list{display:flex;flex-direction:column;gap:10px}.project-boq-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid var(--border-glass);border-radius:var(--border-radius-md);background:#fff}.project-boq-info{flex:1;min-width:0}.project-boq-name{font-weight:600}.project-boq-meta{margin-top:2px;font-size:var(--text-sm);color:var(--text-secondary)}.dispatch-history{margin-top:20px}.dispatch-history-list{display:flex;flex-direction:column;gap:12px}.dispatch-history-request{padding:12px 14px;border:1px solid var(--border-glass);border-radius:var(--border-radius-md);background:#fff}.dispatch-history-request-head{margin-bottom:8px}.dispatch-history-shipment{display:grid;grid-template-columns:1fr auto;gap:4px 12px;margin-top:8px;padding:10px 12px;border:1px solid var(--border-glass);border-radius:var(--border-radius-sm);background:#fff}.dispatch-history-shipment-main{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}.dispatch-history-dc{font-weight:600}.dispatch-history-kind{font-size:var(--text-xs);color:var(--text-muted)}.dispatch-history-shipment-items{grid-column:1 / -1;font-size:var(--text-sm);color:var(--text-secondary)}.project-boq-actions{flex-shrink:0}.project-boq-action-stack{display:flex;flex-direction:column;align-items:stretch;gap:8px}.form-warning-panel{margin:12px 0;padding:12px 14px;border-radius:10px;border:1px solid color-mix(in srgb,var(--color-warning, #c98700) 45%,var(--border-glass));background:color-mix(in srgb,var(--color-warning, #c98700) 8%,transparent)}.form-warning-title{margin:0 0 8px;font-weight:600}.form-warning-list{margin:0 0 10px 1.1rem;padding:0}.form-check-row{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:.95rem}.project-boq-editor-merged-hint{margin:0;max-width:14rem}.project-boq-editor-row--merged-readonly td{vertical-align:middle}.project-boq-editor-row--pending td{background:color-mix(in srgb,var(--color-primary, #2563eb) 9%,var(--surface-subtle, #f6f7f9))}.project-boq-pending-change--add{border-color:color-mix(in srgb,var(--color-primary, #2563eb) 35%,var(--border-glass));background:color-mix(in srgb,var(--color-primary, #2563eb) 8%,var(--surface-subtle, #f6f7f9))}.project-boq-pending-change--remove{border-color:color-mix(in srgb,var(--color-warning, #c98700) 40%,var(--border-glass))}.project-boq-editor-section--flat{margin-top:0}.project-boq-editor .quotation-room-add-form__fields--with-room{grid-template-columns:minmax(10rem,14rem) minmax(13rem,18rem) minmax(0,1fr) 5.5rem}.project-boq-editor__intro{margin:0 0 16px}.modal-panel-confirm .modal-content{padding:28px 28px 24px}.modal-panel-confirm .modal-header{margin-bottom:20px}.modal-panel-confirm .modal-header h3{font-size:1.35rem;font-weight:700;letter-spacing:-.02em}.project-boq-review-modal{display:flex;flex-direction:column;gap:0}.project-boq-review-callout{margin:0 0 20px;padding:16px 18px;border-radius:var(--border-radius-md);border:1px solid color-mix(in srgb,var(--color-primary, #2563eb) 40%,var(--border-glass));background:color-mix(in srgb,var(--color-primary, #2563eb) 7%,var(--bg-card))}.project-boq-review-callout strong{display:block;margin-bottom:8px;font-size:var(--text-md);font-weight:700;color:var(--text-primary)}.project-boq-review-callout p{margin:0;font-size:var(--text-md);line-height:1.5;color:var(--text-secondary)}.project-boq-review-callout__action{font-weight:600;color:var(--text-primary)}.project-boq-review-summary-card{padding:18px 20px;border-radius:var(--border-radius-md);border:1px solid var(--border-glass);background:var(--surface-subtle, #f6f7f9)}.project-boq-review-summary-card__label{margin:0 0 14px;font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary)}.project-boq-review-modal .form-warning-panel{margin:20px 0 0;padding:16px 18px}.project-boq-review-modal .form-warning-title{font-size:var(--text-md)}.project-boq-review-modal .form-warning-list{font-size:var(--text-md);line-height:1.45}.project-boq-review-modal .form-check-row{font-size:var(--text-md)}.project-boq-review-actions{margin-top:24px;padding-top:20px;border-top:1px solid var(--border-glass);gap:12px}.project-boq-review-actions .btn-primary{font-weight:600;min-height:44px;padding-left:22px;padding-right:22px}.project-boq-review-dl{margin:0;display:grid;gap:14px}.project-boq-review-dl>div{display:grid;grid-template-columns:minmax(7.5rem,9.5rem) minmax(0,1fr);gap:8px 16px;align-items:baseline}.project-boq-review-dl dt{margin:0;font-size:var(--text-sm);font-weight:600;color:var(--text-secondary)}.project-boq-review-dl dd{margin:0;font-size:var(--text-md);font-weight:500;line-height:1.45;color:var(--text-primary)}.project-boq-pending-review{margin-top:28px;padding-top:24px;border-top:2px solid var(--border-glass)}.project-boq-pending-changes-list{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:10px}.project-boq-pending-change{display:flex;align-items:flex-start;justify-content:space-between;gap:12px 16px;padding:14px 16px;border-radius:var(--border-radius-md);border:1px solid var(--border-glass);background:var(--surface-subtle, #f6f7f9)}.project-boq-pending-change__main{display:flex;gap:12px;min-width:0;flex:1}.project-boq-pending-change__index{flex-shrink:0;width:1.75rem;height:1.75rem;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;font-size:var(--text-sm);font-weight:700;color:var(--text-primary);background:color-mix(in srgb,var(--color-primary, #2563eb) 12%,transparent)}.project-boq-pending-change__kind{display:block;font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin-bottom:4px}.project-boq-pending-change__detail{margin:0;font-size:var(--text-md);font-weight:500;line-height:1.45;color:var(--text-primary)}.project-boq-pending-review-actions{margin-top:20px;padding-top:0;border-top:0}.project-boq-editor .quotation-room-add-form__fields{grid-template-columns:minmax(13rem,18rem) minmax(0,1fr) 5.5rem}.project-boq-editor .quotation-room-add-form__fields--replace{grid-template-columns:minmax(13rem,18rem) minmax(0,1fr)}.project-boq-editor .quotation-room-block:first-child{margin-top:0}.project-boq-editor-section__heading{margin:0;font-size:var(--text-base);font-weight:600}.project-boq-editor-add-form{margin-bottom:12px}.project-boq-editor-table{margin-top:8px}.project-boq-editor-table .quotation-qty-input{width:4.5rem}.project-boq-editor-row-detail td{padding-top:0;border-top:0;background:var(--surface-subtle, #f6f7f9)}.project-boq-editor-panel{margin-top:12px;padding:14px;border-radius:var(--border-radius-md);border:1px solid var(--border-glass);background:var(--surface-subtle, #f6f7f9)}.project-boq-editor-panel .form-group{margin-bottom:0}.project-boq-editor-panel .form-warning-panel{margin-top:12px;margin-bottom:0}.project-boq-editor-panel--confirm .form-warning-panel{margin-top:0}.project-boq-editor-panel__prompt{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.checklist-type-choice,.checklist-admin-list{display:flex;flex-direction:column;gap:8px}.checklist-admin-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border-glass);border-radius:var(--border-radius-md);background:#fff;touch-action:none}.checklist-admin-row.is-dragging{opacity:.6;box-shadow:0 4px 12px #0f172a26}.checklist-admin-row--inactive{opacity:.55}.checklist-drag-handle{flex-shrink:0;cursor:grab;background:none;border:none;font-size:var(--text-lg);color:var(--text-muted);padding:4px 6px;touch-action:none}.checklist-admin-row-body{flex:1;min-width:0}.checklist-admin-row-title{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-weight:600}.checklist-admin-row-meta{margin-top:2px;font-size:var(--text-sm);color:var(--text-secondary)}.checklist-admin-row-actions{flex-shrink:0;display:flex;gap:4px}.checklist-item-list{display:flex;flex-direction:column}.project-role-checklists{display:flex;flex-direction:column;gap:28px;margin-top:8px}.project-role-checklist .detail-section-title{margin:0 0 8px;font-size:var(--text-md);font-family:var(--font-heading);font-weight:600}.project-role-checklist-summary{cursor:pointer}.checklist-item-row{border-bottom:1px solid var(--border-subtle);transition:background-color var(--dur-med) var(--ease)}.checklist-item-row:last-child{border-bottom:none}.checklist-item-row.is-done{background:color-mix(in srgb,var(--status-success-bg) 55%,#fff)}.checklist-item-row.is-locked{opacity:.55}.checklist-item-header{width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:10px 8px;min-height:44px;background:none;border:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.checklist-item-header:hover{background:var(--bg-subtle)}.checklist-item-check{flex-shrink:0;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--border-strong);color:#fff;transition:background-color var(--dur-med) var(--ease),border-color var(--dur-med) var(--ease)}.checklist-item-check--done{background:var(--status-success-solid);border-color:var(--status-success-solid)}.checklist-item-check--needs-proof{border-color:var(--status-warning-solid);background:var(--status-warning-bg)}.checklist-item-check--locked{border-color:var(--border-glass);background:#0f172a0a;color:var(--text-muted)}.checklist-item-check--blocked{border-color:var(--danger);background:var(--danger);color:#fff}.checklist-item-label{flex:1 1 0;min-width:0;font-size:var(--text-md);font-weight:500;color:var(--text-primary);white-space:normal;overflow-wrap:break-word}.checklist-gate-tag{flex-shrink:0;font-size:var(--text-xs);font-weight:700;letter-spacing:.02em;color:var(--status-warning-fg);background:var(--status-warning-bg);padding:3px 8px;border-radius:11px;white-space:nowrap}.checklist-inline-thumbs{flex-shrink:0;display:flex;align-items:center}.checklist-inline-thumb{width:24px;height:24px;border-radius:6px;border:1.5px solid #fff;box-shadow:0 1px 3px #0f172a26;margin-left:-6px;overflow:hidden}.checklist-inline-thumb:first-child{margin-left:0}.checklist-inline-thumb img{width:100%;height:100%;object-fit:cover;display:block}.checklist-inline-thumb-more{margin-left:-6px;width:24px;height:24px;border-radius:6px;border:1.5px solid #fff;background:#0f172ab8;color:#fff;font-size:var(--text-xs);font-weight:700;display:inline-flex;align-items:center;justify-content:center}.checklist-inline-video-tag{margin-left:4px;width:20px;height:20px;border-radius:50%;background:#0f172ab8;color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.checklist-item-chev{flex-shrink:0;color:var(--text-muted);display:inline-flex}.checklist-item-waiting{margin:0 8px 12px;font-size:var(--text-sm);color:var(--text-muted);font-style:italic}.checklist-step-modal-body{display:flex;flex-direction:column;gap:12px}.checklist-step-context{margin:0;font-size:var(--text-sm);color:var(--text-secondary)}.checklist-panel-group.has-error .checklist-panel-group-label{color:var(--status-warning-fg)}.checklist-field-error{margin:0 0 8px;font-size:var(--text-xs);color:var(--status-warning-fg)}.checklist-comment-input.has-error{border-color:var(--status-warning-solid);background:color-mix(in srgb,var(--status-warning-bg) 50%,#fff)}.checklist-item-meta{margin:0 0 10px;font-size:var(--text-xs);color:var(--text-secondary)}.checklist-panel-group{margin-top:14px}.checklist-panel-group:first-of-type{margin-top:0}.checklist-panel-group-label{font-size:var(--text-xs);font-weight:700;color:var(--text-muted);margin:0 0 8px}.checklist-attach-strip{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.media-pick{display:inline-flex;flex-wrap:wrap;gap:8px}.media-pick__btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:6px}.media-pick__btn.is-disabled{opacity:.55;pointer-events:none}.media-pick__input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:0}.checklist-attach-thumb{display:block;width:52px;height:52px;padding:0;border-radius:var(--border-radius-sm);overflow:hidden;border:1px solid var(--border-glass);background:none;cursor:pointer;flex-shrink:0}.checklist-attach-thumb img{width:100%;height:100%;object-fit:cover;display:block}.checklist-attach-thumb-wrap,.checklist-attach-video-wrap{position:relative;display:inline-flex;flex-shrink:0}.checklist-attach-remove{position:absolute;top:-6px;right:-6px;width:22px;height:22px;padding:0;border:1px solid var(--border-glass);border-radius:999px;background:#fff;color:var(--text-secondary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0f172a1f}.checklist-attach-remove--chip{top:-4px;right:-4px}.checklist-attach-remove:disabled{opacity:.5;cursor:not-allowed}.checklist-attach-video-chip{display:inline-flex;align-items:center;gap:6px;max-width:150px;height:52px;padding:0 12px;border-radius:var(--border-radius-sm);border:1px solid var(--border-glass);background:#fff;font-size:var(--text-xs);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex-shrink:0}.checklist-attach-add{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:var(--border-radius-sm);border:1.5px dashed var(--border-glass);color:var(--text-secondary);background:var(--bg-subtle);cursor:pointer;flex-shrink:0;transition:var(--transition-normal)}.checklist-attach-add:hover{border-color:var(--primary);color:var(--primary-dark)}.checklist-attach-add.is-required{border-color:var(--status-warning-solid);color:var(--status-warning-fg);background:color-mix(in srgb,var(--status-warning-bg) 50%,#fff)}.checklist-comment-input{width:100%;min-height:72px;resize:vertical;font-family:var(--font-body);font-size:var(--text-sm);color:var(--text-primary);border:1px solid var(--border-glass);border-radius:var(--border-radius-sm);padding:9px 11px;background:#fff}.checklist-item-actions{margin-top:14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.checklist-done-btn{min-height:40px;padding-left:20px;padding-right:20px}@media(max-width:480px){.checklist-item-actions{flex-direction:column;align-items:stretch}.checklist-done-btn{width:100%;min-height:44px}}.checklist-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0b1220f0;display:flex;flex-direction:column;cursor:zoom-out}.checklist-lightbox-top{flex-shrink:0;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 18px 8px}.checklist-lightbox-meta{min-width:0;color:#ffffffbf;font-size:var(--text-xs)}.checklist-lightbox-meta strong{display:block;color:#fff;font-size:var(--text-md);font-weight:600;margin-bottom:2px}.checklist-lightbox-close{flex-shrink:0;width:36px;height:36px;border-radius:50%;background:#ffffff1f;color:#fff;border:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.checklist-lightbox-image{flex:1;min-height:0;width:100%;object-fit:contain;padding:8px 16px 28px;box-sizing:border-box;cursor:default}.installer-header-nav{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:8px}.installer-exit-btn{flex-shrink:0}.installer-room-accordion{margin-top:0;display:flex;flex-direction:column;gap:10px}.installer-room-group{border:1px solid var(--border-glass);border-radius:var(--border-radius-md);background:#fff;overflow:hidden}.installer-room-header{width:100%;display:flex;align-items:center;gap:10px;padding:12px;min-height:48px;background:none;border:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.installer-room-header:hover{background:var(--bg-app)}.installer-room-chevron{flex-shrink:0;color:var(--text-muted);display:inline-flex}.installer-room-header-text{flex:1;min-width:0;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.installer-room-header-text strong{font-size:var(--text-md);font-weight:650}.installer-room-header-count{font-size:var(--text-xs);color:var(--text-muted)}.installer-room-body{display:flex;flex-direction:column;padding:0;border-top:1px solid var(--border-glass)}.installer-unit-card{border-bottom:1px solid var(--border-glass);background:var(--bg-subtle)}.installer-unit-card:last-child{border-bottom:0}.installer-unit-card-header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;min-height:44px;background:none;border:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.installer-unit-card-header:hover{background:#eef0f3}.installer-unit-card-title{display:flex;align-items:flex-start;gap:8px;min-width:0;font-weight:600;font-size:var(--text-md)}.installer-unit-card-title>span:last-child{white-space:normal;overflow-wrap:break-word}.installer-unit-card-meta{display:flex;align-items:center;gap:8px;flex-shrink:0}.installer-unit-card-chevron{display:inline-flex;color:var(--text-muted)}.installer-unit-card-progress-track{height:3px;background:rgba(var(--primary-rgb),.12);overflow:hidden}.installer-unit-card-progress-fill{height:100%;background:var(--primary);transition:var(--transition-normal)}.installer-unit-card-body{padding:4px 0;background:#fff}.installer-unit-card-body .checklist-item-row:not(.is-done){background:#fff}.installer-unit-card-body .checklist-item-row:not(.is-done) .checklist-item-header:hover{background:var(--bg-subtle)}.installer-unit-card-body .checklist-item-row.is-done{background:color-mix(in srgb,var(--status-success-bg) 55%,#fff)}.dcf-mapping-cell{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.searchable-select{position:relative;display:inline-block;min-width:14rem}.searchable-select-input{padding-right:28px!important}.searchable-select-clear{position:absolute;top:50%;right:8px;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);font-size:var(--text-lg);line-height:1;cursor:pointer;padding:2px 4px}.searchable-select-clear:hover{color:var(--text-primary)}.searchable-select-list{position:absolute;z-index:30;top:calc(100% + 4px);left:0;right:0;max-height:260px;overflow-y:auto;background:var(--bg-card, #fff);border:1px solid var(--border-glass);border-radius:var(--border-radius-sm);box-shadow:var(--shadow-card);padding:4px;margin:0;list-style:none}.searchable-select-empty{padding:10px 12px;color:var(--text-muted);font-size:var(--text-sm)}.searchable-select-option{display:block;width:100%;text-align:left;background:none;border:none;padding:8px 10px;border-radius:var(--border-radius-sm);font-size:var(--text-md);color:var(--text-primary);cursor:pointer}.searchable-select-option:hover,.searchable-select-option.is-highlighted{background:rgba(var(--primary-rgb),.1)}.project-document-list{display:flex;flex-direction:column;gap:8px}.project-document-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border:1px solid var(--border-glass);border-radius:var(--border-radius-md);background:#fff}.project-document-info{display:flex;flex-direction:column;gap:2px;min-width:0}.project-document-kind{font-size:var(--text-xs);color:var(--text-muted)}.project-boq-name,.project-document-name,.checklist-admin-row-title{font-weight:600;font-size:var(--text-md);color:var(--text-primary)}.project-document-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-document-name:not(a){color:var(--text-secondary)}a.project-document-name{color:var(--text-primary);text-decoration:none}a.project-document-name:hover{text-decoration:underline}.project-document-prior-versions{margin:4px 0 0;padding:0;list-style:none;font-size:var(--text-xs)}.project-document-prior-versions a{color:var(--text-muted)}.project-document-prior-versions summary{cursor:pointer;color:var(--text-muted)}.project-document-prior-versions ul{margin:6px 0 0;padding:0 0 0 14px;list-style:none}button.project-ticket-row{width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}button.project-ticket-row:hover{border-color:rgba(var(--primary-rgb),.35);box-shadow:0 1px 4px #0000000f}.project-ticket-row-meta{font-size:var(--text-sm);color:var(--text-muted)}.project-document-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.project-document-row-hint{margin:6px 0 0;max-width:42rem;line-height:1.35}.quotation-section-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.quotation-save-status{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap}.quotation-save-status.is-saved{color:var(--status-success-fg)}.quotation-qty-input{width:4.5rem}.quotation-amount-input{width:7rem}.idv-installation-quote-table .idv-install-amount-input{width:100%;min-width:5.75rem;max-width:11rem;min-height:2.75rem;padding:.5rem .65rem;font-size:1rem;box-sizing:border-box}.idv-installation-quote-table .idv-install-text-input{width:100%;min-height:2.75rem;padding:.5rem .65rem;font-size:1rem;box-sizing:border-box}@media(min-width:769px){.idv-installation-quote-table .idv-install-col-qty{min-width:9.75rem;width:9.75rem}.idv-installation-quote-table .idv-install-col-amount{min-width:9rem}.idv-installation-quote-table .idv-install-col-status{width:5.5rem;white-space:nowrap}.idv-installation-quote-table td.idv-install-col-qty,.idv-installation-quote-table td[data-label=Qty]{min-width:9.75rem}}.quotation-line-actions{display:flex;gap:6px;align-items:center}.quotation-totals-bar{position:sticky;bottom:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;margin-top:20px;padding:12px 20px;border-radius:0;background:var(--bg-card);border:0;border-top:1px solid var(--border-glass);box-shadow:0 -4px 12px #0f172a0f}.work-pane:has(.quotation-totals-bar){scroll-padding-bottom:80px}.quotation-totals-bar-figures{display:flex;flex-wrap:wrap;gap:4px 20px;font-size:var(--text-sm);color:var(--text-secondary)}.quotation-totals-bar-grand{font-family:var(--font-heading);font-size:var(--text-lg);font-weight:700;color:var(--text-primary)}@media(max-width:640px){.quotation-totals-bar{flex-direction:column;align-items:stretch;text-align:center}}@media(max-width:767px){.work-pane:has(.quotation-totals-bar){padding-bottom:calc(166px + env(safe-area-inset-bottom,0px))}.quotation-totals-bar{position:fixed;left:8px;right:8px;bottom:calc(62px + env(safe-area-inset-bottom,0px));z-index:25;margin:0;border-radius:14px}}dialog.modal-panel{background:var(--bg-card);border:1px solid var(--border-glass);border-radius:var(--border-radius-lg);color:var(--text-primary);padding:0;max-width:480px;width:min(calc(100% - 32px),480px);max-height:calc(100vh - 32px);margin:auto;box-shadow:var(--shadow-overlay);overflow:hidden}dialog.modal-panel-wide{max-width:640px;width:min(calc(100% - 32px),640px)}textarea.product-spec-textarea{width:100%;min-height:3.25rem;resize:vertical;line-height:1.45}dialog.modal-panel-xwide{max-width:min(1120px,calc(100vw - 48px));width:min(calc(100vw - 32px),1120px)}dialog.modal-panel-confirm{max-width:min(720px,calc(100vw - 32px));width:min(calc(100% - 32px),720px);border-top:4px solid var(--color-primary, #2563eb)}dialog.modal-panel::backdrop{background:#0f172a66}dialog.modal-panel-confirm::backdrop{background:#0f172a94}dialog.modal-panel:focus-visible{outline:none}.modal-content{display:flex;flex-direction:column;max-height:calc(100vh - 32px);padding:24px}.modal-body{overflow-y:auto;min-height:0}.modal-body>.project-tabs,.ticket-modal-toolbar .project-tabs{padding:0;margin:0}.ticket-modal-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;margin-bottom:16px;padding-bottom:0;border-bottom:1px solid var(--border-glass)}.ticket-modal-toolbar .project-tabs{flex:1 1 auto;border-bottom:0}.ticket-modal-toolbar .btn{flex-shrink:0}.ticket-modal-context{margin:-8px 0 16px}.ticket-modal-static-field{margin:0;font-size:var(--text-sm);line-height:1.5;color:var(--text-primary);white-space:pre-wrap;word-break:break-word}.ticket-modal-note-save{margin-top:8px}.ticket-modal-closed-hint{margin-top:12px;margin-bottom:0}.modal-header h3{font-size:var(--text-lg)}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;flex-shrink:0}.modal-header h3{min-width:0;overflow-wrap:break-word}.modal-close{flex-shrink:0;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:transparent;border:none;color:var(--text-secondary);font-size:var(--text-xl);cursor:pointer;line-height:1;transition:var(--transition-normal)}.modal-close:hover{background:var(--bg-subtle);color:var(--text-primary)}.modal-form{display:flex;flex-direction:column}.modal-form .form-group:last-of-type{margin-bottom:0}.quotation-room-block{border:1px solid var(--border-glass);border-radius:12px;padding:16px;margin-top:16px}.project-boq-by-room{display:flex;flex-direction:column;gap:0}.project-boq-room-section .project-boq-list{margin-top:0}.quotation-room-block-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.quotation-room-block-title__fields{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.quotation-room-add-form{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.quotation-room-add-form__fields{display:grid;grid-template-columns:1fr 1fr minmax(5rem,7rem);gap:12px;align-items:end}.quotation-room-add-form__fields--search-only{grid-template-columns:minmax(0,1fr)}.quotation-room-add-form__qty input{width:100%}.quotation-room-add-form__actions{display:flex;justify-content:flex-end;gap:8px}.quotation-room-add-form__actions .btn{min-width:8rem}@media(max-width:640px){.quotation-room-add-form__fields{grid-template-columns:1fr}.quotation-room-add-form__actions{justify-content:stretch}.quotation-room-add-form__actions .btn{width:100%;min-height:44px}}.quotation-boq-sheet-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 12px}.quotation-boq-sheet-title{margin:0;font-size:var(--text-lg)}.quotation-boq-sheet-wrap{border:1px solid var(--border-glass);border-radius:var(--border-radius-md);overflow-x:auto;-webkit-overflow-scrolling:touch}.quotation-boq-sheet{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.quotation-boq-sheet th,.quotation-boq-sheet td{padding:8px 12px;border-bottom:1px solid var(--border-subtle);text-align:left;vertical-align:middle}.quotation-boq-sheet thead th{background:var(--bg-subtle);border-bottom:1px solid var(--border-glass);color:var(--text-muted);font-weight:500;white-space:nowrap}.quotation-boq-sheet__group>tr:first-child>td,.quotation-boq-sheet__add-room>tr:first-child>td{border-top:1px solid var(--border-glass)}.quotation-boq-sheet tbody:last-child>tr:last-child>td{border-bottom:0}.quotation-boq-sheet input[type=text],.quotation-boq-sheet input[type=number]{min-height:0;height:34px;padding:0 10px;font-size:var(--text-sm)}.quotation-boq-sheet__room-head,.quotation-boq-sheet__room{width:13rem}.quotation-boq-sheet td.quotation-boq-sheet__room{vertical-align:top;background:var(--bg-subtle);border-right:1px solid var(--border-glass);padding:12px 14px}.quotation-boq-sheet__room-view{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.quotation-boq-sheet__room-name{font-weight:600;font-size:var(--text-md);color:var(--text-primary);overflow-wrap:anywhere}.quotation-boq-sheet__room-meta{font-size:var(--text-xs);color:var(--text-muted)}.quotation-boq-sheet__room-edit-btn{margin-top:2px;padding:0;border:0;background:none;color:var(--text-muted);font:inherit;font-size:var(--text-xs);font-weight:600;cursor:pointer}.quotation-boq-sheet__room-edit-btn:hover,.quotation-boq-sheet__room-edit-btn:focus-visible{color:var(--primary)}.quotation-boq-sheet__room-edit{display:flex;flex-direction:column;gap:6px}.quotation-boq-sheet__room-edit-row{display:flex;align-items:center;gap:6px}.quotation-boq-sheet__room-edit .quotation-boq-input--name{font-weight:600}.quotation-boq-sheet__room-remove,.quotation-boq-sheet__remove button{font-family:var(--font-body);flex:none;width:30px;height:30px;border:0;border-radius:var(--border-radius-sm);background:transparent;color:var(--text-disabled);cursor:pointer;font-size:var(--text-sm)}.quotation-boq-sheet__room-remove:hover,.quotation-boq-sheet__remove button:hover,.quotation-boq-sheet__remove button:focus-visible{color:var(--status-danger-fg);background:var(--status-danger-bg)}.quotation-boq-sheet td.quotation-boq-sheet__room--blank{padding:0}.quotation-boq-sheet__product{font-weight:600;color:var(--text-primary)}.quotation-boq-sheet__model{color:var(--text-muted);white-space:nowrap}.quotation-boq-sheet__capacity{white-space:nowrap}.quotation-boq-sheet__qty,.quotation-boq-sheet__rate{width:1%;white-space:nowrap}.quotation-boq-sheet__qty-plain{display:inline-block;min-width:96px;text-align:center}.quotation-boq-sheet .quotation-amount-input{width:7rem}.quotation-boq-sheet__total,.quotation-boq-sheet__total-head{text-align:right!important;white-space:nowrap}.quotation-boq-sheet__total{font-weight:600;color:var(--text-primary)}.quotation-boq-sheet__remove,.quotation-boq-sheet__remove-head{width:44px;text-align:center!important;padding-left:0!important;padding-right:8px!important}.quotation-boq-sheet__summary{display:none}.quotation-qty-stepper{display:inline-flex;align-items:stretch;height:34px;border:1px solid var(--border-strong);border-radius:var(--border-radius-sm);background:#fff;overflow:hidden}.quotation-qty-stepper button{font-family:var(--font-body);width:30px;border:0;background:var(--bg-subtle);color:var(--text-primary);font-size:var(--text-lg);line-height:1;cursor:pointer}.quotation-qty-stepper button:hover:not(:disabled){background:var(--primary-soft);color:var(--primary-dark)}.quotation-qty-stepper button:disabled{color:var(--text-disabled);cursor:default}.quotation-boq-sheet .quotation-qty-stepper input[type=number],.quotation-qty-stepper .quotation-qty-input{width:2.75rem;height:100%;min-height:0;padding:0;border:0;border-radius:0;text-align:center;font-weight:600;-moz-appearance:textfield}.quotation-qty-stepper input::-webkit-outer-spin-button,.quotation-qty-stepper input::-webkit-inner-spin-button,.quotation-boq-sheet input[type=number]::-webkit-outer-spin-button,.quotation-boq-sheet input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.quotation-boq-sheet__add-row>td{padding-top:4px;padding-bottom:4px}.quotation-boq-sheet__add-row.is-open>td:not(.quotation-boq-sheet__room){background:rgba(var(--primary-rgb),.04);padding-top:10px;padding-bottom:10px}.quotation-boq-sheet__add-line{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px}.quotation-boq-sheet__empty{color:var(--status-warning-fg);font-size:var(--text-xs);font-weight:600}.quotation-boq-sheet__add-btn{display:inline-flex;align-items:center;min-height:32px;padding:0 6px;margin-left:-6px;border:0;border-radius:var(--border-radius-sm);background:transparent;color:var(--primary-dark);font:inherit;font-size:var(--text-sm);font-weight:600;cursor:pointer}.quotation-boq-sheet__add-btn:hover,.quotation-boq-sheet__add-btn:focus-visible{background:var(--primary-soft)}.quotation-boq-add{display:flex;align-items:flex-start;flex-wrap:wrap;gap:8px}.quotation-boq-add__search{position:relative;flex:1 1 20rem;max-width:32rem}.quotation-boq-add__icon{position:absolute;left:10px;top:9px;width:16px;height:16px;fill:none;stroke:var(--primary);stroke-width:2;stroke-linecap:round;pointer-events:none}.quotation-boq-sheet .quotation-boq-add__search input[type=text]{padding-left:34px;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.quotation-boq-add__actions{display:flex;gap:6px}.quotation-boq-add__actions .btn{min-height:34px;height:34px}.quotation-boq-add__cancel{background:transparent;border-color:transparent;color:var(--text-secondary)}.quotation-boq-add__cancel:hover{background:var(--bg-subtle)}.quotation-product-results{margin-top:6px;padding:4px;background:#fff;border:1px solid var(--border-glass);border-radius:var(--border-radius-md);box-shadow:var(--shadow-overlay)}.quotation-product-results__hint{margin:0;padding:4px 8px 6px;font-size:var(--text-xs);color:var(--text-muted)}.quotation-product-results ul{list-style:none;margin:0;padding:0;max-height:16rem;overflow-y:auto}.quotation-product-results button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:0;border-radius:var(--border-radius-sm);background:transparent;font:inherit;text-align:left;color:var(--text-primary);cursor:pointer}.quotation-product-results button:hover,.quotation-product-results button.is-active{background:var(--primary-soft)}.quotation-product-results__main{display:flex;flex-direction:column;min-width:0}.quotation-product-results__name{font-weight:600;font-size:var(--text-sm)}.quotation-product-results__meta{font-size:var(--text-xs);color:var(--text-muted)}.quotation-product-results__rate{font-size:var(--text-sm);font-weight:600;white-space:nowrap}.quotation-boq-sheet__add-room td{padding:10px 12px}.quotation-boq-add-room{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.quotation-boq-sheet .quotation-boq-add-room__name{flex:0 1 20rem;width:auto}.quotation-boq-sheet .quotation-boq-add-room__sqft{flex:0 0 9rem;width:9rem}.quotation-boq-add-room .btn{min-height:34px;height:34px}.quotation-boq-sheet__section-head>td{background:var(--bg-subtle);padding:8px 14px}.quotation-boq-sheet__section-head h4{font-family:var(--font-body);margin:0;font-size:var(--text-sm);font-weight:600}.quotation-boq-sheet__section-toggle{display:inline-flex;align-items:center;gap:8px;padding:0;border:0;background:none;font:inherit;font-weight:600;color:var(--text-primary);cursor:pointer}.quotation-boq-sheet__count{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:999px;background:var(--status-neutral-bg);color:var(--status-neutral-fg);font-size:var(--text-xs)}.quotation-boq-sheet__chevron{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--dur-fast, .12s)}.quotation-boq-sheet__section-toggle[aria-expanded=true] .quotation-boq-sheet__chevron{transform:rotate(180deg)}@media(max-width:767px){.quotation-boq-sheet-toolbar .btn{min-height:40px}.quotation-boq-sheet-wrap{border:0;border-radius:0;overflow:visible}.quotation-boq-sheet,.quotation-boq-sheet tbody,.quotation-boq-sheet tr,.quotation-boq-sheet td{display:block;width:100%}.quotation-boq-sheet thead{display:none}.quotation-boq-sheet td{border:0;padding:0}.quotation-boq-sheet__group,.quotation-boq-sheet__add-room{margin-bottom:12px;border:1px solid var(--border-glass);border-radius:var(--border-radius-md);background:#fff;overflow:hidden}.quotation-boq-sheet__group>tr:first-child>td,.quotation-boq-sheet__add-room>tr:first-child>td{border-top:0}.quotation-boq-sheet td.quotation-boq-sheet__room{padding:10px 14px;border-right:0;border-bottom:1px solid var(--border-glass)}.quotation-boq-sheet__room--blank{display:none!important}.quotation-boq-sheet__room-view{flex-direction:row;flex-wrap:wrap;align-items:baseline;column-gap:8px}.quotation-boq-sheet__room-meta:before{content:"· "}.quotation-boq-sheet__room-edit-btn{margin-left:auto;min-height:32px}.quotation-boq-sheet input[type=text],.quotation-boq-sheet input[type=number]{height:44px;font-size:var(--text-md)}.quotation-boq-sheet__line{border-bottom:1px solid var(--border-subtle)}.quotation-boq-sheet__line>td:not(.quotation-boq-sheet__room):not(.quotation-boq-sheet__summary){display:none}.quotation-boq-sheet__summary{display:block}.quotation-boq-sheet__summary button{width:100%;display:flex;align-items:center;gap:10px;padding:10px 14px;border:0;background:#fff;font:inherit;text-align:left;color:var(--text-primary);cursor:pointer}.quotation-boq-sheet__summary-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.quotation-boq-sheet__summary-name{font-weight:600}.quotation-boq-sheet__summary-meta{font-size:var(--text-xs);color:var(--text-muted);overflow-wrap:anywhere}.quotation-boq-sheet__summary-qty{font-weight:600;color:var(--text-secondary)}.quotation-boq-sheet__summary-total{min-width:5.5rem;text-align:right;font-weight:600}.quotation-boq-sheet__line.is-open{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:end;column-gap:10px;background:rgba(var(--primary-rgb),.04);padding-bottom:12px}.quotation-boq-sheet__line.is-open>.quotation-boq-sheet__room,.quotation-boq-sheet__line.is-open>.quotation-boq-sheet__summary{grid-column:1 / -1}.quotation-boq-sheet__line.is-open .quotation-boq-sheet__summary button{background:transparent}.project-boq-editor .quotation-boq-sheet__line.is-open>td.quotation-boq-sheet__product{display:block;padding:4px 14px 8px}.quotation-boq-sheet .quotation-boq-sheet__line.is-open>td.quotation-boq-sheet__qty,.quotation-boq-sheet .quotation-boq-sheet__line.is-open>td.quotation-boq-sheet__rate,.quotation-boq-sheet .quotation-boq-sheet__line.is-open>td.quotation-boq-sheet__status,.quotation-boq-sheet .quotation-boq-sheet__line.is-open>td.quotation-boq-sheet__actions,.quotation-boq-sheet .quotation-boq-sheet__line.is-open>td.quotation-boq-sheet__remove{display:flex;flex-direction:column;gap:4px;width:auto}.quotation-boq-sheet__line.is-open>.quotation-boq-sheet__qty{padding-left:14px}.quotation-boq-sheet__line.is-open>.quotation-boq-sheet__remove{padding-right:10px!important}.quotation-boq-sheet__line.is-open>.quotation-boq-sheet__qty:before,.quotation-boq-sheet__line.is-open>.quotation-boq-sheet__rate:before{content:attr(data-label);font-size:var(--text-xs);font-weight:600;color:var(--text-muted)}.quotation-boq-sheet .quotation-amount-input{width:100%}.quotation-qty-stepper{height:44px}.quotation-qty-stepper button{width:40px}.quotation-boq-sheet__remove button{width:44px;height:44px;color:var(--status-danger-fg);border:1px solid var(--border-strong)}.quotation-boq-sheet__add-row>td,.quotation-boq-sheet__add-room td{padding:6px 14px}.quotation-boq-sheet__add-row.is-open>td:not(.quotation-boq-sheet__room){padding:12px 14px}.quotation-boq-sheet__add-btn{min-height:44px}.quotation-boq-add{flex-direction:column;align-items:stretch}.quotation-boq-add__search{flex:none;max-width:none}.quotation-boq-add__icon{top:14px}.quotation-boq-add .quotation-qty-stepper{align-self:flex-start}.quotation-boq-add__actions .btn{flex:1;min-height:44px;height:44px}.quotation-boq-sheet__add-room td{padding:12px 14px}.quotation-boq-sheet .quotation-boq-add-room__name{flex:1 1 100%}.quotation-boq-sheet .quotation-boq-add-room__sqft{flex:1 1 0;width:auto}.quotation-boq-add-room .btn{min-height:44px;height:44px}.quotation-boq-sheet__section-head>td{padding:10px 14px}.quotation-boq-sheet__section-toggle{min-height:32px}}.quotation-doc-tables .quotation-section-header h3,.quotation-doc-tables .quotation-section-header h4,.quotation-doc-tables>h3,.quotation-doc-tables .quotation-review-section-title{font-size:var(--text-lg)}.quotation-doc-tables .admin-table-wrap{border:1px solid var(--border-glass);border-radius:var(--border-radius-md);overflow-x:auto}.quotation-doc-tables .admin-table th,.quotation-doc-tables .admin-table td{padding:8px 12px;font-size:var(--text-sm)}.quotation-doc-tables .admin-table thead th{background:var(--bg-subtle);border-bottom:1px solid var(--border-glass)}.quotation-doc-tables .admin-table td[data-label=Type]{white-space:nowrap}.quotation-doc-tables .admin-table input[type=text],.quotation-doc-tables .admin-table input[type=number]{min-height:0;height:34px;padding:0 10px;font-size:var(--text-sm)}.quotation-doc-tables .admin-table--summary td{font-size:var(--text-md)}.quotation-doc-tables .quotation-grand-total-row td{font-size:var(--text-lg);color:var(--text-primary)}@media(max-width:767px){.quotation-doc-tables .admin-table-wrap{border:0;border-radius:0;overflow:visible}.quotation-doc-tables .admin-table--stacked tbody tr{margin-bottom:8px;padding:2px 12px 6px}.quotation-doc-tables .admin-table--stacked td{padding:6px 0;font-size:var(--text-sm)}.quotation-doc-tables .admin-table--stacked td[data-label=Description]{display:block;padding:8px 0 4px;text-align:left;font-weight:600;font-size:var(--text-md);border-bottom:0}.quotation-doc-tables .admin-table--stacked td[data-label=Description]:before{display:none}.quotation-doc-tables .admin-table input[type=text],.quotation-doc-tables .admin-table input[type=number]{height:44px;font-size:var(--text-md)}}.quotation-doc-tables .quotation-qty-stepper input.quotation-qty-input{width:2.75rem;height:100%;min-height:0;padding:0;border:0;border-radius:0;text-align:center;font-weight:600;font-size:var(--text-sm)}@media(max-width:767px){.quotation-review .admin-table--stacked tbody tr:has(td[data-label=Qty]){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 10px;align-items:start;padding:10px 12px}.quotation-review .admin-table--stacked tbody tr:has(td[data-label=Qty])>td{display:block;padding:0;border:0;text-align:left;overflow-wrap:anywhere}.quotation-review .admin-table--stacked tbody tr:has(td[data-label=Qty])>td:before{display:none}.quotation-review td[data-label=Location]{grid-column:1 / -1;order:0;font-weight:600;color:var(--text-primary)}.quotation-review td[data-label=Location]:empty{display:none}.quotation-review td[data-label="Type of Indoor Unit"],.quotation-review td[data-label="Product Name"],.quotation-review td[data-label="Machine Description"],.quotation-review td[data-label="Product Description"]{grid-column:1 / -1;order:1;font-weight:600;font-size:var(--text-md)}.quotation-review td[data-label="SL No"]{grid-column:1 / -1;order:0;font-size:var(--text-xs);color:var(--text-muted)}.quotation-review td[data-label="SL No"]:after{content:""}.quotation-review td[data-label=Model]{grid-column:1 / -1;order:2;font-size:var(--text-xs);color:var(--text-muted)}.quotation-review td[data-label=Model]:has(+td[data-label=Capacity]){grid-column:1 / 3}.quotation-review td[data-label=Capacity]{grid-column:3;order:2;font-size:var(--text-xs);color:var(--text-muted);text-align:right}.quotation-review td[data-label=Suggested],.quotation-review td[data-label=Qty],.quotation-review td[data-label="Total IDU TR"],.quotation-review td[data-label="Unit Rate"],.quotation-review td[data-label="Total Value"]{order:3;display:flex!important;flex-direction:column;gap:2px;font-size:var(--text-md)}.quotation-review td[data-label=Suggested]:before,.quotation-review td[data-label=Qty]:before,.quotation-review td[data-label="Total IDU TR"]:before,.quotation-review td[data-label="Unit Rate"]:before,.quotation-review td[data-label="Total Value"]:before{display:block!important;content:attr(data-label);flex:none;max-width:none;font-size:var(--text-xs);font-weight:600;color:var(--text-muted)}.quotation-review td[data-label="Total Value"]{font-weight:600}.quotation-review td[data-label=Suggested],.quotation-review td[data-label=Qty]{grid-column:1}.quotation-review td[data-label=Suggested]+td[data-label=Qty],.quotation-review td[data-label="Unit Rate"]{grid-column:2}.quotation-review td[data-label="Total IDU TR"],.quotation-review td[data-label="Total Value"]{grid-column:3}.quotation-review .admin-table--stacked tbody tr>td.bod-odu-cell[data-label]{order:9;grid-column:1 / -1;display:flex!important;justify-content:space-between;gap:12px;padding-top:6px;border-top:1px solid var(--border-subtle);font-size:var(--text-sm)}.quotation-review .admin-table--stacked tbody tr>td.bod-odu-cell[data-label]:before{display:block!important;content:attr(data-label);font-weight:600;color:var(--text-muted);font-size:var(--text-xs)}.quotation-review .quotation-boq-section-row{margin:12px 0 4px;padding:0;border:0;background:none}.quotation-review .quotation-boq-section-row td{padding:4px 2px;text-align:left;font-weight:600}}.quotation-stepper{display:flex;align-items:center;gap:0;padding:14px 20px;background:var(--bg-card);border-bottom:1px solid var(--border-glass);overflow-x:auto}.quotation-stepper__cell{display:flex;align-items:center;flex:none}.quotation-stepper__line{width:40px;height:2px;margin:0 12px;background:var(--border-strong)}.quotation-stepper__item{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0;border:0;background:none;font:inherit;font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);cursor:pointer}.quotation-stepper__num{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999px;background:var(--status-neutral-bg);font-size:var(--text-xs)}.quotation-stepper__item:hover .quotation-stepper__num{background:var(--primary-soft)}.quotation-stepper__item.is-on{color:var(--primary-dark)}.quotation-stepper__item.is-on .quotation-stepper__num{background:var(--primary);color:#fff}@media(max-width:767px){.quotation-stepper{padding:10px 14px;justify-content:flex-start}.quotation-stepper__line{width:14px;margin:0 6px}.quotation-stepper__item{min-height:44px}.quotation-stepper__item:not(.is-on) .quotation-stepper__label{display:none}}.quotation-boq-fold{margin-top:16px;border:1px solid var(--border-glass);border-radius:var(--border-radius-md);overflow:hidden}.quotation-boq-fold__toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:0 16px;border:0;background:var(--bg-subtle);font:inherit;font-size:var(--text-sm);font-weight:600;color:var(--text-primary);cursor:pointer}.quotation-boq-fold__toggle[aria-expanded=true] .quotation-boq-sheet__chevron{transform:rotate(180deg)}.quotation-boq-fold__body{padding:4px 16px 16px}.quotation-boq-fold__body[hidden]{display:none}.quotation-boq-fold__body .quotation-room-block{border:0;padding:0;margin-top:8px}.quotation-boq-fold__body .quotation-section-header h4{display:none}.bod-odu-cell{text-align:center;vertical-align:middle;font-weight:700;line-height:1.3;white-space:pre-line;overflow-wrap:anywhere}@media print{.app-rail,.work-topbar-actions,.project-header-actions,.toast-container{display:none!important}body{background:#fff}.app-shell--compact,.work-pane{height:auto;overflow:visible}}.file-preview-thumbnail--wide{max-width:100%;max-height:420px;object-fit:contain}.btn-link{background:none;border:none;padding:0;color:var(--primary);font:inherit;font-weight:600;cursor:pointer;text-decoration:none}.btn-link:hover:not(:disabled){text-decoration:underline}.btn-link:disabled{opacity:.5;cursor:not-allowed}.quotation-round-off-preview{margin-top:12px}.modal-hint{color:var(--text-secondary);font-size:var(--text-md);line-height:1.5;margin:0}@media(max-width:767px){.glass-card{padding:14px}.admin-section-header{gap:12px;margin-bottom:12px}.form-group{margin-bottom:14px}.quotation-form-grid,.quotation-fieldset{gap:12px}.quotation-section-header{margin-bottom:12px}.project-role-checklists{gap:18px}.app-refresh-btn{flex-shrink:0}.admin-role-switcher{width:100%;flex-wrap:wrap}.work-topbar .admin-role-switcher{width:auto;flex-wrap:nowrap}.admin-role-switcher-trigger{flex:1;min-width:0;min-height:44px;height:44px}.work-topbar .admin-role-switcher-trigger{flex:0 0 auto;height:40px;min-height:40px}.user-menu-item{min-height:44px}.admin-section-header{flex-direction:column;align-items:stretch}.admin-section-header .btn,.admin-toolbar .btn{width:100%;min-height:44px}.btn,.btn-sm{min-height:44px}input[type=text],input[type=tel],input[type=password],input[type=number],input[type=email],input[type=url],input[type=search],textarea,select{min-height:44px;font-size:16px}textarea{min-height:88px}.admin-checkbox-row{min-height:44px;padding:4px 0}.admin-checkbox-row input[type=checkbox]{width:20px;height:20px}.pick-add-row{flex-direction:column;align-items:stretch}.pick-add-row .btn{width:100%}.pick-add-selected-list li{min-height:44px;padding:10px 12px}.admin-modal-actions{flex-direction:column-reverse;align-items:stretch}.admin-modal-actions .btn{width:100%}.admin-pagination{flex-direction:column;align-items:stretch;text-align:center}.admin-pagination-buttons{flex-direction:column;width:100%}.admin-pagination-buttons .btn{width:100%}.work-action-bar,.quotation-header-actions{width:100%;flex-direction:column;align-items:stretch}.work-action-bar .btn,.quotation-header-actions .btn{width:100%}.work-toolbar .work-action-bar,.work-toolbar .quotation-header-actions{width:auto;flex-direction:row;flex-wrap:wrap;align-items:center}.work-toolbar .work-action-bar .btn,.work-toolbar .quotation-header-actions .btn{width:auto}.work-toolbar--actions{margin:0 12px}.section-card-header{flex-direction:column;align-items:stretch}.section-card-header .work-action-bar{width:100%;margin-left:0}.section-card-header .work-action-bar .btn{width:100%}.section-card-header--boq{flex-direction:row;flex-wrap:wrap;align-items:center}.section-card-header--boq .work-action-bar{width:auto;margin-left:auto}.section-card-header--boq .work-action-bar .btn{width:auto}.quotation-step-nav{flex-direction:column;align-items:stretch}.quotation-step-nav .btn{width:100%}.quotation-step-nav>span:empty{display:none}.quotation-address-row{flex-direction:column;align-items:stretch}.quotation-address-row .address-preview{flex-basis:auto}.quotation-address-row .btn{width:100%}.quotation-list-search{max-width:none}.quotation-qty-input,.quotation-amount-input,.quotation-install-rate-input,.idv-install-amount-input,.idv-install-text-input{width:100%;max-width:none;min-height:44px}.quotation-totals-bar{padding-bottom:max(14px,env(safe-area-inset-bottom))}.work-pane .glass-card,.work-pane>.admin-table-wrap{margin:12px}.work-pane .glass-card{padding:16px}.work-pane .admin-table-wrap:not(.glass-card .admin-table-wrap):has(>.admin-table--stacked){background:none;border:0;box-shadow:none;padding:0}.work-toolbar{padding:12px 12px 0}.admin-table--rows,.admin-table--rows tbody{display:block}.admin-table--rows thead{display:none}.admin-table--rows tbody tr{display:flex;flex-wrap:wrap;align-items:center;gap:3px 8px;padding:12px 14px;border-bottom:1px solid var(--border-subtle)}.admin-table--rows tbody tr:last-child{border-bottom:0}.admin-table--rows tbody tr:after{content:"";order:3;flex-basis:100%;height:0}.admin-table--rows td{display:block;padding:0;border:0;font-size:var(--text-sm)}.admin-table--rows .cell-title{order:1;flex:1 1 0;min-width:0;font-size:var(--text-md);font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-table--rows .cell-title .member-cell-name,.admin-table--rows .cell-title>div:first-child{overflow:hidden;text-overflow:ellipsis}.admin-table--rows .cell-title .member-cell-phone,.admin-table--rows .cell-title .admin-table-subtext{display:none}.admin-table--rows .cell-status{order:2;flex:none}.admin-table--rows .cell-meta{order:4;font-size:var(--text-xs);font-weight:400;color:var(--text-muted);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.admin-table--rows .cell-meta:has(~.cell-meta:not(.cell-hide-sm)):after{content:"·";margin-left:8px}.admin-table--rows .cell-meta--labelled:before{content:attr(data-label) " "}.admin-table--rows .cell-hide-sm{display:none}.admin-table--rows .cell-meta .admin-table-subtext{display:inline;margin:0;font-size:inherit}.admin-table--rows .cell-meta .admin-table-subtext:before{content:" · "}.admin-table--rows .cell-action{order:5;margin-left:auto}.admin-table--rows .cell-action .btn{min-height:28px;margin:-6px -6px -6px 0;padding:6px;border:0;background:none;color:var(--primary);font-size:var(--text-xs)}.admin-table--rows td[colspan]{flex-basis:100%}.admin-table--rows tbody tr:has(td[colspan]):after{display:none}.admin-table--rows tbody tr.quotation-customer-group{background:var(--bg-subtle);padding:8px 14px}.admin-table--rows tbody tr.quotation-customer-group td{font-weight:600;white-space:normal}.work-pane .admin-table-wrap:has(>.admin-table--rows){padding:0;overflow:hidden}.admin-table--stacked thead{display:none}.admin-table--stacked tbody tr{display:block;margin-bottom:12px;padding:4px 12px 10px;border:1px solid var(--border-glass);border-radius:var(--border-radius-md);background:#fff}.admin-table--stacked tbody tr.clickable-row{cursor:pointer}.admin-table--stacked tbody tr.clickable-row:active{background:rgba(var(--primary-rgb),.06)}.admin-table--stacked td{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;overflow-wrap:anywhere;padding:8px 0;border-bottom:1px solid rgba(15,23,42,.06);text-align:right}.admin-table--stacked td:last-child{border-bottom:none}.admin-table--stacked td:before{content:attr(data-label);flex:0 0 38%;max-width:42%;text-align:left;font-size:var(--text-xs);font-weight:600;color:var(--text-muted);padding-top:2px}.admin-table--stacked td[data-label=""]:before,.admin-table--stacked td:not([data-label]):before{display:none}.admin-table--stacked td[colspan]{display:block;text-align:center;border-bottom:none}.admin-table--stacked td[colspan]:before{display:none}.admin-table--stacked .members-row-actions{justify-content:flex-end;width:100%}.admin-table--stacked .member-cell{align-items:flex-end;text-align:right}.admin-table--summary tbody tr{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 0;border-bottom:1px solid rgba(15,23,42,.06)}.admin-table--summary tbody tr:last-child{border-bottom:none}.admin-table--summary td{display:block;padding:0;border:none;text-align:left}.admin-table--summary td:last-child{text-align:right;flex-shrink:0}.admin-table--summary .quotation-grand-total-row td{font-size:var(--text-md)}.quotation-line-actions{flex-wrap:wrap;justify-content:flex-end}.quotation-line-actions .quotation-amount-input{flex:1 1 100%}.idv-installation-quote-table td[data-label=Qty] .quotation-qty-stepper{flex:none;margin-left:auto}.idv-installation-quote-table td[data-label=Qty] input:not(.quotation-qty-input),.idv-installation-quote-table td[data-label="Amount (₹)"] input,.idv-installation-quote-table td[data-label=Description] input{flex:1 1 58%;min-width:8.5rem;max-width:none;width:auto}.modal-close{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.login-page{padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.quotation-form-grid{grid-template-columns:1fr}}.ticket-timeline{list-style:none;margin:0 0 16px;padding:0;max-height:360px;overflow-y:auto}.ticket-timeline-item{position:relative;display:flex;gap:12px;padding:0 4px 18px}.ticket-timeline-item:before{content:"";position:absolute;left:9px;top:16px;bottom:-2px;width:1px;background:var(--border-subtle)}.ticket-timeline-item:last-child:before{display:none}.ticket-timeline-item:last-child{padding-bottom:0}.ticket-timeline-dot{flex-shrink:0;width:9px;height:9px;margin-top:5px;border-radius:50%;background:var(--primary);z-index:1}.ticket-timeline-item--system .ticket-timeline-dot{background:var(--text-muted)}.ticket-timeline-content{flex:1;min-width:0}.ticket-timeline-meta{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 10px;font-size:var(--text-sm);margin-bottom:3px}.ticket-timeline-kind{font-size:var(--text-xs);font-weight:700;color:var(--text-muted)}.ticket-timeline-time{margin-left:auto;font-size:var(--text-xs);color:var(--text-muted)}.ticket-timeline-content p{margin:0;overflow-wrap:break-word}.ticket-timeline-item--system .ticket-timeline-content{opacity:.85}.checklist-ticket-summary{font-size:var(--text-xs);color:var(--status-warning-fg);margin-left:auto;max-width:100%;overflow-wrap:break-word}.checklist-ticket-actions{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px;margin-top:12px}.checklist-ticket-actions .form-group{flex:1 1 200px;margin-bottom:0}.checklist-ticket-action-buttons{display:flex;align-items:center;gap:8px}.ticket-priority--critical{background:var(--status-danger-bg);color:var(--status-danger-fg)}.ticket-priority--high{background:var(--status-warning-bg);color:var(--status-warning-fg)}.ticket-priority--medium{background:var(--status-info-bg);color:var(--status-info-fg)}.ticket-priority--low{background:var(--status-neutral-bg);color:var(--status-neutral-fg)}.work-crumbs{display:flex;align-items:center;gap:6px;min-width:0;color:var(--text-disabled);font-size:var(--text-sm)}.work-crumbs-parent{border:0;background:none;padding:4px 0;font:inherit;font-weight:500;color:var(--text-muted);cursor:pointer}.work-crumbs-parent:hover{color:var(--primary)}.work-crumbs-current{font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-header{display:flex;align-items:flex-end;gap:16px;padding:20px 20px 16px;background:#fff}.project-header-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.project-header-title{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px}.project-header-title h1{margin:0;font-size:var(--text-2xl);font-weight:600;letter-spacing:-.02em;line-height:1.1;overflow-wrap:anywhere}.project-header-meta{display:flex;flex-wrap:wrap;gap:2px 0;font-size:var(--text-sm);color:var(--text-secondary)}.project-header-meta>span:not(:last-child):after{content:"·";margin:0 8px;color:var(--text-disabled)}.project-header-actions{display:flex;gap:10px;flex-shrink:0;align-items:center}.project-header-actions .work-action-bar{margin-left:0}.project-overview-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:16px;padding:16px 20px 24px;align-items:start}.project-overview-grid--single{grid-template-columns:minmax(0,720px);padding-bottom:0}.project-overview-main,.project-overview-side{display:flex;flex-direction:column;gap:16px;min-width:0}.project-overview-grid .glass-card{margin:0}.project-card{display:flex;flex-direction:column;gap:16px}.project-card-head{display:flex;align-items:baseline;gap:10px}.project-card-head h3{margin:0;flex:1;font-size:var(--text-lg)}.project-card-sub{font-size:var(--text-sm);color:var(--text-muted)}.tone-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.tone-dot--neutral,.tone-dot--pending{background:var(--status-neutral-solid)}.tone-dot--transit{background:var(--status-transit-solid)}.tone-dot--info{background:var(--status-info-solid)}.tone-dot--success{background:var(--status-success-solid)}.pipeline-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.pipeline-stat{display:flex;flex-direction:column;gap:2px}.pipeline-stat-label{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-sm);font-weight:500;color:var(--text-secondary)}.pipeline-stat-value{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:600;line-height:1.15}.pipeline-stat-of{font-size:var(--text-lg);font-weight:500;color:var(--text-disabled)}.stage-bar{display:flex;gap:3px;height:6px;border-radius:3px;overflow:hidden;background:var(--status-neutral-bg)}.stage-bar--lg{height:12px;border-radius:6px}.stage-bar-seg{flex-basis:0;min-width:4px;transition:flex-grow var(--dur-med) var(--ease)}.stage-bar-seg--success{background:var(--status-success-solid)}.stage-bar-seg--info{background:var(--status-info-solid)}.stage-bar-seg--transit{background:var(--status-transit-solid)}.stage-bar-seg--pending{background:repeating-linear-gradient(135deg,#e9ecf1 0,#e9ecf1 6px,#dde2e9 6px,#dde2e9 12px)}.pipeline-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:-6px 0 0;padding:0;list-style:none;font-size:var(--text-xs);color:var(--text-muted)}.pipeline-legend li{display:inline-flex;align-items:center;gap:6px}.pipeline-note{margin:0;font-size:var(--text-sm);color:var(--status-danger-fg)}.project-card .admin-empty-cell{padding:16px 0 8px}.attention-count{min-width:22px;height:22px;padding:0 7px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;background:var(--status-danger-bg);color:var(--status-danger-fg);font-size:var(--text-xs);font-weight:600}.attention-list{display:flex;flex-direction:column;gap:8px}.attention-row{display:flex;align-items:flex-start;gap:12px;width:100%;padding:12px;border:0;border-radius:var(--border-radius-md);background:var(--bg-subtle);font:inherit;color:inherit;text-align:left}.attention-row--button{cursor:pointer;transition:var(--transition-normal)}.attention-row--button:hover .attention-title{color:var(--primary)}.attention-row--danger{background:color-mix(in srgb,var(--status-danger-bg) 60%,#fff)}.attention-row--warning{background:color-mix(in srgb,var(--status-warning-bg) 60%,#fff)}.attention-icon{width:32px;height:32px;flex-shrink:0;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;background:#fff;color:var(--status-neutral-fg)}.attention-icon--danger{color:var(--status-danger-fg)}.attention-icon--warning{color:var(--status-warning-fg)}.attention-icon--success{background:var(--status-success-bg);color:var(--status-success-fg)}.attention-text{display:flex;flex-direction:column;gap:2px;min-width:0}.attention-eyebrow{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary)}.attention-eyebrow--danger{color:var(--status-danger-fg)}.attention-eyebrow--warning{color:var(--status-warning-fg)}.attention-title{font-weight:600;line-height:1.35;overflow-wrap:anywhere}.attention-detail{font-size:var(--text-sm);color:var(--text-muted);overflow-wrap:anywhere}.attention-action{margin-top:8px}.attention-empty{display:flex;align-items:center;gap:12px;color:var(--text-secondary);font-size:var(--text-sm)}.attention-foot{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-sm);color:var(--text-muted)}.progress-ring{position:relative;display:inline-flex;flex-shrink:0}.progress-ring svg{display:block}.progress-ring-track{fill:none;stroke:var(--status-neutral-bg)}.progress-ring-fill{fill:none;stroke:var(--primary);stroke-linecap:round;transition:stroke-dasharray var(--dur-med) var(--ease)}.progress-ring-fill.is-complete{stroke:var(--status-success-solid)}.progress-ring-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-size:var(--text-lg);font-weight:600}.project-card--list{gap:4px;padding-bottom:8px}.room-list{margin:0 -20px;padding:0;list-style:none}.room-row{display:flex;align-items:center;gap:14px;padding:12px 20px;border-top:1px solid var(--border-subtle)}.room-row-text{flex:1;min-width:0;display:flex;flex-direction:column}.room-row-name{font-weight:600}.room-row-meta{font-size:var(--text-sm);color:var(--text-muted)}.room-target{display:flex;align-items:center;gap:8px;margin:0}.room-target-label{font-size:var(--text-sm);color:var(--text-muted)}.room-target input[type=date]{width:auto;min-height:34px;padding:4px 8px;font-size:var(--text-sm)}.room-target-chip{font-size:var(--text-sm);color:var(--text-secondary);background:var(--bg-subtle);padding:4px 10px;border-radius:var(--border-radius-sm)}.room-row-open{width:32px;height:32px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:none;color:var(--text-disabled);cursor:pointer}.room-row-open:hover{background:var(--bg-subtle);color:var(--text-primary)}.checklist-summary{display:flex;align-items:center;gap:18px}.checklist-summary-roles{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}.checklist-summary-role-head{display:flex;justify-content:space-between;font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:4px}.checklist-summary-role-head strong{color:var(--text-primary)}.checklist-summary-role.is-gated .checklist-summary-role-head strong{color:var(--status-danger-fg)}.mini-bar{height:4px;border-radius:2px;background:var(--status-neutral-bg);overflow:hidden}.mini-bar-fill{display:block;height:100%;border-radius:2px;background:var(--primary);transition:width var(--dur-med) var(--ease)}.mini-bar-fill.is-complete{background:var(--status-success-solid)}.assignee-row{display:flex;align-items:center;gap:12px;padding-top:16px;border-top:1px solid var(--border-subtle)}.assignee-avatar{width:36px;height:36px;flex-shrink:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--status-success-bg);color:var(--status-success-fg);font-size:var(--text-sm);font-weight:600}.assignee-avatar.is-empty{background:var(--status-warning-bg);color:var(--status-warning-fg)}.assignee-text{flex:1;min-width:0;display:flex;flex-direction:column}.assignee-text span{font-size:var(--text-xs);color:var(--text-muted)}.project-boq-list{gap:0}.project-boq-row{border:0;border-radius:0;border-top:1px solid var(--border-subtle);padding:14px 0;background:none}.project-boq-row:first-child{border-top:0}.project-boq-progress{width:200px;flex-shrink:0;display:flex;flex-direction:column;gap:6px}.project-boq-caption{font-size:var(--text-xs);color:var(--text-muted)}.project-boq-caption.is-pending{color:var(--status-warning-fg);font-weight:600}.project-boq-qty{width:auto;max-width:100%;min-width:0;flex-shrink:1;text-align:left;font-weight:inherit}@media(max-width:1023px){.project-overview-grid{grid-template-columns:minmax(0,1fr)}.project-overview-main,.project-overview-side{display:contents}.attention-card{order:-1}}@media(max-width:767px){.project-header{flex-direction:column;align-items:stretch;padding:16px 16px 12px}.project-header-title h1{font-size:1.733rem}.project-header-actions:not(.project-header-actions--inline){position:fixed;left:0;right:0;bottom:calc(58px + env(safe-area-inset-bottom,0px));z-index:20;padding:10px 12px;background:#fff;border-top:1px solid var(--border-glass)}.project-header-actions .btn,.project-header-actions .work-action-bar .btn{flex:1}.project-header-actions .work-action-bar{width:100%;flex-direction:row}.project-header-actions--inline .work-action-bar{flex-wrap:wrap}.project-header-actions--inline .btn{flex:1 1 140px;min-height:40px}.project-header-meta .business-line-change__action{min-height:28px;padding:2px 10px}.work-pane:has(.project-header-actions:not(.project-header-actions--inline)){padding-bottom:calc(126px + env(safe-area-inset-bottom,0px))}.project-overview-grid{grid-template-columns:minmax(0,1fr);gap:12px;padding:12px}.pipeline-stats{gap:8px}.pipeline-stat-value{font-size:var(--text-xl)}.pipeline-stat-of{font-size:var(--text-sm)}.pipeline-stat-label{font-size:var(--text-xs)}.room-list{margin:0 -16px}.room-row{flex-wrap:wrap;padding:12px 16px}.room-target{order:5;width:100%;padding-left:54px}.project-boq-row{flex-wrap:wrap;gap:8px 12px}.project-boq-info{flex:1 1 calc(100% - 80px)}.project-boq-progress{order:5;width:100%}}.kpi-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;padding:16px 20px 0}.kpi-card{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;padding:14px 16px;border:1px solid var(--border-glass);border-radius:var(--border-radius-lg);background:#fff;box-shadow:var(--shadow-card);font:inherit;color:inherit;text-align:left}button.kpi-card{cursor:pointer;transition:var(--transition-normal)}button.kpi-card:hover{border-color:var(--border-strong);background:var(--bg-subtle)}.kpi-card.is-active{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary);background:#fff}.kpi-card-label{font-size:var(--text-sm);font-weight:500;color:var(--text-secondary)}.kpi-card-value{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:600;line-height:1.15;color:var(--text-primary)}.kpi-card--info .kpi-card-value{color:var(--status-info-fg)}.kpi-card--success .kpi-card-value{color:var(--status-success-fg)}.kpi-card--warning .kpi-card-value{color:var(--status-warning-fg)}.kpi-card--danger .kpi-card-value{color:var(--status-danger-fg)}.kpi-card-hint{font-size:var(--text-xs);color:var(--text-muted)}.tone-dot--danger{background:var(--status-danger-solid)}.tone-dot--warning{background:var(--status-warning-solid)}.stage-bar-seg--danger{background:var(--status-danger-solid)}.dashboard{display:flex;flex-direction:column}.dashboard-head{padding:24px 20px 0}.dashboard-head h2{margin:0;font-size:var(--text-xl)}.dashboard-head p{margin:2px 0 0;color:var(--text-muted)}.dashboard>.glass-card{margin-top:16px}.dashboard-note{margin:0;font-size:var(--text-sm);color:var(--text-muted)}@media(max-width:767px){.kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px 12px 0}.kpi-card{padding:12px}.kpi-card-value{font-size:var(--text-xl)}.dashboard-head{padding:16px 12px 0}}.clickable-row:active,.attention-row--button:active,.room-row-open:active,.app-rail-item:active,.project-tabs-item:active{background:#eceef2}button.kpi-card:active{transform:scale(.98)}.login-page{background:var(--bg-app)}.login-card{padding:32px 28px 28px}.login-brand{display:flex;justify-content:center;margin-bottom:16px}.login-brand .app-rail-brand-mark{width:44px;height:44px;border-radius:12px;font-size:var(--text-lg)}.login-form input,.login-submit-btn{min-height:44px}.pc-overview-installer-row{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;max-width:100%}.pc-overview-installer-label{flex-shrink:0;font-size:var(--text-sm);font-weight:600;color:var(--text-muted)}.pc-overview-installer-label:after{content:":"}.pc-overview-installer-name{min-width:0;font-size:var(--text-md);font-weight:600}.pc-overview-installer-row .btn{flex-shrink:0}.pc-overview-installer-hint{margin:6px 0 0;padding:0}.product-identity{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 8px}.product-identity-name{font-weight:600;font-size:var(--text-md);color:var(--text-primary)}.product-identity-capacity,.product-identity-model{display:inline-flex;align-items:center;font-size:var(--text-xs);font-weight:600;line-height:1.3;padding:2px 8px;border-radius:999px}.product-identity-capacity{color:var(--primary-dark);background:var(--primary-soft);border:1px solid rgba(var(--primary-rgb),.28)}.product-identity-model{color:var(--text-secondary);background:var(--bg-subtle);border:1px solid var(--border-strong);letter-spacing:.04em;font-variant-numeric:tabular-nums}.project-boq-qty{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin-top:6px;width:auto;max-width:100%}.project-boq-status{margin:0;font-size:var(--text-sm);font-weight:650;color:var(--text-primary)}.project-boq-status--pending{color:var(--status-warning-fg)}.project-boq-status-meta,.project-boq-qty-rate{margin:0;font-size:var(--text-sm);color:var(--text-secondary)}.project-boq-progress-track{margin-top:8px;height:6px;border-radius:999px;background:rgba(var(--primary-rgb),.18);overflow:hidden;max-width:320px}.project-boq-progress-fill{height:100%;border-radius:999px;background:var(--primary);transition:var(--transition-normal)}.checklist-ticket-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.checklist-ticket-row .btn{width:auto;flex:0 0 auto}.checklist-item-actions .checklist-ticket-row{margin-left:auto}.installer-room-group.is-open{border-color:rgba(var(--primary-rgb),.35);background:#fff}.installer-room-group.is-complete{background:var(--status-success-bg);border-color:#05966959}.installer-room-group.is-complete .installer-room-header:hover{background:#05966914}
