:root{color-scheme:light;font-family:Segoe UI,system-ui,sans-serif;--bg-page: #e2e8f0;--bg-surface: #ffffff;--bg-muted: #f1f5f9;--bg-subtle: #e8eef5;--bg-inset: #dde4ee;--border: #b8c5d6;--border-strong: #94a3b8;--text: #0f172a;--text-secondary: #1e293b;--text-muted: #475569;--text-subtle: #64748b;--link: #2563eb;--link-hover: #1d4ed8;--primary: #2563eb;--primary-hover: #1d4ed8;--secondary-bg: #cbd5e1;--secondary-text: #1e293b;--success: #15803d;--warning: #c2410c;--danger: #dc2626;--shadow-sm: 0 1px 3px rgba(15, 23, 42, .1), 0 0 0 1px rgba(15, 23, 42, .04);--shadow-md: 0 10px 28px rgba(15, 23, 42, .12), 0 0 0 1px rgba(15, 23, 42, .05);--shadow-tile: 0 6px 18px rgba(15, 23, 42, .16);--shadow-panel: 0 2px 8px rgba(15, 23, 42, .08), 0 0 0 1px rgba(15, 23, 42, .06);background:var(--bg-page);color:var(--text)}*{box-sizing:border-box}html{overflow-x:clip}body{margin:0;min-height:100vh;overflow-x:clip;max-width:100%}a{color:inherit;text-decoration:none}.keep-alive-root{display:block;min-height:0}.keep-alive-panel[hidden]{display:none!important}.app-loading{min-height:100vh;display:grid;place-items:center}.page-loading-placeholder{min-height:40vh}.login-page{min-height:100vh;display:grid;place-items:center;padding:1rem;background:linear-gradient(180deg,#f8fafc,#e2e8f0)}.login-card{width:min(400px,100%);background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;padding:2rem;box-shadow:var(--shadow-md)}.login-notice{margin:0 0 1rem;padding:.75rem 1rem;border-radius:8px;border:1px solid #93c5fd;background:#eff6ff;color:#1e3a8a;font-size:.9rem;line-height:1.45}.login-back{margin:0 0 1rem;font-size:.9rem}.login-back a{color:var(--link)}.login-back a:hover{color:var(--link-hover);text-decoration:underline}.login-card h1{margin:0 0 .5rem}.public-landing{min-height:100vh;background:linear-gradient(165deg,#f0f9ff,#e2e8f0 45%,#f8fafc);color:var(--text)}.landing-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;max-width:1100px;margin:0 auto}.landing-brand{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:1.15rem;color:var(--text)}.landing-brand-icon{font-size:1.35rem}.landing-header-cta{flex-shrink:0}.landing-hero{padding:2.5rem 1.5rem 3.5rem}.landing-hero-inner{max-width:720px;margin:0 auto;text-align:center}.landing-eyebrow{margin:0 0 .75rem;font-size:.85rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#0369a1}.landing-hero h1{margin:0 0 1rem;font-size:clamp(1.85rem,4.5vw,2.75rem);line-height:1.15;font-weight:800;letter-spacing:-.02em}.landing-hero-accent{display:block;color:#2563eb}.landing-hero-lead{margin:0 auto 1.75rem;max-width:36rem;font-size:1.1rem;line-height:1.55;color:var(--text-muted)}.landing-hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.landing-btn-lg{padding:.7rem 1.35rem;font-size:1rem}.landing-section{max-width:1100px;margin:0 auto;padding:2.5rem 1.5rem}.landing-section h2{margin:0 0 .5rem;font-size:1.65rem;text-align:center}.landing-section-lead{text-align:center;max-width:40rem;margin:0 auto 2rem}.landing-features{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}.landing-feature-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;padding:1.35rem 1.25rem;box-shadow:var(--shadow-sm);border-top:3px solid var(--feature-accent, #2563eb)}.landing-feature-icon{font-size:1.75rem;display:block;margin-bottom:.5rem}.landing-feature-card h3{margin:0 0 .4rem;font-size:1.1rem}.landing-feature-card p{margin:0;font-size:.92rem;line-height:1.45}.landing-benefits{background:#ffffff8c;border-radius:16px;margin:0 1rem 1rem;max-width:calc(1100px - 2rem)}.landing-benefits-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start}@media(max-width:768px){.landing-benefits-grid{grid-template-columns:1fr}.landing-hero-accent{display:inline}}.landing-benefit-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.65rem}.landing-benefit-list li{padding-left:1.5rem;position:relative;line-height:1.45;color:var(--text-secondary)}.landing-benefit-list li:before{content:"✓";position:absolute;left:0;color:#15803d;font-weight:700}.landing-praise{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin-top:1.5rem}.landing-praise-card{margin:0;padding:1.25rem;background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-sm)}.landing-praise-card p{margin:0 0 .75rem;font-size:1rem;line-height:1.5;font-style:italic;color:var(--text-secondary)}.landing-praise-card footer{font-size:.85rem}.landing-cta-panel{text-align:center;background:linear-gradient(135deg,#1e40af,#2563eb 55%,#0ea5e9);color:#fff;border-radius:16px;margin-bottom:2rem;box-shadow:var(--shadow-md)}.landing-cta-panel h2{color:#fff}.landing-cta-panel .muted,.landing-cta-text{color:#ffffffe6!important;max-width:36rem;margin-left:auto;margin-right:auto}.landing-cta-panel .btn-primary{background:#fff;color:#1e40af;border:none;margin-top:.5rem}.landing-cta-panel .btn-primary:hover{background:#f1f5f9;color:#1e3a8a}.landing-footer{text-align:center;padding:1.5rem;font-size:.85rem;border-top:1px solid var(--border)}.login-card form{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem}.login-card-wide{width:min(440px,100%)}.login-footer-actions{margin:1.25rem 0 0;text-align:center;font-size:.9rem}.btn-block{width:100%;justify-content:center}.password-change-panel{max-width:28rem;margin:2rem auto}label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;color:var(--text-secondary);min-width:0;max-width:100%}label input,label select,label textarea{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.field-block{display:flex;flex-direction:column;gap:.35rem;min-width:0;max-width:100%}input,select,textarea{padding:.65rem .75rem;border-radius:8px;border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--text);box-sizing:border-box}input:focus,textarea:focus,select:focus{outline:2px solid rgba(37,99,235,.25);border-color:var(--primary)}button[type=submit]{padding:.75rem;border:0;border-radius:8px;background:var(--primary);color:#fff;font-weight:600;cursor:pointer}button[type=submit]:hover{background:var(--primary-hover)}button[type=submit]:disabled{opacity:.6;cursor:wait}.muted{color:var(--text-muted);font-size:.9rem}.error{color:var(--danger);margin:0}.dashboard{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:var(--bg-surface);border-bottom:2px solid var(--border-strong);box-shadow:var(--shadow-sm)}.brand{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:1.1rem;color:var(--text)}.topbar-actions{display:flex;align-items:center;gap:1.25rem;color:var(--text-secondary);min-height:2rem}.topbar-actions-group{display:inline-flex;align-items:center;gap:.75rem;min-height:2rem}.topbar-actions-gba{padding-right:1.25rem;border-right:1px solid var(--border)}.topbar-actions-user{gap:.75rem}.topbar-user-name{font-size:.9rem;font-weight:500;line-height:1;color:var(--text-secondary);white-space:nowrap;text-decoration:none}.topbar-user-name:hover{color:var(--text);text-decoration:underline}.topbar-actions-sep{width:1px;height:1.1rem;background:var(--border);flex-shrink:0}.topbar-signout{line-height:1;padding:.35rem 0;white-space:nowrap}.topbar-license-btn{display:inline-flex;align-items:center;gap:.4rem;margin:0;padding:.35rem .55rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-muted);color:var(--text-secondary);font-size:.85rem;font-weight:500;line-height:1;cursor:pointer;white-space:nowrap}.topbar-license-btn:hover,.topbar-license-btn:focus-visible{border-color:var(--link);color:var(--link);outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--link) 20%,transparent)}.topbar-license-btn-icon{display:inline-flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;font-size:.9rem;line-height:1}.topbar-license-btn--trial{border-color:color-mix(in srgb,#0f766e 35%,var(--border));background:color-mix(in srgb,#0f766e 8%,var(--bg-muted))}.topbar-license-btn-badge{padding:.1rem .4rem;border-radius:999px;background:color-mix(in srgb,#0f766e 15%,var(--bg-surface));color:#0f766e;font-size:.75rem;font-weight:600}.license-status-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:flex;align-items:flex-start;justify-content:center;padding:1.25rem;overflow-y:auto;background:#0f172a73}.license-status-dialog{width:min(960px,100%);max-height:calc(100vh - 2.5rem);overflow:auto;margin:auto 0}.license-status-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.75rem;position:sticky;top:0;z-index:1;background:inherit;padding-bottom:.35rem}.license-status-dialog-head h2{margin:0;font-size:1.15rem}.topbar-actions .ui-tooltip{display:inline-flex;align-items:center;line-height:1}.topbar .ui-tooltip-top .ui-tooltip-bubble{top:calc(100% + 10px);bottom:auto;transform:translate(-50%) translateY(-4px)}.topbar .ui-tooltip-top .ui-tooltip-bubble:after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:#0f172a}@media(hover:hover)and (pointer:fine){.topbar .ui-tooltip-top:hover .ui-tooltip-bubble,.topbar .ui-tooltip-top:focus-within .ui-tooltip-bubble{transform:translate(-50%) translateY(0)}}.topbar .ui-tooltip-open .ui-tooltip-bubble{transform:translate(-50%) translateY(0)}.topbar-gba{gap:.45rem;align-items:center;line-height:1}.topbar-gba-icon{width:1rem;height:1rem;color:var(--text-muted)}.topbar-gba:has(.toggle-switch-input:checked) .topbar-gba-icon{color:var(--primary)}.topbar-gba .toggle-switch-icon{display:inline-flex;align-items:center;line-height:0}.topbar-gba .toggle-switch-track{width:2rem;height:1.1rem;margin-top:0}.topbar-gba .toggle-switch-thumb{width:.72rem;height:.72rem;top:1px;left:1px}.topbar-gba .toggle-switch-input:checked+.toggle-switch-track .toggle-switch-thumb{transform:translate(.85rem)}.link-btn{background:none;border:0;color:var(--link);cursor:pointer;font:inherit}.link-btn:hover{color:var(--link-hover)}.link-btn:disabled{opacity:.6;cursor:wait}.main{flex:1;padding:1.5rem;max-width:1100px;margin:0 auto;width:100%}.page-stack{display:flex;flex-direction:column;gap:1.25rem}.subtitle{margin:0 0 1.5rem;color:var(--text-muted)}.search-box{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:12px;padding:1.25rem;margin-bottom:1.5rem;box-shadow:var(--shadow-panel)}.search-box h2{margin:0 0 .25rem;font-size:1rem}.search-box input{width:100%;margin-top:.75rem;padding:.75rem;border-radius:8px;border:1px solid var(--border-strong);background:var(--bg-surface);color:inherit}.quick-search-status{margin:.65rem 0 0;font-size:.9rem}.quick-search-results{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.35rem;max-height:320px;overflow:auto}.quick-search-results li{border:1px solid var(--border-strong);border-radius:8px;background:var(--bg-subtle)}.quick-search-results .report-link{display:block;padding:.65rem .75rem;text-decoration:none;color:inherit}.quick-search-results .report-link:hover{background:var(--bg-inset)}.quick-search-unlinked{padding:.65rem .75rem}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;margin-bottom:1.5rem}.tile{aspect-ratio:1;border-radius:12px;padding:1rem;display:flex;flex-direction:column;justify-content:flex-end;gap:.35rem;color:#fff;font-size:.85rem;transition:transform .15s,box-shadow .15s;box-shadow:var(--shadow-tile)}.tile:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0f172a29}.tile strong{font-size:1rem}.tile-menu-path{font-size:.72rem;opacity:.88;line-height:1.3;margin-bottom:auto;padding-bottom:.35rem}.btn-block{width:100%}.panel{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:12px;padding:1.25rem;box-shadow:var(--shadow-panel);min-width:0;max-width:100%}.panel+.panel{margin-top:0}.panel h2{margin:0 0 1rem;font-size:1rem;color:var(--text);padding-bottom:.65rem;border-bottom:2px solid var(--bg-inset)}.report-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.report-list li{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:stretch;padding:0;background:var(--bg-subtle);border:1px solid var(--border-strong);border-radius:10px;box-shadow:0 1px 2px #0f172a0f;transition:border-color .15s ease,box-shadow .15s ease}.report-list.report-list-modern li:hover{border-color:#cbd5e1;box-shadow:0 4px 12px #0f172a14}.report-list-row-pro{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;min-width:0;padding:.85rem 1rem}.report-list-row-aside{display:flex;flex-direction:column;align-items:flex-end;gap:.4rem;flex-shrink:0}.report-status-menu-trigger{font-weight:600;border:none;cursor:pointer}.report-status-menu-panel{min-width:11rem;padding:.35rem}.report-status-menu-title{margin:.25rem .5rem .35rem;font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.report-status-menu-item{display:block;width:100%;text-align:left;padding:.45rem .65rem;border:none;border-radius:6px;background:transparent;color:inherit;font:inherit;cursor:pointer}.report-status-menu-item:hover,.report-status-menu-item.active{background:var(--bg-inset)}.subscriber-portal-visibility-field label{display:flex;flex-direction:column;gap:.35rem}.subscriber-portal-visibility-hint{margin:.35rem 0 0;font-size:.85rem}.report-list-item{display:flex;justify-content:space-between;align-items:center;gap:1rem;width:100%}.report-list-item strong{display:block}.report-list-item .muted{display:block;font-size:.85rem}.report-list li.report-list-row-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem}.report-list li.report-list-row-actions>div:first-child{flex:1 1 12rem;min-width:0}.report-list li.report-list-row-actions>div:first-child strong{display:block}.report-list li.report-list-row-actions>div:first-child .muted{display:block;font-size:.85rem;margin-top:.15rem}.report-list li.report-list-row-actions .inline-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem;flex-shrink:0}.inline-check{flex-direction:row;align-items:center;gap:.5rem}.checkbox-grid{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem}.chip-grid{display:flex;flex-wrap:wrap;gap:.5rem}.chip{display:inline-flex;align-items:center;padding:.45rem .75rem;border-radius:999px;border:1px solid var(--border-strong);background:var(--bg-surface);cursor:pointer;font-size:.9rem;color:var(--text-secondary)}.chip input{display:none}.chip-active{border-color:var(--primary);background:#eff6ff;color:#1d4ed8}.module-placeholder{border:1px dashed var(--border-strong);border-radius:8px;padding:1rem;margin-bottom:.75rem;background:var(--bg-muted)}.badge{font-size:.75rem;padding:.2rem .5rem;border-radius:999px;background:var(--secondary-bg);color:var(--text-secondary);text-transform:none}.badge-scheduled{background:#dbeafe;color:#1d4ed8}.badge-draft{background:#fef3c7;color:#b45309}.badge-delegated{background:#e0e7ff;color:#4338ca}.badge-in_progress{background:#fef3c7;color:#b45309}.badge-completed{background:#dcfce7;color:#15803d}.badge-billed_partner{background:#ede9fe;color:#6d28d9}.badge-billed_customer{background:#ccfbf1;color:#0f766e}.brand-link{display:flex;align-items:center;gap:.5rem}.page-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;padding:1rem 1.1rem;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:12px;box-shadow:var(--shadow-panel);overflow:visible}.page-header h1{margin:.25rem 0;color:var(--text);font-size:1.35rem;font-weight:600;line-height:1.35}.page-header-actions{display:inline-flex;flex-wrap:nowrap;gap:.35rem;align-items:center;flex-shrink:0;overflow:visible}.action-toolbar{gap:.35rem}.action-toolbar.work-report-status-badges{flex-wrap:wrap}.customer-billing-actions{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem}.customer-billing-hint{margin:0;font-size:.82rem}.action-toolbar-sep{width:1px;height:1.35rem;background:var(--border);margin:0 .15rem}.ui-icon{width:1.05rem;height:1.05rem;display:block;flex-shrink:0}.icon-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:2.15rem;height:2.15rem;padding:0;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;text-decoration:none;line-height:0;transition:background .15s ease,border-color .15s ease,color .15s ease}.icon-btn:hover:not(:disabled){background:var(--bg-subtle);border-color:var(--border);color:var(--text)}.icon-btn:disabled{opacity:.55;cursor:not-allowed}.icon-btn-danger{color:#b91c1c;border-color:#fecaca;background:#fff}.icon-btn-danger:hover:not(:disabled){background:#fef2f2;border-color:#fca5a5;color:#991b1b}.icon-btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.icon-btn-primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover);color:#fff}.status-badge{display:inline-flex;align-items:center;gap:.35rem;height:2.15rem;padding:0 .7rem;border-radius:999px;font-size:.78rem;font-weight:600;line-height:1;white-space:nowrap;border:1px solid transparent}.status-badge-icon{width:.95rem;height:.95rem}.status-badge-draft{background:#fef9c3;color:#854d0e;border-color:#fde047}.status-badge-delegated{background:#eef2ff;color:#4338ca;border-color:#c7d2fe}.status-badge-scheduled{background:#dbeafe;color:#1d4ed8;border-color:#93c5fd}.status-badge-in_progress{background:#ffedd5;color:#c2410c;border-color:#fdba74}.status-badge-completed{background:#dcfce7;color:#15803d;border-color:#86efac}.status-badge-billed_partner{background:#ede9fe;color:#6d28d9;border-color:#c4b5fd}.status-badge-billed_customer{background:#ccfbf1;color:#0f766e;border-color:#5eead4}.page-header-actions .ui-tooltip{display:inline-flex;align-items:center;line-height:0}.breadcrumb{margin:0;font-size:.85rem;color:var(--text-muted)}.breadcrumb a,.breadcrumb-link{color:var(--link);background:none;border:none;padding:0;font:inherit;cursor:pointer;text-decoration:underline}.breadcrumb a:hover,.breadcrumb-link:hover{color:var(--link-hover)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.6rem 1rem;border-radius:8px;border:1px solid transparent;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--bg-surface);color:var(--secondary-text);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.btn-secondary:hover{background:var(--bg-subtle);border-color:#64748b}.btn-danger{background:#fff;border-color:#fecaca;color:var(--danger)}.btn-danger:hover{background:#fef2f2;border-color:var(--danger)}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap;padding:.85rem 1rem;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:10px;box-shadow:var(--shadow-sm)}.toolbar .ui-tooltip{display:inline-flex;align-items:center;line-height:1}.toolbar-right{display:inline-flex;align-items:center;gap:.65rem;flex-wrap:wrap;margin-left:auto;justify-content:flex-end}.toolbar-filters{display:inline-flex;align-items:center;gap:.35rem;flex-wrap:wrap}.toolbar-filter{display:inline-flex;align-items:center;gap:.3rem;margin:0;height:2rem;padding:0 .45rem 0 .5rem;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg-surface)}.toolbar-filter-prefix{font-size:.72rem;font-weight:700;letter-spacing:.02em;color:var(--text-muted);white-space:nowrap}.toolbar-filter select{height:1.65rem;min-width:0;max-width:7.5rem;padding:0 .15rem 0 0;border:0;background:transparent;color:var(--text-secondary);font-size:.78rem;font-weight:600;cursor:pointer}.toolbar-filter select:focus-visible{outline:none}.toolbar-filter:focus-within{border-color:var(--primary);box-shadow:0 0 0 2px #2563eb26}.toolbar-filter-clear{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg-surface);color:var(--text-muted);font-size:1.1rem;line-height:1;cursor:pointer}.toolbar-filter-clear:hover{background:var(--bg-subtle);color:var(--text)}.toolbar-popover-anchor{position:relative;display:inline-flex;align-items:center}.toolbar-popover-panel{position:absolute;z-index:120;top:calc(100% + .35rem);min-width:12.5rem;max-width:calc(100vw - 2rem);background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:10px;box-shadow:var(--shadow-md)}.page-header-actions .toolbar-popover-panel{left:0;right:auto}.toolbar-right .toolbar-popover-panel{left:auto;right:0}@media(min-width:901px){.page-header-actions .toolbar-popover-panel{left:auto;right:0}}.toolbar-action-menu{display:flex;flex-direction:column;gap:.1rem;padding:.35rem}.toolbar-action-menu a{display:block;padding:.65rem .85rem;border-radius:8px;font-weight:600;font-size:.9rem;color:var(--text-secondary);white-space:nowrap}.toolbar-action-menu a:hover{background:var(--bg-subtle);color:var(--text)}.toolbar-action-menu-primary{color:var(--primary)}.toolbar-filter-popover{min-width:min(18rem,calc(100vw - 2.5rem));max-width:20rem;padding:.85rem}.toolbar-filter-popover-title{margin:0 0 .65rem;font-size:.85rem;font-weight:700;color:var(--text-muted)}.toolbar-filter-popover label{display:flex;flex-direction:column;gap:.35rem;margin:0 0 .75rem;font-size:.85rem;font-weight:600;color:var(--text-secondary)}.toolbar-filter-popover select{width:100%;min-height:2.5rem;padding:.5rem .65rem;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg-surface);font-size:.95rem;font-weight:500;color:var(--text)}.toolbar-filter-hint{font-size:.75rem;font-weight:400;line-height:1.35}.toolbar-filter-popover-clear{width:100%;margin-top:.15rem}.icon-btn-active{border-color:var(--primary);color:var(--primary)}.icon-btn-badge{position:absolute;top:.18rem;right:.18rem;width:.5rem;height:.5rem;border-radius:50%;background:var(--primary);border:2px solid var(--bg-surface);pointer-events:none}.tabs{display:flex;gap:.5rem;flex-wrap:wrap}.tab{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border-strong);border-radius:8px;padding:.5rem .9rem;cursor:pointer;box-shadow:var(--shadow-sm)}.tab:hover{background:var(--bg-subtle)}.tab.active{background:var(--primary);border-color:var(--primary);color:#fff}.tab-link{display:inline-block;text-decoration:none}.perm-module-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;margin-top:.5rem}.perm-module-grid label{gap:.35rem}.perm-module-grid select{padding:.55rem .65rem;border-radius:8px;border:1px solid var(--border-strong);background:var(--bg-surface);color:inherit}.perm-branding-row{grid-column:1 / -1;margin-top:.25rem}.perm-dependency-note{margin:.35rem 0 .5rem;padding:.5rem .65rem;background:#eff6ff;border-radius:8px;border-left:3px solid var(--primary);color:#1e3a8a}.perm-readonly-note{color:var(--text-muted);font-size:.85rem}.perm-grid{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem;padding:.85rem;background:var(--bg-subtle);border:1px solid var(--border-strong);border-radius:8px;box-shadow:inset 0 1px 2px #0f172a0a}.partner-customer-picker{display:flex;flex-direction:column;gap:.65rem}.partner-customer-picker-summary{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;font-size:.9rem}.partner-customer-picker-badge{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:999px;font-size:.78rem;font-weight:600}.partner-customer-picker-badge.open{background:#ecfdf5;color:#047857;border:1px solid #6ee7b7}.partner-customer-picker-badge.restricted{background:#fff7ed;color:#c2410c;border:1px solid #fdba74}.partner-customer-picker-toolbar{display:flex;flex-direction:column;gap:.5rem}.partner-customer-picker-toolbar input[type=search]{width:100%}.partner-customer-picker-actions{display:flex;flex-wrap:wrap;gap:.45rem .55rem;align-items:center}.partner-customer-picker-filter{margin-left:auto}.partner-customer-picker-list{max-height:min(50vh,360px);overflow:auto;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg-surface)}.partner-customer-picker-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem .75rem;border-bottom:1px solid var(--border)}.partner-customer-picker-row:last-child{border-bottom:none}.partner-customer-picker-row:hover{background:var(--bg-subtle)}.partner-customer-picker-row.selected{background:#fff7ed}.partner-customer-picker-row-body{display:flex;flex-direction:column;gap:.15rem;min-width:0;flex:1}.partner-customer-picker-name{font-weight:600}.partner-customer-picker-meta{font-size:.82rem}.partner-customer-picker-empty{padding:1rem .75rem;margin:0}.logo-upload-section{display:flex;flex-direction:column;gap:.5rem}.field-label{font-size:.9rem}.logo-preview{margin-top:.25rem}.logo-preview img{max-height:80px;max-width:240px;object-fit:contain;background:#fff;padding:.5rem;border-radius:8px;border:1px solid var(--border)}.image-upload-btn{cursor:pointer;margin:0}.checkbox-inline{display:inline-flex;flex-direction:row;align-items:center;gap:.5rem;font-size:.9rem;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-inline input[type=checkbox]{width:1rem;height:1rem;margin:0;padding:0;flex-shrink:0;cursor:pointer}.toggle-switch{position:relative;display:inline-flex;flex-direction:row;align-items:flex-start;gap:.65rem;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-switch-disabled{opacity:.55;cursor:not-allowed}.toggle-switch-input{position:absolute;top:0;left:0;opacity:0;width:2.75rem;height:1.5rem;margin:0;cursor:pointer;z-index:1}.toggle-switch-track{position:relative;width:2.75rem;height:1.5rem;border-radius:999px;background:#cbd5e1;border:2px solid #94a3b8;transition:background .2s,border-color .2s;flex-shrink:0;margin-top:0;pointer-events:none}.toggle-switch-thumb{position:absolute;top:2px;left:2px;width:1rem;height:1rem;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0f172a40;transition:transform .2s}.toggle-switch-input:checked+.toggle-switch-track{background:var(--primary);border-color:var(--primary-hover)}.toggle-switch-input:checked+.toggle-switch-track .toggle-switch-thumb{transform:translate(1.2rem)}.toggle-switch-input:focus-visible+.toggle-switch-track{outline:2px solid rgba(37,99,235,.35);outline-offset:2px}.toggle-switch-label{font-size:.9rem;font-weight:600;color:var(--text-secondary);line-height:1}.toggle-grid,.form-toggle-row{display:flex;flex-wrap:wrap;gap:.85rem 1.5rem}.global-admin-badge{display:inline-flex;align-items:center;padding:.25rem .55rem;border-radius:999px;background:#fef9c3;color:#854d0e;font-size:.78rem;font-weight:700}.global-admin-panel{margin-bottom:1rem;border:1px solid #fde047;background:linear-gradient(180deg,#fffbeb,#fff)}.global-admin-panel-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.global-admin-panel-head h2{margin:0;font-size:1.05rem}.global-admin-panel-copy{margin:.2rem 0 0;font-size:.88rem}.management-gba-toggle{flex-shrink:0;width:auto;min-width:3.25rem}.management-gba-icon{width:1rem;height:1rem;color:#854d0e}.management-gba-toggle:has(.toggle-switch-input:checked) .management-gba-icon{color:#a16207}.global-admin-panel .toggle-switch{width:auto}.global-admin-panel-hint{margin:.35rem 0 0 3.4rem;font-size:.85rem}.global-admin-entity-table .uuid-cell{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;color:var(--text-secondary);word-break:break-all}.global-admin-selection-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-bottom:.65rem}.global-admin-entity-table .select-col{width:2.5rem;text-align:center;vertical-align:middle}.global-admin-select-all{display:inline-flex;align-items:center;justify-content:center;margin:0}.global-admin-entity-table input[type=checkbox]{width:1rem;height:1rem;margin:0;cursor:pointer}.global-admin-row-unselected{opacity:.55}.global-admin-page{display:flex;flex-direction:column;gap:1rem;max-width:56rem}.global-admin-toast{position:fixed;top:4.5rem;right:1rem;z-index:1300;display:flex;align-items:center;gap:.75rem;max-width:min(24rem,calc(100vw - 2rem));padding:.75rem 1rem;border-radius:10px;border:1px solid var(--border-strong);box-shadow:0 8px 24px #0f172a1f;font-size:.92rem;font-weight:500}.global-admin-toast--success{background:#ecfdf5;border-color:#6ee7b7;color:#065f46}.global-admin-toast--error{background:#fef2f2;border-color:#fca5a5;color:#991b1b}.global-admin-toast-close{margin:0;padding:0 .15rem;border:none;background:transparent;color:inherit;font-size:1.25rem;line-height:1;cursor:pointer;opacity:.7}.global-admin-toast-close:hover{opacity:1}.global-admin-page-head{margin:0}.global-admin-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));gap:.5rem}.global-admin-nav-btn{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;padding:.75rem .9rem;border:1px solid var(--border-strong);border-radius:10px;background:var(--bg-surface);color:var(--text);text-align:left;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.global-admin-nav-btn:hover{border-color:#93c5fd;background:#f8fafc}.global-admin-nav-btn.active{border-color:#2563eb;background:linear-gradient(180deg,#eff6ff,#fff);box-shadow:var(--shadow-sm)}.global-admin-nav-label{font-weight:700;font-size:.92rem}.global-admin-nav-desc{font-size:.78rem;color:var(--text-muted);line-height:1.35}.global-admin-section-intro{margin:0;font-size:.9rem}.global-admin-section{display:flex;flex-direction:column;gap:1rem}.global-admin-block{margin:0}.global-admin-block h2{margin:0 0 .5rem;font-size:1.05rem}.global-admin-form-actions{margin-top:.25rem}.global-admin-full-width{grid-column:1 / -1}.global-admin-inline-action{display:flex;align-items:flex-end;padding-bottom:.1rem}.global-admin-stats-list{list-style:none;margin:.75rem 0 0;padding:0;display:grid;gap:.45rem}.global-admin-stats-list li{display:flex;justify-content:space-between;gap:1rem;padding:.55rem .75rem;border:1px solid var(--border);border-radius:8px;background:#f8fafc}.global-admin-stats-name{font-weight:600}.global-admin-stats-count{color:var(--text-muted);font-size:.88rem;white-space:nowrap}.global-admin-company-row{align-items:center}.global-admin-company-row-main{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .75rem;min-width:0}.global-admin-company-slug{font-size:.85rem}.global-admin-delete-dialog{max-width:32rem}.global-admin-delete-impact{margin:.5rem 0 0;padding-left:1.1rem}.global-admin-delete-confirm-label{display:block;margin-top:.75rem}.global-admin-delete-confirm-label input{display:block;width:100%;margin-top:.35rem}.global-admin-delete-emails{font-size:.85rem;word-break:break-word}.global-admin-footnote{margin-top:.85rem;font-size:.85rem}.global-admin-audit-filters{margin-bottom:.75rem}.global-admin-audit-table-wrap{overflow-x:auto;margin-top:.5rem}.global-admin-audit-table{font-size:.92rem}.global-admin-audit-table code{font-size:.85rem}.global-admin-backup-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.global-admin-backup-list{list-style:none;margin:0;padding:0;display:grid;gap:.65rem}.global-admin-backup-row{border:1px solid var(--border);border-radius:10px;padding:.75rem .85rem;background:var(--bg-muted)}.global-admin-backup-row-main{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .75rem}.global-admin-backup-row-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.global-admin-restore-confirm{margin-top:.75rem;padding:.75rem;background:var(--bg-surface)}.global-admin-registry-form{margin-top:.5rem}@media(max-width:640px){.global-admin-nav{grid-template-columns:1fr}.global-admin-duplicate-group-head{flex-direction:column;align-items:stretch}.global-admin-duplicate-group-head .btn{width:100%}.global-admin-selection-bar{flex-direction:column;align-items:stretch}.global-admin-selection-bar .btn-sm{width:100%}}.btn-sm{padding:.4rem .75rem;font-size:.86rem;line-height:1.25;white-space:nowrap}.user-card-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.user-card{display:grid;grid-template-columns:minmax(240px,1.2fr) minmax(220px,1.4fr) 160px auto;gap:1rem;align-items:start;padding:1rem 1.1rem;border:1px solid var(--border-strong);border-radius:12px;background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:var(--shadow-sm)}.user-card-main{display:flex;flex-direction:column;gap:.45rem}.user-field-row{display:grid;grid-template-columns:5.5rem 1fr;gap:.5rem;align-items:center}.user-field-label{font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.user-field-input{width:100%;min-width:0}.user-field-value{word-break:break-word}.user-save-btn{align-self:flex-start;margin-top:.15rem}.user-company-filter{display:grid;gap:.35rem;max-width:320px;margin:.75rem 0 1rem}.user-card-toggles{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;padding-top:.15rem}.user-card-actions{display:flex;justify-content:flex-end;padding-top:.15rem}.user-role-select{min-width:140px}.collapsible-section{border:2px solid var(--border-strong);border-radius:12px;overflow:hidden;background:#fff;box-shadow:var(--shadow-panel)}.collapsible-open.collapsible-section{overflow:visible}.collapsible-open.collapsible-section:has(.registry-combobox--open){position:relative;z-index:40}.collapsible-form{border-color:#64748b}.collapsible-header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.95rem 1.1rem;border:0;background:linear-gradient(180deg,#f8fafc,#eef2f7);cursor:pointer;text-align:left;font:inherit;color:var(--text)}.collapsible-header:hover{background:linear-gradient(180deg,#fff,#f1f5f9)}.collapsible-title{font-size:1.05rem;font-weight:700}.collapsible-chevron,.huolto-module-chevron,.huolto-part-chevron{width:.65rem;height:.65rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .2s;flex-shrink:0;opacity:.75}.collapsible-open .collapsible-chevron,.huolto-module-open .huolto-module-chevron,.huolto-part-open .huolto-part-chevron{transform:rotate(-135deg);margin-top:.2rem}.collapsible-body{padding:1rem 1.1rem 1.2rem;display:grid;gap:.85rem;border-top:1px solid var(--border);background:#fff}.maintenance-form .collapsible-body{gap:1rem}.module-toggle-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.65rem}.module-toggle-card{padding:.75rem .85rem;border-radius:10px;border:2px solid var(--module-border, #94a3b8);background:#fff}.module-toggle-card-active{background:var(--module-bg, #eff6ff);box-shadow:inset 0 0 0 1px var(--module-border, #93c5fd)}.maintenance-form label{font-weight:600;color:#0f172a}.maintenance-form input,.maintenance-form select,.maintenance-form textarea{border:2px solid #64748b;background:#fff;color:#0f172a}.maintenance-form input:disabled,.maintenance-form select:disabled,.maintenance-form textarea:disabled{background:#f1f5f9;border-color:#94a3b8}.maintenance-form .info-box,.maintenance-form .radio-group{border-width:2px;border-color:#64748b}.maintenance-form .chip{border-width:2px}.maintenance-form .chip-active{border-color:var(--primary);box-shadow:0 0 0 1px #2563eb26}@media(max-width:900px){.user-card{grid-template-columns:1fr}}.report-list>li>.report-link{flex:1 1 100%;min-width:0}.report-link{display:flex;justify-content:space-between;align-items:center;gap:1rem;width:100%;min-width:0;text-decoration:none;color:inherit}.report-link .badge{flex-shrink:0}.report-link-badges{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem;flex-shrink:0}.report-link-badges .badge{white-space:nowrap}.work-report-status-badges.report-link-badges{flex-direction:column;align-items:flex-end}.report-link-body,.report-link-main{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.report-link-body strong,.report-link-main strong{display:block}.report-link-body .muted,.report-link-main .muted{display:block;font-size:.85rem}.pending-work-orders-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 1.25rem;margin-bottom:1.25rem;padding:1rem 1.25rem;border-radius:10px;border:1px solid #93c5fd;background:linear-gradient(135deg,#eff6ff,#dbeafe);box-shadow:0 1px 3px #2563eb1f}.pending-work-orders-banner__content{flex:1 1 14rem;min-width:0}.pending-work-orders-banner__title{display:block;font-size:1.05rem;color:#1e3a8a}.pending-work-orders-banner__hint{margin:.35rem 0 0}.dashboard-trial-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 1.25rem;margin-bottom:1.25rem;padding:1rem 1.25rem;border-radius:10px;border:1px solid #5eead4;background:linear-gradient(135deg,#f0fdfa,#ccfbf1);box-shadow:0 1px 3px #0f766e1f}.dashboard-trial-banner__content{flex:1 1 14rem;min-width:0}.dashboard-trial-banner__content strong{display:block;color:#0f766e;font-size:1.05rem}.dashboard-trial-banner__content p{margin:.35rem 0 0}.dashboard-welcome-card{margin-bottom:1.25rem;padding:1.15rem 1.25rem;border-radius:12px;border:1px solid #c7d2fe;background:linear-gradient(135deg,#fff,#eef2ff);box-shadow:0 1px 4px #4f46e51a}.dashboard-welcome-card__head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem 1rem;margin-bottom:.85rem}.dashboard-welcome-card__head h2{margin:0 0 .25rem;font-size:1.15rem;color:#312e81}.dashboard-welcome-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.65rem}.dashboard-welcome-step{display:flex;gap:.75rem;align-items:flex-start;padding:.65rem .75rem;border-radius:8px;background:#ffffffbf;border:1px solid #e0e7ff}.dashboard-welcome-step.is-done{opacity:.72;border-color:#bbf7d0;background:#f0fdf4}.dashboard-welcome-step__marker{flex-shrink:0;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;font-weight:700;color:#4338ca}.dashboard-welcome-step.is-done .dashboard-welcome-step__marker{color:#15803d}.dashboard-welcome-step__body{display:flex;flex-direction:column;gap:.15rem;min-width:0}.dashboard-welcome-step__link{font-weight:600;color:#3730a3;text-decoration:none}.dashboard-welcome-step__link:hover{text-decoration:underline}.empty-state-callout{margin-bottom:1.25rem;padding:1.15rem 1.25rem;border-radius:10px;border:1px dashed #94a3b8;background:#f8fafc}.empty-state-callout strong{display:block;font-size:1.05rem;margin-bottom:.35rem}.empty-state-callout-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:.85rem}.onboarding-demo-panel{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 1.25rem;margin-bottom:1.25rem;padding:1rem 1.25rem;border-radius:10px;border:1px dashed #94a3b8;background:#f8fafc}.onboarding-demo-panel-active{border-style:solid;border-color:#fcd34d;background:linear-gradient(135deg,#fffbeb,#fef3c7)}.onboarding-demo-panel__content{flex:1 1 14rem;min-width:0}.onboarding-demo-panel__content strong{display:block;margin-bottom:.25rem}.onboarding-demo-panel__actions{display:flex;flex-wrap:wrap;gap:.5rem}.onboarding-demo-message{margin:.5rem 0 0;color:#15803d}.badge-demo{margin-left:.45rem;background:#fef3c7;color:#92400e;border:1px solid #fcd34d}.panel-section-spaced{margin-bottom:1.25rem}.report-meta-row{display:flex;flex-wrap:wrap;gap:.35rem 1rem;font-size:.85rem;color:var(--text-secondary)}.report-meta-row em{font-style:normal;color:var(--text-muted)}.calendar-meta{font-size:.75rem;color:var(--link)}.calendar-nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.75rem}.calendar-day{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;min-height:140px;display:flex;flex-direction:column}.calendar-day-head{padding:.5rem .65rem;border-bottom:1px solid var(--border);font-size:.85rem;color:var(--text-muted);background:var(--bg-muted)}.calendar-day-body{padding:.5rem;display:flex;flex-direction:column;gap:.5rem}.calendar-event{display:flex;flex-direction:column;gap:.15rem;padding:.5rem;border-radius:6px;background:var(--bg-subtle);border:1px solid var(--border);font-size:.8rem}.calendar-event strong{font-size:.85rem}.work-report-calendar-panel{overflow:hidden}.work-report-calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,300px);gap:1rem;align-items:start}.work-report-calendar-sidebar{position:sticky;top:.75rem;max-height:calc(100vh - 8rem);overflow:auto;padding:.85rem 1rem}.work-report-calendar-sidebar h3{margin:0 0 .75rem;font-size:1rem}.work-report-calendar-sidebar-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.work-report-calendar-sidebar-item{display:flex;flex-direction:column;gap:.15rem;padding:.55rem .65rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-muted);text-decoration:none;color:inherit}.work-report-calendar-sidebar-item:hover{border-color:var(--primary)}.work-report-schedule-details summary{cursor:pointer;font-weight:600}@media(max-width:960px){.work-report-calendar-layout{grid-template-columns:1fr}.work-report-calendar-sidebar{position:static;max-height:none}}.work-report-calendar-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-bottom:1rem}.work-report-calendar-legend{font-size:.82rem}.calendar-day-hours{margin-left:auto;font-size:.75rem;color:var(--text-muted);font-weight:600}.calendar-day.outside-month .calendar-day-head{opacity:.55}.calendar-grid-month{grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-day-body-month{min-height:5.5rem;padding:.15rem}.calendar-timeline{display:grid;grid-template-columns:2rem 1fr;gap:.35rem;min-height:12rem}.calendar-timeline-axis{display:flex;flex-direction:column;justify-content:space-between;font-size:.68rem;color:var(--text-muted);padding:.15rem 0}.calendar-timeline-track{position:relative;height:12rem;min-height:12rem;border-left:1px solid var(--border);background:linear-gradient(to bottom,transparent 0,transparent calc(50% - .5px),var(--border) calc(50% - .5px),var(--border) calc(50% + .5px),transparent calc(50% + .5px),transparent 100%)}.calendar-timeline-event{position:absolute;box-sizing:border-box;display:flex;flex-direction:column;gap:.1rem;padding:.35rem .45rem;border-radius:6px;border:1px solid var(--border-strong);text-decoration:none;color:inherit;font-size:.72rem;line-height:1.25;overflow:hidden;box-shadow:var(--shadow-sm);cursor:pointer;z-index:1;transition:box-shadow .15s ease,transform .15s ease,z-index 0s}.calendar-timeline-event strong{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-timeline-meta{color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-timeline-event:hover,.calendar-timeline-event:focus-visible{z-index:5;box-shadow:var(--shadow-md);transform:translateY(-1px);outline:2px solid rgba(15,23,42,.18);outline-offset:1px}.calendar-event-tooltip{display:none;position:absolute;left:50%;bottom:calc(100% + .35rem);transform:translate(-50%);min-width:11rem;max-width:16rem;padding:.45rem .55rem;border-radius:8px;background:#0f172a;color:#f8fafc;font-size:.68rem;line-height:1.35;box-shadow:var(--shadow-md);pointer-events:none;z-index:20}.calendar-event-tooltip-line{display:block}.calendar-event-tooltip-line+.calendar-event-tooltip-line{margin-top:.2rem;padding-top:.2rem;border-top:1px solid rgba(248,250,252,.18)}.calendar-timeline-event:hover .calendar-event-tooltip,.calendar-timeline-event:focus-visible .calendar-event-tooltip,.calendar-month-block:hover .calendar-event-tooltip,.calendar-month-block:focus-visible .calendar-event-tooltip{display:block}.calendar-month-events{position:relative;height:4.5rem;min-height:4.5rem;border-left:1px solid var(--border);background:var(--bg-subtle);border-radius:4px}.calendar-month-block{position:absolute;box-sizing:border-box;display:block;border-radius:3px;border:1px solid rgba(15,23,42,.12);text-decoration:none;overflow:visible;cursor:pointer;z-index:1}.calendar-month-block-label{display:block;font-size:.58rem;line-height:1.1;padding:.1rem .15rem;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-month-block:hover,.calendar-month-block:focus-visible{outline:2px solid rgba(15,23,42,.22);z-index:5}@media(max-width:900px){.calendar-grid-month{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-timeline{min-height:10rem}.calendar-timeline-track{height:10rem;min-height:10rem}.calendar-month-events{height:4rem;min-height:4rem}}.form-grid{display:flex;flex-direction:column;gap:1.25rem;min-width:0;max-width:100%}.form-section{display:grid;gap:.85rem;padding:1rem 1rem 1.25rem;border:1px solid var(--border-strong);border-radius:10px;background:var(--bg-muted);box-shadow:inset 0 1px #ffffffd9;min-width:0;max-width:100%;overflow-x:clip}.panel.form-grid,.work-report-form{min-width:0;max-width:100%;overflow-x:clip}.form-section h2{margin:0 0 .35rem;font-size:1.05rem;color:var(--text);padding-bottom:.55rem;border-bottom:2px solid var(--border)}.form-actions{display:flex;gap:.75rem;justify-content:flex-end;flex-wrap:wrap}.leave-draft-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0f172a8c;pointer-events:auto}.leave-draft-dialog{width:min(100%,32rem);margin:0;position:relative;z-index:10001;pointer-events:auto}.leave-draft-dialog h2{margin:0 0 .5rem}.leave-draft-actions{display:flex;gap:.75rem;justify-content:flex-end;flex-wrap:wrap;margin-top:1rem}.quote-site-defaults-dialog{width:min(100%,36rem)}.quote-site-defaults-review{margin-bottom:1rem;border:2px solid var(--warning, #d97706);background:color-mix(in srgb,var(--warning, #d97706) 10%,var(--panel-bg, #fff))}.quote-site-defaults-review--highlight{animation:quote-site-defaults-pulse .6s ease-in-out 2}@keyframes quote-site-defaults-pulse{0%,to{box-shadow:0 0 0 0 transparent}50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--warning, #d97706) 35%,transparent)}}.quote-site-defaults-review-title{margin:0 0 .35rem;font-size:1.1rem}.quote-site-defaults-review-list{list-style:none;margin:1rem 0 0;padding:0;display:flex;flex-direction:column;gap:.65rem}.quote-site-defaults-review-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.5rem .65rem;border-radius:.35rem;background:color-mix(in srgb,var(--warning, #d97706) 6%,transparent)}.quote-site-defaults-review-check{display:flex;align-items:flex-start;gap:.5rem;cursor:pointer;flex:1 1 12rem}.quote-site-defaults-review-goto{margin-left:auto;flex-shrink:0;white-space:nowrap}.quote-field-focus-target{border-radius:8px;box-shadow:0 0 0 3px color-mix(in srgb,#f97316 45%,transparent);transition:box-shadow .2s ease}.quote-site-defaults-review-actions{margin-top:.85rem}.daily-log-dialog{width:min(100%,42rem);max-height:min(90vh,52rem);overflow-y:auto}.daily-log-dialog-hint{margin:0 0 .75rem;font-size:.9rem}.daily-log-calendar-hours-hint{display:block;margin-top:.35rem;font-size:.85rem;line-height:1.35}.daily-log-dialog-error{margin:.75rem 0 0}.action-status-overlay{z-index:10050}.action-status-dialog{width:min(100%,28rem)}.action-status-dialog-message{margin:0;line-height:1.45;white-space:pre-wrap}.action-status-dialog-loading{margin:.75rem 0 0}.action-status-dialog--success{border-top:4px solid #22c55e}.action-status-dialog--error{border-top:4px solid #ef4444}.action-status-dialog--warning{border-top:4px solid #f59e0b}.action-status-dialog--info,.action-status-dialog--loading{border-top:4px solid #3b82f6}.work-report-section{margin-bottom:.75rem}.work-report-section.collapsible-section{padding:0}.compact-section-head{justify-content:flex-end;margin-bottom:.75rem}.compact-detail-list{margin-bottom:.75rem}.detail-description-edit{display:grid;gap:.65rem}.detail-description-edit textarea{width:100%;min-height:5.5rem;resize:vertical}.detail-description-actions{display:flex;flex-wrap:wrap;gap:.5rem}.deleted-user-label{white-space:nowrap}.deleted-user-marker{color:#b45309;font-weight:700;margin-left:.05rem}.user-delete-panel{margin-top:1rem;padding:1rem;border:1px solid var(--border);border-radius:8px;background:var(--panel)}.user-delete-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.85rem}.global-admin-hint{margin-top:.5rem;padding:.65rem .85rem;border:1px solid #fde047;border-radius:8px;background:#fffbeb}.compact-daily-log-list li{padding:.65rem .75rem}.daily-log-summary{margin:.35rem 0 0;font-size:.92rem}.billing-rates-bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem;padding-bottom:.65rem;border-bottom:1px solid var(--border)}.compact-option{display:inline-flex;flex-direction:row;align-items:center;gap:.35rem;margin:0;font-size:.82rem;font-weight:600;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.compact-option input[type=checkbox]{width:.9rem;height:.9rem;margin:0;cursor:pointer}.billing-rates-inline{margin-bottom:.85rem}.ui-tooltip{position:relative;display:inline-flex;align-items:center;max-width:100%}.ui-tooltip-bubble{position:absolute;z-index:12000;left:50%;width:max-content;max-width:min(18rem,70vw);padding:.55rem .7rem;border-radius:12px;background:#0f172a;color:#f8fafc;font-size:.78rem;font-weight:500;line-height:1.45;text-align:center;box-shadow:0 10px 28px #0f172a47;pointer-events:none;opacity:0;visibility:hidden;transform:translate(-50%) translateY(4px);transition:opacity .15s ease,transform .15s ease,visibility .15s ease}.ui-tooltip-top .ui-tooltip-bubble{bottom:calc(100% + 10px)}.ui-tooltip-bottom .ui-tooltip-bubble{top:calc(100% + 10px);transform:translate(-50%) translateY(-4px)}.ui-tooltip-bubble:after{content:"";position:absolute;left:50%;transform:translate(-50%);border:7px solid transparent}.ui-tooltip-top .ui-tooltip-bubble:after{top:100%;border-top-color:#0f172a}.ui-tooltip-bottom .ui-tooltip-bubble:after{bottom:100%;border-bottom-color:#0f172a}@media(hover:hover)and (pointer:fine){.ui-tooltip:hover .ui-tooltip-bubble,.ui-tooltip:focus-within .ui-tooltip-bubble{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}.ui-tooltip-bottom:hover .ui-tooltip-bubble,.ui-tooltip-bottom:focus-within .ui-tooltip-bubble{transform:translate(-50%) translateY(0)}}.ui-tooltip-open .ui-tooltip-bubble{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}.ui-tooltip-has-help{gap:.2rem}.ui-tooltip-help{display:inline-flex;align-items:center;justify-content:center;width:1.2rem;height:1.2rem;padding:0;border:none;border-radius:999px;background:#0f172a14;color:inherit;cursor:pointer;flex-shrink:0;line-height:0}.ui-tooltip-help:hover,.ui-tooltip-help:focus-visible{background:#0f172a24}.ui-tooltip-help-icon{width:.85rem;height:.85rem}.work-report-status-badges .ui-tooltip-has-help{align-items:center}.work-report-status-badges .ui-tooltip-help{margin-left:.1rem}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;margin-bottom:1rem}.info-box{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:8px;padding:.85rem;display:flex;flex-direction:column;gap:.2rem;box-shadow:var(--shadow-sm)}.info-label{font-size:.8rem;color:var(--text-muted)}.info-box-select{width:100%;margin-top:.15rem;font-size:.95rem;font-weight:600;padding:.35rem .45rem;border-radius:6px;border:1px solid var(--border-strong);background:var(--bg-muted)}.radio-group{border:1px solid var(--border-strong);border-radius:8px;padding:.85rem 1rem;display:grid;gap:.5rem;background:var(--bg-surface);box-shadow:inset 0 0 0 1px #fff9}.radio-group legend{padding:0 .25rem;color:var(--text-muted);font-size:.85rem}.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.daily-log-form{display:grid;gap:.75rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.daily-log-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.daily-log-list li{background:var(--bg-subtle);border:1px solid var(--border-strong);border-radius:8px;padding:.85rem;box-shadow:inset 0 1px #ffffffa6}.daily-log-head{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:center;margin-bottom:.35rem}.daily-log-head-meta{display:flex;flex-wrap:wrap;gap:.35rem .75rem;align-items:center}.daily-log-head-meta>strong,.daily-log-head-meta>span{white-space:nowrap}.daily-log-list p{margin:0;white-space:pre-wrap}.expense-section{border:1px solid var(--border-strong);border-radius:8px;padding:1rem;display:grid;gap:.75rem;background:var(--bg-surface);box-shadow:var(--shadow-sm)}.expense-section h3{margin:0;font-size:.95rem}.expense-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.65rem;align-items:end;padding-bottom:.65rem;border-bottom:1px solid var(--border)}.expense-line-list{margin:.5rem 0 0;padding-left:1.1rem;color:var(--text-secondary);font-size:.9rem}.image-section{border:1px solid var(--border-strong);border-radius:8px;padding:1rem;display:grid;gap:.75rem;background:var(--bg-surface);box-shadow:var(--shadow-sm)}.image-section h3{margin:0;font-size:.95rem}.image-upload-btn{cursor:pointer;position:relative}.image-gallery{display:flex;flex-wrap:wrap;gap:.75rem}.image-thumb{width:120px;height:120px;border-radius:8px;overflow:hidden;background:var(--bg-surface);border:1px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0;cursor:pointer;font:inherit;color:inherit}button.image-thumb:disabled{cursor:default;opacity:.7}.huolto-image-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#000000eb;display:flex;align-items:center;justify-content:center;padding:1rem}.huolto-image-lightbox-img{max-width:min(100%,960px);max-height:min(92vh,1200px);object-fit:contain}.huolto-image-lightbox-close{position:absolute;top:1rem;right:1rem;z-index:1}.image-thumb img{width:100%;height:90px;object-fit:cover}.huolto-evidence-photo-list{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.75rem}.huolto-evidence-photo-row{display:grid;grid-template-columns:88px 1fr auto;gap:.75rem;align-items:start}.huolto-evidence-thumb{width:88px;height:88px;flex-shrink:0}.huolto-evidence-thumb img{height:100%;object-fit:cover}.huolto-evidence-photo-comment{display:flex;flex-direction:column;gap:.25rem;margin:0;font-size:.85rem}.huolto-evidence-photo-comment input{width:100%}.daily-log-image-card{display:flex;flex-direction:column;gap:.35rem;max-width:140px}.daily-log-image-caption{margin:0;font-size:.8rem;line-height:1.3;color:var(--text-muted, #64748b);word-break:break-word}.daily-log-image-edit-list{list-style:none;margin:.75rem 0 0;padding:0;display:grid;gap:.75rem}.daily-log-image-edit-row{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:.75rem;align-items:start}.daily-log-image-comment{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}.daily-log-image-comment input{width:100%}.image-thumb.pending{height:auto;padding-bottom:.35rem}.image-thumb.pending img{height:90px}.image-thumb-preview-btn{display:block;width:100%;padding:0;border:none;background:transparent;cursor:zoom-in}.image-thumb-preview-btn img{display:block;width:100%;height:90px;object-fit:cover;border-radius:4px}.warning-text{margin:.35rem 0 0;color:var(--warning);font-size:.9rem}.work-report-attachments{display:grid;gap:.75rem}.attachment-file-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.attachment-file-list li{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.attachment-file-label{font-size:.75rem;padding:.35rem;text-align:center;word-break:break-word}.log-actions{margin-top:.5rem}textarea,select{padding:.65rem .75rem;border-radius:8px;border:1px solid var(--border-strong);background:var(--bg-surface);color:inherit}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-bottom:1rem}.search-field-grow{flex:1;min-width:220px;display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.search-hits{margin-bottom:1rem}.registry-combobox{position:relative;min-width:0;max-width:100%}.registry-combobox>label{min-width:0}.registry-combobox--open{z-index:50}.registry-combobox-list{position:absolute;z-index:100;left:0;right:0;top:calc(100% + .25rem);margin:0;padding:.35rem 0;list-style:none;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:8px;box-shadow:0 8px 24px #0f172a1f;max-height:240px;overflow:auto}.registry-combobox-list li{margin:0}.registry-combobox-list button{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;width:100%;padding:.55rem .75rem;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.registry-combobox-list button:hover,.registry-combobox-list button:focus-visible{background:var(--bg-subtle)}.registry-combobox-create{color:var(--accent, #2563eb);font-weight:600}.registry-combobox-option-label{font-weight:600}.registry-combobox-option-hint{font-size:.85rem}.registry-combobox-empty{position:absolute;z-index:100;left:0;right:0;top:calc(100% + .25rem);margin:0;padding:.55rem .75rem;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:8px}.registry-create-form{margin-top:.75rem}.report-list.compact li{padding:.5rem 0;background:transparent;border:0;border-bottom:1px solid var(--border);border-radius:0}.nested-form{margin-bottom:1rem;padding:.85rem;background:var(--bg-subtle);border:1px solid var(--border-strong);border-radius:8px;box-shadow:inset 0 1px 2px #0f172a0a}textarea{padding:.65rem .75rem;border-radius:8px;border:1px solid var(--border-strong);background:var(--bg-surface);color:inherit;font-family:inherit;resize:vertical}.detail-list{display:grid;grid-template-columns:max-content 1fr;gap:.35rem 1rem;margin:0}.detail-list dt{color:var(--text-muted)}.detail-list dd{margin:0}.status-actions{display:flex;gap:.75rem;margin-top:1rem;flex-wrap:wrap}.billing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.billing-grid h3{margin:0 0 .5rem;font-size:.95rem}.billing-table{width:100%;border-collapse:collapse;font-size:.9rem;margin:1rem 0}.billing-table th,.billing-table td{border:1px solid var(--border);padding:.55rem .65rem;text-align:left}.billing-table th{background:var(--surface-muted)}.billing-table .num{text-align:right;white-space:nowrap}.billing-table tfoot td{background:var(--surface-muted)}.billing-price-missing{display:inline-flex;align-items:center;justify-content:center;min-width:1.35rem;min-height:1.35rem;padding:0 .25rem;border-radius:999px;background:#fee2e2;color:#b91c1c;font-weight:800;line-height:1}.billing-price-missing-note{margin-top:.5rem;font-size:.85rem}.inventory-row-actions{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:flex-end;white-space:nowrap}.inventory-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.inventory-add-fab{flex-shrink:0;min-height:2.75rem;padding-left:1.25rem;padding-right:1.25rem}.inventory-warehouse-panel{margin-bottom:1rem}.inventory-warehouse-select{width:100%;max-width:100%;margin-top:.35rem}.inventory-tabs,.inventory-quick-add{margin-bottom:1rem}.inventory-quick-add-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.inventory-quick-add-head h2{margin:0;font-size:1.1rem}.inventory-quick-add-form{display:grid;gap:.75rem}.inventory-quick-add-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.inventory-quick-add-form input,.inventory-quick-add-form select{font-size:1rem;min-height:2.75rem}.inventory-card-list{display:flex;flex-direction:column;gap:.75rem}.inventory-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem 1rem;box-shadow:var(--shadow-sm)}.inventory-card-main{display:flex;gap:.75rem;align-items:flex-start;margin-bottom:.75rem}.inventory-card-body{flex:1;min-width:0}.inventory-card-body h3{margin:0 0 .2rem;font-size:1.05rem;word-break:break-word}.inventory-card-sub{margin:0;font-size:.85rem}.inventory-card-badge{margin:.25rem 0 0;font-size:.8rem}.inventory-card-hint{margin:.5rem 0 0;font-size:.78rem}.inventory-empty{padding:1rem;text-align:center}.inventory-qty-stepper{display:flex;align-items:center;gap:.5rem;width:100%}.inventory-qty-stepper.is-disabled{opacity:.55}.inventory-qty-btn{flex-shrink:0;width:3rem;height:3rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-muted);font-size:1.5rem;line-height:1;cursor:pointer;touch-action:manipulation}.inventory-qty-btn:disabled{opacity:.4;cursor:not-allowed}.inventory-qty-value{flex:1;display:flex;align-items:center;justify-content:center;gap:.35rem;min-height:3rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.inventory-qty-input{width:4rem;text-align:center;border:none;background:transparent;font-size:1.25rem;font-weight:600;padding:0}.inventory-qty-unit{font-size:.85rem;color:var(--text-muted)}.inventory-photo-thumb{position:relative;flex-shrink:0}.inventory-photo-btn{width:3.25rem;height:3.25rem;padding:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface-muted);cursor:pointer}.inventory-photo-btn img{width:100%;height:100%;object-fit:cover;display:block}.inventory-photo-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:1.1rem;opacity:.6}.inventory-photo-remove{position:absolute;top:-.35rem;right:-.35rem;width:1.25rem;height:1.25rem;border-radius:50%;border:1px solid var(--border);background:var(--surface);font-size:.75rem;line-height:1;padding:0;cursor:pointer}.inventory-card-details{margin-top:.75rem;font-size:.9rem}.inventory-card-details summary{cursor:pointer;color:var(--primary);font-weight:500;touch-action:manipulation}.inventory-details-grid{display:grid;gap:.65rem;margin-top:.65rem}.inventory-details-grid label{display:flex;flex-direction:column;gap:.3rem}.inventory-details-grid input,.inventory-details-grid select{min-height:2.5rem}.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}.user-billing-list .user-billing-flags{display:flex;flex-wrap:wrap;gap:.75rem 1rem;margin-top:.35rem}.partner-actions{display:flex;flex-direction:column;gap:.5rem;align-items:flex-end}.print-preview{background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:auto}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;margin-bottom:1rem}.data-table{width:100%;border-collapse:collapse;font-size:.9rem}.data-table th,.data-table td{padding:.65rem .5rem;border-bottom:1px solid var(--border-strong);text-align:left}.data-table th{color:var(--text-secondary);font-weight:700;background:var(--bg-subtle)}.line-form{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.line-form h3{margin:0 0 .75rem;font-size:.95rem}.line-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;align-items:end}.mobile-hour-quickbar{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.45rem}.huolto-measurement-grid{grid-template-columns:repeat(auto-fill,minmax(12.5rem,1fr));gap:1rem .85rem;align-items:start}.huolto-measurement-grid label{min-width:0}.huolto-measurement-grid .huolto-readonly-field{min-height:2.65rem}.maintenance-form .huolto-measurement-grid,.huolto-module-body .huolto-measurement-grid{align-items:start}@media(max-width:900px){.calendar-grid{grid-template-columns:1fr}.main{padding:1rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px));overflow-x:clip;max-width:100%}.topbar{padding:.75rem 1rem;flex-wrap:wrap;gap:.5rem}.topbar-actions{width:100%;justify-content:flex-end;gap:.5rem}.topbar-user-name{max-width:55vw;overflow:hidden;text-overflow:ellipsis}input,select,textarea{font-size:16px}.page-header{flex-direction:column;align-items:stretch}.page-header-actions{flex-wrap:wrap;width:100%;justify-content:flex-start}.page-header-actions.action-toolbar{gap:.5rem}.page-header-actions .toolbar-action-menu a{white-space:normal}.action-toolbar-sep{display:none}.info-grid{grid-template-columns:1fr}.detail-list{grid-template-columns:1fr;gap:.15rem 0}.detail-list dt{margin-top:.65rem;font-weight:600;font-size:.82rem}.detail-list dt:first-child{margin-top:0}.detail-list dd{padding-bottom:.35rem;border-bottom:1px solid var(--border)}.detail-list dd:last-child{border-bottom:0}.form-section{padding:.85rem}.form-actions{position:sticky;bottom:0;z-index:2;flex-direction:column;align-items:stretch;gap:.5rem;background:var(--bg-surface);border-top:1px solid var(--border-strong);margin:0 -1.25rem;padding:.75rem 1.25rem;padding-bottom:calc(.75rem + env(safe-area-inset-bottom,0px))}.work-report-form .form-actions{margin:0 -1.25rem}.form-actions .btn,.form-actions a.btn{width:100%;min-height:2.75rem}.status-actions{flex-direction:column;align-items:stretch}.status-actions .btn{width:100%;min-height:2.75rem}.assign-delegate-panel .line-form-grid{grid-template-columns:1fr}.section-head{flex-direction:column;align-items:stretch}.section-head .btn{width:100%;min-height:2.75rem}.compact-section-head{align-items:stretch}.work-report-add-log-btn{width:100%;min-height:2.75rem}.collapsible-header{min-height:3rem;padding:1rem}.daily-log-head{flex-direction:column;align-items:stretch;gap:.35rem}.daily-log-head-meta{display:flex;flex-wrap:wrap;gap:.35rem .75rem;align-items:center}.daily-log-actions{display:flex;gap:.5rem;margin-top:.25rem}.daily-log-actions .btn{flex:1;min-height:2.75rem}.expense-row,.expense-row-fields{grid-template-columns:1fr;gap:.5rem}.expense-price-pair{grid-template-columns:1fr}.daily-log-dialog-section .collapsible-header{min-height:3rem}.expense-row .btn,.expense-row .link-btn{width:100%;min-height:2.75rem;justify-content:center}.billing-rates-bar{flex-direction:column;align-items:stretch}.billing-table-detail{min-width:36rem}.billing-table-detail td:nth-child(4){max-width:9rem}.leave-draft-overlay{align-items:flex-end;padding:0}.daily-log-dialog{width:100%;max-width:none;max-height:100dvh;min-height:min(100dvh,100%);border-radius:16px 16px 0 0;margin:0;display:flex;flex-direction:column}.daily-log-dialog .daily-log-form{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;margin-bottom:0;padding-bottom:.5rem;border-bottom:0}.daily-log-dialog-section.collapsible-section{flex-shrink:0;width:100%}.daily-log-dialog .leave-draft-actions{position:sticky;bottom:0;flex-direction:column;align-items:stretch;margin:0 -1.25rem -1.25rem;padding:.75rem 1.25rem;padding-bottom:calc(.75rem + env(safe-area-inset-bottom,0px));background:var(--bg-surface);border-top:1px solid var(--border-strong)}.daily-log-dialog .leave-draft-actions .btn{width:100%;min-height:2.75rem}.registry-combobox-list button{min-height:2.75rem;padding:.65rem .85rem}.btn-group{flex-direction:column;align-items:stretch}.btn-group .btn{width:100%;min-height:2.75rem}.line-form-grid{grid-template-columns:1fr}.huolto-module-header{flex-direction:column;align-items:flex-start}.work-report-form .form-section,.maintenance-form .form-section{padding:1rem;gap:1rem}.work-report-form label input,.work-report-form label select,.work-report-form label textarea,.maintenance-form label input,.maintenance-form label select,.maintenance-form label textarea,.field-block select,.registry-combobox input{width:100%;max-width:100%;min-width:0;min-height:2.9rem;padding:.7rem .8rem}.work-report-form label select,.field-block select{text-overflow:ellipsis}.work-report-form textarea,.maintenance-form textarea{min-height:8rem}.mobile-hour-quickbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem}.mobile-hour-quickbar .btn{width:100%;min-height:2.5rem;font-size:.85rem;padding:.35rem .3rem}.daily-log-dialog .expense-section,.daily-log-dialog .image-section{padding:.85rem}.maintenance-form .chip-grid{display:grid;grid-template-columns:1fr;gap:.45rem}.maintenance-form .chip{width:100%;justify-content:flex-start;min-height:2.75rem;padding:.6rem .8rem}.maintenance-form .module-toggle-grid{grid-template-columns:1fr;gap:.55rem}.maintenance-form .module-toggle-card{padding:.85rem .9rem}.maintenance-form .collapsible-header{min-height:3.1rem}.maintenance-form .huolto-module-header{min-height:3.25rem}.maintenance-form .huolto-module-title{font-size:1rem}.maintenance-form .huolto-module-body,.maintenance-form .huolto-part-body,.maintenance-form .huolto-submodule{padding:.85rem}.panel{min-width:0;max-width:100%;overflow-x:clip}.page-stack,.search-box{min-width:0;max-width:100%}.search-box input{width:100%;max-width:100%}.search-field-grow{flex:1 1 100%;min-width:0;max-width:100%}.detail-grid{grid-template-columns:1fr}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.tile{aspect-ratio:auto;min-height:7.5rem}.report-list li,.report-list li.report-list-row-actions{flex-direction:column;align-items:stretch}.report-list li.report-list-row-actions .inline-actions{width:100%;justify-content:stretch}.report-list li.report-list-row-actions .inline-actions .btn,.report-list li.report-list-row-actions .inline-actions a.btn{flex:1;min-height:2.75rem}.toolbar-filters{width:100%;flex-direction:column;align-items:stretch}.toolbar-filter{width:100%;height:auto;min-height:2.75rem;padding:.45rem .65rem}.toolbar-filter select{flex:1;max-width:none;height:2rem;font-size:1rem}.toolbar-popover-panel{left:0;right:0;min-width:0;width:max(100%,12.5rem)}.maintenance-form,.maintenance-form.panel,.quote-form.panel,.quote-form{min-width:0;max-width:100%;overflow-x:clip;padding-bottom:calc(11rem + env(safe-area-inset-bottom,0px))}.maintenance-form input,.maintenance-form select,.maintenance-form textarea{scroll-margin-bottom:10rem}.huolto-module-section{overflow:visible}.huolto-table-wrap{display:none}.huolto-mobile-cards{display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem;min-width:0;max-width:100%}.huolto-mobile-cards .line-form-grid{grid-template-columns:1fr}.huolto-konvektori-checks{grid-template-columns:repeat(2,minmax(0,1fr))}.huolto-konvektori-checks label{min-height:2.75rem}.quote-form .section-header-row{flex-direction:column;align-items:stretch}.quote-form .section-header-row .btn{width:100%;min-height:2.75rem}.huolto-phase-grid,.huolto-calc-row,.huolto-measurement-grid{grid-template-columns:1fr}.huolto-evidence-photo-row{grid-template-columns:72px 1fr;gap:.5rem}.trip-leg-row{grid-template-columns:1fr;gap:.5rem}.trip-leg-head-actions{width:100%;flex-direction:column;align-items:stretch}.trip-leg-head-actions .btn{width:100%;min-height:2.75rem}.trip-leg-row-actions{grid-column:auto;width:100%;flex-direction:column;align-items:stretch}.trip-leg-row-actions .btn{width:100%;min-height:2.75rem}.trip-leg-row .btn{grid-column:auto;width:100%;min-height:2.75rem}.trip-leg-bill-check{align-self:flex-start;min-height:2.75rem;padding:.35rem 0}.image-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.image-section,.expense-section{min-width:0;max-width:100%;overflow-x:clip}.billing-rates-inline,.billing-rates-bar .compact-option{width:100%}.compact-option{min-height:2.75rem;display:inline-flex;align-items:center;gap:.5rem}.customer-document-filters{flex-direction:column}.customer-document-filters .btn{width:100%;min-height:2.75rem}.partner-customer-picker-filter,.user-company-filter,.partner-customer-picker-filter select,.user-company-filter select{width:100%;max-width:100%}.form-help-details{padding:.35rem 0}.registry-create-form .line-form-grid{grid-template-columns:1fr}.leave-draft-dialog:not(.daily-log-dialog){width:100%;max-width:none;max-height:min(92dvh,100%);border-radius:16px 16px 0 0}}.form-help-details{margin:0}.form-help-details summary{cursor:pointer;color:var(--link);font-size:.9rem;font-weight:600;list-style:none}.form-help-details summary::-webkit-details-marker{display:none}.form-help-details summary:before{content:"▸ "}.form-help-details[open] summary:before{content:"▾ "}.form-help-details[open] summary{margin-bottom:.5rem}.form-help-details .muted{margin:0}@media(min-width:901px){.form-help-details summary{display:none}}@media(max-width:600px){.panel{padding:1rem;border-radius:10px}.page-header{padding:.85rem}.page-header h1{font-size:1.15rem;word-break:break-word}.breadcrumb{font-size:.78rem}.work-report-form .form-actions,.maintenance-form .form-actions{margin:0 -1rem;padding-left:1rem;padding-right:1rem}.daily-log-dialog .leave-draft-actions{margin:0 -1rem -1rem;padding-left:1rem;padding-right:1rem}}@media(pointer:coarse){.icon-btn,.page-header-actions .icon-btn,.action-toolbar .icon-btn{width:2.75rem;height:2.75rem}}.autosave-status{min-height:1.25rem;margin:.35rem 0 0}.footer{text-align:center;padding:1rem;color:var(--text-muted);font-size:.85rem;border-top:2px solid var(--border-strong);background:var(--bg-surface)}.huolto-submodule{border:2px solid #475569;border-radius:10px;padding:.85rem 1rem;margin-top:.75rem;background:#fff;box-shadow:0 2px 8px #0f172a14;display:flex;flex-direction:column;gap:1rem}.huolto-submodule>h3,.huolto-submodule>h4,.huolto-submodule>h5{margin:0}.huolto-part-section{border:2px solid #475569;border-radius:10px;overflow:hidden;margin-top:.75rem;background:#fff;box-shadow:0 2px 8px #0f172a14}.huolto-part-header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .9rem;border:0;background:linear-gradient(180deg,#f8fafc,#e2e8f0);cursor:pointer;text-align:left;font:inherit;color:#0f172a}.huolto-part-header:hover{background:linear-gradient(180deg,#fff,#e2e8f0)}.huolto-part-title{font-size:.95rem;font-weight:700}.huolto-part-body{padding:.85rem 1rem 1rem;display:flex;flex-direction:column;gap:1rem;border-top:1px solid #94a3b8;background:#fff}.huolto-submodule h4{margin:0;font-size:.95rem;color:#0f172a}.maintenance-form .collapsible-body,.huolto-form-stack{display:flex;flex-direction:column;gap:1rem}.maintenance-form .line-form-grid,.huolto-module-body .line-form-grid,.huolto-submodule .line-form-grid,.huolto-part-body .line-form-grid,.huolto-circuit-body .line-form-grid,.huolto-lampopiirit .line-form-grid,.maintenance-form .collapsible-body .line-form-grid,.maintenance-form .huolto-measurement-grid,.huolto-module-body .huolto-measurement-grid{grid-template-columns:repeat(auto-fill,minmax(12.5rem,1fr));align-items:start;row-gap:1rem;column-gap:.75rem}.huolto-module-body label,.huolto-submodule label,.huolto-part-body label,.huolto-circuit-body label{display:flex;flex-direction:column;gap:.35rem;min-width:0}.huolto-field-group{border:0;padding:0;margin:0;min-width:0}.huolto-field-group-title{margin:0 0 .5rem;font-size:.9rem;font-weight:600;color:#334155}.maintenance-form .line-form-grid>.toggle-switch,.maintenance-form .line-form-grid>.form-toggle,.huolto-module-body .line-form-grid>.toggle-switch,.huolto-submodule .line-form-grid>.toggle-switch,.huolto-part-body .line-form-grid>.toggle-switch,.huolto-circuit-body .line-form-grid>.toggle-switch,.collapsible-body .line-form-grid>.toggle-switch{align-self:start;margin-top:1.35rem;padding:.35rem 0}.maintenance-form .collapsible-body>.toggle-switch,.maintenance-form .collapsible-body>.toggle-grid,.maintenance-form .collapsible-body>.checkbox-grid,.huolto-module-body>.toggle-switch,.huolto-module-body>.form-toggle,.huolto-module-body>.toggle-grid,.huolto-submodule>.toggle-switch,.huolto-submodule>.form-toggle,.huolto-submodule>.toggle-grid,.huolto-submodule>.checkbox-grid:not(.huolto-toggle-grid){padding:.35rem 0}.maintenance-form .toggle-grid,.huolto-module-body .toggle-grid,.huolto-submodule .toggle-grid,.maintenance-form .collapsible-body .toggle-grid{gap:1rem 1.5rem}.huolto-submodule .checkbox-grid.huolto-toggle-grid,.huolto-submodule .huolto-toggle-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:1rem 1.25rem;align-items:start;margin:.15rem 0}.huolto-submodule .huolto-toggle-grid .toggle-switch{display:flex;align-items:flex-start;width:100%;max-width:100%}.huolto-submodule .huolto-toggle-grid .toggle-switch-label{line-height:1.35;flex:1;min-width:0}.huolto-lampopiirit{display:flex;flex-direction:column;gap:.85rem}.huolto-lampopiirit-wide{width:100%;max-width:100%}.huolto-lampopiirit-piireja{max-width:12rem}.huolto-circuit-header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.huolto-table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:.5rem}.huolto-table{width:100%;min-width:52rem;border-collapse:collapse;font-size:.85rem}.huolto-table th,.huolto-table td{border:1px solid var(--border-strong);padding:.4rem .5rem;vertical-align:top;text-align:left}.huolto-table th{background:var(--bg-muted);font-weight:600;white-space:nowrap}.huolto-table td input,.huolto-table td select,.huolto-table td textarea{width:100%;min-width:4.25rem;min-height:2.25rem;font-size:.85rem}.huolto-table td input[type=checkbox]{width:1.1rem;height:1.1rem;min-height:auto;min-width:auto}.huolto-table-checkbox{text-align:center;vertical-align:middle;width:3.25rem}.huolto-konvektori-cards{display:none}.konvektori-list-actions{flex-direction:row;flex-wrap:wrap;margin-bottom:.5rem}.konvektori-compact-list{display:flex;flex-direction:column;gap:.5rem;min-width:0;max-width:100%}.konvektori-compact-head,.konvektori-compact-row{display:grid;grid-template-columns:2rem minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 5.5rem minmax(9rem,auto);gap:.4rem .5rem;align-items:center;min-width:0}.konvektori-compact-head{font-size:.75rem;font-weight:600;color:var(--text-muted, #64748b);padding:0 .25rem}.konvektori-compact-row{padding:.55rem .45rem;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg-surface, #fff)}.konvektori-compact-num{text-align:center;font-weight:600;color:var(--text-muted, #64748b)}.konvektori-compact-field{display:flex;min-width:0}.konvektori-compact-field input{width:100%;min-width:0;min-height:2.5rem;font-size:.9rem}.konvektori-compact-actions{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:flex-end}.konvektori-status{display:inline-block;font-size:.72rem;font-weight:700;padding:.2rem .45rem;border-radius:999px;text-align:center;white-space:nowrap}.konvektori-status--note{background:#e0e7ff;color:#3730a3}.konvektori-huomio-field{display:flex;flex-direction:column;gap:.35rem;font-weight:600;margin-bottom:1rem}.konvektori-huomio-field textarea,.konvektori-huomio-field .rich-comment-editor{width:100%;min-height:6rem;resize:vertical;font-weight:400;font-family:inherit;line-height:1.4;box-sizing:border-box}.rich-comment-editor-wrap{display:flex;flex-direction:column;gap:.35rem;width:100%}.rich-comment-editor-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.rich-comment-editor-toolbar-group{display:flex;gap:.25rem;align-items:center}.rich-comment-editor-toolbar-group+.rich-comment-editor-toolbar-group{padding-left:.5rem;border-left:1px solid #cbd5e1}.rich-comment-editor-btn{min-width:2rem;height:2rem;padding:0 .5rem;border:2px solid #64748b;border-radius:4px;background:#fff;cursor:pointer;font:inherit;line-height:1}.rich-comment-editor-btn:hover{background:#f1f5f9}.rich-comment-editor-btn.is-active{background:#e0f2fe;border-color:#0284c7;color:#0c4a6e}.rich-comment-editor-u{text-decoration:underline}.rich-comment-editor-size-label{margin:0;font-weight:500}.rich-comment-editor-size{height:2rem;padding:0 .35rem;border:2px solid #64748b;border-radius:4px;background:#fff;font:inherit;cursor:pointer}.rich-comment-editor{width:100%;padding:.5rem .65rem;border:2px solid #64748b;border-radius:4px;background:#fff;font-weight:400;font-family:inherit;line-height:1.4;overflow-wrap:anywhere;box-sizing:border-box;overflow-y:auto;resize:vertical}.rich-comment-editor:focus{outline:2px solid #0284c7;outline-offset:1px}.rich-comment-editor p{margin:0;padding:0}.rich-comment-editor p.rc-para+p.rc-para{margin-top:.55em}.rich-comment-editor p.rc-gap{min-height:.55em;margin:0}.rich-comment-editor p.rc-para:last-child,.rich-comment-editor p.rc-gap:last-child{margin-bottom:0}.rich-comment-editor ul,.rich-comment-editor ol{margin:.25em 0;padding-left:1.35em}.rich-comment-editor ul{list-style:disc}.rich-comment-editor ol{list-style:decimal}.rich-comment-editor li{margin:.15em 0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:900px){.konvektori-compact-head{display:none}.konvektori-compact-row{grid-template-columns:1fr 1fr;grid-template-areas:"num num" "tunnus tunnus" "valmistaja malli" "sarja sarja" "status status" "actions actions";gap:.5rem}.konvektori-compact-num{grid-area:num;text-align:left}.konvektori-compact-row .konvektori-compact-field:nth-of-type(1){grid-area:tunnus}.konvektori-compact-row .konvektori-compact-field:nth-of-type(2){grid-area:valmistaja}.konvektori-compact-row .konvektori-compact-field:nth-of-type(3){grid-area:malli}.konvektori-compact-row .konvektori-compact-field:nth-of-type(4){grid-area:sarja}.konvektori-compact-row>.konvektori-status{grid-area:status;justify-self:start}.konvektori-compact-actions{grid-area:actions;justify-content:stretch}.konvektori-compact-actions .btn{flex:1;min-height:2.75rem}}@media(min-width:901px){.huolto-mobile-cards{display:none}}@media(max-width:900px){.huolto-table-wrap{display:none}.huolto-mobile-cards{display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem;min-width:0;max-width:100%}.huolto-mobile-cards .line-form-grid{grid-template-columns:1fr}}.huolto-konvektori-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:.5rem .75rem}.huolto-konvektori-checks label{display:flex;align-items:center;gap:.45rem;min-height:2.5rem;font-weight:500}.huolto-konvektori-checks input[type=checkbox]{width:1.2rem;height:1.2rem;flex-shrink:0}.huolto-circuit-body{display:flex;flex-direction:column;gap:1.1rem;margin-top:1rem}.huolto-span-all{grid-column:1 / -1}.huolto-readonly-field{padding:.5rem .75rem;background:var(--bg-subtle);border:1px solid var(--border-strong);border-radius:6px;min-height:2.5rem;display:flex;align-items:center;color:var(--text-secondary)}.huolto-phase-grid{grid-template-columns:repeat(3,1fr)}.huolto-calc-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:.85rem;background:var(--bg-subtle);border:1px solid var(--border-strong);border-radius:8px;box-shadow:inset 0 1px #ffffffa6}.huolto-calc-metric{display:flex;flex-direction:column;gap:.35rem;min-width:0}.huolto-calc-metric-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.huolto-calc-print-toggle{flex-shrink:0;font-size:.72rem}.huolto-calc-print-toggle .toggle-switch-track{width:1.85rem;height:1.05rem}.huolto-calc-off-hint{font-size:.85rem;font-style:italic}.huolto-calc-row strong{display:block;font-size:1.25rem;font-family:ui-monospace,monospace}.calc-ok{color:var(--success)}.calc-warn{color:var(--warning)}.calc-bad{color:var(--danger)}.huolto-help{font-size:.8rem;line-height:1.4;color:var(--text-muted)}.huolto-alert{padding:.65rem .85rem;border-radius:8px;font-size:.9rem;border:1px solid transparent}.huolto-alert-danger{background:#fef2f2;border-color:#fecaca;color:#991b1b}.huolto-alert-warning{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.huolto-alert-success{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.btn-group{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.5rem}.btn-sm{padding:.35rem .65rem;font-size:.85rem}.btn-active{background:#ea580c;border-color:#ea580c;color:#fff}.huolto-module-section{border-radius:12px;box-shadow:0 6px 18px #0f172a24;overflow:hidden;margin-top:1rem;border:3px solid var(--module-border, #475569);background:#fff}.huolto-modules-stack{display:flex;flex-direction:column;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:3px dashed #94a3b8}.huolto-modules-stack>.huolto-module-section{margin-top:0}.module-select-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .75rem;border-radius:999px;border:2px solid var(--module-accent, #64748b);background:#fff;cursor:pointer;font-size:.9rem;font-weight:600;color:#1e293b}.module-select-chip input{accent-color:var(--module-accent, #2563eb)}.module-select-chip-active{background:var(--module-bg, #eff6ff);box-shadow:inset 0 0 0 1px var(--module-border, #93c5fd)}.huolto-module-section[data-module=kylmaaineCharge]{--module-border: #60a5fa;--module-bg: #eff6ff;--module-header: #2563eb}.huolto-module-section[data-module=kylmaainePiiri]{--module-border: #3b82f6;--module-bg: #dbeafe;--module-header: #1d4ed8}.huolto-module-section[data-module=hoyrystin]{--module-border: #22d3ee;--module-bg: #ecfeff;--module-header: #0891b2}.huolto-module-section[data-module=lauhdutin]{--module-border: #a78bfa;--module-bg: #f5f3ff;--module-header: #7c3aed}.huolto-module-section[data-module=mlpPiirit]{--module-border: #f472b6;--module-bg: #fdf2f8;--module-header: #db2777}.huolto-module-section[data-module=mlpKeruupiiri],.huolto-module-section[data-module=mlpJaahdytyspiiri]{--module-border: #ce93d8;--module-bg: #f3e5f5;--module-header: #7b1fa2}.huolto-module-section[data-module=mlpLatauspiiri],.huolto-module-section[data-module=mlpKayttovesi],.huolto-module-section[data-module=mlpLampopiirit]{--module-border: #ffb74d;--module-bg: #fff3e0;--module-header: #e65100}.huolto-module-section[data-module=mlpEnergia]{--module-border: #ffcc80;--module-bg: #fff8e1;--module-header: #ff6d00}.huolto-module-section[data-module=konvektorit]{--module-border: #fb923c;--module-bg: #fff7ed;--module-header: #ea580c}.huolto-module-section[data-module=ulkoyksikko]{--module-border: #4ade80;--module-bg: #f0fdf4;--module-header: #16a34a}.huolto-module-section[data-module=sisayksikko]{--module-border: #34d399;--module-bg: #ecfdf5;--module-header: #059669}.huolto-module-section[data-module=mittaukset]{--module-border: #2dd4bf;--module-bg: #f0fdfa;--module-header: #0d9488}.huolto-module-section[data-module=nestelauhduttimet],.huolto-module-section[data-module=vedenjajahdytyskone]{--module-border: #0ea5e9;--module-bg: #e0f2fe;--module-header: #0284c7}.huolto-module-section[data-module=vapaajahdytys]{--module-border: #06b6d4;--module-bg: #ecfeff;--module-header: #0891b2}.huolto-module-section[data-module=tiiveyskoe]{--module-border: #f87171;--module-bg: #fef2f2;--module-header: #dc2626}.huolto-module-section[data-module=tyhjiointi]{--module-border: #818cf8;--module-bg: #eef2ff;--module-header: #6366f1}.huolto-module-section[data-module=huomiot]{--module-border: #facc15;--module-bg: #fefce8;--module-header: #ca8a04}.huolto-module-header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.1rem;border:0;background:var(--module-header, #334155);cursor:pointer;text-align:left;font:inherit;color:#fff}.huolto-module-header:hover{filter:brightness(1.05)}.huolto-module-title{font-size:1.1rem;font-weight:700;color:#fff}.huolto-module-chevron{display:inline-block;width:.65rem;height:.65rem;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg);transition:transform .2s;opacity:.9}.huolto-module-open .huolto-module-chevron{transform:rotate(-135deg);margin-top:.15rem}.huolto-module-body{padding:1rem 1.1rem 1.15rem;display:flex;flex-direction:column;gap:1rem;background:#fff;border-top:2px solid rgba(15,23,42,.08)}.huolto-module-body label{font-weight:600;color:#0f172a}.huolto-module-body input,.huolto-module-body select,.huolto-module-body textarea{border:2px solid #64748b;background:#fff}.maintenance-print-page .maintenance-print-host,.work-report-print-page .work-report-print-host{background:#fff;color:#111827;padding:1rem;border-radius:8px;border:1px solid var(--border)}.print-toolbar-control{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;height:2.15rem;padding:0 .55rem;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg-surface)}.print-toolbar-icon{color:var(--text-secondary);flex-shrink:0}.print-toolbar-btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;height:2.15rem;min-height:2.15rem;line-height:1}.print-toolbar-btn-icon{width:.95rem;height:.95rem}.toggle-switch-inline{align-items:center;gap:0;margin:0}.toggle-switch-inline .toggle-switch-track{width:2rem;height:1.15rem;margin-top:0}.toggle-switch-inline .toggle-switch-thumb{top:1px;left:1px;width:.8rem;height:.8rem}.toggle-switch-inline .toggle-switch-input:checked+.toggle-switch-track .toggle-switch-thumb{transform:translate(.85rem)}.quote-form .form-section{display:flex;flex-direction:column;gap:.85rem}.quote-form .form-section h2{margin:0;font-size:1rem}.quote-form .section-header-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.quote-lines{display:flex;flex-direction:column;gap:.75rem}.quote-line-row{display:flex;flex-direction:column;gap:.65rem}.customer-document-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0 1rem}.customer-document-actions{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.customer-document-list .customer-document-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem}.customer-document-link{display:block;min-width:0;padding:.15rem 0;color:inherit;text-decoration:none;border-radius:8px}.customer-document-link:hover{background:#0f172a0a}.customer-document-link.is-static{cursor:default}.customer-document-print{flex-shrink:0}.customer-equipment-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.65rem;align-items:start}.customer-equipment-toggle{flex-shrink:0;align-self:center;margin:0}.customer-equipment-toggle .toggle-switch-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.customer-equipment-select-all-toggle{margin:0}.customer-equipment-bulk-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.65rem}.customer-equipment-select-all{display:inline-flex;align-items:center;gap:.45rem;font-size:.92rem;cursor:pointer}.customer-equipment-bulk-actions{display:flex;flex-wrap:wrap;gap:.45rem}.customer-equipment-bulk-actions .btn{display:inline-flex;align-items:center;gap:.35rem}.customer-equipment-bulk-hint{margin:0 0 .85rem;font-size:.86rem}.customer-equipment-link{display:block;min-width:0;color:inherit;text-decoration:none;border-radius:8px;padding:.15rem 0}.customer-equipment-link:hover{background:#0f172a0a}.equipment-snapshot-root{display:flex;flex-direction:column;gap:1rem}.equipment-snapshot-section{border:1px solid var(--border, #e2e8f0);border-radius:10px;padding:.85rem 1rem;background:var(--surface-muted, #f8fafc)}.equipment-snapshot-section h3{margin:0 0 .65rem;font-size:.98rem}.equipment-snapshot-section dl{margin:0}.equipment-snapshot-subcard{margin-top:.65rem;padding:.65rem .75rem;border:1px solid var(--border, #e2e8f0);border-radius:8px;background:#fff}.equipment-snapshot-subcard h4{margin:0 0 .45rem;font-size:.88rem;color:#334155}.equipment-snapshot-row{display:grid;grid-template-columns:minmax(140px,34%) minmax(0,1fr);gap:.5rem 1rem;padding:.35rem 0;border-bottom:1px solid rgba(148,163,184,.25)}.equipment-snapshot-row:last-child{border-bottom:0}.equipment-snapshot-row dt{margin:0;font-size:.84rem;color:#64748b}.equipment-snapshot-row dd{margin:0;font-size:.92rem}.customer-equipment-actions{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;justify-content:flex-end}.icon-action-btn{display:inline-flex;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;padding:0;border:1px solid var(--border, #cbd5e1);border-radius:8px;background:#fff;color:var(--text, #0f172a);cursor:pointer;text-decoration:none}.icon-action-btn:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8}.icon-action-btn:disabled{opacity:.55;cursor:wait}.customer-detail-collapsible.panel{padding:0;border:0;box-shadow:none;background:transparent}.customer-detail-collapsible .collapsible-body{padding:0 1.1rem 1.1rem}.customer-detail-collapsible .collapsible-body>.muted:first-child{margin-top:0}.quote-work-materials{margin-top:.25rem;padding-top:.75rem;border-top:1px dashed var(--border, #cbd5e1);display:flex;flex-direction:column;gap:.65rem}.quote-work-materials-head{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.quote-work-materials-head h4{margin:0;font-size:.92rem}.quote-work-material-row{padding:.65rem .75rem;border:1px solid var(--border, #e2e8f0);border-radius:8px;background:var(--surface-muted, #f8fafc);display:flex;flex-direction:column;gap:.55rem}.quote-work-equipment-hint{margin:-.25rem 0 0;font-size:.85rem}.quote-line-head{display:flex;justify-content:space-between;align-items:center}.quote-line-total,.quote-grand-total{margin:0}.quote-grand-total{font-size:1.05rem;text-align:right}.quote-type-grid h2{margin:0 0 .75rem;font-size:1rem}.quote-type-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.65rem}.quote-type-btn{padding:.75rem;border:2px solid var(--border);border-radius:10px;background:var(--bg-surface);color:var(--text);text-align:left;font:inherit;cursor:pointer}.quote-type-btn.active{border-color:#f97316;background:#fff7ed;color:#c2410c}.quote-type-btn:disabled{opacity:.7;cursor:default}.quote-summary-box{display:grid;gap:.35rem;padding:.85rem 1rem;border:1px solid #fdba74;border-radius:10px;background:#fff7ed}.quote-field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem 1.25rem;align-items:start}.quote-field-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-form .quote-field-grid label{display:flex;flex-direction:column;gap:.35rem;min-width:0;margin:0}.quote-subsection{display:flex;flex-direction:column;gap:.75rem;padding:.85rem 1rem}.quote-subsection h3{margin:0;font-size:.95rem}.field-hint-block{margin:0;font-size:.85rem;line-height:1.45}@media(max-width:900px){.quote-field-grid,.quote-field-grid-2{grid-template-columns:1fr}}.quote-travel-km{grid-column:1 / -1;display:flex;flex-direction:column;gap:.65rem}.quote-optional-summary{margin-top:.5rem;padding-top:.5rem;border-top:1px dashed #fdba74;display:grid;gap:.25rem;font-size:.9rem}.quote-vat-notice{margin:0;padding:.45rem .65rem;border-radius:6px;background:#ecfdf5;border:1px solid #86efac;color:#166534;font-size:.85rem;font-weight:600}.quote-vat-profile-field{grid-column:1 / -1}.quote-vat-profile-hint{margin:.45rem 0 0;font-size:.85rem}.quote-travel-km .toggle-switch{margin-bottom:.35rem}.quote-toggle-group{display:flex;flex-direction:column;gap:.85rem;margin-top:.5rem}.quote-site-defaults-review-row .quote-site-defaults-review-check{flex:1 1 auto;align-items:center}.quote-site-defaults-review-check .toggle-switch-label{line-height:1.35}.quote-form .form-toggle-row.quote-terms-print-toggles{margin-top:.5rem}.quote-labor-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-top:.5rem}.quote-labor-mode-btn{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;padding:.75rem .85rem;border:2px solid var(--border);border-radius:10px;background:var(--bg-surface);color:var(--text);text-align:left;font:inherit;cursor:pointer}.quote-labor-mode-btn.active{border-color:#f97316;background:#fff7ed;color:#c2410c}.quote-labor-mode-btn:disabled{opacity:.7;cursor:default}.quote-labor-mode-title{font-weight:600}.quote-labor-mode-desc{font-size:.85rem;color:var(--text-muted, #64748b);line-height:1.35}.quote-labor-mode-btn.active .quote-labor-mode-desc{color:#9a3412}@media(max-width:520px){.quote-labor-mode-grid{grid-template-columns:1fr}}.tile-disabled{opacity:.72;cursor:not-allowed}.quote-power-fit{margin:0 0 .65rem;padding:.45rem .65rem;border-radius:8px;font-size:.85rem}.quote-power-fit-ok{background:#f0fdf4;border:1px solid #86efac;color:#166534}.quote-power-fit-warn{background:#fff7ed;border:1px solid #fdba74;color:#c2410c}.quote-power-fit-bad{background:#fef2f2;border:1px solid #fca5a5;color:#b91c1c}.quote-option-compare{margin-top:1rem;padding:.85rem;border:1px solid #fdba74;border-radius:10px;background:#fff7ed}.quote-option-compare h3{margin:0 0 .65rem;font-size:.95rem}.quote-option-compare-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.65rem}.quote-option-compare-card{padding:.75rem;border-radius:8px;border:1px solid var(--border);background:var(--bg-surface);text-align:center}.quote-option-price{font-size:1.15rem;font-weight:700;color:#c2410c;margin:.35rem 0}.quote-print-toolbar{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;margin-bottom:1rem}.quote-vilp-config .quote-vilp-daikin,.quote-vilp-hint{margin-top:.75rem}.device-registry-fee-table-wrap{overflow-x:auto}.device-registry-fee-table input{width:100%;min-width:5rem}.panel-inset{padding:.85rem;background:var(--bg-muted);border:1px solid var(--border);border-radius:8px}.print-preview-shell{padding:0;overflow:hidden}.print-preview-frame{width:100%;min-height:70vh;border:0;background:#fff}.quote-print-sticky-nav{display:none}@media(max-width:768px){.quote-print-sticky-nav{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;position:sticky;top:0;z-index:40;margin:0 0 .75rem;padding:.65rem .75rem;padding-top:calc(.65rem + env(safe-area-inset-top,0px));background:color-mix(in srgb,var(--bg-surface) 96%,var(--bg-page));border:1px solid var(--border);border-radius:10px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 2px 10px #0f172a14}.quote-print-sticky-nav .btn{min-height:44px;flex:1 1 auto;justify-content:center}.quote-print-sticky-nav-back{flex:1 1 100%;font-weight:600}.quote-print-sticky-nav-print{flex:1 1 8rem}.quote-print-page .quote-print-breadcrumb,.quote-print-page .page-header-actions{display:none}}.quote-device-card{margin-bottom:.85rem}.billing-page{display:flex;flex-direction:column;gap:1rem}.billing-summary-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.65rem}.billing-summary-period-label{margin:0;font-size:.85rem}.billing-summary-period-pills{display:flex;flex-wrap:wrap;gap:.45rem}.billing-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem}.billing-stat-card{padding:1rem 1.1rem;border-radius:12px;border:1px solid var(--border);background:var(--bg-surface);box-shadow:var(--shadow-sm)}.billing-stat-open{border-color:#fdba74;background:linear-gradient(180deg,#fff7ed,#fff)}.billing-stat-billed{border-color:#86efac;background:linear-gradient(180deg,#f0fdf4,#fff)}.billing-stat-total{border-color:#93c5fd;background:linear-gradient(180deg,#eff6ff,#fff)}.billing-stat-label{display:block;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.billing-stat-value{display:block;margin-top:.35rem;font-size:1.45rem;font-variant-numeric:tabular-nums}.billing-stat-meta{margin:.45rem 0 0;font-size:.82rem;color:var(--text-muted)}.billing-stat-count{display:block;margin-top:.55rem;font-size:.8rem;color:var(--text-subtle)}.billing-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.85rem;padding:.85rem 1rem}.billing-filter-pills{display:flex;flex-wrap:wrap;gap:.45rem}.billing-pill{border:1px solid var(--border);border-radius:999px;padding:.45rem .9rem;background:var(--bg-muted);color:var(--text-secondary);font:inherit;font-size:.88rem;cursor:pointer}.billing-pill.active{border-color:var(--primary);background:var(--primary);color:#fff}.billing-toolbar-right{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem}.billing-view-tabs{margin:0}.billing-toast{margin:0;padding:.65rem .85rem;border-radius:8px;border:1px solid #86efac;background:#f0fdf4;color:#166534}.billing-calendar-panel{padding:1rem}.billing-calendar-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.75rem}.billing-calendar-head h2{margin:0;font-size:1.05rem}.billing-calendar-controls{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;justify-content:space-between;margin-bottom:.75rem}.billing-custom-range{margin-bottom:.75rem}.billing-month-grid{grid-auto-rows:minmax(72px,auto)}.billing-day-cell.outside-month,.billing-day-cell.outside-range{opacity:.45}.billing-day-cell.outside-range{cursor:not-allowed}.billing-year-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.55rem}.billing-month-summary-cell{min-height:84px;border:1px solid var(--border);border-radius:10px;background:var(--bg-muted);padding:.65rem;display:flex;flex-direction:column;align-items:stretch;text-align:center;cursor:pointer;font:inherit;color:inherit}.billing-month-summary-cell:hover{border-color:var(--primary)}.billing-month-label{font-weight:700;font-size:.85rem}.billing-month-empty{margin-top:auto;font-size:.85rem}.billing-weekday-row,.billing-heatmap-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.45rem}.billing-weekday-row{margin-bottom:.35rem;text-align:center;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-subtle)}.billing-day-cell{min-height:72px;border:1px solid var(--border);border-radius:10px;background:var(--bg-muted);padding:.45rem;display:flex;flex-direction:column;align-items:stretch;text-align:right;cursor:pointer;font:inherit;color:inherit}.billing-day-cell:hover{border-color:var(--primary)}.billing-day-cell.selected{outline:2px solid var(--primary);outline-offset:1px}.billing-day-num{font-weight:600;font-size:.9rem}.billing-day-amount{margin-top:auto;font-size:.78rem;font-variant-numeric:tabular-nums;color:#b45309;text-align:center}.billing-day-filter-note{margin:.75rem 0 0;font-size:.88rem;color:var(--text-muted)}.billing-empty-state{padding:2rem 1rem;text-align:center;color:var(--text-muted)}.billing-card-list{display:flex;flex-direction:column;gap:.85rem}.billing-report-card{padding:1rem}.billing-report-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,260px);gap:1rem}.billing-report-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin-bottom:.55rem}.billing-report-title{font-size:1.05rem;font-weight:700;color:var(--link)}.billing-report-title:hover{color:var(--link-hover);text-decoration:underline}.billing-report-meta{margin:.25rem 0;font-size:.88rem;color:var(--text-muted)}.billing-report-meta strong{color:var(--text-secondary)}.billing-report-summary{border:1px solid var(--border);border-radius:10px;background:var(--bg-muted);padding:.75rem .85rem}.billing-report-summary h3{margin:0 0 .55rem;font-size:.92rem}.billing-report-summary dl{margin:0;display:grid;gap:.35rem}.billing-report-summary dl>div{display:flex;justify-content:space-between;gap:.75rem;font-size:.85rem}.billing-report-summary dt{color:var(--text-muted)}.billing-report-summary dd{margin:0;font-variant-numeric:tabular-nums;font-weight:600}.billing-report-total{margin-top:.25rem;padding-top:.45rem;border-top:1px solid var(--border)}.billing-report-total dd{color:var(--primary)}.billing-report-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.85rem;padding-top:.85rem;border-top:1px solid var(--border)}.billing-recalc-banner{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1rem;border-left:3px solid var(--primary)}.billing-recalc-meta{margin:.25rem 0 0;font-size:.875rem}.billing-recalc-spinner{width:1.1rem;height:1.1rem;margin-top:.15rem;border:2px solid color-mix(in srgb,var(--primary) 25%,transparent);border-top-color:var(--primary);border-radius:50%;animation:billing-recalc-spin .75s linear infinite;flex-shrink:0}@keyframes billing-recalc-spin{to{transform:rotate(360deg)}}.billing-calc-badge{font-size:.72rem;font-weight:600;padding:.15rem .45rem;border-radius:999px;white-space:nowrap}.billing-calc-badge-updating{background:color-mix(in srgb,var(--primary) 12%,var(--surface));color:var(--primary)}.billing-calc-badge-ready{background:color-mix(in srgb,#22c55e 12%,var(--surface));color:#15803d}.billing-calc-badge-none{background:var(--bg-muted);color:var(--text-muted)}.billing-report-card-recalculating{opacity:.92}.billing-report-summary-pending{margin:.35rem 0 0;font-size:.875rem}@media(max-width:760px){.billing-report-main{grid-template-columns:1fr}}.pump-device-registry-dialog{width:min(100%,42rem);max-height:min(90vh,52rem);overflow-y:auto}.pump-device-registry-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.pump-device-registry-dialog-head h2{margin:0 0 .25rem}.pump-device-registry-dialog-meta{margin:0;font-size:.875rem}.pump-device-registry-dialog-intro{margin:0 0 1rem;font-size:.9rem}.pump-device-registry-form .form-section{margin:0;padding:0;border:0}.pump-device-registry-form .form-section h3{margin:0 0 .65rem;font-size:.95rem}.pump-device-registry-field-stack{grid-template-columns:1fr}.pump-device-registry-pricing-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:.75rem 1rem}.pump-device-registry-pricing-grid label{min-height:0}.pump-device-registry-pricing-grid input,.pump-device-registry-pricing-grid select{width:100%}.pump-device-registry-pricing-hint{margin:.5rem 0 0}@media(max-width:640px){.pump-device-registry-pricing-grid{grid-template-columns:1fr}}.pump-device-registry-features{padding:.85rem 1rem;border:1px solid var(--border);border-radius:10px;background:var(--bg-subtle, rgba(15, 23, 42, .03))}.pump-device-feature-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.5rem .75rem}.pump-device-feature-option{display:flex;flex-direction:row;align-items:flex-start;gap:.55rem;margin:0;font-size:.875rem;line-height:1.35;cursor:pointer}.pump-device-feature-option input[type=checkbox]{margin-top:.15rem;flex-shrink:0}.field-hint{font-size:.8rem;line-height:1.3}.device-registry-brand-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem}.device-registry-brand-row{display:grid;grid-template-columns:1fr 5rem auto;gap:.5rem;align-items:center}.pump-device-registry-table .input-compact{width:6.5rem}.pump-device-registry-table .table-actions{white-space:nowrap}.btn-sm{padding:.25rem .55rem;font-size:.85rem}@media print{.no-print{display:none!important}.dashboard:has(.work-report-print-page)>.topbar,.dashboard:has(.temp-report-print-page)>.topbar,.dashboard:has(.work-report-print-page)>.footer,.dashboard:has(.temp-report-print-page)>.footer{display:none!important}.dashboard:has(.work-report-print-page)>.main,.dashboard:has(.temp-report-print-page)>.main{padding:0!important;margin:0!important;max-width:none!important}.app-layout nav,.app-layout .sidebar,.maintenance-print-page .page-header,.work-report-print-page .page-header,.temp-report-print-page .page-header{display:none!important}.maintenance-print-page .maintenance-print-host,.work-report-print-page .work-report-print-host,.temp-report-print-page .temp-report-print-host{border:none;padding:0;background:#fff}}.input-warning input{border-color:#f97316}.input-disabled input,.inline-check-disabled{opacity:.65;cursor:not-allowed}.required-mark{color:var(--danger)}.global-admin-duplicate-groups{display:grid;gap:1rem;margin-top:1rem}.global-admin-duplicate-group{margin:0}.global-admin-duplicate-group-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.global-admin-duplicate-group-head h3{margin:0 0 .25rem}.portal-preview-banner{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem;padding:.75rem 1rem;border-radius:8px;border:1px solid #f59e0b;background:#fffbeb;color:#92400e}.portal-preview-banner .muted{color:#b45309}.customer-list-no-subscriber{font-style:italic}.huolto-energy-dashboard{display:flex;flex-direction:column;gap:1rem}.huolto-energy-dashboard-heading{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted, #666);margin-bottom:.35rem}.huolto-energy-balance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}.huolto-energy-balance-card{display:flex;flex-direction:column;gap:.2rem;padding:.65rem .75rem;border-radius:8px;border:1px solid var(--border, #ddd);background:#f8fafc}.huolto-energy-balance-card strong{font-size:1.05rem}.huolto-energy-balance-input{border-color:#90caf9;background:#e3f2fd}.huolto-energy-balance-electric{border-color:#ffe082;background:#fff8e1}.huolto-energy-balance-total{border-color:#ffcc80;background:#fff3e0}.huolto-energy-cop-badge{display:inline-block;margin-top:.35rem;padding:.2rem .5rem;border-radius:999px;font-size:.8rem;background:#e8f5e9;color:#2e7d32}.inventory-subtabs{margin-bottom:.75rem}.inventory-stock-filters{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem}.inventory-add-actions{display:flex;flex-wrap:wrap;gap:.35rem;margin-left:auto}.inventory-card-actions{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.5rem}.inventory-report-panel .inventory-report-dates{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-top:.75rem}.inventory-stock-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.75rem;margin-bottom:1rem}.inventory-stock-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem}.inventory-stock-toolbar-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.inventory-scan-btn{display:inline-flex;align-items:center;gap:.35rem}.inventory-scan-dialog{width:min(100%,28rem)}.inventory-scan-dialog-hint{margin:0 0 .75rem;font-size:.9rem}.inventory-scan-reader{width:100%;min-height:16rem;border-radius:var(--radius);overflow:hidden;background:#000}.inventory-scan-reader video{border-radius:var(--radius)}.inventory-scan-status{margin:.75rem 0 0;font-size:.9rem}.inventory-scan-actions{flex-wrap:wrap}.inventory-bottle-detail-dialog{width:min(100%,34rem)}.inventory-bottle-detail-head{display:flex;gap:.85rem;align-items:flex-start;margin-bottom:1rem}.inventory-bottle-detail-head-text{flex:1;min-width:0}.inventory-bottle-detail-head-text h2{margin:0;font-size:1.15rem;line-height:1.25}.inventory-bottle-detail-list{margin:0 0 1rem}.inventory-bottle-detail-actions{flex-wrap:wrap}.inventory-bottle-detail-print{display:inline-flex;align-items:center;gap:.35rem}.inventory-bottle-qr-dialog{width:min(100%,28rem)}.inventory-bottle-qr-hint{margin:0 0 1rem;font-size:.9rem;line-height:1.45}.inventory-bottle-qr-preview{display:flex;justify-content:center;margin-bottom:1rem;padding:.75rem;background:#fff;border:1px solid var(--border);border-radius:var(--radius)}.inventory-bottle-qr-preview img{display:block;width:220px;height:220px}.inventory-bottle-qr-url{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem;font-size:.85rem}.inventory-bottle-qr-url input{width:100%;font-size:.82rem}.inventory-bottle-qr-actions{flex-wrap:wrap}.inventory-filter-label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}.inventory-filter-label select{min-width:7rem}.inventory-capacity-group{margin-bottom:1.25rem}.inventory-capacity-heading{font-size:.95rem;font-weight:600;margin:0 0 .5rem;color:var(--muted, #555)}.inventory-bottle-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:.85rem}.inventory-bottle-grid-span{grid-column:1 / -1}.inventory-bottle-card{display:flex;flex-direction:column;align-items:stretch;position:relative;padding:.75rem;border:1px solid var(--border);border-radius:12px;background:var(--bg-surface);box-shadow:var(--shadow-sm)}.inventory-bottle-card.inventory-bottle-menu-open{z-index:3}.inventory-bottle-card.inventory-bottle-empty{border-style:dashed;background:var(--bg-muted)}.inventory-bottle-card-visual{display:flex;flex-direction:column;align-items:center;gap:.35rem;margin-bottom:.35rem}.inventory-bottle-card-title{font-size:.88rem;word-break:break-word}.inventory-bottle-card-title-btn{flex:1;min-width:0;padding:0;border:0;background:none;color:inherit;font:inherit;font-size:.88rem;font-weight:700;line-height:1.25;text-align:left;word-break:break-word;cursor:pointer}.inventory-bottle-card-title-btn:hover:not(:disabled){color:var(--accent, #2563eb);text-decoration:underline}.inventory-bottle-card-title-btn:disabled{cursor:default}.inventory-bottle-card-badges{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.35rem}.inventory-bottle-card-meta,.inventory-bottle-card-note{margin:.35rem 0 0;font-size:.78rem;line-height:1.35}.inventory-bottle-card-actions{display:none}.inventory-bottle-title-row{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:.35rem;width:100%;margin-top:.15rem}.inventory-bottle-menu-anchor{flex-shrink:0;margin-left:auto}.inventory-bottle-menu-anchor .toolbar-popover-panel{right:0;left:auto;min-width:11rem}.inventory-bottle-menu-btn{width:2rem;height:2rem;padding:0}.inventory-bottle-menu-item{display:block;width:100%;padding:.6rem .75rem;border:none;border-radius:8px;background:transparent;font:inherit;font-size:.88rem;font-weight:600;text-align:left;color:var(--text-secondary);cursor:pointer}.inventory-bottle-menu-item:hover:not(:disabled){background:var(--bg-subtle);color:var(--text)}.inventory-bottle-menu-item:disabled{opacity:.55;cursor:not-allowed}.inventory-bottle-menu-item-primary{color:var(--primary)}.inventory-photo-thumb-md{width:100%}.inventory-photo-thumb-md .inventory-photo-btn{width:100%;aspect-ratio:3 / 4;max-height:140px;border-radius:10px}.inventory-photo-btn-bottle{color:var(--text-subtle);background:#fff}.inventory-photo-btn-bottle img,.inventory-bottle-default-img{object-fit:contain;padding:.35rem;background:#fff}.inventory-bottle-badge{font-size:.7rem;font-weight:600;padding:.1rem .45rem;border-radius:999px;background:#e0e7ff;color:#3730a3}.inventory-bottle-badge-muted{background:#f3f4f6;color:#4b5563}.inventory-bottle-state{font-weight:600;margin:.35rem 0 .25rem}.inventory-bottle-state-empty{color:#6b7280}.inventory-bottle-meter{height:6px;border-radius:3px;background:#e5e7eb;overflow:hidden;margin-top:.35rem}.inventory-bottle-meter-fill{height:100%;background:#2563eb;border-radius:3px}.inventory-fill-form{margin-top:.75rem;padding:.75rem}.inventory-fill-form h4{margin:0 0 .5rem;font-size:.9rem}.inventory-fill-form-actions{display:flex;gap:.5rem;margin-top:.5rem}.inventory-check{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.inventory-bottle-add-form{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.inventory-bottle-editor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem;margin-top:.75rem}.inventory-bottle-editor-wide{grid-column:1 / -1}.inventory-bottle-table .inventory-bottle-cell-id{display:flex;align-items:flex-start;gap:.5rem}.inventory-bottle-table .inventory-bottle-note{display:block;font-size:.8rem}.inventory-bottle-actions .inventory-card-actions{flex-wrap:wrap;justify-content:flex-end}.inventory-bottle-row-empty td{background:#fafafa}.offline-banner,.pwa-install-banner,.pwa-update-banner{margin:.75rem 1rem 0;max-width:none;padding:.75rem 1rem;border-radius:8px;font-size:.9rem}.dashboard .offline-banner,.dashboard .pwa-install-banner,.dashboard .pwa-update-banner{margin:0 auto 1rem;max-width:960px}.offline-banner{background:#fef3c7;border:1px solid #f59e0b;color:#92400e}.pwa-install-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;background:#eff6ff;border:1px solid #93c5fd}.pwa-install-banner-text{display:flex;flex-direction:column;gap:.15rem}.pwa-install-banner-actions{display:flex;gap:.5rem}.pwa-update-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;background:#ecfdf5;border:1px solid #6ee7b7}.trip-leg-section{margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border)}.trip-leg-hint{margin:0 0 .75rem;font-size:.88rem}.trip-leg-head-actions{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.trip-leg-calc-error{margin:0 0 .75rem;font-size:.88rem}.trip-leg-calc-btn{align-self:end;margin-bottom:.15rem}.trip-leg-total{font-weight:600;color:var(--text-muted)}.trip-leg-row{display:grid;grid-template-columns:minmax(120px,1.1fr) minmax(140px,1.3fr) 5.5rem minmax(180px,auto);gap:.65rem;align-items:end;padding:.65rem 0;border-top:1px solid var(--border)}.trip-leg-row-actions{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;align-self:end}.trip-leg-row-return{background:var(--bg-muted);border-radius:8px;padding-left:.35rem;padding-right:.35rem}.trip-destination-field{position:relative;display:flex;flex-direction:column;gap:.25rem;min-width:0}.trip-destination-field>label{font-size:.88rem;color:var(--text-muted)}.trip-destination-input{width:100%}.trip-destination-suggestions{position:absolute;top:calc(100% + .2rem);left:0;right:0;z-index:30;margin:0;padding:.25rem 0;list-style:none;max-height:14rem;overflow:auto;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-md)}.trip-destination-suggestions li button{width:100%;border:0;background:transparent;text-align:left;padding:.45rem .65rem;cursor:pointer;display:flex;flex-direction:column;gap:.1rem}.trip-destination-suggestions li button:hover,.trip-destination-suggestions li button.is-active{background:var(--bg-muted)}.trip-destination-suggestion-label{font-size:.92rem;color:var(--text)}.trip-destination-suggestion-meta{font-size:.8rem;color:var(--text-muted)}.daily-log-dialog .daily-log-form{gap:.5rem}.daily-log-dialog-section.collapsible-section{margin:0;border-radius:10px;box-shadow:none;min-height:min-content}.daily-log-dialog-section .collapsible-header{padding:.75rem .9rem;min-height:2.85rem}.daily-log-dialog-section .collapsible-title{font-size:.95rem}.daily-log-dialog-section .collapsible-body{padding:.65rem .9rem .85rem;display:grid;gap:.65rem}.daily-log-dialog-section.expense-line-section{border-width:1px;border-color:var(--border)}.daily-log-dialog-section.expense-line-section .collapsible-header{padding:.6rem .75rem;min-height:2.5rem;background:var(--bg-subtle)}.daily-log-dialog-section.expense-line-section .collapsible-title{font-size:.88rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.expense-section-in-dialog{border:0;padding:0;box-shadow:none;background:transparent;gap:.5rem}.expense-row-fields{display:grid;gap:.65rem;grid-template-columns:1fr}.expense-price-pair{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.trip-leg-dialog-section .trip-leg-section{border:0;padding:0;background:transparent;gap:.65rem}.trip-leg-dialog-section .trip-leg-head-actions{display:flex;flex-wrap:wrap;gap:.5rem}.billing-breakdown{display:grid;gap:.85rem}.billing-breakdown-heading{margin:.25rem 0 0;font-size:.92rem;font-weight:700;color:var(--text-secondary)}.billing-breakdown-heading.muted-heading{font-weight:600}.billing-table-detail th,.billing-table-detail td{font-size:.88rem;vertical-align:top}.billing-table-detail td:nth-child(4){word-break:break-word;max-width:12rem}.billing-table-excluded tbody tr{opacity:.85}.expense-billing-options{grid-column:1 / -1;display:flex;flex-direction:column;gap:.5rem}.expense-billing-options .compact-option{margin:0}.expense-section-hint{margin:0 0 .75rem;font-size:.9rem;line-height:1.45}.expense-billing-mode-fieldset{grid-column:1 / -1;margin:.25rem 0 0;padding:.75rem 1rem;border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;gap:.5rem}.expense-billing-mode-fieldset legend{padding:0 .35rem;font-size:.9rem;color:var(--text-muted)}.expense-row-auto{background:var(--bg-muted);border-radius:8px;padding:.35rem}.expense-auto-note{margin:0;grid-column:1 / -1;font-size:.85rem}.trip-departure-source-fieldset{margin:.75rem 0 0;padding:.75rem 1rem;border:1px solid var(--border);border-radius:8px;display:flex;flex-wrap:wrap;gap:1rem}.trip-departure-source-fieldset legend{padding:0 .35rem;font-size:.9rem;color:var(--text-muted)}.trip-destinations-group{margin-top:.75rem}.trip-destinations-group h3{margin:0 0 .35rem;font-size:1rem}.trip-destinations-list{list-style:none;margin:0;padding:0}.trip-destinations-list li{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem 0;border-top:1px solid var(--border)}.trip-destinations-list li strong{display:block}.trip-destinations-list li .muted{display:block;font-size:.88rem}.trip-destination-add-form{margin-top:1rem;display:flex;flex-direction:column;align-items:flex-start;gap:.75rem}.trip-leg-bill-check{align-self:center;margin-bottom:.35rem}@media(max-width:640px){.trip-leg-row{grid-template-columns:1fr}}.temp-device-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.temp-device-list-item{display:flex;align-items:stretch;gap:.5rem}.temp-device-list-item .temp-device-card{flex:1;min-width:0}.temp-device-list-item .icon-btn{flex-shrink:0;align-self:center}.temp-device-card{display:block;padding:1rem 1.1rem;border-radius:10px;border:1px solid var(--border);background:var(--bg-surface);box-shadow:var(--shadow-sm)}.temp-device-card:hover{border-color:var(--link)}.temp-device-card-static{flex:1;min-width:0}.temp-device-card-static:hover{border-color:var(--border)}.temp-device-alarm-badge{font-size:.75rem}.badge-alert{background:#fee2e2;color:#b91c1c}.badge-warning{background:#fef3c7;color:#b45309}.vrf-detail-page .vrf-hero{display:block}.vrf-status-panel{display:flex;flex-direction:column;gap:1rem}.vrf-status-meta{display:flex;flex-wrap:wrap;gap:.5rem .85rem;align-items:center;font-size:.88rem}.vrf-di-info-anchor{position:relative;margin-left:auto}.vrf-di-info-btn{display:inline-flex;align-items:center;gap:.3rem;min-height:2rem;padding:.2rem .55rem;color:var(--text-muted);background:transparent;border-color:var(--border)}.vrf-di-info-btn--open,.vrf-di-info-btn:hover{color:var(--text)}.vrf-di-popover{position:absolute;top:calc(100% + .35rem);right:0;z-index:30;width:min(22rem,calc(100vw - 2rem));padding:.75rem .85rem;border-radius:10px;border:1px solid var(--border);background:var(--bg-elevated, var(--bg-surface));box-shadow:0 8px 24px #0000001f}.vrf-di-popover-title{margin:0 0 .5rem;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.vrf-di-popover-hint{margin:.55rem 0 0;font-size:.82rem;line-height:1.45;color:var(--text-muted)}.vrf-status-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.85rem}.vrf-di-status-list{margin:0;padding:0;list-style:none;display:grid;gap:.45rem;font-size:.86rem}.vrf-di-status-list li{display:grid;gap:.1rem;color:var(--text-muted)}.vrf-di-status-list li span{font-size:.84rem}.vrf-di-status-list strong{color:var(--text);font-weight:600;font-size:.88rem}.vrf-status-card{display:flex;flex-direction:column;gap:.35rem;padding:.85rem 1rem;border-radius:12px;border:1px solid var(--border);background:var(--bg-surface);min-height:0}.vrf-status-card-label{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.vrf-status-headline{margin:0;font-size:1.45rem;line-height:1.15;font-weight:800}.vrf-status-detail{margin:0;font-size:.9rem;line-height:1.45;color:var(--text-muted)}.vrf-status-delay-reset{margin-top:.65rem}.vrf-status-permit-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.vrf-status-permit-value{margin:0;font-size:1.45rem;font-weight:800;line-height:1.15}.vrf-status-permit-value--on{color:#15803d}.vrf-status-permit-value--off{color:#64748b}.vrf-status-permit-value--blocked{color:#b45309}.vrf-status-permit-value--unknown{color:#64748b}.vrf-status-card--heat{border-color:#f9731659;background:linear-gradient(135deg,#f9731614,#f9731605)}.vrf-status-card--heat .vrf-status-headline{color:#c2410c}.vrf-status-card--defrost{border-color:#14b8a659;background:linear-gradient(135deg,#14b8a61a,#14b8a605)}.vrf-status-card--defrost .vrf-status-headline{color:#0f766e}.vrf-status-card--idle{border-color:#3b82f647;background:linear-gradient(135deg,#3b82f612,#3b82f605)}.vrf-status-card--idle .vrf-status-headline{color:#1d4ed8}.vrf-status-card--off{border-color:#64748b59;background:linear-gradient(135deg,#64748b14,#64748b05)}.vrf-status-card--off .vrf-status-headline{color:#475569}.vrf-status-card--alarm{border-color:#ef444466;background:linear-gradient(135deg,#ef44441a,#ef444405)}.vrf-status-card--alarm .vrf-status-headline{color:#b91c1c}.vrf-status-card--wait{border-color:#f59e0b66;background:linear-gradient(135deg,#f59e0b1f,#f59e0b05)}.vrf-status-card--wait .vrf-status-headline{color:#b45309}.vrf-status-card--unknown .vrf-status-headline{color:var(--text-muted)}.vrf-status-card--permit-on{border-color:#22c55e59}.vrf-status-card--permit-off{border-color:#64748b4d}.vrf-status-card--permit-blocked{border-color:#f59e0b66;background:linear-gradient(135deg,#f59e0b14,#f59e0b05)}.vrf-status-card--permit-unknown{border-color:#64748b40}.vrf-hero--alarm{border-color:#fecaca}.vrf-hero-badges{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.75rem}.vrf-hero-side{text-align:right}.vrf-permit-block{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-top:.25rem}.vrf-permit-title{margin:0 0 .35rem;font-size:1.05rem}.vrf-permit-desc{margin:0;max-width:36rem;font-size:.92rem;line-height:1.45}.vrf-permit-hint{margin:.35rem 0 0;font-size:.88rem}.vrf-toggle{display:inline-flex;align-items:center;justify-content:space-between;width:5.75rem;height:2.125rem;padding:0 .5rem;border-radius:999px;border:1px solid rgba(255,255,255,.28);font-size:.74rem;font-weight:800;letter-spacing:.07em;color:#fff;box-shadow:0 4px 14px #0000002e,inset 0 1px #ffffff38;-webkit-user-select:none;user-select:none}.vrf-toggle--lg{width:6.75rem;height:2.5rem;font-size:.8rem}.vrf-toggle--on{flex-direction:row-reverse;background:linear-gradient(165deg,#4ade80,#16a34a 42%,#15803d)}.vrf-toggle--off{flex-direction:row;background:linear-gradient(165deg,#fb7185,#dc2626 45%,#991b1b)}.vrf-toggle--disabled{opacity:.58;cursor:not-allowed}.vrf-toggle--pending{opacity:.92;cursor:wait}button.vrf-toggle:not(:disabled){cursor:pointer}.vrf-toggle-knob{position:relative;flex-shrink:0;width:1.625rem;height:1.625rem;border-radius:50%;background:#fff;box-shadow:0 2px 6px #00000047,inset 0 -1px #0000000f}.vrf-toggle-spinner{position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#0f172a8c;animation:vrf-toggle-spin .65s linear infinite}@keyframes vrf-toggle-spin{to{transform:rotate(360deg)}}.vrf-toggle--lg .vrf-toggle-knob{width:1.875rem;height:1.875rem}.vrf-toggle-label{flex:1;text-align:center}.vrf-toggle--on .vrf-toggle-label{text-align:left;padding-left:.15rem}.vrf-di-pill{display:inline-flex;align-items:center;justify-content:center;min-width:3.25rem;padding:.35rem .75rem;border-radius:999px;font-size:.74rem;font-weight:800;letter-spacing:.06em;color:#fff}.vrf-di-pill--on{background:linear-gradient(165deg,#4ade80,#16a34a)}.vrf-di-pill--off{background:linear-gradient(165deg,#94a3b8,#64748b)}.vrf-di-pill--alarm-on{background:linear-gradient(165deg,#f87171,#dc2626)}.vrf-di-pill--unknown{background:#e2e8f0;color:var(--text-muted);font-weight:700}.vrf-di-list{list-style:none;padding:0;margin:0 0 1rem}.vrf-di-list li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--border)}.vrf-di-list li p{margin:.2rem 0 0;font-size:.88rem}.vrf-settings-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--border)}.vrf-settings-toggle-row p{margin:.25rem 0 0;font-size:.88rem}.vrf-hp-board{position:relative;padding:.85rem;border-radius:16px;background:linear-gradient(165deg,rgba(79,140,255,.08),transparent 42%),linear-gradient(#0b1224,#080f1d);border:1px solid rgba(79,140,255,.22);box-shadow:0 18px 48px #0000001f}.vrf-hp-board--stale .vrf-hp-wrap{filter:grayscale(.12) brightness(.93)}.vrf-hp-board--comp-running .vrf-hp-schematic-img{filter:brightness(1.07) saturate(1.05)}.vrf-hp-stale-note{margin:0 0 .65rem;padding:.55rem .75rem;border-radius:8px;background:#fbbf241f;color:#fde68a;font-size:.88rem}.vrf-hp-wrap{position:relative;width:100%;aspect-ratio:715.466 / 366.674;border-radius:12px;overflow:hidden;background:#060b14}.vrf-hp-schematic-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.vrf-hp-hotspot{position:absolute;z-index:2;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;align-items:baseline;column-gap:.25rem;row-gap:0;padding:.55rem .65rem;min-width:6.5rem;max-width:9rem;border-radius:10px;border:1px solid rgba(148,163,184,.38);background:#0f172aeb;color:#e2e8f0;font-size:.72rem;box-shadow:0 10px 28px #00000059}.vrf-hp-hotspot-eyebrow{grid-column:1 / -1;font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8}.vrf-hp-hotspot-value{font-size:1.15rem;font-weight:700;line-height:1}.vrf-hp-hotspot-unit{font-size:.72rem;color:#94a3b8;align-self:end;padding-bottom:1px}.vrf-hp-hotspot--sky{left:89%;top:43%;transform:translate(-100%)}.vrf-hp-hotspot--tent{left:50%;top:52%;max-width:9.5rem;transform:translate(-50%)}.vrf-hp-hotspot--coil{left:70%;top:43%;transform:translate(-50%)}.vrf-hp-hotspot--supply{left:15%;top:76%}.vrf-hp-hotspot--return{left:15%;top:10%}.vrf-hp-hotspot--hotgas{left:50%;top:36%;max-width:9.5rem;transform:translate(-50%)}.vrf-hp-di-badge{position:absolute;z-index:3;display:flex;flex-direction:column;gap:.08rem;min-width:5.75rem;padding:.35rem .55rem;border-radius:8px;border:1px solid rgba(148,163,184,.35);background:#0f172ae0;color:#94a3b8;font-size:.62rem;letter-spacing:.03em}.vrf-hp-di-badge-eyebrow{font-size:.68rem;font-weight:700;color:#e2e8f0;text-transform:none;letter-spacing:.01em;line-height:1.2}.vrf-hp-di-badge-pin{font-size:.58rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.vrf-hp-di-badge strong{color:#cbd5e1;font-size:.78rem;font-weight:800;text-transform:none;letter-spacing:0;line-height:1.2}.vrf-hp-di-badge.active strong{color:#fff}.vrf-hp-di-badge--unit{left:2%;bottom:4%}.vrf-hp-di-badge--unit.active{border-color:#22c55e;background:#1665348c}.vrf-hp-di-badge--comp{left:2%;bottom:24%}.vrf-hp-di-badge--comp.active{border-color:#38bdf8;background:#0369a18c}.vrf-hp-di-badge--alarm{right:2%;bottom:4%}.vrf-hp-di-badge--alarm.active{border-color:#ef4444;background:#7f1d1da6}.vrf-hp-di-badge--alarm:not(.active){border-color:#22c55e73}.vrf-hp-di-badge--alarm:not(.active) strong{color:#86efac}.vrf-wiring-table{width:100%;border-collapse:collapse;margin:.75rem 0 1rem;font-size:.9rem}.vrf-wiring-table th,.vrf-wiring-table td{border:1px solid var(--border);padding:.55rem .65rem;text-align:left;vertical-align:top}.vrf-wiring-table th{background:var(--bg-muted)}.vrf-wiring-steps{margin:.5rem 0 1rem;padding-left:1.25rem;line-height:1.5}.vrf-wiring-diagram{margin:.75rem 0 1rem;padding:.85rem 1rem;border-radius:10px;background:var(--bg-muted);border:1px solid var(--border);overflow-x:auto}.vrf-wiring-diagram pre{margin:0;font-size:.82rem;line-height:1.45;white-space:pre;font-family:ui-monospace,Cascadia Code,Consolas,monospace}.vrf-wiring-note{font-size:.88rem}.vrf-schematic-panel{overflow:hidden}.vrf-tab-row{display:flex;flex-wrap:wrap;gap:.5rem}.vrf-tab{border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--text);border-radius:999px;padding:.55rem 1rem;cursor:pointer;font-weight:600}.vrf-tab.active{background:#0f766e;border-color:#0f766e;color:#fff}.vrf-temp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.75rem}.vrf-temp-card{padding:.85rem 1rem;border:1px solid var(--border);border-radius:10px;background:var(--bg-muted)}.vrf-temp-label{display:block;font-size:.85rem;color:var(--text-muted);margin-bottom:.35rem}.vrf-temp-value{font-size:1.35rem;color:var(--link)}.vrf-status-list,.vrf-alarm-list{list-style:none;padding:0;margin:0}.vrf-status-list li,.vrf-alarm-list li{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--border)}.vrf-alarm-item{color:#b91c1c;font-weight:600}.vrf-trend-legend{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:.5rem}.vrf-trend-legend-item{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem}.vrf-trend-legend-dot{width:.65rem;height:.65rem;border-radius:50%}.vrf-settings-toggle-row--warn{padding:.75rem .85rem;border-radius:10px;border:1px solid color-mix(in srgb,#f59e0b 45%,var(--border));background:color-mix(in srgb,#f59e0b 8%,var(--bg-surface))}.vrf-settings-fieldset{border:1px solid var(--border);border-radius:10px;padding:.85rem 1rem;display:grid;gap:.75rem}.vrf-settings-fieldset-lead{margin:0 0 .75rem;font-size:.88rem;grid-column:1 / -1}.vrf-settings-details{margin:.5rem 0 0;padding:.65rem .85rem;border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,var(--bg-surface) 92%,var(--border))}.vrf-settings-details>summary{cursor:pointer;font-weight:600;font-size:.92rem}.vrf-settings-details-lead{margin:.65rem 0 .5rem;font-size:.88rem}.vrf-cnh-di-readout{margin:0 0 .75rem;font-size:.9rem}.vrf-settings-danger{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--border)}.vrf-settings-danger-lead{margin:0 0 .75rem;font-size:.88rem}.vrf-trend-hint{margin:0 0 .65rem;font-size:.88rem}.vrf-trend-section{display:grid;gap:1rem}.vrf-trend-head{align-items:flex-start}.vrf-trend-meta{margin:.25rem 0 0;font-size:.88rem}.vrf-trend-range{display:flex;flex-wrap:wrap;gap:.35rem}.vrf-trend-range-btn{border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--text);border-radius:999px;padding:.4rem .75rem;font-size:.85rem;font-weight:600;cursor:pointer}.vrf-trend-range-btn.active{background:#0f766e;border-color:#0f766e;color:#fff}.vrf-trend-range-btn:disabled{opacity:.55;cursor:wait}.vrf-trend-block{display:grid;gap:.5rem}.vrf-trend-block-toggle{justify-self:start;border:none;background:none;color:var(--text);font-weight:700;font-size:.95rem;padding:0;cursor:pointer}.vrf-trend-subtitle{margin:0;font-size:.95rem}.vrf-trend-legend-toggle{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--border);background:var(--bg-surface);border-radius:999px;padding:.25rem .55rem;font-size:.82rem;cursor:pointer;color:var(--text-muted)}.vrf-trend-legend-toggle.active{color:var(--text);border-color:var(--border-strong)}.vrf-binary-chart{overflow-x:auto}.vrf-activity-timeline{margin-bottom:.5rem}.vrf-activity-legend{display:flex;flex-wrap:wrap;gap:.45rem .85rem;margin-bottom:.75rem}.vrf-activity-legend-item{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;color:var(--text-muted)}.vrf-activity-timeline-label{color:var(--text);font-weight:600}.vrf-status-timeline{display:grid;gap:.75rem}.vrf-status-timeline-legend{display:flex;flex-wrap:wrap;gap:.45rem}.vrf-status-chip{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--border);background:var(--bg-surface);border-radius:999px;padding:.35rem .7rem;font-size:.82rem;font-weight:600;color:var(--text-muted);cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}.vrf-status-chip.active{color:var(--text);border-color:var(--chip-color, var(--border-strong));background:color-mix(in srgb,var(--chip-color, #3b82f6) 14%,var(--bg-surface));box-shadow:0 0 0 1px color-mix(in srgb,var(--chip-color, #3b82f6) 25%,transparent)}.vrf-status-chip-dot{width:.55rem;height:.55rem;border-radius:50%;flex-shrink:0}.vrf-status-timeline-body{position:relative;padding:.35rem 0 0;border-radius:12px;border:1px solid var(--border);background:linear-gradient(180deg,var(--bg-muted) 0%,var(--bg-surface) 100%);overflow:hidden}.vrf-status-timeline-axis-label{margin:0;padding:.55rem .85rem .25rem;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.vrf-status-timeline-grid{position:relative;display:grid;gap:0;padding:.25rem .65rem .35rem 0}.vrf-status-timeline-matrix{display:grid;grid-template-columns:minmax(4.75rem,6.75rem) minmax(0,1fr);gap:.55rem;padding:.15rem .65rem .35rem;align-items:stretch}.vrf-status-timeline-label-col{display:grid;gap:0;align-content:stretch}.vrf-status-timeline-track-col{position:relative;display:grid;gap:0;min-width:0}.vrf-status-timeline-vlines{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.vrf-status-timeline-vline{position:absolute;top:0;bottom:0;width:1px;background:color-mix(in srgb,var(--border-strong) 65%,transparent)}.vrf-status-timeline-row{position:relative;z-index:1;padding:.35rem 0;border-radius:8px}.vrf-status-timeline-row:nth-child(2n){background:color-mix(in srgb,var(--bg-surface) 55%,transparent)}.vrf-status-timeline-label{display:flex;align-items:center;justify-content:flex-end;min-height:2rem;padding:.35rem .15rem .35rem 0;font-size:.78rem;font-weight:700;line-height:1.2;text-align:right}.vrf-status-timeline-track{position:relative;height:2rem;min-width:0}.vrf-status-timeline-rail{position:absolute;left:0;right:0;top:50%;height:2px;transform:translateY(-50%);background:color-mix(in srgb,var(--border-strong) 80%,transparent);border-radius:999px}.vrf-status-timeline-block{position:absolute;top:50%;height:1.25rem;min-width:1px;transform:translateY(-50%);border-radius:1px;z-index:1;background:var(--block-color, #64748b);border:1px solid color-mix(in srgb,var(--block-color, #64748b) 55%,#000);box-shadow:none}.vrf-status-timeline-nodata{position:absolute;top:50%;height:1.15rem;min-width:3px;transform:translateY(-50%);border-radius:4px;z-index:0;background:repeating-linear-gradient(-45deg,color-mix(in srgb,var(--text-muted) 14%,transparent),color-mix(in srgb,var(--text-muted) 14%,transparent) 4px,color-mix(in srgb,var(--text-muted) 7%,transparent) 4px,color-mix(in srgb,var(--text-muted) 7%,transparent) 8px);border:1px dashed color-mix(in srgb,var(--text-muted) 38%,transparent);display:flex;align-items:center;justify-content:center;overflow:hidden}.vrf-status-timeline-nodata-label{font-size:.55rem;font-weight:700;letter-spacing:.02em;color:var(--text-muted);white-space:nowrap;pointer-events:none;opacity:.9}.vrf-trend-empty-hint{margin:0 0 .35rem;font-size:.82rem}.vrf-status-timeline-times{display:grid;grid-template-columns:minmax(4.75rem,6.75rem) 1fr 1fr 1fr;gap:.25rem;padding:.35rem .65rem .55rem;font-size:.72rem;font-weight:600;color:var(--text-muted);border-top:1px solid var(--border);background:color-mix(in srgb,var(--bg-surface) 90%,var(--bg-muted))}.vrf-status-timeline-times span:first-child{grid-column:2;text-align:left}.vrf-status-timeline-times span:nth-child(2){grid-column:3;text-align:center}.vrf-status-timeline-times span:last-child{grid-column:4;text-align:right}.vrf-chart-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -.15rem;padding:0 .15rem}.vrf-chart-scroll--interactive{position:relative;cursor:crosshair}.vrf-trend-crosshair{stroke:color-mix(in srgb,var(--text-muted) 75%,var(--primary));stroke-width:1;stroke-dasharray:4 3;pointer-events:none}.vrf-trend-hover-point{stroke:var(--bg-surface, #fff);stroke-width:2;pointer-events:none}.vrf-trend-hover-tip{position:absolute;top:.35rem;z-index:4;transform:translate(-50%);pointer-events:none;min-width:9rem;max-width:14rem;padding:.45rem .6rem;border-radius:8px;border:1px solid var(--border-strong);background:color-mix(in srgb,var(--bg-surface) 94%,#fff);box-shadow:0 6px 18px #0f172a24;font-size:.78rem}.vrf-trend-hover-tip-time{margin:0 0 .35rem;font-weight:700;font-size:.76rem;color:var(--text)}.vrf-trend-hover-tip-rows{list-style:none;margin:0;padding:0;display:grid;gap:.2rem}.vrf-trend-hover-tip-rows li{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.35rem}.vrf-trend-hover-tip-dot{width:.55rem;height:.55rem;border-radius:999px;flex-shrink:0}.vrf-trend-hover-tip-label{color:var(--text-muted)}.vrf-status-timeline-track-col--interactive{position:relative;cursor:crosshair}.vrf-trend-hover-crosshair{position:absolute;top:0;bottom:0;width:1px;transform:translate(-50%);background:color-mix(in srgb,var(--text-muted) 70%,var(--primary));pointer-events:none;z-index:3}.vrf-chart-scroll svg{display:block;width:100%;min-width:280px;height:auto}.vrf-hp-hotspot--clickable,.vrf-hp-di-badge--clickable{cursor:pointer;font:inherit;text-align:inherit;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.vrf-hp-hotspot--clickable:hover,.vrf-hp-hotspot--clickable:focus-visible,.vrf-hp-di-badge--clickable:hover,.vrf-hp-di-badge--clickable:focus-visible{border-color:#f0810fa6;box-shadow:0 0 0 2px #f0810f40;outline:none}.vrf-hp-di-badge--clickable{-webkit-appearance:none;-moz-appearance:none;appearance:none}.vrf-hp-hint{margin:.75rem 0 0;font-size:.85rem;text-align:center}.vrf-trend-dialog{width:min(920px,calc(100vw - 2rem));max-height:min(92vh,960px);overflow:auto}.vrf-trend-dialog-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem 1rem;margin-bottom:.75rem}.vrf-report-dialog{width:min(920px,calc(100vw - 2rem));max-height:min(92vh,960px);overflow:auto}.vrf-report-form fieldset{border:1px solid var(--border);border-radius:10px;padding:.75rem 1rem;margin:0}.vrf-report-custom-period-toggle{margin-top:.85rem;padding-top:.75rem;border-top:1px solid var(--border);width:100%;align-items:center}.vrf-report-series-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(13.5rem,1fr));gap:.55rem .85rem}.vrf-report-series-toggle{margin:0;align-items:center;width:100%}.vrf-report-series-toggle .toggle-switch-icon{display:inline-flex;align-items:center;flex-shrink:0}.vrf-report-series-toggle .toggle-switch-label{color:var(--text);font-weight:600;font-size:.88rem;line-height:1.25}.vrf-report-series-toggle:not(:has(.toggle-switch-input:checked)) .toggle-switch-label{color:var(--text-muted)}.vrf-report-preview{margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border)}.vrf-alarm-banner{margin:0;padding:.75rem 1rem;border-radius:10px;border:1px solid rgba(239,68,68,.35);background:#ef444414}.vrf-di-contradiction-banner{border-color:#f59e0b73;background:#f59e0b1a}.vrf-di-contradiction-title{margin:0 0 .5rem;font-size:.92rem}.vrf-reader-badge{margin-bottom:.35rem}.vrf-reader-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem 1rem}.vrf-reader-head-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.vrf-reader-subtitle{margin:.25rem 0 0}.vrf-hero--reader .vrf-status-permit-head .vrf-toggle{display:none}.vrf-reader-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.75rem;margin-top:.75rem}.vrf-reader-status-item{display:flex;flex-direction:column;gap:.2rem;padding:.65rem .75rem;border-radius:10px;border:1px solid var(--border);background:var(--bg-surface)}.vrf-reader-login-note{margin-top:.5rem;font-size:.85rem}.vrf-share-dialog{width:min(760px,calc(100vw - 2rem));max-height:min(92vh,900px);overflow:auto}.vrf-wiring-dialog{width:min(820px,calc(100vw - 2rem));max-height:min(92vh,900px);overflow:auto}.vrf-wiring-dialog .vrf-wiring-guide{margin-top:.25rem}.vrf-share-items{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.vrf-share-item{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.85rem;border:1px solid var(--border);border-radius:10px}.vrf-share-item.disabled{opacity:.65}.vrf-share-url{display:block;margin-top:.35rem;font-size:.78rem;word-break:break-all}.vrf-share-item-actions{display:flex;flex-wrap:wrap;gap:.45rem}.vrf-share-check{display:inline-flex;align-items:center;gap:.45rem}.monitor-reader-public{min-height:100vh;background:var(--bg-page, #0f172a);color:var(--text, #e2e8f0)}.monitor-reader-public-topbar{display:flex;align-items:center;gap:.65rem;padding:.85rem 1rem;border-bottom:1px solid rgba(148,163,184,.25)}.monitor-reader-public-main{max-width:980px;margin:0 auto;padding:1rem}.monitor-reader-login-link{margin-left:auto}.monitor-reader-hub-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.monitor-reader-hub-card{display:grid;gap:.25rem;padding:1rem;text-decoration:none;color:inherit}.monitor-reader-hub-card.disabled{opacity:.7}.vrf-binary-lane-label{fill:var(--text-muted);font-size:.62rem;font-weight:600}.vrf-binary-chart--empty{padding:.75rem 0}.vrf-settings-note{margin-top:.75rem}.temp-device-card-head,.temp-device-summary-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.temp-device-summary-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.75rem}.temp-device-card-meta{display:flex;gap:1.5rem;margin-top:.35rem;color:var(--text-muted);font-size:.95rem}.temp-status{font-size:.8rem;font-weight:600;padding:.2rem .55rem;border-radius:999px}.temp-status.online{background:#dcfce7;color:#166534}.temp-status.offline{background:#fee2e2;color:#991b1b}.temp-device-key{display:block;margin:.75rem 0;padding:.75rem;border-radius:8px;background:var(--bg-muted);word-break:break-all;font-size:.85rem}.temp-device-key--inline{display:inline;margin:0;padding:.15rem .35rem;font-size:inherit}.temp-ap-guide{margin-top:.5rem}.temp-ap-steps{margin:.75rem 0 0;padding-left:1.25rem;line-height:1.5}.temp-ap-steps li+li{margin-top:.5rem}.temp-ap-note{margin-top:.75rem}.temp-key-panel{border:1px solid #5eead4;background:#f0fdfa}.temp-ingest-url code{word-break:break-all}.temp-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin:1rem 0 0}.temp-summary-grid dt{font-size:.8rem;color:var(--text-muted)}.temp-summary-grid dd{margin:.15rem 0 0;font-size:1.1rem;font-weight:600}.temp-chart{width:100%;border:1px solid var(--border);border-radius:10px;background:var(--bg-surface);padding:.65rem .75rem}.temp-chart svg{width:100%;min-width:320px;height:auto}.temp-chart-grid{stroke:var(--border);stroke-width:1}.temp-chart-line{stroke-width:3;stroke-linecap:round;stroke-linejoin:round;fill:none}.temp-chart-line--neutral{stroke:#64748b}.vrf-trend-point{stroke:var(--bg-surface, #fff);stroke-width:1.5;pointer-events:none}.temp-chart-point{fill:#16a34a;stroke:#fff;stroke-width:1}.temp-chart-point--deviation{fill:#dc2626}.temp-chart-point--neutral{fill:#64748b}.temp-chart-label{fill:#475569;font-size:12px;font-weight:600}.temp-chart-axis-line{stroke:var(--border-strong);stroke-width:1}.temp-chart-axis-tick{stroke:var(--text-muted);stroke-width:1}.temp-chart-axis-label{fill:#475569;font-size:12px;font-weight:500}.temp-chart--empty{min-height:120px;display:grid;place-items:center}.temp-session-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.temp-report-list-item{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem}.temp-report-list-actions{display:flex;flex-wrap:wrap;gap:.5rem}.temp-active-session{display:grid;gap:.5rem}.temp-live-session-note{margin:0;font-size:.9rem;line-height:1.45}.temp-report-dialog-lead{margin:0 0 1rem}.temp-panel-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:-.15rem 0 1rem;padding-bottom:.85rem;border-bottom:2px solid var(--bg-inset)}.temp-panel-head h2{margin:0;padding:0;border:0;font-size:1.05rem;font-weight:600;color:var(--text)}.temp-devices-panel{padding:1.25rem 1.35rem}.temp-devices-count{font-size:.85rem;white-space:nowrap}.temp-device-card-offline-label{font-size:.9rem;font-weight:600;white-space:nowrap;align-self:center}.temp-live-hero-offline-note{margin:.35rem 0 0;font-size:.9rem}.temp-device-summary-badges{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.temp-compliance{font-size:.8rem;font-weight:600;padding:.2rem .55rem;border-radius:999px}.temp-compliance--ok{background:#dcfce7;color:#166534}.temp-compliance--warning{background:#fef3c7;color:#92400e}.temp-compliance--alert{background:#fee2e2;color:#991b1b}.temp-compliance--unknown{background:var(--bg-muted);color:var(--text-muted)}.temp-settings-range-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.temp-settings-hint{margin:0;font-size:.85rem}.temp-session-settings-dialog{width:min(520px,calc(100vw - 2rem))}.temp-chart-band-acceptable{fill:#22c55e12}.temp-chart-band-target{fill:#0ea5e917}.temp-chart-legend{margin-top:.35rem}.temp-chart-legend .vrf-trend-legend-item{font-size:.9rem;color:var(--text);font-weight:500}.temp-chart-legend-target:before,.temp-chart-legend-acceptable:before,.temp-chart-legend-in-range:before,.temp-chart-legend-deviation:before{content:"";display:inline-block;width:.75rem;height:.75rem;margin-right:.35rem;border-radius:2px;vertical-align:middle}.temp-chart-legend-target:before{background:#0ea5e973}.temp-chart-legend-acceptable:before{background:#22c55e59}.temp-chart-legend-in-range:before{background:#16a34a}.temp-chart-legend-deviation:before{background:#dc2626}.temp-trend-live{margin:.15rem 0 0;font-size:.8rem}@media(max-width:640px){.temp-settings-range-row{grid-template-columns:1fr}}.temp-panel-head-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.temp-report-dialog{width:min(720px,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow:auto}.temp-report-preview{margin:0}.temp-report-list-item{display:flex;align-items:center;justify-content:space-between;gap:1rem}.temp-report-print-host{border:1px solid var(--border);border-radius:10px;background:#fff;padding:1rem}.nested-panel{background:var(--bg-muted)}.temp-monitoring-page{padding-bottom:1rem}.temp-page-header{margin-bottom:0;padding:1.15rem 1.35rem;align-items:flex-start}.temp-page-header--sticky{position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--bg-surface) 96%,var(--bg-page));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.temp-page-header-main{min-width:0;flex:1}.temp-page-header-actions{padding-top:.15rem}.temp-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;margin:0 0 .35rem;font-size:.85rem}.temp-breadcrumb a{color:var(--link)}.temp-breadcrumb a:hover{color:var(--link-hover);text-decoration:underline}.temp-breadcrumb-sep{margin:0 .15rem;color:var(--text-muted)}.temp-page-header h1{margin:0;font-size:clamp(1.35rem,4vw,1.75rem)}.temp-page-subtitle{margin-top:.35rem;font-size:.9rem}.temp-page-header-actions .btn{min-height:44px}.temp-status{display:inline-flex;align-items:center;gap:.35rem}.temp-status-dot{width:.55rem;height:.55rem;border-radius:999px;background:currentColor}.temp-status.online .temp-status-dot{box-shadow:0 0 0 3px #1665342e}.temp-device-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.temp-device-card-title-wrap{display:flex;flex-direction:column;gap:.35rem;min-width:0}.temp-device-card-title{font-size:1.05rem;line-height:1.25}.temp-device-card-temp{font-size:clamp(1.35rem,5vw,1.75rem);font-weight:700;line-height:1;color:#0369a1;white-space:nowrap}.temp-device-card-cta{margin-left:auto;color:var(--link);font-weight:600}.temp-device-delete-btn{min-width:44px;min-height:44px;padding:.55rem .75rem;border-radius:10px;border:1px solid #fecaca;background:#fff;color:var(--danger);font-size:.85rem;font-weight:600;cursor:pointer}.temp-device-delete-btn:disabled{opacity:.6;cursor:not-allowed}.temp-live-hero{display:grid;gap:.85rem;border-width:2px}.temp-live-hero--online,.temp-live-hero--ok{border-color:#86efac;background:linear-gradient(180deg,#f0fdf4,#fff)}.temp-live-hero--warning{border-color:#fcd34d;background:linear-gradient(180deg,#fffbeb,#fff)}.temp-live-hero--alert{border-color:#fca5a5;background:linear-gradient(180deg,#fef2f2,#fff)}.temp-live-hero--offline{border-color:var(--border-strong);background:var(--bg-surface)}.temp-live-hero-label{margin:0;font-size:.9rem;color:var(--text-muted)}.temp-live-hero-temp{margin:.15rem 0 0;font-size:clamp(2.4rem,10vw,3.25rem);font-weight:800;line-height:1;letter-spacing:-.02em}.temp-live-hero-badges{display:flex;flex-wrap:wrap;gap:.5rem}.temp-live-hero-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1rem;margin:0}.temp-live-hero-grid dt{font-size:.78rem;color:var(--text-muted)}.temp-live-hero-grid dd{margin:.1rem 0 0;font-size:.98rem;font-weight:600}.temp-trend-panel{padding-bottom:.75rem}.temp-admin-panel.collapsible-section{padding:0;overflow:hidden}.temp-admin-panel .collapsible-header{width:100%;border:0;background:transparent;padding:1.15rem 1.35rem;text-align:left;cursor:pointer}.temp-admin-panel .collapsible-title{font-size:1.05rem;font-weight:600;color:var(--text)}.temp-admin-panel .collapsible-body{padding:0 1.35rem 1.35rem}.temp-admin-subtitle{margin:0 0 .5rem;font-size:1rem;font-weight:600}.temp-admin-panel .btn-danger{margin-top:1rem}@media(max-width:640px){.main{padding:.85rem}.temp-page-header{flex-direction:column;align-items:stretch;gap:.75rem}.temp-page-header-actions,.temp-page-header-actions .btn{width:100%}.temp-device-list-item{flex-direction:column;align-items:stretch}.temp-device-delete-btn{width:100%}.temp-device-card{padding:1rem}.temp-device-card-meta{flex-direction:column;align-items:flex-start;gap:.35rem}.temp-device-card-cta{margin-left:0}.temp-panel-head{flex-direction:column;align-items:stretch}.temp-panel-head-actions{width:100%;display:grid;grid-template-columns:1fr auto;gap:.5rem}.temp-panel-head-actions .btn{width:100%;min-height:44px}.temp-report-list-item{flex-direction:column;align-items:stretch}.temp-report-list-item .btn{width:100%;min-height:44px}.temp-live-hero-grid,.vrf-detail-page .vrf-hero{grid-template-columns:1fr}.vrf-di-info-anchor{margin-left:0}.vrf-di-popover{right:auto;left:0}.vrf-status-grid{grid-template-columns:1fr}.vrf-status-headline,.vrf-status-permit-value{font-size:1.25rem}.vrf-status-permit-head{flex-direction:column;align-items:stretch}.vrf-status-permit-head .vrf-toggle{align-self:flex-start}.vrf-trend-head{flex-direction:column;gap:.75rem}.vrf-trend-range{width:100%}.vrf-trend-range-btn{flex:1;min-width:3rem;text-align:center}.vrf-hp-hotspot{min-width:5.5rem;padding:.4rem .5rem}.vrf-hp-hotspot-value{font-size:.95rem}.vrf-hp-di-badge{font-size:.58rem;padding:.28rem .4rem}.vrf-hp-hotspot--clickable,.vrf-hp-di-badge--clickable{min-height:44px;min-width:44px}.vrf-trend-dialog,.vrf-report-dialog,.vrf-share-dialog,.vrf-wiring-dialog,.leave-draft-dialog.vrf-trend-dialog{width:calc(100vw - 1rem);max-width:none;max-height:calc(100dvh - 1rem);margin:.5rem;border-radius:14px}.leave-draft-overlay{padding:0;align-items:flex-end}.vrf-status-timeline-matrix{grid-template-columns:minmax(3.6rem,4.5rem) minmax(0,1fr);gap:.35rem;padding:.15rem .45rem .25rem}.vrf-status-timeline-label{font-size:.68rem;min-height:2.35rem}.vrf-status-timeline-track{height:2.35rem}.vrf-status-timeline-block{height:1.35rem}.vrf-status-chip{font-size:.76rem;padding:.4rem .6rem;min-height:36px}.vrf-status-timeline-times{grid-template-columns:minmax(3.6rem,4.5rem) 1fr 1fr 1fr;font-size:.66rem;padding:.35rem .45rem .5rem}.vrf-reader-head{flex-direction:column;align-items:stretch}.vrf-reader-head .btn{width:100%;min-height:44px}.vrf-reader-status-grid{grid-template-columns:1fr}.vrf-share-item{flex-direction:column}.vrf-share-item-actions{width:100%}.vrf-share-item-actions .btn{flex:1;min-height:44px}.temp-page-header{flex-direction:column;align-items:stretch;gap:.75rem;padding:1rem}.temp-page-header-actions{width:100%;display:flex;flex-wrap:wrap;gap:.5rem}.temp-page-header-actions .btn,.temp-page-header-actions .icon-button{min-height:44px}.monitor-reader-public-main{padding:.65rem}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tile{aspect-ratio:auto;min-height:118px}}.license-status-panel{margin-bottom:1rem}.license-status-dialog .license-status-panel{margin-bottom:0}.license-status-lead{margin:0 0 1rem}.license-status-trial{color:#0f766e}.license-status-expired{color:#b45309}.license-pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;margin-bottom:1rem}.license-pricing-card{border:1px solid var(--border, #e5e7eb);border-radius:.75rem;padding:.85rem;background:#fff}.license-pricing-card.is-active{border-color:#86efac;background:#f0fdf4}.license-pricing-card h3{margin:0 0 .35rem;font-size:1rem}.license-price{margin:.5rem 0 .25rem;font-weight:700}.license-state{margin:0;font-size:.9rem}.license-device-pricing-detail{margin-top:.35rem;font-size:.85rem}.license-device-pricing-detail p{margin:.2rem 0}.license-device-pricing-list{margin:.35rem 0 0;padding-left:1.1rem;font-size:.82rem}.license-usage-block{margin-top:1rem}.license-usage-list{margin:.35rem 0 0;padding-left:1.2rem}.license-locked-panel h1{margin-top:0}.license-admin-module-toggles{display:grid;gap:.65rem;margin:.75rem 0 1rem}.license-status-meta{margin:0 0 1rem}.license-order-form,.license-order-pending{margin-top:1.25rem;padding:1rem;border:1px solid var(--border-strong);border-radius:10px;background:#f8fafc}.license-order-form h3,.license-order-pending h3,.global-admin-pending-order h3{margin:0 0 .5rem;font-size:1rem}.license-order-modules{display:grid;gap:.65rem;margin:1rem 0}.license-order-module-row{display:grid;gap:.25rem;padding:.65rem .75rem;border:1px solid var(--border);border-radius:8px;background:#fff}.license-order-module-meta{font-size:.88rem;padding-left:3.4rem}.license-order-total{margin:.75rem 0 1rem;font-size:1.05rem}.license-order-module-list{margin:.5rem 0 0;padding-left:1.2rem}.global-admin-block-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.35rem}.global-admin-block-head h2{margin:0}.global-admin-overview-wrap{margin-top:.75rem}.global-admin-overview-table{font-size:.88rem}.global-admin-overview-table td,.global-admin-overview-table th{vertical-align:top}.global-admin-slug,.global-admin-sub{display:block;font-size:.78rem}.global-admin-pending-order{margin:1rem 0;padding:1rem;border:1px solid #fde047;background:#fffbeb}@media(max-width:720px){.global-admin-overview-table thead{display:none}.global-admin-overview-table tr{display:block;margin-bottom:.75rem;border:1px solid var(--border);border-radius:8px;padding:.65rem}.global-admin-overview-table td{display:flex;justify-content:space-between;gap:.5rem;padding:.25rem 0;border:none}.global-admin-overview-table td:before{content:attr(data-label);font-weight:600;color:var(--text-muted)}.license-order-module-meta{padding-left:0}}.temp-demo-banner{border-color:color-mix(in srgb,var(--link) 35%,var(--border));background:color-mix(in srgb,var(--link) 8%,var(--bg-surface))}.temp-demo-banner strong{display:block;margin-bottom:.35rem}.temp-demo-badge{display:inline-block;font-size:.72rem;font-weight:700;padding:.15rem .45rem;border-radius:6px;background:color-mix(in srgb,var(--link) 18%,transparent);color:var(--link)}.temp-zone-panel{overflow:hidden}.temp-zone-subtitle{margin:0 0 .85rem;font-size:1rem;line-height:1.45;color:var(--text)}.temp-zone-toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.temp-zone-conn-badge{padding:.35rem .65rem;border-radius:999px;font-size:.8rem;border:1px solid var(--border);background:var(--bg-muted)}.temp-zone-conn-badge.ok{border-color:#16a34a;color:#16a34a}.temp-zone-conn-badge.warn{border-color:#d97706;color:#d97706}.temp-floor-plan-wrap{position:relative;padding:16px;background:linear-gradient(180deg,#f8fafc,#eef2f7);border-radius:12px;border:2px solid #cbd5e1;box-shadow:inset 0 1px #fff,0 4px 18px #0f172a0f}.temp-floor-compass{position:absolute;top:10px;right:14px;z-index:2;font-size:.82rem;font-weight:700;color:#64748b;pointer-events:none}.temp-floor-plan--grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(52px,92px) minmax(0,1fr);grid-template-rows:auto auto;gap:14px}#zone-card-k1{grid-column:1;grid-row:1}#zone-card-k3{grid-column:3;grid-row:1}#zone-card-k2{grid-column:1;grid-row:2}#zone-card-pakastin{grid-column:3;grid-row:2}.temp-floor-corridor{grid-column:2;grid-row:1 / span 2;min-height:140px;border-radius:10px;border:2px dashed #94a3b8;background:repeating-linear-gradient(180deg,#f1f5f9 0,#f1f5f9 10px,#e8eef4 10px,#e8eef4 20px);display:flex;align-items:center;justify-content:center}.temp-floor-corridor-inner{display:flex;flex-direction:column;align-items:center;transform:rotate(-90deg);white-space:nowrap;font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#64748b}.temp-floor-corridor-sub{font-size:.68rem;font-weight:600;letter-spacing:.04em;color:#94a3b8}.temp-zone-room{position:relative;border-radius:10px;border:2px solid #cbd5e1;padding:1rem 1.1rem;background:#fff;box-shadow:0 1px 3px #0f172a0f}.temp-zone-room:after{position:absolute;top:8px;left:10px;font-size:.78rem;font-weight:800;color:#0f172a12;pointer-events:none}#zone-card-k1:after{content:"K1"}#zone-card-k2:after{content:"K2"}#zone-card-k3:after{content:"K3"}#zone-card-pakastin:after{content:"PAK"}.temp-zone--ok{border-color:#16a34a8c}.temp-zone--warn{border-color:#d97706bf}.temp-zone--bad{border-color:#dc2626d9}.temp-zone-head{display:flex;justify-content:flex-end;margin-bottom:.25rem}.temp-zone-badge{font-size:.8rem;font-weight:700;text-transform:uppercase;padding:.25rem .55rem;border-radius:6px;border:1px solid var(--border)}.temp-zone--ok .temp-zone-badge{border-color:#16a34a;color:#16a34a}.temp-zone--warn .temp-zone-badge{border-color:#d97706;color:#d97706}.temp-zone--bad .temp-zone-badge{border-color:#dc2626;color:#dc2626}.temp-zone-temp{font-size:clamp(1.75rem,6vw,2.25rem);font-weight:750;margin:.15rem 0 .35rem;line-height:1.1}.temp-zone--ok .temp-zone-temp{color:#16a34a}.temp-zone--warn .temp-zone-temp{color:#d97706}.temp-zone--bad .temp-zone-temp{color:#dc2626}.temp-zone-reason{font-size:.95rem;color:#334155;margin:0 0 .5rem;min-height:1.25em;line-height:1.35}.temp-zone-freezer{border-color:#3b82f659}.temp-zone-meta-readonly p{margin:.25rem 0;font-size:.95rem;color:var(--text)}.temp-zone-meta-readonly .muted{color:#475569;font-size:.92rem}.temp-zone-limits-hint{font-size:.9rem;color:#64748b}.temp-zone-sensor-strip{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.temp-zone-sensor-strip dt{font-size:.78rem;color:var(--text-muted)}.temp-zone-sensor-strip dd{margin:.15rem 0 0;font-weight:700}.temp-zone-temp--clickable{display:block;width:100%;margin:.15rem 0 .35rem;padding:0;border:none;background:transparent;font:inherit;text-align:left;cursor:pointer;border-radius:6px}.temp-zone-temp--clickable:hover{text-decoration:underline}.temp-zone-temp--clickable:focus-visible{outline:2px solid var(--link);outline-offset:2px}.temp-zone-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.temp-zone-dialog-head h2{margin:0}.temp-zone-settings-dialog{max-width:min(920px,96vw);max-height:92vh;overflow:auto}.temp-zone-trend-dialog{max-width:min(720px,96vw);max-height:min(92vh,900px);overflow:auto}.temp-zone-trend-summary{margin:0 0 1rem;padding:.85rem 1rem;border-radius:10px;border:1px solid var(--border);background:var(--bg-muted)}.temp-zone-trend-summary--ok{border-color:color-mix(in srgb,#16a34a 35%,var(--border))}.temp-zone-trend-summary--warn{border-color:color-mix(in srgb,#dc2626 35%,var(--border));background:color-mix(in srgb,#dc2626 6%,var(--bg-muted))}.temp-zone-trend-summary-main{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem .75rem;margin-bottom:.65rem}.temp-zone-trend-summary-label{font-size:.85rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.temp-zone-trend-summary-temp{font-size:1.75rem;line-height:1;color:var(--text)}.temp-zone-trend-summary-status{font-weight:600;color:var(--text-secondary)}.temp-zone-trend-summary--warn .temp-zone-trend-summary-status{color:#b91c1c}.temp-zone-trend-summary-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.5rem 1rem;margin:0}.temp-zone-trend-summary-facts dt{margin:0;font-size:.78rem;color:var(--text-muted)}.temp-zone-trend-summary-facts dd{margin:.1rem 0 0;font-weight:500}.temp-zone-trend-summary-note{margin:.65rem 0 0;font-size:.88rem;color:var(--text-muted);line-height:1.45}.temp-zone-trend-policy{margin:0 0 .75rem;font-size:.88rem}.temp-zone-trend-policy summary{cursor:pointer;color:var(--text-muted);-webkit-user-select:none;user-select:none}.temp-zone-trend-policy p{margin:.4rem 0 0}.temp-zone-trend-both{display:flex;align-items:center;gap:.5rem;margin:0 0 .85rem;font-size:.95rem;font-weight:500;color:var(--text);cursor:pointer}.temp-zone-trend-both input{margin:0;flex-shrink:0}.temp-zone-trend-empty{margin:0;padding:1.5rem 0;text-align:center}.temp-zone-trend-chart-note{margin:0 0 .65rem;font-size:.88rem}.vrf-trend-block .vrf-trend-subtitle{display:none}.temp-zone-settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.85rem;margin-bottom:1rem}.temp-zone-settings-block{padding:.65rem .75rem;border:1px solid var(--border);border-radius:10px;background:var(--bg-muted)}.temp-zone-settings-block--freezer{border-color:color-mix(in srgb,var(--link) 35%,var(--border))}.temp-zone-settings-block h3{margin:0 0 .5rem;font-size:.95rem}.temp-zone-settings-limits{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.temp-zone-report-actions{display:flex;justify-content:flex-end;margin-top:-.25rem}.global-admin-license-legend{margin:.75rem 0 1rem;padding:.75rem 1rem;font-size:.92rem}.global-admin-license-summary{margin:0 0 1rem;font-size:.92rem}.license-billing-hint{margin:-.25rem 0 .5rem;font-size:.85rem;grid-column:1 / -1}.license-admin-module-toggles .license-billing-hint{margin-left:0}.global-admin-badge{display:inline-block;padding:.15rem .5rem;border-radius:6px;font-size:.8rem;font-weight:600}.global-admin-badge--legacy{background:color-mix(in srgb,var(--warning) 18%,var(--bg-muted));color:var(--text)}.global-admin-badge--subscription{background:color-mix(in srgb,var(--link) 14%,var(--bg-muted));color:var(--text)}.global-admin-license-table .global-admin-license-actions{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:flex-end}.license-section-heading{display:inline-flex;align-items:center;gap:.4rem}.license-terms-help{position:relative;display:inline-flex;vertical-align:middle}.license-terms-help-btn{display:inline-flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;margin:0;padding:0;border:1px solid var(--border);border-radius:50%;background:var(--bg-muted);color:var(--text-muted);font-size:.75rem;font-weight:700;font-style:italic;font-family:Georgia,Times New Roman,serif;line-height:1;cursor:pointer}.license-terms-help-btn:hover,.license-terms-help-btn:focus-visible{border-color:var(--link);color:var(--link);outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--link) 25%,transparent)}.license-terms-help-popover{position:absolute;z-index:40;top:calc(100% + .35rem);left:0;width:min(22rem,calc(100vw - 2rem));padding:.75rem .85rem;border:1px solid var(--border);border-radius:10px;background:var(--bg-surface);box-shadow:var(--shadow-sm);text-align:left;font-size:.88rem;font-weight:400;color:var(--text-secondary)}.license-terms-help-popover-title{margin:0 0 .5rem;font-size:.95rem;font-weight:600;color:var(--text)}.license-terms-help-popover-p{margin:0 0 .45rem;line-height:1.45}.license-terms-help-popover .btn{margin-top:.35rem}.global-admin-block-head h2 .license-section-heading,.license-status-panel h2 .license-section-heading{font-size:inherit;font-weight:inherit}@media(max-width:780px){.temp-floor-plan--grid{grid-template-columns:1fr;gap:12px}.temp-floor-corridor{display:none}#zone-card-k1,#zone-card-k2,#zone-card-k3,#zone-card-pakastin{grid-column:1;grid-row:auto}}.konvektori-list-actions{margin-bottom:.75rem}.konvektori-compact-list{display:flex;flex-direction:column;gap:.35rem;overflow-x:auto;min-width:0}.konvektori-compact-head,.konvektori-compact-row{display:grid;grid-template-columns:2rem minmax(7.5rem,.9fr) minmax(4.5rem,.7fr) minmax(4rem,.6fr) minmax(4.5rem,.7fr) minmax(4.5rem,.7fr) minmax(5rem,.75fr) minmax(4.5rem,.55fr) minmax(9rem,auto);gap:.35rem;align-items:center;min-width:52rem}.konvektori-compact-head{font-size:.72rem;font-weight:600;color:var(--text-muted);padding:0 .15rem .25rem;border-bottom:1px solid var(--border)}.konvektori-compact-row{padding:.35rem .15rem;border-bottom:1px solid var(--border)}.konvektori-compact-num{font-size:.82rem;font-weight:600;color:var(--text-muted);text-align:center}.konvektori-compact-field input,.konvektori-compact-field select{width:100%;min-width:0;font-size:.82rem;padding:.35rem .45rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-surface)}.konvektori-compact-actions{display:flex;flex-wrap:wrap;gap:.25rem;justify-content:flex-end}.konvektori-status{display:inline-block;font-size:.72rem;font-weight:600;padding:.2rem .45rem;border-radius:999px;white-space:nowrap;text-align:center}.konvektori-status--ok{background:#dcfce7;color:#166534}.konvektori-status--pending{background:#fef3c7;color:#92400e}.konvektori-status--warn{background:#ffedd5;color:#c2410c}.konvektori-status--note{background:#e0f2fe;color:#0369a1}.konvektori-status--vika{background:#fee2e2;color:#b91c1c}.konvektori-dialog-overlay{z-index:1200}.konvektori-tarkastus-dialog{width:min(560px,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow:auto}.konvektori-dialog-help{margin:0 0 .75rem;font-size:.88rem}.konvektori-mittaukset{margin-bottom:1rem;padding:.75rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-muted)}.konvektori-mittaukset-title{margin:0 0 .5rem;font-size:.95rem}.konvektori-mittaukset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.konvektori-mittaus-field{display:flex;flex-direction:column;gap:.25rem;font-size:.82rem;font-weight:600}.konvektori-mittaus-field input{font-weight:400;padding:.45rem .55rem;border:1px solid var(--border);border-radius:6px}.konvektori-mittaukset-hint{margin:.5rem 0 0;font-size:.78rem}.konvektori-laskettu-teho-list{display:flex;flex-direction:column;gap:.35rem;margin-top:.65rem}.konvektori-laskettu-teho-list .konvektori-laskettu-teho{margin:0}.konvektori-laskettu-teho{margin:.65rem 0 0;padding:.5rem .65rem;border-radius:6px;background:#ecfdf5;border:1px solid #86efac;color:#166534;font-size:.88rem;font-weight:600}.konvektori-tarkastus-list{display:flex;flex-direction:column;gap:0;margin-bottom:.65rem}.konvektori-tarkastus-item{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.3rem 0;border-bottom:1px solid var(--border);min-height:0}.konvektori-tarkastus-label{flex:1 1 auto;min-width:0;font-size:.84rem;font-weight:600;line-height:1.25}.konvektori-yesno{display:flex;flex:0 0 auto;gap:.3rem}.konvektori-yesno-btn{min-width:3.25rem;min-height:unset;padding:.28rem .5rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-surface);font-size:.8rem;line-height:1.2;cursor:pointer}.konvektori-yesno-btn--active.konvektori-yesno-btn--yes{background:#dcfce7;border-color:#86efac;color:#166534;font-weight:600}.konvektori-yesno-btn--active.konvektori-yesno-btn--no{background:#fee2e2;border-color:#fca5a5;color:#b91c1c;font-weight:600}.konvektori-huomio-type{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.5rem}.konvektori-huomio-type-toggle{display:flex;gap:.3rem;margin-top:0}.konvektori-huomio-type-btn{flex:1;min-height:unset;padding:.28rem .5rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-surface);font-size:.8rem;line-height:1.2;cursor:pointer}.konvektori-huomio-type-btn--active{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,var(--bg-surface));font-weight:600}.konvektori-huomio-type-btn--vika.konvektori-huomio-type-btn--active{border-color:#ef4444;background:#fee2e2;color:#b91c1c}.konvektori-huomio-field{display:flex;flex-direction:column;gap:.35rem;font-size:.88rem;font-weight:600;margin-bottom:1rem}.konvektori-huomio-field textarea{font-weight:400;width:100%;min-height:5rem;padding:.55rem;border:1px solid var(--border);border-radius:8px;resize:vertical}.konvektori-dialog-actions{margin-top:0}@media(max-width:720px){.konvektori-compact-head{display:none}.konvektori-compact-row{grid-template-columns:1fr 1fr;grid-template-areas:"num status" "type type" "tunnus huone" "valm malli" "sarja sarja" "actions actions";min-width:0;padding:.65rem;border:1px solid var(--border);border-radius:8px;margin-bottom:.35rem}.konvektori-compact-num{grid-area:num;text-align:left}.konvektori-compact-row>.konvektori-status{grid-area:status;justify-self:end}.konvektori-compact-row>.konvektori-compact-field:nth-of-type(1){grid-area:type}.konvektori-compact-row>.konvektori-compact-field:nth-of-type(2){grid-area:tunnus}.konvektori-compact-row>.konvektori-compact-field:nth-of-type(3){grid-area:huone}.konvektori-compact-row>.konvektori-compact-field:nth-of-type(4){grid-area:valm}.konvektori-compact-row>.konvektori-compact-field:nth-of-type(5){grid-area:malli}.konvektori-compact-row>.konvektori-compact-field:nth-of-type(6){grid-area:sarja}.konvektori-compact-actions{grid-area:actions;justify-content:stretch}.konvektori-compact-actions .btn{flex:1}.konvektori-mittaukset-grid{grid-template-columns:1fr}}.sisayksikko-submodule-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.5rem}.sisayksikko-submodule-head h3{margin:0}.sisayksikko-submodule-actions{margin-top:.65rem}.sisayksikko-schematic-preview{position:relative;width:100%;max-width:360px;aspect-ratio:16 / 10;margin:.5rem 0;background:var(--surface-2, #f8fafc);border:1px solid var(--border);border-radius:8px;overflow:visible}.sisayksikko-schematic-preview--dialog{max-width:100%;margin:.75rem 0 1rem}.sisayksikko-schematic-img{width:100%;height:100%;object-fit:contain;display:block;border-radius:8px}.sisayksikko-schematic-chip{padding:.15rem .4rem;border-radius:4px;background:#fffffff5;border:1px solid #cbd5e1;font-size:.72rem;font-weight:600;color:#0f172a;white-space:nowrap;line-height:1.25;box-shadow:0 1px 2px #0f172a14}.sisayksikko-schematic-empty{font-size:.85rem;margin:.5rem 0}.sisayksikko-dialog-meta{margin:0 0 .25rem;font-size:.85rem}.sisayksikko-tarkastus-dialog{max-width:34rem}
