/* ═══════════════════════════════════════════════════════
   STAFF PORTAL — Frosted Crystal Light Theme
   Fonts: Bebas Neue · Plus Jakarta Sans · Instrument Serif
   ═══════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&family=Instrument+Serif:ital@0;1&display=swap');

:root {
    --in:           #059669;
    --in-light:     #d1fae5;
    --out:          #e11d48;
    --out-light:    #ffe4e6;
    --accent:       #4f46e5;
    --accent-light: #e0e7ff;
    --sky:          #0ea5e9;
    --amber:        #d97706;
    --amber-light:  #fef3c7;
    --violet:       #7c3aed;
    --violet-light: #ede9fe;

    --glass-white:  rgba(255,255,255,0.72);
    --glass-border: rgba(255,255,255,0.9);
    --glass-shadow: rgba(100,120,200,0.14);

    --text-dark: #0f172a;
    --text-mid:  #475569;
    --text-soft: #94a3b8;

    --radius:    22px;
    --radius-sm: 12px;
    --radius-xs: 8px;
    --sidebar-w: 280px;
    --ease:      cubic-bezier(0.4,0,0.2,1);
    --t:         0.28s;

    --font-d: 'Bebas Neue', sans-serif;
    --font-b: 'Plus Jakarta Sans', sans-serif;
    --font-s: 'Instrument Serif', serif;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
    font-family: var(--font-b);
    background: #f0f4ff;
    color: var(--text-dark);
    min-height: 100vh;
    overflow-x: hidden;
}

/* ══════════════════════════════
   BACKGROUND
══════════════════════════════ */
.bg-canvas {
    position: fixed; inset: 0;
    z-index: 0; overflow: hidden; pointer-events: none;
    background: linear-gradient(145deg,#eef2ff 0%,#f8faff 40%,#ffe8f0 70%,#e8f5ff 100%);
}

.blob {
    position: absolute; border-radius: 50%;
    filter: blur(80px);
    animation: blob-drift 20s ease-in-out infinite alternate;
}
.blob-1 { width:700px;height:600px; background:radial-gradient(ellipse,rgba(167,139,250,.35) 0%,transparent 70%); top:-200px;left:-150px; animation-duration:22s; }
.blob-2 { width:600px;height:600px; background:radial-gradient(ellipse,rgba(56,189,248,.28) 0%,transparent 70%);  top:10%;right:-100px;  animation-duration:28s;animation-delay:-8s; }
.blob-3 { width:800px;height:500px; background:radial-gradient(ellipse,rgba(251,191,36,.2) 0%,transparent 70%);   bottom:-150px;left:20%; animation-duration:26s;animation-delay:-14s; }
.blob-4 { width:500px;height:500px; background:radial-gradient(ellipse,rgba(244,114,182,.25) 0%,transparent 70%); bottom:20%;right:15%;  animation-duration:18s;animation-delay:-6s; }

@keyframes blob-drift {
    0%   { transform:translate(0,0) scale(1); }
    33%  { transform:translate(60px,40px) scale(1.07); }
    66%  { transform:translate(-40px,70px) scale(.95); }
    100% { transform:translate(50px,-50px) scale(1.04); }
}

/* ══════════════════════════════
   GLASS PANEL
══════════════════════════════ */
.glass-panel {
    position: relative;
    background: var(--glass-white);
    backdrop-filter: blur(32px) saturate(200%);
    -webkit-backdrop-filter: blur(32px) saturate(200%);
    border: 1.5px solid var(--glass-border);
    border-radius: var(--radius);
    box-shadow:
        0 2px 0 rgba(255,255,255,1) inset,
        0 -1px 0 rgba(200,210,255,.3) inset,
        0 20px 60px var(--glass-shadow),
        0 4px 16px rgba(100,120,200,.08);
    overflow: hidden;
}

.glass-panel::before {
    content:'';position:absolute;top:0;left:5%;right:5%;
    height:1.5px;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,1),transparent);
    border-radius:2px;pointer-events:none;z-index:1;
}

.glass-panel::after {
    content:'';position:absolute;top:0;left:0;right:0;
    height:50%;
    background:linear-gradient(180deg,rgba(255,255,255,.38) 0%,transparent 100%);
    border-radius:var(--radius) var(--radius) 0 0;
    pointer-events:none;z-index:0;
}

