:root{--navy:#1f3864;--navy-light:#2e5395;--bg:#f4f6f9;--card:#fff;--border:#e1e5eb;--text:#1a1a1a;--muted:#6b7280;--green:#1e7b34;--amber:#b7791f;--red:#b42318;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text)}button{font:inherit;cursor:pointer}.app-shell{background:var(--bg);flex-direction:column;max-width:480px;min-height:100vh;margin:0 auto;display:flex}@media (width>=820px){.app-shell.wide{max-width:none}}.sticky-header{z-index:50;position:sticky;top:0}.topbar{background:var(--navy);color:#fff;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.topbar h1{margin:0;font-size:17px}.topbar .sub{opacity:.8;font-size:12px}.hamburger-btn{background:#ffffff26;border:none;border-radius:8px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;width:34px;height:34px;margin-top:1px;display:flex}.hamburger-btn span{background:#fff;border-radius:2px;width:16px;height:2px;display:block}.sidebar-backdrop{z-index:199;background:#0006;position:fixed;inset:0}.sidebar-panel{z-index:200;background:#fff;width:78%;max-width:300px;padding:10px 0;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-2px 0 12px #00000026}.sidebar-panel-header{color:var(--navy);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:6px;padding:10px 16px 14px;font-size:15px;font-weight:700;display:flex}.sidebar-close-btn{color:var(--muted);background:0 0;border:none;padding:4px;font-size:16px}.sidebar-nav-btn{text-align:left;width:100%;color:var(--text);background:0 0;border:none;padding:12px 16px;font-size:14px;font-weight:600;display:block}.sidebar-nav-btn.active{color:var(--navy);background:#eef1f6}.topbar button{color:#fff;background:#ffffff26;border:none;border-radius:8px;padding:8px 12px;font-size:13px}.content{padding:14px;padding-bottom:calc(90px + env(safe-area-inset-bottom,0px));flex:1}.sync-banner{color:var(--amber);text-align:center;background:#fef3e2;border-bottom:1px solid #fbd9a5;padding:8px 14px;font-size:13px}.sync-banner.offline{color:var(--red);background:#fde8e7;border-color:#f5b5b1}.sync-banner.sync-banner-error{color:var(--red);text-align:left;background:#fde8e7;border-color:#f5b5b1}.sync-banner.sync-banner-warn{text-align:left}.sync-banner-btn{color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:6px;flex-shrink:0;padding:3px 9px;font-size:12px;font-weight:600}.sync-banner-btn:disabled{opacity:.6;cursor:default}.sync-banner-list{color:var(--text);margin:8px 0 0;padding:0;font-size:12.5px;list-style:none}.sync-banner-list li{border-top:1px solid #f5b5b1;align-items:flex-start;gap:8px;padding:5px 0;display:flex}.sync-banner-x{color:var(--muted);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:0 2px;font-size:14px}.preload-strip{background:var(--border);width:100%;height:3px;overflow:hidden}.preload-strip-fill{height:100%;transition:width .4s,background .4s}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;margin-bottom:12px;padding:14px;box-shadow:0 1px 2px #00000008}.card.urgent{border-left:4px solid var(--red)}.card-title{margin-bottom:4px;font-size:16px;font-weight:600}.card-row{color:var(--muted);margin-bottom:2px;font-size:13.5px}.status-badge{border-radius:20px;margin-top:6px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.status-planned{color:var(--muted);background:#e7eaf0}.status-in_progress{color:#1d5dab;background:#dcebff}.status-accepted{color:var(--green);background:#e1f3e5}.status-accepted_with_remarks{color:var(--amber);background:#fdf1da}.status-rejected{color:var(--red);background:#fbe1df}.status-cancelled{color:#6b7280;background:#ececec}.btn{text-align:center;border:none;border-radius:10px;width:100%;margin-bottom:10px;padding:14px;font-size:16px;font-weight:600;display:block}.btn-primary{background:var(--navy);color:#fff}.btn-primary:disabled{background:#a9b4c6}.btn-secondary{color:var(--navy);border:1.5px solid var(--navy);background:#fff}.btn-danger{background:var(--red);color:#fff}.btn-outline{border:1.5px dashed var(--navy-light);color:var(--navy-light);background:0 0}.btn-floor-complete{color:#fff;background:#ff9800;border:1.5px solid #ff9800;font-weight:600}.btn-floor-complete:disabled{background:#ffd599;border-color:#ffd599}.btn-complete-inspection{color:#fff;background:#4caf6d;border:1.5px solid #4caf6d;font-weight:600}.btn-complete-inspection:disabled{background:#b7dfc4;border-color:#b7dfc4}.btn-sm{width:auto;padding:8px 12px;font-size:13px;display:inline-block}.btn-xs{width:auto;padding:5px 9px;font-size:12px;display:inline-block}.apt-excel-progress{text-align:center;cursor:default;position:relative;overflow:hidden}.apt-excel-progress-fill{background:#4caf7d99;width:0;transition:width .2s linear;position:absolute;inset:0}.apt-excel-progress-label{z-index:1;position:relative}.apt-excel-progress-ready{cursor:pointer;border-color:#4caf7d}.apt-excel-progress-ready .apt-excel-progress-fill{background:#4caf7d}.apt-excel-progress-ready .apt-excel-progress-label{color:#fff;font-weight:700}.btn-cancel-start{color:#1a1a1a;background:#fde68a;border:1.5px solid #fde68a;font-weight:600}.btn-result-accepted{color:var(--green);background:#e1f3e5;border:1.5px solid #bee3c5}.btn-result-remarks{color:var(--amber);background:#fdf1da;border:1.5px solid #f6dba5}.btn-result-rejected{color:var(--red);background:#fbe1df;border:1.5px solid #f3bdb8}.field{margin-bottom:14px}.field label{color:var(--muted);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.field input,.field select,.field textarea{border:1.5px solid var(--border);background:#fff;border-radius:8px;width:100%;padding:12px;font-size:16px}.field textarea{resize:vertical;min-height:80px}.chip{background:#eef1f6;border-radius:20px;align-items:center;gap:6px;margin:3px 4px 3px 0;padding:6px 12px;font-size:13px;display:inline-flex}.chip.selected{background:var(--navy);color:#fff}.photo-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0;display:grid}.photo-grid img{aspect-ratio:1;object-fit:cover;border:1px solid var(--border);border-radius:8px;width:100%}.photo-grid-item{flex-direction:column;display:flex}.photo-grid-item-marked img{border:2px solid var(--navy-light)}.photo-grid-caption{text-align:center;color:var(--muted);text-transform:uppercase;letter-spacing:.02em;margin-top:2px;font-size:10.5px}.defect-item{border:1px solid var(--border);background:#fafbfc;border-radius:10px;margin-bottom:8px;padding:10px}.defect-item .desc{margin-bottom:6px;font-size:14px}.defect-row{border:1px solid var(--border);background:#fafbfc;border-radius:10px;grid-template-columns:1fr auto;align-items:start;gap:10px;margin-bottom:8px;padding:10px;display:grid}.defect-num{color:var(--navy);margin-right:6px;font-weight:700}.defect-text{font-size:14px}.defect-photos{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.defect-photos img{object-fit:cover;border:1px solid var(--border);border-radius:8px;width:96px;height:96px}.defect-actions{grid-column:1/-1;gap:8px;margin-top:4px;display:flex}.defect-actions button{flex:1;margin-top:0}.btn-edit-wide{background:var(--navy);color:#fff;border:none;border-radius:10px;width:100%;margin-top:0;padding:12px;font-size:14px;font-weight:600;display:block}.attach-row-wide .attach-btn,.attach-row-wide button{padding:12px 4px;font-size:14px}.empty-state{text-align:center;color:var(--muted);padding:40px 20px;font-size:14px}.error-msg{color:var(--red);white-space:pre-line;background:#fbe1df;border-radius:8px;margin-bottom:12px;padding:10px 12px;font-size:13.5px}.tabbar{border-top:1px solid var(--border);background:#fff;width:100%;max-width:480px;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tabbar button{color:var(--muted);background:0 0;border:none;flex:1;padding:12px 4px;font-size:12px}.tabbar button.active{color:var(--navy);font-weight:700}.timer{color:var(--navy);text-align:center;margin:6px 0 14px;font-size:22px;font-weight:700}.section-title{color:var(--navy);margin:18px 0 8px;font-size:14px;font-weight:700}.attach-row{gap:8px;margin-top:8px;display:flex}.attach-btn{text-align:center;border:1.5px solid #0000;border-radius:8px;flex:1;padding:7px 4px;font-size:12px;font-weight:600;line-height:1.3}.attach-btn .sub{opacity:.85;font-size:10px;font-weight:500;display:block}.attach-neutral{color:var(--muted);border-color:var(--border);background:#eef1f6}.attach-green{color:var(--green);background:#e1f3e5;border-color:#bee3c5}.attach-amber{color:var(--amber);background:#fdf1da;border-color:#f6dba5}.attach-red{color:var(--red);background:#fbe1df;border-color:#f3bdb8}.urgent-flag{color:var(--red);margin-right:4px}.app-version-footer{text-align:center;color:var(--muted);justify-content:center;align-items:center;gap:6px;margin-bottom:76px;padding:12px 0 20px;font-size:11px;display:flex}.footer-logo{opacity:.85;width:auto;height:16px}.scroll-top-btn{background:var(--navy);color:#fff;z-index:60;border:none;border-radius:50%;justify-content:center;align-items:center;width:46px;height:46px;font-size:20px;line-height:1;display:flex;position:fixed;bottom:84px;right:16px;box-shadow:0 3px 10px #00000047}.bottom-nav{z-index:100;border-top:1px solid var(--border);width:100%;max-width:480px;padding:6px 10px calc(6px + env(safe-area-inset-bottom,0px));background:#fff;justify-content:space-between;align-items:center;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -2px 10px #0000000f}.bottom-nav-btn{color:var(--muted);background:0 0;border:none;border-radius:10px;flex:1;justify-content:center;align-items:center;padding:8px 0;display:flex}.bottom-nav-btn.active{color:var(--navy);background:#eef1f6}.bottom-nav-fab{background:var(--navy);color:#fff;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:50px;height:50px;margin:0 6px;display:flex;box-shadow:0 3px 10px #1f386466}.tz-status-row{gap:8px;margin-top:10px;display:flex}.tz-status-row .btn{flex:1;margin-bottom:0;padding:10px;font-size:13px}.pick-grid{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.pick-btn{border:1.5px solid var(--border);text-align:center;color:var(--text);background:#fff;border-radius:10px;flex-direction:column;flex:46%;align-items:center;padding:12px 8px;font-size:14px;display:flex}.pick-btn.selected{background:var(--navy);color:#fff;border-color:var(--navy)}.pick-btn-sub{color:var(--muted);margin-top:2px;font-size:11px}.pick-btn.selected .pick-btn-sub{color:#ffffffbf}.pick-grid-floors .pick-btn{flex:15%;padding:9px 2px;font-size:12.5px}.pick-btn-sm{padding:9px 4px;font-size:13px}.time-grid button{border:1.5px solid var(--border);color:var(--text);background:#fff;border-radius:8px;padding:8px 2px;font-size:12px}.time-grid button.selected{background:var(--navy);color:#fff;border-color:var(--navy)}.recent-scroll{gap:10px;margin-bottom:16px;padding-bottom:6px;display:flex;overflow-x:auto}.recent-card{border:1px solid var(--border);background:#fff;border-radius:10px;flex-shrink:0;width:200px;padding:10px}.recent-card .t{margin-bottom:4px;font-size:13px;font-weight:600}.recent-card .s{color:var(--muted);margin-bottom:6px;font-size:11.5px}.top-icon-nav{border-bottom:1px solid var(--border);background:#fff;align-items:flex-start;gap:2px;padding:8px 4px 6px;display:flex;overflow-x:auto}.top-icon-nav-btn.icon-only{flex:0 0 38px;min-width:38px}@media (width<=420px){.top-icon-nav-label{letter-spacing:-.2px;font-size:9.5px}}.top-icon-nav-btn{min-width:44px;color:var(--muted);background:0 0;border:none;flex-direction:column;flex:1 1 0;align-items:center;gap:3px;padding:4px 2px;display:flex}.top-icon-nav-icon{border-radius:10px;justify-content:center;align-items:center;width:34px;height:28px;display:flex}.top-icon-nav-btn.active{color:var(--navy)}.top-icon-nav-btn.active .top-icon-nav-icon{background:#eef1f6}.top-icon-nav-label{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:10.5px;font-weight:600;overflow:hidden}.top-icon-nav-icon{position:relative}.top-icon-nav-badge{color:#fff;text-align:center;background:#d92d20;border-radius:9px;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px;position:absolute;top:-4px;right:-6px;box-shadow:0 0 0 2px #fff}@keyframes calls-ring-fill{0%,to{color:inherit;background:0 0}15%{color:var(--red);background:#fbe1df}34%{color:inherit;background:0 0}}@keyframes calls-ring-shake{0%,34%,to{transform:rotate(0)}4%{transform:rotate(-18deg)}8%{transform:rotate(16deg)}12%{transform:rotate(-14deg)}16%{transform:rotate(12deg)}20%{transform:rotate(-8deg)}24%{transform:rotate(6deg)}28%{transform:rotate(-3deg)}}.top-icon-nav-btn.ringing .top-icon-nav-icon{animation:3s ease-in-out infinite calls-ring-fill}.top-icon-nav-btn.ringing .top-icon-nav-icon svg{transform-origin:50% 55%;animation:3s ease-in-out infinite calls-ring-shake}.locked-note{color:var(--muted);margin:4px 0 10px;font-size:12px;font-style:italic}.status-filter-bar{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.status-filter-btn{border:1.5px solid var(--border);color:var(--muted);background:#fff;border-radius:20px;padding:6px 10px;font-size:11.5px;font-weight:600}.status-filter-btn.active{color:#fff;border-color:#0000}.status-filter-btn.f-planned.active{background:#8a94a6}.status-filter-btn.f-in_progress.active{background:#1d5dab}.status-filter-btn.f-pending_approval.active{background:#b7791f}.status-filter-btn.f-accepted.active{background:#1e7b34}.status-filter-btn.f-accepted_with_remarks.active{background:#d98324}.status-filter-btn.f-rejected.active{background:#c1352b}.status-filter-btn.f-partially_accepted.active{background:#7c5cbf}.status-vivid{color:#fff!important}.sunday-warning-badge{background:#fef0c7;color:var(--red)!important}.status-vivid.status-planned{background:#8a94a6}.status-vivid.status-in_progress{background:#1d5dab}.status-vivid.status-pending_approval{background:#b7791f}.status-vivid.status-accepted{background:#1e7b34}.status-vivid.status-accepted_with_remarks{background:#d98324}.status-vivid.status-partially_accepted{background:#7c5cbf}.status-vivid.status-rejected{background:#c1352b}.status-vivid.status-cancelled{background:#6b7280}.stats-bar{gap:8px;margin-bottom:14px;display:flex;overflow-x:auto}.stats-chip{border:1px solid var(--border);text-align:center;background:#fff;border-radius:10px;flex-shrink:0;min-width:68px;padding:8px 12px}.stats-chip .num{color:var(--navy);font-size:18px;font-weight:700;display:block}.stats-chip .lbl{color:var(--muted);font-size:10.5px}.verified-check{color:#1e9e5a;margin-left:4px}.verified-check-negative{color:var(--red);font-size:12px}.defect-status-badge{white-space:nowrap;border-radius:20px;flex-shrink:0;padding:3px 8px;font-size:11px;font-weight:600;display:inline-block}.defect-status-open{color:var(--red);background:#fcebeb}.defect-status-review{color:#b54708;background:#fef0c7}.defect-status-fixed{color:#0f6e56;background:#e1f5ee}.floor-switch-grid{flex-wrap:wrap;gap:10px;margin:10px 0 16px;display:flex}.floor-switch-btn{border:1.5px solid var(--border);text-align:center;background:#fff;border-radius:12px;flex:46%;padding:14px 10px;font-size:14px;font-weight:600}.floor-switch-btn.done{color:var(--green);background:#f2fbf3;border-color:#bee3c5}.floor-switch-btn.current{border-color:var(--navy);background:var(--navy);color:#fff}.top-floor-attach-list{flex-direction:column;gap:10px;margin:10px 0 4px;display:flex}.top-floor-attach-label{margin-bottom:4px;font-size:13px}.top-floor-attach-buttons{gap:8px;display:flex}.top-floor-attach-buttons .attach-btn{flex:1;padding:5px 4px;font-size:13px}.time-grid{grid-template-columns:repeat(10,1fr);gap:5px;margin-bottom:10px;display:grid}.time-btn{border:1px solid var(--border);background:#fff;border-radius:6px;padding:7px 2px;font-size:11px}.time-btn.selected{background:var(--navy);color:#fff;border-color:var(--navy)}.time-grid-compact{grid-template-columns:repeat(6,1fr);gap:4px}.time-grid-compact .time-btn{padding:6px 1px;font-size:10.5px}.recent-card:active{background:#eef1f6}.field-error{color:var(--red);margin-top:-2px;margin-bottom:8px;font-size:13px}.floor-result-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 0;font-size:13.5px;display:flex}.floor-result-row:last-child{border-bottom:none}.floor-block{border:1.5px solid var(--border);border-radius:14px;margin-bottom:16px;padding:14px}.floor-block-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.field textarea.defect-textarea{border:1.5px solid var(--border);border-radius:8px;width:100%;min-height:90px;padding:12px;font-size:16px}.defect-textarea{border:1.5px solid var(--border);box-sizing:border-box;border-radius:8px;width:100%;min-height:90px;margin-bottom:10px;padding:12px;font-size:16px}.btn-delete-wide{background:var(--red);color:#fff;border:none;border-radius:10px;width:100%;margin-top:8px;padding:12px;font-size:14px;font-weight:600;display:block}.small-manage-btn{padding:5px 10px;font-size:12px}.tz-picker-row{align-items:center;gap:8px;margin-top:8px;display:flex}input.date-input,input[type=date]{text-align:center;color:var(--navy);font-size:18px;font-weight:600}input.date-input::-webkit-datetime-edit{text-align:center}input[type=date]::-webkit-datetime-edit{text-align:center}.pick-btn-contractor{flex-direction:column;justify-content:center;gap:2px;min-height:0;padding:6px 8px;line-height:1.25}.pick-btn-contractor .pick-btn-sub{margin-top:1px;font-size:10px}.bell-btn{color:#fff;background:#ffffff26;border:none;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;display:flex;position:relative}.bell-badge{background:var(--red);color:#fff;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 3px;font-size:10px;font-weight:700;line-height:1;display:flex;position:absolute;top:-4px;right:-4px}.notif-panel{z-index:200;background:#fff;width:82%;max-width:340px;padding:10px 0;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-2px 0 12px #00000026}.notif-list{padding:4px 0}.notif-item{border-bottom:1px solid var(--border);cursor:pointer;padding:12px 16px}.notif-item.unread{background:#f2f5fa}.notif-item-title{color:var(--navy);align-items:center;gap:6px;font-size:13.5px;font-weight:600;display:flex}.notif-item-count{background:var(--navy);color:#fff;border-radius:8px;padding:1px 6px;font-size:10.5px;font-weight:700}.notif-item-body{color:var(--muted);margin-top:3px;font-size:12px}.notif-setting-row{border:1.5px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;padding:12px;display:flex}.notif-setting-row .ns-label{flex:1;font-size:13.5px;font-weight:600}.notif-setting-row .ns-interval{color:var(--muted);align-items:center;gap:6px;font-size:12.5px;display:flex}.notif-setting-row .ns-interval input{text-align:center;width:56px}.worktree-fullscreen{z-index:500;background:var(--bg);flex-direction:column;display:flex;position:fixed;inset:0}.worktree-fullscreen-header{background:var(--navy);color:#fff;flex-shrink:0;align-items:center;gap:12px;padding:12px 16px;display:flex}.worktree-fullscreen-header h1{flex:1;margin:0;font-size:16px}.worktree-fullscreen-header button{color:#fff;background:#ffffff26;border:none;border-radius:8px;padding:8px 12px;font-size:13px}.worktree-fullscreen-toolbar{flex-shrink:0;gap:8px;padding:10px 16px;display:flex}.worktree-fullscreen-viewport{touch-action:none;cursor:grab;background:#fff;flex:1;position:relative;overflow:hidden}.worktree-fullscreen-viewport:active{cursor:grabbing}.worktree-fullscreen-viewport .worktree-world{will-change:transform}.search-suggestions{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.search-suggestion-btn{text-align:left;border:1.5px solid var(--border);color:var(--navy);background:#eef1f6;border-radius:8px;padding:9px 12px;font-size:13.5px}.search-suggestion-btn:active{background:#e1e6ef}.recent-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.recent-close-btn{color:var(--muted);background:0 0;border:none;padding:0 4px;font-size:20px;line-height:1}.worktypes-example-box{border:1.5px solid var(--border);background:#f9fafb;border-radius:10px;margin-bottom:16px;padding:10px 12px}.worktypes-example-title{color:var(--navy);margin-bottom:6px;font-size:12px;font-weight:700}.worktypes-example-row{color:var(--muted);margin-bottom:6px;font-size:11.5px;line-height:1.5}.worktypes-example-row:last-child{margin-bottom:0}.worktypes-filename-preview{color:var(--muted);margin-top:6px;font-size:12px}.worktree-viewport{border:1.5px solid var(--border);touch-action:none;cursor:grab;background:#fff;border-radius:12px;height:65vh;position:relative;overflow:hidden}.worktree-viewport:active{cursor:grabbing}.worktree-world{transform-origin:0 0;position:absolute;top:0;left:0}.worktree-lines{pointer-events:none;position:absolute;top:0;left:0}.worktree-node{border:1.5px solid var(--border);background:#fff;border-radius:8px;padding:6px 10px;font-size:12.5px;position:absolute;box-shadow:0 1px 2px #0000000d}.worktree-node-lvl0{border-color:var(--navy);background:var(--navy);color:#fff;font-weight:700}.worktree-node-lvl1{border-color:var(--navy-light);font-weight:600}.worktree-node-lvl2{background:#f9fafb}.worktree-node-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.lab-layer-row{gap:8px;margin-bottom:12px;display:flex}.lab-zone-chip{border:1.5px solid var(--border);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:4px;padding:4px 4px 4px 12px;font-size:12.5px;line-height:1.5;display:inline-flex}.lab-zone-chip.selected{border-color:var(--navy);color:var(--navy);background:#eef1f6;font-weight:600}.lab-zone-chip-del{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:3px 7px;font-size:11px}.lab-zone-chip-del:hover{color:var(--red);background:#fbe1df}.lab-point-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:7px 4px;font-size:13px;display:flex}.lab-point-row:last-child{border-bottom:none}.lab-point-num{color:var(--navy);cursor:pointer;min-width:44px;font-weight:700}.lab-point-elev{color:var(--muted);cursor:pointer;flex:1}.lab-inline-input{border:1.5px solid var(--navy-light);border-radius:6px;width:72px;padding:3px 6px;font-size:13px}.lab-point-del{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:13px}.lab-point-del:hover{color:var(--red)}.lab-canvas-wrap{border:1.5px solid var(--border);background:#edeff3;border-radius:10px;width:100%;height:60vh;min-height:360px;position:relative;overflow:hidden}.lab-canvas{position:absolute;inset:0}.lab-overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.lab-zone-photo-thumb{object-fit:cover;border-radius:8px;width:60px;height:60px}.lab-plan-loader{z-index:5;pointer-events:none;background:#edeff38c;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.lab-plan-loader-ring{width:72px;height:72px;position:relative}.lab-plan-loader-ring svg{width:100%;height:100%}.lab-plan-loader-pct{color:var(--navy);justify-content:center;align-items:center;font-size:15px;font-weight:700;display:flex;position:absolute;inset:0}.lab-canvas-toolbar{z-index:6;flex-wrap:wrap;gap:6px;display:flex;position:absolute;bottom:8px;left:8px}.lab-canvas-toolbar .btn{box-shadow:0 1px 6px #00000040}.worktree-node-subtitle{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:10.5px;overflow:hidden}.lab-plan-history-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:7px 2px;font-size:12.5px;display:flex}.lab-plan-history-row:last-child{border-bottom:none}.storage-toolbar{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:14px;display:flex}.storage-toolbar .field{min-width:150px;margin-bottom:0}.storage-view-toggle{gap:4px;margin-left:auto;display:flex}.storage-view-toggle button{border:1.5px solid var(--border);width:32px;height:32px;color:var(--muted);cursor:pointer;background:#fff;border-radius:8px;justify-content:center;align-items:center;display:flex}.storage-view-toggle button.active{border-color:var(--navy);color:var(--navy);background:#eef1f6}.storage-summary{color:var(--muted);margin-bottom:10px;font-size:12.5px}.storage-grid{gap:10px;display:grid}.storage-grid.size-small{grid-template-columns:repeat(auto-fill,minmax(90px,1fr))}.storage-grid.size-large{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.storage-tile{flex-direction:column;gap:4px;display:flex;position:relative}.storage-tile-img-wrap{aspect-ratio:1;border:1px solid var(--border);background:#edeff3;border-radius:8px;width:100%;position:relative;overflow:hidden}.storage-tile-img-wrap img{object-fit:cover;cursor:pointer;width:100%;height:100%;display:block}.storage-tile-archived{opacity:.55}.storage-tile-del{color:#fff;cursor:pointer;background:#0000008c;border:none;border-radius:999px;width:22px;height:22px;font-size:12px;line-height:1;position:absolute;top:4px;right:4px}.storage-tile-caption{color:var(--muted);font-size:10.5px;line-height:1.3}.storage-tile-caption a{color:var(--navy);text-decoration:none}.storage-tile-caption a:hover{text-decoration:underline}.storage-list-row{border-bottom:1px solid var(--border);grid-template-columns:44px 1fr auto auto;align-items:center;gap:10px;padding:8px 4px;font-size:12.5px;display:grid}.storage-list-row img{object-fit:cover;cursor:pointer;border-radius:6px;width:44px;height:44px}.storage-list-row-info a{color:var(--navy);text-decoration:none}.storage-list-row-info a:hover{text-decoration:underline}.storage-pagination{justify-content:center;align-items:center;gap:12px;margin-top:14px;display:flex}.apt-card{cursor:pointer}.apt-card:active{background:#f8f9fc}.apt-card-online-row{cursor:pointer;flex-shrink:0;gap:5px;width:fit-content;margin-left:auto;display:flex}.apt-card-online-avatar{color:#fff;border:1.5px solid #fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:9.5px;font-weight:700;display:flex;box-shadow:0 0 0 1px #00000014}.apt-card-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.apt-card-meta{color:var(--muted);margin-top:4px;font-size:12.5px}.apt-search-row{margin-bottom:10px}.apt-search{border:1.5px solid var(--border);background:#fff;border-radius:8px;width:100%;padding:11px 12px;font-size:16px}.apt-form-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.apt-badge{white-space:nowrap;border-radius:20px;flex-shrink:0;padding:3px 10px;font-size:11.5px;font-weight:700;display:inline-block}.apt-badge-in_progress{color:#1d5dab;background:#dcebff}.apt-badge-accepted{color:var(--green);background:#e1f3e5}.apt-badge-accepted_with_remarks{color:var(--amber);background:#fdf1da}.apt-badge-rejected{color:var(--red);background:#fbe1df}.apt-pill-row{align-items:center;gap:6px;margin-top:8px;display:flex}.apt-pill-row-sections{flex-wrap:wrap;gap:6px;display:flex}.apt-pill{white-space:nowrap;border-radius:20px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-block;position:relative}.apt-pill-ready{color:var(--green);background:#e1f3e5}.apt-pill-remarks{color:var(--amber);background:#fdf1da}.apt-pill-not_ready{color:var(--muted);background:#e7eaf0}@property --apt-trail-angle{syntax:"<angle>";inherits:false;initial-value:0deg}.apt-pill-trail:before{content:"";border-radius:inherit;background:conic-gradient(from var(--apt-trail-angle), transparent 0deg, transparent 250deg, #8fb6f2 320deg, #2e6fd9 345deg, transparent 360deg);-webkit-mask-composite:xor;pointer-events:none;padding:2px;animation:2.4s linear infinite apt-pill-trail-spin;position:absolute;inset:-3px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}@keyframes apt-pill-trail-spin{to{--apt-trail-angle:360deg}}.status-trail{position:relative}.status-badge.status-trail{margin-top:8px}.insp-online-avatar{align-self:center;width:28px;height:28px;font-size:10.5px}.insp-okk-card{padding:10px 12px 8px}.insp-okk-table{table-layout:fixed;margin-top:0}.insp-okk-table th,.insp-okk-table td{padding:5px 2px}.insp-okk-table .insp-okk-th-name{width:27%}.insp-okk-table .insp-okk-rot{vertical-align:bottom;width:11%;height:64px;padding:0;overflow:visible}.insp-okk-table .insp-okk-rot>div{transform-origin:0 100%;white-space:nowrap;text-align:left;width:22px;margin:0 auto 4px;font-size:10.5px;transform:translate(4px,-2px)rotate(-60deg)}.insp-okk-table .insp-okk-th-pct{vertical-align:bottom;width:27%;font-size:10.5px}.insp-okk-name{font:inherit;color:var(--navy);cursor:pointer;text-align:left;text-overflow:ellipsis;background:0 0;border:none;border-radius:6px;max-width:100%;padding:2px 4px;font-weight:700;overflow:hidden}.insp-okk-name.active{background:var(--navy);color:#fff}.insp-okk-note{color:var(--muted);margin-top:6px;font-size:11px}.apt-progress{background:var(--border);border-radius:4px;height:6px;margin-top:8px;overflow:hidden}.apt-progress-fill{background:var(--navy-light);border-radius:4px;height:100%;transition:width .3s}.apt-head-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.apt-head-actions .btn{margin-bottom:0}.apt-tabs{grid-template-columns:repeat(4,1fr);gap:6px;margin:4px 0 14px;display:grid}.apt-tab{border:1.5px solid var(--border);color:var(--muted);background:#fff;border-radius:10px;flex-direction:column;align-items:center;gap:1px;padding:8px 2px 7px;display:flex;position:relative}.apt-tab-name{font-size:12px;font-weight:700}.apt-tab-count{font-size:11px}.apt-tab-ready{background:var(--green);border-color:var(--green);color:#fff}.apt-tab-remarks{background:var(--red);border-color:var(--red);color:#fff}.apt-tab-not_ready{color:#4b5563;background:#e7eaf0;border-color:#c5cbd6}.apt-tab.active{outline:2px solid var(--navy);outline-offset:1px}.apt-tab-frame{border:1.5px solid var(--border);border-radius:12px;flex-direction:column;gap:4px;padding:4px;display:flex}.apt-tab-frame .apt-tab{border:none;border-radius:8px}.apt-tab-status-line{text-align:center;color:var(--muted);padding-bottom:2px;font-size:10.5px}.apt-tab-frame-progress{border:3px solid var(--amber)}.apt-tab-status-line-progress{color:var(--amber);font-weight:700}.apt-section-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.apt-group-title{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:16px 2px 8px;font-size:12px;font-weight:700}.apt-legend{border:1px solid var(--border);background:#fff;border-radius:10px;margin-bottom:10px;padding:8px 12px;font-size:13px}.apt-legend summary{cursor:pointer;color:var(--navy);font-weight:600}.apt-legend div{color:var(--text);margin-top:6px}.apt-legend .howto-title{color:var(--navy);margin-top:10px;font-weight:700}.howto-steps{color:var(--text);margin:4px 0 0;padding-left:20px}.howto-steps li{margin-top:4px}.apt-legend .howto-path{border-left:4px solid;border-radius:8px;padding:7px 10px}.apt-legend .howto-ok{background:#e1f3e5;border-color:#1e9e5a}.apt-legend .howto-warn{background:#fdf1da;border-color:#d98324}.apt-legend .howto-bad{background:#fbe1df;border-color:#c1352b}.apt-item{border:1px solid var(--border);background:#fff;border-left:4px solid #c5cbd6;border-radius:12px;margin-bottom:10px;padding:12px;box-shadow:0 1px 2px #00000008}.apt-item-ok{border-left-color:#1e9e5a}.apt-item-na{border-left-color:#9aa3b2}.apt-item-defect,.apt-item-absent{border-left-color:var(--red)}.apt-item-highlight{box-shadow:0 0 0 3px #2e539559}.apt-item-head{gap:10px;margin-bottom:10px;display:flex}.apt-item-history-btn{color:var(--muted);background:0 0;border:none;flex-shrink:0;padding:2px 6px;font-size:18px;font-weight:700;line-height:1}.apt-history-backdrop{z-index:700;background:#0f172a8c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.apt-history-modal{background:#fff;border-radius:14px;flex-direction:column;width:100%;max-width:420px;max-height:80vh;display:flex;overflow:hidden}.apt-history-head{color:var(--navy);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 14px;font-weight:700;display:flex}.apt-history-close{color:var(--text);background:#eef1f6;border:none;border-radius:8px;flex-shrink:0;width:28px;height:28px;font-size:13px}.apt-history-body{padding:12px 14px;overflow-y:auto}.apt-history-row{border-bottom:1px solid var(--border);padding:8px 0}.apt-history-row:last-child{border-bottom:none}.apt-history-row-title{font-size:13px;font-weight:600}.apt-item-num{min-width:26px;height:26px;color:var(--navy);background:#eef1f6;border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;padding:0 6px;font-size:12px;font-weight:700;display:flex}.apt-item-title{font-size:14.5px;font-weight:600;line-height:1.3}.apt-item-criteria{color:var(--muted);margin-top:3px;font-size:12.5px;line-height:1.35}.apt-seg{grid-template-columns:1.15fr 1.15fr .9fr .8fr;gap:6px;display:grid}.apt-seg-btn{border:1.5px solid var(--border);color:var(--text);white-space:nowrap;background:#fff;border-radius:9px;padding:11px 2px;font-size:13px;font-weight:600}.apt-seg-btn:disabled{opacity:.55;cursor:default}.apt-seg-ok.active{color:var(--green);background:#e1f3e5;border-color:#1e9e5a}.apt-seg-defect.active,.apt-seg-absent.active{border-color:var(--red);color:var(--red);background:#fbe1df}.apt-seg-na.active{color:#4b5563;background:#e7eaf0;border-color:#9aa3b2}.apt-editor{border:1.5px solid var(--border);background:#fafbfd;border-radius:10px;margin-top:10px;padding:10px}.apt-editor-title{color:var(--navy);margin-bottom:6px;font-size:12.5px;font-weight:700}.apt-editor-actions{gap:8px;margin-top:10px;display:flex}.apt-editor-actions .btn{margin-bottom:0}.apt-photo-req{margin-bottom:6px;font-size:12.5px;font-weight:600}.apt-photo-req.missing{color:var(--red)}.apt-photo-req.ok{color:var(--green)}.apt-fix-photo-grid{grid-template-columns:repeat(2,84px);gap:8px;display:grid}.apt-fix-photo-square{text-align:center;border-radius:8px;justify-content:center;align-items:center;width:84px;height:84px;padding:4px;font-size:12px;font-weight:600;line-height:1.25;display:flex}.apt-fix-photo-thumb{border:1px solid var(--border);padding:0;position:relative;overflow:hidden}.apt-fix-photo-thumb img{object-fit:cover;width:100%;height:100%;display:block}.apt-fix-plus-tile{color:var(--muted);border:2px dashed var(--border);background:#fafbfd;font-size:30px;font-weight:300;line-height:1}.apt-fix-plus-tile:active{background:#f0f2f6}.apt-fix-photo-camera{border:1.5px solid var(--navy);color:var(--navy);background:#fff}.apt-fix-photo-camera:active{background:#f0f4fa}.apt-fix-save-btn{grid-column:1/-1;margin-top:2px;margin-bottom:0}.apt-defect{border-top:1px dashed var(--border);margin-top:10px;padding-top:10px}.apt-defect-label{color:var(--red);text-transform:uppercase;letter-spacing:.03em;font-size:11.5px;font-weight:700}.apt-defect-desc{white-space:pre-line;margin:3px 0 6px;font-size:14px}.apt-defect-grid{align-items:flex-start;gap:10px;display:flex}.apt-defect-left,.apt-defect-right{flex:1 1 0;min-width:0}.apt-defect-right .apt-fix{margin-top:0}.apt-thumbs{flex-wrap:wrap;gap:8px;margin:6px 0;display:flex}.apt-thumb{position:relative}.apt-thumb img{object-fit:cover;border:1px solid var(--border);cursor:pointer;border-radius:8px;width:84px;height:84px;display:block}.apt-thumb-del{color:#fff;background:#0000009e;border:none;border-radius:50%;width:22px;height:22px;padding:0;font-size:11px;line-height:1;position:absolute;top:3px;right:3px}.apt-attrib{color:var(--muted);margin-top:3px;font-size:11.5px;font-style:italic}.apt-attrib-tiny{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:9px;line-height:1.3;overflow:hidden}.apt-link-btn{color:var(--navy-light);background:0 0;border:none;margin-top:4px;padding:6px 0;font-size:13px;font-weight:600}.apt-link-btn:disabled{opacity:.5}.apt-fix{background:#f6f8fb;border-radius:8px;margin-top:10px;padding:8px 10px}.apt-fix-label{color:var(--muted);font-size:12.5px;font-weight:600}.apt-fix-comment{white-space:pre-line;margin-top:4px;font-size:13px}.apt-fix-resolved{background:#e1f3e5;flex-wrap:wrap;align-items:center;display:flex}.apt-fix-resolved-badge{color:var(--green);font-size:12.5px;font-weight:700}.apt-defect-apt-group{border:1.5px solid var(--border);background:#fbfcfe;border-radius:12px;margin-bottom:14px;padding:10px}.apt-defect-apt-group-head{color:var(--navy);cursor:pointer;margin-bottom:8px;font-size:13.5px;font-weight:700}.apt-defect-apt-group .apt-defect-row:last-child{margin-bottom:0}.apt-toast{left:50%;bottom:calc(96px + env(safe-area-inset-bottom,0px));z-index:300;color:#fff;background:#1f2937;border-radius:10px;max-width:90%;padding:10px 16px;font-size:13.5px;position:fixed;transform:translate(-50%);box-shadow:0 4px 16px #00000040}.apt-result{border-left:4px solid var(--green)}.apt-result-accepted_with_remarks{border-left-color:var(--amber);background:#fffbf2}.apt-result-rejected{border-left-color:var(--red);background:#fff6f5}.apt-result-accepted{background:#f5fbf6}.apt-defect-row{cursor:pointer;margin-bottom:8px;padding:10px 12px}.apt-defect-line{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:4px;font-size:13px;display:-webkit-box;overflow:hidden}.apt-sign-box{border:1px solid var(--border);background:#fff;border-radius:8px;max-width:100%;padding:6px;display:inline-block}.apt-sign-img{max-width:100%;max-height:90px;display:block}.apt-modal-backdrop{z-index:500;background:#0f172a8c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.apt-modal{width:100%;max-width:480px;max-height:92vh;padding:16px 16px calc(16px + env(safe-area-inset-bottom,0px));background:#fff;border-radius:16px 16px 0 0;overflow-y:auto}.apt-modal-title{color:var(--navy);margin-bottom:10px;font-size:16px;font-weight:700}.apt-sign-hint{color:var(--muted);margin-bottom:8px;font-size:12.5px}.apt-sign-wrap{margin-bottom:12px;position:relative}.apt-sign-canvas{border:1.5px dashed var(--navy-light);touch-action:none;cursor:crosshair;background:#fcfdfe;border-radius:10px;width:100%;height:320px;display:block}.apt-sign-placeholder{color:#c5cbd6;pointer-events:none;justify-content:center;align-items:center;font-size:22px;display:flex;position:absolute;inset:0}.apt-report-details{padding:10px 12px}.apt-report-details summary{cursor:pointer}.apt-report-row{border-bottom:1px solid var(--border);align-items:flex-start;gap:8px;padding:6px 0;font-size:13px;display:flex}.apt-report-row:last-child{border-bottom:none}.apt-report-num{min-width:24px;color:var(--muted);flex-shrink:0;font-weight:700}.apt-state{border-radius:20px;flex-shrink:0;padding:2px 8px;font-size:11px;font-weight:700}.apt-state-ok{color:var(--green);background:#e1f3e5}.apt-state-defect,.apt-state-absent{color:var(--red);background:#fbe1df}.apt-state-na{color:#4b5563;background:#e7eaf0}.apt-state-unanswered{color:#9aa3b2;background:#f3f4f6}@media print{.topbar,.bottom-nav,.sticky-header,.apt-head-actions,.scroll-top-btn,.app-version-footer,.apt-toast{display:none!important}.app-shell{max-width:none}.content{padding-bottom:0}.apt-report-details{break-inside:avoid}.card{break-inside:avoid;box-shadow:none}}.apt-item,.apt-item-row{scroll-margin-top:128px}.hub-content{padding-top:6px}.hub-hint{color:var(--muted);text-align:center;margin-bottom:12px;font-size:13px}.hub-card{border:1.5px solid var(--border);text-align:left;background:#fff;border-radius:14px;align-items:center;gap:14px;width:100%;margin-bottom:12px;padding:18px 16px;display:flex}.hub-card:active{background:#f8f9fc}.hub-card-icon{width:46px;height:46px;color:var(--navy);background:#eef1f6;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.hub-card-text{flex-direction:column;flex:1;gap:2px;display:flex}.hub-card-title{color:var(--navy);font-size:16px;font-weight:700}.hub-card-desc{color:var(--muted);font-size:12.5px}.hub-card-arrow{color:var(--muted);font-size:18px}.sidebar-divider{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:10px 16px 4px;font-size:11px;font-weight:700}.apt-progress-4{display:flex}.apt-progress-seg{height:100%}.apt-seg-ok-fill{background:var(--green)}.apt-seg-defect-fill{background:var(--red)}.apt-seg-na-fill{background:#2e6fd9}.apt-seg-unanswered-fill{background:var(--amber)}.apt-selected-card{margin:10px 0}.apt-selected-list{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.apt-mini-defects{flex-direction:column;gap:8px;margin:10px 0;display:flex}.apt-mini-defect{cursor:pointer;align-items:center;gap:10px;display:flex}.apt-mini-defect img{object-fit:cover;border:1px solid var(--border);border-radius:8px;flex-shrink:0;width:44px;height:44px}.apt-mini-defect-text{flex:1;min-width:0}.apt-mini-defect-title{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.apt-mini-defect-item-title{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:1px 0 3px;font-size:10.5px;overflow:hidden}.apt-board-legend{color:var(--muted);flex-wrap:wrap;gap:12px;margin:8px 0 14px;font-size:12px;display:flex}.apt-board-legend span{align-items:center;gap:5px;display:inline-flex}.apt-board-dot{border-radius:3px;width:11px;height:11px;display:inline-block}.apt-board-row{border:1.5px solid var(--border);border-radius:10px;align-items:stretch;gap:10px;margin-bottom:10px;padding:8px 10px;display:flex}.apt-board-floor{text-align:center;width:30px;color:var(--navy);border:none;border-right:1.5px solid var(--border);cursor:pointer;background:0 0;border-radius:0;flex-shrink:0;justify-content:center;align-items:center;margin-right:2px;padding:0;font-size:13px;font-weight:700;display:flex}.apt-board-floor:active{background:#eef1f6}.apt-board-units{flex-wrap:wrap;align-content:center;gap:5px;display:flex}.apt-board-unit{border:1.5px solid var(--border);width:38px;height:34px;color:var(--text);background:#fff;border-radius:6px;padding:0;font-size:11px;font-weight:700}.apt-board-red{color:var(--red);background:#fbe1df;border-color:#f3bdb8}.lang-switcher{gap:4px;display:inline-flex}.lang-switcher-btn{border:1.5px solid var(--border);color:var(--muted);background:#fff;border-radius:7px;padding:4px 8px;font-size:11px;font-weight:700;line-height:1.3}.lang-switcher-btn.active{background:var(--navy);border-color:var(--navy);color:#fff}.lang-switcher.compact{justify-content:center;margin-bottom:16px}.apt-board-yellow{color:var(--amber);background:#fdf1da;border-color:#f6dba5}.apt-board-green{color:var(--green);background:#e1f3e5;border-color:#bee3c5}.apt-doc-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;margin-top:12px;display:grid}.apt-doc-tile{flex-direction:column;gap:4px;display:flex}.apt-doc-tile-link{aspect-ratio:1;border:1px solid var(--border);background:#edeff3;border-radius:10px;display:block;overflow:hidden}.apt-doc-tile-link img{object-fit:cover;width:100%;height:100%;display:block}.apt-doc-tile-file{justify-content:center;align-items:center;width:100%;height:100%;font-size:32px;display:flex}.apt-doc-tile-title{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:600;overflow:hidden}.apt-all-docs-table{border-collapse:collapse;width:100%;font-size:12.5px}.apt-all-docs-table th,.apt-all-docs-table td{border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;padding:6px 8px}.apt-all-docs-table th{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--muted);font-size:11.5px;font-weight:700}.apt-all-docs-table td a{color:var(--navy);text-decoration:none}.apt-all-docs-table td a:hover{text-decoration:underline}.apt-unit-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:10px 4px;display:flex}.apt-unit-row:last-child{border-bottom:none}.apt-user-row{border:1px solid var(--border);background:#fff;border-radius:12px;margin-bottom:8px;padding:10px 12px}.apt-user-row-disabled{opacity:.6}.apt-user-row-top{align-items:center;gap:10px;display:flex}.apt-user-avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:13px;font-weight:700;display:flex}.apt-user-name{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.apt-user-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin-top:1px;font-size:12px;display:flex}.apt-role-chip{color:var(--muted);background:#eef1f6;border-radius:20px;padding:1.5px 7px;font-size:10.5px;font-weight:600;display:inline-block}.apt-role-chip-okk{color:#1d5dab;background:#dcebff}.apt-role-chip-off{color:var(--red);background:#fbe1df}.apt-user-sections{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.apt-section-chip{border:1.5px solid var(--border);color:var(--muted);background:#fff;border-radius:20px;padding:5px 10px;font-size:12px;font-weight:600}.apt-section-chip.on{color:var(--green);background:#e1f3e5;border-color:#bee3c5}.apt-toggle{flex-shrink:0;width:40px;height:24px;display:inline-block;position:relative}.apt-toggle input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute}.apt-toggle-track{background:#e7eaf0;border-radius:20px;transition:background .15s;position:absolute;inset:0}.apt-toggle-thumb{background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #00000040}.apt-toggle input:checked+.apt-toggle-track{background:var(--green)}.apt-toggle input:checked+.apt-toggle-track .apt-toggle-thumb{transform:translate(16px)}.apt-toggle input:disabled+.apt-toggle-track{opacity:.6}.apt-back-btn{color:var(--navy);cursor:pointer;background:0 0;border:none;padding:0;font-size:22px;line-height:1}.apt-card-title-sub{color:var(--muted);font-size:12.5px;font-weight:400}.apt-board-modal-row{padding:5px 0;font-size:13.5px}.apt-floor-carousel{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;flex-direction:column;gap:6px;padding:4px 2px 10px;display:flex;overflow-x:auto}.apt-floor-row{gap:6px;display:flex}.apt-floor-cell{scroll-snap-align:start;border:1.5px solid var(--border);width:40px;height:40px;color:var(--text);background:#fff;border-radius:8px;flex:none;justify-content:center;align-items:center;padding:0;font-size:14px;font-weight:700;display:flex}.apt-floor-cell.selected{background:var(--navy);border-color:var(--navy);color:#fff}.apt-tier-box{border:1.5px solid var(--border);border-radius:12px;margin-top:10px;padding:10px 10px 12px}.apt-tier-box-title{color:var(--navy);text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px;font-size:12.5px;font-weight:700}.apt-unit-cell-grid{grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:8px;display:grid}.apt-unit-cell{aspect-ratio:1;border:1.5px solid var(--border);color:var(--text);background:#fff;border-radius:10px;justify-content:center;align-items:center;padding:0;font-size:20px;font-weight:800;display:flex;position:relative}.apt-unit-cell.selected{outline:3px solid var(--navy);outline-offset:-3px}.apt-unit-cell.apt-board-red{color:var(--red);background:#fbe1df;border-color:#f3bdb8}.apt-unit-cell.apt-board-yellow{color:var(--amber);background:#fdf1da;border-color:#f6dba5}.apt-unit-cell.apt-board-green{color:var(--green);background:#e1f3e5;border-color:#bee3c5}.apt-legend-img{object-fit:contain;border:1px solid var(--border);background:#fafbfd;border-radius:10px;width:100%;max-height:260px;margin-top:8px;display:block}.apt-stats-table{border-collapse:collapse;width:100%;margin-top:6px;font-size:12px}.apt-stats-table th,.apt-stats-table td{text-align:center;border:1px solid var(--border);padding:4px 6px}.apt-stats-table th{color:var(--muted);background:#f5f7fa;font-size:11px;font-weight:700}.apt-stats-row-title{color:var(--navy);white-space:nowrap;font-weight:700;text-align:left!important}.apt-stats-pct{min-width:64px;font-weight:700}.apt-stats-pct-bar-wrap{background:#eef1f5;border-radius:4px;height:16px;position:relative;overflow:hidden}.apt-stats-pct-bar{border-radius:4px;height:100%;transition:width .2s;position:absolute;inset:0 auto 0 0}.apt-stats-pct-num{z-index:1;color:var(--navy);text-shadow:0 0 3px #fff,0 0 3px #fff;justify-content:center;align-items:center;height:100%;font-size:10.5px;font-weight:700;display:flex;position:relative}.apt-doc-floors{color:var(--muted);margin-top:2px;font-size:11px}.apt-doc-floor-picker{flex-wrap:wrap;gap:6px;max-height:140px;padding:2px;display:flex;overflow-y:auto}.apt-doc-floor-chip{border:1.5px solid var(--border);background:#fff;border-radius:8px;padding:6px 10px;font-size:13px;font-weight:600}.apt-doc-floor-chip.selected{background:var(--navy);border-color:var(--navy);color:#fff}.apt-plan-backdrop{z-index:600;background:#0f172a;flex-direction:column;display:flex;position:fixed;inset:0}.apt-plan-header{color:#fff;flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 14px;font-size:14.5px;font-weight:600;display:flex}.apt-plan-close{color:#fff;background:#ffffff26;border:none;border-radius:8px;width:32px;height:32px;font-size:15px}.apt-plan-viewport{touch-action:none;flex:1;min-height:0;position:relative}.apt-plan-osd{position:absolute;inset:0}.apt-plan-overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.apt-plan-error{color:#fff;text-align:center;justify-content:center;align-items:center;padding:20px;font-size:14px;display:flex;position:absolute;inset:0}.apt-plan-tiling-note{color:#fff;text-align:center;background:#0f172ad9;border-radius:8px;padding:8px 10px;font-size:12px;position:absolute;bottom:10px;left:10px;right:10px}.apt-plan-controls{padding:12px 14px calc(12px + env(safe-area-inset-bottom,0px));background:#fff;border-radius:16px 16px 0 0;flex-shrink:0;max-height:45vh;overflow-y:auto}.apt-plan-tag-hint{color:var(--muted);margin-bottom:8px;font-size:13px}.apt-plan-export-btn{color:#fff;background:#ffffff26;border:none;border-radius:8px;padding:6px 10px;font-size:12.5px;font-weight:600}.apt-plan-float-actions{z-index:15;background:#0f172ad9;border-radius:12px;gap:8px;padding:8px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.apt-plan-table-panel{z-index:20;background:#fffffff7;border:1px solid #00000014;border-radius:10px;max-width:min(92vw,640px);position:absolute;overflow:visible;box-shadow:0 4px 18px #00000059}.apt-plan-table-corner{z-index:21;touch-action:none;width:14px;height:14px;position:absolute}.apt-plan-table-corner:after{content:"";opacity:.55;background:#1f3864;border-radius:3px;position:absolute;inset:3px}.apt-plan-table-corner-nw{cursor:nwse-resize;top:-5px;left:-5px}.apt-plan-table-corner-se{cursor:nwse-resize;bottom:-5px;right:-5px}.apt-plan-table-corner-ne{cursor:nesw-resize;top:-5px;right:-5px}.apt-plan-table-corner-sw{cursor:nesw-resize;bottom:-5px;left:-5px}.apt-plan-table-edge{z-index:20;touch-action:none;position:absolute}.apt-plan-table-edge-w{cursor:ew-resize;width:8px;top:14px;bottom:14px;left:-4px}.apt-plan-table-edge-e{cursor:ew-resize;width:8px;top:14px;bottom:14px;right:-4px}.apt-plan-table-edge-s{cursor:ns-resize;height:8px;bottom:-4px;left:14px;right:14px}.apt-plan-table-head{color:#fff;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#1f3864;border-radius:9px 9px 0 0;justify-content:space-between;align-items:center;gap:8px;padding:7px 9px;font-size:13.5px;font-weight:700;display:flex}.apt-plan-table-head>span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.apt-plan-table-head button{color:#fff;background:#ffffff2e;border:none;border-radius:5px;width:22px;height:20px;padding:0;font-size:11px;font-weight:700}.apt-plan-table-body{overflow:auto}.apt-plan-table-groups{align-items:flex-start;gap:6px;display:flex}.apt-plan-table-body table{border-collapse:collapse;table-layout:fixed}.apt-plan-table-body th,.apt-plan-table-body td{border:1px solid var(--border);text-align:left;text-overflow:ellipsis;white-space:nowrap;padding:3px 5px;position:relative;overflow:hidden}.apt-plan-table-body th{white-space:normal;background:#f5f7fa;font-weight:700}.apt-plan-table-body td{white-space:normal;word-break:break-word}.apt-plan-table-th-label{cursor:pointer;-webkit-user-select:none;user-select:none}.apt-plan-table-resize{cursor:col-resize;touch-action:none;z-index:1;width:6px;height:100%;position:absolute;top:0;right:-3px}.apt-plan-table-filter{z-index:900;border:1px solid var(--border);white-space:normal;min-width:130px;color:var(--text);background:#fff;border-radius:8px;padding:6px;font-size:11.5px;font-weight:400;position:absolute;top:100%;left:0;box-shadow:0 6px 18px #00000040}.apt-plan-table-filter-sort{gap:4px;margin-bottom:5px;display:flex}.apt-plan-table-filter-sort button{border:1px solid var(--border);background:#f5f7fa;border-radius:5px;flex:1;padding:3px 4px;font-size:10.5px}.apt-plan-table-filter-list{flex-direction:column;gap:2px;max-height:140px;margin-bottom:5px;display:flex;overflow-y:auto}.apt-plan-table-filter-list label{white-space:normal;align-items:center;gap:5px;font-weight:400;display:flex}.apt-plan-table-filter-reset{border:1px solid var(--border);background:#fff;border-radius:5px;width:100%;padding:3px 4px;font-size:10.5px}.apt-plan-seq-list{flex-wrap:wrap;gap:6px;display:flex}.apt-plan-seq-chip{border:1.5px solid var(--border);background:#fff;border-radius:8px;padding:6px 10px;font-size:13px;font-weight:600}.apt-plan-seq-chip.done{color:var(--green);background:#e1f3e5;border-color:#bee3c5}.apt-plan-seq-chip.current{background:var(--navy);border-color:var(--navy);color:#fff}.apt-plan-seq-item{align-items:center;gap:3px;display:inline-flex}.apt-plan-seq-boundary-btn{border:1.5px solid var(--border);background:#fff;border-radius:6px;width:26px;height:26px;padding:0;font-size:12px}.apt-plan-seq-boundary-btn.done{background:#e1f3e5;border-color:#bee3c5}.apt-plan-pin-popup{z-index:30;background:#fff;border:1px solid #00000014;border-radius:10px;width:180px;padding:8px;position:absolute;box-shadow:0 6px 20px #0006}.apt-plan-pin-popup-close{background:#eef1f6;border:none;border-radius:5px;width:20px;height:20px;padding:0;font-size:11px;position:absolute;top:4px;right:4px}.apt-plan-pin-popup-title{color:var(--navy);margin-bottom:5px;padding-right:20px;font-size:11.5px;font-weight:700}.apt-plan-pin-popup img{object-fit:cover;cursor:pointer;border-radius:6px;width:100%;height:96px;display:block}.apt-plan-pin-popup-nophoto{color:var(--muted);text-align:center;background:#f5f7fa;border-radius:6px;padding:20px 0;font-size:11px}.apt-plan-pin-popup-desc{color:var(--muted);max-height:48px;margin-top:5px;font-size:10.5px;overflow:hidden}.apt-plan-stamp{z-index:15;color:#fff;background:#0f172ad9;border:1px solid #ffffff40;border-radius:8px;max-width:60%;padding:7px 10px;font-size:11px;line-height:1.4;position:absolute;bottom:10px;left:10px}.apt-stats-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px;display:grid}.apt-stat-card{border:1px solid var(--border);background:#fff;border-radius:12px;padding:12px 14px;transition:box-shadow .15s,transform .15s;box-shadow:0 1px 2px #00000008}.apt-stat-card:hover{transform:translateY(-1px);box-shadow:0 4px 14px #00000014}.apt-stat-card-head{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.apt-stat-card-title{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.apt-stat-card-pct{border-radius:20px;padding:1px 7px;font-size:12px;font-weight:700}.apt-stat-card-pct-good{color:var(--green);background:#e1f3e5}.apt-stat-card-pct-mid{color:var(--amber);background:#fdf1da}.apt-stat-card-pct-low{color:var(--red);background:#fbe1df}.apt-stat-card-value{color:var(--navy);margin-top:2px;font-size:24px;font-weight:800}.apt-stat-card-value-sub{color:var(--muted);font-size:13px;font-weight:500}.apt-stat-card-foot{color:var(--muted);flex-wrap:wrap;align-items:center;margin-top:6px;font-size:11.5px;display:flex}.apt-stat-dot{border-radius:50%;width:8px;height:8px;margin-right:5px;display:inline-block}.conc-clock{text-align:center;padding:12px 14px}.conc-clock-date{color:var(--muted);font-size:13.5px}.conc-clock-time{color:var(--navy);letter-spacing:.02em;font-size:34px;font-weight:700;line-height:1.15}.conc-clock-time span{color:var(--muted);letter-spacing:0;font-size:13px;font-weight:600}.conc-list-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.conc-kind-counts{color:var(--text);margin:4px 0 0;padding:0 0 0 4px;font-size:14px;font-weight:600;line-height:1.5;list-style:none}.conc-seg{border:1.5px solid var(--border);background:#fff;border-radius:20px;display:inline-flex;overflow:hidden}.conc-seg button{color:var(--muted);background:0 0;border:none;padding:6px 12px;font-size:12.5px;font-weight:600}.conc-seg button.active{background:var(--navy);color:#fff}.conc-chips{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.conc-note{color:var(--muted);background:#f4f6f9;border-radius:8px;margin-bottom:10px;padding:9px 11px;font-size:13px}.conc-table-card{padding:0;overflow:hidden}.conc-table{border-collapse:collapse;width:100%;font-size:13px}.conc-table th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);border-bottom:1px solid var(--border);background:#f4f6f9;padding:8px 6px;font-size:11px;font-weight:700}.conc-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:9px 6px}.conc-table tbody tr{cursor:pointer}.conc-table tbody tr:active,.conc-table tbody tr:focus{background:#f0f4fb;outline:none}.conc-table tbody tr:last-child td{border-bottom:none}.conc-table .c-no{text-align:center;width:26px;color:var(--muted);padding-left:8px}.conc-table .c-temp{text-align:right;white-space:nowrap}.conc-table .c-heat{text-align:center;width:52px;padding-right:8px}.conc-kind{font-weight:600}.conc-place{color:var(--muted);font-size:12px}.conc-num{color:var(--navy);font-weight:700}.conc-temp{font-size:14px;font-weight:700}.conc-temp-at{color:var(--muted);font-size:11px}.conc-heat{text-align:center;min-width:30px;color:var(--muted);background:#e7eaf0;border-radius:12px;padding:3px 7px;font-size:12px;font-weight:700;display:inline-block}.conc-heat-cable{color:#1d5dab;background:#dcebff}.conc-heat-guns{color:#c2410c;background:#fde6dd}.conc-group-title{color:var(--navy);margin:4px 0 8px;font-size:14px;font-weight:700}.conc-plan-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;display:grid}.conc-plan-strip{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin;grid-template-rows:repeat(2,auto);grid-auto-columns:calc(33.3333% - 5.33333px);grid-auto-flow:column;gap:8px;padding-bottom:6px;display:grid;overflow-x:auto}.conc-plan-strip>*{scroll-snap-align:start;min-width:0}.conc-plan-strip.one-row{grid-template-rows:auto}.conc-plan-card .conc-plan-card-floor{overflow-wrap:anywhere}.conc-type-sheet-back{z-index:900;background:#0f172a73;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.conc-type-sheet{width:100%;max-width:520px;padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:#fff;border-radius:16px 16px 0 0;box-shadow:0 -6px 24px #0000002e}.conc-type-sheet-title{color:var(--navy);font-size:16px;font-weight:700}.conc-type-sheet-sub{color:var(--muted);margin:2px 0 12px;font-size:12.5px}.conc-type-sheet .pick-btn{width:100%;margin-bottom:8px;padding:14px}.conc-plan-card{border:1.5px solid var(--border);text-align:left;background:#fff;border-radius:12px;flex-direction:column;align-items:flex-start;gap:2px;padding:11px 12px;display:flex}.conc-plan-card:active{background:#f8f9fc}.conc-live-block{border-bottom:1.5px solid var(--border);margin-bottom:16px;padding-bottom:12px}.conc-plan-card.live{background:#fff7f3;border-color:#e4572e}.conc-plan-card-floor{color:var(--navy);font-size:15px;font-weight:700}.conc-plan-card-meta{color:var(--muted);font-size:11.5px}.conc-plan-card-live{color:#c2410c;font-size:11.5px;font-weight:700}.conc-plan-body{flex-direction:column;flex:1;min-height:0;display:flex}.conc-plan-panel{padding:12px 14px calc(12px + env(safe-area-inset-bottom,0px));background:#fff;border-radius:16px 16px 0 0;flex-shrink:0;max-height:50vh;overflow-y:auto}@media (width>=820px){.conc-plan-body{flex-direction:row}.conc-plan-panel{border-radius:0;width:400px;max-height:none}}.conc-plan-hint{color:#fff;text-align:center;pointer-events:none;background:#0f172ad9;border-radius:10px;max-width:90%;padding:8px 12px;font-size:12.5px;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.conc-panel-head{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.conc-panel-title{color:var(--navy);font-size:16px;font-weight:700}.conc-panel-sub{color:var(--muted);font-size:12.5px}.conc-badges{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.conc-badge{color:var(--muted);background:#e7eaf0;border-radius:12px;padding:3px 9px;font-size:11.5px;font-weight:600}.conc-badge.live{color:#c2410c;background:#fde6dd}.conc-badge.done{color:var(--green);background:#e1f3e5}.conc-now{flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:6px;display:flex}.conc-now-temp{color:var(--navy);font-size:28px;font-weight:700}.conc-now-at{color:var(--muted);font-size:12px}.conc-actions{gap:8px;margin:10px 0 4px;display:flex}.conc-chart svg{border:1px solid var(--border);background:#fafbfc;border-radius:10px;width:100%;height:auto;display:block}.conc-chart-legend{color:var(--muted);flex-wrap:wrap;gap:4px 12px;margin-top:5px;font-size:11px;display:flex}.conc-chart-legend i{vertical-align:-1px;border-radius:50%;width:9px;height:9px;margin-right:4px;display:inline-block}.conc-history-title{margin:12px 0 6px;font-size:13px;font-weight:700}.conc-history-row{border-top:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:8px;padding:8px 0;display:flex;position:relative}.conc-history-main{flex-direction:column;flex:1;min-width:0;font-size:12.5px;display:flex}.conc-history-main b{font-size:14px}.conc-history-main span{color:var(--muted)}.conc-history-who{overflow-wrap:anywhere;font-size:11.5px}.conc-history-photos{flex-shrink:0;gap:4px;display:flex}.conc-history-photos img{object-fit:cover;border:1px solid var(--border);cursor:pointer;border-radius:6px;width:44px;height:44px}.conc-history-del{margin:0;padding:4px;font-size:14px}.conc-meta{color:var(--muted);margin-top:8px;font-size:12px}.conc-form .field{margin-bottom:10px}.conc-pick-row{flex-wrap:wrap;gap:6px;display:flex}.conc-pick-row .pick-btn{flex:28%}.conc-form-hint{color:#9a5b00;background:#fff4db;border-radius:8px;margin-bottom:8px;padding:8px 10px;font-size:12.5px}.conc-tools{gap:6px;margin-bottom:8px;display:flex}.conc-chip-list{flex-wrap:wrap;gap:2px;max-height:120px;margin-top:6px;display:flex;overflow-y:auto}.conc-chip-list .chip{border:none}.conc-doc-card{margin-bottom:8px;padding:12px}.conc-doc-actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.conc-head-btn{color:#fff;background:#ffffff26;border:none;border-radius:8px;height:32px;padding:0 12px;font-size:13px;font-weight:600}.conc-steps{gap:6px;margin-bottom:8px;font-size:11.5px;display:flex}.conc-steps span{text-align:center;color:var(--muted);background:#eef1f6;border-radius:8px;flex:1;padding:5px 4px;font-weight:600}.conc-steps span.on{background:var(--navy);color:#fff}.conc-steps span.done{color:var(--green);background:#e1f3e5}.conc-flow-count{margin-bottom:8px;font-size:13px}.conc-point-inputs{flex-direction:column;gap:6px;display:flex}.conc-point-row{align-items:center;gap:6px;display:flex}.conc-point-row input{border:1.5px solid var(--border);background:#fff;border-radius:8px;flex:1;min-width:0;padding:10px 12px;font-size:16px}.conc-point-badge{color:#fff;border-radius:50%;flex:0 0 26px;justify-content:center;align-items:center;height:26px;font-size:12px;font-weight:700;display:flex}.conc-history{flex-direction:column;gap:8px;display:flex}.conc-history-card{border:1.5px solid var(--border);background:#fafbfc;border-radius:10px;padding:9px 10px}.conc-history-top{align-items:center;gap:8px;font-size:12.5px;display:flex}.conc-history-top b{font-size:13px}.conc-history-top span{color:var(--muted);flex:1}.conc-history-top .conc-history-del{margin:0 0 0 auto}.conc-history-temp{margin-top:2px;font-size:20px;font-weight:700}.conc-history-values{flex-wrap:wrap;gap:4px 10px;margin-top:5px;font-size:13px;font-weight:600;display:flex}.conc-history-values>span{align-items:center;gap:4px;display:inline-flex}.conc-history-values i{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:17px;height:17px;font-size:10px;font-style:normal;font-weight:700;display:inline-flex}.conc-history-values .conc-history-avg{color:var(--muted);font-weight:500}.conc-history-values .conc-history-avg b{color:var(--text)}.conc-history-card .conc-history-who{color:var(--muted);overflow-wrap:anywhere;margin-top:4px;font-size:11.5px}.conc-history-card .conc-history-photos{flex-wrap:wrap;margin-top:6px}.conc-chart-when{color:var(--muted);margin-top:5px;font-size:11.5px}.conc-chart-legend-points{gap:3px 12px;margin-top:3px;font-size:12px}.conc-chart-legend-points b{color:var(--text)}.conc-legend-note{color:var(--muted);background:#f4f6f9;border-radius:10px;margin-top:12px;padding:10px 12px;font-size:12.5px}.conc-legend-title{color:var(--text);margin-bottom:6px;font-weight:700}.conc-legend-row{align-items:flex-start;gap:8px;margin-bottom:5px;display:flex}.conc-legend-row .conc-heat{flex:none}.conc-report-btn{width:100%;margin-top:14px;display:block}.conc-report-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.conc-report-dates{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.conc-report-dates input[type=date]{border:1.5px solid var(--border);background:#fff;border-radius:8px;padding:8px 10px;font-size:15px}.conc-report-head h2{color:var(--navy);margin:0 0 4px;font-size:17px}.conc-red{color:var(--red)}.conc-report-plan{margin-top:16px}.conc-report-plan>h3{color:var(--navy);border-bottom:2px solid var(--navy);margin:0 0 8px;padding-bottom:4px;font-size:15px}.conc-static-scroll{border:1px solid var(--border);background:#fff;border-radius:10px;margin-bottom:10px;overflow-x:auto}.conc-static-plan{width:100%;position:relative;overflow:hidden}.conc-static-inner{position:absolute}.conc-static-plan img{object-fit:fill;width:100%;height:100%;position:absolute;inset:0}.conc-static-plan svg{width:100%;height:100%;position:absolute;inset:0}.conc-report-item{border:1.5px solid var(--border);break-inside:avoid;page-break-inside:avoid;background:#fff;border-radius:12px;margin-bottom:12px;padding:10px 12px}.conc-report-item header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.conc-status-big{letter-spacing:.1px;border-radius:14px;margin-top:5px;padding:4px 11px;font-size:13px;font-weight:800;display:inline-block}.conc-status-big.live{color:#fff;background:#e4572e}.conc-status-big.done{color:#fff;background:#2e9e4f}.conc-report-item.is-live{border-left:5px solid #e4572e}.conc-report-item.is-done{border-left:5px solid #2e9e4f}.conc-report-summary{border:1.5px solid var(--navy);break-inside:avoid;background:#f7f9fd;border-radius:12px;margin-top:12px;padding:10px 12px}.conc-report-summary-title{color:var(--navy);margin-bottom:6px;font-size:15px;font-weight:800}.conc-summary-table{border-collapse:collapse;width:100%;font-size:13px}.conc-summary-table th{text-align:right;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);padding:4px;font-size:11px}.conc-summary-table th:first-child,.conc-summary-table td:first-child{text-align:left}.conc-summary-table td{text-align:right;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;padding:5px 4px}.conc-summary-table tr.total td{border-bottom:none;font-weight:800}.conc-summary-status{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.conc-summary-status .conc-status-big{margin-top:0}.conc-report-item-title{color:var(--navy);font-size:15px;font-weight:700}.conc-report-missing{color:var(--red);background:#fbe1df;border-radius:8px;margin-bottom:8px;padding:7px 10px;font-size:12.5px}.conc-report-table{border-collapse:collapse;width:100%;margin-top:10px;font-size:12px}.conc-report-table th{text-align:left;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:5px 4px;font-size:10.5px}.conc-report-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:5px 4px}.conc-report-who{color:var(--muted);overflow-wrap:anywhere;font-size:11px}.conc-dot{border-radius:50%;width:9px;height:9px;margin-right:3px;display:inline-block}.conc-report-photos{gap:3px;display:flex}.conc-report-photos img{object-fit:cover;border:1px solid var(--border);cursor:pointer;border-radius:5px;width:34px;height:34px}.conc-report-btns{gap:6px;display:flex}.conc-report-body{grid-template-columns:1fr;gap:10px;display:grid}@media (width>=600px){.conc-report-body{grid-template-columns:1fr 1fr;align-items:start}}.conc-report-pics{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.conc-report-body.small .conc-report-pics{grid-template-columns:repeat(4,1fr)}.conc-report-pics figure{margin:0}.conc-report-pics img{aspect-ratio:4/3;object-fit:cover;border:1px solid var(--border);border-radius:6px;width:100%;display:block}.conc-report-pics figcaption{color:var(--muted);margin-top:2px;font-size:10.5px}.conc-report-pics figure.surface figcaption{color:#6d28d9}.conc-lab-row{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;display:flex}.conc-lab-row.off{opacity:.55}.conc-lab-name{flex-direction:column;min-width:0;font-size:14px;display:flex}.conc-lab-shift{gap:6px;display:flex}.conc-lab-shift button{border:1.5px solid var(--border);color:var(--navy);background:#fff;border-radius:10px;flex-direction:column;align-items:center;padding:5px 10px;font-size:13px;font-weight:700;line-height:1.2;display:flex}.conc-lab-shift button small{color:var(--muted);font-size:10.5px;font-weight:400}.conc-lab-shift button.active{background:var(--navy);border-color:var(--navy);color:#fff}.conc-lab-shift button.active small{color:#ffffffd9}.conc-lab-add{margin-top:12px;padding-top:4px}.conc-lab-add-title{color:var(--navy);margin-bottom:6px;font-size:13px;font-weight:800}.conc-lab-add-grid{grid-template-columns:1fr 1fr;gap:0 10px;display:grid}.conc-duty-month{justify-content:center;align-items:center;gap:12px;margin-bottom:8px;display:flex}.conc-duty-month .btn{width:auto;margin-bottom:0}.conc-duty-table{border-collapse:collapse;width:100%;font-size:13px}.conc-duty-table th{text-align:left;color:var(--muted);border-bottom:1.5px solid var(--border);padding:4px;font-size:11.5px}.conc-duty-table td{border-bottom:1px solid var(--border);vertical-align:top;padding:6px 4px}.conc-duty-date{white-space:nowrap;color:var(--navy);font-weight:800}.conc-duty-cell{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.conc-duty-chip{color:var(--navy);background:#e8eef8;border-radius:12px;align-items:center;gap:2px;padding:2px 4px 2px 8px;font-size:12.5px;font-weight:600;display:inline-flex}.conc-duty-chip button{color:var(--muted);background:0 0;border:none;padding:0 3px;font-size:12px}.conc-duty-cell select{border:1px dashed var(--border);background:#fff;border-radius:8px;max-width:130px;padding:3px 4px;font-size:12.5px}.conc-fin-nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin:8px 0 4px;display:flex}.conc-pager{color:var(--muted);align-items:center;gap:8px;margin:8px 0;font-size:13px;display:flex}.conc-pager .btn{width:auto;margin-bottom:0}.conc-fin-filters{padding:10px 12px}.conc-fin-grid{grid-template-columns:repeat(2,1fr);gap:0 10px;display:grid}@media (width>=700px){.conc-fin-grid{grid-template-columns:repeat(5,1fr)}}.conc-fin-grid .field{min-width:0;margin-bottom:8px}.conc-fin-grid input,.conc-fin-grid select{box-sizing:border-box;width:100%;min-width:0}.conc-fin-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:13.5px;display:flex}@media print{.conc-report-controls,.conc-report-btns{display:none!important}.conc-report-body{grid-template-columns:1fr 1fr}.conc-static-scroll{overflow:visible}.conc-report-plan{break-before:page}.conc-report-plan:first-of-type{break-before:auto}.conc-report-photos img{width:46px;height:46px}}.conc-table tbody tr.conc-overdue td{border-top:1.5px solid var(--red);border-bottom:1.5px solid var(--red);background:#fff8f7}.conc-table tbody tr.conc-overdue td:first-child{border-left:1.5px solid var(--red)}.conc-table tbody tr.conc-overdue td:last-child{border-right:1.5px solid var(--red)}.conc-kind-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:4px;display:grid}.conc-kind-grid .pick-btn{padding:14px 4px}.conc-heat-off{width:100%;margin:8px 0 0}.conc-tabs{scrollbar-width:none;width:100%;margin-bottom:12px;display:flex;overflow-x:auto}.conc-tabs button{white-space:nowrap;flex:1 0 auto;padding:9px 11px;font-size:13.5px}.conc-tools .pick-btn{flex:1}.conc-tools .pick-btn .pick-btn-sub{margin-top:1px;font-size:10.5px}.conc-suggest{color:var(--muted);margin-bottom:8px;font-size:12px}.conc-photos-found{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;font-size:13px;display:flex}.conc-photo-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:12px;display:grid}.conc-photo-item{border:1px solid var(--border);background:#fff;border-radius:10px;position:relative;overflow:hidden}.conc-photo-item img{aspect-ratio:4/3;object-fit:cover;cursor:pointer;width:100%;display:block}.conc-photo-cap{color:var(--muted);flex-direction:column;gap:1px;padding:6px 8px 7px;font-size:11px;display:flex}.conc-photo-cap b{color:var(--text);font-size:12px}.conc-photo-del{background:#ffffffeb;border:none;border-radius:50%;width:28px;height:28px;font-size:14px;position:absolute;top:4px;right:4px}.conc-photo-del:disabled{opacity:.5}.conc-date-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.conc-date-row input[type=date]{box-sizing:border-box;width:100%;min-width:0;padding:10px 6px;font-size:14px}.conc-plan-lock{cursor:pointer;position:absolute;inset:0}.conc-plan-lock-hint{color:#fff;text-align:center;pointer-events:none;white-space:nowrap;background:#0f172ab8;border-radius:11px;max-width:calc(100% - 66px);padding:4px 9px;font-size:10.5px;position:absolute;bottom:8px;left:8px}.conc-plan-lock-btn{color:#fff;background:#0f172ad9;border:none;border-radius:14px;padding:7px 12px;font-size:12px;font-weight:600;position:absolute;bottom:8px;left:8px}.conc-gesture-layer{touch-action:none;cursor:move;position:absolute;inset:0}.conc-queue{background:#fff8e1;border:1.5px solid #d69e00;border-radius:12px;margin-bottom:12px;padding:10px 12px}.conc-queue.has-failed{border-color:var(--red);background:#fff1f0}.conc-queue-head{color:#6b4e00;justify-content:space-between;align-items:center;gap:8px;font-size:14px;display:flex}.conc-queue.has-failed .conc-queue-head{color:var(--red)}.conc-queue-note{color:#6b4e00;margin-top:4px;font-size:12px}.conc-queue-item{border-top:1px solid #00000014;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;padding-top:8px;display:flex}.conc-queue-main{flex:1;min-width:0;font-size:13px}.conc-queue-sub{color:var(--muted);font-size:11.5px}.conc-queue-err{color:var(--red);margin-top:2px;font-size:12px;font-weight:600}.conc-queue-thumb{object-fit:cover;border:1px solid var(--border);border-radius:6px;width:44px;height:44px}.conc-queue-actions{align-items:center;gap:12px;width:100%;display:flex}.conc-notice-ok{color:#1d5e33;background:#e8f5ec;border-color:#2e9e4f}.conc-offline-note{color:#334155;background:#eef1f6;border-radius:8px;margin-bottom:8px;padding:7px 10px;font-size:12.5px}.conc-history-card.pending{background:#fffbef;border-style:dashed;border-color:#d69e00}.conc-history-card.pending.failed{border-color:var(--red);background:#fff6f5}.conc-pending-tag{color:#8a6100;background:#ffebb0;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:700;display:inline-block}.conc-history-card.failed .conc-pending-tag{color:var(--red);background:#fde1de}.conc-plan-viewport{background:#fff}.conc-plan-viewport .openseadragon-container{background:#fff!important}.conc-plan-fs-btn{z-index:5;color:#1f3864;touch-action:manipulation;background:#ffffffeb;border:1px solid #0f172a40;border-radius:10px;min-width:38px;height:38px;padding:0 10px;font-size:19px;font-weight:700;position:absolute;bottom:8px;right:8px;box-shadow:0 1px 4px #00000040}.conc-plan-fs-btn.on{color:#fff;top:calc(8px + env(safe-area-inset-top,0px));background:#1f3864;border-color:#1f3864;font-size:14px;bottom:auto}.apt-plan-backdrop.fs .apt-plan-header,.conc-plan-body.fs .conc-plan-panel{display:none}.conc-plan-body.fs .conc-plan-viewport{flex:auto!important;min-height:0!important}.conc-plan-viewport{min-height:38vh}.conc-plan-body .conc-plan-panel{max-height:42vh}.conc-plan-body .conc-plan-panel.compact{max-height:26vh}@media (width>=820px){.conc-plan-body .conc-plan-panel,.conc-plan-body .conc-plan-panel.compact{max-height:none}}.conc-plan-body.split .conc-plan-viewport{flex:0 0 25dvh;min-height:0}.conc-plan-body.split .conc-plan-panel,.conc-plan-body.split .conc-plan-panel.compact{flex:auto;min-height:0;max-height:none}.conc-plan-body.no-panel .conc-plan-viewport{flex:1;min-height:0}.conc-plan-body.half .conc-plan-viewport{flex:0 0 50dvh;min-height:0}.conc-plan-body.half .conc-plan-panel,.conc-plan-body.half .conc-plan-panel.compact{flex:auto;min-height:0;max-height:none}.conc-plan-body.pick90 .conc-plan-viewport{flex:auto;min-height:0}.conc-plan-body.pick90 .conc-plan-panel,.conc-plan-body.pick90 .conc-plan-panel.compact{flex:none;min-height:10dvh;max-height:30dvh;padding-top:8px;padding-bottom:8px}.conc-plan-body.form25 .conc-plan-viewport{flex:0 0 25dvh;min-height:0}.conc-plan-body.form25 .conc-plan-panel,.conc-plan-body.form25 .conc-plan-panel.compact{flex:auto;min-height:0;max-height:none}.conc-pick-bar{align-items:center;gap:8px;display:flex}.conc-pick-bar-text{color:#334155;flex:1;min-width:0;font-size:13px;line-height:1.3}.conc-pick-bar-text b{color:var(--navy)}.conc-pick-bar .btn{white-space:nowrap;width:auto;margin-bottom:0}.conc-pick-bar-x{flex:none;padding:4px 6px;font-size:20px;line-height:1}.conc-pick-bar+.conc-pick-bar{margin-top:6px}@media (width>=820px){.conc-plan-body.split .conc-plan-viewport,.conc-plan-body.split.is-active .conc-plan-viewport,.conc-plan-body.half .conc-plan-viewport,.conc-plan-body.pick90 .conc-plan-viewport,.conc-plan-body.form25 .conc-plan-viewport{flex:1}.conc-plan-body.pick90 .conc-plan-panel{max-height:none}}.conc-plan-viewport .apt-plan-overlay{will-change:transform;transform:translateZ(0)}@keyframes conc-shake{0%,14%,to{transform:rotate(0)}2%{transform:rotate(-16deg)}4%{transform:rotate(14deg)}6%{transform:rotate(-11deg)}8%{transform:rotate(8deg)}10%{transform:rotate(-4deg)}12%{transform:rotate(2deg)}}.conc-bolt-shake{transform-box:fill-box;transform-origin:50%;animation:3s ease-in-out infinite conc-shake}.conc-num-line{align-items:center;display:flex}.conc-cable-icon{transform-origin:50%;flex-shrink:0;width:17px;height:17px;margin-right:5px;animation:3s ease-in-out infinite conc-shake}@media (prefers-reduced-motion:reduce){.conc-bolt-shake,.conc-cable-icon{animation:none}}.conc-wheel-set{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.conc-wheel{--item-w:60px;-webkit-user-select:none;user-select:none;touch-action:pan-y;cursor:grab;box-sizing:border-box;background:#eef1f7;border:1px solid #d3dae6;border-radius:12px;outline:none;width:100%;height:58px;position:relative;overflow:hidden}.conc-wheel:focus-visible{box-shadow:0 0 0 2px #7fa0dd}.conc-wheel.tenths{border-radius:11px;height:52px}.conc-wheel-selection{width:var(--item-w);pointer-events:none;background:#fff;border:1.5px solid #1f3864;border-radius:8px;position:absolute;top:4px;bottom:4px;left:50%;transform:translate(-50%)}.conc-wheel.ints .conc-wheel-selection{width:84px}.conc-wheel.tenths .conc-wheel-selection{border-radius:6px;top:3px;bottom:3px}.conc-wheel:before,.conc-wheel:after{content:"";z-index:2;pointer-events:none;width:20%;position:absolute;top:0;bottom:0}.conc-wheel:before{background:linear-gradient(90deg,#eef1f7,#eef1f700);left:0}.conc-wheel:after{background:linear-gradient(270deg,#eef1f7,#eef1f700);right:0}.conc-wheel-stage{perspective:400px;position:absolute;inset:0}.conc-wheel-item{width:var(--item-w);margin-left:calc(var(--item-w) / -2);text-align:center;color:#334155;backface-visibility:hidden;font-variant-numeric:tabular-nums;opacity:0;will-change:transform, opacity;justify-content:center;align-items:center;font-size:24px;font-weight:700;display:flex;position:absolute;top:0;bottom:0;left:50%}.conc-wheel.tenths .conc-wheel-item{font-size:20px}.conc-wheel-item.active{color:#0b1f4a;font-weight:800}.conc-wheel.ints .conc-wheel-item.active{white-space:nowrap;width:84px;margin-left:-42px;font-size:27px}.conc-wheel-set.untouched .conc-wheel-selection{background:#fff1c2;border-color:#d69e00}.conc-step-btn{border:1.5px solid var(--navy);width:44px;height:44px;color:var(--navy);touch-action:manipulation;background:#fff;border-radius:50%;flex:0 0 44px;font-size:22px;font-weight:600;line-height:1}.conc-step-btn:active{background:#eef1f6}.conc-over-warn{border:1.5px solid var(--red);color:var(--red);background:#fbe1df;border-radius:8px;margin-top:8px;padding:9px 11px;font-size:13px;font-weight:600;line-height:1.35}.btn.conc-confirm-btn,.btn.conc-confirm-btn:disabled{background:var(--red)}.conc-history-card.slab{grid-template-columns:minmax(0,1fr) 112px;align-items:start;gap:4px 10px;display:grid}.conc-history-left{min-width:0}.conc-history-right{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.conc-history-right .conc-history-photos{justify-content:flex-end;margin-top:0}.conc-history-by{color:var(--muted);overflow-wrap:anywhere;margin-top:4px;font-size:10.5px;line-height:1.35}.conc-history-right .conc-history-by{text-align:right;margin-top:0}.conc-chart-notes{margin-top:6px;font-size:12px;font-weight:600}.conc-chart-notes .off{color:#c1352b}.conc-chart-notes .on{color:#2e9e4f}.conc-overlay-opts{flex-wrap:wrap;gap:4px 14px;margin-bottom:8px;font-size:13px;display:flex}.conc-overlay-opts label{align-items:center;gap:5px;display:inline-flex}.conc-overlay-pad{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.conc-overlay-arrows{grid-template-columns:repeat(3,44px);gap:4px;display:grid}.conc-overlay-arrows .conc-step-btn:nth-child(2){grid-column:2}.conc-overlay-scale{align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.conc-overlay-scale span{text-align:center;min-width:44px}.conc-legend-note{color:var(--muted);border:1.5px solid var(--border);background:#fff;border-radius:10px;margin-top:14px;padding:8px 10px;font-size:11px;line-height:1.35}.conc-legend-title{margin-bottom:5px;font-size:11.5px}.conc-legend-row{gap:6px;margin-bottom:3px}.conc-legend-row .conc-heat{padding:1px 6px;font-size:10px}.conc-legend-extra{margin-top:4px;font-size:10.5px}@keyframes conc-row-pulse{0%,to{background-color:#fff0}50%{background-color:#ffd6d2}}.conc-table tbody tr.conc-overdue-pulse td,.conc-table tbody tr.conc-over-limit td{animation:1s ease-in-out infinite conc-row-pulse}@media (prefers-reduced-motion:reduce){.conc-table tbody tr.conc-overdue-pulse td,.conc-table tbody tr.conc-over-limit td{background:#ffe5e2;animation:none}}@keyframes conc-blink{0%,to{opacity:1}50%{opacity:.25}}.conc-unconfirmed{color:var(--red);font-weight:700;animation:1.2s ease-in-out infinite conc-blink}.conc-blink-svg{animation:1.2s ease-in-out infinite conc-blink}.conc-share-row{border-top:1px solid var(--border);flex-wrap:wrap;gap:8px;margin-top:14px;padding-top:10px;display:flex}.conc-share-row .btn{flex:auto;width:auto;margin-bottom:0}.conc-limit-box{border:2px solid var(--navy,#1f3864);border-radius:12px;margin:10px 0 4px;padding:10px 12px 8px}.conc-limit-box legend{color:var(--navy,#1f3864);padding:0 6px;font-size:14px;font-weight:800}.conc-limit-grid{grid-template-columns:1fr 74px 74px;align-items:center;gap:6px 8px;display:grid}.conc-limit-row{display:contents}.conc-limit-head{color:var(--muted);text-align:center;font-size:11.5px}.conc-limit-name{color:#1e293b;font-size:13px;line-height:1.25}.conc-limit-grid input{text-align:center;border:1px solid var(--border);box-sizing:border-box;border-radius:8px;width:100%;padding:7px 4px;font-size:15px;font-weight:700}.conc-limit-rules{color:#475569;margin:10px 0 0;padding-left:18px;font-size:12.5px;line-height:1.45}.conc-notify-row{border-top:1px solid var(--border);padding:10px 0}.conc-notify-row:first-of-type{border-top:none}.conc-notify-title{color:#1e293b;align-items:center;gap:8px;font-size:13.5px;font-weight:700;display:flex}.conc-notify-title input{width:18px;height:18px}.conc-notify-sub{color:var(--muted);margin:2px 0 6px 26px;font-size:12px}.conc-notify-opts{flex-wrap:wrap;gap:6px 14px;margin-left:26px;font-size:12.5px;display:flex}.conc-notify-opts label{align-items:center;gap:4px;display:flex}.conc-subs-list{color:#334155;margin:6px 0 0;padding-left:18px;font-size:12.5px}.push-enable-card{background:#fff7e0;border:1px solid #f3d27a;border-radius:12px;align-items:center;gap:10px;margin-bottom:10px;padding:10px 12px;display:flex}.push-enable-card .txt{color:#5b4300;flex:1;min-width:0;font-size:13px;line-height:1.35}.push-enable-card .btn{white-space:nowrap;width:auto;margin-bottom:0}.update-gate{z-index:5000;background:#0f172ab8;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.update-gate-card{text-align:center;background:#fff;border-radius:16px;width:100%;max-width:380px;padding:24px 20px 18px;box-shadow:0 10px 40px #00000059}.update-gate-icon{color:var(--navy,#1f3864);margin-bottom:8px;font-size:34px;line-height:1}.update-gate-title{color:var(--navy,#1f3864);margin-bottom:6px;font-size:17px;font-weight:800}.update-gate-text{color:#334155;margin-bottom:12px;font-size:14px;line-height:1.4}.update-gate-note{color:#6b4e00;background:#fff7e0;border-radius:8px;margin-bottom:12px;padding:7px 10px;font-size:12.5px}.update-gate-btn{width:100%;margin-bottom:0}@keyframes conc-spin{to{transform:rotate(360deg)}}.conc-spin-ring{transform-box:fill-box;transform-origin:50%;animation:3s linear infinite conc-spin}.conc-spin-ring.ok{animation-duration:6s}.conc-spin-ring.warn{animation-duration:1.2s}.conc-spin-ring.bad{filter:drop-shadow(0 0 2px #ef4444e6);animation-duration:.6s}@keyframes conc-halo{0%{opacity:.85;transform:scale(1)}to{opacity:0;transform:scale(1.9)}}.conc-ring-halo{transform-box:fill-box;transform-origin:50%;animation:1s ease-out infinite conc-halo}@media (prefers-reduced-motion:reduce){.conc-spin-ring,.conc-ring-halo{animation:none}}.conc-formwork-off{color:#5b21b6;border-color:#7c3aed;flex-direction:column;align-items:center;gap:2px;width:100%;font-weight:700;display:flex}.conc-formwork-off.selected{color:#fff;background:#7c3aed;border-color:#7c3aed}.conc-formwork-off .pick-btn-sub{font-weight:400}.conc-formwork-off.selected .pick-btn-sub{color:#ffffffe0}.conc-formwork-off-time{background:#fef2f2;border:1.5px solid #fca5a5;border-radius:10px;margin-top:8px;padding:8px 10px;font-size:13px}.conc-quick-dt{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.conc-quick-days{gap:6px;display:flex}.conc-quick-days .pick-btn{white-space:nowrap;flex:none;width:auto;min-width:0;margin:0;padding:8px 12px}.conc-quick-time{color:var(--muted);align-items:center;gap:6px;margin:0;font-size:13px;display:flex}.conc-quick-time .conc-dt-input{width:76px}.conc-surface-tag{color:#5b21b6;background:#ede9fe;border-radius:10px;margin:2px 0 4px;padding:1px 8px;font-size:11.5px;font-weight:700;display:inline-block}.conc-surface-note{color:#5b21b6;background:#ede9fe;border-radius:8px;margin-bottom:8px;padding:6px 10px;font-size:13px;font-weight:600}.conc-history-card.surface{border-left:3px solid #7c3aed}.conc-badge.conc-badge-surface{color:#5b21b6;background:#ede9fe}.conc-chart-notes .surface{color:#6d28d9}.conc-dur-host{position:relative}.conc-dur-bar{pointer-events:none;z-index:1;background:#e5e7eb;height:3px;position:absolute;overflow:hidden}.conc-dur-bar i{height:3px;display:block}.conc-stats-scroll{overflow-x:auto}.conc-stats-table td,.conc-stats-table th{white-space:nowrap}.conc-stats-table td:first-child{white-space:normal}.conc-new-tag{color:#fff;vertical-align:2px;text-transform:lowercase;letter-spacing:.2px;background:#2563eb;border-radius:6px;margin-left:6px;padding:0 5px;font-size:9.5px;font-weight:800;line-height:15px;display:inline-block}.conc-manage-col{border-top:1px solid var(--border);flex-direction:column;gap:8px;margin-top:14px;padding-top:12px;display:flex}.conc-manage-col .btn{width:100%;margin-bottom:0}.conc-edited-tag{color:#b54708;font-weight:600}.btn.conc-text-red{color:#b42318}.conc-heat-editor{flex-direction:column;max-width:480px;max-height:calc(100dvh - 32px);display:flex}.conc-heat-editor-head{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.conc-heat-editor-body{-webkit-overflow-scrolling:touch;flex:auto;min-height:0;overflow-y:auto}.conc-heat-editor-sec{text-transform:uppercase;letter-spacing:.3px;color:var(--muted);margin:12px 0 6px;font-size:12px;font-weight:800}.conc-heat-editor-sec:first-of-type{margin-top:2px}.conc-heat-editor-row{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;display:flex}.conc-heat-editor-when{font-size:13.5px}.conc-heat-editor-pick{gap:6px;display:flex}.conc-heat-editor-pick .pick-btn,.conc-heat-editor-pick .btn{width:auto;margin:0;padding:5px 12px}.conc-heat-editor-pick .pick-btn.selected:disabled{opacity:1}.conc-heat-log{margin:0;padding:0;font-size:13px;list-style:none}.conc-heat-log li{border-bottom:1px dashed var(--border);padding:5px 0;line-height:1.35}.conc-heat-log-at{color:var(--muted);font-size:12px;display:block}.conc-point-chips{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.conc-point-chip{border:2px solid var(--pc);min-width:34px;height:34px;color:var(--pc);cursor:pointer;background:#fff;border-radius:17px;padding:0 8px;font-size:14px;font-weight:800}.conc-point-chip.on{background:var(--pc);color:#fff;box-shadow:0 0 0 3px #0f172a2e}.conc-archive-note{color:var(--muted);margin:0 0 8px;font-size:12.5px}.conc-archive-exp{color:#b54708;font-size:11.5px}.conc-archive-view .conc-history{margin-top:6px}.conc-weather-frame.inline{margin:0 0 10px;display:inline-block;position:static}.conc-duration{color:#334155;margin:6px 0 8px;font-size:13px}.conc-duration-bar{background:#e5e7eb;border-radius:3px;height:5px;margin-top:4px;display:block;overflow:hidden}.conc-duration-bar i{height:100%;display:block}@keyframes conc-done-pulse{0%{opacity:.9;transform:scale(.75)}70%{opacity:0;transform:scale(1.45)}to{opacity:0;transform:scale(1.45)}}.conc-done-pulse{transform-box:fill-box;transform-origin:50%;animation:1.6s ease-out infinite conc-done-pulse}@media (prefers-reduced-motion:reduce){.conc-done-pulse{animation:none}}.conc-modal-backdrop{z-index:1200;background:#0f172a8c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.conc-modal{background:#fff;border-radius:14px;width:100%;max-width:420px;padding:14px 14px 12px;box-shadow:0 10px 30px #0000004d}.conc-modal-danger{border-top:6px solid #d92d20}.conc-modal-ok{border-top:6px solid #16a34a}.conc-modal-title{color:#0f172a;margin-bottom:6px;font-size:16px;font-weight:800}.conc-modal-danger .conc-modal-title{color:#b42318}.conc-modal-text{color:#334155;margin-bottom:12px;font-size:14px;line-height:1.4}.conc-rise-tag{color:#b42318;background:#fee4e2;border-radius:10px;margin:2px 0 4px;padding:1px 8px;font-size:11.5px;font-weight:700;display:inline-block}.conc-weather-line{color:#64748b;cursor:help;align-items:center;gap:3px;margin-top:4px;font-size:10.5px;display:inline-flex;position:relative}.conc-wind-arrow{color:#2563eb;font-weight:700;line-height:1;display:inline-block}.conc-weather-pop{z-index:30;white-space:pre-line;color:#fff;background:#0f172a;border-radius:8px;width:max-content;max-width:260px;margin-top:4px;padding:7px 9px;font-size:11.5px;line-height:1.35;position:absolute;top:100%;left:0;box-shadow:0 4px 14px #00000040}.conc-weather-pop.up{margin:0 0 6px;top:auto;bottom:100%}.conc-weather-frame{z-index:4;color:#0f172a;cursor:help;background:#ffffffed;border:1.5px solid #1f3864;border-radius:9px;padding:5px 8px;font-size:11.5px;line-height:1.25;position:absolute;bottom:34px;left:8px;box-shadow:0 1px 4px #0003}.conc-weather-frame-head{color:#64748b;font-size:10px;font-weight:700}.conc-weather-frame-main{white-space:nowrap;align-items:baseline;gap:7px;display:flex}.conc-weather-frame-main b{font-size:14px}.conc-site-map{border:1px solid var(--border);z-index:0;border-radius:10px;height:240px;overflow:hidden}.conc-site-row{align-items:flex-end;gap:8px;display:flex}.conc-site-row .btn{flex:none;width:auto;margin-bottom:0}.conc-site-buildings{flex-wrap:wrap;gap:4px 14px;display:flex}.conc-site-users{border:1px dashed var(--border);border-radius:10px;flex-direction:column;gap:6px;margin-top:14px;padding:10px 12px;display:flex}.conc-ring-legend{border:1px solid var(--border);background:#f8fafc;border-radius:10px;margin:10px 0 0;padding:8px 10px}.conc-ring-legend-title{color:var(--muted);margin-bottom:4px;font-size:12px;font-weight:700}.conc-ring-legend-row{color:var(--text,#0f172a);align-items:center;gap:8px;padding:2px 0;font-size:12.5px;display:flex}.conc-ring-legend-row svg{flex:none}.conc-plan-body.split .conc-plan-viewport{flex:0 0 20dvh}.conc-plan-body.split.is-active .conc-plan-viewport{flex:0 0 50dvh}@media (width>=820px){.conc-plan-body.split .conc-plan-viewport,.conc-plan-body.split.is-active .conc-plan-viewport{flex:1}}.conc-actions-col{flex-direction:column;gap:8px;margin:10px 0 4px;display:flex}.conc-actions-col .conc-actions-row{gap:8px;display:flex}.btn.conc-btn-green{color:#fff;background:#2e9e4f;border-color:#2e9e4f}.btn.conc-btn-red{color:#fff;background:#d92d20;border-color:#d92d20}.conc-wheel-line{align-items:center;gap:4px;display:flex}.conc-wheel-line .conc-wheel{flex:1;min-width:0}.conc-wheel-pm{color:#1f3864;touch-action:manipulation;background:#fff;border:1.5px solid #c5cedd;border-radius:8px;flex:0 0 30px;width:30px;height:30px;padding:0;font-size:18px;font-weight:700;line-height:1}.conc-wheel-pm.small{border-radius:8px;flex-basis:30px;height:30px;font-size:17px}.conc-wheel-pm:active{background:#eef1f6}.conc-alerts-table{flex-direction:column;gap:8px;display:flex}.conc-alerts-row{border:1px solid var(--border);background:#fafbfc;border-radius:10px;padding:8px 10px}.conc-alerts-label{margin-bottom:5px;font-size:13px;font-weight:600}.conc-alerts-checks{flex-wrap:wrap;gap:4px 14px;font-size:13px;display:flex}.conc-alerts-checks label{align-items:center;gap:5px;display:inline-flex}.conc-pop{position:relative}.conc-pop-box{border:1.5px solid var(--navy);background:#fff;border-radius:10px;margin-top:6px;padding:10px;font-size:13px;box-shadow:0 6px 20px #0f172a2e}.conc-pop-box.danger{border-color:var(--red)}.conc-pop-actions{gap:8px;margin-top:8px;display:flex}.conc-dt-wheels{grid-template-columns:1.6fr 1fr 1fr;gap:4px;margin-top:6px;display:grid}.conc-dt-wheels .conc-wheel{height:46px}.conc-chip-x{align-items:center;display:inline-flex;position:relative}.conc-chip-x .chip{padding-right:20px}.conc-chip-x .x{color:#374151;background:#e5e7eb;border:none;border-radius:50%;width:18px;height:18px;padding:0;font-size:11px;line-height:18px;position:absolute;top:-4px;right:-4px}.conc-chip-x .x:hover{color:#7f1d1d;background:#fca5a5}.conc-chip-confirm{border:1.5px solid var(--red);background:#fff1f0;border-radius:14px;align-items:center;gap:6px;padding:4px 8px;font-size:12px;display:inline-flex}.conc-chip-confirm button{background:0 0;border:none;padding:0 2px;font-weight:700}.conc-chip-confirm .yes{color:var(--red)}.pour-me{color:var(--muted);margin-top:4px;font-size:12px}.pour-current{border-bottom:1px solid var(--border);padding:8px 0}.pour-current:last-of-type{border-bottom:none}.pour-current-place{margin-bottom:6px;font-size:15px;font-weight:700}.pour-current-btns{flex-direction:column;gap:6px;display:flex}.pour-day-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.pour-day-title{text-align:center;flex:1;font-size:15px;font-weight:700}.pour-total{background:#eef2ff;border-radius:12px;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;padding:10px 12px;display:flex}.pour-total b{color:var(--navy);font-size:24px}.pour-stats{border-collapse:collapse;width:100%;font-size:13px}.pour-stats th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);padding:4px 6px;font-size:11px;font-weight:600}.pour-stats td{border-bottom:1px solid var(--border);vertical-align:top;padding:6px}.pour-stats td:not(:first-child),.pour-stats th:not(:first-child){text-align:right;white-space:nowrap}.pour-bars{grid-template-columns:repeat(14,1fr);gap:3px;height:74px;margin-top:12px;display:grid}.pour-bar{background:0 0;border:none;flex-direction:column;justify-content:flex-end;align-items:stretch;min-width:0;padding:0;display:flex}.pour-bar span{background:#a5b4fc;border-radius:3px 3px 0 0;min-height:2px;display:block}.pour-bar.on span{background:var(--navy)}.pour-bar i{color:var(--muted);text-align:center;margin-top:2px;font-size:9.5px;font-style:normal}.pour-batch-card{text-align:left;border:1px solid var(--border);width:100%;color:var(--text);background:#fff;border-radius:12px;align-items:flex-start;gap:10px;margin-bottom:8px;padding:10px 12px;display:flex}.pour-swatch{vertical-align:-2px;border:1px solid #0000001f;border-radius:4px;flex-shrink:0;width:14px;height:14px;display:inline-block}.pour-swatch.big{width:18px;height:18px;margin-top:2px}.pour-batch-card .pour-swatch{margin-top:3px}.pour-batch-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.pour-batch-title{font-size:14px;font-weight:700}.pour-batch-sub{color:var(--muted);font-size:12px}.pour-batch-tags{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.pour-tag{color:#475569;white-space:nowrap;background:#f1f5f9;border-radius:10px;padding:2px 7px;font-size:10.5px;font-weight:700;display:inline-block}.pour-tag.warn{color:var(--red);background:#fff1f0}.pour-tag.ok{color:var(--green);background:#ecfdf3}.pour-floor-card{padding:12px}.pour-floor-title{font-size:15px;font-weight:700}.pour-plan-row{flex-direction:column;gap:6px;margin-top:8px;display:flex}.pour-plan-open{text-align:left;border:1.5px solid var(--border);width:100%;color:var(--text);background:#f8fafc;border-radius:10px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.pour-plan-type{color:var(--navy);font-weight:700}.pour-plan-stats{color:var(--muted);font-size:12px}.pour-plan-lock{color:var(--amber);font-size:11px;font-weight:600}.pour-zones-btn{align-self:stretch;width:100%;margin-bottom:0;padding:11px 14px;font-size:15px;font-weight:600}.pour-plan-unconf{color:var(--red);font-size:12.5px;font-weight:700}.pour-floor-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.pick-btn.pour-tool-on{background:var(--navy);color:#fff;border-color:var(--navy)}.pick-btn.pour-tool-on .pick-btn-sub{color:#ffffffbf}.pick-btn:disabled{opacity:.45}.pour-one-class{border-left:3px solid var(--amber);background:#fff7e6;font-size:12.5px}.pour-legend{flex-direction:column;gap:4px;display:flex}.pour-legend-item{align-items:stretch;gap:4px;display:flex}.pour-legend-item .pour-legend-row{flex:1;min-width:0}.pour-legend-del{color:#b42318;background:#fff5f4;border:1px solid #f3c5c0;border-radius:8px;flex:0 0 38px;justify-content:center;align-items:center;padding:0;display:flex}.pour-legend-del:active{background:#fde1de}.pour-legend-row{text-align:left;color:var(--text);background:#f8fafc;border:none;border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px;font-size:12.5px;display:flex}.pour-chip{color:var(--navy);background:#eef2ff;border-radius:14px;align-items:center;gap:4px;margin:2px;padding:4px 4px 4px 10px;font-size:12.5px;font-weight:600;display:inline-flex}.pour-chip:not(:has(button)){padding-right:10px}.pour-chip.danger{color:var(--red);background:#fff1f0;gap:6px}.pour-chip-x{color:var(--navy);background:#1f38641f;border:none;border-radius:50%;width:20px;height:20px;padding:0;font-size:11px;line-height:20px}.pour-chip-x:hover{color:#7f1d1d;background:#fca5a5}.pour-form-row{flex-wrap:wrap;gap:8px;display:flex}.pour-form-row>.field{flex:140px;min-width:0}.pour-dt-btn{justify-content:space-between;align-items:center;width:100%;margin-bottom:0;font-weight:700;display:flex}.pour-kv-list{flex-direction:column;gap:3px;margin:6px 0 4px;display:flex}.pour-kv{border-bottom:1px dashed var(--border);justify-content:space-between;gap:10px;padding:3px 0;font-size:13px;display:flex}.pour-kv span{color:var(--muted)}.pour-kv b{text-align:right}.pour-check{align-items:center;gap:6px;margin:4px 0 8px;font-size:13px;display:flex}.pour-reg-total{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:13px;display:flex}.pour-reg-card{padding:0;overflow-x:auto}.pour-reg{border-collapse:collapse;width:100%;min-width:980px;font-size:12.5px}.pour-reg th{background:var(--navy);color:#fff;text-align:center;padding:6px 5px;font-size:11.5px;font-weight:600;position:sticky;top:0}.pour-reg td{border:1px solid var(--border);vertical-align:middle;text-align:center;padding:5px}.pour-reg tr.pour-reg-first td{border-top:2px solid #94a3b8}.pour-reg tr.pour-reg-missing td{background:#fff8f7}.pour-cell-edit{color:var(--navy);font:inherit;cursor:pointer;background:0 0;border:none;padding:2px 4px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.pour-cell-input{width:100%;min-width:70px;padding:3px 4px;font-size:12.5px}.pour-cell-link{color:var(--navy);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0;font-weight:600}.pour-set-contractor{border-bottom:1px solid var(--border);padding:8px 0}.pour-set-name{font-weight:700}.pour-users{flex-direction:column;gap:4px;max-height:60vh;display:flex;overflow-y:auto}.pour-user-row{border:1px solid var(--border);border-radius:10px;padding:8px 10px}.pour-user-row.on{background:#f5f7ff;border-color:#a5b4fc}.pour-user-check{align-items:flex-start;gap:8px;font-size:13.5px;display:flex}.pour-user-check input{margin-top:3px}.pour-user-opts{flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0 0 24px;display:flex}.pour-user-opts select{flex:150px;min-width:0}.pour-print-sheet{background:#fff;border-radius:12px;padding:12px}.pour-print-head{margin-bottom:8px;font-size:14px}.pour-print-plan{border:1px solid var(--border);width:100%;position:relative}.pour-print-plan img{width:100%;height:auto;display:block}.pour-print-plan svg{width:100%;height:100%;position:absolute;inset:0}.pour-print-table{border-collapse:collapse;width:100%;margin-top:10px;font-size:12px}.pour-print-table th,.pour-print-table td{text-align:left;vertical-align:top;border:1px solid #94a3b8;padding:4px 6px}.pour-print-table th{background:#f1f5f9}.pour-view-switch{color:var(--muted);align-items:center;gap:8px;margin-bottom:10px;font-size:13px;display:flex}.pour-view-btns{flex:1;gap:8px;display:flex}.pour-view-btns button{border:1.5px solid var(--border);color:var(--navy);background:#fff;border-radius:10px;flex:1;padding:8px 10px;font-size:13px;font-weight:600}.pour-view-btns button.active{background:var(--navy);border-color:var(--navy);color:#fff}.pour-view-btns button:disabled{opacity:.4}.pour-add-btn{flex-direction:column;align-items:center;gap:2px;width:100%;font-size:16px;display:flex}.pour-add-btn .pick-btn-sub{color:#ffffffd9;font-weight:400}.pour-step-label{color:var(--muted);text-transform:uppercase;letter-spacing:.3px;margin:2px 0 4px;font-size:12px;font-weight:700}.pour-choice{flex-wrap:wrap;gap:6px;display:flex}.pour-choice .chip{margin:0;padding:8px 14px;font-size:14px}.pour-chip.repour{color:#92400e;background:#fff7e6}.pour-legend-row.on{background:#e0e7ff;box-shadow:inset 0 0 0 1.5px #818cf8}.pour-legend-main{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.pour-tag.wait{color:#b45309;background:#fff7e6}.pour-floor-progress{background:#f8fafc;border-radius:10px;margin:10px 0 4px;padding:8px 10px;font-size:13px}.pour-photos{flex-wrap:wrap;gap:6px;display:flex}.pour-photo{position:relative}.pour-photo img{object-fit:cover;cursor:zoom-in;border-radius:8px;width:72px;height:72px;display:block}.pour-photo-x{color:#fff;background:#0009;border:none;border-radius:50%;width:20px;height:20px;padding:0;font-size:11px;line-height:20px;position:absolute;top:2px;right:2px}.pour-bld{border:1.5px solid var(--border);background:#fff;border-radius:12px;margin-bottom:10px;padding:10px 12px}.pour-bld-head{color:var(--navy);margin-bottom:8px;font-size:14px;font-weight:700}.pour-floor-btns{flex-wrap:wrap;gap:6px;display:flex}.pour-floor-btns .btn{flex:140px;margin-bottom:0}.pour-floor-btns .btn small{opacity:.85;font-size:11.5px;font-weight:400;display:block}.pour-stats tr.pour-main td{border-bottom:none}.pour-stats tr.pour-sub td{color:var(--muted);border-bottom:none;padding-top:0;padding-bottom:2px;font-size:12px}.pour-stats tr.pour-sub td:first-child{padding-left:16px}.pour-stats tr.pour-sub-last td{border-bottom:1px solid var(--border);padding-bottom:6px}.pour-bar{position:relative}.pour-bar b{pointer-events:none;border-top:2px dashed #ea580c;height:0;position:absolute;left:-1px;right:-1px}.pour-bars-legend{color:var(--muted);gap:12px;margin-top:6px;font-size:11px;display:flex}.pour-bars-legend i{vertical-align:middle;width:14px;margin-right:4px;display:inline-block}.pour-sched-row{border-bottom:1px solid var(--border);padding:8px 0;font-size:13px}.pour-sched-row:last-child{border-bottom:none}.pour-sched-row b.ok{color:var(--green)}.pour-sched-row b.bad{color:var(--red)}.pour-filters-compact{padding:10px 12px}.pour-filters-compact .pour-filter-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));align-items:end;gap:6px 8px;display:grid}.pour-filters-compact .field{margin-bottom:0}.pour-filters-compact .field label{margin-bottom:2px;font-size:11px}.pour-filters-compact input,.pour-filters-compact select{padding:6px 8px;font-size:13px}.pour-filters-compact .pour-check{margin:6px 0 0}.pour-filter-chip{color:var(--red);background:#fff1f0;border-radius:14px;align-items:center;gap:6px;margin-top:6px;padding:3px 4px 3px 10px;font-size:12px;font-weight:600;display:inline-flex}.pour-sched-table{border-collapse:collapse;width:100%;font-size:13px}.pour-sched-table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);padding:4px 6px;font-size:11px;font-weight:600}.pour-sched-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:4px 6px}.pour-sched-table input{width:100%;min-width:0;padding:5px 6px;font-size:13px}.pour-sched-table td.done{color:var(--green);font-size:12px;font-weight:600}.pour-sched-table td.late{color:var(--red);font-size:12px;font-weight:600}@media print{.no-print,.sticky-header,.bottom-nav,.app-version-footer,.scroll-top-btn,.sync-banner{display:none!important}.pour-print-sheet{border-radius:0;padding:0}body,.app-shell,.content{background:#fff!important;margin:0!important;padding:0!important}.pour-print-table tr{break-inside:avoid}}.conc-pour-pending{background:#f7f5ff;border:1.5px solid #c4b5fd;border-radius:12px;flex-direction:column;gap:6px;margin-bottom:10px;padding:10px 12px;display:flex}.conc-pour-row{text-align:left;color:#4c1d95;background:#fff;border:1px solid #ddd6fe;border-radius:8px;flex-direction:column;gap:1px;padding:7px 10px;font-size:13px;font-weight:600;display:flex}.conc-pour-row.late{border-color:var(--red);color:var(--red);animation:1s ease-in-out infinite conc-row-pulse}.conc-plan-type-tag{color:var(--navy);vertical-align:1px;background:#eef2ff;border-radius:10px;margin-left:8px;padding:1px 7px;font-size:11px;font-weight:600;display:inline-block}.conc-cal{border:1px solid var(--border);border-radius:10px;margin-top:8px;padding:6px}.conc-cal-head{justify-content:space-between;align-items:center;margin-bottom:4px;font-weight:700;display:flex}.conc-cal-head button{width:34px;height:30px;color:var(--navy);background:#f1f5f9;border:none;border-radius:8px;font-size:18px}.conc-cal-head button:disabled{opacity:.3}.conc-cal-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.conc-cal-wd{text-align:center;color:var(--muted);padding:2px 0;font-size:10.5px}.conc-cal-day{height:34px;color:var(--text);touch-action:manipulation;background:0 0;border:none;border-radius:8px;font-size:14px;font-weight:600}.conc-cal-day.today{box-shadow:inset 0 0 0 1.5px #a5b4fc}.conc-cal-day.on{background:var(--navy);color:#fff;box-shadow:none}.conc-cal-day:disabled{color:#cbd5e1;font-weight:400}.conc-dt-time{justify-content:center;align-items:center;gap:6px;margin-top:8px;display:flex}.conc-dt-time .conc-wheel{flex:0 0 96px;width:96px;height:46px}.conc-dt-label{color:var(--muted);margin-right:4px;font-size:12px}.conc-dt-colon{color:var(--navy);font-size:20px;font-weight:700}.conc-heat-off-note{border:1px solid var(--border);background:#f1f5f9;border-radius:10px;flex-direction:column;align-items:flex-start;gap:6px;margin:8px 0 4px;padding:8px 10px;font-size:13px;display:flex}.conc-heat-off-note .conc-pop-box{align-self:stretch}.conc-point-row.framed{border:1.5px solid var(--border);background:#fcfdff;border-radius:14px;padding:6px 8px}.conc-noselect,.conc-noselect *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.conc-noselect input,.conc-noselect textarea,.conc-noselect select{-webkit-user-select:text;user-select:text}.conc-point-row.framed{position:relative}.conc-point-row.framed.active{border-color:#d92d20;box-shadow:0 0 0 2px #d92d202e}.conc-point-cover{z-index:3;cursor:pointer;border-radius:14px;position:absolute;inset:0}.conc-heat-off-note{background:0 0;border:none;padding:0}@keyframes conc-ghost-poly{0%,to{stroke:#94a3b8;fill:#94a3b826}50%{stroke:#facc15;fill:#fef08a80}}@keyframes conc-ghost-line{0%,to{stroke:#94a3b8}50%{stroke:#facc15}}@keyframes conc-ghost-dot{0%,to{fill:#94a3b8}50%{fill:#fde047}}.conc-ghost-poly{animation:3s ease-in-out infinite conc-ghost-poly}.conc-ghost-line{animation:3s ease-in-out infinite conc-ghost-line}.conc-ghost-dot{animation:3s ease-in-out infinite conc-ghost-dot}.conc-dt-input{text-align:center;border:1.5px solid var(--border);letter-spacing:1px;border-radius:10px;width:96px;padding:6px 8px;font-size:22px;font-weight:700}.conc-dt-input:focus{border-color:var(--navy);outline:none}.conc-apply-checks{flex-wrap:wrap;gap:4px 16px;margin-top:6px;display:flex}.conc-apply-checks .pour-check{margin:2px 0;font-size:14px}.conc-el-rows{flex-direction:column;gap:4px;max-height:220px;padding-top:6px;display:flex;overflow-y:auto}.conc-el-row{align-items:center;gap:8px;min-height:30px;display:flex}.conc-el-row .chip{flex-shrink:0;margin:0}.conc-el-by{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.conc-el-x{color:var(--red);cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:15px}.conc-plan-viewport.conc-hand,.conc-plan-viewport.conc-hand *{cursor:pointer!important}.conc-trend{margin-left:3px;font-size:15px;font-weight:800;line-height:1;display:inline-block}.conc-trend.up{color:#d92d20}.conc-trend.down{color:#2563eb}.conc-trend.flat{color:#94a3b8}.conc-home-table .c-numaxes{width:22%}.conc-home-table td.conc-num{overflow-wrap:anywhere;max-width:92px}.conc-home-table .c-temp{min-width:86px}.conc-kind-counts.boxed{border:1.5px solid var(--border);background:#fff;border-radius:10px;margin-top:6px;padding:6px 10px}.conc-count-cable{color:#b45309;white-space:nowrap;font-weight:600}.conc-cable-icon.static{animation:none}.conc-count-cable .conc-cable-icon{vertical-align:-2px;width:15px;height:15px;margin:0 0 0 2px}.conc-live-block{background:#fffbf8;border:1.5px solid #f2b8a2;border-radius:12px;padding:10px 10px 12px}.conc-chart-notes .cable{color:#b45309}.conc-chart-notes .est{color:#6d28d9;font-weight:500}.conc-chart-notes .est i{vertical-align:middle;border-top:2px dashed #7c3aed;width:20px;margin-right:4px;display:inline-block}.conc-manage-row{gap:8px;display:flex}.conc-manage-row .btn{flex:1;min-width:0;margin-bottom:0;padding-left:6px;padding-right:6px}.conc-north-btn{z-index:5;touch-action:manipulation;background:0 0;border:none;justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:flex;position:absolute;top:8px;right:8px}.conc-north-btn svg{filter:drop-shadow(0 1px 3px #0000004d)}.conc-north-btn.unset span{color:#1f3864;background:#ffffffe6;border:1.5px dashed #1f3864;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:13px;font-weight:800;display:flex}.conc-north-pad{cursor:grab;justify-content:center;align-items:center;width:190px;height:190px;margin:6px auto;display:flex}.conc-north-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;display:flex}.conc-north-row .btn{width:auto;margin-bottom:0}.conc-north-row b{text-align:center;min-width:44px}.conc-wind-arrow.big{font-size:15px}.conc-stats-list{flex-direction:column;gap:8px;display:flex}.conc-stats-card{border:1px solid var(--border);border-radius:10px;padding:8px 10px}.conc-stats-name{flex-wrap:wrap;align-items:baseline;gap:2px 8px;margin-bottom:6px;display:flex}.conc-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.conc-stats-grid div{flex-direction:column;min-width:0;display:flex}.conc-stats-grid span{color:var(--muted);font-size:10.5px;line-height:1.2}.conc-stats-grid b{overflow-wrap:anywhere;font-size:14px}.conc-stage{border:1.5px solid #f59e0b;border-radius:12px;min-width:0;margin:0 0 14px;padding:4px 10px 10px;transition:border-color .25s}.conc-stage>legend{color:#b45309;margin-left:-2px;padding:0 6px;font-size:12.5px;font-weight:800}.conc-stage.done{border-color:#16a34a}.conc-stage.done>legend{color:#15803d}.conc-stage.done>legend:after{content:" ✓"}.conc-stage .field:last-child{margin-bottom:0}.conc-fw-models{flex-direction:column;gap:6px;margin:8px 0 10px;display:flex}.conc-fw-model{background:#f8fafc;border-radius:8px;flex-direction:column;gap:1px;padding:6px 8px;font-size:13px;display:flex}.conc-fw-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.conc-fw-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}.conc-fw-row .field{min-width:0;margin-bottom:8px}.conc-fw-pair{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:8px;padding:6px 0;font-size:13px;display:flex}.site-name{color:var(--navy);font-weight:600}.site-name.compact{margin-left:4px;font-size:12px}.site-name.compact:before{content:"· ";color:var(--muted);font-weight:400}.site-switcher{width:auto;max-width:100%;color:var(--navy);border-radius:8px;padding:6px 28px 6px 10px;font-weight:600}.site-switcher.compact{vertical-align:middle;border-radius:6px;margin-left:4px;padding:2px 22px 2px 6px;font-size:12px}.hub-site{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.hub-site-label{color:var(--muted);font-size:13px}.hub-card-admin{border-style:dashed}.main-admin-link{align-items:center;gap:6px;width:auto;margin-bottom:12px;display:inline-flex}.main-admin-link svg{width:16px;height:16px}.admin-tabs{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.admin-tabs .chip{cursor:pointer;font:inherit;border:none;font-size:13px}.admin-site-pick{align-items:center;gap:8px;margin-bottom:12px;font-size:13px;display:flex}.admin-site-pick select{width:auto}.admin-setup-hint{background:#fff8e6;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.admin-setup-hint .btn{width:auto;margin:0}.admin-subtitle{color:var(--navy);margin:12px 0 4px;font-size:13px;font-weight:600}.admin-checks{flex-direction:column;gap:2px;margin:4px 0 8px;display:flex}.admin-checks .pour-check{align-items:flex-start;margin:3px 0}.admin-checks .pour-check input{width:auto;margin-top:2px}.admin-check-desc{color:var(--muted);font-size:12px;font-weight:400;display:block}.admin-site-card .card-title{margin-bottom:2px}.admin-chips{flex-wrap:wrap;gap:4px;margin:8px 0;display:flex}.admin-chips .chip{font-size:12px}.chip-x{color:inherit;cursor:pointer;background:0 0;border:none;width:auto;padding:0 0 0 2px;font-size:11px}.admin-btn-row{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.admin-btn-row .btn{width:auto;margin:0}.admin-row-box{border:1px solid var(--border);border-radius:10px;margin-bottom:6px;padding:6px 8px}.admin-row{align-items:center;gap:6px;display:flex}.admin-row .btn{width:auto;margin:0}.admin-row-main{text-align:left;font:inherit;cursor:pointer;color:var(--text);background:0 0;border:none;flex:1;padding:4px 0;font-weight:600}.admin-sub-box{background:#f2f5fa;border-radius:10px;margin:6px 0;padding:8px 10px}.admin-floors-text{border:1px solid var(--border);border-radius:8px;width:100%;padding:8px;font-family:inherit;font-size:13px}.admin-muted{color:var(--muted);font-weight:400}.admin-data-type{text-align:left;border:1px solid var(--border);cursor:pointer;width:100%;font:inherit;color:var(--text);background:#f7f9fc;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;padding:10px 12px;display:flex}.admin-data-count{color:var(--navy);text-align:right;white-space:nowrap;font-size:18px;font-weight:700}.admin-filters{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px;display:flex}.admin-filters select{width:auto}.admin-filters .btn{width:auto;margin:0}.admin-date{align-items:center;gap:4px;font-size:13px;display:inline-flex}.admin-date input{width:auto}.admin-select-bar{z-index:2;background:var(--bg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;display:flex;position:sticky;top:0}.admin-select-bar .pour-check input{width:auto}.admin-select-bar .btn{width:auto;margin:0}.admin-danger{background:var(--red);border-color:var(--red)}.admin-danger-text{color:var(--red)}.admin-data-row{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:10px;align-items:flex-start;gap:10px;margin-bottom:6px;padding:8px 10px;display:flex}.admin-data-row input{width:auto;margin-top:3px}.admin-data-row.selected{border-color:var(--navy);background:#eef3fb}.admin-data-row-text{flex:1;min-width:0;font-size:13px}.admin-user-sites{color:var(--muted);margin-top:8px;font-size:12.5px}.admin-user-sites .btn{width:auto;margin:0 0 0 4px;padding:2px 8px}.admin-user-site-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-user-site-row .pour-check{min-width:140px}.admin-user-site-row .pour-check input{width:auto}.admin-user-site-row select{flex:1;width:auto;min-width:160px;font-size:13px}.wizard-steps{gap:4px;margin-bottom:14px;padding-bottom:2px;display:flex;overflow-x:auto}.wizard-step{white-space:nowrap;border:1px solid var(--border);width:auto;font:inherit;color:var(--muted);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:6px;padding:5px 10px 5px 5px;font-size:12.5px;display:inline-flex}.wizard-step:disabled{opacity:.5;cursor:default}.wizard-step-n{background:#eef1f6;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:inline-flex}.wizard-step.active{border-color:var(--navy);color:var(--navy);font-weight:600}.wizard-step.active .wizard-step-n{background:var(--navy);color:#fff}.wizard-step.done .wizard-step-n{background:var(--green);color:#fff}.hub-site-box{border:1.5px solid var(--border);background:#fafbfd;border-radius:16px;margin-bottom:14px;padding:12px 12px 0}.hub-site-box.current{border-color:var(--navy-light)}.hub-site-title{color:var(--navy);margin:0 2px 10px;font-size:15px;font-weight:700}.hub-site-box .hub-card{margin-bottom:10px;padding:14px 12px}.hub-site-empty{color:var(--muted);padding:0 2px 12px;font-size:13px}.sidebar-site{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:8px 14px 10px;display:flex}.sidebar-site-label{color:var(--muted);font-size:12px}.sidebar-site .site-switcher{flex:1}.user-card{margin-bottom:8px;padding:8px 10px}.user-card-head{align-items:flex-start;gap:8px;display:flex}.user-card-n{min-width:22px;height:22px;color:var(--muted);background:#eef1f6;border-radius:11px;flex:none;justify-content:center;align-items:center;margin-top:1px;padding:0 4px;font-size:11px;font-weight:700;display:inline-flex}.user-card-main{flex:1;min-width:0}.user-card-name{color:var(--text);flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;font-weight:600;display:flex}.user-card-sub{color:var(--muted);margin-top:1px;font-size:12px}.user-online{color:var(--green);background:#e6f4ea;border-radius:8px;align-items:center;gap:4px;padding:1px 6px;font-size:10.5px;font-weight:600;display:inline-flex}.user-online:before{content:"";background:var(--green);border-radius:50%;width:6px;height:6px}.user-card-actions{flex-wrap:wrap;gap:4px;margin:6px 0 0 30px;display:flex}.user-btn{border:1px solid var(--border);width:auto;color:var(--navy);cursor:pointer;background:#fff;border-radius:7px;margin:0;padding:3px 8px;font-family:inherit;font-size:11.5px;line-height:1.4}.user-btn:hover{border-color:var(--navy-light)}.user-btn.danger{color:var(--red)}.user-check{align-items:flex-start;gap:8px;margin:10px 0;font-size:13px;display:flex}.user-check input{width:auto;margin-top:2px}.user-adv-sites{border-top:1px solid var(--border);margin-top:10px;padding-top:4px}.modal-sheet-backdrop{z-index:900;background:#00000080;align-items:flex-end;display:flex;position:fixed;inset:0}.modal-sheet{background:#fff;border-radius:16px 16px 0 0;width:100%;max-width:560px;max-height:85vh;margin:0 auto;padding:18px;overflow-y:auto}@media (width>=700px){.modal-sheet-backdrop{align-items:center}.modal-sheet{border-radius:16px}}.visits-list{flex-direction:column;gap:6px;display:flex}.visit-row{border:1px solid var(--border);border-radius:10px;padding:7px 10px}.visit-time{font-size:13px;font-weight:600}.visit-meta{color:var(--muted);word-break:break-word;margin-top:2px;font-size:12px}.backup-module-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.backup-module-head .admin-muted{font-size:12px}.backup-restore{background:#fff6f5;border:1px solid #f2c6c2}
