:root {
  --sidebar-bg: #222e3c;
  --sidebar-text: #adb5bd;
  --accent: #3b7ddd;
  --page-bg: #f5f7fb;
}
body { background: var(--page-bg); font-family: Inter, system-ui, sans-serif; }
.app-shell { display: flex; min-height: 100vh; }
.app-sidebar { width: 260px; background: var(--sidebar-bg); color: var(--sidebar-text); flex-shrink: 0; }
.brand { display: block; padding: 1.25rem 1.5rem; color: #fff; font-weight: 600; font-size: 1.25rem; text-decoration: none; }
.nav-title { padding: 1.25rem 1.5rem .5rem; font-size: .75rem; text-transform: uppercase; }
.nav-list { list-style: none; margin: 0; padding: 0; }
.nav-list a { display: block; padding: .65rem 1.5rem; color: var(--sidebar-text); text-decoration: none; border-left: 3px solid transparent; }
.nav-list li.active a, .nav-list a:hover { color: #fff; background: rgba(255,255,255,.05); border-left-color: var(--accent); }
.main { flex: 1; min-width: 0; }
.login-page { display: flex; align-items: center; justify-content: center; min-height: 100vh; }
.login-card { width: 100%; max-width: 400px; }
.app-topbar { display: flex; align-items: center; background: #fff; padding: 1rem 1.5rem; box-shadow: 0 0 2rem rgba(33,37,41,.05); }
.search { max-width: 320px; border-radius: 2rem; background: var(--page-bg); border: 0; }
.content { padding: 2rem 1.5rem; }
.signature-preview { display: inline-block; padding: .75rem; border: 1px solid #dee2e6; border-radius: .375rem; background: repeating-conic-gradient(#f1f3f5 0% 25%, #fff 0% 50%) 50% / 16px 16px; }
.signature-preview img { display: block; max-width: 100%; max-height: 160px; }
.card { border: 0; box-shadow: 0 0 .875rem rgba(33,37,41,.05); }
@media (max-width: 768px) { .app-sidebar { display: none; } }
.signature-name { font-family: 'Caveat', cursive; font-size: 1.6rem; color: #2C1A0E; line-height: 1; }
.signature-img { max-height: 60px; max-width: 150px; display: block; }
.signature-preview .signature-img { max-height: 100px; max-width: 100%; }