/* ══════════════════════════════
   LOGIN
══════════════════════════════ */
.login-wrapper {
    position:relative;z-index:10;
    display:flex;flex-direction:column;
    align-items:center;justify-content:center;
    min-height:100vh;padding:50px 20px 70px;gap:52px;
}

.hero-block { text-align:center; animation:hero-in .9s var(--ease) both; }

@keyframes hero-in {
    from { opacity:0;transform:translateY(-28px); }
    to   { opacity:1;transform:translateY(0); }
}

.hero-eyebrow {
    display:flex;align-items:center;justify-content:center;gap:10px;
    margin-bottom:20px;font-size:11px;font-weight:700;
    letter-spacing:3px;text-transform:uppercase;color:var(--accent);
}

.eyebrow-pip { display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);opacity:.6; }

.hero-title { display:flex;flex-direction:column;align-items:center;margin-bottom:18px;line-height:.9; }

.hero-line-1 {
    font-family:var(--font-d);font-size:clamp(80px,16vw,160px);letter-spacing:6px;
    background:linear-gradient(135deg,#1e1b4b 0%,var(--accent) 55%,#7c3aed 100%);
    -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
    filter:drop-shadow(0 4px 24px rgba(79,70,229,.25));
    animation:hero-in .9s .05s var(--ease) both;
}

.hero-line-2 {
    font-family:var(--font-b);font-size:clamp(18px,3.5vw,34px);font-weight:300;
    letter-spacing:10px;color:var(--text-mid);text-transform:uppercase;
    animation:hero-in .9s .15s var(--ease) both;
}
.hero-line-2 em { font-family:var(--font-s);font-style:italic;font-weight:400;color:var(--in);letter-spacing:2px; }

.hero-line-3 {
    font-family:var(--font-d);font-size:clamp(40px,8vw,80px);letter-spacing:8px;
    background:linear-gradient(135deg,var(--in) 0%,var(--sky) 100%);
    -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
    filter:drop-shadow(0 2px 14px rgba(5,150,105,.22));
    animation:hero-in .9s .25s var(--ease) both;
}

.hero-tagline {
    font-size:12px;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;
    color:var(--text-soft);margin-bottom:22px;
    animation:hero-in .9s .35s var(--ease) both;
}

.hero-rule {
    display:flex;align-items:center;justify-content:center;gap:14px;
    animation:hero-in .9s .45s var(--ease) both;
}
.rule-dot { width:6px;height:6px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--in)); }
.rule-line { width:80px;height:1.5px;background:linear-gradient(90deg,var(--accent),var(--in));border-radius:2px;opacity:.4; }

.login-card {
    width:100%;max-width:400px;padding:46px 38px 40px;
    animation:card-rise .8s .25s var(--ease) both;
}

@keyframes card-rise {
    from { opacity:0;transform:translateY(36px) scale(.97); }
    to   { opacity:1;transform:translateY(0) scale(1); }
}

.login-logo {
    position:relative;width:72px;height:72px;
    margin:0 auto 22px;display:flex;align-items:center;justify-content:center;
}

.logo-circle {
    font-size:36px;position:relative;z-index:2;
    filter:drop-shadow(0 4px 12px rgba(79,70,229,.3));
    animation:float-bob 3s ease-in-out infinite;
}

@keyframes float-bob {
    0%,100% { transform:translateY(0); }
    50%     { transform:translateY(-5px); }
}

.logo-ring {
    position:absolute;inset:-4px;border-radius:50%;
    border:2.5px solid transparent;
    background:linear-gradient(135deg,var(--accent),var(--in),var(--sky)) border-box;
    -webkit-mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);
    -webkit-mask-composite:destination-out;mask-composite:exclude;
    animation:spin-ring 9s linear infinite;
}

@keyframes spin-ring { to { transform:rotate(360deg); } }

.login-card-title {
    font-family:var(--font-d);font-size:34px;letter-spacing:3px;
    text-align:center;color:var(--text-dark);margin-bottom:5px;
}

