/* DAUM Admin — Design System
   Font: Plus Jakarta Sans | Palette: Slate + Indigo */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap');

:root {
    --font-sans: 'Plus Jakarta Sans', -apple-system, sans-serif;
    --font-mono: 'JetBrains Mono', monospace;
    --slate-50:#f8fafc; --slate-100:#f1f5f9; --slate-200:#e2e8f0; --slate-300:#cbd5e1;
    --slate-400:#94a3b8; --slate-500:#64748b; --slate-600:#475569; --slate-700:#334155;
    --slate-800:#1e293b; --slate-900:#0f172a;
    --accent-50:#eef2ff; --accent-100:#e0e7ff; --accent-200:#c7d2fe; --accent-400:#818cf8;
    --accent-500:#6366f1; --accent-600:#4f46e5; --accent-700:#4338ca;
    --ok-50:#ecfdf5; --ok-500:#10b981; --ok-600:#059669;
    --warn-50:#fffbeb; --warn-400:#fbbf24; --warn-500:#f59e0b; --warn-600:#d97706;
    --danger-50:#fef2f2; --danger-500:#ef4444; --danger-600:#dc2626; --danger-700:#b91c1c;
    --sidebar-w:260px;
    --card-shadow:0 1px 3px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04);
    --card-hover:0 4px 12px rgba(15,23,42,.08);
    --radius:8px; --radius-lg:12px; --radius-xl:16px;
    --speed:180ms ease;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:15px;-webkit-font-smoothing:antialiased}
body{font-family:var(--font-sans);color:var(--slate-800);background:var(--slate-50);line-height:1.6;min-height:100vh}
a{color:var(--accent-600);text-decoration:none;transition:color var(--speed)}
a:hover{color:var(--accent-700)}
hr{border:none;border-top:1px solid var(--slate-200);margin:1.5rem 0}

