spaxel/dashboard/css/briefing.css
jedarden 8f878c6cea style(dashboard): complete CSS tokenization and add live-view grid layout classes
Replace remaining hardcoded border-radius and color values across 22 CSS
files with design system tokens. Add .live-status-bar, .live-scene, and
.live-panel-* classes to layout.css for the grid-based live view shell.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-24 15:14:40 -04:00

299 lines
5.7 KiB
CSS

/* Morning Briefing Card Styles */
#briefing-card {
position: fixed;
top: 60px;
left: 50%;
transform: translateX(-50%);
width: 90%;
max-width: 600px;
background: var(--bg-frosted);
border-radius: var(--radius-card);
padding: 24px;
z-index: 200;
box-shadow: 0 8px 32px var(--shadow-xl);
border: 1px solid var(--border-default);
opacity: 0;
transition: opacity 0.3s ease;
pointer-events: none;
}
#briefing-card.visible {
opacity: 1;
pointer-events: auto;
}
#briefing-card .briefing-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 16px;
}
#briefing-card .briefing-title {
font-size: var(--text-lg);
font-weight: 600;
color: var(--blue-10);
}
#briefing-card .briefing-date {
font-size: var(--text-xs);
color: var(--text-muted);
}
#briefing-card .briefing-close {
background: none;
border: none;
color: var(--text-muted);
font-size: var(--text-lg);
cursor: pointer;
padding: 4px 8px;
transition: color 0.2s;
}
#briefing-card .briefing-close:hover {
color: var(--text-on-accent);
}
#briefing-card .briefing-content {
font-size: 15px;
line-height: 1.6;
color: var(--slate-11);
white-space: pre-line;
}
#briefing-card .briefing-section {
margin-bottom: 16px;
padding: 12px;
border-radius: var(--radius-card);
background: var(--border-subtle);
}
#briefing-card .briefing-section.alert {
background: var(--alert-bg);
border-left: 3px solid var(--alert);
}
#briefing-card .briefing-section.sleep {
background: var(--section-sleep-bg);
border-left: 3px solid var(--ok);
}
#briefing-card .briefing-section.people {
background: var(--section-people-bg);
border-left: 3px solid var(--blue-9);
}
#briefing-card .briefing-section.anomaly {
background: var(--section-anomaly-bg);
border-left: 3px solid var(--warn);
}
#briefing-card .briefing-section.health {
background: var(--section-health-bg);
border-left: 3px solid var(--slate-10);
}
#briefing-card .briefing-section.prediction {
background: var(--section-predict-bg);
border-left: 3px solid var(--blue-8);
}
#briefing-card .briefing-section.learning {
background: var(--section-learn-bg);
border-left: 3px solid var(--warn);
}
#briefing-card .briefing-actions {
display: flex;
gap: 12px;
margin-top: 16px;
}
#briefing-card .briefing-btn {
flex: 1;
padding: 10px 16px;
border: none;
border-radius: var(--radius-control);
font-size: var(--text-sm);
font-weight: 500;
cursor: pointer;
transition: all 0.2s;
}
#briefing-card .briefing-btn.primary {
background: var(--blue-10);
color: var(--bg-card);
}
#briefing-card .briefing-btn.primary:hover {
background: var(--blue-10);
}
#briefing-card .briefing-btn.secondary {
background: var(--bg-hover);
color: var(--slate-11);
}
#briefing-card .briefing-btn.secondary:hover {
background: var(--border-strong);
}
#briefing-card .briefing-loading {
text-align: center;
padding: 20px;
color: var(--text-muted);
}
#briefing-card .briefing-spinner {
display: inline-block;
width: 24px;
height: 24px;
border: 3px solid var(--bg-hover);
border-top-color: var(--blue-10);
border-radius: 50%;
animation: briefing-spin 1s linear infinite;
}
@keyframes briefing-spin {
to { transform: rotate(360deg); }
}
/* Simple mode briefing card */
.simple-mode #briefing-card {
top: auto;
bottom: 20px;
transform: translateX(-50%);
}
.simple-mode #briefing-card.visible {
opacity: 1;
}
/* Ambient mode briefing */
.ambient-mode #briefing-card {
background: var(--overlay-strong);
backdrop-filter: blur(10px);
max-width: 500px;
}
.ambient-mode #briefing-card .briefing-content {
font-size: var(--text-base);
}
/* Briefing indicator in status bar */
#briefing-indicator {
position: fixed;
top: 50%;
right: 20px;
transform: translateY(-50%);
width: 40px;
height: 40px;
border-radius: 50%;
background: var(--blue-muted);
border: 2px solid var(--blue-10);
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
z-index: 150;
opacity: 0;
transition: opacity 0.3s;
}
#briefing-indicator.visible {
opacity: 1;
}
#briefing-indicator:hover {
background: var(--blue-border);
}
#briefing-indicator svg {
width: 20px;
height: 20px;
fill: var(--blue-10);
}
/* Briefing settings panel */
#briefing-settings {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: var(--bg-frosted-strong);
border-radius: var(--radius-card);
padding: 24px;
z-index: 300;
min-width: 400px;
box-shadow: 0 8px 32px var(--shadow-xl);
border: 1px solid var(--bg-hover);
display: none;
}
#briefing-settings.visible {
display: block;
}
#briefing-settings h3 {
font-size: 18px;
color: var(--blue-10);
margin-bottom: 20px;
}
#briefing-settings .setting-row {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 16px;
}
#briefing-settings .setting-label {
font-size: var(--text-sm);
color: var(--slate-11);
}
#briefing-settings .setting-input {
padding: 8px 12px;
border-radius: var(--radius-control);
border: 1px solid var(--border-strong);
background: var(--border-subtle);
color: var(--slate-11);
font-size: var(--text-sm);
}
#briefing-settings .setting-toggle {
position: relative;
width: 44px;
height: 24px;
background: var(--bg-hover);
border-radius: var(--radius-card);
cursor: pointer;
transition: background 0.2s;
}
#briefing-settings .setting-toggle.active {
background: var(--blue-10);
}
#briefing-settings .setting-toggle::after {
content: '';
position: absolute;
top: 2px;
left: 2px;
width: 20px;
height: 20px;
background: var(--text-on-accent);
border-radius: 50%;
transition: transform 0.2s;
}
#briefing-settings .setting-toggle.active::after {
transform: translateX(20px);
}
#briefing-settings .settings-actions {
display: flex;
gap: 12px;
margin-top: 24px;
}