.login-card-sub { text-align:center;font-size:12px;color:var(--text-soft);margin-bottom:28px;letter-spacing:.4px; }

.input-group { position:relative;margin-bottom:14px; }

.input-icon {
    position:absolute;left:14px;top:50%;transform:translateY(-50%);
    font-size:14px;opacity:.45;pointer-events:none;z-index:2;
}

.input-group input, .form-input {
    width:100%;padding:13px 16px 13px 42px;
    background:rgba(255,255,255,.7);
    border:1.5px solid rgba(200,210,255,.6);
    border-radius:var(--radius-sm);
    color:var(--text-dark);font-family:var(--font-b);font-size:14px;
    outline:none;transition:var(--t) var(--ease);
    box-shadow:0 2px 8px rgba(100,120,200,.06),0 1px 0 rgba(255,255,255,.9) inset;
}

.form-input { padding-left:14px; }

.input-group input:focus, .form-input:focus {
    border-color:var(--accent);background:rgba(255,255,255,.9);
    box-shadow:0 0 0 3px rgba(79,70,229,.12),0 2px 8px rgba(100,120,200,.08);
}

input::placeholder, .form-input::placeholder { color:var(--text-soft); }

#login-error { color:var(--out);font-size:12px;text-align:center;margin-top:8px;min-height:18px;font-weight:500; }

.btn-primary {
    position:relative;width:100%;padding:14px;margin-top:6px;
    background:linear-gradient(135deg,var(--accent) 0%,#7c3aed 50%,var(--sky) 100%);
    border:none;border-radius:var(--radius-sm);color:white;
    font-family:var(--font-b);font-size:14px;font-weight:700;cursor:pointer;
    overflow:hidden;transition:var(--t) var(--ease);
    letter-spacing:1px;text-transform:uppercase;
    box-shadow:0 4px 20px rgba(79,70,229,.4),0 1px 0 rgba(255,255,255,.3) inset;
}

.btn-primary:hover { transform:translateY(-2px);box-shadow:0 8px 30px rgba(79,70,229,.5),0 1px 0 rgba(255,255,255,.3) inset; }
.btn-primary:active { transform:translateY(0); }

.btn-gloss {
    position:absolute;top:0;left:0;right:0;height:50%;
    background:linear-gradient(180deg,rgba(255,255,255,.22) 0%,transparent 100%);
    pointer-events:none;
}

/* ══════════════════════════════
   DASHBOARD LAYOUT
══════════════════════════════ */
.dashboard-layout {
    position:relative;z-index:10;
    display:flex;gap:18px;padding:18px;
    min-height:100vh;align-items:flex-start;
}

/* ── SIDEBAR ── */
.sidebar {
    flex:0 0 var(--sidebar-w);
    display:flex;flex-direction:column;gap:13px;
    padding:22px 18px;
    height:calc(100vh - 36px);
    position:sticky;top:18px;
    animation:slide-left .55s var(--ease) both;
}

@keyframes slide-left {
    from { opacity:0;transform:translateX(-28px); }
    to   { opacity:1;transform:translateX(0); }
}

.sidebar-brand { display:flex;align-items:center;gap:8px;padding-bottom:2px; }
.brand-plus { font-family:var(--font-d);font-size:22px;color:var(--in);line-height:1;filter:drop-shadow(0 2px 6px rgba(5,150,105,.35)); }
.brand-label { font-family:var(--font-b);font-size:14px;font-weight:400;color:var(--text-mid); }
.brand-label strong { font-weight:800;color:var(--text-dark); }

.profile-block {
    display:flex;flex-direction:column;align-items:center;gap:14px;
    padding:22px 14px 20px;
    background:linear-gradient(160deg,rgba(255,255,255,.85) 0%,rgba(240,244,255,.75) 100%);
    border-radius:16px;border:1.5px solid rgba(255,255,255,.95);
    box-shadow:0 2px 0 rgba(255,255,255,1) inset,0 8px 30px rgba(100,120,200,.1),0 1px 0 rgba(200,210,255,.4);
    position:relative;overflow:hidden;
}

.profile-block::before {
    content:'';position:absolute;top:0;left:10%;right:10%;
    height:1px;background:rgba(255,255,255,1);
}

.profile-photo-wrap { position:relative;width:100px;height:100px;flex-shrink:0; }

.profile-photo {
    width:100px;height:100px;border-radius:50%;
    object-fit:cover;object-position:center top;
    display:block;position:relative;z-index:2;
    box-shadow:0 6px 24px rgba(79,70,229,.2),0 2px 8px rgba(0,0,0,.1);
}

.avatar-fallback {
    width:100px;height:100px;border-radius:50%;
    background:linear-gradient(135deg,var(--accent-light),#e0f2fe);
    display:flex;align-items:center;justify-content:center;
    font-size:40px;position:relative;z-index:2;
    box-shadow:0 6px 24px rgba(79,70,229,.15);
}

.photo-ring {
    position:absolute;inset:-4px;border-radius:50%;
    border:3px solid transparent;
    background:linear-gradient(135deg,var(--accent),var(--in),var(--sky)) border-box;
    -webkit-mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);
    -webkit-mask-composite:destination-out;mask-composite:exclude;
    animation:spin-ring 12s linear infinite;z-index:3;
}

.profile-info { text-align:center;display:flex;flex-direction:column;gap:1px; }
.profile-hello { font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--text-soft); }
.profile-name {
    font-family:var(--font-d);font-size:26px;letter-spacing:2px;line-height:1.1;
    background:linear-gradient(135deg,var(--accent),var(--in));
    -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}