/* ── APP SHELL ── */
.app-shell{display:flex;min-height:100vh}
.sidebar{width:var(--sidebar-w);background:var(--slate-900);color:var(--slate-400);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;overflow-y:auto}
.sidebar__brand{padding:1.4rem 1.25rem;border-bottom:1px solid rgba(255,255,255,.06);display:flex;align-items:center;gap:.75rem}
.sidebar__brand-icon{width:36px;height:36px;background:linear-gradient(135deg,var(--accent-500),var(--accent-400));border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1rem;color:#fff;flex-shrink:0}
.sidebar__brand-text{font-weight:700;font-size:1.1rem;color:var(--slate-100);letter-spacing:-.3px}
.sidebar__brand-sub{font-size:.68rem;color:var(--slate-500);text-transform:uppercase;letter-spacing:1.2px;font-weight:600}
.sidebar__section{padding:1rem .75rem .25rem}
.sidebar__section-label{font-size:.63rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--slate-600);padding:0 .5rem;margin-bottom:.4rem}
.sidebar__nav{list-style:none;padding:0 .75rem}
.sidebar__item{margin-bottom:2px}
.sidebar__link{display:flex;align-items:center;gap:.65rem;padding:.55rem .75rem;border-radius:var(--radius);color:var(--slate-400);font-size:.87rem;font-weight:500;transition:all var(--speed);text-decoration:none}
.sidebar__link:hover{background:rgba(255,255,255,.06);color:var(--slate-200)}
.sidebar__link--active{background:rgba(99,102,241,.15);color:var(--accent-400)}
.sidebar__link--active:hover{color:var(--accent-400)}
.sidebar__icon{width:20px;height:20px;flex-shrink:0;opacity:.7}
.sidebar__link--active .sidebar__icon{opacity:1}
.sidebar__spacer{flex:1}
.sidebar__footer{padding:1rem 1.25rem;border-top:1px solid rgba(255,255,255,.06)}
.sidebar__user{display:flex;align-items:center;gap:.65rem}
.sidebar__avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--accent-600),var(--accent-400));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.75rem;flex-shrink:0}
.sidebar__user-info{overflow:hidden}
.sidebar__user-name{font-size:.82rem;font-weight:600;color:var(--slate-200);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar__user-tenant{font-size:.7rem;color:var(--slate-500)}

.main-content{flex:1;margin-left:var(--sidebar-w);min-height:100vh;display:flex;flex-direction:column}
.main-content__inner{padding:2rem 2.5rem;max-width:1200px;width:100%;flex:1}
.app-footer{padding:1.5rem 2.5rem;font-size:.75rem;color:var(--slate-400);border-top:1px solid var(--slate-200)}

/* ── IMPERSONATION BANNER ── */
.imp-banner{background:linear-gradient(90deg,var(--warn-500),var(--warn-400));color:var(--slate-900);padding:.6rem 2.5rem;display:flex;align-items:center;gap:.75rem;font-size:.85rem;font-weight:600}
.imp-banner a{color:var(--slate-900);text-decoration:underline;font-weight:700}

/* ── ACTING-AS BANNER + TENANT SWITCHER ── */
.acting-banner{background:linear-gradient(90deg,#3b82f6,#6366f1);color:#fff;padding:.6rem 2.5rem;display:flex;align-items:center;gap:.75rem;font-size:.85rem;font-weight:600}
.acting-banner strong{color:#fff}
.acting-banner .btn{background:rgba(255,255,255,.18);color:#fff;border:1px solid rgba(255,255,255,.3)}
.acting-banner .btn:hover{background:rgba(255,255,255,.28)}

.sidebar__tenant-switcher{padding:0 1.25rem .5rem}
.tenant-switcher{display:flex;gap:.4rem;align-items:center}
.tenant-switcher__form{flex:1;margin:0}
.tenant-switcher__select{width:100%;padding:.4rem .55rem;border-radius:var(--radius);background:rgba(255,255,255,.06);color:var(--slate-200);border:1px solid rgba(255,255,255,.1);font-size:.82rem;font-weight:500;cursor:pointer}
.tenant-switcher__select:hover{background:rgba(255,255,255,.1)}
.tenant-switcher__select option{background:#1f2937;color:#f1f5f9}
.tenant-switcher__reset{margin:0}

/* ── PAGE HEADER ── */
.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.75rem}
.page-header__title{font-size:1.65rem;font-weight:800;letter-spacing:-.5px;color:var(--slate-900);line-height:1.2}
.page-header__sub{font-size:.87rem;color:var(--slate-500);margin-top:.25rem;font-weight:400}
.page-header__actions{display:flex;gap:.5rem;flex-shrink:0}

/* ── CARDS ── */
.card{background:#fff;border:1px solid var(--slate-200);border-radius:var(--radius-lg);box-shadow:var(--card-shadow);overflow:hidden}
.card+.card{margin-top:1.25rem}
.card__header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--slate-100);display:flex;align-items:center;justify-content:space-between;gap:1rem}
.card__title{font-size:1rem;font-weight:700;color:var(--slate-800)}
.card__body{padding:1.5rem}
.card__body--flush{padding:0}
.card__footer{padding:1rem 1.5rem;border-top:1px solid var(--slate-100);background:var(--slate-50);display:flex;gap:.5rem;justify-content:flex-end}

/* ── STATS ── */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.75rem}
.stat-card{background:#fff;border:1px solid var(--slate-200);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;box-shadow:var(--card-shadow);transition:box-shadow var(--speed)}
.stat-card:hover{box-shadow:var(--card-hover)}
.stat-card__label{font-size:.73rem;font-weight:600;color:var(--slate-500);text-transform:uppercase;letter-spacing:.8px;margin-bottom:.5rem}
.stat-card__value{font-size:1.75rem;font-weight:800;color:var(--slate-900);letter-spacing:-1px;line-height:1}
.stat-card__meta{font-size:.73rem;color:var(--slate-400);margin-top:.4rem}

/* ── TABLES ── */
.table-wrap{overflow-x:auto}
.data-table{width:100%;border-collapse:collapse;font-size:.87rem}
.data-table thead th{text-align:left;padding:.75rem 1rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--slate-500);background:var(--slate-50);border-bottom:1px solid var(--slate-200);white-space:nowrap}
.data-table tbody td{padding:.75rem 1rem;border-bottom:1px solid var(--slate-100);vertical-align:middle}
.data-table tbody tr:last-child td{border-bottom:none}
.data-table tbody tr{transition:background var(--speed)}
.data-table tbody tr:hover{background:var(--slate-50)}
.data-table .mono{font-family:var(--font-mono);font-size:.82rem}
.data-table .col-actions{text-align:right;white-space:nowrap}
.data-table .col-id{width:60px}
.data-table .col-num{width:80px;text-align:right}
.cell-actions{display:flex;gap:.35rem;justify-content:flex-end}
.empty-state{text-align:center;padding:3rem 1rem;color:var(--slate-400)}

/* ── BUTTONS ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem 1rem;font-family:var(--font-sans);font-size:.85rem;font-weight:600;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;transition:all var(--speed);white-space:nowrap;text-decoration:none;line-height:1.4}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn--primary{background:var(--accent-600);color:#fff;border-color:var(--accent-600)}
.btn--primary:hover{background:var(--accent-700);border-color:var(--accent-700);color:#fff}
.btn--secondary{background:#fff;color:var(--slate-700);border-color:var(--slate-300)}
.btn--secondary:hover{background:var(--slate-50);border-color:var(--slate-400);color:var(--slate-700)}
.btn--danger{background:var(--danger-600);color:#fff;border-color:var(--danger-600)}
.btn--danger:hover{background:var(--danger-700);border-color:var(--danger-700);color:#fff}
.btn--ghost{background:transparent;color:var(--slate-600);border-color:transparent}
.btn--ghost:hover{background:var(--slate-100);color:var(--slate-800)}
.btn--warn{background:var(--warn-500);color:var(--slate-900);border-color:var(--warn-500)}
.btn--warn:hover{background:var(--warn-600);border-color:var(--warn-600);color:#fff}
.btn--sm{padding:.35rem .7rem;font-size:.78rem}
.btn--xs{padding:.2rem .5rem;font-size:.72rem}
.btn--wide{width:100%}

/* ── FORMS ── */
.form-grid{display:grid;gap:1.25rem}
.form-grid--2col{grid-template-columns:1fr 1fr}
.form-group{display:flex;flex-direction:column;gap:.35rem}
.form-group--span{grid-column:1/-1}
.form-label{font-size:.8rem;font-weight:600;color:var(--slate-700)}
.form-hint{font-size:.72rem;color:var(--slate-400)}
.form-input,.form-select,.form-textarea{font-family:var(--font-sans);font-size:.87rem;padding:.55rem .75rem;border:1px solid var(--slate-300);border-radius:var(--radius);background:#fff;color:var(--slate-800);transition:border-color var(--speed),box-shadow var(--speed);width:100%}
.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--accent-500);box-shadow:0 0 0 3px var(--accent-100)}
.form-textarea{resize:vertical;min-height:80px}
.form-input--error{border-color:var(--danger-500)}
.form-check{display:flex;align-items:center;gap:.5rem}
.form-check input[type="checkbox"]{width:18px;height:18px;accent-color:var(--accent-600);cursor:pointer}
.form-check label{font-size:.87rem;color:var(--slate-700);cursor:pointer}
.form-actions{display:flex;gap:.5rem;margin-top:.5rem}
.form-error{font-size:.78rem;color:var(--danger-600);font-weight:500}
.validation-summary{background:var(--danger-50);border:1px solid var(--danger-500);border-radius:var(--radius);padding:.75rem 1rem;margin-bottom:1rem;font-size:.85rem;color:var(--danger-700)}
.validation-summary ul{margin:.25rem 0 0 1.25rem}

/* ── BADGES ── */
.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;font-size:.72rem;font-weight:600;border-radius:999px;letter-spacing:.2px}
.badge--ok{background:var(--ok-50);color:var(--ok-600)}
.badge--warn{background:var(--warn-50);color:var(--warn-600)}
.badge--danger{background:var(--danger-50);color:var(--danger-600)}
.badge--muted{background:var(--slate-100);color:var(--slate-500)}
.badge--accent{background:var(--accent-50);color:var(--accent-700)}
.badge::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}

