/* =====================================================
   StableOSX – Admin CSS
===================================================== */

:root {
    --bg:           #0E0C07;
    --bg-2:         #130F07;
    --bg-card:      #1C1208;
    --sidebar:      #100D06;
    --sidebar-w:    220px;
    --border:       #2C1F0E;
    --border-mid:   #5A3E10;
    --gold:         #C49A28;
    --gold-light:   #E8BF5A;
    --text-primary: #F5E6C0;
    --text-muted:   #8B6914;
    --text-dim:     #5A3E10;
    --green:        #1D9E75; --green-bg: #0D3D2A; --green-border: #1D9E7560;
    --yellow:       #EF9F27; --yellow-bg: #3A2C0A; --yellow-border: #EF9F2760;
    --red:          #E24B4A; --red-bg: #2A0E0E; --red-border: #E24B4A60;
    --purple:       #7F77DD; --purple-bg: #1A1535; --purple-border: #7F77DD60;
    --radius:       6px; --radius-lg: 10px;
    --font-ui:      system-ui,-apple-system,sans-serif;
    --font:         Georgia,'Times New Roman',serif;
}
*,*::before,*::after { box-sizing:border-box; }

html,body { margin:0; height:100%; }
body.admin-body {
    background: var(--bg);
    color: var(--text-primary);
    font-family: var(--font-ui);
    font-size: 14px;
    display: flex;
    min-height: 100vh;
}

/* ---- SIDEBAR ---- */
.sidebar {
    width: var(--sidebar-w);
    background: var(--sidebar);
    border-right: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 0; left: 0; bottom: 0;
    z-index: 50;
}
.sidebar-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 18px 16px;
    border-bottom: 1px solid var(--border);
    font-family: var(--font);
    font-size: 17px;
    color: var(--text-primary);
}
.sidebar-logo em { font-style:normal; color:var(--gold); }
.sidebar-nav { padding: 12px 8px; flex: 1; display: flex; flex-direction: column; gap: 2px; }
.nav-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 10px;
    border-radius: var(--radius);
    color: var(--text-muted);
    text-decoration: none;
    font-size: 13px;
    transition: background 0.12s, color 0.12s;
    position: relative;
}
.nav-item:hover { background: var(--bg-card); color: var(--text-primary); }
.nav-item.active { background: rgba(196,154,40,0.1); color: var(--gold); }
.nav-item svg { flex-shrink: 0; opacity: 0.7; }
.nav-item.active svg { opacity:1; }

.sidebar-bottom {
    padding: 12px 12px 16px;
    border-top: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.admin-info { display:flex; align-items:center; gap:10px; }
.admin-avatar {
    width: 32px; height: 32px; border-radius: 50%;
    background: rgba(196,154,40,0.15);
    border: 1px solid var(--border-mid);
    display: flex; align-items:center; justify-content:center;
    font-size: 14px; font-weight: 600; color: var(--gold);
    flex-shrink: 0;
}
.admin-name { font-size: 13px; color: var(--text-primary); }
.admin-logout { font-size: 11px; color: var(--text-dim); text-decoration:none; }
.admin-logout:hover { color: var(--red); }
.view-public-btn {
    display: block; text-align:center;
    font-size: 12px; color: var(--text-dim);
    border: 1px solid var(--border);
    border-radius: var(--radius); padding: 6px;
    text-decoration: none; transition: background 0.12s, color 0.12s;
}
.view-public-btn:hover { background: var(--bg-card); color: var(--text-muted); }

/* ---- MAIN ---- */
.admin-main {
    margin-left: var(--sidebar-w);
    flex: 1;
    padding: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
.admin-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 28px;
    border-bottom: 1px solid var(--border);
    background: var(--bg-2);
    position: sticky;
    top: 0;
    z-index: 40;
}
.page-title { font-family: var(--font); font-size: 20px; font-weight:400; margin:0; color:var(--text-primary); }

/* ---- BUTTONS ---- */
.btn-gold {
    background: var(--gold); color: #0A0805;
    border: none; border-radius: var(--radius);
    padding: 8px 16px; font-size: 13px; font-weight:600;
    cursor: pointer; text-decoration: none; display:inline-block;
    transition: background 0.15s;
}
.btn-gold:hover { background: var(--gold-light); }

.btn-outline {
    background: transparent; color: var(--text-muted);
    border: 1px solid var(--border-mid); border-radius: var(--radius);
    padding: 7px 14px; font-size: 13px; cursor:pointer;
    text-decoration: none; display:inline-block; transition: background 0.12s, color 0.12s;
}
.btn-outline:hover { background: var(--bg-card); color:var(--text-primary); }

.btn-danger {
    background: transparent; color: var(--red);
    border: 1px solid var(--red-border); border-radius: var(--radius);
    padding: 7px 14px; font-size: 13px; cursor:pointer; transition:background 0.12s;
}
.btn-danger:hover { background: var(--red-bg); }

/* ---- STATS ---- */
.stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 12px;
    padding: 24px 28px 0;
}
.stat-card {
    background: var(--bg-card); border: 1px solid var(--border);
    border-radius: var(--radius-lg); padding: 16px;
}
.stat-card.stat-green  { border-color: var(--green-border); }
.stat-card.stat-yellow { border-color: var(--yellow-border); }
.stat-card.stat-purple { border-color: var(--purple-border); }
.stat-card.stat-gold   { border-color: rgba(196,154,40,0.4); }
.stat-icon { margin-bottom: 10px; color: var(--text-dim); }
.stat-card.stat-green  .stat-icon { color: var(--green); }
.stat-card.stat-yellow .stat-icon { color: var(--yellow); }
.stat-card.stat-purple .stat-icon { color: var(--purple); }
.stat-card.stat-gold   .stat-icon { color: var(--gold); }
.stat-num { font-size: 28px; font-weight:700; color:var(--text-primary); line-height:1; font-family:var(--font); }
.stat-card.stat-green  .stat-num { color:var(--green); }
.stat-card.stat-yellow .stat-num { color:var(--yellow); }
.stat-card.stat-purple .stat-num { color:var(--purple); }
.stat-card.stat-gold   .stat-num { color:var(--gold); }
.stat-label { font-size:11px; color:var(--text-dim); letter-spacing:0.5px; margin-top:4px; text-transform:uppercase; }

