- Improve link highlighting with Fresnel health color mapping - Route re-provision through live page via query param for reliability - Remove simple-mode gating from command palette (now available everywhere except ambient) - Update Fresnel tests, fleet page unpaired node UX, and help articles Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
288 lines
5.8 KiB
CSS
288 lines
5.8 KiB
CSS
/* Morning Briefing Card Styles */
|
|
|
|
#briefing-card {
|
|
position: fixed;
|
|
top: var(--space-16);
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
width: 90%;
|
|
max-width: 600px;
|
|
background: var(--bg-frosted);
|
|
border-radius: var(--radius-card);
|
|
padding: var(--space-6);
|
|
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: var(--space-4);
|
|
}
|
|
|
|
#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: var(--space-1) var(--space-2);
|
|
transition: color 0.2s;
|
|
}
|
|
|
|
#briefing-card .briefing-close:hover {
|
|
color: var(--text-on-accent);
|
|
}
|
|
|
|
#briefing-card .briefing-content {
|
|
font-size: var(--text-md);
|
|
line-height: 1.6;
|
|
color: var(--slate-11);
|
|
white-space: pre-line;
|
|
}
|
|
|
|
#briefing-card .briefing-section {
|
|
margin-bottom: var(--space-4);
|
|
padding: var(--space-3);
|
|
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: var(--space-3);
|
|
margin-top: var(--space-4);
|
|
}
|
|
|
|
#briefing-card .briefing-btn {
|
|
flex: 1;
|
|
padding: 10px var(--space-4);
|
|
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: var(--space-5);
|
|
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); }
|
|
}
|
|
|
|
/* 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: var(--space-5);
|
|
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: var(--space-6);
|
|
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: var(--text-xl);
|
|
color: var(--blue-10);
|
|
margin-bottom: var(--space-5);
|
|
}
|
|
|
|
#briefing-settings .setting-row {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: var(--space-4);
|
|
}
|
|
|
|
#briefing-settings .setting-label {
|
|
font-size: var(--text-sm);
|
|
color: var(--slate-11);
|
|
}
|
|
|
|
#briefing-settings .setting-input {
|
|
padding: var(--space-2) var(--space-3);
|
|
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: var(--space-half);
|
|
left: var(--space-half);
|
|
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: var(--space-3);
|
|
margin-top: var(--space-6);
|
|
}
|