/* ── ALERTS ── */
.alert{padding:.75rem 1rem;border-radius:var(--radius);font-size:.85rem;font-weight:500;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem;border:1px solid transparent}
.alert--success{background:var(--ok-50);color:var(--ok-600);border-color:var(--ok-500)}
.alert--error{background:var(--danger-50);color:var(--danger-700);border-color:var(--danger-500)}
.alert--warn{background:var(--warn-50);color:var(--warn-600);border-color:var(--warn-500)}
.alert--info{background:var(--accent-50);color:var(--accent-700);border-color:var(--accent-200)}

/* ── TOOLBAR / SEARCH ── */
.toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.search-bar{display:flex;gap:.35rem}
.search-bar .form-input{min-width:220px}

/* ── LOGIN ── */
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--slate-900) 0%,var(--slate-800) 50%,var(--accent-700) 100%);padding:2rem}
.login-card{background:#fff;border-radius:var(--radius-xl);box-shadow:0 20px 60px rgba(0,0,0,.3);padding:2.5rem;width:100%;max-width:400px}
.login-card__brand{text-align:center;margin-bottom:2rem}
.login-card__logo{width:48px;height:48px;background:linear-gradient(135deg,var(--accent-600),var(--accent-400));border-radius:var(--radius-lg);display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:1.3rem;margin-bottom:.75rem}
.login-card__title{font-size:1.4rem;font-weight:800;color:var(--slate-900);letter-spacing:-.5px}
.login-card__sub{font-size:.85rem;color:var(--slate-500);margin-top:.25rem}
.login-error{background:var(--danger-50);color:var(--danger-600);border:1px solid var(--danger-500);border-radius:var(--radius);padding:.6rem .8rem;font-size:.82rem;font-weight:500;margin-bottom:1rem;text-align:center}

/* ── ACTION GRID ── */
.action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}
.action-card{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:#fff;border:1px solid var(--slate-200);border-radius:var(--radius-lg);text-decoration:none;color:var(--slate-700);font-weight:600;font-size:.87rem;transition:all var(--speed);box-shadow:var(--card-shadow)}
.action-card:hover{border-color:var(--accent-200);box-shadow:var(--card-hover);color:var(--accent-700)}
.action-card__icon{font-size:1.4rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--accent-50);border-radius:var(--radius);flex-shrink:0}

