39331-vm/assets/css/custom.css
Flatlogic Bot 522a55296c arsip_demo
2026-03-26 11:04:24 +00:00

337 lines
7.2 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* KBRI Harare Archive Desk */
:root {
--bg: #f4f5f7;
--surface: #ffffff;
--surface-alt: #f8f9fb;
--border: #d7dce3;
--border-strong: #c3cad4;
--text: #101828;
--text-muted: #667085;
--primary: #1f2937;
--primary-soft: #eef1f4;
--accent: #4b5563;
--success: #0f766e;
--warning: #92400e;
--danger: #b42318;
--shadow-sm: 0 10px 30px rgba(16, 24, 40, 0.04);
--shadow-lg: 0 22px 50px rgba(16, 24, 40, 0.08);
--radius-sm: 10px;
--radius-md: 14px;
--radius-lg: 18px;
--space-1: 0.25rem;
--space-2: 0.5rem;
--space-3: 0.75rem;
--space-4: 1rem;
--space-5: 1.5rem;
--space-6: 2rem;
}
html { scroll-behavior: smooth; }
body {
margin: 0;
background: var(--bg);
color: var(--text);
font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
line-height: 1.5;
}
a { color: inherit; text-decoration: none; }
a:hover { color: inherit; }
.auth-shell,
.app-shell {
min-height: 100vh;
background: #f4f5f7;
}
.topbar {
background: rgba(255,255,255,0.92);
backdrop-filter: blur(10px);
}
.panel,
.metric-card,
.record-card,
.file-card,
.empty-state {
background: rgba(255,255,255,0.98);
border: 1px solid var(--border);
border-radius: var(--radius-lg);
box-shadow: var(--shadow-sm);
}
.panel { padding: var(--space-5); }
.panel-hero {
position: relative;
overflow: hidden;
box-shadow: var(--shadow-lg);
}
.panel-hero::after {
content: "";
position: absolute;
inset: auto -10% -40% auto;
width: 220px;
height: 220px;
border-radius: 50%;
background: rgba(31, 41, 55, 0.05);
box-shadow: inset -24px -24px 40px rgba(255,255,255,0.7), 20px 20px 40px rgba(31,41,55,0.05);
}
.eyebrow {
text-transform: uppercase;
letter-spacing: 0.08em;
font-size: 0.72rem;
font-weight: 700;
color: var(--text-muted);
}
.display-title,
.app-title,
.section-title {
letter-spacing: -0.02em;
font-weight: 700;
color: var(--text);
}
.display-title { font-size: clamp(2rem, 4vw, 3.35rem); max-width: 12ch; }
.app-title { font-size: 1.35rem; }
.section-title { font-size: 1.15rem; }
.lead-copy,
.text-secondary,
.form-text,
.inline-note,
.record-meta,
.record-path,
.policy-list li,
.empty-state p,
.callout,
small { color: var(--text-muted) !important; }
.badge-soft {
background: var(--primary-soft);
color: var(--primary);
border: 1px solid var(--border);
font-weight: 600;
}
.badge-outline {
background: transparent;
color: var(--text);
border: 1px solid var(--border-strong);
font-weight: 600;
}
.metric-card {
padding: 1rem 1.1rem;
position: relative;
}
.metric-card::before {
content: "";
position: absolute;
inset: 12px 12px auto auto;
width: 52px;
height: 52px;
border-radius: 14px;
border: 1px solid rgba(31,41,55,0.08);
background: rgba(255,255,255,0.72);
box-shadow: 12px 12px 25px rgba(31,41,55,0.04), inset -10px -10px 15px rgba(255,255,255,0.9);
}
.metric-label {
font-size: 0.75rem;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--text-muted);
margin-bottom: 0.4rem;
position: relative;
z-index: 1;
}
.metric-value {
font-size: 1.9rem;
font-weight: 700;
letter-spacing: -0.03em;
position: relative;
z-index: 1;
}
.small-value { font-size: 1.3rem; }
.callout,
.inline-note,
.file-card,
.empty-state {
padding: 0.9rem 1rem;
border-radius: var(--radius-md);
background: var(--surface-alt);
border: 1px solid var(--border);
}
.form-control,
.form-select {
border-radius: var(--radius-sm);
border-color: var(--border-strong);
padding: 0.8rem 0.9rem;
color: var(--text);
background-color: #fff;
}
.form-control:focus,
.form-select:focus {
border-color: #98a2b3;
box-shadow: 0 0 0 0.2rem rgba(17,24,39,0.08);
}
.form-label {
font-size: 0.88rem;
font-weight: 600;
color: var(--text);
}
.btn {
border-radius: 12px;
font-weight: 600;
padding: 0.72rem 1rem;
}
.btn-dark {
background: #111827;
border-color: #111827;
box-shadow: 0 10px 25px rgba(17, 24, 39, 0.18);
}
.btn-dark:hover,
.btn-dark:focus { background: #0b1220; border-color: #0b1220; }
.btn-outline-secondary,
.btn-outline-danger {
border-color: var(--border-strong);
}
.tree-nav {
max-height: 70vh;
overflow: auto;
padding-right: 0.35rem;
}
.tree-level { padding-left: 0; }
.tree-item + .tree-item { margin-top: 0.35rem; }
.tree-toggle,
.tree-leaf {
width: 100%;
display: flex;
align-items: center;
gap: 0.7rem;
border: 0;
background: transparent;
padding: 0.65rem 0.7rem;
border-radius: 12px;
text-align: left;
}
.tree-toggle:hover,
.tree-leaf:hover,
.tree-leaf.active {
background: var(--primary-soft);
}
.tree-icon {
width: 22px;
height: 22px;
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 8px;
border: 1px solid var(--border-strong);
background: #fff;
font-weight: 700;
flex: 0 0 22px;
}
.tree-toggle.open .tree-icon { content: ""; }
.tree-toggle.open .tree-icon,
.tree-leaf.active .tree-dot {
background: #111827;
color: #fff;
border-color: #111827;
}
.tree-label { font-size: 0.94rem; color: var(--text); }
.tree-children {
display: none;
margin-left: 0.9rem;
border-left: 1px dashed var(--border);
padding-left: 0.75rem;
}
.tree-children.show { display: block; }
.tree-dot {
width: 10px;
height: 10px;
border-radius: 999px;
border: 1px solid var(--border-strong);
background: #fff;
flex: 0 0 10px;
}
.record-card {
padding: 1rem;
transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.record-card + .record-card { margin-top: 0.85rem; }
.record-card:hover,
.record-card.active {
transform: translateY(-2px);
box-shadow: var(--shadow-lg);
border-color: #b6bec9;
}
.record-title { font-size: 1rem; margin-bottom: 0.35rem; }
.record-meta,
.record-path { font-size: 0.84rem; }
.record-path { min-height: 2.4rem; }
.credential-table th,
.credential-table td,
.meta-grid dt,
.meta-grid dd { font-size: 0.9rem; }
.meta-grid div + div { border-top: 1px solid var(--border); }
.meta-grid dt {
color: var(--text-muted);
margin-bottom: 0.25rem;
padding-top: 0.9rem;
}
.meta-grid dd {
margin-bottom: 0;
font-weight: 600;
padding-bottom: 0.9rem;
}
.policy-list {
padding-left: 1rem;
display: grid;
gap: 0.55rem;
}
.small-heading {
font-size: 0.82rem;
letter-spacing: 0.08em;
text-transform: uppercase;
font-weight: 700;
color: var(--text-muted);
}
.detail-body {
border-top: 1px solid var(--border);
padding-top: 1rem;
}
.toast {
border-radius: 14px;
box-shadow: var(--shadow-sm);
}
.no-print { display: block; }
@media (max-width: 991.98px) {
.panel { padding: 1rem; }
.tree-nav { max-height: none; }
.display-title { max-width: none; }
}
@media print {
body { background: #fff; }
.no-print,
.btn,
.topbar { display: none !important; }
.panel,
.metric-card,
.file-card {
box-shadow: none;
border-color: #d1d5db;
background: #fff;
}
.print-panel { padding: 0; border: 0; }
}