/* ---- DASHBOARD GRID ---- */
.dashboard-grid {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 20px;
    padding: 20px 28px 40px;
}
.panel {
    background: var(--bg-card); border: 1px solid var(--border);
    border-radius: var(--radius-lg); padding: 20px;
}
.panel-wide { }
.panel-header {
    display: flex; justify-content:space-between; align-items:center;
    margin-bottom: 16px;
}
.panel-header h2 { font-size:15px; font-weight:500; margin:0; color:var(--text-primary); }
.panel-link { font-size:12px; color:var(--text-muted); text-decoration:none; }
.panel-link:hover { color:var(--gold); }
.panel-empty { font-size:13px; color:var(--text-dim); }

/* ---- BOX MINI GRID ---- */
.section-group { margin-bottom: 16px; }
.section-label {
    font-size: 10px; color:var(--text-dim); letter-spacing:2px;
    text-transform:uppercase; margin-bottom:8px;
}
.box-mini-grid { display:flex; flex-wrap:wrap; gap:6px; }
.box-mini {
    width: 64px; height: 48px; border-radius:var(--radius);
    border:1px solid; display:flex; flex-direction:column;
    align-items:center; justify-content:center; gap:1px;
    text-decoration:none; transition:transform 0.12s;
    cursor:pointer;
}
.box-mini:hover { transform:scale(1.05); }
.box-mini-available   { background:var(--green-bg);  border-color:var(--green-border); }
.box-mini-soon        { background:var(--yellow-bg); border-color:var(--yellow-border); }
.box-mini-unavailable { background:var(--red-bg);    border-color:var(--red-border); }
.box-mini-reserved    { background:var(--purple-bg); border-color:var(--purple-border); }
.box-mini-add {
    background:var(--bg); border-color:var(--border); border-style:dashed;
    color:var(--text-dim); font-size:18px; font-family:var(--font-ui);
}
.box-mini-add:hover { border-color:var(--border-mid); color:var(--text-muted); }
.box-mini-num { font-size:10px; font-weight:600; letter-spacing:0.5px; }
.box-mini-available   .box-mini-num { color:var(--green); }
.box-mini-soon        .box-mini-num { color:var(--yellow); }
.box-mini-unavailable .box-mini-num { color:var(--red); }
.box-mini-reserved    .box-mini-num { color:var(--purple); }
.box-mini-price { font-size:10px; color:var(--text-muted); }

