:root {
  --bg: #faf8f5;
  --bg2: #f5f0e8;
  --bg3: #ede4d5;
  --border: #e0d6c5;
  --text: #2c2416;
  --text2: #8c7e6b;
  --accent: #1a1a1a;
  --danger: #d14343;
  --green: #3b8c5a;
  --amber: #b8860b;
  --radius: 8px;
  --font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:14px;line-height:1.6;min-height:100vh}
a{color:var(--text);text-decoration:none}
input,select,button{font-family:var(--font)}

/* Auth pages */
.auth-bg{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px}
.auth-card{width:400px;max-width:100%;background:var(--bg2);border:1px solid var(--border);border-radius:16px;padding:44px 36px;box-shadow:0 1px 3px rgba(0,0,0,0.04)}
.auth-card h1{font-size:22px;font-weight:600;margin-bottom:4px;letter-spacing:-0.4px}
.auth-card .sub{color:var(--text2);font-size:13px;margin-bottom:28px}
.form-group{margin-bottom:18px}
.form-group label{display:block;font-size:11px;color:var(--text2);margin-bottom:6px;text-transform:uppercase;letter-spacing:0.5px;font-weight:500}
.form-group input{width:100%;padding:11px 14px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:14px;outline:none;transition:border-color .2s;font-family:var(--font)}
.form-group input:focus{border-color:var(--accent)}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:11px 22px;border-radius:var(--radius);font-size:14px;font-weight:500;cursor:pointer;border:none;transition:all .2s;font-family:var(--font);gap:6px}
.btn-primary{background:var(--accent);color:#fff;width:100%}
.btn-primary:hover{opacity:0.88}
.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--border)}
.btn-ghost:hover{background:var(--bg3)}
.btn-danger{background:var(--danger);color:#fff}
.btn-danger:hover{opacity:0.85}
.btn-outline{background:#fff;color:var(--primary);border:1px solid var(--primary)}
.btn-outline:hover{background:rgba(201,160,84,.08)}
.btn-danger-outline{background:#fff;color:var(--danger);border:1px solid var(--danger)}
.btn-danger-outline:hover{background:rgba(211,80,80,.08)}
.btn-sm{padding:6px 12px;font-size:12px}
.auth-footer{text-align:center;margin-top:24px;font-size:13px;color:var(--text2)}
.auth-footer a{color:var(--text);text-decoration:underline}
.msg{font-size:13px;margin:12px 0;padding:8px 12px;border-radius:var(--radius)}
.msg-error{background:rgba(209,67,67,0.08);color:var(--danger)}
.msg-ok{background:rgba(59,140,90,0.08);color:var(--green)}

/* Layout */
.layout{display:flex;min-height:100vh}
.sidebar{width:230px;background:var(--bg2);border-right:1px solid var(--border);padding:28px 0;flex-shrink:0;display:flex;flex-direction:column}
.sidebar .logo{padding:0 24px;margin-bottom:36px;font-size:16px;font-weight:600;letter-spacing:-0.3px}
.sidebar nav{flex:1}
.sidebar nav a{display:flex;align-items:center;gap:10px;padding:9px 24px;font-size:13px;color:var(--text2);transition:all .15s;border-left:2px solid transparent;cursor:pointer}
.sidebar nav a:hover,.sidebar nav a.active{color:var(--text);background:var(--bg3);border-left-color:var(--text)}
.sidebar .user-info{padding:18px 24px;border-top:1px solid var(--border);font-size:12px;color:var(--text2)}
.sidebar .user-info .logout{cursor:pointer;color:var(--text2);display:block;margin-top:4px;border:none;background:none;font-size:12px;font-family:var(--font)}
.sidebar .user-info .logout:hover{color:var(--text)}
.main{flex:1;overflow-x:auto;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 36px;border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0}
.topbar h2{font-size:19px;font-weight:600;letter-spacing:-0.4px}
.content{padding:36px;flex:1}
.content-full{display:flex;align-items:center;justify-content:center;flex:1;padding:0}

/* Stats */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;margin-bottom:28px}
.stat-card{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:20px 24px;cursor:default}
.stat-card .stat-label{font-size:11px;text-transform:uppercase;letter-spacing:0.6px;color:var(--text2);font-weight:500;margin-bottom:6px}
.stat-card .stat-value{font-size:30px;font-weight:600;letter-spacing:-1px}
.stat-card .stat-sub{font-size:12px;color:var(--text2);margin-top:4px}

/* Cards */
.card{background:var(--bg2);border:1px solid var(--border);border-radius:14px;padding:24px;margin-bottom:18px}
.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.card-header h3{font-size:15px;font-weight:600}

/* Tables */
table{width:100%;border-collapse:collapse}
th{text-align:left;padding:10px 14px;font-size:11px;text-transform:uppercase;letter-spacing:0.5px;color:var(--text2);border-bottom:1px solid var(--border);font-weight:500}
td{padding:12px 14px;border-bottom:1px solid var(--border);font-size:13px}
tr:hover td{background:var(--bg3)}
.mono{font-family:'SF Mono','Fira Code','Consolas',monospace;font-size:12px;word-break:break-all}

/* Tags */
.tag{display:inline-block;padding:2px 9px;border-radius:12px;font-size:11px;font-weight:500}
.tag-green{background:rgba(59,140,90,0.15);color:var(--green)}
.tag-red{background:rgba(209,67,67,0.12);color:var(--danger)}
.tag-amber{background:rgba(184,134,11,0.15);color:var(--amber)}
.tag-gray{background:rgba(140,126,107,0.12);color:var(--text2)}

/* Actions */
.actions{display:flex;gap:6px;flex-wrap:wrap}
.actions button{font-size:12px;padding:4px 12px;border-radius:var(--radius);border:1px solid var(--border);color:var(--text2);cursor:pointer;background:transparent;transition:all .15s;font-family:var(--font)}
.actions button:hover{color:var(--text);border-color:#bbb}
.actions .danger{color:var(--danger);border-color:rgba(209,67,67,0.2)}
.actions .danger:hover{background:rgba(209,67,67,0.06)}

/* Empty */
.empty{padding:48px 24px;text-align:center;color:var(--text2);font-size:14px}

/* Modal */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.25);display:flex;align-items:center;justify-content:center;z-index:1000}
.modal{background:var(--bg2);border:1px solid var(--border);border-radius:16px;padding:28px;width:420px;max-width:94vw;max-height:80vh;overflow-y:auto;box-shadow:0 8px 30px rgba(0,0,0,0.08)}
.modal h3{font-size:16px;margin-bottom:18px;font-weight:600}

/* Toast */
.toast{position:fixed;bottom:24px;right:24px;background:var(--accent);color:#fff;padding:12px 22px;border-radius:10px;font-size:13px;z-index:2000;animation:toastIn .3s ease;box-shadow:0 4px 14px rgba(0,0,0,0.15)}
@keyframes toastIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

/* Loader */
.loader{display:flex;align-items:center;justify-content:center;padding:60px;color:var(--text2);font-size:14px}
.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite;margin-right:10px}
@keyframes spin{to{transform:rotate(360deg)}}

/* User dashboard */
.user-nav{display:flex;gap:0;margin-bottom:32px;border-bottom:1px solid var(--border);padding-bottom:0}
.user-nav a, .user-nav button{padding:10px 20px;font-size:13px;color:var(--text2);border:none;background:none;cursor:pointer;border-bottom:2px solid transparent;transition:all .15s;font-family:var(--font)}
.user-nav a:hover,.user-nav button:hover,.user-nav button.active{color:var(--text);border-bottom-color:var(--text)}

@media(max-width:768px){
  .sidebar{display:none}
  .content{padding:16px}
  .topbar{padding:16px 20px}
  .auth-card{padding:32px 24px}
  .stats-grid{grid-template-columns:1fr 1fr}
}