/* ── CHECKBOX LIST (Roles) ── */
.checkbox-list{display:flex;flex-direction:column;gap:.5rem}
.checkbox-card{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;border:1px solid var(--slate-200);border-radius:var(--radius);transition:all var(--speed);cursor:pointer}
.checkbox-card:hover{border-color:var(--accent-200);background:var(--accent-50)}
.checkbox-card input[type="checkbox"]{margin-top:2px;width:18px;height:18px;accent-color:var(--accent-600);flex-shrink:0}
.checkbox-card__label{font-weight:600;color:var(--slate-800)}
.checkbox-card__desc{font-size:.78rem;color:var(--slate-500);margin-top:.1rem}

/* ── DETAIL GRID ── */
.detail-grid{display:grid;grid-template-columns:140px 1fr;gap:.5rem 1rem;font-size:.87rem}
.detail-grid dt{font-weight:600;color:var(--slate-500);font-size:.78rem;text-transform:uppercase;letter-spacing:.5px;padding-top:.15rem}
.detail-grid dd{color:var(--slate-800)}

/* ── SEARCH RESULTS ── */
.search-results{margin-top:.75rem;max-height:200px;overflow-y:auto}
.search-result-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border-radius:var(--radius);font-size:.85rem;transition:background var(--speed)}
.search-result-item:hover{background:var(--slate-50)}

/* ── UTILITIES ── */
.mt-0{margin-top:0}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}
.mb-0{margin-bottom:0}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}
.text-center{text-align:center}.text-muted{color:var(--slate-500)}.text-sm{font-size:.82rem}.text-xs{font-size:.72rem}
.text-mono{font-family:var(--font-mono)}.fw-600{font-weight:600}
.flex{display:flex}.items-center{align-items:center}.gap-1{gap:.5rem}.gap-2{gap:1rem}
.hidden{display:none}.inline-form{display:inline}
@media(max-width:768px){.sidebar{transform:translateX(-100%)}.main-content{margin-left:0}.main-content__inner{padding:1rem}.form-grid--2col{grid-template-columns:1fr}.page-header{flex-direction:column}.stats-grid{grid-template-columns:1fr 1fr}}
