|
|
@@ -0,0 +1,135 @@
|
|
|
+.app-page {
|
|
|
+ width: 100%;
|
|
|
+}
|
|
|
+
|
|
|
+.app-page-header {
|
|
|
+ display: flex;
|
|
|
+ align-items: flex-start;
|
|
|
+ justify-content: space-between;
|
|
|
+ gap: 16px;
|
|
|
+ margin-bottom: 18px;
|
|
|
+}
|
|
|
+
|
|
|
+.app-page-title {
|
|
|
+ margin: 0;
|
|
|
+ color: var(--color-text);
|
|
|
+ font-size: 24px;
|
|
|
+ font-weight: 700;
|
|
|
+ letter-spacing: 0;
|
|
|
+}
|
|
|
+
|
|
|
+.app-page-subtitle {
|
|
|
+ margin: 4px 0 0;
|
|
|
+ color: var(--color-text-secondary);
|
|
|
+ font-size: 13px;
|
|
|
+}
|
|
|
+
|
|
|
+.med-panel {
|
|
|
+ background: var(--color-surface);
|
|
|
+ border: 1px solid var(--color-border-soft);
|
|
|
+ border-radius: var(--radius-md);
|
|
|
+ box-shadow: var(--shadow-panel);
|
|
|
+}
|
|
|
+
|
|
|
+.med-panel__header {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ gap: 12px;
|
|
|
+ padding: 14px 16px;
|
|
|
+ border-bottom: 1px solid var(--color-border-soft);
|
|
|
+}
|
|
|
+
|
|
|
+.med-panel__title {
|
|
|
+ color: var(--color-text);
|
|
|
+ font-size: 15px;
|
|
|
+ font-weight: 700;
|
|
|
+}
|
|
|
+
|
|
|
+.med-panel__body {
|
|
|
+ padding: 16px;
|
|
|
+}
|
|
|
+
|
|
|
+.metric-row {
|
|
|
+ display: grid;
|
|
|
+ grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
|
|
|
+ gap: 12px;
|
|
|
+}
|
|
|
+
|
|
|
+.metric-card {
|
|
|
+ padding: 14px 16px;
|
|
|
+ background: var(--color-surface);
|
|
|
+ border: 1px solid var(--color-border-soft);
|
|
|
+ border-radius: var(--radius-md);
|
|
|
+ box-shadow: var(--shadow-panel);
|
|
|
+}
|
|
|
+
|
|
|
+.metric-card__label {
|
|
|
+ display: block;
|
|
|
+ color: var(--color-text-muted);
|
|
|
+ font-size: 12px;
|
|
|
+ margin-bottom: 6px;
|
|
|
+}
|
|
|
+
|
|
|
+.metric-card strong {
|
|
|
+ color: var(--color-text);
|
|
|
+ font-size: 24px;
|
|
|
+ line-height: 1;
|
|
|
+}
|
|
|
+
|
|
|
+.status-dot {
|
|
|
+ display: inline-block;
|
|
|
+ width: 7px;
|
|
|
+ height: 7px;
|
|
|
+ border-radius: 50%;
|
|
|
+ background: var(--color-info);
|
|
|
+}
|
|
|
+
|
|
|
+.status-dot.is-active {
|
|
|
+ background: var(--color-accent);
|
|
|
+}
|
|
|
+
|
|
|
+.status-dot.is-success {
|
|
|
+ background: var(--color-success);
|
|
|
+}
|
|
|
+
|
|
|
+.status-dot.is-warning {
|
|
|
+ background: var(--color-warning);
|
|
|
+}
|
|
|
+
|
|
|
+.status-dot.is-danger {
|
|
|
+ background: var(--color-danger);
|
|
|
+}
|
|
|
+
|
|
|
+.status-strip {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ gap: 14px;
|
|
|
+ padding: 12px 16px;
|
|
|
+ color: var(--color-text-secondary);
|
|
|
+ background: var(--color-surface);
|
|
|
+ border: 1px solid var(--color-border-soft);
|
|
|
+ border-radius: var(--radius-md);
|
|
|
+ box-shadow: var(--shadow-panel);
|
|
|
+}
|
|
|
+
|
|
|
+.empty-state {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ min-height: 260px;
|
|
|
+ color: var(--color-text-muted);
|
|
|
+ background: var(--color-surface);
|
|
|
+ border: 1px dashed var(--color-border);
|
|
|
+ border-radius: var(--radius-md);
|
|
|
+}
|
|
|
+
|
|
|
+.audit-note {
|
|
|
+ padding: 10px 12px;
|
|
|
+ color: var(--color-text-secondary);
|
|
|
+ background: var(--color-surface-subtle);
|
|
|
+ border: 1px solid var(--color-border-soft);
|
|
|
+ border-radius: var(--radius-sm);
|
|
|
+ font-size: 12px;
|
|
|
+}
|