
.page-dashboard .content{padding-top:18px}.page-dashboard .page-heading{margin-bottom:12px}.page-dashboard .page-heading h1{font-size:27px;margin:5px 0}.page-dashboard .page-heading .eyebrow{display:none}
.test-banner{font-size:11px;padding:9px 12px;margin-bottom:12px}
.snapshot-compact{padding:12px 16px;margin-bottom:12px}.snapshot-compact h2{font-size:14px;margin:0 0 8px}.snapshot-compact .view-tabs{margin-bottom:7px;gap:5px}.snapshot-compact .view-tabs a{padding:5px 9px;font-size:11px}.snapshot-compact p{margin:5px 0;font-size:10px}.snapshot-compact>a{font-size:11px}
.page-dashboard .stats-compact{margin-bottom:15px}.page-dashboard .stats-compact article{padding:10px 14px}.page-dashboard .stats-compact strong{font-size:20px;margin:6px 0}.page-dashboard .stats-compact small{font-size:10px}.page-dashboard .view-tabs{margin-bottom:12px}
.points-panel{padding:18px 20px}.points-panel td{padding:11px 10px}.points-panel .section-title{margin-bottom:12px}.points-panel .section-title h2{font-size:19px}
.point-name{display:inline-block;background:#edf3ee;color:#2b4a38;padding:7px 10px;border-radius:6px;line-height:1.3;text-decoration:none}.point-name:hover{background:#dce9df}.point-actions{display:flex;gap:5px;flex-wrap:nowrap}.point-action{background:#fff;border:1px solid #8baa8c;color:#507b54;border-radius:16px;padding:5px 8px;display:grid;place-items:center;min-height:29px}.point-action:hover{background:#edf3ee}.point-action.point-danger{border-color:#e19292;color:#c75757}.point-action:disabled{opacity:.4;cursor:default}
dialog#appointment-dialog{width:min(1000px,96vw);max-height:90vh;padding:24px;border:1px solid #e3e7e4;border-radius:14px;background:#fff;overflow:auto;color:#202932}dialog::backdrop{background:rgba(22,35,45,.48)}
.appointment-columns{display:grid;grid-template-columns:1fr 1.2fr;gap:28px}.appointment-columns h3{font-size:16px;margin:10px 0 16px}.appointment-columns section+section{border-left:1px solid #e5e9e6;padding-left:24px}.appointment-total{padding:14px;background:#edf3ee;border-radius:8px;font-weight:700}
#appointment-services{max-height:280px;overflow:auto}.client-modal-actions{flex-wrap:wrap}.client-tabs{display:flex;gap:5px;border-bottom:1px solid #e5e9e6;margin:15px 0}.client-tabs .active{background:#2b4736;color:white}.contact-hidden,[data-appointment-contact] small{color:#8c7770}.client-tabs button{margin:0 0 8px}
dialog#point-dialog{width:min(650px,94vw);max-height:88vh;padding:24px;border:1px solid #e3e7e4;border-radius:14px;overflow:auto;color:#202932}.point-details{display:grid;grid-template-columns:1fr 1.5fr;gap:10px;font-size:13px}.point-details dt{color:#75817d}.point-details dd{margin:0;overflow-wrap:anywhere}
.privacy-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.privacy-grid fieldset{border:1px solid #e1e6e2;border-radius:8px;padding:15px}.privacy-grid legend{font-weight:600}
.board-controls .filter-grid{gap:12px}.board-controls label{font-size:11px}.board-controls input,.board-controls select{padding:8px}.board-controls{padding:14px 18px}.board-toolbar{margin:12px 0}.board-legend{font-size:11px}.booking-block{font-size:12px}.booking-block span{font-size:11px}.booking-block small{font-size:10px}
@media(max-width:700px){.appointment-columns{grid-template-columns:1fr;gap:15px}.appointment-columns section+section{border-left:0;border-top:1px solid #e5e9e6;padding:15px 0 0}.privacy-grid{grid-template-columns:1fr}.point-details{grid-template-columns:1fr 1.3fr}dialog#appointment-dialog,dialog#point-dialog{padding:16px}.page-dashboard .page-heading h1{font-size:23px}}

[hidden]{display:none!important}textarea{width:100%;padding:11px 12px;border:1px solid #dce1e6;border-radius:8px;font:inherit;color:inherit;resize:vertical}#appointment-form>div.appointment-columns label{min-width:0}#appointment-comments{font-size:11px;max-height:130px;overflow:auto;margin-top:12px}

.schedule-break{position:absolute;left:3px;right:3px;z-index:1;padding:6px 8px;background:repeating-linear-gradient(135deg,#eef0f1,#eef0f1 8px,#e4e7e9 8px,#e4e7e9 16px);border:1px solid #dce0e3;border-radius:4px;color:#697572;font-size:11px;pointer-events:none}

.snapshot-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.snapshot-heading h2{margin:0}.snapshot-details{position:relative;font-size:10px;color:#78817f}.snapshot-details>summary{cursor:pointer}.snapshot-details>div{position:absolute;right:0;top:22px;width:330px;max-width:70vw;padding:12px;background:#fff;border:1px solid #e3e7e5;border-radius:8px;box-shadow:0 8px 24px #172b3c17;z-index:4}.snapshot-compact .view-tabs{margin-bottom:0}.page-dashboard .stats.stats-compact article{padding:8px 12px;min-height:0}.page-dashboard .stats.stats-compact strong{font-size:18px;margin:4px 0;line-height:1.2}.page-dashboard .stats.stats-compact span,.page-dashboard .stats.stats-compact small{line-height:1.2;font-size:10px}

.point-equipment{display:flex;align-items:center;gap:5px;flex-wrap:wrap;max-width:160px}
.device-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:30px;min-width:32px;border-radius:5px;border:1px solid transparent;text-decoration:none;line-height:1}
.device-icon svg{display:block;flex-shrink:0}.device-icon:hover{filter:brightness(.94)}.device-icon:focus-visible{outline:2px solid #f8793d;outline-offset:3px}
.device-work{background:#edf4e9;color:#507a31;border-color:#cbdcbd}.device-error{background:#fbeaea;color:#bd3939;border-color:#ebc4c4}.device-off{background:#e9f0fa;color:#4271ac;border-color:#c8d8ef}.device-unknown{background:#eef0f2;color:#737b84;border-color:#d8dde2}
.device-status-mark{position:absolute;right:-3px;bottom:-3px;display:grid;place-items:center;width:12px;height:12px;font-size:9px;font-weight:700;border-radius:50%;background:#fff;border:1px solid currentColor;color:inherit}
.equipment-empty{color:#9aa49f}

.points-panel .section-title h2{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.points-count{font-size:11px;font-weight:400;color:#79887d;white-space:nowrap}
.point-table{font-size:11px;min-width:850px}
.points-panel .point-table th{padding:8px 7px;white-space:nowrap}
.points-panel .point-table td{padding:6px 7px;vertical-align:middle;line-height:1.3;transition:background-color .12s}
.points-panel .point-table td small{font-size:9px;line-height:1.3;margin-top:3px}
.point-table .point-order{width:30px;text-align:center;color:#839087;font-variant-numeric:tabular-nums}
.point-table .point-id{width:64px;white-space:nowrap;font-variant-numeric:tabular-nums}
.point-table .point-id a{font-weight:600;color:#496453;text-decoration:none;display:block;padding:6px 0}
.point-table .point-title-cell{width:210px;max-width:230px}
.point-table .point-title-cell small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:230px}
.point-table .point-name{display:block;max-width:230px;padding:5px 7px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;line-height:1.25}
.point-table .point-state-line{display:flex;align-items:center;gap:5px;white-space:nowrap}
.point-table .point-state-line .badge{padding:3px 5px;font-size:9px;border-radius:4px;line-height:1.3}
.point-access{font-size:9px;color:#7e8a82}.point-table .point-equipment{max-width:none;gap:4px;flex-wrap:nowrap}
.point-table .point-row{cursor:pointer}.point-table .point-row:hover>td,.point-table .point-row:focus-within>td{background:#edf4ee}
.point-table .point-row:hover>td:first-child,.point-table .point-row:focus-within>td:first-child{box-shadow:inset 3px 0 #f8793d;color:#bd622e;font-weight:700}
.point-table .point-row:hover .point-name,.point-table .point-row:focus-within .point-name{background:#dceade;color:#24442e}
.point-table .point-id a:focus-visible,.point-table .point-name:focus-visible{outline:2px solid #f8793d;outline-offset:2px}
@media(prefers-reduced-motion:reduce){.points-panel .point-table td{transition:none}}

.point-flags{display:flex;align-items:center;gap:5px;white-space:nowrap}
.point-flag{display:inline-flex;align-items:center;justify-content:center;width:28px;height:26px;border-radius:4px;border:1px solid transparent}
.state-good{color:#537d35;background:#edf4e9;border-color:#cbdcbd}.state-bad{color:#bd3939;background:#fbeaea;border-color:#ebc4c4}.state-neutral{color:#70787d;background:#eef0f2;border-color:#d8dde2}
.connection-marker{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px;vertical-align:1px}.connection-online{background:#79a85b}.connection-offline{background:#b0b8b3}
.point-device-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #e4e9e6;border-radius:6px;padding:9px;margin:7px 0}
.point-device-row.selected-device{border-color:#69a0d3;background:#f1f6fc}.point-device-row span{font-size:12px}.point-device-row button{flex-shrink:0;font-size:11px;padding:7px 9px}
.point-restart-note{padding:10px;background:#f3f5f3;border-radius:6px;font-size:12px}
#restart-plan{scroll-margin-top:20px}#restart-plan h2{font-size:18px}

.batch-toolbar{display:flex;align-items:center;gap:14px;margin:12px 0}.batch-point-list{max-height:350px;overflow:auto;border:1px solid #dce3e8;border-radius:9px}.batch-point-list:focus-visible{outline:2px solid #f97840;outline-offset:2px}.batch-point-row{display:flex;align-items:center;gap:12px;padding:9px 13px;border-bottom:1px solid #e8edf0;cursor:pointer;margin:0;user-select:none;transition:background .12s}.batch-point-row[hidden]{display:none}.batch-point-row:last-child{border-bottom:0}.batch-point-row:hover{background:#f1f5f7}.batch-point-row.is-selected{background:#e9f3ed;box-shadow:inset 3px 0 #f97840}.batch-point-row:has(input:disabled){opacity:.6;cursor:default}.batch-point-row input{width:17px;height:17px;accent-color:#2d4b3b;flex-shrink:0;margin:0}.batch-point-id{width:70px;font-weight:600;flex-shrink:0}.batch-point-title{flex:1;min-width:0}.batch-point-title small{display:block;font-size:11px;color:#748194}.batch-point-check{font-size:11px;color:#688173;text-align:right}.batch-submit{display:flex;align-items:center;gap:14px;margin-top:14px}.batch-history{margin-top:20px}.batch-history summary{cursor:pointer}.batch-history table{margin-top:12px}.batch-history td small{display:block}.terminal-heading-links{display:flex;gap:18px;align-items:center}@media(max-width:650px){.batch-submit{align-items:flex-start;flex-direction:column}.batch-point-id{width:56px}.batch-point-row{gap:8px;padding:9px}.batch-point-check{max-width:100px}.terminal-heading-links{gap:8px;flex-wrap:wrap}}

.batch-help{margin:8px 0 12px;font-size:12px}.batch-help summary{cursor:pointer;color:#bf653b}.batch-help li{margin:6px 0;color:#647184}.batch-help kbd{font:inherit;padding:1px 5px;border:1px solid #dce3e8;border-radius:4px;background:#f6f8f9}

.action-with-help{display:inline-flex;align-items:center;gap:5px;max-width:100%;vertical-align:middle}.action-help{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;min-width:18px;padding:0!important;border:1px solid #aebbc4!important;border-radius:50%!important;background:transparent!important;color:#6b7d89!important;font:italic 12px Georgia,serif!important;line-height:1;box-shadow:none!important;cursor:help}.action-help:hover,.action-help:focus-visible{color:#be643b!important;border-color:#be643b!important;background:#fff7f0!important}.icon-action-help{position:relative;gap:0}.icon-action-help>.action-help{position:absolute;right:-4px;top:-6px;width:14px;height:14px;min-width:14px;font-size:10px!important;background:#fff!important;opacity:0;z-index:2}.icon-action-help:hover>.action-help,.icon-action-help:focus-within>.action-help{opacity:1}#action-help-dialog{width:min(480px,calc(100vw - 28px));border:1px solid #e0e5e9;border-radius:14px;padding:24px;color:#27333f;box-shadow:0 20px 70px #0003}#action-help-dialog::backdrop{background:#16252f66}.action-help-heading{display:flex;gap:15px;justify-content:space-between;align-items:flex-start}.action-help-heading h2{font-size:18px;margin:0}.action-help-heading button{padding:2px 9px}#action-help-body{font-size:14px;line-height:1.65;white-space:pre-line}button:disabled+.action-help{opacity:1}@media(hover:none){.icon-action-help>.action-help{opacity:1}}

/* Compact restart toolbar; sizing depends on the panel, not the sidebar. */
#restart-network{padding:16px 20px;container-type:inline-size;container-name:restart-batch}
#restart-network>.section-title{margin-bottom:6px;gap:12px;align-items:center}
#restart-network>.section-title h2{font-size:17px;margin:0;line-height:1.25}
#restart-network>.section-title .muted-small{font-size:10px;white-space:nowrap}
#restart-network>.restart-description{font-size:11px;line-height:1.4;margin:0 0 10px}
#restart-network .restart-fields{grid-template-columns:minmax(130px,.9fr) minmax(180px,1.1fr) minmax(140px,1.25fr);gap:10px 12px;align-items:end}
#restart-network .restart-fields label{font-size:11px;line-height:1.3;margin:0;min-width:0}
#restart-network .restart-fields input,#restart-network .restart-fields select{height:34px;padding:6px 9px;margin-top:4px;font-size:12px;border-radius:6px}
#restart-network .batch-toolbar{margin:10px 0;gap:10px;font-size:11px}
#restart-network .batch-toolbar button{padding:7px 12px;font-size:11px;border-radius:7px;min-height:32px}
#restart-network #batch-selection-help{font-size:11px;line-height:1.4;margin:6px 0}
#restart-network .batch-help{font-size:11px;margin:6px 0 10px}
@container restart-batch (max-width:560px){#restart-network .restart-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}#restart-network .restart-fields label:last-child{grid-column:1/-1}}
@container restart-batch (max-width:330px){#restart-network .restart-fields{grid-template-columns:minmax(0,1fr)}#restart-network .restart-fields label:last-child{grid-column:auto}#restart-network>.section-title{flex-wrap:wrap;gap:4px}}
@media(max-width:650px){#restart-network{padding:14px 16px}}
