:root{color:#111827;--navy-900:#0a1f3a;--navy-800:#0f2744;--navy-700:#14365e;--navy-600:#1a3a5c;--navy-500:#1a4f8a;--navy-400:#2563a3;--navy-300:#4f7cb1;--white:#fff;--black:#111827;--ink:#1a1a1a;--gray-50:#f8fafc;--gray-100:#f4f6f9;--gray-200:#e6eaf0;--gray-300:#d3dae3;--gray-400:#a3acba;--gray-500:#6b7480;--gray-600:#4b5563;--gray-700:#2f3542;--danger:#c00;--danger-strong:#9b0000;--border:var(--gray-300);--panel:var(--white);--muted:var(--gray-500);--accent:var(--navy-500);background-color:#f4f6f9;font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,Meiryo,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-width:320px;margin:0}#root{min-height:100vh}button,input,select,textarea{font-family:inherit}input[type=checkbox],input[type=radio]{accent-color:var(--navy-700)}.public-report-shell{background:var(--gray-50);min-height:100vh}.public-report-head{border-bottom:1px solid var(--gray-200);background:#fff;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex}.public-report-head h1{color:var(--navy-800);margin:0 0 .25rem;font-size:1.15rem}.public-report-pages{flex-direction:column;align-items:center;gap:1.5rem;padding:1.5rem;display:flex}.public-report-loading,.public-report-empty{min-height:60vh;color:var(--gray-700);justify-content:center;align-items:center;display:flex}.public-report-loading-inner{flex-direction:column;align-items:center;gap:.6rem;display:flex}@media print{.public-report-head,.no-print{display:none!important}.public-report-shell{background:#fff}.public-report-pages{gap:0;padding:0}}.beta-badge{letter-spacing:.02em;background:var(--navy-800);color:#fff;vertical-align:middle;border-radius:999px;justify-content:center;align-items:center;font-weight:700;text-decoration:none;display:inline-flex}.beta-badge-sm{margin-left:.4rem;padding:.05rem .42rem;font-size:.65rem}.beta-badge-md{margin-left:.5rem;padding:.1rem .55rem;font-size:.8rem}.beta-badge:hover{background:var(--navy-700)}.beta-banner{color:#7c2d12;background:#fff7ed;border-bottom:1px solid #fed7aa;align-items:center;gap:.5rem;padding:.45rem 1rem;font-size:.82rem;display:flex}.beta-banner strong{color:#92400e}.beta-banner-link{color:#92400e;margin-left:.5rem;text-decoration:underline}.beta-terms-page{background:var(--gray-50);justify-content:center;min-height:100vh;padding:2rem 1rem;display:flex}.beta-terms-card{border:1px solid var(--gray-200);background:#fff;border-radius:10px;width:100%;max-width:720px;padding:1.8rem 2rem;box-shadow:0 1px 2px #0000000a}.beta-terms-head h1{color:var(--navy-800);margin:.3rem 0 .4rem;font-size:1.4rem}.beta-terms-eyebrow{color:#92400e;background:#fff7ed;border:1px solid #fed7aa;border-radius:999px;align-items:center;gap:.4rem;padding:.2rem .6rem;font-size:.75rem;display:inline-flex}.beta-terms-section{margin-top:1.4rem}.beta-terms-section h2{color:var(--navy-800);margin:0 0 .4rem;font-size:1rem}.beta-terms-section p,.beta-terms-section li{color:var(--gray-700);font-size:.88rem;line-height:1.7}.beta-terms-section ul{margin:0;padding-left:1.1rem}.beta-terms-foot{border-top:1px solid var(--gray-200);justify-content:space-between;align-items:center;gap:1rem;margin-top:1.8rem;padding-top:1rem;display:flex}.login-terms-link{color:var(--navy-700);text-decoration:underline}@media print{.no-print-shell .sidebar,.no-print-shell .breadcrumb,.no-print-shell .view-header,.no-print-shell .panel-card-head,.no-print-shell .preview-toolbar-new,.no-print-shell .month-tabs,.no-print-shell .device-grid,.no-print-shell .advanced-toggle,.no-print-shell .advanced-body,.no-print-shell .action-bar,.no-print-shell .detail-foot,.no-print-shell .month-tabs-card,.no-print-shell .recent-table-wrap,.no-print-shell .kpi-grid{display:none!important}}.app-shell{background:var(--gray-100);height:100vh;display:flex;overflow:hidden}.app-content{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;min-width:0;display:flex;overflow-y:auto}.app-content-inner{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:1.75rem 2rem 6rem}@media (width<=720px){.app-content-inner{padding:1.25rem 1rem 6rem}.view-header{flex-direction:column;align-items:stretch;gap:.6rem}.view-header-actions{flex-wrap:wrap;gap:.4rem;display:flex}.view-header-actions .btn{flex:auto}.view-header-text h1{font-size:1.2rem}.dashboard-grid{grid-template-columns:minmax(0,1fr);gap:.7rem}}.sidebar{background:var(--navy-800);color:#fff;border-right:1px solid var(--navy-900);flex-direction:column;flex-shrink:0;width:240px;height:100%;display:flex;overflow:hidden}.sidebar-brand{border-bottom:1px solid #ffffff14;padding:1.4rem 1.25rem 1.25rem}.brand-name{letter-spacing:.06em;color:#fff;font-size:1.25rem;font-weight:700}.sidebar-nav{flex-direction:column;flex:1;gap:.2rem;min-height:0;padding:1rem .75rem;display:flex;overflow-y:auto}.nav-item{color:#ffffffbf;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:.65rem;padding:.6rem .75rem;font-size:.9rem;font-weight:500;transition:background .12s,color .12s;display:flex}.nav-item:hover{color:#fff;background:#ffffff0f}.nav-item.is-active{color:#fff;background:#ffffff1a;font-weight:600}.sidebar-foot{border-top:1px solid #ffffff14;flex-direction:column;flex-shrink:0;gap:.65rem;margin-top:auto;padding:1rem 1.25rem 1.25rem;display:flex}.device-counter{background:#ffffff0f;border-radius:6px;align-items:center;gap:.5rem;padding:.5rem .7rem;display:flex}.counter-label{color:#ffffffa6;letter-spacing:.04em;flex:1;font-size:.72rem}.counter-value{color:#fff;font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:700}.sidebar-import-btn{color:#ffffffb3;background:0 0;border:1px solid #ffffff2e;border-radius:5px;width:26px;height:26px}.sidebar-import-btn:hover:not(:disabled){color:#fff;background:#ffffff1f;border-color:#ffffff4d}.sidebar-note{color:#ffffff80;font-size:.68rem;line-height:1.5}@media (width<=720px){.app-shell{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--navy-900);width:100%;height:auto;position:static}.sidebar-brand{padding:.65rem 1rem}.brand-name{font-size:1rem}.sidebar-nav{scrollbar-width:thin;flex-flow:row;gap:.1rem;padding:.4rem .6rem;overflow-x:auto}.sidebar-nav .sub-nav{display:none}.sidebar-nav .nav-block{flex:none}.sidebar-nav .nav-item{white-space:nowrap;writing-mode:horizontal-tb;padding:.45rem .7rem;font-size:.82rem}.sidebar-foot{display:none}}.view-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin:.25rem 0 1.5rem;display:flex}.view-header-text h1{color:var(--navy-800);letter-spacing:.01em;align-items:center;gap:.55rem;margin:0 0 .25rem;font-size:1.5rem;font-weight:700;display:inline-flex}.view-header-text p{color:var(--gray-500);margin:0;font-size:.85rem}.view-header-actions{flex-wrap:wrap;gap:.5rem;display:flex}.breadcrumb{color:var(--gray-500);align-items:center;gap:.4rem;margin-bottom:.5rem;font-size:.8rem;display:flex}.bc-sep{color:var(--gray-400)}.bc-current{color:var(--navy-800);font-weight:600}.link-btn{color:var(--gray-600);cursor:pointer;background:0 0;border:none;align-items:center;gap:.3rem;padding:0;font-size:.8rem;display:inline-flex}.link-btn:hover{color:var(--navy-700);text-decoration:underline}.btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:6px;align-items:center;gap:.45rem;padding:.55rem .95rem;font-family:inherit;font-size:.85rem;font-weight:600;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--navy-800);color:#fff;border-color:var(--navy-800)}.btn-primary:hover:not(:disabled){background:var(--navy-700);border-color:var(--navy-700)}.btn-secondary{color:var(--navy-800);border-color:var(--gray-300);background:#fff}.btn-secondary:hover:not(:disabled){background:var(--gray-50);border-color:var(--gray-400)}.btn-ghost{color:var(--gray-600);background:0 0;border-color:#0000;padding:.35rem .6rem}.btn-ghost:hover:not(:disabled){background:var(--gray-200);color:var(--navy-800)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger-strong);border-color:var(--danger-strong)}.admin-danger-zone{border:1px dashed var(--danger);background:#cc000008;border-radius:8px;margin-top:1.5rem;padding:1rem 1.1rem}.admin-danger-zone h3{color:var(--danger);margin:0 0 .35rem;font-size:.9rem}.admin-danger-zone p{margin:0 0 .7rem;font-size:.8rem;line-height:1.5}.confirm-message{color:var(--ink);font-size:.92rem;line-height:1.6}.btn-lg{padding:.75rem 1.4rem;font-size:.95rem}.icon-btn{width:32px;height:32px;color:var(--gray-600);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.icon-btn:hover:not(:disabled){background:var(--gray-200);color:var(--navy-800)}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.icon-btn-danger:hover:not(:disabled){color:var(--danger);background:#fdecec}@keyframes spin{to{transform:rotate(360deg)}}.panel-card{border:1px solid var(--gray-200);background:#fff;border-radius:10px;margin-bottom:1rem;padding:1.1rem 1.25rem 1.25rem;box-shadow:0 1px 2px #0f27440a}.panel-card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.85rem;display:flex}.panel-card-head h2{color:var(--navy-800);align-items:center;gap:.4rem;margin:0;font-size:.98rem;font-weight:700;display:inline-flex}.head-icon{color:var(--navy-600)}.panel-card-meta{color:var(--gray-500);align-items:center;gap:.6rem;font-size:.8rem;display:inline-flex}.in-panel{margin:.25rem 0}.muted{color:var(--gray-500);font-size:.85rem}.kpi-grid{grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1rem;display:grid}.kpi-grid-4{grid-template-columns:repeat(4,1fr)}@media (width<=960px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.kpi-grid{grid-template-columns:1fr}}.kpi-card{border:1px solid var(--gray-200);background:#fff;border-radius:10px;flex-direction:column;gap:.45rem;min-height:92px;padding:.95rem 1.1rem;display:flex;box-shadow:0 1px 2px #0f27440a}.kpi-head{color:var(--gray-500);justify-content:space-between;align-items:center;display:flex}.kpi-label{letter-spacing:.02em;text-transform:uppercase;font-size:.77rem;font-weight:600}.kpi-icon{color:var(--navy-600)}.kpi-value-row{color:var(--navy-800);align-items:baseline;gap:.3rem;display:flex}.kpi-value{font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:700;line-height:1.1}.kpi-unit{color:var(--gray-500);font-size:.85rem;font-weight:600}.kpi-hint{color:var(--gray-500);font-size:.72rem}.kpi-card.is-deviation .kpi-value,.kpi-card.is-deviation .kpi-icon{color:var(--danger)}.empty-state{border:1px solid var(--gray-200);text-align:center;background:#fff;border-radius:12px;margin-top:2rem;padding:3.5rem 2rem;box-shadow:0 1px 2px #0f27440a}.empty-illust{background:var(--gray-100);width:88px;height:88px;color:var(--navy-600);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 1.25rem;display:inline-flex}.empty-title{color:var(--navy-800);margin:0 0 .65rem;font-size:1.2rem;font-weight:700}.empty-desc{color:var(--gray-600);margin:0 0 1.5rem;font-size:.88rem;line-height:1.7}.empty-actions{justify-content:center;margin-bottom:2rem;display:flex}.empty-spec{text-align:left;color:var(--gray-600);margin:0 auto;padding:0;font-size:.78rem;line-height:1.9;list-style:none;display:inline-block}.empty-state-stack{text-align:left;flex-direction:column;gap:1.5rem;padding:2rem 1.5rem;display:flex}.empty-step{align-items:flex-start;gap:1rem;display:flex}.empty-step-num{background:var(--navy-700);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2.2rem;height:2.2rem;font-size:1rem;font-weight:700;display:inline-flex}.empty-step-body{flex:1;min-width:0}.empty-step-title{color:var(--navy-800);align-items:center;gap:.45rem;margin:0 0 .4rem;font-size:1rem;font-weight:700;display:inline-flex}.empty-step-icon{color:var(--navy-700)}.empty-step-desc{color:var(--gray-600);margin:0 0 .85rem;font-size:.85rem;line-height:1.65}.empty-step-actions{gap:.5rem;margin-bottom:.75rem;display:flex}.empty-step .empty-spec{margin:0;display:block}.icon-btn.is-muted{opacity:.5}.reminder-banner{border:1px solid var(--gray-200);border-left:3px solid var(--navy-700);color:var(--gray-700);background:#0f27440a;border-radius:6px;align-items:center;gap:.4rem;margin-bottom:.7rem;padding:.45rem .75rem;font-size:.82rem;display:flex}.reminder-banner-icon{color:var(--navy-700);flex-shrink:0}.reminder-banner strong{color:var(--navy-800)}.reminder-banner .link-btn{color:var(--navy-700);font-weight:600}.schedule-time-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.schedule-time-row .inline-field{align-items:center;gap:.3rem;font-size:.85rem;display:inline-flex}.schedule-time-row .select{padding:.25rem .45rem;font-family:inherit}.schedule-target-list{border:1px solid var(--gray-200);background:#fff;border-radius:6px;flex-direction:column;gap:.25rem;max-height:11rem;padding:.45rem .6rem;display:flex;overflow-y:auto}.small-hint{margin-top:.3rem;font-size:.76rem}.inline-icon-muted{color:var(--gray-500);margin-left:.2rem}.empty-spec code{background:var(--gray-100);border:1px solid var(--gray-200);color:var(--navy-700);border-radius:4px;padding:0 .3rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem}.device-table-wrap{margin:0 -.25rem;overflow-x:auto}.device-table{border-collapse:collapse;width:100%;font-size:.85rem}.device-table thead th{text-align:left;border-bottom:1px solid var(--gray-200);color:var(--gray-500);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;background:var(--gray-50);padding:.55rem .6rem;font-size:.72rem;font-weight:600}.device-table tbody td{border-bottom:1px solid var(--gray-200);font-variant-numeric:tabular-nums;vertical-align:middle;padding:.7rem .6rem}.device-table tbody tr:last-child td{border-bottom:none}.device-table .num{text-align:right;white-space:nowrap}.device-row{cursor:pointer;transition:background .1s}.device-row:hover{background:var(--gray-50)}.device-id{flex-direction:column;display:flex}.device-id-name{color:var(--navy-800);font-weight:600}.period-cell{color:var(--gray-700);white-space:nowrap;align-items:center;gap:.4rem;font-size:.78rem;display:inline-flex}.period-sep{color:var(--gray-400)}.row-actions{justify-content:flex-end;gap:.25rem;display:flex}.updated-cell{color:var(--gray-700);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.78rem}.dashboard-toolbar{flex-wrap:wrap;align-items:center;gap:.7rem;display:inline-flex}.sort-control{color:var(--gray-500);align-items:center;gap:.4rem;font-size:.78rem;display:inline-flex}.sort-label{letter-spacing:.02em}.select-sm{padding:.3rem .5rem;font-size:.8rem}.view-toggle{border:1px solid var(--gray-300);background:#fff;border-radius:6px;display:inline-flex;overflow:hidden}.view-toggle-btn{border:none;border-right:1px solid var(--gray-300);color:var(--gray-600);cursor:pointer;background:#fff;align-items:center;gap:.3rem;padding:.35rem .65rem;font-size:.78rem;font-weight:500;transition:background .12s,color .12s;display:inline-flex}.view-toggle-btn:last-child{border-right:none}.view-toggle-btn:hover:not(.is-active){background:var(--gray-50);color:var(--navy-700)}.view-toggle-btn.is-active{background:var(--navy-800);color:#fff}.device-tile-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.85rem;display:grid}.device-tile{border:1px solid var(--gray-200);cursor:pointer;text-align:left;background:#fff;border-radius:10px;flex-direction:column;gap:.7rem;padding:.85rem .95rem;font-family:inherit;transition:border-color .12s,box-shadow .12s,transform .12s;display:flex;position:relative}.device-tile:hover{border-color:var(--navy-500);transform:translateY(-1px);box-shadow:0 4px 12px #0f274414}.device-tile:focus-visible{outline:2px solid var(--navy-400);outline-offset:2px}.device-tile.has-deviation{border-color:#cc000073}.device-tile.has-deviation:hover{border-color:var(--danger)}.tile-header{justify-content:space-between;align-items:center;gap:.5rem;padding-right:1.7rem;display:flex}.tile-id{color:var(--navy-800);letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:700;overflow:hidden}.tile-readings{border-top:1px dashed var(--gray-200);border-bottom:1px dashed var(--gray-200);grid-template-columns:1fr 1fr;gap:.5rem;padding:.55rem 0;display:grid}.tile-reading{flex-direction:column;gap:.2rem;display:flex}.tile-reading-label{letter-spacing:.04em;color:var(--gray-500);text-transform:uppercase;align-items:center;gap:.3rem;font-size:.7rem;font-weight:600;display:inline-flex}.tile-reading-value{color:var(--navy-800);font-variant-numeric:tabular-nums;align-items:baseline;gap:.18rem;display:inline-flex}.tile-reading-value.cell-deviation{color:var(--danger)}.tile-reading-value.cell-warning{color:#d97706}.num-big{font-size:1.55rem;font-weight:700;line-height:1}.num-unit{color:var(--gray-500);font-size:.85rem;font-weight:600}.tile-reading-value.cell-deviation .num-unit{color:var(--danger)}.tile-reading-value.cell-warning .num-unit{color:#d97706}.tile-footer{color:var(--gray-600);font-variant-numeric:tabular-nums;flex-direction:column;gap:.25rem;font-size:.72rem;display:flex}.tile-foot-row{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.tile-foot-meta{color:var(--gray-500)}.dot-sep{color:var(--gray-400)}.tile-delete{width:26px;height:26px;position:absolute;top:.5rem;right:.5rem}.badge{letter-spacing:.02em;white-space:nowrap;border-radius:999px;align-items:center;gap:.3rem;padding:.2rem .55rem;font-size:.72rem;font-weight:600;display:inline-flex}.badge>svg{flex-shrink:0}.badge-outline{border:1px solid var(--navy-700);color:var(--navy-700);background:#fff}.badge-outline.badge-muted{border-color:var(--gray-300);color:var(--gray-600)}.month-tabs{flex-wrap:wrap;gap:.4rem;display:flex}.month-tab{border:1px solid var(--gray-300);color:var(--gray-700);cursor:pointer;font-variant-numeric:tabular-nums;background:#fff;border-radius:6px;padding:.4rem .8rem;font-size:.82rem;font-weight:500;transition:background .12s,color .12s,border-color .12s}.month-tab:hover{border-color:var(--navy-500);color:var(--navy-800)}.month-tab.is-active{background:var(--navy-800);border-color:var(--navy-800);color:#fff;font-weight:600}.device-grid{flex-wrap:wrap;gap:.5rem;display:flex}.device-pill{border:1px solid var(--gray-300);color:var(--gray-700);cursor:pointer;background:#fff;border-radius:6px;align-items:center;gap:.45rem;padding:.45rem .75rem;font-size:.85rem;font-weight:500;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.device-pill:hover{border-color:var(--navy-500)}.device-pill.is-checked{background:var(--navy-800);border-color:var(--navy-800);color:#fff}.device-pill-id{font-weight:600}.device-pill.is-ineligible{opacity:.55;background:var(--gray-50)}.device-pill.is-ineligible.is-checked{background:var(--gray-700);border-color:var(--gray-700)}.device-pill-warn{color:var(--danger);background:#fff;border-radius:3px;margin-left:.1rem;padding:0 .3rem;font-size:.65rem;font-weight:600}.advanced-toggle{width:100%;color:var(--navy-800);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.5rem;padding:.5rem 0;font-size:.92rem;font-weight:600;display:flex}.advanced-toggle .chev{color:var(--gray-500);margin-left:auto;transition:transform .15s}.advanced-toggle .chev.is-open{transform:rotate(90deg)}.advanced-body{border-top:1px solid var(--gray-200);flex-direction:column;gap:.95rem;margin-top:.85rem;padding-top:.85rem;display:flex}.advanced-row{flex-wrap:wrap;align-items:center;gap:.85rem 1.4rem;display:flex}.row-label{color:var(--navy-800);font-size:.85rem;font-weight:600}.check-row{cursor:pointer;align-items:center;gap:.45rem;font-size:.88rem;display:inline-flex}.radio-inline{cursor:pointer;align-items:center;gap:.35rem;font-size:.88rem;display:inline-flex}.thresholds-grid{grid-template-columns:1fr 1fr;gap:.85rem;display:grid}.thresholds-grid fieldset{border:1px solid var(--gray-200);border-radius:8px;margin:0;padding:.8rem .9rem .5rem}.thresholds-grid fieldset.span-2{grid-column:1/-1}.thresholds-grid legend{color:var(--navy-800);padding:0 .3rem;font-size:.78rem;font-weight:700}.num-pair{gap:.85rem;display:flex}.num-pair label{color:var(--gray-600);flex-direction:column;flex:1;gap:.2rem;font-size:.78rem;display:flex}.num-pair input{border:1px solid var(--gray-300);font-variant-numeric:tabular-nums;color:var(--ink);background:#fff;border-radius:5px;padding:.35rem .5rem;font-size:.88rem}.num-pair input:focus{outline:2px solid var(--navy-400);outline-offset:-1px;border-color:var(--navy-500)}.num-pair input:disabled{background:var(--gray-100);color:var(--gray-500)}@media (width<=720px){.thresholds-grid{grid-template-columns:1fr}.thresholds-grid fieldset.span-2{grid-column:auto}}.select{border:1px solid var(--gray-300);color:var(--ink);cursor:pointer;background:#fff;border-radius:6px;padding:.45rem .6rem;font-family:inherit;font-size:.88rem;font-weight:500}.select:focus{outline:2px solid var(--navy-400);outline-offset:-1px;border-color:var(--navy-500)}.device-switcher{align-items:center;gap:.25rem;display:inline-flex}.detail-chart-wrap{width:100%;height:240px}.detail-chart-wrap .no-data{height:100%;color:var(--gray-500);justify-content:center;align-items:center;font-size:.85rem;display:flex}.device-title{align-items:center;gap:.5rem;display:flex}.device-title-id{letter-spacing:.02em;font-weight:700}.detail-title-line{flex-wrap:wrap;gap:.5rem .55rem;font-size:1.2rem}.detail-back-btn{border:1px solid var(--gray-300);color:var(--navy-700);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:.25rem;padding:.3rem .6rem;font-family:inherit;font-size:.85rem;font-weight:600;transition:background .12s,border-color .12s;display:inline-flex}.detail-back-btn:hover{background:var(--gray-50);border-color:var(--navy-500)}.detail-title-sep{color:var(--gray-700);font-size:.95rem;font-weight:600}.storage-label{color:var(--navy-700);font-weight:600}.recent-table-wrap{overflow-x:auto}.recent-table{border-collapse:collapse;width:100%;font-size:.82rem}.recent-table thead th{color:var(--gray-500);text-transform:uppercase;letter-spacing:.04em;text-align:left;background:var(--gray-50);border-bottom:1px solid var(--gray-200);padding:.4rem .55rem;font-size:.72rem;font-weight:600}.recent-table tbody td{border-bottom:1px solid var(--gray-200);font-variant-numeric:tabular-nums;padding:.45rem .55rem}.recent-table tbody tr:last-child td{border-bottom:none}.recent-table .num{text-align:right}.recent-table .cell-deviation{color:var(--danger);font-weight:700}.preview-toolbar-new{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:6px;align-items:center;gap:.45rem;margin-bottom:.75rem;padding:.55rem .65rem;display:flex}.preview-pos{color:var(--gray-500);font-variant-numeric:tabular-nums;margin-left:auto;font-size:.82rem}.preview-card .screen-preview-root{margin-top:0}.action-bar{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-top:1px solid var(--gray-200);z-index:10;background:#fffffff5;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:1.5rem -2rem -1.75rem;padding:1rem 2rem;display:flex;position:sticky;bottom:0}@media (width<=720px){.action-bar{margin:1.5rem -1rem -1.25rem;padding:.85rem 1rem}}.action-bar-info{color:var(--gray-700);font-size:.88rem}.warn-inline{color:var(--danger);margin-left:.4rem;font-size:.8rem;font-weight:600}.detail-foot{margin-top:.5rem}.period-foot{text-align:right;font-size:.78rem}.device-id-sub{color:var(--gray-500);font-variant-numeric:tabular-nums;letter-spacing:.02em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem}.tile-id-block{flex-direction:column;gap:.15rem;min-width:0;display:flex}.tile-devnum{color:var(--gray-500);letter-spacing:.02em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.66rem}.device-devnum{color:var(--gray-500);letter-spacing:.04em;vertical-align:middle;margin-left:.5rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;font-weight:500;display:inline-block}.battery-cell{font-variant-numeric:tabular-nums;color:var(--gray-700);white-space:nowrap;align-items:center;gap:.3rem;font-size:.78rem;display:inline-flex}.battery-cell>svg{flex-shrink:0}.battery-cell.battery-low{color:#b45309}.badge-online{color:var(--navy-800);border:1px solid var(--navy-700);background:#fff}.badge-offline{color:var(--danger);border:1px solid var(--danger);background:#fff}.sensor-meta-card .panel-card-meta{gap:.55rem}.meta-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.65rem 1rem;display:grid}.meta-item{flex-direction:column;gap:.18rem;padding:.4rem 0;display:flex}.meta-item-label{color:var(--gray-500);letter-spacing:.04em;text-transform:uppercase;font-size:.7rem;font-weight:600}.meta-item-value{color:var(--navy-800);font-size:.88rem;font-weight:500}.meta-item-value.mono{letter-spacing:.03em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.83rem}.meta-link-btn{color:var(--navy-700);font-size:.88rem;font-weight:600}.meta-link-btn:hover{color:var(--navy-800)}.meta-sub-inline{color:var(--gray-500);margin-left:.25rem;font-size:.78rem;font-weight:400}.mono{letter-spacing:.02em;color:var(--gray-700);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.83rem}.meta-list{flex-direction:column;gap:.4rem;margin:0;padding:0;display:flex}.meta-list>div{border-bottom:1px dashed var(--gray-200);justify-content:space-between;padding-bottom:.4rem;font-size:.85rem;display:flex}.meta-list>div:last-child{border-bottom:none;padding-bottom:0}.meta-list dt{color:var(--gray-500);margin:0;font-weight:500}.meta-list dd{color:var(--navy-800);font-variant-numeric:tabular-nums;margin:0;font-weight:600}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.85rem;margin-bottom:1rem;display:grid}.status-card{flex-direction:column;gap:.65rem;display:flex}.status-rows{flex-direction:column;gap:.45rem;display:flex}.status-row{border-bottom:1px dashed var(--gray-200);align-items:center;gap:.55rem;padding:.4rem 0;font-size:.88rem;display:flex}.status-row:last-child{border-bottom:none}.status-icon{background:var(--gray-100);width:24px;height:24px;color:var(--gray-500);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.status-icon.ok{color:var(--navy-700)}.status-icon.alert{color:var(--danger);background:#fdecec}.status-label{color:var(--gray-700);flex:1}.status-value{color:var(--navy-800);font-variant-numeric:tabular-nums;font-weight:700}.card-cta{align-self:flex-start;margin-top:.4rem}.upcoming-card{background:linear-gradient(#fff,#f8fafc)}.upcoming-text{color:var(--gray-700);margin:0 0 .6rem;font-size:.85rem;line-height:1.6}.upcoming-list{color:var(--gray-600);margin:0;padding:0 0 0 1rem;font-size:.78rem;line-height:1.7}.gateway-cell{max-width:14em;color:var(--navy-700);white-space:nowrap;text-overflow:ellipsis;vertical-align:middle;font-size:.85rem;font-weight:500;display:inline-block;overflow:hidden}.location-cell{color:var(--gray-700);white-space:nowrap;align-items:center;gap:.25rem;font-size:.82rem;display:inline-flex}.row-icon{vertical-align:middle;color:var(--navy-600);margin-right:.3rem}.history-card .panel-card-head{margin-bottom:.5rem}.history-controls{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:6px;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;margin-bottom:1rem;padding:.55rem .65rem;display:flex}.period-tabs{border:1px solid var(--gray-300);background:#fff;border-radius:6px;display:inline-flex;overflow:hidden}.period-tab{border:none;border-right:1px solid var(--gray-300);color:var(--gray-700);cursor:pointer;background:#fff;padding:.35rem .85rem;font-size:.85rem;font-weight:600;transition:background .12s,color .12s}.period-tab:last-child{border-right:none}.period-tab:hover:not(.is-active){background:var(--gray-50);color:var(--navy-700)}.period-tab.is-active{background:var(--navy-800);color:#fff}.period-nav{flex-wrap:wrap;align-items:center;gap:.4rem;display:inline-flex}.period-nav .select{font-variant-numeric:tabular-nums;padding:.3rem .5rem;font-size:.85rem}.period-label{color:var(--navy-800);font-variant-numeric:tabular-nums;margin-left:.4rem;font-size:.85rem;font-weight:600}.history-controls .history-csv-btn{margin-left:auto}.history-pagination{justify-content:flex-end;padding:.5rem .2rem;display:flex}.history-pagination-top{border-bottom:1px solid var(--gray-200);margin-bottom:.5rem}.history-pagination-bottom{border-top:1px solid var(--gray-200);margin-top:.5rem}.history-charts{flex-direction:column;gap:1rem;display:flex}.history-charts .chart-block-title{color:var(--navy-800);margin:0 0 .35rem;font-size:.78rem;font-weight:700}.alert-card .panel-card-meta{gap:.4rem}.alert-form{flex-direction:column;gap:.85rem;display:flex}.alert-fieldset{border:1px solid var(--gray-200);background:#fff;border-radius:8px;margin:0;padding:.75rem .95rem .85rem}.alert-fieldset legend{color:var(--navy-800);padding:0 .35rem;font-size:.78rem;font-weight:700}.alert-fieldset:disabled{opacity:.55}.alert-row{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-top:.45rem;display:flex}.alert-row .row-label{color:var(--gray-600);letter-spacing:.02em;text-transform:none;font-size:.78rem;font-weight:500}.alert-row-sub{background:var(--gray-50,#f8fafc);border:1px dashed var(--gray-200);border-radius:6px;flex-direction:column;align-items:stretch;gap:.35rem;margin-top:.55rem;padding:.45rem .6rem}.alert-row-sub .row-label-inline{color:var(--gray-700);margin-right:.3rem;font-size:.78rem;font-weight:500}.alert-row-sub .num-input-row{align-items:center;gap:.3rem;display:inline-flex}.alert-row-sub .alert-help{margin:.1rem 0 0;font-size:.72rem}.chip-group{flex-wrap:wrap;gap:.35rem;display:inline-flex}.chip-toggle{border:1px solid var(--gray-300);color:var(--gray-700);cursor:pointer;background:#fff;border-radius:999px;padding:.3rem .7rem;font-family:inherit;font-size:.78rem;font-weight:500;transition:background .12s,color .12s,border-color .12s}.chip-toggle:hover:not(:disabled):not(.is-active){border-color:var(--navy-500)}.chip-toggle.is-active{background:var(--navy-800);border-color:var(--navy-800);color:#fff}.chip-toggle:disabled{opacity:.45;cursor:not-allowed}.num-input-row{align-items:center;gap:.4rem;display:inline-flex}.num-input-row input{border:1px solid var(--gray-300);font-variant-numeric:tabular-nums;width:5rem;color:var(--ink);background:#fff;border-radius:5px;padding:.35rem .5rem;font-size:.88rem}.num-input-row input:focus{outline:2px solid var(--navy-400);outline-offset:-1px;border-color:var(--navy-500)}.num-input-row input:disabled{background:var(--gray-100);color:var(--gray-500)}.num-input-suffix{color:var(--gray-600);font-size:.85rem}.channel-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.4rem .85rem;margin-top:.2rem;display:grid}.bulk-bar{background:var(--navy-800);color:#fff;border-radius:10px 10px 0 0;flex-wrap:wrap;align-items:center;gap:.5rem .6rem;margin:-1.1rem -1.25rem .85rem;padding:.55rem .85rem;font-size:.85rem;display:flex}.bulk-bar-info{align-items:center;gap:.6rem;display:inline-flex}.bulk-bar-info strong{font-size:1rem}.bulk-bar-info .link-btn{color:#ffffffbf;font-size:.78rem}.bulk-bar-info .link-btn:hover{color:#fff}.bulk-bar-actions-primary{border-left:1px solid #ffffff2e;gap:.4rem;margin-left:.4rem;padding-left:.85rem;display:inline-flex}.bulk-bar-actions-danger{border-left:1px solid #ffffff2e;gap:.4rem;margin-left:auto;padding-left:.85rem;display:inline-flex}.bulk-bar-actions-primary .btn,.bulk-bar-actions-danger .btn{color:var(--navy-800);background:#fffffff2;border-color:#0000}.bulk-bar-actions-primary .btn:hover:not(:disabled),.bulk-bar-actions-danger .btn:hover:not(:disabled){background:#fff}.bulk-bar-actions-danger .btn.bulk-danger{color:var(--danger)}.bulk-bar-actions-danger .btn.bulk-danger:hover:not(:disabled){background:#fff}@media (width<=640px){.bulk-bar-actions-danger{border-left:none;justify-content:flex-end;width:100%;margin-left:0;padding-left:0}}.check-cell{text-align:center;width:32px;padding:.55rem .4rem}.device-row.is-selected{background:#0f27440a}.toast-stack{z-index:1000;pointer-events:none;flex-direction:column;gap:.5rem;display:flex;position:fixed;bottom:1.25rem;right:1.25rem}.toast{background:var(--navy-800);color:#fff;pointer-events:auto;border-radius:8px;align-items:center;gap:.6rem;min-width:240px;max-width:360px;padding:.6rem .85rem;font-size:.85rem;animation:.18s ease-out toast-slide-in;display:inline-flex;box-shadow:0 6px 18px #0f27442e}.toast-success{background:var(--navy-700)}.toast-error{background:var(--danger)}.toast-icon{flex-shrink:0;align-items:center;display:inline-flex}.toast-msg{flex:1}.toast-close{color:#ffffffb3;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:2px;display:inline-flex}.toast-close:hover{color:#fff;background:#ffffff1f}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.nav-block{display:contents}.sub-nav{border-left:1px solid #ffffff14;flex-direction:column;gap:.05rem;margin:.1rem 0 .4rem .5rem;padding-left:.5rem;display:flex}.sub-nav-item{color:#ffffffa6;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:5px;align-items:center;gap:.45rem;padding:.4rem .6rem;font-family:inherit;font-size:.82rem;font-weight:500;transition:background .12s,color .12s;display:inline-flex}.sub-nav-item:hover{color:#fff;background:#ffffff0d}.sub-nav-item.is-active{color:#fff;background:#ffffff14;font-weight:600}.sub-bullet{background:#ffffff73;border-radius:50%;flex-shrink:0;width:5px;height:5px;display:inline-block}.sub-nav-item.is-active .sub-bullet{background:#fff}.sub-nav-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sub-nav-new{color:#ffffff8c;margin-top:.15rem;font-size:.78rem}.sub-nav-new:hover{color:#ffffffe6}.widgets-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1rem;display:grid}@media (width<=900px){.widgets-grid{grid-template-columns:1fr}}.widget-half{grid-column:span 1}.widget-full{grid-column:span 2}@media (width<=900px){.widget-half,.widget-full{grid-column:span 1}}.widget-card{border:1px solid var(--gray-200);background:#fff;border-radius:10px;flex-direction:column;gap:.7rem;min-width:0;padding:.95rem 1rem 1rem;display:flex;box-shadow:0 1px 2px #0f27440a}.widget-card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.widget-card-title{align-items:center;gap:.45rem;min-width:0;display:inline-flex}.widget-card-title h3{color:var(--navy-800);white-space:nowrap;text-overflow:ellipsis;max-width:18em;margin:0;font-size:.95rem;font-weight:700;overflow:hidden}.widget-card-meta{color:var(--gray-500);white-space:nowrap;font-size:.72rem;font-weight:500}.widget-card-actions{flex-shrink:0;gap:.15rem;display:inline-flex}.widget-card-actions .icon-btn{width:28px;height:28px}.widget-card-body{min-width:0}.widget-tile-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.6rem;display:grid}.widget-tile{border:1.5px solid var(--gray-600);text-align:left;cursor:pointer;background:#fff;border-radius:0;flex-direction:column;gap:.35rem;min-width:0;padding:.55rem .7rem .5rem;font-family:inherit;transition:box-shadow .12s;display:flex;position:relative}.widget-tile:hover{box-shadow:0 2px 6px #0f27441a}.widget-tile.has-deviation{border-color:var(--danger);animation:1.2s ease-in-out infinite deviation-pulse}.widget-tile-missing{cursor:default;background:var(--gray-50)}.widget-tile-name{color:var(--navy-800);white-space:nowrap;text-overflow:ellipsis;letter-spacing:.01em;width:100%;font-size:.82rem;font-weight:500;overflow:hidden}.widget-tile-readings{align-items:baseline;gap:.85rem;display:flex}.widget-tile-reading{color:var(--navy-800);font-variant-numeric:tabular-nums;align-items:baseline;gap:.25rem;display:inline-flex}.widget-tile-reading svg{color:var(--navy-600);flex-shrink:0;align-self:center}.widget-tile-value{font-size:1.2rem;font-weight:700;line-height:1}.widget-tile-unit{color:var(--gray-500);font-size:.74rem;font-weight:600}.widget-tile-reading .cell-deviation,.widget-tile-reading.cell-deviation{color:var(--danger)}.widget-tile-foot{justify-content:space-between;align-items:center;gap:.4rem;margin-top:.05rem;display:flex}.widget-tile-ago{color:var(--gray-500);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.72rem}.widget-chart-wrap{width:100%}.widget-chart-toolbar{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:6px;align-items:center;gap:.4rem;margin-bottom:.4rem;padding:.35rem .5rem;display:flex}.widget-chart-toolbar .icon-btn{width:26px;height:26px}.widget-chart-period-label{color:var(--navy-800);font-variant-numeric:tabular-nums;text-align:center;flex:1;font-size:.82rem;font-weight:600}.widget-chart-reset{padding:.2rem .5rem;font-size:.74rem}.widget-chart-empty{text-align:center;padding:1.5rem 1rem}.map-widget{flex-direction:column;gap:.5rem;display:flex}.map-toolbar{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:6px;justify-content:space-between;align-items:center;padding:.45rem .6rem;font-size:.8rem;display:flex}.map-container{border:1px solid var(--gray-300);-webkit-user-select:none;user-select:none;touch-action:none;background:#f1f3f6 repeating-linear-gradient(45deg,#0000,#0000 14px,#0f27440a 14px 15px);border-radius:8px;width:100%;position:relative;overflow:hidden}.map-container.is-editing{border-color:var(--navy-700);box-shadow:0 0 0 3px #0f274414}.map-image{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.map-empty{background:var(--gray-50);border:1px dashed var(--gray-300);color:var(--gray-600);text-align:center;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;padding:2.5rem 1rem;display:flex}.map-empty p{color:var(--navy-800);margin:.2rem 0 0;font-size:.88rem;font-weight:600}@keyframes deviation-pulse{0%,to{border-color:var(--danger);box-shadow:0 2px 6px #cc000080,0 0 #cc000073}50%{border-color:#ff3030;box-shadow:0 2px 6px #c000,0 0 0 6px #c000}}.badge.badge-kind{border:1px solid var(--gray-300);letter-spacing:.02em;background:#fff;font-weight:700}.badge-kind-freezer{color:#1a6fb5;border-color:#1a6fb5}.badge-kind-refrigerator{color:#0f2744;border-color:#0f2744}.badge-kind-other{color:#6b7480;border-color:#6b7480}.map-pin{border:3px solid var(--gray-600);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;z-index:2;text-align:left;background:#fffffff7;border-radius:0;flex-direction:column;gap:.3rem;min-width:90px;padding:.4rem .55rem .35rem;font-size:.7rem;transition:box-shadow .12s,transform .12s;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 6px #0f274438}.map-pin:hover{z-index:3;box-shadow:0 4px 10px #0f274452}.map-pin.is-editable{cursor:move;background:#fffffff0;border-style:dashed}.map-pin.is-dragging{z-index:4;border-style:solid;transform:translate(-50%,-50%)scale(1.04);box-shadow:0 6px 16px #0f274466}.map-pin.is-selected{z-index:4;border-style:solid;box-shadow:0 0 0 3px #0f27442e,0 4px 10px #0f27444d}.map-pin.has-deviation{border-color:var(--danger);border-style:solid;animation:1.2s ease-in-out infinite deviation-pulse}.map-pin-name{color:var(--navy-800);text-overflow:ellipsis;white-space:nowrap;letter-spacing:.01em;max-width:14em;font-size:.66rem;font-weight:500;overflow:hidden}.map-pin-readings{font-variant-numeric:tabular-nums;color:var(--navy-800);justify-content:flex-start;gap:.55rem;font-size:.92rem;font-weight:700;line-height:1.1;display:flex}.map-pin-placeholder{color:var(--gray-500);letter-spacing:.04em;font-weight:500}.map-pin-foot{justify-content:space-between;align-items:center;gap:.4rem;margin-top:.05rem;display:flex}.map-pin-ago{color:var(--gray-500);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.66rem}.map-pin.size-sm{border-width:2.5px;gap:.18rem;min-width:78px;padding:.28rem .4rem .25rem}.map-pin.size-sm .map-pin-name{font-size:.58rem}.map-pin.size-sm .map-pin-readings{gap:.35rem;font-size:.78rem}.map-pin.size-sm .map-pin-ago{font-size:.58rem}.map-pin.size-sm .badge.badge-kind{padding:.1rem .35rem;font-size:.6rem}.map-pin.size-lg{border-width:3.5px;gap:.4rem;min-width:130px;padding:.55rem .8rem .5rem}.map-pin.size-lg .map-pin-name{font-size:.78rem}.map-pin.size-lg .map-pin-readings{gap:.7rem;font-size:1.15rem}.map-pin.size-lg .map-pin-ago{font-size:.74rem}.map-pin.size-lg .badge.badge-kind{padding:.18rem .55rem;font-size:.75rem}.map-pin-properties{border:1px solid var(--gray-300);z-index:5;background:#fff;border-radius:8px;flex-direction:column;gap:.35rem;min-width:240px;padding:.5rem .6rem .55rem;display:flex;position:absolute;top:.5rem;left:.5rem;box-shadow:0 8px 20px #0f27442e}.properties-head{border-bottom:1px dashed var(--gray-200);align-items:center;gap:.4rem;margin-bottom:.15rem;padding-bottom:.35rem;display:flex}.properties-label{color:var(--gray-500);letter-spacing:.02em;text-transform:uppercase;font-size:.7rem;font-weight:600}.properties-name{color:var(--navy-800);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.85rem;font-weight:700;overflow:hidden}.properties-head .icon-btn{width:24px;height:24px}.properties-row{align-items:center;gap:.45rem;display:flex}.properties-row-label{color:var(--gray-600);flex-shrink:0;width:2.6em;font-size:.74rem;font-weight:600}.properties-row .seg-toggle-btn{align-items:center;gap:.2rem;padding:.25rem .55rem;font-size:.74rem;display:inline-flex}.map-edit-hint{margin:.25rem 0 0;font-size:.74rem}.image-preview{border:1px solid var(--gray-300);background:var(--gray-50);border-radius:6px;flex-direction:column;gap:.4rem;padding:.5rem;display:flex}.image-preview img{object-fit:contain;background:#fff;border-radius:4px;width:auto;max-width:100%;height:auto;max-height:220px;margin:0 auto;display:block}.image-preview-actions{justify-content:center;gap:.4rem;display:flex}.image-dropzone{background:var(--gray-50);border:1px dashed var(--gray-400);color:var(--gray-600);cursor:pointer;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;padding:1.75rem 1rem;font-family:inherit;font-size:.85rem;transition:border-color .12s,background .12s;display:flex}.image-dropzone:hover{border-color:var(--navy-500);color:var(--navy-700);background:#fff}.inline-icon{vertical-align:middle;margin-right:.2rem}.empty-state-compact{padding:2rem 1.5rem}.app-dialog{width:calc(100% - 2rem);max-width:640px;color:var(--ink);background:#fff;border:none;border-radius:12px;padding:0;font-family:inherit;box-shadow:0 24px 60px #0f274433}.app-dialog-sm{max-width:480px}.form-label-with-link{justify-content:space-between;align-items:baseline;gap:.6rem;margin-bottom:.3rem;display:flex}.form-label-with-link .form-label{margin-bottom:0}.form-label-with-link .link-btn{color:var(--navy-700);align-items:center;gap:.25rem;font-size:.78rem;font-weight:600;display:inline-flex}.app-dialog-bulk{max-width:760px}.app-dialog-body.bulk-actions-2pane{grid-template-columns:11.5rem 1fr;gap:0;min-height:18rem;padding:0;display:grid}.bulk-actions-nav{background:var(--gray-50);border-right:1px solid var(--gray-200);flex-direction:column;gap:.15rem;padding:.85rem .6rem;display:flex}.bulk-actions-nav-item{color:var(--gray-700);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:.45rem;padding:.5rem .7rem;font-family:inherit;font-size:.86rem;font-weight:600;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.bulk-actions-nav-item:hover{border-color:var(--gray-200);color:var(--navy-700);background:#fff}.bulk-actions-nav-item.is-active{background:var(--navy-800);border-color:var(--navy-800);color:#fff}.bulk-actions-pane{flex-direction:column;gap:.7rem;min-width:0;padding:.85rem 1rem 1rem;display:flex}@media (width<=720px){.app-dialog-bulk{max-width:95vw}.bulk-actions-2pane{grid-template-columns:1fr}.bulk-actions-nav{border-right:none;border-bottom:1px solid var(--gray-200);flex-flow:wrap}}.app-dialog-md{max-width:760px}.app-dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f274452}.app-dialog-form{flex-direction:column;max-height:80vh;display:flex}.app-dialog-head{border-bottom:1px solid var(--gray-200);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.app-dialog-head h2{color:var(--navy-800);margin:0;font-size:1.05rem;font-weight:700}.app-dialog-body{flex-direction:column;flex:1;gap:1rem;padding:1rem 1.25rem;display:flex;overflow-y:auto}.app-dialog-foot{border-top:1px solid var(--gray-200);background:var(--gray-50);border-radius:0 0 12px 12px;justify-content:flex-end;gap:.5rem;padding:.85rem 1.25rem;display:flex}.dialog-foot-split{justify-content:space-between;align-items:center}.dialog-foot-actions{gap:.5rem;display:inline-flex}.dialog-delete-btn{color:var(--danger)}.dialog-delete-btn:hover:not(:disabled){background:#fdecec}.form-row{flex-direction:column;gap:.4rem;display:flex}.form-row-inline{flex-flow:wrap;gap:1rem}.form-row-inline>div{flex-direction:column;flex:200px;gap:.4rem;display:flex}.form-input-with-action{align-items:stretch;gap:.4rem;display:flex}.form-input-with-action>.form-input,.form-input-with-action>input{flex:auto;min-width:0}.form-input-with-action>.btn{white-space:nowrap;flex:none}.form-label{color:var(--navy-800);font-size:.82rem;font-weight:600}.form-label-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.form-label-actions{align-items:center;gap:.4rem;font-size:.78rem;display:inline-flex}.form-input{border:1px solid var(--gray-300);color:var(--ink);background:#fff;border-radius:6px;width:100%;padding:.5rem .65rem;font-family:inherit;font-size:.9rem}.form-input:focus{outline:2px solid var(--navy-400);outline-offset:-1px;border-color:var(--navy-500)}.form-textarea{resize:vertical;min-height:70px;line-height:1.5}.type-toggle{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}@media (width<=540px){.type-toggle{grid-template-columns:1fr}}.type-toggle-btn{border:1px solid var(--gray-300);text-align:left;cursor:pointer;background:#fff;border-radius:8px;align-items:flex-start;gap:.6rem;padding:.7rem .8rem;font-family:inherit;transition:border-color .12s,background .12s;display:flex}.type-toggle-btn:hover{border-color:var(--navy-500)}.type-toggle-btn.is-active{border-color:var(--navy-700);background:#0f27440a}.type-toggle-btn svg{color:var(--navy-700);flex-shrink:0;margin-top:2px}.type-toggle-text{flex-direction:column;gap:.15rem;display:flex}.type-toggle-text strong{color:var(--navy-800);font-size:.88rem}.type-toggle-text span{color:var(--gray-600);font-size:.74rem}.seg-toggle{border:1px solid var(--gray-300);background:#fff;border-radius:6px;display:inline-flex;overflow:hidden}.seg-toggle-btn{border:none;border-right:1px solid var(--gray-300);color:var(--gray-700);cursor:pointer;background:#fff;justify-content:center;align-items:center;gap:.4rem;padding:.4rem .85rem;font-family:inherit;font-size:.82rem;font-weight:600;line-height:1;transition:background .12s,color .12s;display:inline-flex}.seg-toggle-btn>svg{flex-shrink:0}.seg-toggle-btn:last-child{border-right:none}.seg-toggle-btn:hover:not(.is-active){background:var(--gray-50);color:var(--navy-700)}.seg-toggle-btn.is-active{background:var(--navy-800);color:#fff}.dialog-sensor-grid{border:1px solid var(--gray-200);background:var(--gray-50);border-radius:6px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.4rem;max-height:240px;padding:.5rem;display:grid;overflow-y:auto}.dialog-sensor-pill{border:1px solid var(--gray-300);text-align:left;cursor:pointer;background:#fff;border-radius:5px;flex-direction:column;gap:.1rem;padding:.4rem .55rem;font-family:inherit;transition:background .12s,border-color .12s,color .12s;display:flex}.dialog-sensor-pill:hover:not(.is-checked){border-color:var(--navy-500)}.dialog-sensor-pill.is-checked{background:var(--navy-800);border-color:var(--navy-800);color:#fff}.dialog-sensor-name{font-size:.82rem;font-weight:600}.dialog-sensor-sub{color:var(--gray-500);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem}.dialog-sensor-pill.is-checked .dialog-sensor-sub{color:#ffffffb3}.week-picker{flex-wrap:wrap;align-items:center;gap:.45rem;display:inline-flex}.week-picker .select{font-variant-numeric:tabular-nums;padding:.35rem .5rem;font-size:.85rem}.week-picker .period-label{color:var(--navy-800);font-variant-numeric:tabular-nums;margin-left:.3rem;font-size:.85rem;font-weight:600}.week-hint{margin-left:auto;font-size:.74rem}.user-menu{border-top:1px solid #ffffff14;margin-top:.5rem;padding-top:.6rem;position:relative}.user-menu-trigger{color:#fff;cursor:pointer;text-align:left;background:#ffffff0a;border:1px solid #ffffff14;border-radius:6px;align-items:center;gap:.55rem;width:100%;padding:.45rem .55rem;font-family:inherit;transition:background .12s,border-color .12s;display:flex}.user-menu-trigger:hover,.user-menu-trigger.is-open{background:#ffffff1a;border-color:#ffffff29}.user-avatar{color:#fff;background:#ffffff2e;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.78rem;font-weight:700;display:inline-flex}.user-avatar-lg{width:38px;height:38px;font-size:1rem}.user-text{flex-direction:column;flex:1;min-width:0;display:flex}.user-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;font-weight:600;overflow:hidden}.user-org{color:#fff9;white-space:nowrap;text-overflow:ellipsis;font-size:.66rem;overflow:hidden}.user-chev{color:#ffffff8c;flex-shrink:0}.user-menu-popover{border:1px solid var(--gray-300);z-index:30;width:240px;color:var(--ink);background:#fff;border-radius:8px;padding:.55rem .6rem;position:absolute;bottom:calc(100% + .4rem);left:0;box-shadow:0 -8px 24px #0f274438}.user-menu-popover.is-portal{z-index:1000;position:fixed;bottom:auto}.user-menu-head{text-align:center;flex-direction:column;align-items:center;gap:.2rem;padding:.4rem .2rem .55rem;display:flex}.user-avatar-xl{background:var(--navy-800);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:.15rem;font-size:1.05rem;font-weight:700;display:inline-flex}.user-menu-name{color:var(--navy-800);font-size:.95rem;font-weight:700}.user-menu-email{color:var(--gray-600);word-break:break-all;font-size:.74rem}.user-menu-org{color:var(--gray-700);font-size:.74rem}.user-menu-role-pill{background:var(--navy-50,#eef2f8);color:var(--navy-700);border-radius:999px;margin-top:.25rem;padding:.1rem .55rem;font-size:.7rem;font-weight:600;display:inline-block}.user-menu-divider{background:var(--gray-200);height:1px;margin:.2rem -.6rem}.user-menu-item{width:100%;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:5px;align-items:center;gap:.5rem;padding:.45rem .5rem;font-family:inherit;font-size:.84rem;display:flex}.user-menu-item:hover{background:var(--gray-100);color:var(--navy-800)}.settings-tabs{border:1px solid var(--gray-300);background:#fff;border-radius:8px;margin-bottom:1rem;display:inline-flex;overflow:hidden}.settings-tab{border:none;border-right:1px solid var(--gray-300);color:var(--gray-700);cursor:pointer;background:#fff;align-items:center;gap:.4rem;padding:.5rem .95rem;font-family:inherit;font-size:.85rem;font-weight:600;transition:background .12s,color .12s;display:inline-flex}.settings-tab:last-child{border-right:none}.settings-tab:hover:not(.is-active){background:var(--gray-50);color:var(--navy-700)}.settings-tab.is-active{background:var(--navy-800);color:#fff}.kind-chip-row{flex-wrap:wrap;gap:.3rem;display:inline-flex}.kind-chip{background:var(--gray-100);border:1px solid var(--gray-200);color:var(--navy-700);border-radius:4px;align-items:center;padding:.18rem .5rem;font-size:.74rem;font-weight:600;display:inline-flex}.ng-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.85rem;display:grid}.ng-card{border:1px solid var(--gray-200);background:#fff;border-radius:8px;flex-direction:column;gap:.55rem;padding:.85rem 1rem;display:flex}.ng-card-head{justify-content:space-between;align-items:flex-start;gap:.45rem;display:flex}.ng-card-head h3{color:var(--navy-800);margin:0 0 .2rem;font-size:.95rem;font-weight:700}.ng-card-desc{color:var(--gray-600);margin:0;font-size:.78rem;line-height:1.5}.ng-card-actions{gap:.15rem;display:inline-flex}.ng-card-meta{border-top:1px dashed var(--gray-200);border-bottom:1px dashed var(--gray-200);flex-wrap:wrap;gap:.5rem 1.2rem;margin:0;padding:.4rem 0;display:flex}.ng-card-meta>div{flex-direction:column;gap:.1rem;display:flex}.ng-card-meta dt{color:var(--gray-500);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:.68rem;font-weight:600}.ng-card-meta dd{color:var(--navy-800);margin:0;font-size:.85rem;font-weight:600}.ng-channels{flex-wrap:wrap;align-items:center;gap:.35rem;font-size:.78rem;display:flex}.timing-list{grid-template-columns:repeat(auto-fit,minmax(95px,1fr));gap:.4rem;display:grid}.radio-card{border:1px solid var(--gray-300);cursor:pointer;white-space:nowrap;background:#fff;border-radius:6px;justify-content:center;align-items:center;gap:.35rem;padding:.5rem .6rem;font-size:.85rem;display:flex}.form-hint{margin:-.15rem 0 .45rem;font-size:.74rem;line-height:1.5}.radio-card:hover{border-color:var(--navy-500)}.radio-card input[type=radio]{margin:0}.radio-card-text{color:var(--navy-800);font-weight:500}.channel-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.channel-row{grid-template-columns:6em 1fr auto;align-items:center;gap:.45rem;display:grid}.channel-kind-label{color:var(--navy-700);align-items:center;gap:.3rem;font-size:.78rem;font-weight:600;display:inline-flex}.row-leading-icon{color:var(--navy-600);flex-shrink:0}.integration-status{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:6px;justify-content:space-between;align-items:center;gap:.4rem;padding:.6rem .7rem;display:flex}.readonly-field{align-items:stretch;gap:.4rem;display:flex}.readonly-field .form-input{flex:1}.mono-input{letter-spacing:.02em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}.kind-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.5rem;display:grid}.kind-card{border:1px solid var(--gray-300);cursor:pointer;background:#fff;border-radius:6px;align-items:flex-start;gap:.55rem;padding:.6rem .75rem;display:flex}.kind-card:hover{border-color:var(--navy-500)}.kind-card.is-checked{border-color:var(--navy-700);background:#0f27440a}.kind-card.is-future{opacity:.7}.kind-card-static{cursor:default}.kind-card-static:hover{border-color:var(--gray-300)}.kind-card input[type=checkbox]{margin-top:3px}.kind-card-text{flex-direction:column;gap:.15rem;min-width:0;display:flex}.kind-card-text strong{color:var(--navy-800);align-items:center;gap:.4rem;font-size:.88rem;display:inline-flex}.kind-card-text small{color:var(--gray-600);font-size:.74rem;line-height:1.4}.kind-future-tag,.kind-supported-tag{letter-spacing:.04em;border:1px solid var(--gray-300);color:var(--gray-600);text-transform:uppercase;border-radius:3px;padding:.05rem .4rem;font-size:.62rem;font-weight:700;display:inline-block}.kind-supported-tag{border-color:var(--navy-700);color:var(--navy-700)}.dashboard-context-info{color:var(--gray-600);flex-wrap:wrap;align-items:center;gap:.6rem 1.4rem;margin:.4rem 0 0;font-size:.78rem;display:flex}.dashboard-context-info>span{align-items:center;gap:.3rem;display:inline-flex}.dashboard-context-info svg{color:var(--navy-700)}.dashboard-context-info strong{color:var(--navy-800);font-weight:700}.dashboard-period-bar{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;margin-bottom:1rem;padding:.6rem .85rem;display:flex}.dashboard-period-mode{flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.85rem;display:inline-flex}.dashboard-period-custom-inputs{border:1px solid var(--gray-200);background:#fff;border-radius:6px;align-items:center;gap:.35rem;padding:.18rem .5rem;display:inline-flex}.dashboard-period-custom-inputs .select{border:1px solid var(--gray-200);font-variant-numeric:tabular-nums;border-radius:4px;padding:.18rem .4rem;font-family:inherit;font-size:.82rem}.dashboard-period-current{font-variant-numeric:tabular-nums;align-items:center;gap:.6rem;font-size:.85rem;display:inline-flex}.dashboard-period-current strong{color:var(--navy-800)}.type-toggle-4col{grid-template-columns:repeat(4,1fr)}@media (width<=720px){.type-toggle-4col{grid-template-columns:1fr 1fr}}.deviation-widget{flex-direction:column;gap:.4rem;display:flex}.deviation-empty{background:var(--gray-50);border:1px dashed var(--gray-300);color:var(--navy-700);border-radius:6px;align-items:center;gap:.5rem;padding:.85rem 1rem;font-size:.88rem;display:inline-flex}.deviation-empty svg{color:var(--navy-700)}.deviation-segment-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.deviation-segment-row{border:1px solid var(--gray-200);border-left:3px solid var(--danger);cursor:pointer;text-align:left;font-variant-numeric:tabular-nums;background:#fff;border-radius:5px;grid-template-columns:minmax(120px,1.2fr) minmax(110px,.8fr) minmax(180px,1.4fr) minmax(120px,.9fr) minmax(110px,.8fr);align-items:center;gap:.45rem .85rem;width:100%;padding:.55rem .7rem;font-family:inherit;font-size:.83rem;transition:background .12s,border-color .12s;display:grid}.deviation-segment-row:hover{background:var(--gray-50);border-color:var(--gray-300);border-left-color:var(--danger)}.dev-seg-sensor{color:var(--navy-800);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.3rem;display:inline-flex;overflow:hidden}.dev-seg-sensor strong{font-weight:700}.dev-seg-kind{color:var(--gray-700);align-items:center;gap:.2rem;font-weight:600;display:inline-flex}.dev-seg-time{color:var(--gray-700);white-space:nowrap}.dev-seg-meta{color:var(--gray-600);white-space:nowrap}.dev-seg-extreme{text-align:right;white-space:nowrap;font-weight:700}.deviation-foot-note{margin:.35rem 0 0;font-size:.72rem}@media (width<=720px){.deviation-segment-row{grid-template-columns:1fr 1fr;grid-auto-rows:auto}.dev-seg-time,.dev-seg-meta,.dev-seg-extreme{grid-column:span 2}}.last-checkin-info{color:var(--gray-600);flex-wrap:wrap;align-items:center;gap:.4rem;margin:.4rem 0 0;font-size:.78rem;display:inline-flex}.last-checkin-info svg{color:var(--navy-700)}.last-checkin-info strong{color:var(--navy-800);font-weight:700}.checkin-meta{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:6px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.5rem 1rem;padding:.6rem .8rem;display:grid}.checkin-meta>div{flex-direction:column;gap:.1rem;display:flex}.checkin-meta-label{letter-spacing:.04em;color:var(--gray-500);text-transform:uppercase;font-size:.68rem;font-weight:600}.checkin-meta strong{color:var(--navy-800);font-size:.88rem;font-weight:700}.form-label-meta{margin-left:.4rem;font-size:.74rem;font-weight:500}.checkin-empty{background:var(--gray-50);border:1px dashed var(--gray-300);color:var(--navy-700);border-radius:6px;align-items:center;gap:.45rem;padding:.7rem .85rem;font-size:.85rem;display:inline-flex}.checkin-empty svg{color:var(--navy-700)}.checkin-deviation-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.checkin-deviation-item{border:1px solid var(--gray-200);border-left:3px solid var(--danger);background:#fff;border-radius:6px;overflow:hidden}.checkin-deviation-head{cursor:pointer;text-align:left;border:none;border-bottom:1px dashed var(--gray-200);background:#fff;align-items:center;gap:.5rem;width:100%;padding:.5rem .7rem;font-family:inherit;font-size:.85rem;transition:background .1s;display:flex}.checkin-deviation-head:hover{background:var(--gray-50)}.checkin-deviation-head svg{color:var(--gray-500);flex-shrink:0}.checkin-sensor-memo{background:var(--gray-50);flex-direction:column;gap:.4rem;padding:.55rem .7rem .5rem;display:flex}.checkin-sensor-memo .form-textarea{resize:none;field-sizing:content;min-height:calc(3em + 1rem);max-height:calc(4.5em + 1rem);overflow-y:auto}.checkin-sensor-memo .link-btn{color:var(--navy-700);align-self:flex-start;font-size:.78rem;font-weight:600}.checkin-sensor-memo .link-btn:hover{text-decoration:underline}.checkin-segment-list{background:var(--gray-50);border-top:1px dashed var(--gray-200);flex-direction:column;gap:.4rem;margin:0;padding:.4rem .7rem .6rem;list-style:none;display:flex}.checkin-segment-item{border:1px solid var(--gray-200);background:#fff;border-radius:5px;flex-direction:column;gap:.3rem;padding:.4rem .55rem;display:flex}.checkin-segment-head{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:.3rem .85rem;margin:0;font-size:.78rem;display:flex}.checkin-segment-kind{color:var(--navy-800);font-weight:600}.checkin-segment-time{color:var(--gray-700);white-space:nowrap}.checkin-segment-memo{resize:none;field-sizing:content;min-height:calc(1.5em + 1rem);max-height:calc(4.5em + 1rem);font-size:.84rem;overflow-y:auto}.status-toggle{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}@media (width<=540px){.status-toggle{grid-template-columns:1fr}}.status-card{border:1.5px solid var(--gray-300);cursor:pointer;color:var(--gray-700);background:#fff;border-radius:6px;justify-content:center;align-items:center;gap:.5rem;padding:.7rem .85rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.status-card:hover{border-color:var(--navy-500)}.status-card input[type=radio]{margin:0}.status-card svg{flex-shrink:0}.status-card.is-active.is-no-issue{border-color:var(--navy-700);color:var(--navy-800);background:#0f27440a}.status-card.is-active.is-no-issue svg{color:var(--navy-700)}.status-card.is-active.is-has-issue{border-color:var(--danger);color:var(--danger);background:#cc00000f}.status-card.is-active.is-has-issue svg{color:var(--danger)}.rsc-segments{flex-direction:column;gap:.25rem;margin:.3rem 0 0;padding:0;list-style:none;display:flex}.rsc-segment{border:1px solid var(--gray-200);background:#fff;border-radius:4px;grid-template-columns:minmax(220px,1fr) 2fr;gap:.5rem .85rem;padding:.25rem .4rem;font-size:.8rem;display:grid}.rsc-segment-memo{color:var(--ink);white-space:pre-wrap;font-size:.83rem}@media (width<=720px){.rsc-segment{grid-template-columns:1fr}}.checkin-deviation-name{color:var(--navy-800);align-items:center;gap:.3rem;font-size:.88rem;font-weight:700;display:inline-flex}.checkin-deviation-vals{font-variant-numeric:tabular-nums;align-items:center;gap:.6rem;font-size:.78rem;display:inline-flex}.checkin-deviation-counts{font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto;font-size:.82rem}.checkin-deviation-counts strong{font-weight:700}.sensor-notes-card .panel-card-meta{gap:.5rem}.sensor-note-list{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.sensor-note-item{border:1px solid var(--gray-200);background:#fff;border-radius:6px;padding:.6rem .75rem}.sensor-note-head{flex-wrap:wrap;align-items:center;gap:.45rem;margin-bottom:.4rem;display:flex}.sensor-note-category{background:var(--navy-800);color:#fff;letter-spacing:.02em;border-radius:4px;align-items:center;padding:.18rem .5rem;font-size:.72rem;font-weight:700;display:inline-flex}.sensor-note-meta{color:var(--gray-600);flex:1;align-items:center;gap:.3rem;font-size:.74rem;display:inline-flex}.sensor-note-body{color:var(--ink);white-space:pre-wrap;margin:0;font-size:.88rem;line-height:1.55}.note-category-grid{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.4rem;display:grid}.records-view .view-header-actions{align-items:center}.records-toolbar{align-items:center;gap:.5rem;margin-top:1rem;margin-bottom:1rem;font-size:.85rem;display:inline-flex}.records-tabs-row{flex-wrap:wrap;align-items:center;gap:1.75rem;margin-bottom:1rem;display:flex}.records-tabs-row .settings-tabs{margin-bottom:0}.records-tabs-row .records-toolbar{margin-top:0;margin-bottom:0}.records-tabs-row .seg-toggle-btn{padding:.5rem .95rem;font-size:.85rem}.record-list{flex-direction:column;gap:.7rem;margin:0;padding:0;list-style:none;display:flex}.records-grid-wrap{width:100%;overflow-x:auto}.records-grid{border-collapse:collapse;table-layout:fixed;width:100%;min-width:92rem;font-size:.85rem}.records-grid thead th{background:var(--gray-50);text-align:left;color:var(--navy-800);border-bottom:2px solid var(--gray-200);letter-spacing:.02em;white-space:nowrap;padding:.55rem .7rem;font-size:.78rem;font-weight:700}.records-grid tbody td{border-bottom:1px solid var(--gray-200);vertical-align:middle;white-space:nowrap;text-overflow:ellipsis;padding:.55rem .7rem;overflow:hidden}.records-grid tbody tr:hover{background:var(--gray-50)}.records-grid .col-date{font-variant-numeric:tabular-nums;width:9.5rem}.records-grid .col-dashboard{width:10rem}.records-grid .col-period{font-variant-numeric:tabular-nums;width:11.5rem}.records-grid .col-result{width:6.5rem}.records-grid .col-sensors{width:7.5rem}.records-grid .col-memo{width:14rem}.records-grid .col-author{width:6.5rem}.records-grid .col-approve-at{font-variant-numeric:tabular-nums;width:10rem}.records-grid .col-approver{width:6.5rem}.records-grid .col-action{text-align:right;width:3rem}.records-grid td.col-action{white-space:nowrap}.records-grid td.num.col-sensors{font-variant-numeric:tabular-nums}.records-memo-text{text-overflow:ellipsis;vertical-align:middle;max-width:100%;display:inline-block;overflow:hidden}.records-memo-more{background:var(--gray-50,#f8fafc);border:1px solid var(--gray-300);color:var(--navy-700);cursor:pointer;border-radius:999px;align-items:center;margin-left:.25rem;padding:.05rem .45rem;font-family:inherit;font-size:.72rem;font-weight:600;display:inline-flex}.records-memo-more:hover{background:var(--navy-50,#eef2f8)}.records-pagination{border-top:1px solid var(--gray-200);justify-content:flex-end;margin-top:.5rem;padding:.7rem .2rem .2rem;display:flex}.memo-detail-list{flex-direction:column;gap:.7rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.memo-detail-item{background:var(--gray-50,#f8fafc);border:1px solid var(--gray-200);border-radius:6px;padding:.55rem .7rem}.memo-detail-label{color:var(--navy-800);letter-spacing:.02em;margin-bottom:.2rem;font-size:.74rem;font-weight:700}.memo-detail-body{white-space:pre-wrap;word-break:break-word;margin:0;font-size:.86rem}.record-item{border:1px solid var(--gray-200);background:#fff;border-radius:8px;flex-direction:column;gap:.45rem;padding:.7rem .95rem .85rem;display:flex}.record-head{border-bottom:1px dashed var(--gray-200);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.45rem;padding-bottom:.45rem;display:flex}.record-head-main{align-items:center;gap:.55rem;display:inline-flex}.record-timestamp{color:var(--navy-800);font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:700}.record-author{color:var(--gray-600);font-size:.78rem}.record-head-actions{align-items:center;gap:.4rem;display:inline-flex}.record-target{color:var(--navy-800);align-items:center;gap:.4rem;font-size:.92rem;font-weight:600;display:inline-flex}.record-target svg{color:var(--navy-700)}.record-snapshot{color:var(--gray-600);flex-wrap:wrap;gap:.4rem 1.2rem;font-size:.8rem;display:inline-flex}.record-snapshot strong{color:var(--navy-800);font-variant-numeric:tabular-nums;font-weight:700}.record-comment,.record-approval-comment{background:var(--gray-50);border:1px solid var(--gray-200);color:var(--ink);white-space:pre-wrap;border-radius:5px;margin:0;padding:.5rem .65rem;font-size:.84rem;line-height:1.55}.record-comment-label{color:var(--gray-500);text-transform:uppercase;letter-spacing:.04em;margin-right:.3rem;font-size:.72rem;font-weight:700}.record-empty-deviations{color:var(--navy-700);align-items:center;gap:.3rem;margin:.1rem 0 0;font-size:.8rem;display:inline-flex}.record-sensor-comments{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:6px;padding:.5rem .7rem}.record-sensor-comments h4{color:var(--navy-800);letter-spacing:.02em;margin:0 0 .4rem;font-size:.78rem;font-weight:700}.record-sensor-comments ul{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.record-sensor-comments li{border-top:1px dashed var(--gray-200);padding:.35rem 0}.record-sensor-comments li:first-child{border-top:none}.rsc-head{flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.2rem;display:flex}.rsc-head .link-btn{color:var(--navy-800);font-size:.85rem;font-weight:700}.rsc-body{color:var(--ink);white-space:pre-wrap;margin:0;padding-left:1.1rem;font-size:.83rem;line-height:1.55}.combo-wrap{display:inline-block;position:relative}.combo-trigger{border:1px solid var(--gray-300);cursor:pointer;height:32px;color:var(--gray-700);white-space:nowrap;background:#fff;border-radius:6px;align-items:center;gap:.4rem;padding:0 .5rem 0 .6rem;font-family:inherit;font-size:.82rem;transition:background .1s,border-color .1s,color .1s;display:inline-flex}.combo-trigger:hover{border-color:var(--navy-500)}.combo-wrap.is-open .combo-trigger{border-color:var(--navy-700);background:var(--gray-50)}.combo-trigger.is-active{border-color:var(--navy-700);color:var(--navy-800);background:#0f27440f}.combo-icon{color:var(--gray-500);display:inline-flex}.combo-trigger.is-active .combo-icon{color:var(--navy-700)}.combo-label{color:var(--gray-600);white-space:nowrap;font-weight:600}.combo-trigger.is-active .combo-label{color:var(--navy-800)}.combo-value{text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;max-width:14em;overflow:hidden}.combo-value.is-empty{color:var(--gray-500);font-weight:500}.combo-clear{width:16px;height:16px;color:var(--gray-500);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-left:-2px;display:inline-flex}.combo-clear:hover{color:var(--ink);background:#0f274414}.combo-chev{color:var(--gray-500);flex-shrink:0;margin-left:auto}.combo-popover{border:1px solid var(--gray-300);z-index:30;background:#fff;border-radius:8px;flex-direction:column;min-width:200px;max-height:320px;padding:.3rem;display:flex;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto;box-shadow:0 8px 22px #0f274429}.combo-option{cursor:pointer;color:var(--gray-700);text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:5px;grid-template-columns:18px auto 1fr auto;align-items:center;gap:.45rem;padding:.35rem .5rem;font-family:inherit;font-size:.85rem;transition:background 80ms;display:grid}.combo-option:hover{background:var(--gray-50)}.combo-option.is-checked{color:var(--navy-800);background:#0f27440f}.combo-check{border:1.5px solid var(--gray-400);color:#fff;background:#fff;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.combo-check.is-checked{background:var(--navy-800);border-color:var(--navy-800)}.combo-radio{border:1.5px solid var(--gray-400);background:#fff;border-radius:50%;flex-shrink:0;width:14px;height:14px;display:inline-flex;position:relative}.combo-radio.is-checked{border-color:var(--navy-800)}.combo-radio.is-checked:after{content:"";background:var(--navy-800);border-radius:50%;position:absolute;inset:2px}.combo-option>.combo-option-icon:empty{display:none}.combo-option-icon{color:var(--gray-500);align-items:center;display:inline-flex}.combo-option.is-checked .combo-option-icon{color:var(--navy-700)}.combo-option-label{text-overflow:ellipsis;font-weight:500;overflow:hidden}.combo-option-count{color:var(--gray-500);font-variant-numeric:tabular-nums;font-size:.72rem}.combo-empty{padding:.5rem .6rem;font-size:.82rem}.filter-panel{border:1px solid var(--gray-200);background:#fff;border-radius:8px;flex-direction:column;gap:.4rem;margin-bottom:.85rem;padding:.6rem .75rem;display:flex}.filter-row{flex-wrap:wrap;align-items:flex-start;gap:.5rem;display:flex}.filter-row-compact{align-items:center;gap:.45rem}.filter-search-row{justify-content:space-between;align-items:center}.filter-search{border:1px solid var(--gray-300);background:#fff;border-radius:6px;flex:0 420px;align-items:center;gap:.4rem;min-width:240px;max-width:460px;height:32px;padding:0 .6rem;display:inline-flex}@media (width<=720px){.filter-search{flex:1;max-width:none}}.filter-search svg{color:var(--gray-500)}.filter-search-input{background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:.88rem}.filter-search-clear{width:22px;height:22px}.filter-count{color:var(--gray-600);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.82rem}.filter-row-label{color:var(--gray-600);letter-spacing:.04em;align-items:center;gap:.3rem;min-width:4em;padding-top:.3rem;font-size:.74rem;font-weight:600;display:inline-flex}.chip-row{flex-wrap:wrap;flex:1;gap:.3rem;display:flex}.filter-chip{border:1px solid var(--gray-300);color:var(--gray-700);cursor:pointer;white-space:nowrap;background:#fff;border-radius:999px;align-items:center;gap:.3rem;padding:.28rem .6rem;font-family:inherit;font-size:.78rem;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.filter-chip:hover{border-color:var(--navy-500)}.filter-chip.is-active{background:var(--navy-800);color:#fff;border-color:var(--navy-800)}.filter-chip.is-active .filter-chip-count{color:#ffffffb3}.filter-chip-count{color:var(--gray-500);font-variant-numeric:tabular-nums;font-size:.68rem}.filter-chip-muted{color:var(--gray-500)}.filter-chip-saved{border-color:var(--navy-700);color:var(--navy-800);font-weight:600}.filter-chip-saved svg{color:var(--navy-700)}.filter-chip-saved.is-active{background:var(--navy-800);color:#fff;border-color:var(--navy-800)}.filter-chip-saved.is-active svg{color:#fff}.filter-chip-trash{width:22px;height:22px;color:var(--gray-500);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;margin-left:4px;display:inline-flex}.filter-chip-trash:hover{color:var(--danger);background:#cc000014}.filter-chip-wrap{align-items:center;display:inline-flex}.filter-chip-delete{width:18px;height:18px;color:var(--gray-500);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-left:-2px;display:inline-flex}.filter-chip-delete:hover{background:var(--gray-100);color:var(--danger)}.filter-actions{border-top:1px dashed var(--gray-200);justify-content:space-between;align-items:center;gap:.5rem;margin-top:.1rem;padding-top:.4rem;display:flex}.filter-summary{background:var(--gray-50);border:1px solid var(--gray-200);color:var(--gray-700);border-radius:5px;margin:.2rem 0 0;padding:.4rem .55rem;font-size:.78rem;list-style:none}.filter-summary li{padding:.1rem 0}.cell-group-tags{flex-direction:column;align-items:flex-start;gap:.18rem;display:inline-flex}.cell-group-badge{color:var(--navy-800);white-space:nowrap;background:#0f27440f;border-radius:4px;align-items:center;gap:.2rem;padding:.1rem .45rem;font-size:.74rem;display:inline-flex}.cell-tag-pills{flex-wrap:wrap;gap:.18rem;max-width:100%;display:inline-flex}.cell-tag-pill{background:var(--gray-100);border:1px solid var(--gray-200);color:var(--gray-700);white-space:nowrap;border-radius:3px;padding:.05rem .4rem;font-size:.7rem}.cell-tag-more{color:var(--gray-500);padding:.05rem .2rem;font-size:.7rem}.classify-row{grid-template-columns:minmax(200px,1fr) minmax(0,2fr);gap:1rem;display:grid}@media (width<=720px){.classify-row{grid-template-columns:1fr}}.classify-field{flex-direction:column;gap:.3rem;display:flex}.classify-label{color:var(--navy-800);font-size:.78rem;font-weight:600}.tag-editor{border:1px solid var(--gray-300);background:#fff;border-radius:6px;flex-wrap:wrap;align-items:center;gap:.3rem;min-height:38px;padding:.4rem .5rem;display:flex}.tag-editor:focus-within{outline:2px solid var(--navy-400);outline-offset:-1px;border-color:var(--navy-500)}.tag-editor-pill{background:var(--navy-800);color:#fff;border-radius:4px;align-items:center;gap:.25rem;padding:.18rem .45rem .18rem .55rem;font-size:.78rem;font-weight:500;display:inline-flex}.tag-editor-pill-remove{color:#ffffffb3;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:.85rem;line-height:1;display:inline-flex}.tag-editor-pill-remove:hover{color:#fff;background:#ffffff26}.tag-editor-input{background:0 0;border:none;outline:none;flex:1;min-width:120px;padding:.1rem 0;font-family:inherit;font-size:.85rem}.list-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem 1rem;display:flex}.list-toolbar-top{border-bottom:1px solid var(--gray-200);margin-bottom:.5rem;padding-bottom:.7rem}.list-toolbar-bottom{border-top:1px solid var(--gray-200);justify-content:flex-end;margin-top:.5rem;padding-top:.85rem}.list-toolbar-left{flex-wrap:wrap;align-items:center;gap:.65rem;display:inline-flex}.pagination-bar{flex-wrap:wrap;align-items:center;gap:.85rem;display:inline-flex}.pagination-info{color:var(--gray-700);font-variant-numeric:tabular-nums;font-size:.82rem}.pagination-info strong{color:var(--navy-800);font-weight:700}.pagination-controls{align-items:center;gap:.25rem;display:inline-flex}.pagination-current{color:var(--navy-800);font-variant-numeric:tabular-nums;white-space:nowrap;margin:0 .4rem;font-size:.85rem;font-weight:600}@media (width<=720px){.list-toolbar-top{flex-direction:column;align-items:stretch}.list-toolbar-top .pagination-bar{justify-content:space-between;width:100%}}.group-add-row{gap:.4rem;margin-bottom:.85rem;display:flex}.group-add-row .form-input{flex:1}.group-manage-list{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.group-manage-item{border:1px solid var(--gray-200);background:#fff;border-radius:6px;grid-template-columns:1fr auto auto auto;align-items:center;gap:.5rem;padding:.4rem .55rem;display:grid}.group-manage-name{color:var(--navy-800);font-size:.88rem;font-weight:600}.sensor-picker{flex-direction:column;gap:.45rem;display:flex}.sensor-picker-actions{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;padding:.3rem .55rem;font-size:.78rem;display:flex}.sensor-picker-quick{flex-wrap:wrap;gap:.25rem;display:inline-flex}.sensor-picker-quick .btn-sm{padding:.22rem .5rem;font-size:.74rem}.sensor-picker-list{border:1px solid var(--gray-200);background:#fff;border-radius:6px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:0;max-height:360px;display:grid;overflow-y:auto}.sensor-picker-row{border:none;border-bottom:1px solid var(--gray-100);border-right:1px solid var(--gray-100);cursor:pointer;text-align:left;background:#fff;align-items:center;gap:.45rem;min-width:0;padding:.3rem .55rem;font-family:inherit;font-size:.78rem;line-height:1.3;transition:background .1s;display:flex}.sensor-picker-row:hover{background:var(--gray-50)}.sensor-picker-row.is-checked{background:#0f27440d}.sensor-picker-row svg{color:var(--gray-500);flex-shrink:0}.sensor-picker-row.is-checked svg{color:var(--navy-700)}.sensor-picker-name{color:var(--navy-800);white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;font-weight:600;overflow:hidden}.sensor-picker-sub{color:var(--gray-500);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;min-width:0;font-size:.72rem;overflow:hidden}.sensor-picker-tags{flex-wrap:nowrap;flex-shrink:0;gap:.2rem;margin-left:auto;font-size:.7rem;display:inline-flex}@media (width<=720px){.sensor-picker-list{grid-template-columns:1fr}.sensor-picker-tags,.sensor-picker-sub{display:none}}.edit-mode-banner{border:1px dashed var(--navy-700);color:var(--navy-800);background:#0f27440f;border-radius:6px;align-items:center;gap:.6rem;margin-bottom:1rem;padding:.55rem .85rem;font-size:.85rem;display:flex}.edit-mode-banner svg{color:var(--navy-700);flex-shrink:0}.edit-mode-banner>span{flex:1}.edit-mode-banner strong{font-weight:700}.edit-mode-banner .link-btn{color:var(--navy-700);font-size:.8rem}.edit-mode-banner .link-btn:hover{color:var(--navy-800);text-decoration:underline}.dashboard-share-panel{border:1px solid var(--gray-200);background:#fff;border-radius:6px;flex-direction:column;gap:.5rem;margin-bottom:1rem;padding:.75rem .95rem;display:flex}.dashboard-share-head{color:var(--navy-800);flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.85rem;display:flex}.dashboard-share-head .small{flex:auto;min-width:0;font-size:.78rem;font-weight:400}.dashboard-share-row{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.dashboard-share-url{background:var(--gray-50,#f8fafc);min-width:12rem;color:var(--gray-800,#1f2937);flex:18rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem}.deviation-summary-bar{background:var(--gray-50);border:1px solid var(--gray-200);color:var(--gray-700);font-variant-numeric:tabular-nums;border-radius:6px;justify-content:space-between;align-items:center;padding:.5rem .7rem;font-size:.85rem;display:flex}.deviation-summary-bar strong{color:var(--navy-800);font-weight:700}.deviation-summary-bar .cell-deviation{color:var(--danger)}.deviation-bucket-list{flex-direction:column;gap:.35rem;margin:.4rem 0 0;padding:0;list-style:none;display:flex}.deviation-bucket{border:1px solid var(--gray-200);background:#fff;border-radius:6px;overflow:hidden}.deviation-bucket-head{border:none;border-left:3px solid var(--danger);cursor:pointer;text-align:left;background:#fff;grid-template-columns:18px minmax(140px,1fr) minmax(140px,1fr) auto auto;align-items:center;gap:.5rem .85rem;width:100%;padding:.55rem .7rem;font-family:inherit;font-size:.85rem;transition:background .1s;display:grid}.deviation-bucket-head:hover{background:var(--gray-50)}.deviation-bucket-head.is-expanded{background:var(--gray-50);border-bottom:1px solid var(--gray-200)}.deviation-bucket-toggle{color:var(--gray-500);justify-content:center;align-items:center;display:inline-flex}.deviation-bucket-name{color:var(--navy-800);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.35rem;display:inline-flex;overflow:hidden}.deviation-bucket-name strong{font-weight:700}.deviation-bucket-counts{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.84rem}.deviation-bucket-counts .cell-deviation{font-weight:700}.deviation-bucket-range{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.76rem}.deviation-bucket-open{color:var(--navy-700);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.2rem .45rem;font-size:.78rem;font-weight:600;text-decoration:none}.deviation-bucket-open:hover{background:#0f27440f;text-decoration:underline}.deviation-segment-sublist{background:var(--gray-50);margin:0;padding:0;list-style:none}.deviation-sub-row{border-top:1px dashed var(--gray-200);font-variant-numeric:tabular-nums;grid-template-columns:minmax(140px,.9fr) minmax(180px,1.3fr) minmax(110px,.7fr) minmax(110px,.7fr);align-items:center;gap:.45rem .85rem;padding:.4rem .7rem .4rem 2.4rem;font-size:.82rem;display:grid}.dev-sub-kind{color:var(--gray-700);align-items:center;gap:.2rem;font-weight:600;display:inline-flex}.dev-sub-time{color:var(--gray-700);white-space:nowrap}.dev-sub-meta{color:var(--gray-600);white-space:nowrap}.dev-sub-extreme{text-align:right;white-space:nowrap;font-weight:700}@media (width<=720px){.deviation-bucket-head{grid-template-columns:18px 1fr auto}.deviation-bucket-range{grid-column:1/-1;padding-left:24px}.deviation-sub-row{grid-template-columns:1fr 1fr;padding-left:1.2rem}.dev-sub-time,.dev-sub-extreme{grid-column:span 2}}@media print{.sidebar,.breadcrumb,.view-header,.panel-card-head,.preview-toolbar-new,.action-bar,.detail-foot,.month-tabs-card,.panel-card .advanced-toggle,.panel-card .advanced-body,.device-grid,.month-tabs{display:none!important}.app-shell{background:#fff;display:block}.app-content-inner{max-width:none;padding:0!important}.panel-card{box-shadow:none;border:none;margin:0;padding:0}}.sensor-picker-cat{background:var(--navy-50,#0f27440f);width:18px;height:18px;color:var(--navy-700);border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.sensor-picker-row.is-checked .sensor-picker-cat{background:#0f27441a}.classify-select-wrap{align-items:center;gap:.45rem;display:inline-flex}.classify-select-wrap .select{flex:1;min-width:0}.classify-icon{background:var(--navy-50,#0f27440f);width:28px;height:28px;color:var(--navy-700);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.classify-icon-empty{background:var(--gray-100);color:var(--gray-400);font-size:.85rem;font-weight:500}.category-add-block{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:6px;flex-direction:column;gap:.55rem;margin-bottom:.85rem;padding:.7rem;display:flex}.category-add-row{align-items:center;gap:.4rem;display:flex}.category-add-row .form-input{flex:1}.category-add-icons{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.category-add-icons .classify-label{color:var(--navy-800);font-size:.78rem;font-weight:600}.category-manage-list{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.category-manage-item{border:1px solid var(--gray-200);background:#fff;border-radius:6px;grid-template-columns:auto 1fr auto auto auto;align-items:center;gap:.5rem;padding:.4rem .55rem;display:grid}.category-manage-icon{background:var(--navy-50,#0f27440f);width:24px;height:24px;color:var(--navy-700);border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.category-manage-name{color:var(--navy-800);font-size:.88rem;font-weight:600}.category-edit-main{flex-direction:column;gap:.4rem;min-width:0;display:flex}.category-edit-main .form-input{width:100%}.icon-picker{grid-template-columns:repeat(8,minmax(28px,32px));gap:.25rem;display:grid}@media (width<=540px){.icon-picker{grid-template-columns:repeat(6,minmax(28px,32px))}}.icon-picker-btn{aspect-ratio:1;border:1px solid var(--gray-300);width:100%;color:var(--gray-700);cursor:pointer;background:#fff;border-radius:5px;justify-content:center;align-items:center;transition:background .1s,border-color .1s,color .1s;display:inline-flex}.icon-picker-btn:hover{border-color:var(--navy-500);background:var(--navy-50,#0f27440d);color:var(--navy-700)}.icon-picker-btn.is-active{background:var(--navy-700);border-color:var(--navy-800);color:#fff;box-shadow:0 0 0 2px #0f27442e}.cell-mono{color:var(--gray-700);font-variant-numeric:tabular-nums;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem}.cell-serial{text-overflow:ellipsis;max-width:14ch;overflow:hidden}.latest-values{font-variant-numeric:tabular-nums;white-space:nowrap;align-items:baseline;gap:.5rem;display:inline-flex}.latest-value{color:var(--navy-800);font-size:.9rem;font-weight:600}.latest-value.cell-deviation{color:var(--deviation,#c00)}.threshold-col{white-space:nowrap}.threshold-cell{color:var(--gray-700);font-variant-numeric:tabular-nums;align-items:baseline;gap:.4rem;font-size:.78rem;display:inline-flex}.threshold-part{white-space:nowrap}.threshold-sep{color:var(--gray-400)}.column-settings-fixed{background:var(--gray-50);border:1px dashed var(--gray-300);border-radius:6px;align-items:center;gap:.6rem;margin-bottom:.85rem;padding:.45rem .6rem;display:flex}.column-settings-fixed-label{color:var(--navy-800);font-weight:600}.column-settings-fixed-note{font-size:.78rem}.column-settings-group{margin-bottom:.85rem}.column-settings-group:last-child{margin-bottom:0}.column-settings-group-title{color:var(--navy-800);letter-spacing:.04em;margin:0 0 .35rem;padding:0 .1rem;font-size:.78rem;font-weight:700}.column-settings-list{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.column-settings-item{border:1px solid var(--gray-200);background:#fff;border-radius:6px}.column-settings-row{cursor:pointer;align-items:flex-start;gap:.55rem;padding:.4rem .55rem;display:flex}.column-settings-row input[type=checkbox]{flex-shrink:0;margin-top:.18rem}.column-settings-row-control{cursor:default;align-items:center}.column-settings-row-control .column-settings-row-text{flex:1}.column-settings-row-control .select{flex-shrink:0;min-width:96px}.column-settings-row-text{flex-direction:column;gap:.1rem;min-width:0;display:flex}.column-settings-row-label{color:var(--navy-800);font-size:.88rem;font-weight:600}.column-settings-row-hint{font-size:.74rem;line-height:1.4}.app-dialog-foot .btn-ghost{margin-right:auto}.device-table-wrap{scrollbar-gutter:stable;overflow:auto visible}.device-table{width:100%;min-width:720px}.device-table th,.device-table tbody td{text-overflow:ellipsis;overflow:hidden}.device-table th.col-check,.device-table td.col-check{width:36px;min-width:36px}.device-table th.col-name,.device-table td.col-name{white-space:nowrap;min-width:180px;max-width:280px}.device-table th.col-deviceNumber,.device-table td.col-deviceNumber{white-space:nowrap;min-width:96px}.device-table th.col-serialNumber,.device-table td.col-serialNumber{white-space:nowrap;min-width:140px}.device-table th.col-model,.device-table td.col-model{white-space:nowrap;min-width:110px;max-width:160px}.device-table th.col-manufacturer,.device-table td.col-manufacturer{white-space:nowrap;min-width:100px;max-width:140px}.device-table th.col-category,.device-table td.col-category,.device-table th.col-group,.device-table td.col-group{white-space:nowrap;min-width:100px}.device-table th.col-gateway,.device-table td.col-gateway{white-space:nowrap;min-width:110px;max-width:180px}.gateway-cell{color:var(--gray-700);text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:100%;font-size:.82rem;display:inline-block;overflow:hidden}.device-table th.col-tags,.device-table td.col-tags{min-width:140px;max-width:220px}.device-table th.col-status,.device-table td.col-status{white-space:nowrap;min-width:110px}.device-table th.col-battery,.device-table td.col-battery{white-space:nowrap;min-width:86px}.device-table th.col-lastUpdated,.device-table td.col-lastUpdated{white-space:nowrap;min-width:96px}.device-table th.col-latestValue,.device-table td.col-latestValue{white-space:nowrap;min-width:130px}.device-table th.col-threshold,.device-table td.col-threshold{white-space:nowrap;min-width:150px}.device-table th.col-devEUI,.device-table td.col-devEUI{white-space:nowrap;min-width:160px}.device-table th.col-alert,.device-table td.col-alert{white-space:nowrap;min-width:130px}.device-table th.col-silent,.device-table td.col-silent{white-space:nowrap;min-width:96px}.device-table th.col-notification,.device-table td.col-notification{white-space:nowrap;text-overflow:ellipsis;min-width:120px;max-width:200px;overflow:hidden}.device-table th.col-registeredAt,.device-table td.col-registeredAt{white-space:nowrap;font-variant-numeric:tabular-nums;min-width:100px}.alert-cell-on{background:var(--gray-50,#f8fafc);border:1px solid var(--gray-300);color:var(--navy-800);white-space:nowrap;border-radius:999px;align-items:center;padding:.12rem .5rem;font-size:.74rem;font-weight:600;display:inline-flex}.bulk-csv-period-row{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.bulk-csv-period-row .select{flex:0 9rem}.silence-pill{background:var(--gray-50,#f8fafc);border:1px solid var(--gray-300);color:var(--gray-700);cursor:help;border-radius:999px;align-items:center;padding:.1rem .5rem;font-size:.74rem;font-weight:600;display:inline-flex}.device-table th.col-action,.device-table td.col-action{width:44px;min-width:44px}.device-table th.col-check,.device-table td.col-check{z-index:2;background:#fff;position:sticky;left:0}.device-table thead th.col-check{background:var(--gray-50);z-index:3}.device-table th.col-name,.device-table td.col-name{z-index:2;background:#fff;position:sticky;left:36px}.device-table thead th.col-name{background:var(--gray-50);z-index:3}.device-table th.col-action,.device-table td.col-action{z-index:2;background:#fff;position:sticky;right:0}.device-table thead th.col-action{background:var(--gray-50);z-index:3}.device-row:hover td.col-check,.device-row:hover td.col-name,.device-row:hover td.col-action{background:var(--gray-50)}.device-row.is-selected td.col-check,.device-row.is-selected td.col-name,.device-row.is-selected td.col-action{background:#0f27440a}.device-row.is-selected:hover td.col-check,.device-row.is-selected:hover td.col-name,.device-row.is-selected:hover td.col-action{background:#0f274414}.device-table td.col-name,.device-table th.col-name{box-shadow:4px 0 6px -4px #0f274414}.device-table td.col-action,.device-table th.col-action{box-shadow:-4px 0 6px -4px #0f274414}@media (width<=720px){.device-table th.col-check,.device-table td.col-check,.device-table th.col-name,.device-table td.col-name,.device-table th.col-action,.device-table td.col-action{box-shadow:none;position:static}}.cell-serial{max-width:none}.app-content-inner.is-wide{max-width:none;padding-left:1.25rem;padding-right:1.25rem}.cell-warning{color:#d97706}.latest-value.cell-warning{color:#d97706;font-weight:600}.detail-tabs{border-bottom:1px solid var(--gray-200);flex-wrap:wrap;gap:.25rem;margin:.6rem 0 1rem;display:flex}.detail-tab{color:var(--gray-600);cursor:pointer;background:0 0;border:1px solid #0000;border-bottom:none;border-top-left-radius:6px;border-top-right-radius:6px;align-items:center;gap:.4rem;margin-bottom:-1px;padding:.55rem .95rem;font-family:inherit;font-size:.88rem;transition:background .1s,color .1s,border-color .1s;display:inline-flex}.detail-tab:hover{background:var(--gray-50);color:var(--navy-700)}.detail-tab.is-active{color:var(--navy-800);border-color:var(--gray-200);background:#fff;font-weight:700}.detail-tab.is-active:after{content:"";position:absolute}.detail-tab-icon{color:inherit;align-items:center;display:inline-flex}.threshold-settings{flex-direction:column;gap:.85rem;display:flex}.threshold-settings-empty{flex-direction:column;align-items:flex-start;gap:.6rem;display:flex}.threshold-settings-unsupported{background:var(--gray-50);border:1px dashed var(--gray-300);border-radius:6px;align-items:center;gap:.4rem;padding:.55rem .7rem;font-size:.85rem;display:inline-flex}.threshold-settings-unsupported code{border:1px solid var(--gray-200);background:#fff;border-radius:3px;padding:.05rem .3rem;font-size:.78rem}.threshold-metric{border:1px solid var(--gray-200);background:#fff;border-radius:6px;flex-direction:column;gap:.55rem;margin:0;padding:1.1rem .85rem .85rem;display:flex}.threshold-values-editor{flex-direction:column;gap:1rem;display:flex}.threshold-metric:disabled{background:var(--gray-50);opacity:.85}.threshold-metric-legend{background:#fff;margin-left:.3rem;padding:0 .35rem}.threshold-metric-toggle{cursor:pointer;align-items:center;gap:.45rem;display:inline-flex}.threshold-metric-title{color:var(--navy-800);align-items:center;gap:.35rem;font-size:.92rem;font-weight:700;display:inline-flex}.threshold-row{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.threshold-row-label{color:var(--gray-700);align-items:center;gap:.3rem;min-width:11em;font-size:.84rem;font-weight:500;display:inline-flex}.threshold-icon-alert{color:#c00}.threshold-icon-warn{color:#d97706}.threshold-input-pair-label{color:var(--gray-600);font-size:.78rem}.threshold-input-pair input[type=number]{border:1px solid var(--gray-300);font-variant-numeric:tabular-nums;border-radius:4px;width:5.5em;padding:.25rem .4rem;font-family:inherit;font-size:.85rem}.threshold-input-pair input[type=number]:focus{outline:2px solid var(--navy-400);outline-offset:-1px;border-color:var(--navy-500)}.threshold-input-unit{color:var(--gray-600);font-size:.78rem}.threshold-row .threshold-sep{color:var(--gray-400);font-size:.85rem}.threshold-warn-clear{margin-left:.4rem;font-size:.76rem}.threshold-validation{color:#a00;background:#cc00000f;border:1px solid #c003;border-radius:4px;margin:.3rem 0 0;padding:.4rem .55rem;font-size:.78rem;list-style:none}.threshold-validation li{padding:.05rem 0}.threshold-settings-foot{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;margin-top:.4rem;display:flex}.threshold-settings-foot .threshold-clear{color:var(--gray-600);margin-right:auto}.threshold-dirty-note{font-size:.78rem}.maintenance-card .maintenance-actions{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.maintenance-card .maintenance-actions .btn{justify-content:flex-start;min-width:14em}.meta-edit-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem 1rem;margin:.5rem 0 .6rem;display:grid}@media (width<=720px){.meta-edit-grid{grid-template-columns:1fr}}.meta-edit-field{flex-direction:column;gap:.25rem;min-width:0;display:flex}.meta-edit-label{color:var(--gray-600);letter-spacing:.02em;font-size:.74rem;font-weight:600}.meta-edit-field .form-input{border:1px solid var(--gray-300);background:#fff;border-radius:5px;width:100%;padding:.4rem .55rem;font-family:inherit;font-size:.88rem}.meta-edit-field .form-input.cell-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.84rem}.meta-edit-field .form-input:focus{outline:2px solid var(--navy-400);outline-offset:-1px;border-color:var(--navy-500)}.meta-edit-field .form-input.form-input-static{background:var(--gray-50,#f8fafc);border-color:var(--gray-200);color:var(--gray-600);cursor:default}.meta-edit-gateway{align-items:center;gap:.4rem;min-width:0;display:flex}.meta-edit-gateway .select{flex:1;min-width:0}.meta-edit-gateway-link{white-space:nowrap;flex-shrink:0;font-size:.78rem}.meta-readonly-row{border-top:1px dashed var(--gray-200);align-items:center;gap:.6rem;padding-top:.55rem;font-size:.82rem;display:flex}.meta-readonly-label{color:var(--gray-600);font-weight:600}.meta-readonly-value.mono{color:var(--navy-800);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.meta-readonly-sep{color:var(--gray-300);-webkit-user-select:none;user-select:none;font-weight:400}.panel-card-meta-note{font-size:.74rem}.classify-row.classify-row-3col{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width<=880px){.classify-row.classify-row-3col{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.classify-row.classify-row-3col{grid-template-columns:1fr}}.threshold-row{border-top:1px dashed var(--gray-200);flex-wrap:wrap;align-items:center;gap:.6rem .85rem;padding:.5rem 0;display:flex}.threshold-row:first-of-type{border-top:none;padding-top:0}.threshold-row.is-off .threshold-row-inputs{opacity:.45}.threshold-row-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.4rem;min-width:5.5em;display:inline-flex}.threshold-row-toggle input[type=checkbox]{flex-shrink:0}.threshold-row-label{color:var(--gray-800);align-items:center;gap:.3rem;font-size:.85rem;font-weight:600;display:inline-flex}.threshold-row-label .muted{font-size:.76rem;font-weight:400}.threshold-row-inputs{flex-wrap:wrap;align-items:center;gap:.55rem;transition:opacity .1s;display:inline-flex}.threshold-row-sep{color:var(--gray-400);-webkit-user-select:none;user-select:none;font-size:.85rem}.threshold-level-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.4rem .6rem;min-width:0;display:grid}.threshold-level-grid>.threshold-row{background:0 0;border:none;flex-direction:column;align-items:stretch;gap:.4rem;min-width:0;padding:0}.threshold-level-grid>.threshold-row>.threshold-row-toggle,.threshold-level-grid .threshold-row-label{min-width:0}.threshold-level-grid>.threshold-row,.threshold-level-grid>.threshold-row:first-of-type{border-top:none;padding-top:0}.threshold-level-grid>.threshold-row>.threshold-row-inputs{flex-direction:column;align-items:flex-start;gap:.3rem}.threshold-level-grid .threshold-input-pair input[type=number]{width:4em}.threshold-level-grid .threshold-input-pair{gap:.2rem}@media (width<=480px){.threshold-level-grid{grid-template-columns:1fr}}.threshold-input-pair{color:var(--gray-800);align-items:center;gap:.3rem;font-size:.85rem;display:inline-flex}.threshold-input-pair input[type=number]{border:1px solid var(--gray-300);font-variant-numeric:tabular-nums;background:#fff;border-radius:4px;width:5.5em;padding:.25rem .4rem;font-family:inherit;font-size:.85rem}.threshold-input-pair input[type=number]:disabled{background:var(--gray-50);color:var(--gray-500)}.threshold-input-hint{font-size:.72rem}.threshold-settings-foot{border-top:1px dashed var(--gray-200);justify-content:flex-end;margin-top:.5rem;padding-top:.5rem;display:flex}.threshold-settings-foot .threshold-clear{color:var(--gray-600);margin:0}.threshold-settings-foot .threshold-clear:hover{color:#a00}.column-settings-group-head{justify-content:space-between;align-items:baseline;gap:.5rem;margin:0 0 .35rem;display:flex}.column-settings-group-head .column-settings-group-title{margin:0}.column-settings-reset{color:var(--gray-600);align-items:center;gap:.25rem;font-size:.74rem;display:inline-flex}.column-settings-reset:hover{color:var(--navy-700);text-decoration:underline}.column-settings-fixed-grip{width:16px;color:var(--gray-300);justify-content:center;align-items:center;display:inline-flex}.column-settings-list-draggable{gap:.3rem}.column-settings-item-draggable{-webkit-user-select:none;user-select:none;align-items:stretch;transition:box-shadow .1s,border-color .1s,opacity .1s;display:flex;position:relative}.column-settings-item-draggable:hover{border-color:var(--gray-300)}.column-settings-item-draggable.is-dragging{opacity:.4}.column-settings-item-draggable.is-drop-before:before,.column-settings-item-draggable.is-drop-after:after{content:"";background:var(--navy-700);pointer-events:none;z-index:1;border-radius:2px;height:2px;position:absolute;left:0;right:0}.column-settings-item-draggable.is-drop-before:before{top:-3px}.column-settings-item-draggable.is-drop-after:after{bottom:-3px}.column-settings-grip{width:28px;color:var(--gray-400);cursor:grab;border-right:1px solid var(--gray-200);background:var(--gray-50);border-top-left-radius:6px;border-bottom-left-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.column-settings-grip:active{cursor:grabbing}.column-settings-item-draggable:hover .column-settings-grip{color:var(--navy-700);background:#0f27440a}.column-settings-row-compact{flex:1;align-items:center;padding:.5rem .55rem}.column-settings-row-compact .column-settings-row-label{color:var(--navy-800);font-size:.88rem;font-weight:500}.column-settings-row-compact input[type=checkbox]{margin-top:0}.threshold-settings-toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.threshold-template-empty{font-size:.78rem}.threshold-template-wrap{position:relative}.threshold-template-popover{z-index:30;border:1px solid var(--gray-300);background:#fff;border-radius:6px;flex-direction:column;gap:.15rem;min-width:240px;max-width:360px;max-height:320px;padding:.3rem;display:flex;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto;box-shadow:0 8px 24px #0f27442e}.threshold-template-option{text-align:left;cursor:pointer;color:var(--navy-800);background:0 0;border:none;border-radius:4px;flex-direction:column;gap:.15rem;padding:.45rem .6rem;font-family:inherit;font-size:.85rem;display:flex}.threshold-template-option:hover{background:var(--gray-50)}.threshold-template-name{font-weight:600}.threshold-template-desc{font-size:.75rem}.template-list-toolbar{justify-content:flex-end;margin:.6rem 0 .5rem;display:flex}.template-list{flex-direction:column;gap:.7rem;margin:0;padding:0;list-style:none;display:flex}.template-list-item{border:1px solid var(--gray-200);background:#fff;border-radius:8px;align-items:center;gap:.6rem;padding:.95rem 1rem;display:flex}.template-list-main{flex-direction:column;flex:1;gap:.35rem;min-width:0;display:flex}.template-list-name-btn{cursor:pointer;color:var(--navy-800);text-align:left;background:0 0;border:none;align-items:center;gap:.3rem;padding:0;font-family:inherit;font-size:.92rem;display:inline-flex}.template-list-name-btn:hover .template-list-name{text-decoration:underline}.template-list-name{font-weight:700}.template-list-desc{font-size:.78rem}.template-list-summary{color:var(--gray-700);font-variant-numeric:tabular-nums;font-size:.78rem}.template-list-actions{flex-shrink:0;align-items:center;gap:.2rem;display:inline-flex}.template-list-name-row{flex-wrap:wrap;align-items:center;gap:.45rem;display:inline-flex}.template-list-channels{flex-wrap:wrap;align-items:center;gap:.3rem;margin-top:.1rem;font-size:.78rem;display:flex}.template-form{flex-direction:column;gap:.7rem;display:flex}.template-form-head{margin-bottom:.2rem}.template-form-back{color:var(--gray-600);font-size:.85rem}.template-form-back:hover{color:var(--navy-700)}.template-form .form-row{flex-direction:column;gap:.3rem;display:flex}.template-form .form-label{color:var(--gray-700);font-size:.78rem;font-weight:600}.template-form-values{border:1px solid var(--gray-200);background:var(--gray-50);border-radius:6px;padding:.7rem .85rem}.template-form-foot{border-top:1px solid var(--gray-200);justify-content:flex-end;gap:.4rem;margin-top:.6rem;padding-top:.6rem;display:flex}.threshold-template-summary{flex-wrap:wrap;gap:.3rem;margin:.3rem 0 .6rem;display:flex}.threshold-template-chip{background:var(--navy-50,#0f27440f);color:var(--navy-700);border-radius:999px;align-items:center;gap:.25rem;padding:.2rem .5rem;font-size:.78rem;display:inline-flex}.settings-section-actions{justify-content:flex-end;margin-top:.4rem;display:flex}.bulk-threshold-direct{border:1px solid var(--gray-200);background:var(--gray-50);border-radius:6px;max-height:480px;padding:.7rem .85rem;overflow-y:auto}.error-boundary{background:var(--gray-100);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.error-boundary-card{border:1px solid var(--gray-200);background:#fff;border-radius:10px;width:100%;max-width:560px;padding:2rem;box-shadow:0 4px 24px #0f274414}.error-boundary-icon{width:56px;height:56px;color:var(--danger);background:#cc000014;border-radius:50%;justify-content:center;align-items:center;margin-bottom:.85rem;display:inline-flex}.error-boundary-card h1{color:var(--navy-800);margin:0 0 .6rem;font-size:1.25rem}.error-boundary-card>p{color:var(--gray-700);margin:0 0 1.2rem;line-height:1.7}.error-boundary-actions{flex-wrap:wrap;gap:.5rem;margin-bottom:1.2rem;display:flex}.error-boundary-details{border-top:1px solid var(--gray-200);color:var(--gray-600);padding-top:.85rem;font-size:.78rem}.error-boundary-details summary{cursor:pointer;-webkit-user-select:none;user-select:none}.error-boundary-pre{background:var(--gray-50);border:1px solid var(--gray-200);white-space:pre-wrap;color:var(--gray-700);border-radius:6px;margin:.5rem 0 0;padding:.6rem .8rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.74rem;overflow-x:auto}.threshold-help{border:1px solid var(--gray-200);color:var(--gray-700);background:#0f27440a;border-radius:6px;align-items:flex-start;gap:.4rem;margin:0 0 .6rem;padding:.45rem .6rem;font-size:.78rem;line-height:1.6;display:flex}.threshold-help-icon{color:var(--navy-700);flex-shrink:0;margin-top:.18rem}.threshold-help-line{flex:1;line-height:1.6;display:inline}.threshold-help .threshold-arrow-down,.threshold-help .threshold-arrow-up{vertical-align:text-bottom;margin-right:.1rem;display:inline-block}.threshold-arrow-down,.threshold-arrow-up{color:var(--gray-500)}.threshold-input-pair>svg{flex-shrink:0}.threshold-input-pair{gap:.25rem}.multiline-help{flex-direction:column;gap:.2rem;display:flex}.multiline-help>span{display:block}.manufacturer-section{border-top:1px solid var(--gray-200);margin-top:1.4rem;padding-top:1.1rem}.manufacturer-section:first-of-type{border-top:none;margin-top:.4rem;padding-top:0}.manufacturer-section-head{margin:0 0 .7rem}.manufacturer-section-title-row{flex-wrap:wrap;align-items:center;gap:.5rem .6rem;display:flex}.manufacturer-section-name{color:var(--navy-800);letter-spacing:.01em;margin:0;font-size:1.02rem;font-weight:700}.manufacturer-section-desc{margin:.3rem 0 0;font-size:.8rem;line-height:1.6}.supported-device-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.7rem;display:grid}.supported-device-card{border:1px solid var(--gray-200);background:#fff;border-radius:8px;flex-direction:column;gap:0;padding:0;transition:border-color .1s,box-shadow .1s;display:flex;overflow:hidden}.supported-device-card:hover{border-color:var(--gray-300);box-shadow:0 2px 8px #0f27440f}.supported-device-card.is-future{background:var(--gray-50);opacity:.85}.supported-device-card-head{justify-content:space-between;align-items:center;gap:.4rem;display:flex}.supported-device-manufacturer{letter-spacing:.02em;color:var(--gray-600);font-size:.78rem;font-weight:600}.supported-device-badge{letter-spacing:.02em;border-radius:999px;align-items:center;gap:.25rem;padding:.18rem .5rem;font-size:.7rem;font-weight:600;display:inline-flex}.supported-device-badge-active{color:var(--navy-800);border:1px solid var(--navy-300);background:#0f27440f}.supported-device-badge-future{background:var(--gray-50);color:var(--gray-600);border:1px solid var(--gray-300)}.supported-device-model{color:var(--navy-800);letter-spacing:.01em;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.05rem;font-weight:700}.supported-device-type{margin:0;font-size:.78rem}.supported-device-desc{color:var(--gray-700);margin:.2rem 0 0;font-size:.82rem;line-height:1.6}.supported-device-registered{border-top:1px solid var(--gray-200);color:var(--gray-600);margin:.5rem 0 0;padding-top:.4rem;font-size:.84rem}.supported-device-registered.has-registered{color:var(--navy-800)}.supported-device-registered strong{color:var(--navy-800);font-size:1rem;font-weight:700}.supported-device-image-wrap{background:var(--gray-50);border-bottom:1px solid var(--gray-200);justify-content:center;align-items:center;width:100%;height:140px;display:flex;overflow:hidden}.supported-device-image{object-fit:contain;max-width:100%;max-height:100%;transition:transform .2s}.supported-device-card:hover .supported-device-image{transform:scale(1.04)}.supported-device-image-fallback{width:64px;height:64px;color:var(--navy-700);background:#0f27440f;border-radius:50%;justify-content:center;align-items:center;display:flex}.supported-device-card.is-future .supported-device-image-wrap{filter:grayscale(.4);opacity:.85}.supported-device-card-body{flex-direction:column;gap:.35rem;padding:.85rem 1rem;display:flex}.period-card-body{flex-wrap:wrap;align-items:center;gap:.7rem .9rem;padding-top:.2rem;display:flex}.period-kind-toggle .seg-toggle-btn{align-items:center;gap:.3rem;padding:.45rem .75rem;display:inline-flex}.period-navigator{border:1px solid var(--gray-200);background:#fff;border-radius:8px;flex:0 auto;align-items:center;gap:.4rem;min-width:14rem;padding:.35rem .45rem;display:flex}.period-nav-btn{border-radius:6px;justify-content:center;align-items:center;width:1.9rem;height:1.9rem;display:inline-flex}.period-nav-label{text-align:center;color:var(--navy-800);letter-spacing:.02em;font-variant-numeric:tabular-nums;flex:1;font-size:.95rem;font-weight:700}.period-default-btn{border:1px solid var(--gray-300);color:var(--gray-700);cursor:pointer;white-space:nowrap;background:#fff;border-radius:6px;justify-content:center;align-items:center;padding:.4rem .8rem;font-family:inherit;font-size:.83rem;font-weight:600;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.period-default-btn:hover{background:var(--gray-50);color:var(--navy-700)}.period-default-btn.is-active{background:var(--navy-800);color:#fff;border-color:var(--navy-800)}.output-option{border:1px solid var(--gray-200);cursor:pointer;background:#fff;border-radius:8px;align-items:flex-start;gap:.55rem;margin:.3rem 0 0;padding:.6rem .7rem;display:flex}.output-option input[type=checkbox]{margin-top:.18rem}.output-option-text{flex-direction:column;gap:.2rem;display:flex}.output-option-title{color:var(--navy-800);align-items:center;gap:.35rem;font-size:.92rem;font-weight:600;display:inline-flex}.output-option-desc{font-size:.78rem;line-height:1.55}.alerts-view{flex-direction:column;gap:1rem;display:flex}.alerts-view .view-header,.alerts-view .panel-card{margin-bottom:0}.alerts-filter-card .panel-card-meta{align-items:center;gap:.6rem;display:inline-flex}.alerts-filter-grid{grid-template-columns:1.1fr 1.4fr 1.5fr;gap:.9rem;margin-top:.4rem;display:grid}@media (width<=1100px){.alerts-filter-grid{grid-template-columns:1fr}}.alerts-filter-block{flex-direction:column;gap:.4rem;display:flex}.alerts-extra-filters-row{flex-wrap:wrap;gap:1.25rem 1.5rem;margin-top:.6rem;display:flex}.alerts-extra-filters-row .alerts-filter-block-period{flex:none}.alerts-extra-filters-row .alerts-filter-block-kinds{flex:auto;min-width:0}.alerts-extra-filters-row .alerts-kind-chips{align-items:center;min-height:39px}.alerts-filter-card .filter-panel{background:0 0;border:none;margin-bottom:0;padding:0}.alerts-filter-label{color:var(--navy-800);letter-spacing:.02em;margin:0;font-size:.78rem;font-weight:700}.alerts-period-row{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.alerts-period-row .select{flex:0 9rem;font-family:inherit}.alerts-kind-chips{flex-wrap:wrap;gap:.3rem;display:flex}.alert-kind-chip{border:1px solid var(--gray-300);color:var(--gray-700);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:.3rem;padding:.32rem .6rem;font-family:inherit;font-size:.74rem;font-weight:600;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.alert-kind-chip:hover{background:var(--gray-50)}.alert-kind-chip.is-active{background:var(--navy-800);border-color:var(--navy-800);color:#fff}.alerts-target-search{border:1px solid var(--gray-300);background:#fff;border-radius:6px;align-items:center;gap:.3rem;padding:.3rem .45rem;display:flex}.alerts-target-search .select{border:none;flex:1;padding:.1rem .2rem;font-size:.82rem}.alerts-target-list{border:1px solid var(--gray-200);background:#fff;border-radius:6px;max-height:11rem;padding:.25rem 0;overflow-y:auto}.alerts-target-item{cursor:pointer;border-bottom:1px solid var(--gray-100,#f1f5f9);align-items:flex-start;gap:.45rem;padding:.35rem .6rem;display:flex}.alerts-target-item:last-child{border-bottom:none}.alerts-target-item:hover{background:var(--gray-50)}.alerts-target-info{flex-direction:column;gap:.05rem;min-width:0;display:flex}.alerts-target-label{color:var(--navy-800);align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;display:inline-flex}.alerts-target-sub{font-size:.74rem}.alerts-target-kind-icon{background:var(--gray-100,#f1f5f9);width:18px;height:18px;color:var(--gray-700);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.alerts-grid-card{padding-top:.4rem}.alerts-grid{border-collapse:collapse;table-layout:fixed;width:100%;font-size:.85rem}.alerts-grid thead th{background:var(--gray-50);text-align:left;color:var(--navy-800);border-bottom:2px solid var(--gray-200);letter-spacing:.02em;white-space:nowrap;padding:.55rem .7rem;font-size:.78rem;font-weight:700}.alerts-grid tbody td{border-bottom:1px solid var(--gray-200);vertical-align:middle;white-space:nowrap;text-overflow:ellipsis;padding:.55rem .7rem;overflow:hidden}.alerts-grid tbody tr:hover{background:var(--gray-50)}.alerts-grid .col-time{font-variant-numeric:tabular-nums;width:11.25rem}.alerts-grid .col-kind{width:9.25rem}.alerts-grid .col-device-name{width:12.25rem}.alerts-grid .col-device-number{width:6.5rem}.alerts-grid .col-confirm{width:24%}.alerts-grid .col-category{width:6rem}.alerts-grid .col-group,.alerts-grid .col-tags{width:9rem}.alerts-grid .col-manufacturer,.alerts-grid .col-model{width:7rem}.alerts-grid .col-message{width:36%}.alerts-target-cell{align-items:center;gap:.4rem;min-width:0;display:inline-flex}.alerts-target-cell-name{color:var(--navy-800);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.alert-kind-badge{letter-spacing:.02em;border:1px solid var(--gray-300);color:var(--gray-800,#1f2937);white-space:nowrap;background:#fff;border-radius:999px;align-items:center;gap:.3rem;padding:.18rem .5rem;font-size:.72rem;font-weight:600;display:inline-flex}.alert-kind-chip-deviation-alert.is-active,.alert-kind-chip-deviation-warn.is-active,.alert-kind-chip-offline.is-active,.alert-kind-chip-battery.is-active{background:var(--navy-800);color:#fff;border-color:var(--navy-800)}.alerts-pagination-bar{justify-content:flex-end;display:flex}.alerts-pagination-bar-top{border-bottom:1px solid var(--gray-200);margin-bottom:.5rem;padding:.2rem .2rem .7rem}.alerts-pagination-bar-bottom{border-top:1px solid var(--gray-200);margin-top:.5rem;padding:.7rem .2rem .2rem}.user-menu-section-head{color:var(--gray-500);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:.35rem;padding:.45rem .5rem .25rem;font-size:.7rem;font-weight:700;display:inline-flex}.user-menu-switch-list{flex-direction:column;gap:.1rem;max-height:14rem;display:flex;overflow-y:auto}.user-menu-switch-item{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:5px;align-items:flex-start;gap:.45rem;width:100%;padding:.4rem .5rem;font-family:inherit;display:flex}.user-menu-switch-item:hover{background:var(--gray-100)}.user-menu-switch-icon{width:1.1rem;height:1.1rem;color:var(--navy-700);flex-shrink:0;justify-content:center;align-items:center;margin-top:.1rem;display:inline-flex}.user-menu-switch-text{flex-direction:column;gap:.05rem;min-width:0;display:flex}.user-menu-switch-label{color:var(--navy-800);font-size:.78rem;font-weight:600}.user-menu-switch-sub{color:var(--gray-600);white-space:nowrap;text-overflow:ellipsis;font-size:.7rem;overflow:hidden}.ctx-select-shell{z-index:100;background:linear-gradient(180deg, var(--navy-800) 0%, var(--navy-700) 100%);justify-content:center;align-items:center;padding:2rem 1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.ctx-select-card{background:#fff;border-radius:12px;width:100%;max-width:28rem;padding:2rem 1.75rem 1.5rem;position:relative;box-shadow:0 20px 60px #00000059}.ctx-select-close{width:2rem;height:2rem;color:var(--gray-500);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:background .12s,color .12s;display:inline-flex;position:absolute;top:.6rem;right:.6rem}.ctx-select-close:hover{background:var(--gray-100);color:var(--navy-800)}.ctx-select-brand{letter-spacing:.06em;color:var(--navy-700);text-transform:uppercase;margin-bottom:.4rem;font-size:.78rem;font-weight:700}.ctx-select-heading{color:var(--navy-800);margin:0 0 .4rem;font-size:1.25rem;font-weight:700}.ctx-select-sub{color:var(--gray-600);margin:0 0 1.25rem;font-size:.84rem;line-height:1.5}.ctx-select-list{flex-direction:column;gap:.5rem;display:flex}.ctx-select-item{border:1px solid var(--gray-300);cursor:pointer;text-align:left;background:#fff;border-radius:8px;align-items:center;gap:.75rem;width:100%;padding:.75rem .85rem;font-family:inherit;transition:border-color .12s,background .12s,transform 80ms;display:flex}.ctx-select-item:hover:not(:disabled){border-color:var(--navy-700);background:#f8fbff}.ctx-select-item:active:not(:disabled){transform:translateY(1px)}.ctx-select-item:disabled{cursor:default;background:var(--gray-50)}.ctx-select-item.is-active{border-color:var(--navy-700);background:var(--gray-50)}.ctx-select-item-icon{background:var(--navy-700);color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;display:inline-flex}.ctx-select-item-text{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.ctx-select-item-title{color:var(--navy-800);font-size:.9rem;font-weight:700}.ctx-select-item-sub{color:var(--gray-600);font-size:.74rem}.ctx-select-item-chev{color:var(--gray-400);flex-shrink:0}.ctx-select-item-badge{color:var(--navy-700);white-space:nowrap;background:#eef2f8;border-radius:999px;flex-shrink:0;padding:.2rem .5rem;font-size:.68rem;font-weight:600}.ctx-select-empty{color:var(--gray-600);background:var(--gray-50);text-align:center;border-radius:8px;padding:1rem;font-size:.84rem}.ctx-select-foot{border-top:1px dashed var(--gray-200);color:var(--gray-500);text-align:center;margin-top:1.25rem;padding-top:.75rem;font-size:.7rem}.exclusion-empty{border:1px dashed var(--gray-300);text-align:center;color:var(--gray-500);background:#fff;border-radius:6px;margin:.5rem 0;padding:1rem;font-size:.84rem}.exclusion-list{flex-direction:column;gap:.6rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.exclusion-card{border:1px solid var(--gray-200);background:#fff;border-radius:8px;overflow:hidden}.exclusion-card.is-disabled{opacity:.6}.exclusion-card-head{background:var(--gray-50,#f8fafc);border-bottom:1px solid var(--gray-200);justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem .75rem;display:flex}.exclusion-enable{cursor:pointer;flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.exclusion-summary{flex-direction:column;gap:.1rem;min-width:0;display:flex}.exclusion-summary strong{color:var(--navy-800);font-size:.88rem}.exclusion-summary-detail{color:var(--gray-600);font-size:.74rem}.exclusion-remove{color:var(--gray-500);flex-shrink:0}.exclusion-remove:hover{color:var(--danger)}.exclusion-card-body{flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.exclusion-row{flex-wrap:wrap;align-items:flex-start;gap:.6rem;display:flex}.exclusion-row .row-label{width:7.5rem;color:var(--gray-700);flex-shrink:0;padding-top:.35rem;font-size:.78rem;font-weight:600}.exclusion-label-input{flex:1;min-width:12rem;max-width:22rem}.exclusion-time-row{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.exclusion-time-input{width:7.5rem}.exclusion-time-sep{color:var(--gray-500)}.exclusion-hint{color:#92400e;background:#fffaf0;border:1px solid #f4c98a;border-radius:999px;padding:.05rem .45rem;font-size:.7rem;font-weight:600}.exclusion-warn{color:var(--danger);font-size:.74rem;font-weight:500}.exclusion-dow-row{flex-direction:column;flex:1;gap:.4rem;min-width:16rem;display:flex}.exclusion-dow-presets{flex-wrap:wrap;gap:.3rem;display:flex}.exclusion-dow-checks{flex-wrap:wrap;gap:.5rem;display:flex}.exclusion-dow-check{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.25rem;font-size:.82rem;display:inline-flex}.exclusion-targets-row{flex-wrap:wrap;align-items:center;gap:.6rem 1rem;display:flex}.exclusion-target-check{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.3rem;font-size:.84rem;display:inline-flex}.streak-indicator{border:1px solid #0000;border-radius:6px;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.6rem;padding:.5rem .7rem;font-size:.84rem;line-height:1.5;display:flex}.streak-indicator .streak-icon{flex-shrink:0;font-size:.95rem}.streak-indicator strong{font-weight:700}.streak-empty{background:var(--gray-50,#f8fafc);border-color:var(--gray-200);color:var(--gray-500);font-style:italic}.streak-ok{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.streak-warn-up{color:#92400e;background:#fffbeb;border-color:#fde68a}.streak-warn-up.is-alert{color:#991b1b;background:#fff5f5;border-color:#fecaca}.streak-fired{color:#991b1b;background:#fff5f5;border-color:#fca5a5;font-weight:500}.streak-fired.is-warn{color:#92400e;background:#fffbeb;border-color:#fde68a}.streak-suppressed{background:var(--gray-100,#f1f5f9);border:1px solid var(--gray-200);color:var(--gray-700);border-radius:999px;margin-left:.4rem;padding:.05rem .4rem;font-size:.74rem;font-weight:500;display:inline-block}.exclusion-date-input{width:9.5rem}.tpl-scope-section{border:1px solid var(--gray-200);background:#fff;border-radius:8px;flex-shrink:0;margin-top:.75rem;transition:border-color .12s,background .12s;overflow:hidden}.tpl-scope-section.is-active{border-color:var(--navy-700)}.tpl-scope-section.is-inactive{background:#fafbfc}.tpl-scope-section.is-inactive .tpl-scope-body{opacity:.45;pointer-events:none}.tpl-scope-head{cursor:pointer;border-bottom:1px solid var(--gray-200);background:var(--gray-50,#f8fafc);align-items:center;gap:.6rem;padding:.7rem .85rem;display:flex}.tpl-scope-section.is-active .tpl-scope-head{background:#eef2f8}.tpl-scope-head input[type=checkbox]{flex-shrink:0}.tpl-scope-title{color:var(--navy-800);align-items:center;gap:.35rem;font-size:.92rem;font-weight:700;display:inline-flex}.tpl-scope-icon{color:var(--navy-700);display:inline-flex}.tpl-scope-desc{color:var(--gray-600);margin-left:auto;font-size:.78rem}.tpl-scope-body{padding:.85rem}.template-exclusions{flex-direction:column;gap:1rem;display:flex}.exclusion-block{border:1px solid var(--gray-200);background:#fff;border-radius:8px;padding:.65rem .8rem}.exclusion-block-head{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.exclusion-block-title{color:var(--navy-800);align-items:center;gap:.3rem;font-size:.86rem;font-weight:600;display:inline-flex}.app-dialog-lg{width:min(880px,96vw)}.exclusion-empty-compact{padding:.55rem .75rem;font-size:.8rem}.exclusion-list-compact{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.exclusion-card-compact{border:1px solid var(--gray-200);background:#fff;border-radius:6px;transition:border-color .12s;overflow:hidden}.exclusion-card-compact.is-expanded{border-color:var(--navy-700)}.exclusion-card-compact.is-disabled{opacity:.55}.exclusion-row-header{align-items:center;gap:.5rem;padding:.35rem .6rem;display:flex}.exclusion-card-compact.is-expanded .exclusion-row-header{border-bottom:1px solid var(--gray-200);background:var(--gray-50,#f8fafc)}.exclusion-row-enable{flex-shrink:0}.exclusion-row-name{flex:12rem;min-width:8rem;max-width:18rem;height:1.85rem;padding:.25rem .5rem;font-size:.84rem}.exclusion-row-summary{color:var(--gray-700);white-space:nowrap;text-overflow:ellipsis;flex:8rem;min-width:0;font-size:.78rem;font-weight:500;overflow:hidden}.exclusion-row-targets{color:var(--navy-700);white-space:nowrap;background:#eef2f8;border:1px solid #d6e0ee;border-radius:999px;flex-shrink:0;padding:.1rem .45rem;font-size:.7rem;font-weight:600}.exclusion-row-toggle,.exclusion-row-remove{color:var(--gray-500);flex-shrink:0}.exclusion-row-remove:hover{color:var(--danger)}.exclusion-row-body{flex-direction:column;gap:.4rem;padding:.55rem .7rem;display:flex}.exclusion-edit-line{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.exclusion-edit-label{color:var(--gray-700);flex-shrink:0;font-size:.76rem;font-weight:600}.exclusion-edit-sep{color:var(--gray-300);margin:0 .25rem}.exclusion-time-input{width:6.5rem;height:1.85rem;padding:.2rem .4rem;font-size:.84rem}.exclusion-date-input{width:9rem;height:1.85rem;padding:.2rem .4rem;font-size:.84rem}.exclusion-dow-mini{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.2rem;padding:0 .15rem;font-size:.78rem;display:inline-flex}.exclusion-list-compact .exclusion-card,.exclusion-list-compact .exclusion-card-head,.exclusion-list-compact .exclusion-card-body{display:revert}.threshold-metrics-grid{grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr);align-items:start;gap:.6rem;display:grid}.threshold-metrics-grid>.threshold-metric{min-width:0;margin:0;padding-left:.55rem;padding-right:.55rem}.threshold-metrics-grid:before{content:"";background:var(--gray-200);grid-area:1/2;align-self:stretch;height:100%;min-height:6rem}@media (width<=720px){.threshold-metrics-grid{grid-template-columns:1fr;gap:.5rem}.threshold-metrics-grid:before{display:none}}.template-load-card{padding:.75rem 1rem}.template-load-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex;position:relative}.template-load-text{flex:1;align-items:center;gap:.4rem;min-width:14rem;display:flex}.template-load-text strong{color:var(--navy-800);font-size:.92rem}.template-load-text .small{font-size:.78rem}.template-load-trigger{flex-shrink:0}.template-load-pop{z-index:20;border:1px solid var(--gray-200);background:#fff;border-radius:8px;flex-direction:column;gap:.15rem;min-width:18rem;max-width:26rem;padding:.3rem;display:flex;position:absolute;top:calc(100% + .4rem);right:0;box-shadow:0 8px 24px #14365e1f}.template-load-item{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;flex-direction:column;gap:.1rem;padding:.45rem .6rem;font-family:inherit;display:flex}.template-load-item:hover{background:var(--gray-50,#f8fafc)}.template-load-name{color:var(--navy-800);font-size:.86rem;font-weight:600}.template-load-scope{color:var(--gray-600);font-size:.72rem}.ctx-tenant-combo{border:1px solid var(--gray-200);background:var(--gray-50,#f8fafc);border-radius:8px;flex-direction:column;gap:.5rem;padding:.5rem .6rem;display:flex}.ctx-tenant-combo-head{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.ctx-tenant-combo-label{color:var(--gray-700);flex-shrink:0;font-size:.78rem;font-weight:600}.ctx-tenant-combo-search{border:1px solid var(--gray-200);min-width:12rem;color:var(--gray-500);background:#fff;border-radius:6px;flex:1;align-items:center;gap:.35rem;padding:0 .5rem;display:flex}.ctx-tenant-combo-search .form-input{background:0 0;border:none;outline:none;flex:1;padding:.35rem .2rem;font-size:.86rem}.ctx-tenant-combo-list{border:1px solid var(--gray-200);background:#fff;border-radius:6px;flex-direction:column;gap:.2rem;max-height:22rem;padding:.3rem;display:flex;overflow-y:auto}.ctx-tenant-combo-empty{text-align:center;color:var(--gray-500);padding:1rem;font-size:.84rem}.ctx-tenant-combo-item{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;grid-template-columns:1.2rem 1fr 8rem auto;align-items:center;gap:.6rem;padding:.5rem .7rem;font-family:inherit;font-size:.86rem;transition:background .1s,border-color .1s;display:grid}.ctx-tenant-combo-item:hover:not(:disabled){background:var(--gray-50,#f8fafc);border-color:var(--gray-200)}.ctx-tenant-combo-item.is-active{border-color:var(--navy-700);background:#eef2f8}.ctx-tenant-combo-icon{color:var(--navy-700)}.ctx-tenant-combo-name{color:var(--navy-800);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.ctx-tenant-combo-meta{color:var(--gray-500);text-overflow:ellipsis;white-space:nowrap;font-size:.74rem;overflow:hidden}.ctx-tenant-combo-role{color:var(--gray-600);white-space:nowrap;font-size:.72rem}@media (width<=720px){.ctx-tenant-combo-item{grid-template-columns:1.2rem 1fr}.ctx-tenant-combo-meta,.ctx-tenant-combo-role{display:none}}.billing-card{margin-bottom:1rem}.billing-info-grid{grid-template-columns:1fr 1fr;gap:.6rem 1.5rem;margin:0;padding:0;display:grid}.billing-info-row{background:var(--gray-50,#f8fafc);border:1px solid var(--gray-200);border-radius:6px;flex-direction:column;gap:.15rem;padding:.55rem .7rem;display:flex}.billing-info-row dt{color:var(--gray-600);letter-spacing:.02em;font-size:.74rem;font-weight:600}.billing-info-row dd{color:var(--navy-800);margin:0;font-size:.92rem;font-weight:600}.billing-info-uuid{color:var(--gray-500,#6b7280);letter-spacing:0;word-break:break-all;margin-top:.15rem;font-size:.7rem;font-weight:400}.billing-info-row.billing-info-row-span{grid-column:1/-1}.billing-plan-dd{flex-wrap:nowrap;align-items:center;gap:.5rem;min-width:0;display:flex}.billing-plan-dd>.contract-type-pill,.billing-plan-dd>.contract-pill{white-space:nowrap;flex:none}.billing-plan-dd>.billing-plan-desc{color:var(--gray-600,#4b5563);white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;font-size:.76rem;font-weight:400;overflow:hidden}.billing-period{flex-wrap:wrap;align-items:baseline;gap:.4rem;display:inline-flex}.billing-period-sep{color:var(--gray-500,#6b7280);font-weight:400}.billing-expiry.is-soon{color:#d97706}.billing-expiry.is-expired{color:var(--danger)}.billing-expiry-days{font-size:.78rem;font-weight:500}@media (width<=720px){.billing-info-grid{grid-template-columns:1fr}}.billing-method-row{grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.85rem;display:grid}.billing-method-card{border:2px solid var(--gray-200);cursor:pointer;background:#fff;border-radius:8px;align-items:flex-start;gap:.7rem;padding:.85rem 1rem;transition:border-color .12s,background .12s;display:flex}.billing-method-card:hover{border-color:var(--gray-300)}.billing-method-card.is-active{border-color:var(--navy-700);background:#f8fbff}.billing-method-card input[type=radio]{flex-shrink:0;margin-top:.2rem}.billing-method-body{flex-direction:column;gap:.2rem;display:flex}.billing-method-title{color:var(--navy-800);align-items:center;gap:.35rem;font-size:.92rem;font-weight:700;display:inline-flex}.billing-method-sub{color:var(--gray-600);font-size:.78rem;line-height:1.5}.billing-method-detail{background:var(--gray-50,#f8fafc);border:1px solid var(--gray-200);border-radius:8px;padding:.85rem 1rem}@media (width<=720px){.billing-method-row{grid-template-columns:1fr}}.billing-method-readonly{background:var(--gray-50,#f8fafc);border:1px solid var(--gray-200);border-radius:8px;margin-bottom:.6rem;padding:.85rem 1rem}.billing-method-readonly-body{align-items:center;gap:.85rem;display:flex}.billing-method-readonly-icon{background:var(--navy-700);color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.billing-method-readonly-title{color:var(--gray-800,#1f2937);font-size:.95rem;font-weight:700}.billing-method-readonly-sub{margin-top:.15rem;font-size:.8rem;line-height:1.45}.billing-method-notice{color:#0c4a6e;background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;align-items:flex-start;gap:.4rem;margin:0;padding:.6rem .85rem;font-size:.8rem;line-height:1.55;display:flex}.billing-method-notice .inline-icon{flex-shrink:0;margin-top:2px}.billing-plan-badge{margin-left:.4rem}.billing-plan-desc{margin-top:.25rem;font-size:.78rem;line-height:1.45}.billing-card-display{flex-direction:column;gap:.5rem;display:flex}.billing-card-brand{color:var(--navy-800);align-items:center;gap:.45rem;font-size:.9rem;display:flex}.billing-card-info{flex-wrap:wrap;align-items:baseline;gap:.6rem 1rem;display:flex}.billing-card-mask{color:var(--navy-800);letter-spacing:.08em;font-size:1.05rem;font-weight:600}.billing-card-exp{font-size:.84rem}.billing-card-actions{flex-wrap:wrap;gap:.4rem;margin-top:.3rem;display:flex}.billing-card-remove{margin-left:auto;color:var(--danger)!important}.billing-stripe-note{color:var(--gray-600);border-top:1px dashed var(--gray-200);align-items:center;gap:.3rem;margin:0;padding-top:.4rem;font-size:.74rem;display:inline-flex}.billing-card-empty{flex-direction:column;align-items:flex-start;gap:.5rem;display:flex}.billing-card-empty p{margin:0}.billing-invoice-list{flex-direction:column;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.billing-invoice-row{border:1px solid var(--gray-200);background:#fff;border-radius:6px;flex-direction:column;gap:.3rem;padding:.65rem .85rem;display:flex}.billing-invoice-main{flex-wrap:wrap;align-items:center;gap:.7rem;display:flex}.billing-invoice-number{color:var(--gray-700);font-size:.84rem}.billing-invoice-period{color:var(--navy-800);font-size:.86rem;font-weight:600}.billing-invoice-amount{color:var(--navy-800);font-variant-numeric:tabular-nums;margin-left:auto;font-size:.96rem;font-weight:700}.billing-invoice-status{border:1px solid #0000;border-radius:999px;align-items:center;gap:.25rem;padding:.1rem .5rem;font-size:.74rem;font-weight:600;display:inline-flex}.billing-invoice-status.status-confirming{color:#92400e;background:#fffbeb;border-color:#fde68a}.billing-invoice-status.status-sent{color:#1e40af;background:#eff6ff;border-color:#bfdbfe}.billing-invoice-status.status-paid{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.billing-invoice-status.status-overdue{color:#991b1b;background:#fef2f2;border-color:#fecaca}.billing-invoice-status.status-cancelled{background:var(--gray-100);color:var(--gray-500);text-decoration:line-through}.billing-invoice-meta{flex-wrap:wrap;gap:.6rem 1rem;font-size:.78rem;display:flex}.billing-invoice-actions{flex-wrap:wrap;gap:.4rem;display:flex}.billing-empty{text-align:center;color:var(--gray-500);background:var(--gray-50,#f8fafc);border:1px dashed var(--gray-300);border-radius:6px;padding:1rem;font-size:.86rem}.stripe-mock-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;background:#0f27448c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.stripe-mock-card{background:#fff;border-radius:12px;width:100%;max-width:460px;padding:1.4rem 1.5rem 1.25rem;box-shadow:0 24px 48px #0f274440}.stripe-mock-head{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.stripe-mock-brand{letter-spacing:-.02em;color:#fff;background:linear-gradient(135deg,#635bff 0%,#5851ec 100%);border-radius:5px;margin-right:.55rem;padding:.15rem .6rem;font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:.95rem;font-weight:700;display:inline-block}.stripe-mock-merchant{color:var(--gray-700);font-size:.84rem;font-weight:500}.stripe-mock-title{color:var(--navy-800);margin:0 0 .4rem;font-size:1.05rem;font-weight:700}.stripe-mock-sub{color:var(--gray-600);margin:0 0 1rem;font-size:.8rem;line-height:1.55}.stripe-mock-form{flex-direction:column;gap:.7rem;display:flex}.stripe-mock-field{flex-direction:column;gap:.25rem;display:flex}.stripe-mock-label{color:var(--gray-700);font-size:.78rem;font-weight:600}.stripe-mock-input-row{align-items:center;gap:.4rem;display:flex}.stripe-mock-input{border:1px solid var(--gray-300);letter-spacing:.04em;border-radius:6px;flex:1;padding:.5rem .65rem;font-size:.92rem}.stripe-mock-input:focus{border-color:#635bff;outline:none;box-shadow:0 0 0 3px #635bff2e}.stripe-mock-field-grid{grid-template-columns:1fr 1fr;gap:.7rem;display:grid}.stripe-mock-brand-pill{letter-spacing:.04em;color:#fff;background:var(--gray-500);border-radius:4px;padding:.15rem .5rem;font-size:.7rem;font-weight:700}.stripe-mock-brand-pill.brand-visa{background:#1a1f71}.stripe-mock-brand-pill.brand-mastercard{background:#eb001b}.stripe-mock-brand-pill.brand-amex{background:#2671b9}.stripe-mock-brand-pill.brand-jcb{background:#0e4c96}.stripe-mock-note{color:var(--gray-500);align-items:center;gap:.3rem;margin:.4rem 0 0;font-size:.72rem;display:inline-flex}.stripe-mock-actions{border-top:1px solid var(--gray-200);justify-content:flex-end;gap:.5rem;margin-top:.6rem;padding-top:.7rem;display:flex}.stripe-mock-submit{background:#635bff;border-color:#635bff}.stripe-mock-submit:hover:not(:disabled){background:#5851ec}.supabase-live{margin-bottom:1rem}.supabase-live-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.6rem;display:flex}.supabase-live-header h3{color:var(--navy-800);align-items:center;gap:.5rem;margin:0;font-size:.95rem;display:inline-flex}.supabase-live-count{background:var(--navy-50,#eef3fb);color:var(--navy-700);border-radius:999px;padding:.1rem .5rem;font-size:.72rem;font-weight:600;display:inline-block}.supabase-live-meta{align-items:center;gap:.6rem;font-size:.78rem;display:inline-flex}.supabase-live-meta .spin{animation:1s linear infinite spin}.supabase-live-error{color:var(--danger);align-items:center;gap:.4rem;margin:.5rem 0 0;font-size:.85rem;display:inline-flex}.supabase-live-table{border-collapse:collapse;width:100%;font-size:.86rem}.supabase-live-table thead th{text-align:left;color:var(--gray-600);border-bottom:1px solid var(--gray-200);background:var(--gray-50);padding:.4rem .6rem;font-size:.78rem;font-weight:600}.supabase-live-table tbody td{border-bottom:1px solid var(--gray-100);vertical-align:middle;white-space:nowrap;padding:.5rem .6rem}.supabase-live-table tbody tr:hover{background:var(--gray-50)}.supabase-live-table .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}.supabase-live-table .num{text-align:right;font-variant-numeric:tabular-nums}.supabase-live-table .dim{color:var(--gray-500)}.login-page{background:linear-gradient(135deg, var(--navy-800) 0%, var(--navy-700) 100%);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{background:#fff;border-radius:12px;flex-direction:column;gap:1.25rem;width:100%;max-width:420px;padding:2rem 2.25rem;display:flex;box-shadow:0 24px 60px #0f27444d}.login-brand{flex-direction:column;align-items:center;gap:.2rem;display:flex}.login-brand-name{letter-spacing:.06em;color:var(--navy-800);font-size:1.6rem;font-weight:700}.login-brand-sub{color:var(--gray-500);letter-spacing:.04em;font-size:.74rem}.login-form{flex-direction:column;gap:.85rem;display:flex}.login-submit{justify-content:center;width:100%;padding:.65rem 1rem;font-size:.95rem}.login-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;align-items:flex-start;gap:.4rem;padding:.55rem .7rem;font-size:.82rem;line-height:1.4;display:flex}.login-error svg{flex:none;margin-top:.1rem}.login-divider{color:var(--gray-500);align-items:center;gap:.6rem;font-size:.74rem;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--gray-200);flex:auto;height:1px}.login-demo-row{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.login-demo-row .btn{justify-content:center;width:100%}.login-note{text-align:left;align-items:flex-start;gap:.3rem;margin:0;font-size:.72rem;line-height:1.5;display:flex}.login-note svg{flex:none;margin-top:.15rem}@media (width<=480px){.login-card{padding:1.5rem 1.25rem}.login-demo-row{grid-template-columns:1fr}}.public-dash-page{background:var(--gray-50,#f8fafc);flex-direction:column;gap:1rem;min-height:100vh;padding:1.25rem 1.25rem 3rem;font-family:inherit;display:flex}.public-dash-header{border:1px solid var(--gray-200);background:#fff;border-radius:8px;flex-direction:column;gap:.3rem;padding:.85rem 1.1rem;display:flex}.public-dash-header-line{color:var(--navy-800);flex-wrap:wrap;align-items:center;gap:.5rem;font-size:1.05rem;font-weight:700;display:flex}.public-dash-org{color:var(--navy-700)}.public-dash-sep{color:var(--gray-400);font-weight:400}.public-dash-name{color:var(--navy-800)}.public-dash-meta{align-items:center;gap:.5rem;display:flex}.public-dash-desc{margin:0;padding:0 .3rem;font-size:.9rem}.public-dash-widgets{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.public-dash-widget{border:1px solid var(--gray-200);background:#fff;border-radius:8px;flex-direction:column;gap:.65rem;min-height:0;padding:.85rem 1rem 1rem;display:flex}.public-dash-widget-full{grid-column:1/-1}.public-dash-widget-head h2{color:var(--navy-800);margin:0;font-size:.95rem;font-weight:700}.public-dash-empty{text-align:center;border:1px dashed var(--gray-200);background:#fff;border-radius:8px;grid-column:1/-1;padding:3rem}.public-dash-footer{border-top:1px solid var(--gray-200);justify-content:center;align-items:center;gap:.3rem;padding-top:.5rem;font-size:.74rem;display:flex}.public-dash-card{border:1px solid var(--gray-200);text-align:center;background:#fff;border-radius:8px;max-width:480px;margin:4rem auto;padding:2rem}.public-dash-card h1{color:var(--navy-800);margin:0 0 .5rem;font-size:1.1rem}.public-dash-loading{justify-content:center;align-items:center;gap:.6rem;display:flex}.public-dash-loading .spinner{border:2px solid var(--gray-300);border-top-color:var(--navy-700);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin}.public-dash-error-detail{word-break:break-word;margin-top:1rem;font-family:SF Mono,Menlo,monospace;font-size:.74rem}@media (width<=720px){.public-dash-page{gap:.75rem;padding:.75rem .75rem 2rem}.public-dash-widgets{grid-template-columns:minmax(0,1fr);gap:.75rem}.public-dash-widget{padding:.7rem .8rem .85rem}.public-dash-header{padding:.7rem .85rem}.public-dash-header-line{font-size:.95rem}}.alerts-confirm-toolbar{border-bottom:1px solid var(--gray-200);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex}.alerts-confirm-toggle{gap:.4rem;display:inline-flex}.alerts-confirm-toggle .badge-outline{cursor:pointer;background:#fff;padding:.2rem .6rem;font-size:.78rem}.alerts-confirm-toggle .badge-outline.is-active{background:var(--navy-700);color:#fff;border-color:var(--navy-700)}.alerts-grid .col-select{text-align:center;width:32px}.alerts-grid .col-confirm-action{white-space:nowrap;text-align:center;width:100px}.alerts-grid tr.is-confirmed{opacity:.55}.alert-confirmed-badge{color:var(--gray-700);align-items:center;gap:.25rem;font-size:.78rem;display:inline-flex}.report-numeric,.summary-page,.monthly-page{font-family:Hiragino Kaku Gothic ProN,Hiragino Sans,Yu Gothic UI,Meiryo UI,Noto Sans JP,sans-serif}.report-page{border-bottom:1px dashed var(--border);box-sizing:border-box;padding:1rem 1.25rem 1.5rem}.report-bundle{border:1px solid var(--border);background:#fff;border-radius:8px;margin-bottom:3rem;overflow:hidden}.report-bundle .report-page:last-child{border-bottom:none}.report-title,.monthly-title{text-align:center;margin:0 0 .35rem;font-size:1.2rem;font-weight:700}.report-hero-wrap{margin:0 0 .55rem}.report-hero-line{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.2rem .45rem;margin:0;line-height:1.3;display:flex}.report-hero-ym{letter-spacing:.03em;font-size:1.42rem;font-weight:800}.report-hero-device{letter-spacing:.02em;font-size:1.58rem;font-weight:800}.summary-header .meta-sub{text-align:center;color:#444;margin:0 0 1.25rem;font-size:.82rem;line-height:1.45}.summary-layout-vertical{flex-direction:column;align-items:stretch;gap:1.75rem;display:flex}.summary-charts-column{box-sizing:border-box;width:100%;max-width:672px;margin-left:auto;margin-right:auto}.chart-block-title{color:#333;margin:0 0 .35rem;font-size:.82rem;font-weight:700}.chart-wrap-temp,.chart-wrap-hum{box-sizing:border-box;border:none;border-radius:0;flex-shrink:0;width:100%;height:300px;min-height:300px;padding:.55rem .35rem .65rem .45rem;overflow:hidden}.chart-wrap-temp{margin-bottom:.15rem}.chart-wrap-hum{margin-top:.15rem}.chart-wrap-temp .recharts-responsive-container,.chart-wrap-hum .recharts-responsive-container{width:100%!important;height:260px!important}.summary-table{border-collapse:collapse;width:100%;max-width:672px;margin:.75rem auto 0;font-size:.78rem;font-weight:400}.summary-table th,.summary-table td{white-space:nowrap;font-variant-numeric:tabular-nums;border:1px solid #333;padding:.4rem .45rem}.summary-table thead th{background:#f0f4f8;font-weight:600}.summary-table tbody th{text-align:left;background:#f7f7f7}.summary-table .deviation{color:#c00;font-weight:700}.summary-foot{text-align:center;margin-top:1rem;font-size:.72rem}.no-data{text-align:center;color:var(--muted);padding:2rem}.monthly-meta{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.5rem;display:flex}.meta-table{border-collapse:collapse;font-size:.76rem}.meta-table th,.meta-table td{border:1px solid #333;padding:.25rem .5rem}.stamp-row{border-collapse:collapse;flex-shrink:0}.stamp-row td.stamp{vertical-align:middle;text-align:center;color:#c8c8c8;border:1px solid #888;width:3.5rem;height:3.5rem;padding:0;font-size:.62rem;font-weight:300}.stats-row{border-collapse:collapse;width:100%;margin-bottom:.4rem;font-size:.68rem;font-weight:400}.stats-row th,.stats-row td{text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums;border:1px solid #333;padding:.25rem .3rem}.stats-row th{background:#f0f4f8}.stats-row .deviation{color:#c00;font-weight:700}.monthly-page{flex-direction:column;display:flex}.monthly-table-scroll{flex:auto;max-width:100%;min-height:0;overflow-x:auto}.monthly-grid{border-collapse:collapse;table-layout:fixed;width:100%;height:100%;font-size:.52rem;font-weight:400}.monthly-grid th,.monthly-grid td{text-align:center;vertical-align:middle;font-variant-numeric:tabular-nums;border:1px solid #222;padding:3px 2px;line-height:1.2}.monthly-hour-row td{box-sizing:border-box;height:1.3rem;min-height:1.3rem}.monthly-hour-row-sub td{box-sizing:border-box;border-top:1px solid #bbb;height:1.3rem;min-height:1.3rem}.monthly-grid .cell-num{text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.02em;max-width:100%;font-weight:400;display:inline-block;overflow:hidden}.monthly-grid .corner{background:#eef2f6;width:2.4rem;font-size:.58rem;font-weight:600}.monthly-grid .day-head{background:#f5f5f5;min-width:1.45rem;padding:2px 1px;font-size:.52rem;font-weight:600}.monthly-grid .wd{font-size:.48rem;font-weight:400;display:block}.monthly-grid .row-head-hour{vertical-align:middle;background:#fafafa;width:2.1rem;padding:2px 3px;font-size:.58rem;font-weight:600;line-height:1.15}.monthly-grid .cell-deviation{color:#c00;font-weight:600}.monthly-grid.temperature .cell-num{font-size:.5rem}.monthly-grid.humidity .cell-num{font-size:.52rem}.remarks{border-collapse:collapse;width:100%;margin-top:.5rem;font-size:.72rem}.remarks th,.remarks td{border:1px solid #333;padding:.35rem .5rem}.remarks-label{white-space:nowrap;background:#f7f7f7;width:3.2rem}.remarks-body-cell{vertical-align:top;padding:0!important}.remarks-write-area{box-sizing:border-box;width:100%;min-height:calc(4.35em + .5rem);padding:.4rem .55rem .5rem;line-height:1.45}.weekly-grid .day-head{min-width:4rem;padding:4px 2px;font-size:.7rem}.weekly-grid .wd{font-size:.62rem}.weekly-grid.temperature .cell-num{font-size:.7rem}.weekly-grid.humidity .cell-num{font-size:.72rem}.weekly-grid .corner{width:3rem;font-size:.66rem}.weekly-grid .row-head-hour{width:2.6rem;font-size:.66rem}.weekly-page .monthly-hour-row td,.weekly-page .monthly-hour-row-sub td{height:1.5rem;min-height:1.5rem}.screen-preview-root{margin-top:.75rem}@media screen{#bulk-print-root,.bulk-print-root{pointer-events:none;opacity:0;visibility:hidden;z-index:-1;width:210mm;max-width:100vw;height:auto;position:fixed;top:0;left:0;overflow:visible}}@media print{@page{size:A4 portrait;margin:8mm}body{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff!important}.no-print{display:none!important}.app-main{max-width:none!important;padding:0!important}#bulk-print-root,.bulk-print-root{display:none!important}#screen-preview-root,.screen-preview-root{display:block!important}body.printing-bulk-month #screen-preview-root,body.printing-bulk-month .screen-preview-root{display:none!important}body.printing-bulk-month #bulk-print-root,body.printing-bulk-month .bulk-print-root{clip:auto!important;visibility:visible!important;opacity:1!important;z-index:auto!important;width:auto!important;max-width:none!important;height:auto!important;display:block!important;position:static!important;top:auto!important;left:auto!important;overflow:visible!important}.report-bundle{break-inside:avoid;border:none;border-radius:0;margin:0}.report-page{page-break-after:always;border:none;min-height:0;padding:3mm 4mm 4mm}#screen-preview-root .report-bundle:last-child .report-page:last-child,body.printing-bulk-month #bulk-print-root .report-bundle:last-child .report-page:last-child{page-break-after:auto}.summary-layout-vertical{gap:5.5mm}.summary-charts-column{width:100%;max-width:none;margin-left:0;margin-right:0}.summary-header .meta-sub{margin-bottom:4mm}.report-hero-line{gap:1.5mm 2.5mm}.report-hero-ym{font-size:13pt}.report-hero-device{font-size:14pt}.report-hero-wrap{margin-bottom:.35rem}.chart-block-title{margin-bottom:1.5mm;font-size:9pt}.chart-wrap-temp,.chart-wrap-hum{page-break-inside:avoid;box-sizing:border-box;height:63mm;min-height:63mm;max-height:63mm;padding:2mm 1.5mm 2.5mm 1.8mm;overflow:hidden;border:none!important}.chart-wrap-temp .recharts-responsive-container,.chart-wrap-hum .recharts-responsive-container{width:100%!important;height:56mm!important;min-height:56mm!important}.summary-table{max-width:none;font-size:7.5pt;margin-top:3mm!important}.summary-table th,.summary-table td{padding:.2rem .3rem}.summary-foot{margin-top:3mm}.monthly-page{flex-direction:column;min-height:0;max-height:none;display:flex}.monthly-table-scroll{flex:0 auto;display:block;overflow:visible}.monthly-grid{height:auto;font-size:4.9pt}.monthly-grid .day-head{padding:0;font-size:4.6pt}.monthly-grid .wd{font-size:4pt}.monthly-grid .row-head-hour{box-sizing:border-box;width:5.5mm;height:8.7mm;padding:0 1px;font-size:5pt}.monthly-grid th,.monthly-grid td{box-sizing:border-box;padding:0}.monthly-hour-row td,.monthly-hour-row-sub td{height:4.35mm;min-height:4.35mm;max-height:4.35mm}.monthly-grid.temperature .cell-num{font-size:4.8pt}.monthly-grid.humidity .cell-num{font-size:5pt}.monthly-grid .corner{width:6mm;font-size:5pt}.stats-row{margin-bottom:.2rem;font-size:6.2pt}.stats-row th,.stats-row td{padding:.15rem .2rem}.meta-table{font-size:6.8pt}.meta-table th,.meta-table td{padding:.15rem .3rem}.monthly-title{margin-bottom:.2rem;font-size:10.5pt}.remarks-write-area{min-height:17mm;padding:.8mm 1mm 1.2mm;line-height:1.4}.remarks th,.remarks td{padding:.25rem .35rem}.remarks td.remarks-body-cell{vertical-align:top;padding:0!important}.remarks th.remarks-label{vertical-align:middle}.report-title{font-size:11pt}.stamp-row td.stamp{color:#d0d0d0;width:14mm;height:14mm;font-size:6pt}.weekly-grid{font-size:8pt}.weekly-grid .day-head{padding:1mm .5mm;font-size:7pt}.weekly-grid .wd{font-size:6pt}.weekly-grid.temperature .cell-num{font-size:7.6pt}.weekly-grid.humidity .cell-num{font-size:8pt}.weekly-grid .corner{width:9mm;font-size:7pt}.weekly-grid .row-head-hour{width:9mm;height:auto;font-size:7pt}.weekly-page .monthly-hour-row td,.weekly-page .monthly-hour-row-sub td{height:5.2mm;min-height:5.2mm;max-height:5.2mm}}.weekly-merged-page .monthly-meta.meta-bottom-aligned{align-items:flex-end}.stats-split-row{align-items:stretch;gap:0;margin-bottom:.45rem;display:flex}.stats-split-row .stats-row-block{border-collapse:collapse;table-layout:fixed;flex:7 0 0;width:48.27%}.stats-split-row .stats-spacer{flex:.5 0 0;width:3.45%}.stats-row-block .stats-pad{background:0 0;border:1px solid #333}.stats-row td.threshold-range-cell{white-space:pre-line;word-break:keep-all;text-align:left;line-height:1.4}.stats-row-block td.threshold-range-cell{font-size:.72rem}.weekly-merged-page .monthly-table-scroll{overflow-x:auto}.weekly-merged-grid{table-layout:fixed;width:100%}.weekly-merged-grid .col-day{width:6.9%}.weekly-merged-grid .col-time{width:3.45%}.weekly-merged-grid .day-head{font-size:.66rem}.weekly-merged-grid .cell-num{font-size:.72rem}.weekly-merged-grid .merged-time-col-head{text-align:center;background:var(--gray-50,#f8fafc);font-size:.66rem}.weekly-merged-grid .merged-time-col{text-align:center}@media print{.weekly-merged-grid{table-layout:fixed;width:100%;font-size:7.5pt}.weekly-merged-grid .day-head{width:auto;min-width:0;padding:.8mm .4mm;font-size:6.5pt}.weekly-merged-grid .corner,.weekly-merged-grid .row-head-hour{width:8mm;font-size:6.5pt}.weekly-merged-grid .cell-num{font-size:7pt}.weekly-merged-page .monthly-hour-row td,.weekly-merged-page .monthly-hour-row-sub td{height:4.8mm;min-height:4.8mm;max-height:4.8mm}.stats-split-row .stats-row-block{font-size:7.5pt}}.records-section{margin:.6rem 0 .8rem}.records-section-title{color:var(--navy-800,#0f2744);border-left:4px solid var(--navy-700,#14365e);margin:0 0 .4rem;padding-left:.5rem;font-size:.95rem;font-weight:700}.records-empty{color:var(--gray-600,#6b7280);margin:.2rem 0 .4rem;font-size:.82rem}.records-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:.78rem}.records-table th,.records-table td{border:1px solid var(--gray-300,#cbd5e1);vertical-align:top;text-align:left;word-break:break-word;padding:4px 6px}.records-table thead th{background:var(--gray-50,#f8fafc);font-size:.74rem;font-weight:600}.records-table .cell-nowrap{white-space:nowrap}.records-table .cell-memo{font-size:.78rem;line-height:1.45}.records-issue-yes{color:#c00;font-weight:700}.records-issue-no{color:var(--gray-700,#4b5563)}.records-sensor-memos{margin:0;padding:0;list-style:none}.records-sensor-memos li{margin-bottom:.2rem;line-height:1.45}.records-sensor-memos li:last-child{margin-bottom:0}.records-sensor-kinds{color:var(--gray-600,#6b7280);font-size:.72rem}.records-notes{flex-direction:column;gap:.6rem;display:flex}.records-note-block{padding:0}.records-note-device{color:var(--navy-800,#0f2744);margin:0 0 .25rem;font-size:.85rem;font-weight:700}.records-notes-table{font-size:.76rem}@media print{.records-page{page-break-before:always}.records-table{font-size:7.5pt}.records-table thead th{font-size:7pt}.records-section-title{font-size:9pt}.records-note-device{font-size:8pt}}.admin-shell{background:var(--gray-50);grid-template-columns:240px 1fr;height:100vh;display:grid;overflow:hidden}.admin-sidebar{background:var(--navy-800);color:#fff;border-right:4px solid #e53e3e;flex-direction:column;height:100%;padding:1rem .75rem .75rem;display:flex;overflow:hidden}.admin-sidebar-brand{color:#fff;flex-direction:column;gap:.5rem;padding:.5rem .5rem 1.25rem;display:flex}.admin-sidebar-brand-line{align-items:center;gap:.55rem;display:flex}.admin-sidebar-brand-name{font-size:1rem;font-weight:700;line-height:1}.admin-sidebar-brand-sub{letter-spacing:.08em;color:#e53e3e;text-transform:uppercase;font-size:.68rem;font-weight:700;line-height:1}.admin-sidebar-nav{flex-direction:column;flex:1;gap:.15rem;min-height:0;display:flex;overflow-y:auto}.admin-nav-item{color:#ffffffc7;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:.55rem;width:100%;padding:.55rem .7rem;font-family:inherit;font-size:.86rem;transition:background .12s,color .12s;display:flex}.admin-nav-item:hover:not(:disabled){color:#fff;background:#ffffff14}.admin-nav-item.is-active{color:#fff;background:#ffffff1f}.admin-nav-item:disabled{cursor:not-allowed;opacity:.55}.admin-nav-badge{background:var(--danger);color:#fff;letter-spacing:.02em;border-radius:999px;margin-left:auto;padding:.05rem .45rem;font-size:.62rem;font-weight:700}.admin-sidebar-foot{border-top:1px solid #ffffff14;flex-shrink:0;margin-top:auto;padding-top:.6rem}.admin-main{-webkit-overflow-scrolling:touch;padding:2rem 2.25rem;overflow:auto}.admin-view{max-width:1100px}.admin-view.admin-view-wide{max-width:none}.admin-table-wrap.admin-tenants-grid{overflow:auto visible}.tenants-table{width:max-content;min-width:100%}.tenants-table th,.tenants-table td{white-space:nowrap}.tenants-table th.col-tenant-name,.tenants-table td.col-tenant-name{min-width:14rem}.tenants-table th.num,.tenants-table td.num{text-align:right;min-width:4.5rem}.bool-yes{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:999px;justify-content:center;align-items:center;width:1.4rem;height:1.4rem;display:inline-flex}.bool-no{font-weight:600}.migration-panel{border:1px solid var(--gray-200);background:#fff;border-radius:8px;margin-bottom:1rem;padding:1rem 1.1rem}.migration-panel-active{background:#fffbeb;border-color:#fcd34d}.migration-head{border-bottom:1px solid #fde68a;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.85rem;padding-bottom:.6rem;display:flex}.migration-head h3{color:var(--navy-800);align-items:center;gap:.4rem;margin:0 0 .15rem;font-size:1rem;display:flex}.migration-head small{display:block}.migration-finish-btn{flex-shrink:0}.migration-drop{border:2px dashed var(--gray-300);color:var(--gray-600);background:#fff;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;padding:2rem 1rem;transition:border-color .12s,background .12s;display:flex}.migration-drop.is-hover{border-color:var(--navy-700);color:var(--navy-700);background:#f8fbff}.migration-drop.is-busy{opacity:.7;pointer-events:none}.migration-drop-title{color:var(--navy-800);font-size:.9rem;font-weight:700}.migration-drop-sub{color:var(--gray-600);font-size:.74rem}.migration-pick-btn{cursor:pointer;margin-top:.5rem}.migration-drop-busy{color:var(--gray-600);align-items:center;gap:.3rem;margin-top:.4rem;font-size:.74rem;display:inline-flex}.spinning{animation:1s linear infinite migration-spin}@keyframes migration-spin{to{transform:rotate(360deg)}}.migration-preview-summary{background:#fff;border:1px solid #fde68a;border-radius:6px;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.6rem;padding:.5rem .7rem;font-size:.84rem;display:flex}.migration-preview-summary .warn{color:#b45309;font-weight:600}.migration-table-wrap{border:1px solid var(--gray-200);background:#fff;border-radius:6px;overflow-x:auto}.migration-table{border-collapse:collapse;width:100%;font-size:.82rem}.migration-table thead{background:var(--gray-50)}.migration-table th{text-align:left;color:var(--gray-600);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--gray-200);white-space:nowrap;padding:.5rem .7rem;font-size:.72rem;font-weight:600}.migration-table td{border-bottom:1px solid var(--gray-100,#f1f5f9);vertical-align:middle;white-space:nowrap;padding:.5rem .7rem}.migration-table tr:last-child td{border-bottom:none}.migration-file{align-items:center;gap:.35rem;max-width:18rem;display:flex}.migration-file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.migration-period{color:var(--gray-700);font-size:.74rem}.migration-state{border:1px solid #0000;border-radius:999px;padding:.1rem .5rem;font-size:.7rem;font-weight:600;display:inline-block}.migration-state.is-ok{color:#065f46;background:#ecfdf5;border-color:#a7f3d0}.migration-state.is-warn{color:#b45309;background:#fff7ed;border-color:#fed7aa}.migration-state.is-error{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.migration-state.is-muted{background:var(--gray-100,#f1f5f9);color:var(--gray-600);border-color:var(--gray-300)}.migration-error{white-space:normal;max-width:14rem;margin-top:.15rem;font-size:.68rem;line-height:1.3;display:block}.migration-preview-foot{justify-content:flex-end;align-items:center;gap:.5rem;margin-top:.75rem;display:flex}.migration-importing{padding:1.25rem}.migration-importing-label{margin-bottom:.5rem;font-size:.84rem}.migration-progress{background:var(--gray-200);border-radius:999px;width:100%;height:8px;overflow:hidden}.migration-progress-bar{background:var(--navy-700);border-radius:inherit;height:100%;transition:width .2s}.migration-done{align-items:flex-start;gap:.85rem;padding:.4rem 0;display:flex}.migration-done-icon{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;display:inline-flex}.migration-done-text{flex-direction:column;flex:1;gap:.2rem;display:flex}.migration-done-text strong{color:var(--navy-800);font-size:.95rem}.migration-done-text p{color:var(--gray-700);margin:0;font-size:.82rem}.migration-done-text p.warn{color:#b45309;font-size:.78rem}.migration-done-actions{flex-shrink:0;gap:.4rem;display:flex}.admin-view-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.admin-view-header-text{flex-direction:column;gap:.25rem;display:flex}.admin-view-title{color:var(--navy-800);align-items:center;gap:.5rem;margin:0;font-size:1.4rem;font-weight:700;display:inline-flex}.admin-view-sub{color:var(--gray-600);margin:0;font-size:.85rem}.admin-view-actions{gap:.5rem;display:flex}.admin-toolbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.6rem;display:flex}.admin-search{border:1px solid var(--gray-300);color:var(--gray-500);background:#fff;border-radius:6px;align-items:center;gap:.4rem;padding:.1rem .55rem;display:inline-flex}.admin-search input{width:18rem;color:var(--ink);background:0 0;border:none;outline:none;padding:.4rem 0;font-size:.86rem}.admin-count{color:var(--gray-600);font-size:.78rem}.admin-count strong{color:var(--navy-800);font-weight:700}.admin-table-wrap{border:1px solid var(--gray-200);background:#fff;border-radius:8px;overflow:hidden}.admin-table{border-collapse:collapse;width:100%;font-size:.86rem}.admin-table thead{background:var(--gray-50)}.admin-table th{text-align:left;color:var(--gray-600);letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--gray-200);padding:.6rem .85rem;font-size:.74rem;font-weight:600}.admin-table td{border-bottom:1px solid var(--gray-100,#f1f5f9);color:var(--ink);vertical-align:middle;padding:.7rem .85rem}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table-row{cursor:pointer;transition:background .1s}.admin-table-row:hover{background:var(--gray-50)}.admin-table-name{color:var(--navy-800);align-items:center;gap:.4rem;font-weight:600;display:flex}.admin-table .num{text-align:right;font-variant-numeric:tabular-nums}.admin-table .ellipsis{text-overflow:ellipsis;white-space:nowrap;max-width:12rem;overflow:hidden}.admin-table-empty{text-align:center;color:var(--gray-500);font-size:.86rem;padding:1.5rem .85rem!important}.admin-table-meta-pill{color:var(--navy-700);background:#eef2f8;border-radius:999px;align-items:center;gap:.25rem;padding:.1rem .4rem;font-size:.66rem;font-weight:600;display:inline-flex}.inline-icon{vertical-align:-1px;color:var(--gray-500)}.plan-pill{border:1px solid #0000;border-radius:999px;padding:.15rem .55rem;font-size:.7rem;font-weight:600;display:inline-block}.plan-pill.plan-demo{color:#b45309;background:#fff7ed;border-color:#fed7aa}.plan-pill.plan-standard{color:var(--navy-700);background:#eef2f8;border-color:#c7d2fe}.plan-pill.plan-enterprise{color:#065f46;background:#ecfdf5;border-color:#a7f3d0}.role-pill{color:var(--navy-700);background:#eef2f8;border-radius:999px;align-items:center;gap:.25rem;padding:.15rem .55rem;font-size:.74rem;display:inline-flex}.admin-section{border:1px solid var(--gray-200);background:#fff;border-radius:8px;margin-top:1rem;padding:1.25rem}.admin-section-head{justify-content:space-between;align-items:center;margin-bottom:.85rem;display:flex}.admin-section-head h2{color:var(--navy-800);margin:0;font-size:1rem;font-weight:700}.admin-section-note{color:var(--gray-500);font-size:.74rem}.admin-section-head-right{align-items:center;gap:.5rem;display:inline-flex}.section-action-menu{position:relative}.section-action-trigger{width:1.8rem;height:1.8rem;color:var(--gray-500);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.section-action-trigger:hover{background:var(--gray-100,#f1f5f9);color:var(--navy-700);border-color:var(--gray-200)}.section-action-menu-pop{border:1px solid var(--gray-200);z-index:30;background:#fff;border-radius:8px;min-width:18rem;padding:.3rem;position:absolute;top:calc(100% + .3rem);right:0;box-shadow:0 12px 32px #0f274426}.section-action-item{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:5px;width:100%;padding:.45rem .6rem;font-family:inherit;display:block}.section-action-item:hover{background:var(--gray-100,#f1f5f9)}.section-action-label{color:var(--navy-800);font-size:.84rem;font-weight:600;display:block}.section-action-hint{color:var(--gray-600);margin-top:.1rem;font-size:.72rem;line-height:1.4;display:block}.app-dialog.app-dialog-wide{width:min(90vw,1100px);max-width:none}.form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1rem;display:grid}.form-grid-2 .form-row.form-row-wide{grid-column:1/-1}.form-error-block{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin-top:.85rem;padding:.6rem .85rem;font-size:.82rem}.form-error-block strong{margin-bottom:.2rem;display:block}.form-error-block ul{margin:0;padding-left:1rem}.bulk-cols{background:var(--gray-50);border-radius:6px;margin:.5rem 0 .6rem;padding:.5rem .75rem;font-size:.78rem}.bulk-cols ol{color:var(--gray-700);margin:.25rem 0 0;padding-left:1.4rem;line-height:1.6}.bulk-textarea{white-space:pre;width:100%;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.8rem}.bulk-preview-body{padding-bottom:.5rem}.bulk-preview-summary{background:var(--gray-50);border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:.55rem;padding:.55rem .7rem;font-size:.86rem;display:flex}.bulk-preview-summary .warn{color:#b45309;align-items:center;gap:.3rem;font-weight:600;display:inline-flex}.bool-yes-inline{color:#047857;align-items:center;gap:.3rem;font-weight:600;display:inline-flex}.bulk-preview-table-wrap{border:1px solid var(--gray-200);border-radius:6px;overflow-x:auto}.bulk-preview-table{border-collapse:collapse;width:100%;font-size:.78rem}.bulk-preview-table th{text-align:left;background:var(--gray-50);color:var(--gray-600);text-transform:uppercase;white-space:nowrap;border-bottom:1px solid var(--gray-200);padding:.45rem .6rem;font-size:.7rem;font-weight:600}.bulk-preview-table td{border-bottom:1px solid var(--gray-100,#f1f5f9);white-space:nowrap;padding:.45rem .6rem}.bulk-preview-table tr:last-child td{border-bottom:none}.bulk-preview-table tr.has-error{background:#fef2f2}.bulk-issue-list{flex-direction:column;gap:.15rem;display:flex}.bulk-issue{color:#b91c1c;white-space:normal;max-width:28rem;font-size:.7rem;display:block}.bulk-done{align-items:flex-start;gap:.85rem;padding:.5rem 0;display:flex}.bulk-done-icon{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;display:inline-flex}.bulk-done strong{color:var(--navy-800);font-size:.95rem;display:block}.bulk-done p{color:var(--gray-700);margin:.2rem 0 0;font-size:.84rem}.bulk-preview-table .input-sm{width:9rem;padding:.2rem .4rem;font-size:.74rem}.bulk-preview-table .select{padding:.2rem .35rem;font-size:.74rem}.admin-grid-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1.25rem;display:grid}.admin-grid-form .form-row{flex-direction:column;gap:.25rem;display:flex}.admin-grid-form .form-label{color:var(--gray-700);letter-spacing:.02em;font-size:.74rem;font-weight:600}.admin-meta-row{margin-top:.85rem}.admin-placeholder{border:1px dashed var(--gray-300);text-align:center;color:var(--gray-600);background:#fff;border-radius:8px;padding:2rem}.admin-placeholder h1{color:var(--navy-800);margin:0 0 .5rem;font-size:1.1rem}.btn-sm{padding:.3rem .65rem;font-size:.78rem}.form-help{color:var(--gray-500);margin:.2rem 0 0;font-size:.72rem}.asg-status{border:1px solid #0000;border-radius:999px;padding:.15rem .55rem;font-size:.7rem;font-weight:600;display:inline-block}.asg-status-active{color:#065f46;background:#ecfdf5;border-color:#a7f3d0}.asg-status-expired{background:var(--gray-100,#f1f5f9);color:var(--gray-600);border-color:var(--gray-300)}.asg-status-revoked{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.admin-table .ellipsis-2{-webkit-line-clamp:2;max-width:18rem;color:var(--gray-700);-webkit-box-orient:vertical;font-size:.78rem;line-height:1.3;display:-webkit-box;overflow:hidden}.admin-table .actions-cell{text-align:right;white-space:nowrap}.admin-table .actions-cell .btn{margin-left:.3rem}.asg-revoke{color:var(--danger)}.asg-revoke:hover{color:#b91c1c!important;background:#fef2f2!important}.form-checkbox{color:var(--gray-700);cursor:pointer;align-items:center;gap:.4rem;margin-top:.4rem;font-size:.8rem;display:inline-flex}.form-checkbox input[type=checkbox]{width:14px;height:14px}.impersonation-banner{z-index:200;color:#fff;background:#e53e3e;align-items:center;gap:.75rem;padding:.55rem 1rem;font-size:.85rem;display:flex;position:fixed;top:0;left:0;right:0;box-shadow:0 2px 6px #0000002e}.impersonation-banner.is-expired{background:#9b2c2c}.app-shell.has-impersonation-banner{padding-top:56px}@media (width<=720px){.app-shell.has-impersonation-banner{padding-top:40px}}.impersonation-banner-icon{background:#fff3;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;display:inline-flex}.impersonation-banner-text{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.impersonation-banner-title{align-items:center;gap:.6rem;font-size:.9rem;font-weight:700;display:flex}.impersonation-banner-meta{color:#ffffffeb;font-size:.78rem;font-weight:500}.impersonation-banner-detail{color:#ffffffe0;flex-wrap:wrap;gap:1rem;font-size:.74rem;display:flex}.impersonation-banner-reason{text-overflow:ellipsis;white-space:nowrap;max-width:32rem;overflow:hidden}.impersonation-banner-remaining{color:#fff;font-weight:600}.impersonation-banner-end{color:#fff;cursor:pointer;background:#ffffff2e;border:1px solid #fff6;border-radius:6px;flex-shrink:0;align-items:center;gap:.35rem;padding:.35rem .7rem;font-family:inherit;font-size:.78rem;transition:background .12s;display:inline-flex}.impersonation-banner-end:hover{background:#ffffff4d}.readonly-banner{color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:6px;align-items:flex-start;gap:.5rem;margin-bottom:1rem;padding:.6rem .85rem;font-size:.82rem;line-height:1.45;display:flex}.readonly-banner svg{color:#c2410c;flex:none;margin-top:.15rem}.tenant-detail-readonly .admin-danger-zone,.tenant-detail-readonly .contract-save-btn,.tenant-detail-readonly .tenant-detail-edit-bar,.tenant-detail-readonly .admin-grid-form button[type=submit],.tenant-detail-readonly .admin-grid-form .btn-primary:not(.tenant-impersonate-btn),.tenant-detail-readonly .tenant-detail-actions .btn-primary,.tenant-detail-readonly .tenant-detail-actions .btn-danger,.tenant-detail-readonly .admin-view-actions .btn-primary,.tenant-detail-readonly .admin-view-actions .btn-danger,.tenant-detail-readonly button[data-edit-action=delete],.tenant-detail-readonly button[data-edit-action=invite],.tenant-detail-readonly button[data-edit-action=create]{display:none!important}.tenant-detail-readonly .admin-grid-form input,.tenant-detail-readonly .admin-grid-form select,.tenant-detail-readonly .admin-grid-form textarea,.tenant-detail-readonly .form-input,.tenant-detail-readonly .select{pointer-events:none;background:var(--gray-50,#f8fafc);color:var(--gray-700);border-color:var(--gray-200)}.tenant-detail-readonly .form-checkbox input,.tenant-detail-readonly input[type=checkbox],.tenant-detail-readonly input[type=radio]{pointer-events:none;opacity:.55}@media (width<=720px){.impersonation-banner{gap:.5rem;padding:.45rem .7rem;font-size:.78rem}.impersonation-banner-icon{width:1.6rem;height:1.6rem}.impersonation-banner-icon svg{width:14px;height:14px}.impersonation-banner-title{flex-wrap:wrap;gap:.35rem;font-size:.82rem}.impersonation-banner-meta{text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.impersonation-banner-detail{display:none}.impersonation-banner-end{padding:.3rem .55rem;font-size:.72rem}.impersonation-banner-end svg{width:12px;height:12px}}.audit-toolbar{flex-wrap:wrap}.audit-filter{color:var(--gray-500);align-items:center;gap:.4rem;display:inline-flex}.audit-filter .select{padding:.3rem .55rem;font-size:.82rem}.audit-pill{white-space:nowrap;border:1px solid #0000;border-radius:999px;padding:.15rem .55rem;font-size:.7rem;font-weight:600;display:inline-block}.audit-pill-info{color:var(--navy-700);background:#eef2f8;border-color:#c7d2fe}.audit-pill-success{color:#065f46;background:#ecfdf5;border-color:#a7f3d0}.audit-pill-warn{color:#b45309;background:#fff7ed;border-color:#fed7aa}.audit-pill-danger{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.audit-actor{flex-direction:column;gap:.05rem;display:flex}.audit-actor-name{color:var(--navy-800);font-weight:600}.audit-actor-email{color:var(--gray-600);font-size:.74rem}.audit-summary{color:var(--gray-700);word-break:break-word;max-width:28rem;font-size:.78rem}.audit-table th:first-child,.audit-table td:first-child{white-space:nowrap}.contract-summary{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.contract-pill{color:var(--navy-700);background:#eef2f8;border:1px solid #c7d2fe;border-radius:999px;align-items:center;gap:.3rem;padding:.2rem .6rem;font-size:.74rem;font-weight:600;display:inline-flex}.contract-expiry{color:var(--navy-800);align-items:baseline;gap:.35rem;font-size:.82rem;font-weight:600;display:inline-flex}.contract-expiry-days{color:var(--gray-500);font-size:.72rem;font-weight:500}.contract-expiry.is-soon,.contract-expiry.is-soon .contract-expiry-days{color:#b45309}.contract-expiry.is-expired,.contract-expiry.is-expired .contract-expiry-days{color:#b91c1c}.contract-expiry-cell{align-items:baseline;gap:.3rem;font-size:.82rem;display:inline-flex}.contract-expiry-cell.is-soon{color:#b45309;font-weight:600}.contract-expiry-cell.is-expired{color:#b91c1c;font-weight:600}.contract-expiry-cell .contract-expiry-days{color:var(--gray-500);font-size:.72rem}.contract-expiry-cell.is-soon .contract-expiry-days,.contract-expiry-cell.is-expired .contract-expiry-days{color:inherit}.device-online,.device-offline{border:1px solid #0000;border-radius:999px;align-items:center;gap:.3rem;padding:.15rem .5rem;font-size:.74rem;font-weight:600;display:inline-flex}.device-online{color:#065f46;background:#ecfdf5;border-color:#a7f3d0}.device-offline{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.muted{color:var(--gray-500)}.contract-type-pill{letter-spacing:.02em;border:1px solid #0000;border-radius:999px;padding:.15rem .55rem;font-size:.74rem;font-weight:700;display:inline-block}.contract-type-pill.contract-type-subscription{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.contract-type-pill.contract-type-purchase{color:#b45309;background:#fff7ed;border-color:#fed7aa}.contract-type-pill.contract-type-demo{background:var(--gray-100,#f1f5f9);color:var(--gray-700);border-color:var(--gray-300)}.contract-type-pill.contract-type-typeless{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.contract-pill.contract-pill-ai{color:#6d28d9;background:#ede9fe;border-color:#c4b5fd;font-weight:700}.contract-pill.contract-pill-sm{margin-left:.4rem;padding:.05rem .4rem;font-size:.62rem}.admin-table th.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:color .12s,background .12s}.admin-table th.sortable-th:hover{color:var(--navy-800);background:var(--gray-100,#f1f5f9)}.admin-table th.sortable-th[aria-sort=ascending],.admin-table th.sortable-th[aria-sort=descending]{color:var(--navy-800)}.sort-indicator{vertical-align:middle;margin-left:.25rem}.sort-indicator.inactive{color:var(--gray-400);font-size:.7rem}.sort-indicator.active{color:var(--navy-700)}.tenant-detail-back{margin-bottom:.45rem}.tenant-detail-head{flex-wrap:wrap;align-items:baseline;gap:1rem;margin:0 0 .85rem;padding:0;display:flex}.tenant-impersonate-btn{align-self:center;margin-left:auto}.delete-tenant-status{background:#d977060f;border:1px solid #d97706;border-radius:6px;margin:0 0 1rem;padding:.7rem .9rem;font-size:.82rem;line-height:1.5}.delete-tenant-status p{margin:0}.delete-tenant-status p+p{margin-top:.35rem}.delete-tenant-foot{flex-wrap:wrap}.form-input.is-match{background:#15803d0a;border-color:#15803d}.form-input.is-mismatch{border-color:var(--danger);background:#cc00000a}.form-help.dim{color:var(--gray-500);letter-spacing:.01em;font-size:.74rem}.tenant-deactivated-pill{color:#b45309;background:#d977061a;border-radius:999px;align-items:center;gap:.3rem;margin-left:.4rem;padding:.1rem .5rem;font-size:.7rem;font-weight:600;display:inline-flex}.tenant-detail-title{color:var(--navy-800);margin:0;font-size:1.4rem;font-weight:700;line-height:1.2}.tenant-detail-id{color:var(--gray-500);white-space:nowrap;align-self:flex-end;font-size:.74rem;font-weight:500}.admin-tabs{border-bottom:1px solid var(--gray-200);flex-wrap:nowrap;gap:.25rem;margin-bottom:1rem;padding:0;display:flex;overflow-x:auto}.admin-tab-btn{color:var(--gray-600);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex-shrink:0;align-items:center;gap:.4rem;margin-bottom:-1px;padding:.55rem .85rem;font-family:inherit;font-size:.86rem;font-weight:600;transition:color .12s,border-color .12s;display:inline-flex}.admin-tab-btn:hover:not(.is-active){color:var(--navy-800)}.admin-tab-btn.is-active{color:var(--navy-800);border-bottom-color:var(--navy-700)}.admin-tab-count{background:var(--gray-100,#f1f5f9);color:var(--gray-600);text-align:center;border-radius:999px;min-width:1.2rem;padding:.05rem .4rem;font-size:.7rem;font-weight:700;display:inline-block}.admin-tab-btn.is-active .admin-tab-count{color:var(--navy-700);background:#eef2f8}.admin-section.admin-section-tab{margin-top:0}.admin-section.admin-section-tab+.admin-section.admin-section-tab{margin-top:1rem}.staff-category-pill{letter-spacing:.04em;white-space:nowrap;border:1px solid #0000;border-radius:999px;padding:.1rem .5rem;font-size:.7rem;font-weight:700;display:inline-block}.staff-category-pill.staff-category-system_admin{color:#92400e;background:#fef3c7;border-color:#fde68a}.admin-dashboard-view{flex-direction:column;gap:1.25rem;display:flex}.admin-dashboard-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.admin-dashboard-head .is-spinning{animation:1.2s linear infinite admin-dash-spin}@keyframes admin-dash-spin{to{transform:rotate(360deg)}}.admin-dash-stats{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem;display:grid}.admin-dash-stat-card{border:1px solid var(--gray-200);text-align:left;min-height:76px;color:inherit;cursor:default;background:#fff;border-radius:8px;align-items:center;gap:.85rem;padding:.85rem 1rem;font-family:inherit;display:flex}.admin-dash-stat-link{cursor:pointer;transition:border-color .1s,box-shadow .1s}.admin-dash-stat-link:hover{border-color:var(--navy-500);box-shadow:0 4px 12px #0f274414}.admin-dash-stat-icon{background:var(--gray-100);width:40px;height:40px;color:var(--navy-700);border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex}.admin-dash-stat-alert .admin-dash-stat-icon{color:#d97706;background:#fef3c7}.admin-dash-stat-body{flex-direction:column;flex:auto;gap:.1rem;min-width:0;display:flex}.admin-dash-stat-label{color:var(--gray-600);letter-spacing:.02em;font-size:.78rem;font-weight:600}.admin-dash-stat-value{color:var(--navy-800);font-variant-numeric:tabular-nums;font-size:1.55rem;font-weight:700;line-height:1.15}.admin-dash-stat-sub{font-size:.74rem}.admin-dash-stat-arrow{flex:none}.admin-dash-grid{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:1rem;display:grid}.admin-dash-panel{border:1px solid var(--gray-200);background:#fff;border-radius:8px;flex-direction:column;gap:.4rem;min-width:0;padding:.85rem 1rem 1rem;display:flex}.admin-dash-panel-head{border-bottom:1px dashed var(--gray-200);justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.25rem;padding-bottom:.5rem;display:flex}.admin-dash-panel-head h2{color:var(--navy-800);align-items:center;gap:.35rem;margin:0;font-size:.92rem;font-weight:700;display:inline-flex}.admin-dash-empty{text-align:center;padding:1.25rem .5rem;font-size:.85rem}.admin-dash-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.admin-dash-list-item{border-bottom:1px dashed var(--gray-200);cursor:default;align-items:center;gap:.55rem;padding:.55rem .4rem;font-size:.84rem;display:flex}.admin-dash-list-item:last-child{border-bottom:none}.admin-dash-list-clickable{cursor:pointer}.admin-dash-list-clickable:hover{background:var(--gray-50)}.admin-dash-list-main{flex-direction:column;flex:auto;gap:.1rem;min-width:0;display:flex}.admin-dash-list-title{color:var(--navy-800);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.admin-dash-list-sub{white-space:nowrap;text-overflow:ellipsis;font-size:.76rem;overflow:hidden}.admin-dash-list-time{white-space:nowrap;flex:none}.admin-dash-list-badge-num{text-align:center;background:var(--navy-700);color:#fff;font-variant-numeric:tabular-nums;border-radius:999px;flex:none;min-width:1.8rem;padding:.15rem .5rem;font-size:.92rem;font-weight:700}.alert-kind-pill{letter-spacing:.04em;white-space:nowrap;border-radius:999px;flex:none;padding:.12rem .5rem;font-size:.7rem;font-weight:700;display:inline-block}.alert-kind-pill.alert-kind-deviation-alert{color:#991b1b;background:#fee2e2;border:1px solid #fecaca}.alert-kind-pill.alert-kind-deviation-warn{color:#9a3412;background:#fff7ed;border:1px solid #fed7aa}.alert-kind-pill.alert-kind-offline{color:#3730a3;background:#e0e7ff;border:1px solid #c7d2fe}.alert-kind-pill.alert-kind-battery{color:#854d0e;background:#fef9c3;border:1px solid #fef08a}.badge-outline.is-soon{color:#9a3412;background:#fff7ed;border-color:#fed7aa}.badge-outline.is-expired{color:#991b1b;background:#fee2e2;border-color:#fecaca}@media (width<=720px){.admin-dash-stats,.admin-dash-grid{grid-template-columns:1fr}}.manual-admin-readonly .manual-tree-cat-actions,.manual-admin-readonly .manual-tree-page-actions{display:none!important}.staff-category-pill.staff-category-support{color:var(--navy-700);background:#eef2f8;border-color:#c7d2fe}.staff-category-pill.staff-category-sales{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.staff-category-pill.staff-category-email{background:var(--gray-100,#f1f5f9);color:var(--gray-600);border-color:var(--gray-300)}.form-row.form-row-wide{grid-column:1/-1}.prenotify-block{border:1px solid var(--gray-200);background:#f8fafc;border-radius:8px;padding:1rem}.prenotify-head{color:var(--navy-800);align-items:center;gap:.4rem;margin-bottom:.4rem;font-size:.86rem;display:inline-flex}.prenotify-desc{margin:0 0 .85rem;line-height:1.55}.prenotify-days-row{align-items:center;gap:.55rem;margin-bottom:.85rem;display:flex}.prenotify-days-row .form-label{margin:0}.prenotify-days-input{width:5rem}.prenotify-recipients{flex-direction:column;gap:.5rem;display:flex}.prenotify-empty{color:var(--gray-500);border:1px dashed var(--gray-300);background:#fff;border-radius:6px;padding:.6rem .85rem;font-size:.78rem}.recipient-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.recipient-item{border:1px solid var(--gray-200);background:#fff;border-radius:6px;align-items:center;gap:.55rem;padding:.4rem .6rem;font-size:.82rem;display:flex}.recipient-name{color:var(--navy-800);font-weight:600}.recipient-email{color:var(--gray-700);text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.recipient-remove{color:var(--gray-500);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:.2rem;display:inline-flex}.recipient-remove:hover{color:var(--danger);background:#fef2f2}.recipient-add{border-top:1px dashed var(--gray-200);flex-direction:column;gap:.4rem;margin-top:.4rem;padding-top:.6rem;display:flex}.recipient-add .select{font-size:.82rem}.recipient-add-email{gap:.4rem;display:flex}.recipient-add-email .form-input{flex:1}.admin-section-devices{padding:1rem 1rem 1.25rem}.admin-device-grid{overflow-x:auto}.admin-section-devices .device-table th.col-name,.admin-section-devices .device-table td.col-name{left:0}.admin-empty-block{border:1px dashed var(--gray-300);text-align:center;color:var(--gray-500);background:#fff;border-radius:6px;padding:1.25rem;font-size:.86rem}.unmatched-section{background:#fffaf0;border:1px solid #f4c98a}.unmatched-section .admin-section-head{flex-direction:column;align-items:flex-start;gap:.35rem}.unmatched-section .admin-section-head h2.unmatched-head-title{color:#92400e;white-space:nowrap}.unmatched-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.unmatched-row{border:1px solid var(--gray-200);background:#fff;border-radius:6px;justify-content:space-between;align-items:center;gap:.75rem;padding:.55rem .75rem;display:flex}.unmatched-row-main{flex-wrap:wrap;align-items:center;gap:.6rem;min-width:0;display:flex}.unmatched-deveui{color:var(--navy-800);letter-spacing:.04em;font-size:.86rem;font-weight:600}.unmatched-model{padding:.05rem .35rem;font-size:.7rem}.unmatched-meta{color:var(--gray-500);font-size:.78rem}.unmatched-row-actions{flex-shrink:0;gap:.4rem;display:flex}.integration-intro{color:var(--gray-700);margin:0 0 1rem;font-size:.86rem;line-height:1.6}.integration-intro code.mono{background:var(--gray-100);border-radius:4px;padding:.05rem .35rem;font-size:.8rem}.integration-grid{flex-direction:column;gap:1rem;margin-bottom:1.25rem;display:flex}.integration-row{flex-direction:column;gap:.4rem;display:flex}.integration-value-block{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.integration-value{background:var(--gray-100);border:1px solid var(--gray-200);word-break:break-all;border-radius:6px;flex:1;min-width:18rem;padding:.5rem .7rem;font-size:.84rem}.integration-secret{letter-spacing:.05em}.integration-events-head{color:var(--navy-800);margin:1.5rem 0 .6rem;font-size:.92rem}.integration-events-table{font-size:.84rem}.integration-events-table th{white-space:nowrap}.integration-events-table td{vertical-align:middle;white-space:nowrap}.integration-status{border:1px solid #0000;border-radius:999px;padding:.05rem .5rem;font-size:.74rem;font-weight:600;display:inline-block}.integration-status-pending{color:var(--gray-700);background:#f3f4f6;border-color:#e5e7eb}.integration-status-processed{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.integration-status-unmatched{color:#92400e;background:#fffaf0;border-color:#f4c98a}.integration-status-ignored{background:var(--gray-100);color:var(--gray-500);border-color:var(--gray-200);text-decoration:line-through}.raw-payload-dialog{width:760px;max-width:min(960px,92vw)}.raw-payload-body{flex-direction:column;gap:.6rem;max-height:70vh;display:flex}.raw-payload-meta{background:var(--gray-50,#f8fafc);border:1px solid var(--gray-200);border-radius:6px;flex-direction:column;gap:.2rem;padding:.5rem .7rem;font-size:.84rem;display:flex}.raw-payload-meta strong{color:var(--navy-800);font-weight:600}.raw-payload-json{background:var(--navy-800);color:#e2e8f0;white-space:pre;border-radius:6px;flex:1;max-height:50vh;margin:0;padding:.75rem .9rem;font-size:.78rem;line-height:1.5;overflow:auto}.integration-subtabs{border-bottom:1px solid var(--gray-200);gap:.25rem;margin:0 0 1rem;padding:0;display:flex;overflow-x:auto}.integration-subtab{color:var(--gray-600);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex-shrink:0;align-items:center;gap:.4rem;margin-bottom:-1px;padding:.45rem .85rem;font-family:inherit;font-size:.84rem;font-weight:600;transition:color .12s,border-color .12s;display:inline-flex}.integration-subtab:hover:not(.is-active){color:var(--navy-800)}.integration-subtab.is-active{color:var(--navy-800);border-bottom-color:var(--navy-700)}.integration-panel{flex-direction:column;gap:.85rem;display:flex}.integration-panel-head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.integration-future-block{padding:1.25rem 1.5rem}.integration-future-block strong{color:var(--navy-800);font-size:.95rem}.integration-input{flex:1;min-width:18rem;padding:.45rem .6rem;font-size:.84rem}.integration-save-row{border-top:1px solid var(--gray-100,#f1f5f9);align-items:center;gap:.7rem;padding-top:.5rem;display:flex}.integration-events-toolbar{background:var(--gray-50,#f8fafc);border:1px solid var(--gray-200);border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.5rem;padding:.5rem .7rem;display:flex}.integration-filter-group{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.form-label-inline{color:var(--gray-700);font-size:.78rem;font-weight:600}.integration-date-input{width:9.5rem;height:1.9rem;padding:.25rem .45rem;font-size:.82rem}.integration-page-info{align-items:center;gap:.5rem;display:flex}.integration-pagesize{height:1.9rem;padding:.2rem .4rem;font-size:.82rem}.integration-pager{justify-content:center;align-items:center;gap:.35rem;margin-top:.4rem;padding:.6rem 0;display:flex}.integration-pager-status{color:var(--gray-700);text-align:center;min-width:4.5rem;padding:0 .6rem;font-size:.82rem;font-weight:600}.form-input-static{background:var(--gray-50,#f8fafc);color:var(--gray-700);cursor:default;-webkit-user-select:text;user-select:text;align-items:center;min-height:2.05rem;display:flex}.manual-admin-view{flex-direction:column;height:100%;min-height:0;display:flex}.manual-admin-head{border-bottom:1px solid var(--gray-200);margin-bottom:.85rem;padding:0 0 .6rem}.manual-admin-title{color:var(--navy-800);align-items:center;gap:.5rem;margin:0 0 .2rem;font-size:1.25rem;display:flex}.manual-admin-sub{margin:0;font-size:.85rem}.manual-admin-body,.manual-view-body{flex:auto;gap:0;min-height:0;display:grid}.manual-admin-view,.manual-view{max-width:none!important}.manual-admin-body.is-dragging,.manual-view-body.is-dragging,.manual-admin-body.is-dragging *,.manual-view-body.is-dragging *{-webkit-user-select:none;user-select:none;cursor:col-resize!important}.manual-resizer{cursor:col-resize;background:0 0;align-self:stretch;position:relative}.manual-resizer:before{content:"";background:var(--gray-200);width:1px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.manual-resizer:hover:before,.manual-admin-body.is-dragging .manual-resizer:before,.manual-view-body.is-dragging .manual-resizer:before{background:var(--navy-500);width:3px;transition:background .1s}.manual-tree{border:1px solid var(--gray-200);background:#fff;border-radius:8px;padding:.5rem .5rem .75rem;overflow-y:auto}.manual-tree-head{border-bottom:1px dashed var(--gray-200);justify-content:space-between;align-items:center;margin-bottom:.4rem;padding:.3rem .4rem .55rem;display:flex}.manual-tree-title{color:var(--navy-800);font-size:.82rem;font-weight:700}.manual-tree-empty,.manual-tree-empty-sub{padding:.5rem .4rem;font-size:.82rem}.manual-tree-list{flex-direction:column;gap:.2rem;margin:0;padding:0;list-style:none;display:flex}.manual-tree-cat-row{border-radius:4px;justify-content:space-between;align-items:center;gap:.25rem;padding:.2rem .3rem;display:flex}.manual-tree-cat-row:hover{background:var(--gray-50)}.manual-tree-toggle{cursor:pointer;color:var(--navy-800);text-align:left;background:0 0;border:none;flex:auto;align-items:center;gap:.3rem;padding:.2rem .1rem;font-size:.88rem;font-weight:600;display:inline-flex}.manual-tree-cat-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.manual-tree-cat-actions,.manual-tree-page-actions{opacity:0;gap:.1rem;transition:opacity .1s;display:inline-flex}.manual-tree-cat-row:hover .manual-tree-cat-actions,.manual-tree-page:hover .manual-tree-page-actions{opacity:1}.icon-btn.danger{color:var(--danger,#c00)}.manual-tree-page-list{flex-direction:column;gap:.1rem;margin:.15rem 0 .25rem;padding-left:1.2rem;list-style:none;display:flex}.manual-tree-page{border-radius:4px;justify-content:space-between;align-items:center;gap:.25rem;display:flex}.manual-tree-page:hover{background:var(--gray-50)}.manual-tree-page-btn{text-align:left;color:var(--gray-800);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;flex:auto;padding:.25rem .4rem;font-size:.84rem;overflow:hidden}.manual-tree-page-btn.is-active{background:var(--navy-700);color:#fff;border-radius:4px;font-weight:600}.manual-content{border:1px solid var(--gray-200);background:#fff;border-radius:8px;flex-direction:column;gap:.6rem;min-height:26rem;padding:.85rem 1.1rem 1.2rem;display:flex}.manual-content-head{border-bottom:1px dashed var(--gray-200);align-items:center;gap:.6rem;padding-bottom:.5rem;display:flex}.manual-content-title-input{color:var(--navy-800);border:1px solid #0000;border-radius:4px;flex:auto;padding:.3rem .4rem;font-family:inherit;font-size:1.05rem;font-weight:700}.manual-content-title-input:hover,.manual-content-title-input:focus{border-color:var(--gray-300);outline:none}.manual-content-title{color:var(--navy-800);margin:0 0 .5rem;font-size:1.2rem}.manual-content-empty{text-align:center;padding:2rem .5rem}.manual-editor{flex:auto;min-height:18rem}.manual-editor .bn-container{min-height:18rem;font-family:inherit}.manual-editor-view .bn-editor{cursor:default}.manual-view{flex-direction:column;height:100%;min-height:0;display:flex}.manual-view-head{border-bottom:1px solid var(--gray-200);margin-bottom:.85rem;padding:0 0 .6rem}.manual-view-head h1{color:var(--navy-800);align-items:center;gap:.5rem;margin:0 0 .2rem;font-size:1.25rem;display:flex}.manual-view-sub{margin:0;font-size:.85rem}.nav-item-secondary{width:100%;margin:0 0 .4rem;font-weight:500}.admin-notif-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.admin-notif-item{padding:1rem 1.1rem}.admin-notif-head{align-items:center;gap:.6rem;margin-bottom:.4rem;display:flex}.admin-notif-head h4{color:var(--navy-800);margin:0;font-size:.95rem}.admin-notif-channels{flex-direction:column;gap:.3rem;margin:.6rem 0 0;padding:0;list-style:none;display:flex}.admin-notif-channel-row{border-top:1px dashed var(--gray-200);grid-template-columns:6em 1fr auto;align-items:center;gap:.6rem;padding:.35rem 0;display:grid}.admin-notif-channel-row:first-child{border-top:none}.admin-notif-target{white-space:nowrap;text-overflow:ellipsis;color:var(--gray-700);font-size:.85rem;overflow:hidden}.admin-page{padding:1.6rem 2rem}.admin-page-head{margin-bottom:1.4rem}.admin-page-title{color:var(--navy-800);align-items:center;gap:.5rem;margin:0 0 .4rem;font-size:1.25rem;display:flex}.admin-page-sub{margin:0;font-size:.85rem;line-height:1.6}.admin-card{border:1px solid var(--gray-200);background:#fff;border-radius:10px;padding:1.2rem 1.4rem;box-shadow:0 1px 2px #00000008}.test-data-form .form-row{margin-bottom:1rem}.test-data-form .form-row-inline{gap:1rem;display:flex}.test-data-form .form-col{flex:1}.test-data-scenario-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.6rem;margin-top:.4rem;display:grid}.test-data-scenario-card{border:1px solid var(--gray-300);cursor:pointer;background:#fff;border-radius:8px;align-items:flex-start;gap:.6rem;padding:.7rem .9rem;display:flex}.test-data-scenario-card.is-active{border-color:var(--navy-700);background:#f4f7fb}.test-data-scenario-card input[type=radio]{margin-top:.2rem}.test-data-scenario-text{flex-direction:column;gap:.2rem;display:flex}.test-data-scenario-label{color:var(--navy-800);font-weight:600}.test-data-scenario-desc{font-size:.8rem;line-height:1.4}.test-data-actions{gap:.6rem;margin-top:.6rem;display:flex}.test-data-result{background:var(--gray-50);border:1px solid var(--gray-200);white-space:pre-wrap;word-break:break-all;border-radius:6px;max-height:220px;margin-top:1rem;padding:.8rem 1rem;font-size:.78rem;line-height:1.5;overflow:auto}.checkbox-row{align-items:center;gap:.5rem;font-size:.9rem;display:flex}.spin{animation:1s linear infinite spin}.test-data-disabled{text-align:center;flex-direction:column;align-items:center;gap:.8rem;padding:2.4rem 1.6rem;display:flex}.test-data-disabled-icon{color:var(--danger)}.test-data-danger{color:var(--danger);border-color:var(--danger)}.test-data-csv-warn{color:#92400e;background:#fff7ed;border:1px solid #f59e0b;border-radius:6px;align-items:flex-start;gap:.4rem;margin:.4rem 0;padding:.5rem .7rem;font-size:.85rem;display:flex}.test-data-csv-warn details summary{cursor:pointer}.test-data-csv-warn ul{color:#7c2d12;margin:.4rem 0 0;padding-left:1rem;font-size:.78rem}
