/* Shared graphite surfaces with high-contrast blue and green accents. */
.panel-theme,.auth-site { --panel-accent:#1d4ed8; --panel-accent-hover:#1e40af; --panel-green:#4ade80; --panel-graphite:linear-gradient(165deg,#292929,#151515); }
.panel-theme { background:#f5f5f5; }
.panel-theme .sidebar { background:var(--panel-graphite); border-right:1px solid #3f3f3f; box-shadow:6px 0 24px rgba(0,0,0,.1); }
.panel-theme .sidebar-header h1 { display:flex; align-items:center; gap:10px; color:#fff; letter-spacing:-.035em; }
.panel-theme .sidebar-header p,.panel-theme .nav-section-title { color:#fff; }
.panel-theme .sidebar .nav-link { color:#fff; border:1px solid transparent; padding:11px 14px; margin-bottom:4px; }
.panel-theme .sidebar .nav-link:hover { background:#353535; border-color:#505050; color:#fff; }
.panel-theme .sidebar .nav-link.active { color:#fff; background:linear-gradient(135deg,#484848,#343434); border-color:#626262; border-left:3px solid var(--panel-green); box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 3px 8px rgba(0,0,0,.12); }
.panel-theme .nav-link.active .nav-icon { color:var(--panel-green); }
.panel-theme .card,.panel-theme .stat-card { border:1px solid #e1e1e1; border-radius:16px; box-shadow:0 2px 4px rgba(0,0,0,.025),0 10px 26px rgba(0,0,0,.045); }
.panel-theme .card-header { border-bottom:1px solid #e1e1e1; background:#fdfdfd; }
.panel-theme .topbar { border-bottom:1px solid #e1e1e1; box-shadow:0 2px 12px rgba(0,0,0,.035); }
.panel-theme .content-area a:not([class]),.panel-theme .card-body a:not([class]) { color:var(--panel-accent); text-underline-offset:3px; }
.panel-theme .content-area a:not([class]):hover { color:var(--panel-accent-hover); }
.panel-theme .btn { border:1px solid transparent; box-shadow:0 1px 2px rgba(0,0,0,.05); font-weight:600; }
.panel-theme .btn-primary { background:linear-gradient(#424242,#292929); border-color:#292929; color:#fff; }
.panel-theme .btn-primary:hover { background:#171717; color:#fff; }
.panel-theme .btn-secondary { color:#404040; background:#fff; border-color:#d4d4d4; }
.panel-theme .btn-secondary:hover { color:#262626; background:#f0f0f0; }
.panel-theme .btn-success,.panel-theme .btn-danger,.panel-theme .btn-info,.panel-theme .btn-warning { color:#fff; }
.panel-theme .btn-info { background:#1d4ed8; }
.panel-theme .btn-info:hover { background:#1e40af; }
.panel-theme .action-btn.edit,.panel-theme .badge-info { color:#fff; background:#1d4ed8; border:1px solid #2563eb; }
.panel-theme .action-btn.edit:hover { color:#fff; background:#1e40af; }
.panel-theme .panel-toggle { color:var(--panel-accent); border-color:#d4d4d4; background:#fafafa; }
.panel-theme .panel-toggle:hover { background:#dbeafe; }
.panel-theme .user-avatar { color:#fff; background:linear-gradient(145deg,#555,#292929); }
.panel-theme .page-link.active { background:linear-gradient(#424242,#292929); color:#fff; border-color:#303030; }
.panel-theme .btn-outline-primary { color:var(--panel-accent); border-color:var(--panel-accent); }
.panel-theme .btn-outline-primary:hover { color:#fff; background:var(--panel-accent); }
.panel-theme input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.panel-theme select,.panel-theme textarea { border:1px solid #d4d4d4; background:#fff; color:#262626; padding:10px 12px; font:inherit; box-shadow:inset 0 1px 2px rgba(0,0,0,.025); }
.panel-theme input:focus,.panel-theme select:focus,.panel-theme textarea:focus { outline:2px solid var(--panel-accent); outline-offset:2px; border-color:var(--panel-accent); box-shadow:none; }
.panel-theme input[type=checkbox],.panel-theme input[type=radio] { accent-color:var(--panel-accent); }
.panel-theme :is(a,button):focus-visible { outline:2px solid var(--panel-accent); outline-offset:3px; }
.panel-theme .billing-bell > summary { color:var(--panel-accent); background:#dbeafe; }
.panel-theme .billing-bell__badge { background:var(--panel-accent); color:#fff; }
.panel-theme .billing-bell__item--unread { background:#dbeafe; border-left-color:var(--panel-accent); }
.panel-theme .billing-notification--unread { border-left-color:var(--panel-accent)!important; }
.panel-theme .timezone-note { border-left-color:var(--panel-accent); background:#dbeafe; }
.panel-theme table th { background:#f7f7f7; color:#666; border-bottom-color:#ddd; }
.panel-theme table td { border-bottom-color:#ededed; }
.panel-theme table tr:hover { background:#fafafa; }
.auth-site { background:var(--panel-graphite); min-height:100vh; min-height:100dvh; color:#262626; }
.auth-site .login-container,.auth-site .register-container { background:#fff; border:1px solid #dedede; border-top:3px solid var(--panel-green); border-radius:20px; box-shadow:0 18px 55px rgba(0,0,0,.3); }
.auth-site .logo h1 { color:#292929; letter-spacing:-.04em; }
.auth-site .logo p { color:#666; }
.auth-site .form-group label { color:#404040; }
.auth-site .form-control { border-color:#d4d4d4; border-radius:10px; background:#fff; color:#262626; }
.auth-site .form-control:focus { outline:2px solid var(--panel-accent); outline-offset:2px; border-color:var(--panel-accent); }
.auth-site .btn { background:linear-gradient(#424242,#292929); color:#fff; border:1px solid #292929; border-radius:10px; box-shadow:0 3px 8px rgba(0,0,0,.12); }
.auth-site .btn:hover { background:#171717; color:#fff; box-shadow:0 5px 14px rgba(0,0,0,.18); }
.auth-site a { color:var(--panel-accent); }
.auth-site a:hover { color:var(--panel-accent-hover); text-decoration:underline; }
.auth-site :is(a,button):focus-visible { outline:2px solid var(--panel-accent); outline-offset:3px; }
@media(max-width:768px) {
 .panel-theme .card-header,.panel-theme .card-body { padding:18px; }
 .panel-theme .content-area { padding:16px; }
 .auth-site .login-container,.auth-site .register-container { padding:28px 22px; }
}
@media(prefers-reduced-motion:reduce) { .auth-site .btn:hover { transform:none; } }
.panel-theme .btn-success:hover,.panel-theme .btn-danger:hover,.panel-theme .btn-info:hover,.panel-theme .btn-warning:hover { color:#fff; }

/* Saturated status colors; graphite and neutral surfaces stay unchanged. */
.panel-theme .btn-success { background:#166534; border-color:#166534; }
.panel-theme .btn-success:hover { background:#14532d; border-color:#14532d; }
.panel-theme .btn-danger { background:#b91c1c; border-color:#b91c1c; }
.panel-theme .btn-danger:hover { background:#991b1b; border-color:#991b1b; }
.panel-theme .btn-warning { background:#92400e; border-color:#92400e; }
.panel-theme .btn-warning:hover { background:#78350f; border-color:#78350f; }
.panel-theme .badge-success { background:#166534; color:#fff; border-color:#166534; }
.panel-theme .badge-danger { background:#b91c1c; color:#fff; border-color:#b91c1c; }
.panel-theme .badge-warning { background:#92400e; color:#fff; border-color:#92400e; }
.panel-theme .action-btn.delete { background:#b91c1c; color:#fff; border:1px solid #b91c1c; }
.panel-theme .action-btn.delete:hover { background:#991b1b; color:#fff; }
.panel-theme .action-btn.toggle { background:#92400e; color:#fff; border:1px solid #92400e; }
.panel-theme .action-btn.toggle:hover { background:#78350f; color:#fff; }
.panel-theme .btn-outline-success { color:#166534; border-color:#166534; }
.panel-theme .btn-outline-success:hover { background:#166534; color:#fff; }
.panel-theme .btn-outline-danger { color:#b91c1c; border-color:#b91c1c; }
.panel-theme .btn-outline-danger:hover { background:#b91c1c; color:#fff; }
.panel-theme .btn-outline-info { color:#1d4ed8; border-color:#1d4ed8; }
.panel-theme .btn-outline-info:hover { background:#1d4ed8; color:#fff; }
:is(.panel-theme,.auth-site) .message.success { color:#14532d; background:#dcfce7; border:1px solid #16a34a; }
:is(.panel-theme,.auth-site) .message.error { color:#991b1b; background:#fee2e2; border:1px solid #dc2626; }
:is(.panel-theme,.auth-site) .message.warning { color:#78350f; background:#fef3c7; border:1px solid #b45309; }
:is(.panel-theme,.auth-site) .message.info { color:#1e40af; background:#dbeafe; border:1px solid #2563eb; }
.panel-theme .stat-change.positive { color:#166534; }
.panel-theme .stat-change.negative { color:#b91c1c; }

/* Teal and plum surfaces add color alongside the graphite navigation. */
.panel-theme .topbar { background:#edf8f5; border-bottom-color:#9bc8be; }
.panel-theme .topbar-title,.panel-theme .card-title { color:#134e4a; }
.panel-theme .card-header { background:#e3f3ee; border-bottom-color:#9bc8be; }
.panel-theme .stat-card:nth-child(3n+1) { background:linear-gradient(135deg,#e4f4ef,#f6fbf9); border-color:#87bfb0; }
.panel-theme .stat-card:nth-child(3n+2) { background:linear-gradient(135deg,#eee8fa,#faf8ff); border-color:#b7a3d8; }
.panel-theme .stat-card:nth-child(3n) { background:linear-gradient(135deg,#e5eefb,#f8faff); border-color:#9bb7df; }
.panel-theme .stat-card:nth-child(3n+1) .stat-value { color:#115e59; }
.panel-theme .stat-card:nth-child(3n+2) .stat-value { color:#6b21a8; }
.panel-theme .stat-card:nth-child(3n) .stat-value { color:#1e40af; }
.panel-theme .btn-secondary { background:#0f766e; color:#fff; border-color:#0f766e; }
.panel-theme .btn-secondary:hover { background:#115e59; color:#fff; border-color:#115e59; }
.auth-site .login-container,.auth-site .register-container { background:#f3faf7; border-top-color:#14b8a6; }
.auth-site .logo h1 { color:#134e4a; }

/* The menu control belongs to the sidebar; desktop collapse keeps a usable rail. */
.panel-theme .sidebar { z-index:101; transition:width .2s,transform .2s; }
.panel-theme .sidebar-controls { padding:16px 16px 0; }
.panel-theme .sidebar .panel-toggle { background:#353535; color:#fff; border-color:#626262; min-height:44px; width:100%; justify-content:flex-start; }
.panel-theme .sidebar .panel-toggle:hover { background:#484848; }
.panel-theme .sidebar-header { padding:20px; }
.panel-theme .sidebar-header h1 { white-space:nowrap; }
.panel-theme .nav-label { min-width:0; overflow-wrap:anywhere; }
.panel-theme .nav-link > :is(.nav-icon,.ui-icon) { width:20px; height:20px; flex:0 0 20px; margin:0 12px 0 0; }
.panel-theme .panel-mobile-toggle { display:none; }
@media(min-width:901px) {
 html.panel-collapsed .panel-theme .sidebar { width:76px; transform:none; overflow-x:hidden; }
 html.panel-collapsed .panel-theme .main-content { margin-left:76px; }
 html.panel-collapsed .panel-theme .sidebar-controls { padding:16px 10px 0; }
 html.panel-collapsed .panel-theme .sidebar .panel-toggle { justify-content:center; padding:10px; }
 html.panel-collapsed .panel-theme .sidebar :is(.nav-label,.nav-section-title,.sidebar-header,.panel-toggle span) { display:none; }
 html.panel-collapsed .panel-theme .sidebar-nav { padding-top:16px; }
 html.panel-collapsed .panel-theme .nav-section { margin-bottom:16px; }
 html.panel-collapsed .panel-theme .sidebar .nav-link { justify-content:center; margin:0 10px 8px; padding:12px; min-height:48px; }
 html.panel-collapsed .panel-theme .nav-link > :is(.nav-icon,.ui-icon) { margin:0; }
}
@media(max-width:900px) {
 .panel-theme .panel-mobile-toggle { display:flex; }
 .panel-theme .sidebar { z-index:1002; }
}

/* Consistent breathing room throughout the administration panel. */
.admin-site .content-area { line-height:1.65; }
.admin-site .content-area > :is(h1,h2,h3,p) { margin-bottom:20px; }
.admin-site .card-header { gap:16px; flex-wrap:wrap; }
.admin-site .card-body > :is(h1,h2,h3,h4,h5,p,form,.table-responsive) + :is(h1,h2,h3,h4,h5,p,form,.table-responsive) { margin-top:16px; }
.admin-site .card-body > :is(p,h1,h2,h3,h4,h5):last-child { margin-bottom:0; }
.admin-site .card-body p { line-height:1.75; }
.admin-site .card-body p + p { margin-top:12px; }
.admin-site .btn,.admin-site .action-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; line-height:1.45; text-align:center; }
.admin-site .btn { padding:10px 16px; min-height:42px; }
.admin-site .btn-sm { padding:8px 12px; min-height:36px; }
.admin-site .action-btn { padding:8px 10px; min-height:36px; }
.admin-site .admin-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.admin-site .admin-actions > form { display:inline-flex; margin:0; }
.admin-site .admin-actions-spaced { margin-top:24px; }
.admin-site .filters,.admin-site .admin-filters { display:flex; flex-wrap:wrap; align-items:center; gap:12px 16px; margin:20px 0 24px; }
.admin-site .filter-item { flex-wrap:wrap; gap:8px; }
.admin-site .admin-filters > * { min-height:42px; }
.admin-site .form-group { margin-bottom:24px; }
.admin-site label { line-height:1.5; }
.admin-site :is(.form-label,form > label) { display:block; margin-bottom:8px; }
.admin-site .form-group > small { display:block; margin-top:8px; }
.admin-site .errorlist { padding-left:20px; margin:8px 0; }
.admin-site .stat-label { margin-bottom:10px; }
.admin-site .stat-value + :is(small,a) { display:block; margin-top:10px; }
.admin-site :is(.stat-change,.empty-state p + .btn) { margin-top:12px; }
.admin-site .admin-pagination { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:24px; }
.admin-site .admin-pagination a { padding:8px 14px; border:1px solid #d4d4d4; border-radius:10px; background:#fff; }
.admin-site .table-responsive { margin-top:16px; }
.admin-site td small { display:inline-block; margin-top:4px; }
.admin-site .actions-cell { min-width:150px; }
/* The company form does not depend on Bootstrap grid utilities. */
.panel-theme .company-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.panel-theme .company-fields > :is(.col-12,.col-md-12) { grid-column:1 / -1; }
.panel-theme .company-fields > * { min-width:0; }
.panel-theme .company-fields input,.panel-theme .company-fields select,.panel-theme .company-fields textarea { width:100%; }
.panel-theme .company-fields label { display:block; margin-bottom:8px; }
.panel-theme .company-fields .form-text { margin-top:8px; font-size:13px; line-height:1.6; }
.panel-theme .company-fields .errorlist { margin-top:8px; padding-left:20px; }
.panel-theme .company-fields + hr { margin:28px 0; border:0; border-top:1px solid #d4d4d4; }
@media(max-width:768px) {
 .panel-theme .company-fields { grid-template-columns:minmax(0,1fr); gap:20px; }
 .admin-site .admin-actions { gap:10px; }
 .admin-site .admin-filters > * { flex:1 1 160px; max-width:100%; }
}
@media(prefers-reduced-motion:reduce) { .panel-theme .sidebar { transition:none; } }
.panel-theme .sidebar-controls { position:sticky; top:0; z-index:2; padding-bottom:12px; background:#292929; }