.divider { height:1px;background:linear-gradient(90deg,transparent,rgba(100,120,200,.18),transparent); }

.field-label { font-size:10px;font-weight:700;color:var(--text-soft);text-transform:uppercase;letter-spacing:1.2px; }
.category-wrapper { display:flex;flex-direction:column;gap:6px; }

.styled-select {
    width:100%;padding:11px 14px;
    background:rgba(255,255,255,.75);
    border:1.5px solid rgba(200,210,255,.55);
    border-radius:var(--radius-xs);
    color:var(--text-dark);font-family:var(--font-b);font-size:13px;
    cursor:pointer;outline:none;transition:var(--t) var(--ease);
    -webkit-appearance:none;appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2394a3b8' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:right 12px center;padding-right:32px;
    box-shadow:0 2px 8px rgba(100,120,200,.07),0 1px 0 rgba(255,255,255,1) inset;
}

.styled-select:focus { border-color:var(--accent);box-shadow:0 0 0 3px rgba(79,70,229,.1),0 1px 0 rgba(255,255,255,1) inset; }
.styled-select option { background:#f8faff;color:var(--text-dark); }

/* ── Tiles ── */
.tile-container { display:flex;flex-direction:column;gap:10px; }

.tile-btn {
    position:relative;display:block;border:none;
    border-radius:14px;cursor:pointer;overflow:hidden;
    transition:var(--t) var(--ease);text-align:left;padding:0;
}

.tile-btn:hover { transform:translateY(-3px); }
.tile-btn:active { transform:translateY(0); }

.tile-gloss {
    position:absolute;top:0;left:0;right:0;height:50%;
    background:linear-gradient(180deg,rgba(255,255,255,.45) 0%,transparent 100%);
    border-radius:14px 14px 0 0;pointer-events:none;z-index:2;
}

.tile-in {
    background:linear-gradient(145deg,#065f46 0%,#059669 60%,#34d399 100%);
    border:1.5px solid rgba(255,255,255,.25);
    box-shadow:0 6px 24px rgba(5,150,105,.35),0 2px 0 rgba(255,255,255,.3) inset;
}
.tile-in:hover { box-shadow:0 12px 36px rgba(5,150,105,.45),0 2px 0 rgba(255,255,255,.3) inset; }

.tile-out {
    background:linear-gradient(145deg,#9f1239 0%,#e11d48 60%,#fb7185 100%);
    border:1.5px solid rgba(255,255,255,.25);
    box-shadow:0 6px 24px rgba(225,29,72,.35),0 2px 0 rgba(255,255,255,.3) inset;
}
.tile-out:hover { box-shadow:0 12px 36px rgba(225,29,72,.45),0 2px 0 rgba(255,255,255,.3) inset; }

.tile-inner { display:flex;align-items:center;gap:12px;padding:14px 16px;position:relative;z-index:3; }

.tile-icon-wrap {
    width:40px;height:40px;border-radius:10px;
    display:flex;align-items:center;justify-content:center;
    font-size:20px;flex-shrink:0;
    background:rgba(255,255,255,.2);box-shadow:0 2px 8px rgba(0,0,0,.15);
}

.tile-text { flex:1; }
.tile-label { display:block;font-family:var(--font-d);font-size:18px;letter-spacing:2px;color:#fff;line-height:1;text-shadow:0 1px 3px rgba(0,0,0,.2); }
.tile-text small { font-size:11px;color:rgba(255,255,255,.75);font-weight:500;display:block;margin-top:1px; }
.tile-chevron { font-size:20px;color:rgba(255,255,255,.7);transition:transform var(--t) var(--ease); }
.tile-btn:hover .tile-chevron { transform:translateX(4px); }

/* Stats */
.stats-strip {
    display:flex;align-items:center;
    background:rgba(255,255,255,.65);
    border:1.5px solid rgba(255,255,255,.9);
    border-radius:13px;padding:12px 0;
    box-shadow:0 4px 16px rgba(100,120,200,.1),0 1px 0 rgba(255,255,255,1) inset;
}

.stat-pill { flex:1;text-align:center;display:flex;flex-direction:column;gap:2px; }
.stat-num { font-family:var(--font-d);font-size:28px;letter-spacing:2px;line-height:1; }
.stat-in  .stat-num { color:var(--in);  }
.stat-out .stat-num { color:var(--out); }
.stat-lbl { font-size:9px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text-soft); }
.stat-divider { width:1.5px;height:34px;background:linear-gradient(180deg,transparent,rgba(100,120,200,.2),transparent); }

/* Logout */
.btn-logout {
    margin-top:auto;padding:11px 14px;
    background:rgba(254,226,226,.6);
    border:1.5px solid rgba(252,165,165,.5);
    border-radius:var(--radius-xs);color:#b91c1c;
    font-family:var(--font-b);font-size:12px;font-weight:700;cursor:pointer;
    display:flex;align-items:center;justify-content:center;gap:8px;
    transition:var(--t) var(--ease);letter-spacing:.8px;text-transform:uppercase;
    box-shadow:0 2px 8px rgba(185,28,28,.1),0 1px 0 rgba(255,255,255,.8) inset;
}
.btn-logout:hover { background:rgba(254,202,202,.75);border-color:rgba(248,113,113,.7);transform:translateY(-1px);box-shadow:0 4px 16px rgba(185,28,28,.18); }

/* ══════════════════════════════
   MAIN CONTENT
══════════════════════════════ */
.main-content {
    flex:1;min-width:0;overflow-y:auto;
    height:calc(100vh - 36px);
    display:flex;flex-direction:column;
}

.main-topbar {
    display:flex;align-items:center;justify-content:space-between;
    padding:0 2px 18px;flex-shrink:0;
    animation:fade-up .5s var(--ease) both;
}

.topbar-left { display:flex;flex-direction:column;gap:2px; }
.topbar-heading { font-family:var(--font-d);font-size:26px;letter-spacing:3px;text-transform:uppercase;color:var(--text-dark); }
.topbar-date { font-size:11px;font-weight:500;color:var(--text-soft);letter-spacing:.5px; }

.topbar-actions { display:flex;align-items:center;gap:12px; }

.btn-export {
    display:flex;align-items:center;gap:7px;
    padding:9px 18px;
    background:linear-gradient(135deg,#065f46,var(--in));
    border:1.5px solid rgba(255,255,255,.3);
    border-radius:50px;color:#fff;
    font-family:var(--font-b);font-size:12px;font-weight:700;
    letter-spacing:.8px;text-transform:uppercase;
    cursor:pointer;transition:var(--t) var(--ease);white-space:nowrap;
    box-shadow:0 4px 18px rgba(5,150,105,.35),0 1px 0 rgba(255,255,255,.25) inset;
}
.btn-export:hover { transform:translateY(-2px);box-shadow:0 8px 28px rgba(5,150,105,.45); }
.btn-export:active { transform:translateY(0); }
.btn-export:disabled { opacity:.65;cursor:not-allowed;transform:none; }
.export-icon { font-size:13px; }

.live-badge {
    display:flex;align-items:center;gap:7px;
    padding:7px 14px;
    background:rgba(255,255,255,.7);border:1.5px solid rgba(255,255,255,.9);
    border-radius:50px;font-size:11px;font-weight:700;
    color:var(--in);letter-spacing:1px;text-transform:uppercase;
    box-shadow:0 2px 10px rgba(100,120,200,.1);
}

.live-dot {
    width:7px;height:7px;border-radius:50%;
    background:var(--in);box-shadow:0 0 6px var(--in);
    animation:live-pulse 1.8s ease-in-out infinite;
}

@keyframes live-pulse {
    0%,100% { transform:scale(1);opacity:1; }
    50%     { transform:scale(1.5);opacity:.6; }
}

/* ══════════════════════════════
   SIDE-BY-SIDE TABLES
══════════════════════════════ */
.tables-wrapper {
    display:flex;flex-direction:row;gap:16px;
    flex:1;min-height:0;padding-bottom:18px;
}

.table-card {
    flex:1;min-width:0;
    display:flex;flex-direction:column;
    padding:22px 20px 0;
    animation:fade-up .5s var(--ease) both;
}

.table-card:nth-child(2) { animation-delay:.08s; }

@keyframes fade-up {
    from { opacity:0;transform:translateY(16px); }
    to   { opacity:1;transform:translateY(0); }
}

.table-card-in  { border-top:3px solid var(--in);  }
.table-card-out { border-top:3px solid var(--out); }

.table-header {
    display:flex;align-items:center;justify-content:space-between;
    margin-bottom:14px;flex-shrink:0;
}

.table-title { display:flex;align-items:center;gap:9px; }

.table-dot { width:8px;height:8px;border-radius:50%;flex-shrink:0; }
.dot-in  { background:var(--in);  box-shadow:0 0 7px rgba(5,150,105,.5);   animation:live-pulse 2.2s ease-in-out infinite; }
.dot-out { background:var(--out); box-shadow:0 0 7px rgba(225,29,72,.5);   animation:live-pulse 2.2s ease-in-out .5s infinite; }

.table-title h3 { font-family:var(--font-d);font-size:17px;letter-spacing:2px;text-transform:uppercase;color:var(--text-dark); }
.badge-in  { font-family:var(--font-b);font-size:10px;color:var(--in);  font-weight:500;text-transform:none; }
.badge-out { font-family:var(--font-b);font-size:10px;color:var(--out); font-weight:500;text-transform:none; }
.table-meta { font-size:11px;color:var(--text-soft);font-weight:600; }

.table-scroll { flex:1;overflow-x:auto;overflow-y:auto;border-radius:var(--radius-xs);min-height:0; }

table { width:100%;border-collapse:collapse;font-size:12px;min-width:520px; }

thead tr { background:rgba(100,120,200,.06); }

th {
    padding:10px 11px;font-weight:700;font-size:9.5px;
    text-transform:uppercase;letter-spacing:1px;white-space:nowrap;
    border-bottom:1.5px solid rgba(100,120,200,.1);
    position:sticky;top:0;background:rgba(248,250,255,.97);z-index:1;
}

.table-card-in  th { color:var(--in);  }
.table-card-out th { color:var(--out); }

td {
    padding:10px 11px;
    border-bottom:1px solid rgba(100,120,200,.07);
    color:var(--text-dark);white-space:nowrap;font-weight:500;font-size:12px;
}

tbody tr { transition:background var(--t) var(--ease);animation:row-in .3s var(--ease) both; }
tbody tr:hover { background:rgba(79,70,229,.04); }
tbody tr:last-child td { border-bottom:none; }

@keyframes row-in {
    from { opacity:0;transform:translateX(-6px); }
    to   { opacity:1;transform:translateX(0); }
}

/* ── Tag Styles ── */
.type-tag {
    display:inline-block;padding:2px 8px;border-radius:20px;
    font-size:9.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;
    background:var(--accent-light);color:var(--accent);
}

/* Entered By — subtle violet pill */
.enteredby-tag {
    display:inline-block;padding:3px 10px;border-radius:20px;
    font-size:10px;font-weight:700;letter-spacing:.5px;
    background:var(--violet-light);color:var(--violet);
    border:1px solid rgba(124,58,237,.15);
}

/* Action Cell */
.action-cell { white-space:nowrap; }

.edit-btn, .delete-btn {
    padding:4px 9px;
    font-size:10px;font-family:var(--font-b);font-weight:700;
    cursor:pointer;border-radius:5px;
    transition:var(--t) var(--ease);letter-spacing:.3px;line-height:1.4;
}

.edit-btn {
    background:var(--amber-light);
    border:1px solid rgba(217,119,6,.35);color:var(--amber);margin-right:5px;
}
.edit-btn:hover { background:#fde68a;border-color:var(--amber);transform:translateY(-1px);box-shadow:0 3px 10px rgba(217,119,6,.2); }

.delete-btn {
    background:rgba(254,226,226,.7);
    border:1px solid rgba(252,165,165,.6);color:#b91c1c;
}
.delete-btn:hover { background:rgba(254,202,202,.9);border-color:rgba(248,113,113,.8);transform:translateY(-1px);box-shadow:0 3px 10px rgba(185,28,28,.15); }

/* Empty state */
.empty-state {
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    padding:40px 20px;gap:10px;color:var(--text-soft);
}
.empty-state span { font-size:28px;opacity:.4; }
.empty-state p { font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase; }

/* ── Pagination ── */
.pagination-bar {
    display:flex;align-items:center;justify-content:space-between;
    padding:12px 4px 14px;flex-shrink:0;
    border-top:1px solid rgba(100,120,200,.08);
    margin-top:auto;
}

.page-btn {
    display:flex;align-items:center;gap:4px;
    padding:7px 14px;
    background:rgba(255,255,255,.8);border:1.5px solid rgba(200,210,255,.65);
    border-radius:50px;color:var(--text-mid);
    font-family:var(--font-b);font-size:11px;font-weight:700;
    cursor:pointer;transition:var(--t) var(--ease);
    letter-spacing:.5px;text-transform:uppercase;
    box-shadow:0 2px 8px rgba(100,120,200,.08),0 1px 0 rgba(255,255,255,1) inset;
}
.page-btn:hover:not(:disabled) { background:rgba(255,255,255,.95);border-color:var(--accent);color:var(--accent);transform:translateY(-1px);box-shadow:0 4px 14px rgba(79,70,229,.15); }
.page-btn:disabled { opacity:.35;cursor:not-allowed; }

.page-info { font-size:11px;font-weight:600;color:var(--text-soft);letter-spacing:.5px; }

/* ══════════════════════════════
   MODAL
══════════════════════════════ */
.modal-overlay {
    display:none;position:fixed;inset:0;
    background:rgba(15,23,60,.35);
    backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
    justify-content:center;align-items:center;
    z-index:1000;padding:20px;
}

.modal-content {
    width:100%;max-width:540px;padding:36px 32px 30px;
    position:relative;animation:modal-pop .33s var(--ease) both;
}

@keyframes modal-pop {
    from { opacity:0;transform:scale(.93) translateY(20px); }
    to   { opacity:1;transform:scale(1) translateY(0); }
}

.modal-close {
    position:absolute;top:16px;right:16px;
    width:30px;height:30px;
    background:rgba(255,255,255,.7);
    border:1.5px solid rgba(200,210,255,.6);
    border-radius:var(--radius-xs);color:var(--text-mid);
    font-size:13px;cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    transition:var(--t) var(--ease);
    box-shadow:0 2px 6px rgba(100,120,200,.1);
}
.modal-close:hover { background:rgba(254,226,226,.8);border-color:rgba(252,165,165,.6);color:#b91c1c; }

.modal-header { display:flex;align-items:center;gap:16px;margin-bottom:22px; }
.modal-icon { font-size:30px; }
.modal-header h3 { font-family:var(--font-d);font-size:22px;letter-spacing:2px;text-transform:uppercase;color:var(--text-dark); }
.modal-sub { font-size:11px;color:var(--text-soft);margin-top:3px; }

.form-grid { display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-bottom:18px; }
.form-full { grid-column:1/-1; }
.form-group { display:flex;flex-direction:column;gap:5px; }
.form-error { color:var(--out);font-size:12px;font-weight:600;text-align:center;margin-top:8px; }

.btn-submit {
    position:relative;width:100%;padding:14px;border:none;
    border-radius:var(--radius-sm);color:white;
    font-family:var(--font-b);font-size:14px;font-weight:700;cursor:pointer;
    overflow:hidden;display:flex;align-items:center;justify-content:center;gap:8px;
    transition:var(--t) var(--ease);letter-spacing:1px;text-transform:uppercase;
    background:linear-gradient(135deg,var(--accent),var(--sky));
    box-shadow:0 4px 18px rgba(79,70,229,.35),0 1px 0 rgba(255,255,255,.25) inset;
}
.btn-submit:hover { transform:translateY(-2px);box-shadow:0 8px 28px rgba(79,70,229,.45); }
.btn-submit:active { transform:translateY(0); }
.btn-submit.loading { opacity:.65;cursor:not-allowed; }

.modal-in  .btn-submit { background:linear-gradient(135deg,#065f46,var(--in));box-shadow:0 4px 18px rgba(5,150,105,.35); }
.modal-in  .btn-submit:hover { box-shadow:0 8px 28px rgba(5,150,105,.45); }
.modal-out .btn-submit { background:linear-gradient(135deg,#9f1239,var(--out));box-shadow:0 4px 18px rgba(225,29,72,.35); }
.modal-out .btn-submit:hover { box-shadow:0 8px 28px rgba(225,29,72,.45); }

/* ══════════════════════════════
   TOAST
══════════════════════════════ */
.toast {
    position:fixed;bottom:28px;left:50%;
    transform:translateX(-50%) translateY(18px);
    background:rgba(255,255,255,.97);
    border:1.5px solid rgba(255,255,255,1);
    border-radius:50px;padding:12px 24px;
    display:flex;align-items:center;gap:10px;
    font-size:13px;font-weight:700;
    backdrop-filter:blur(20px);z-index:9999;
    box-shadow:0 8px 32px rgba(100,120,200,.22),0 2px 0 rgba(255,255,255,1) inset;
    opacity:0;transition:opacity .28s var(--ease),transform .28s var(--ease);
}
.toast.show { opacity:1;transform:translateX(-50%) translateY(0); }
.toast.toast-success { color:var(--in);     border-color:rgba(167,243,208,.7); }
.toast.toast-error   { color:var(--out);    border-color:rgba(252,165,165,.7); }
.toast.toast-info    { color:var(--accent); border-color:rgba(199,210,254,.7); }

/* ══════════════════════════════
   SCROLLBAR
══════════════════════════════ */
::-webkit-scrollbar { width:4px;height:4px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:rgba(100,120,200,.2);border-radius:3px; }
::-webkit-scrollbar-thumb:hover { background:rgba(100,120,200,.35); }

/* ══════════════════════════════
   RESPONSIVE
══════════════════════════════ */
@media (max-width:1100px) {
    .tables-wrapper { flex-direction:column; }
    .table-card { height:auto;min-height:400px; }
    .main-content { height:auto;overflow:visible; }
}

@media (max-width:900px) {
    .dashboard-layout { flex-direction:column;padding:12px;gap:12px; }
    .sidebar { flex:none;height:auto;position:static; }
    .tile-container { flex-direction:row; }
    .tile-btn { flex:1; }
    .topbar-actions { flex-wrap:wrap;gap:8px; }
}

@media (max-width:680px) {
    .hero-line-1 { font-size:72px; }
    .hero-line-2 { font-size:16px;letter-spacing:6px; }
    .hero-line-3 { font-size:38px; }
    .login-wrapper { gap:32px;padding:36px 16px 52px; }
    .login-card { padding:34px 22px; }
    .profile-photo-wrap,.profile-photo,.avatar-fallback { width:88px;height:88px; }
    .tile-container { flex-direction:column; }
    .form-grid { grid-template-columns:1fr; }
    .form-full { grid-column:auto; }
    .modal-content { padding:26px 18px; }
    .export-icon ~ * { display:none; }
}
