spaxel/dashboard/css/floorplan.css
jedarden 07abc03ef4 style(dashboard): complete design token migration and live view cleanup
Replace remaining hard-coded colors across all CSS files with design
tokens from tokens.css. Remove duplicate inline positioning from
live.html panels (now in layout.css). Add replay session blob fetch
for immediate 3D scene state on seek.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-24 16:39:53 -04:00

261 lines
5.1 KiB
CSS

/**
* Floor Plan Setup Panel Styles
*/
.floorplan-panel {
position: fixed;
top: 60px;
right: 340px;
width: 380px;
max-height: calc(100vh - 80px);
background: var(--overlay-panel);
border-radius: var(--radius-card);
z-index: 100;
overflow-y: auto;
}
.floorplan-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: var(--space-3) var(--space-4);
border-bottom: 1px solid var(--bg-hover);
}
.floorplan-header h3 {
font-size: var(--text-sm);
color: var(--text-muted);
text-transform: uppercase;
letter-spacing: var(--ls-wide);
margin: 0;
}
.floorplan-close {
background: none;
border: none;
color: var(--text-muted);
font-size: var(--text-3xl);
cursor: pointer;
padding: 0 4px;
line-height: 1;
transition: color 0.2s;
}
.floorplan-close:hover {
color: var(--slate-12);
}
.floorplan-content {
padding: var(--space-3);
}
.floorplan-section {
margin-bottom: var(--space-5);
}
.floorplan-section h4 {
font-size: var(--text-sm);
color: var(--slate-11);
margin-bottom: var(--space-2);
}
.floorplan-hint {
font-size: var(--text-2xs);
color: var(--text-muted);
margin-bottom: var(--space-2);
}
/* Upload area */
.floorplan-upload-area {
display: flex;
align-items: center;
gap: var(--space-3);
}
.floorplan-btn {
padding: 6px 14px;
border-radius: var(--radius-control);
font-size: var(--text-xs);
cursor: pointer;
transition: background 0.2s;
border: none;
display: inline-flex;
align-items: center;
gap: 6px;
}
.floorplan-btn-primary {
background: var(--blue-10);
color: var(--bg-card);
}
.floorplan-btn-primary:hover:not(:disabled) {
background: var(--blue-10);
}
.floorplan-btn-primary:disabled {
opacity: 0.5;
cursor: not-allowed;
}
.floorplan-btn-secondary {
background: var(--bg-hover);
color: var(--slate-11);
border: 1px solid var(--border-strong);
}
.floorplan-btn-secondary:hover {
background: var(--border-strong);
}
.floorplan-icon {
font-size: var(--text-sm);
}
.floorplan-file-name {
font-size: var(--text-2xs);
color: var(--text-muted);
max-width: 180px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/* Preview */
.floorplan-preview {
margin-top: var(--space-3);
text-align: center;
}
.floorplan-preview img {
max-width: 100%;
max-height: 200px;
border-radius: var(--radius-control);
border: 1px solid var(--bg-hover);
}
/* Calibration */
.floorplan-calibration-container {
margin-top: var(--space-3);
}
.floorplan-image-wrapper {
position: relative;
display: inline-block;
border: 1px solid var(--bg-hover);
border-radius: var(--radius-control);
overflow: hidden;
}
#floorplan-canvas {
display: block;
cursor: crosshair;
max-width: 100%;
}
.floorplan-marker {
position: absolute;
width: 24px;
height: 24px;
border-radius: 50%;
color: var(--text-on-accent);
font-size: var(--text-xs);
font-weight: bold;
display: flex;
align-items: center;
justify-content: center;
transform: translate(-50%, -50%);
pointer-events: none;
text-shadow: 0 1px 3px var(--overlay-strong);
}
.floorplan-controls {
margin-top: var(--space-3);
}
.floorplan-instructions {
font-size: var(--text-xs);
color: var(--text-muted);
background: var(--border-subtle);
padding: var(--space-2) 10px;
border-radius: var(--radius-control);
text-align: center;
}
.floorplan-points-info {
background: var(--shadow);
border-radius: var(--radius-control);
padding: var(--space-2) 10px;
margin-top: var(--space-2);
}
.floorplan-point-info {
display: flex;
justify-content: space-between;
font-size: var(--text-2xs);
margin-bottom: var(--space-1);
}
.point-label {
color: var(--text-muted);
}
.floorplan-distance-input {
margin-top: var(--space-2);
}
.floorplan-distance-input label {
display: block;
font-size: var(--text-2xs);
color: var(--text-secondary);
margin-bottom: var(--space-1);
}
.floorplan-distance-input input {
width: 100%;
padding: 6px 10px;
background: var(--border-default);
border: 1px solid var(--border-strong);
border-radius: var(--radius-control);
color: var(--slate-12);
font-size: var(--text-sm);
box-sizing: border-box;
}
.floorplan-distance-input input:focus {
outline: none;
border-color: var(--blue-10);
box-shadow: 0 0 0 2px var(--blue-muted);
}
.floorplan-actions {
display: flex;
justify-content: space-between;
margin-top: var(--space-3);
gap: var(--space-2);
}
.floorplan-status-info {
display: grid;
grid-template-columns: 1fr 1fr;
gap: var(--space-2);
margin-bottom: var(--space-3);
}
.status-item {
display: flex;
justify-content: space-between;
font-size: var(--text-2xs);
}
.status-label {
color: var(--text-muted);
}
/* Responsive adjustments */
@media (max-width: 1200px) {
.floorplan-panel {
right: 20px;
width: 340px;
}
}