.tc-panel{margin:16px 0;border:1px solid #dce5f2;border-radius:16px;background:#fff;color:#243c5d}.tc-panel>summary{padding:16px;cursor:pointer;font-weight:600}.tc-content{padding:0 16px 16px}.tc-note,.tc-content small{color:#66758b;font-size:13px;line-height:1.5}.tc-toolbar,.tc-editor-head,.tc-item-heading,.tc-item-foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.tc-summary{font-weight:600}.tc-alert{padding:12px;border-radius:10px;background:#fff4e5;color:#764c07}.tc-content select,.tc-content input:not([type=checkbox]),.tc-content textarea{display:block;width:100%;padding:9px;border:1px solid #ccd7e6;border-radius:8px;background:#fff;color:inherit;font:inherit;box-sizing:border-box}.tc-content label{display:block;font-size:13px;line-height:1.6}.tc-content :focus-visible{outline:3px solid #3d78e8;outline-offset:2px}.tc-table-wrap{overflow-x:auto;margin-top:12px}.tc-table-wrap table{width:100%;border-collapse:collapse;min-width:500px}.tc-table-wrap td,.tc-table-wrap th{text-align:left;padding:12px 8px;border-bottom:1px solid #e8edf5}.tc-content td small,.tc-history span{display:block}.tc-badge{display:inline-block;padding:4px 9px;border-radius:20px;background:#eef2f8;font-size:12px;font-weight:600}.tc-ok{background:#e4f6ec;color:#236447}.tc-warn{background:#fff1d3;color:#805614}.tc-units>div{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid #e8edf5}.tc-units span{font-size:13px}.tc-editor{margin-top:20px;padding:16px;border:1px solid #dce5f2;border-radius:14px;background:#f9fbff}.tc-editor-head h4{margin-right:auto}.tc-item{padding:16px 0;border-bottom:1px solid #dce5f2}.tc-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.tc-wide{grid-column:1/-1}.tc-item-foot{justify-content:space-between;margin-top:12px}.tc-invalidate{margin-top:20px;padding:12px;border-radius:10px;background:#fff8eb}.tc-checks{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.tc-history{padding-left:22px;line-height:1.7}.tc-history li{padding:8px 0}.tc-content button:disabled{opacity:.55;cursor:not-allowed}@media(max-width:640px){.tc-content{padding:0 10px 10px}.tc-form-grid,.tc-checks{grid-template-columns:1fr}.tc-editor{padding:10px}.tc-item-foot{align-items:flex-start}.tc-units>div{align-items:flex-start;flex-direction:column}}
.tc-panel{min-width:0;max-width:100%;overflow-wrap:anywhere}.tc-editor-head h4,.tc-form-grid label{min-width:0}.tc-table-wrap td{overflow-wrap:anywhere}.tc-content .tc-alert li{margin:6px 0;line-height:1.5}

/* Zapt Tech review, compact layout: the staff sidebar of the selected map. Presence stays visually independent from human confirmation. */
.tc-panel--compact{margin:0;border:0;border-radius:0;background:transparent}
.tc-panel--compact[aria-busy="true"]{cursor:progress}
.tc-panel--compact .tc-content{padding:0}
.tc-panel--compact .tc-note{font-size:12px;line-height:1.45;margin:8px 0}
.tc-compact-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.tc-compact-head h3{display:flex;align-items:center;gap:8px;margin:0;font-size:15px;line-height:1.3}
.tc-step-number{display:inline-flex;align-items:center;justify-content:center;flex:none;width:22px;height:22px;border-radius:50%;background:#243c5d;color:#fff;font-size:12px;font-weight:700;line-height:1}

/* Scope switch: one control with a visible split between its two segments. */
.tc-scope{display:flex;border:1px solid #bdcbe0;border-radius:8px;overflow:hidden;background:#fff}
.tc-scope-btn{flex:1 1 0;min-height:32px;padding:6px 10px;border:0;background:transparent;color:#425976;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.tc-scope-btn+.tc-scope-btn{border-left:1px solid #bdcbe0}
.tc-scope-btn.is-active{background:#243c5d;color:#fff}
.tc-scope-hint{margin:6px 0 0;font-size:12px;line-height:1.4;color:#66758b}
.tc-context{margin:8px 0;font-size:12px;font-weight:600;line-height:1.4;color:#425976;overflow-wrap:anywhere}

/* Thin bar shown while the sources are re-read in the background. */
.tc-refresh{position:relative;height:3px;margin-top:8px;border-radius:2px;overflow:hidden}
.tc-refresh.is-active{background:#e3eaf3}
.tc-refresh.is-active:after{content:'';position:absolute;top:0;bottom:0;left:0;width:35%;border-radius:2px;background:#3d78e8;animation:tc-slide 1.1s ease-in-out infinite}
@keyframes tc-slide{0%{transform:translateX(-100%)}100%{transform:translateX(300%)}}
.tc-spinner{display:inline-block;flex:none;width:16px;height:16px;border:2px solid #cdd8e8;border-top-color:#3d78e8;border-radius:50%;animation:tc-spin .8s linear infinite}
@keyframes tc-spin{to{transform:rotate(360deg)}}
.tc-loading{display:flex;align-items:center;gap:8px}
@media (prefers-reduced-motion:reduce){.tc-spinner{animation-duration:2.4s}.tc-refresh.is-active:after{animation:none;width:100%}}

.tc-map-result{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px;background:#f5f7fa}
.tc-map-result span{font-size:12px;color:#55667d}
.tc-map-result.is-verifying{background:#eef4ff;border-color:#cbdcf7;color:#2c4f87}
.tc-map-result.is-ready{background:#eaf7ef;border-color:#c6e5d0;color:#236447}

/* Items: a vertical guide on the left, one dot per item, the row indented under it. */
.tc-compact-items{list-style:none;margin:10px 0 0 4px;padding:0 0 0 12px;border-left:2px solid #dce5f2}
.tc-row{position:relative;margin:0;padding:0;border-bottom:1px solid #eef2f7;min-width:0}
.tc-row:last-child{border-bottom:0}
.tc-row:before{content:'';position:absolute;left:-18px;top:15px;width:10px;height:10px;box-sizing:border-box;border:2px solid #bdcbe0;border-radius:50%;background:#fff}
.tc-row--current:before{border-color:#4fae75;background:#4fae75}
.tc-row--recheck:before{border-color:#e0a23a;background:#fff4dc}
.tc-row--saving:before{border-color:#3d78e8;background:#cfe0fb}
.tc-compact-row{display:grid;grid-template-columns:minmax(0,1fr) 36px;column-gap:12px;align-items:start}
.tc-compact-item{grid-column:1;min-width:0;padding:10px 0}
.tc-compact-item>summary{position:relative;display:block;padding-left:18px;cursor:pointer;list-style:none}
.tc-compact-item>summary::-webkit-details-marker{display:none}
.tc-compact-item>summary:before{content:'';position:absolute;left:3px;top:6px;width:6px;height:6px;border:solid #66758b;border-width:0 2px 2px 0;transform:rotate(-45deg);transition:transform .15s}
.tc-compact-item[open]>summary:before{transform:rotate(45deg)}
.tc-compact-title{display:block;font-size:13px;font-weight:600;line-height:1.4;color:#243c5d;overflow-wrap:anywhere}
.tc-compact-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px}
.tc-presence{padding:3px 6px;border-radius:5px;background:#edf1f6;color:#4d6076;font-size:11px;line-height:1.3}
.tc-presence--present{background:#eaf1ff;color:#345c9e}.tc-presence--absent{background:#fff2dc;color:#805614}.tc-presence--unavailable{background:#f4effa;color:#735386}
.tc-human-state{font-size:11px;line-height:1.3;color:#6b788b}.tc-human-state.is-current{color:#236447;font-weight:600}
.tc-confirmed-by{display:block;margin-top:3px;font-size:11px;line-height:1.3;color:#66758b;overflow-wrap:anywhere}

/* The round confirm button. Dashed while the saved status is still open; solid once it is done. */
.tc-quick-confirm{grid-column:2;grid-row:1;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;margin-top:6px;padding:0;border:2px dashed #c62828;border-radius:50%;background:#fff;color:#c62828;cursor:pointer;line-height:1}
.tc-quick-confirm .material-icons{display:block;font-size:20px;line-height:1}
.tc-quick-confirm:hover:not(:disabled){border-color:#8e1b1b;color:#8e1b1b}
.tc-quick-confirm.is-in-progress{border-color:#e65100;color:#e65100}
.tc-quick-confirm.is-in-progress:hover:not(:disabled){border-color:#bf360c;color:#bf360c}
.tc-quick-confirm.is-completed-open{border-color:#2e7d4f;color:#236447}
.tc-quick-confirm.is-completed-open:hover:not(:disabled){border-color:#1b5e38;color:#1b5e38}
.tc-quick-confirm.is-current{background:#e8f6ec;border:2px solid #91c7a4;color:#236447}
.tc-quick-confirm.is-current:hover:not(:disabled){border-color:#2e7d4f;color:#1b5e38}
.tc-quick-confirm.is-not-applicable{background:#e8f1ff;border:2px solid #3d78e8;color:#1d4f91}
.tc-quick-confirm.is-not-applicable:hover:not(:disabled){border-color:#1d4f91;color:#163e73}
.tc-quick-confirm.is-saving{border-style:solid;border-color:#3d78e8;color:#3d78e8}
.tc-content .tc-quick-confirm:disabled{cursor:default}
.tc-content .tc-quick-confirm.is-current:disabled,.tc-content .tc-quick-confirm.is-not-applicable:disabled,.tc-content .tc-quick-confirm.is-saving:disabled{opacity:1}

/* Item body. */
.tc-compact-form{padding:8px 0 2px 18px}
.tc-panel--compact .tc-item{padding:0;border:0}
.tc-field{margin:0 0 8px}
.tc-field>label{display:block;margin-bottom:4px;font-size:12px;font-weight:600;color:#425976}
.tc-field .sd-bar{margin-top:6px}
.tc-voice{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:6px}
.tc-voice .sd-bar{margin-top:0}
.tc-capture{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:8px 0 0;font-size:12px;line-height:1.4;color:#425976}
.tc-pins{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.tc-pins span{display:inline-flex;align-items:center;gap:8px;padding:4px 8px;border-radius:8px;background:#e6eefc;font-size:12px;line-height:1.3}
.tc-content .tc-pins button{padding:0 4px;border:0;background:transparent;color:#3058a2;font:inherit;cursor:pointer}
.tc-hint{display:block;margin:4px 0 0;font-size:11px;line-height:1.4;color:#66758b}
.tc-panel--compact textarea{min-height:62px;resize:vertical}
.tc-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px}
.mr-owner{display:flex;flex-direction:column;gap:4px;margin:0 0 8px}
.mr-owner-row{display:flex;align-items:center;gap:8px;color:#425976;font-size:12px}
.mr-owner-row select{min-height:32px;max-width:220px}
.mr-owner-note{margin:0;color:#66758b;font-size:12px;line-height:1.4}
.tc-content .tc-link{padding:0;border:0;background:none;color:#2f5fb8;font:inherit;font-size:12px;text-decoration:underline;cursor:pointer}
.tc-recheck{margin-top:10px;padding:10px;border-radius:8px;background:#fff8eb}
.tc-row-error{margin:0 0 8px 18px;padding:8px 10px;border:1px solid #f0cfc9;border-radius:8px;background:#fff0ed;color:#8c3e34;font-size:12px;line-height:1.4}

/* Whole building: progress per floor, item x floor lists, confirm on every floor, premium hall. */
.tc-progress h4,.tc-hall h4{margin:12px 0 8px;font-size:13px}
.tc-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.tc-chip{display:inline-flex;align-items:center;gap:8px;padding:4px 8px;border-radius:12px;background:#eef2f8;font-size:12px}
.tc-chip.is-ready{background:#e4f6ec;color:#236447}
.tc-floor-list{margin:0;padding:6px 0 4px 18px;list-style:none}
.tc-floor{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 0;border-top:1px solid #eef2f7;font-size:12px}
.tc-floor-name{flex:1 1 100px;min-width:0;font-weight:600;overflow-wrap:anywhere}
.tc-bulk-actions{padding:0 0 10px 18px}
.tc-bulk-confirm{display:inline-flex;align-items:center;gap:8px}
.tc-bulk-ask{margin:0 0 10px 18px;padding:10px;border:1px solid #c9d6ea;border-radius:10px;background:#f5f8fe;font-size:12px;line-height:1.45}
.tc-bulk-ask p{margin:4px 0}.tc-bulk-ask ul{margin:6px 0;padding-left:18px}
.tc-bulk-summary{margin:0 0 10px 18px;font-size:12px;line-height:1.4;color:#236447}.tc-bulk-summary.is-partial{color:#8c3e34}
.tc-hall{margin-top:12px;padding-top:12px;border-top:1px solid #e3eaf3}
.tc-check{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:13px}
.tc-content .tc-check input{width:auto;margin:0}

/* Shared by the compact layout. */
.tc-compact-actions{margin-top:10px}
.tc-query-error{padding:12px;background:#fff0ed;border:1px solid #f0cfc9;border-radius:9px;color:#8c3e34;font-size:12px}.tc-query-error p{margin:6px 0}
.tc-panel--compact .tc-history{margin:10px 0 0;padding:0;list-style:none;font-size:12px;max-height:260px;overflow:auto}
.tc-panel--compact .tc-history li{padding:6px 0;border-top:1px solid #eef2f7}
