/* ============================================
   Castello di Limatola theme ("Editoriale", like the guests' menu.php): cream paper, ink,
   one red accent (the castle crest), Cormorant Garamond titles and Inter text, thin rules.
   Loaded after style.css (and after the sidebar styles in includes/header.php),
   so style.css stays as in the pub repo.
   ============================================ */
:root {
    --primary: #bc1f2f;
    --primary-dark: #9a1826;
    --primary-light: #d23a48;
    --secondary: #1e1b18;
    --accent: #5f6b3a;
    --success: #4f7a3a;
    --warning: #b9862b;
    --danger: #b3261e;
    --info: #3d6b8c;
    --bg-light: #f6f1e7;
    --text-primary: #1e1b18;
    --text-secondary: #75695d;
    --border-color: #e2d8c6;
    --font-main: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    --font-display: 'Cormorant Garamond', Georgia, serif;
    --ink: #1e1b18;
    --cream: #f6f1e7;
    --paper-2: #efe7d8;
    --rule: #d9cdb8;
    --shadow-sm: 0 1px 2px rgba(30,27,24,.05);
    --shadow-md: 0 4px 14px rgba(30,27,24,.07);
    --shadow-glow: none;
}

body { background: var(--cream); font-family: var(--font-main); }

/* ---------- Top bar: paper, a thin rule, the active page underlined ---------- */
.main-nav { background: #fbf8f2; border-bottom: 1px solid var(--rule); box-shadow: none; padding: 8px 16px; gap: 12px; }
.nav-brand { color: var(--ink); font-family: var(--font-display); }
.nav-logo { background: none; box-shadow: none; padding: 0 6px 0 0; border-radius: 0; }
.nav-logo img { height: 50px; }
.nav-links { gap: 2px; }
.nav-links a { color: var(--text-secondary); font-weight: 500; border-radius: 0; padding: 14px 11px; line-height: 1.2; border-bottom: 2px solid transparent; }
.nav-links a i { color: var(--primary); opacity: .85; }
.nav-links a:hover { background: none; color: var(--ink); }
.nav-links a.active { background: none; color: var(--ink); border-bottom-color: var(--primary); }
.nav-user { gap: 12px; }
.lang-switch, .layout-switch { border-color: var(--rule); background: transparent; }
.lang-switch a, .layout-switch button { color: var(--text-secondary); }
.lang-switch a:hover, .layout-switch button:hover { color: var(--ink); }
.lang-switch a.active, .layout-switch button.active { background: var(--ink); color: #fbf8f2; }
.layout-switch button.auto { box-shadow: inset 0 0 0 1px var(--rule); }
.notifications-bell { color: var(--ink); }
.notifications-bell .badge { background: var(--primary); color: #fff; }
.user-info .user-name { color: var(--ink); font-family: var(--font-display); font-weight: 600; font-size: 1.05rem; }
.user-info .user-role { color: var(--text-secondary); letter-spacing: .12em; }
.btn-logout { background: none; color: var(--ink); border: 1px solid var(--rule); }
.btn-logout:hover { background: var(--ink); color: #fbf8f2; }

/* ---------- Admin sidebar: a slightly darker paper, the page in ink with an accent rule ---------- */
.admin-sidebar { background: var(--paper-2); border-right: 1px solid var(--rule); }
.admin-sidebar a { color: #4a4038; border-radius: 0; border-left: 2px solid transparent; }
.admin-sidebar a i { color: var(--text-secondary); }
.admin-sidebar a:hover { background: rgba(30,27,24,.04); color: var(--ink); }
.admin-sidebar a.active { background: #fbf8f2; color: var(--ink); font-weight: 600; border-left-color: var(--primary); }
.admin-sidebar a.active i { color: var(--primary); }
.admin-sidebar a.open { color: var(--ink); }
.admin-sidebar .sb-group summary { color: var(--text-secondary); border-radius: 0; font-size: .7rem; letter-spacing: .16em; }
.admin-sidebar .sb-group summary:hover, .admin-sidebar .sb-group.here summary { color: var(--ink); background: none; }

/* ---------- Page header ---------- */
.page-header { border-bottom: 1px solid var(--ink); padding-bottom: 12px; }
.page-header h1 { font-family: var(--font-display); font-weight: 600; font-size: 2.3rem; letter-spacing: -.01em; color: var(--ink); }
.page-header h1 i { color: var(--primary); font-size: 1.4rem; }

/* ---------- Cards ---------- */
.card { background: #fbf8f2; border: 1px solid var(--border-color); border-radius: 6px; box-shadow: var(--shadow-sm); }
.card:hover { box-shadow: var(--shadow-sm); }
.card-header { border-bottom: 1px solid var(--border-color); }
.card-header h2 { font-family: var(--font-display); font-weight: 600; font-size: 1.45rem; }
.card-header h2 i { color: var(--primary); font-size: 1rem; }
.card-footer { background: var(--cream); border-top: 1px solid var(--border-color); }

/* ---------- Buttons: flat, small radius ---------- */
.btn { border-radius: 4px; font-weight: 600; letter-spacing: .01em; box-shadow: none; border: 1px solid transparent; }
.btn-primary { background: var(--primary); }
.btn-primary:hover { background: var(--primary-dark); box-shadow: none; }
.btn-secondary { background: var(--ink); }
.btn-success { background: var(--success); }
.btn-success:hover { background: #3f6330; }
.btn-warning { background: var(--warning); color: #fff; }
.btn-danger { background: var(--danger); }
.btn-outline { background: transparent; border: 1px solid var(--ink); color: var(--ink); }
.btn-outline:hover { background: var(--ink); color: #fbf8f2; border-color: var(--ink); }

/* ---------- Forms ---------- */
.form-control { border: 1px solid var(--rule); border-radius: 4px; background: #fffdf9; }
.form-control:focus { border-color: var(--ink); box-shadow: 0 0 0 3px rgba(188,31,47,.10); }

/* ---------- Tables ---------- */
.data-table th { background: transparent; color: var(--text-secondary); border-bottom: 1px solid var(--ink); font-size: .7rem; letter-spacing: .14em; }
.data-table td { border-bottom: 1px solid var(--border-color); }
.data-table tbody tr:hover { background: rgba(30,27,24,.025); }

/* ---------- Badges ---------- */
.badge { border-radius: 3px; letter-spacing: .1em; }
.badge-primary { background: rgba(188,31,47,.1); }
.badge-success { background: rgba(79,122,58,.12); }
.badge-warning { background: rgba(185,134,43,.14); color: #8a6219; }

/* ---------- Modals ---------- */
.modal { border-radius: 6px; border: 1px solid var(--border-color); background: #fbf8f2; box-shadow: 0 20px 60px rgba(30,27,24,.25); }
.modal-header { border-bottom: 1px solid var(--ink); }
.modal-header h3 { font-family: var(--font-display); font-weight: 600; font-size: 1.5rem; }
.modal-overlay { background: rgba(30,27,24,.45); }

/* ---------- Dashboard stats ---------- */
.stat-card { background: #fbf8f2; border: 1px solid var(--border-color); border-radius: 6px; box-shadow: var(--shadow-sm); }
.stat-card .stat-icon { background: none !important; color: var(--primary); border: 1px solid var(--rule); border-radius: 50%; width: 54px; height: 54px; }
.stat-card .stat-value { font-family: var(--font-display); font-weight: 600; font-size: 2.1rem; color: var(--ink); }
.stat-card .stat-label { letter-spacing: .08em; text-transform: uppercase; font-size: .7rem; }

/* ---------- Waiters: tables and categories ---------- */
.table-card { border: 1px solid var(--border-color); box-shadow: var(--shadow-sm); border-radius: 6px; }
.category-btn { border: 1px solid var(--border-color); border-radius: 6px; box-shadow: none; }

/* ---------- Pages with their own stat boxes (Statistiche camerieri, Piatti annullati) ---------- */
.stat-tile { border: 1px solid var(--border-color) !important; box-shadow: var(--shadow-sm) !important; border-radius: 6px !important; background: #fbf8f2 !important; }
.stat-tile .v { font-family: var(--font-display); font-weight: 600 !important; font-size: 2rem !important; }
.ss-tabs a { border-width: 1px !important; border-radius: 4px !important; }
.cmp-period { border: 1px solid var(--border-color) !important; border-left: 4px solid var(--primary) !important; border-radius: 6px !important; }
.cmp-period.b { border-left-color: #a99d8e !important; }
.void-reasons button.on { border-color: var(--primary) !important; }

/* ---------- Login, forgot / reset password ---------- */
.login-page { background: var(--cream); }
.login-container { background: #fbf8f2; border: 1px solid var(--border-color); border-radius: 6px; box-shadow: 0 20px 60px rgba(30,27,24,.10); border-top: 3px solid var(--primary); }
.login-logo h1 { font-family: var(--font-display); font-weight: 600; color: var(--ink); }
.login-error { border: 1px solid var(--danger); }
