2026-07-05 19:28:51 +08:00
|
|
|
/* App layout - minimal CSS, most styling via Tailwind */
|
|
|
|
|
.app-shell {
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
height: 100%;
|
|
|
|
|
width: 100%;
|
|
|
|
|
overflow: hidden;
|
2026-07-13 22:10:51 +08:00
|
|
|
background:
|
|
|
|
|
radial-gradient(58rem 35rem at 82% -16%, var(--guanghu-aurora), transparent 62%),
|
|
|
|
|
radial-gradient(42rem 30rem at -12% 112%, var(--guanghu-glow), transparent 65%),
|
|
|
|
|
var(--surface-app);
|
|
|
|
|
box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--border-primary) 82%, var(--accent-blue));
|
2026-07-05 19:28:51 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.app {
|
|
|
|
|
display: flex;
|
|
|
|
|
flex: 1;
|
|
|
|
|
min-height: 0;
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.app__sidebar {
|
|
|
|
|
flex: 0 0 auto;
|
|
|
|
|
min-width: 220px;
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
2026-07-13 22:10:51 +08:00
|
|
|
background: linear-gradient(180deg, color-mix(in srgb, var(--surface-sidebar) 92%, var(--guanghu-glow)), var(--surface-sidebar));
|
2026-07-05 19:28:51 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.app__sidebar > * {
|
|
|
|
|
flex: 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.app:has(.app__note-list) .app__sidebar > * {
|
|
|
|
|
border-right-color: transparent;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.app__note-list {
|
|
|
|
|
flex: 0 0 auto;
|
|
|
|
|
min-width: 220px;
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
position: relative;
|
|
|
|
|
z-index: 20;
|
2026-07-13 22:10:51 +08:00
|
|
|
background:
|
|
|
|
|
linear-gradient(180deg, color-mix(in srgb, var(--surface-sidebar) 94%, var(--guanghu-glow)), var(--surface-sidebar));
|
|
|
|
|
box-shadow: 14px 0 30px color-mix(in srgb, var(--surface-app) 60%, transparent);
|
2026-07-05 19:28:51 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.app__note-list > * {
|
|
|
|
|
flex: 1;
|
|
|
|
|
border-left: 1px solid var(--sidebar-border);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.app__editor {
|
|
|
|
|
flex: 1;
|
|
|
|
|
min-width: 480px;
|
|
|
|
|
min-height: 0;
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
container-type: inline-size;
|
|
|
|
|
container-name: editor;
|
2026-07-13 22:10:51 +08:00
|
|
|
position: relative;
|
|
|
|
|
background:
|
|
|
|
|
linear-gradient(var(--guanghu-grid) 1px, transparent 1px),
|
|
|
|
|
linear-gradient(90deg, var(--guanghu-grid) 1px, transparent 1px),
|
|
|
|
|
color-mix(in srgb, var(--surface-editor) 94%, var(--guanghu-glow));
|
|
|
|
|
background-size: 32px 32px, 32px 32px, auto;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.app__editor::before {
|
|
|
|
|
content: '';
|
|
|
|
|
position: absolute;
|
|
|
|
|
inset: 0;
|
|
|
|
|
pointer-events: none;
|
|
|
|
|
background: linear-gradient(180deg, color-mix(in srgb, var(--surface-editor) 28%, transparent), transparent 13rem);
|
|
|
|
|
z-index: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.app__editor > * {
|
|
|
|
|
position: relative;
|
|
|
|
|
z-index: 1;
|
2026-07-05 19:28:51 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.app__editor > * {
|
|
|
|
|
flex: 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@keyframes spin {
|
|
|
|
|
from { transform: rotate(0deg); }
|
|
|
|
|
to { transform: rotate(360deg); }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@keyframes tab-status-pulse {
|
|
|
|
|
0%, 100% { opacity: 1; }
|
|
|
|
|
50% { opacity: 0.3; }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.tab-status-pulse {
|
|
|
|
|
animation: tab-status-pulse 1.2s ease-in-out infinite;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* AI highlight animation — applied by useAiActivity when MCP calls ui_highlight */
|
|
|
|
|
@keyframes ai-highlight-glow {
|
|
|
|
|
0% { box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--accent-blue) 80%, transparent); }
|
|
|
|
|
50% { box-shadow: inset 0 0 8px 2px color-mix(in srgb, var(--accent-blue) 40%, transparent); }
|
|
|
|
|
100% { box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--accent-blue) 0%, transparent); }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.ai-highlight {
|
|
|
|
|
animation: ai-highlight-glow 0.8s ease-out;
|
|
|
|
|
}
|