/* ---- REQUEST LIST ---- */
.request-list { display:flex; flex-direction:column; gap:2px; }
.request-item {
    display:flex; align-items:center; gap:10px;
    padding:10px 8px; border-radius:var(--radius);
    transition:background 0.1s;
}
.request-item:hover { background:rgba(255,255,255,0.03); }
.request-item.unread { background:rgba(196,154,40,0.06); }
.request-avatar {
    width:32px; height:32px; border-radius:50%;
    background:var(--bg); border:1px solid var(--border-mid);
    display:flex; align-items:center; justify-content:center;
    font-size:13px; font-weight:600; color:var(--gold); flex-shrink:0;
}
.request-info { flex:1; min-width:0; }
.request-name { font-size:13px; color:var(--text-primary); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.request-meta { font-size:11px; color:var(--text-dim); margin-top:1px; }

/* ---- BADGE ---- */
.badge {
    background: var(--gold); color:#0A0805;
    font-size:10px; font-weight:700; padding:2px 6px;
    border-radius:10px; letter-spacing:0.3px; flex-shrink:0;
}

/* ---- FORMS (admin) ---- */
.admin-form-wrap { padding: 28px; max-width: 680px; }
.form-section { margin-bottom:28px; }
.form-section-title {
    font-size:11px; color:var(--text-dim); letter-spacing:2px;
    text-transform:uppercase; margin:0 0 14px; padding-bottom:8px;
    border-bottom:1px solid var(--border);
}
.form-group { display:flex; flex-direction:column; gap:5px; margin-bottom:14px; }
.form-row { display:flex; gap:14px; }
.form-row .form-group { flex:1; }

label { font-size:12px; color:var(--text-muted); letter-spacing:0.3px; }
.required { color:var(--red); }
.form-hint { font-size:11px; color:var(--text-dim); margin-top:2px; }

input[type="text"],input[type="email"],input[type="password"],
input[type="number"],input[type="date"],input[type="tel"],
select,textarea {
    background:rgba(0,0,0,0.4); border:1px solid var(--border-mid);
    border-radius:var(--radius); color:var(--text-primary);
    font-family:var(--font-ui); font-size:14px; padding:9px 12px;
    outline:none; width:100%; transition:border-color 0.15s;
}
input:focus,select:focus,textarea:focus { border-color:var(--gold); }
select { cursor:pointer; }
textarea { resize:vertical; min-height:80px; }

.alert { display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:var(--radius);margin-bottom:16px;font-size:13px; }
.alert-error   { background:var(--red-bg);   color:var(--red);   border:1px solid var(--red-border); }
.alert-success { background:var(--green-bg); color:var(--green); border:1px solid var(--green-border); }

/* ---- EXTRAS (box editor) ---- */
.extras-list { display:flex; flex-direction:column; gap:8px; margin-bottom:10px; }
.extra-row {
    display:flex; gap:8px; align-items:center;
    background:rgba(0,0,0,0.2); padding:8px; border-radius:var(--radius);
}
.extra-row input { margin-bottom:0; }
.extra-row .extra-name { flex:1; }
.extra-row .extra-price { width:120px; }
.btn-remove-extra {
    background:none; border:none; color:var(--text-dim);
    cursor:pointer; padding:4px; border-radius:3px; font-size:16px; line-height:1;
    transition:color 0.12s;
}
.btn-remove-extra:hover { color:var(--red); }
.btn-add-extra {
    background:transparent; border:1px dashed var(--border-mid);
    color:var(--text-muted); border-radius:var(--radius);
    padding:8px 14px; font-size:13px; cursor:pointer; width:100%;
    transition:background 0.12s, color 0.12s;
}
.btn-add-extra:hover { background:var(--bg-card); color:var(--text-primary); }

/* ---- TABLE ---- */
.admin-table { width:100%; border-collapse:collapse; }
.admin-table th {
    font-size:11px; color:var(--text-dim); letter-spacing:1px;
    text-transform:uppercase; text-align:left; padding:8px 12px;
    border-bottom:1px solid var(--border); font-weight:500;
}
.admin-table td { padding:12px; border-bottom:1px solid var(--border); color:var(--text-muted); font-size:13px; }
.admin-table tr:last-child td { border-bottom:none; }
.admin-table tr:hover td { background:rgba(255,255,255,0.02); }
.admin-table td:first-child { color:var(--text-primary); }

/* ---- STATUS BADGES ---- */
.status-pill {
    display:inline-block; padding:2px 8px; border-radius:10px;
    font-size:10px; font-weight:600; letter-spacing:0.5px;
}
.status-available   { background:var(--green-bg);  color:var(--green);  border:1px solid var(--green-border); }
.status-soon        { background:var(--yellow-bg); color:var(--yellow); border:1px solid var(--yellow-border); }
.status-unavailable { background:var(--red-bg);    color:var(--red);    border:1px solid var(--red-border); }
.status-reserved    { background:var(--purple-bg); color:var(--purple); border:1px solid var(--purple-border); }

/* ---- RESPONSIVE ---- */
@media(max-width:900px) {
    .sidebar { width:56px; }
    .sidebar-logo span,.nav-item span,.sidebar-bottom .admin-name,
    .admin-logout,.view-public-btn,.sidebar-logo em { display:none; }
    .sidebar-logo { justify-content:center; padding:16px 8px; }
    .nav-item { justify-content:center; padding:10px; }
    .admin-main { margin-left:56px; }
    .dashboard-grid { grid-template-columns:1fr; }
}
@media(max-width:600px) {
    .stats-grid { grid-template-columns:1fr 1fr; }
    .admin-topbar { padding:14px 16px; }
    .admin-form-wrap { padding:16px; }
}
