:root {
    --admin-bg: #080807;
    --admin-panel: #11110f;
    --admin-panel-soft: #171611;
    --admin-gold: #d9ad45;
    --admin-gold-light: #f1d58a;
    --admin-text: #f5f3ee;
    --admin-muted: #97948c;
    --admin-line: rgba(255, 255, 255, .08);
    --admin-gold-line: rgba(217, 173, 69, .28);
    --admin-danger: #df6262;
    --admin-success: #55bb88;
    --sidebar-width: 258px;
}

* { box-sizing: border-box; }
html { color-scheme: dark; }
body { margin: 0; font-family: 'Inter', sans-serif; }
button, input, select, textarea { font: inherit; }
a { color: inherit; text-decoration: none; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 2px solid var(--admin-gold-light);
    outline-offset: 3px;
}

.admin-body {
    min-width: 320px;
    min-height: 100vh;
    color: var(--admin-text);
    background:
        radial-gradient(circle at 78% 0, rgba(217, 173, 69, .07), transparent 28rem),
        var(--admin-bg);
}

.admin-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 30;
    display: flex;
    width: var(--sidebar-width);
    flex-direction: column;
    padding: 26px 18px 20px;
    background: rgba(13, 13, 11, .98);
    border-right: 1px solid var(--admin-line);
}

.admin-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0 9px 26px;
    border-bottom: 1px solid var(--admin-line);
}

.admin-brand img { width: 48px; height: 48px; object-fit: contain; }
.admin-brand span { display: grid; gap: 4px; }
.admin-brand strong { font: 800 .95rem/1 'Montserrat', sans-serif; letter-spacing: .13em; }
.admin-brand small { color: var(--admin-gold); font-size: .55rem; font-weight: 700; letter-spacing: .17em; }

.admin-nav { display: grid; gap: 7px; margin-top: 28px; }
.admin-nav a {
    display: flex;
    min-height: 48px;
    align-items: center;
    gap: 13px;
    padding: 0 14px;
    color: var(--admin-muted);
    border: 1px solid transparent;
    font-size: .82rem;
    font-weight: 600;
    transition: .2s ease;
}
.admin-nav a i { width: 18px; color: #aaa69e; font-size: 1rem; }
.admin-nav a:hover { color: var(--admin-text); background: rgba(255,255,255,.035); }
.admin-nav a.active {
    color: var(--admin-gold-light);
    background: linear-gradient(90deg, rgba(217,173,69,.14), rgba(217,173,69,.04));
    border-color: var(--admin-gold-line);
}
.admin-nav a.active i { color: var(--admin-gold); }

.admin-sidebar-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: auto;
    padding: 18px 6px 0;
    border-top: 1px solid var(--admin-line);
}
.admin-user { display: flex; min-width: 0; align-items: center; gap: 10px; }
.admin-avatar,.staff-avatar {
    display: grid;
    width: 36px;
    height: 36px;
    flex: 0 0 auto;
    place-items: center;
    color: #17120a;
    background: linear-gradient(135deg, var(--admin-gold-light), var(--admin-gold));
    border-radius: 50%;
    font-size: .8rem;
    font-weight: 800;
}
.admin-user > span:last-child { display: grid; min-width: 0; gap: 2px; }
.admin-user strong { overflow: hidden; max-width: 126px; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.admin-user small { color: var(--admin-muted); font-size: .62rem; }
.admin-logout,.icon-button {
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    color: var(--admin-muted);
    background: transparent;
    border: 1px solid var(--admin-line);
    cursor: pointer;
}
.admin-logout:hover,.icon-button:hover { color: var(--admin-gold); border-color: var(--admin-gold-line); }

.admin-main { min-height: 100vh; margin-left: var(--sidebar-width); }
.admin-topbar {
    display: flex;
    min-height: 104px;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 20px clamp(24px, 4vw, 52px);
    background: rgba(8,8,7,.82);
    border-bottom: 1px solid var(--admin-line);
    backdrop-filter: blur(16px);
}
.admin-eyebrow,.section-kicker {
    margin: 0 0 6px;
    color: var(--admin-gold);
    font-size: .6rem;
    font-weight: 800;
    letter-spacing: .18em;
}
.admin-topbar h1 { margin: 0; font: 800 clamp(1.3rem, 2vw, 1.75rem)/1.2 'Montserrat', sans-serif; }
.admin-topbar-actions { display: flex; align-items: center; gap: 20px; }
.admin-date { color: var(--admin-muted); font-size: .76rem; }
.admin-date i { margin-right: 6px; color: var(--admin-gold); }
.admin-content { padding: clamp(24px, 4vw, 48px) clamp(24px, 4vw, 52px) 64px; }

.admin-primary-button,.admin-secondary-button,.danger-button {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 0 18px;
    color: #17120a;
    background: linear-gradient(135deg, var(--admin-gold-light), var(--admin-gold));
    border: 1px solid var(--admin-gold);
    cursor: pointer;
    font-size: .73rem;
    font-weight: 800;
    letter-spacing: .04em;
    transition: transform .2s ease, box-shadow .2s ease;
}
.admin-primary-button:hover { transform: translateY(-1px); box-shadow: 0 10px 28px rgba(217,173,69,.18); }
.admin-secondary-button { color: var(--admin-text); background: transparent; border-color: var(--admin-line); }
.admin-secondary-button:hover { border-color: var(--admin-gold-line); color: var(--admin-gold-light); }
.danger-button { color: #ffdcdc; background: rgba(223,98,98,.1); border-color: rgba(223,98,98,.3); }
.full { width: 100%; }
.large { min-height: 52px; }

.admin-alert {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 24px clamp(24px, 4vw, 52px) 0;
    padding: 14px 16px;
    color: #d5d2ca;
    background: #121310;
    border: 1px solid var(--admin-line);
    font-size: .78rem;
}
.admin-alert.success { color: #c9f1dd; border-color: rgba(85,187,136,.3); }
.admin-alert.error { color: #ffd4d4; border-color: rgba(223,98,98,.32); }
.admin-alert.warning { margin: 0 0 22px; align-items: center; color: #f1dda8; border-color: var(--admin-gold-line); }
.admin-alert i { margin-top: 1px; }
.admin-alert ul { margin: 5px 0 0; padding-left: 18px; }
.admin-alert p { margin: 4px 0 0; color: var(--admin-muted); }
.admin-alert .admin-secondary-button { margin-left: auto; white-space: nowrap; }

.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; }
.metric-card {
    position: relative;
    display: flex;
    min-height: 150px;
    align-items: center;
    gap: 18px;
    padding: 24px;
    overflow: hidden;
    background: linear-gradient(145deg, var(--admin-panel-soft), var(--admin-panel));
    border: 1px solid var(--admin-line);
}
.metric-card.featured { border-color: var(--admin-gold-line); }
.metric-card.featured::after {
    content: '';
    position: absolute;
    width: 120px;
    height: 120px;
    right: -55px;
    top: -55px;
    background: radial-gradient(circle, rgba(217,173,69,.24), transparent 68%);
}
.metric-icon {
    display: grid;
    width: 48px;
    height: 48px;
    flex: 0 0 auto;
    place-items: center;
    color: var(--admin-gold);
    background: rgba(217,173,69,.09);
    border: 1px solid var(--admin-gold-line);
    font-size: 1.2rem;
}
.metric-card > div:last-child { display: grid; gap: 7px; }
.metric-card span { color: var(--admin-muted); font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.metric-card strong { font: 800 clamp(1.45rem, 2vw, 2rem)/1 'Montserrat', sans-serif; }
.metric-card small { color: #716f69; font-size: .65rem; }

.dashboard-grid { display: grid; grid-template-columns: minmax(0,1fr) 280px; gap: 20px; margin-top: 20px; }
.admin-panel { background: rgba(17,17,15,.94); border: 1px solid var(--admin-line); }
.panel-heading {
    display: flex;
    min-height: 78px;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 22px;
    border-bottom: 1px solid var(--admin-line);
}
.panel-heading h2 { margin: 0; font: 700 1rem/1.2 'Montserrat', sans-serif; }
.panel-heading a { color: var(--admin-gold); font-size: .7rem; font-weight: 700; }
.panel-count,.step-number { color: var(--admin-muted); font-size: .68rem; }
.step-number { display:grid; width:34px; height:34px; place-items:center; color:var(--admin-gold); border:1px solid var(--admin-gold-line); }

.appointment-list { padding: 4px 20px 18px; }
.appointment-row { display: grid; grid-template-columns: 56px 1fr auto 20px; align-items: center; gap: 16px; padding: 15px 0; border-bottom: 1px solid var(--admin-line); }
.appointment-row:last-child { border-bottom: 0; }
.appointment-row:hover .appointment-person strong { color: var(--admin-gold-light); }
.appointment-row time { display: grid; place-items: center; padding: 7px; background: #0b0b0a; border: 1px solid var(--admin-line); }
.appointment-row time strong { font: 800 1rem 'Montserrat',sans-serif; }
.appointment-row time span { color: var(--admin-gold); font-size: .55rem; font-weight: 800; }
.appointment-person,.appointment-meta { display: grid; gap: 5px; }
.appointment-person strong,.appointment-meta strong { font-size: .78rem; }
.appointment-person span,.appointment-meta span { color: var(--admin-muted); font-size: .67rem; }
.appointment-meta { text-align: right; }
.appointment-row > i { color: #5f5c56; font-size: .7rem; }

.dashboard-side { display: grid; align-content: start; gap: 12px; }
.today-card { min-height: 178px; display:grid; align-content:center; padding:24px; text-align:center; background:linear-gradient(145deg,#c99d38,#e2bc61); color:#17120a; }
.today-card span { font-size:.65rem; font-weight:800; letter-spacing:.18em; }
.today-card strong { margin:8px 0 0; font:800 3.5rem/1 'Montserrat',sans-serif; }
.today-card p { margin:5px 0 0; font-size:.72rem; font-weight:600; }
.quick-link-card { display:grid; grid-template-columns:36px 1fr 18px; align-items:center; gap:10px; padding:16px; background:var(--admin-panel); border:1px solid var(--admin-line); }
.quick-link-card:hover { border-color:var(--admin-gold-line); }
.quick-link-card > i:first-child { color:var(--admin-gold); }
.quick-link-card span { display:grid; gap:4px; }
.quick-link-card strong { font-size:.72rem; }
.quick-link-card small { color:var(--admin-muted); font-size:.6rem; }
.quick-link-card > i:last-child { color:#5f5c56; font-size:.75rem; }

.empty-state { display:grid; min-height:300px; place-items:center; align-content:center; gap:9px; padding:30px; text-align:center; }
.empty-state i { color:var(--admin-gold); font-size:2rem; }
.empty-state h3 { margin:0; font:700 .9rem 'Montserrat',sans-serif; }
.empty-state p { max-width:340px; margin:0 0 8px; color:var(--admin-muted); font-size:.72rem; line-height:1.6; }
.empty-state.compact { min-height:210px; }

.split-layout { display:grid; grid-template-columns:minmax(280px,360px) minmax(0,1fr); gap:20px; align-items:start; }
.form-panel { position:sticky; top:20px; }
.admin-form { display:grid; gap:17px; padding:22px; }
.field-group { display:grid; gap:8px; min-width:0; }
.field-group label { color:#bbb8b0; font-size:.68rem; font-weight:700; letter-spacing:.04em; }
.field-group label b { color:var(--admin-gold); }
.field-group input,.field-group select,.field-group textarea,.status-form select {
    width:100%;
    min-height:48px;
    padding:0 14px;
    color:var(--admin-text);
    background:#0a0a09;
    border:1px solid var(--admin-line);
    border-radius:0;
    outline:0;
    font-size:.76rem;
    transition:border-color .2s,box-shadow .2s;
}
.field-group textarea { min-height:110px; padding-top:13px; resize:vertical; }
.field-group input:focus,.field-group select:focus,.field-group textarea:focus,.status-form select:focus { border-color:var(--admin-gold); box-shadow:0 0 0 3px rgba(217,173,69,.08); }
.field-group input::placeholder,.field-group textarea::placeholder { color:#55534f; }
.form-grid { display:grid; gap:18px; padding:22px; }
.form-grid.two { grid-template-columns:1fr 1fr; }
.full-span { grid-column:1/-1; }
.money-input { position:relative; }
.money-input input { padding-right:44px; }
.money-input span { position:absolute; top:50%; right:15px; color:var(--admin-gold); transform:translateY(-50%); font-weight:800; }
.checkbox-field { display:flex; min-height:74px; align-items:center; padding:12px 14px; border:1px solid var(--admin-line); cursor:pointer; }
.checkbox-field input { width:16px; height:16px; margin-right:12px; accent-color:var(--admin-gold); }
.checkbox-field span { display:grid; grid-template-columns:20px 1fr; gap:2px 7px; align-items:center; }
.checkbox-field i { grid-row:1/3; color:var(--admin-gold); }
.checkbox-field strong { font-size:.7rem; }
.checkbox-field small { color:var(--admin-muted); font-size:.6rem; }

.staff-list { padding:4px 20px 18px; }
.staff-role-switch { position:relative; isolation:isolate; display:grid; grid-template-columns:1fr 1fr; gap:0; margin:16px 20px 12px; padding:4px; overflow:hidden; background:#090908; border:1px solid var(--admin-line); }
.staff-role-switch::before { position:absolute; z-index:-1; top:4px; bottom:4px; left:4px; width:calc(50% - 4px); content:""; background:linear-gradient(135deg,#c99d38,#e2bc61); box-shadow:0 8px 24px rgba(217,173,69,.16); transition:transform .28s cubic-bezier(.2,.8,.2,1); }
.staff-role-switch.show-designers::before { transform:translateX(100%); }
.staff-role-switch a { display:grid; grid-template-columns:18px 1fr auto; min-height:48px; align-items:center; gap:8px; padding:0 13px; color:var(--admin-muted); font-size:.68rem; font-weight:800; transition:color .2s; }
.staff-role-switch a.active { color:#17120a; }
.staff-role-switch a b { display:grid; min-width:23px; height:23px; place-items:center; padding:0 5px; color:inherit; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.08); border-radius:20px; font-size:.57rem; }
.staff-role-switch a.active b { background:rgba(23,18,10,.12); border-color:rgba(23,18,10,.16); }
.staff-row { display:grid; grid-template-columns:40px minmax(130px,1fr) auto 80px 82px; align-items:center; gap:12px; padding:15px 0; border-bottom:1px solid var(--admin-line); }
.staff-row:last-child { border-bottom:0; }
.staff-row.inactive { opacity:.58; }
.staff-row > div { display:grid; gap:4px; }
.staff-row strong { font-size:.75rem; }
.staff-row span,.staff-row small { color:var(--admin-muted); font-size:.65rem; }
.staff-actions { display:flex!important; flex-direction:row; gap:8px!important; }
.staff-actions form { margin:0; }
.danger-zone { padding:24px; }
.danger-zone p { margin:0 0 20px; color:var(--admin-muted); font-size:.72rem; line-height:1.7; }

.status-pill { display:inline-flex; min-height:25px; align-items:center; justify-content:center; padding:0 9px; border:1px solid; font-size:.6rem; font-weight:800; text-transform:uppercase; white-space:nowrap; }
.status-pill.scheduled { color:#eed28b; background:rgba(217,173,69,.08); border-color:var(--admin-gold-line); }
.status-pill.completed { color:#aee5c9; background:rgba(85,187,136,.08); border-color:rgba(85,187,136,.25); }
.status-pill.cancelled { color:#f0a7a7; background:rgba(223,98,98,.08); border-color:rgba(223,98,98,.25); }

.appointment-form-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) 330px; gap:20px; align-items:start; }
.appointment-form-layout > .admin-panel:first-child,.appointment-form-layout > .admin-panel:nth-child(2) { grid-column:1/3; }
.appointment-form-layout > .admin-panel:nth-child(2) { grid-row:2; }
.upload-panel { grid-column:3; grid-row:1/3; position:sticky; top:20px; padding-bottom:20px; }
.upload-zone { position:relative; display:grid; min-height:315px; margin:20px; place-items:center; overflow:hidden; background:#0a0a09; border:1px dashed rgba(217,173,69,.34); cursor:pointer; }
.upload-zone input { position:absolute; width:1px; height:1px; opacity:0; }
.upload-placeholder { display:grid; place-items:center; gap:9px; padding:20px; text-align:center; }
.upload-placeholder i { color:var(--admin-gold); font-size:2.2rem; }
.upload-placeholder strong { font-size:.75rem; }
.upload-placeholder small { color:var(--admin-muted); font-size:.62rem; }
.upload-zone img { display:none; width:100%; height:315px; object-fit:contain; background:#070707; }
.upload-file-name { margin:-8px 20px 18px; overflow:hidden; color:var(--admin-muted); font-size:.62rem; text-overflow:ellipsis; white-space:nowrap; }
.upload-panel > .admin-primary-button,.upload-panel > .form-footnote { width:calc(100% - 40px); margin-inline:20px; }
.form-footnote { color:var(--admin-muted); font-size:.59rem; line-height:1.55; }
.form-footnote i { color:var(--admin-gold); }

.compact-appointment-card {
    width:min(100%,980px);
    margin:0 auto;
    overflow:hidden;
    background:#151513;
    border:1px solid rgba(255,255,255,.13);
    border-radius:12px;
    box-shadow:0 26px 70px rgba(0,0,0,.3);
}
.compact-form-header {
    display:flex;
    min-height:78px;
    align-items:center;
    gap:12px;
    padding:0 26px;
    color:#12120f;
    background:linear-gradient(135deg,#ffd628,#f3bc12);
}
.compact-form-header i { font-size:1.4rem; }
.compact-form-header h2 { margin:0; font:800 clamp(1.05rem,2vw,1.4rem) 'Montserrat',sans-serif; }
.compact-form-body { padding:28px 26px 18px; }
.compact-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:21px 18px; }
.time-selects { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.time-selects select { width:100%; }
.compact-file-field { display:flex; align-items:center; gap:12px; min-height:42px; }
.compact-file-field input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.compact-file-button {
    display:inline-flex;
    min-height:40px;
    align-items:center;
    gap:8px;
    padding:0 16px;
    color:#17120a!important;
    background:var(--admin-gold);
    cursor:pointer;
    font-weight:800!important;
}
.compact-file-field span { color:var(--admin-muted); font-size:.65rem; }
.compact-image-preview { display:none; width:160px; max-height:160px; margin-top:8px; object-fit:contain; background:#090909; border:1px solid var(--admin-line); }
.compact-image-preview.visible { display:block; }
.compact-transfer { display:flex; align-items:center; gap:10px; width:max-content; color:#d7d4cc; cursor:pointer; font-size:.72rem; font-weight:700; }
.compact-transfer input { width:17px; height:17px; accent-color:var(--admin-gold); }
.compact-form-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:26px; padding-top:18px; border-top:1px solid var(--admin-line); }

.filter-tabs { display:flex; flex-wrap:wrap; gap:6px; }
.filter-tabs a { min-height:31px; display:flex; align-items:center; padding:0 11px; color:var(--admin-muted); background:#0b0b0a; border:1px solid var(--admin-line); }
.filter-tabs a.active { color:var(--admin-gold-light); border-color:var(--admin-gold-line); }
.appointment-filter-form { display:grid; grid-template-columns:minmax(190px,1fr) minmax(170px,.8fr) minmax(170px,.8fr) auto; align-items:end; gap:16px; padding:18px 20px; background:#0d0d0b; border-bottom:1px solid var(--admin-line); }
.appointment-filter-form .field-group { gap:7px; }
.filter-input-icon { position:relative; }
.filter-input-icon i { position:absolute; z-index:1; top:50%; left:13px; color:var(--admin-gold); transform:translateY(-50%); font-size:.72rem; }
.filter-input-icon input { padding-left:36px; }
.appointment-filter-form input[type="date"] { color-scheme:dark; }
.filter-date-group { display:grid; gap:7px; }
.filter-date-group > span { color:#bbb8b0; font-size:.68rem; font-weight:700; letter-spacing:.04em; }
.filter-date-group > div { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.filter-date-group label { position:relative; display:block; }
.filter-date-group label small { position:absolute; z-index:1; top:5px; left:11px; color:#66635d; font-size:.48rem; text-transform:uppercase; pointer-events:none; }
.filter-date-group input { width:100%; min-height:48px; padding:15px 10px 2px; color:var(--admin-text); background:#0a0a09; border:1px solid var(--admin-line); color-scheme:dark; font-size:.68rem; }
.filter-actions { display:flex; gap:8px; }
.filter-actions .admin-primary-button,.filter-actions .admin-secondary-button { min-height:48px; white-space:nowrap; }
.table-wrap { overflow-x:auto; }
.admin-table { width:100%; min-width:850px; border-collapse:collapse; }
.admin-table th { padding:13px 16px; color:#706e68; background:#0c0c0a; border-bottom:1px solid var(--admin-line); text-align:left; font-size:.58rem; letter-spacing:.08em; text-transform:uppercase; }
.admin-table td { padding:15px 16px; border-bottom:1px solid var(--admin-line); color:#d5d2ca; font-size:.7rem; }
.admin-table tbody tr:hover { background:rgba(255,255,255,.018); }
.admin-table td strong,.admin-table td small { display:block; }
.admin-table td small { margin-top:4px; color:var(--admin-muted); font-size:.6rem; }
.ticket-code { color:var(--admin-gold); font-weight:800; }
.appointment-thumb { display:block; width:46px; height:46px; object-fit:cover; background:#080808; border:1px solid var(--admin-line); border-radius:5px; }
.appointment-thumb.empty { display:grid; place-items:center; color:#5f5c56; font-size:1rem; }
.appointment-thumb-button { position:relative; display:block; padding:0; background:transparent; border:0; cursor:zoom-in; }
.appointment-thumb-button:hover .appointment-thumb { border-color:var(--admin-gold); box-shadow:0 0 0 2px rgba(217,173,69,.12); }
.appointment-thumb-count { position:absolute; right:-7px; bottom:-7px; display:grid; min-width:20px; height:20px; padding:0 4px; place-items:center; color:#080808; background:var(--admin-gold); border:2px solid #11110f; border-radius:20px; font-size:.52rem; font-weight:900; }
.lightbox-open { overflow:hidden; }
.image-lightbox { position:fixed; inset:0; z-index:1000; display:none; place-items:center; padding:40px 88px; background:rgba(0,0,0,.92); backdrop-filter:blur(8px); }
.image-lightbox.open { display:grid; }
.image-lightbox-stage { position:relative; display:grid; place-items:center; max-width:100%; margin:0; }
.image-lightbox img { display:block; max-width:min(1100px,calc(100vw - 176px)); max-height:84vh; object-fit:contain; border:1px solid rgba(255,255,255,.16); box-shadow:0 25px 90px rgba(0,0,0,.7); }
.image-lightbox-stage figcaption { position:absolute; right:12px; bottom:12px; display:none; min-width:52px; padding:7px 10px; color:#fff; background:rgba(0,0,0,.72); border:1px solid rgba(255,255,255,.15); text-align:center; font-size:.64rem; font-weight:800; }
.image-lightbox.has-multiple .image-lightbox-stage figcaption { display:block; }
.image-lightbox-close { position:absolute; top:22px; right:24px; display:grid; width:44px; height:44px; place-items:center; color:#fff; background:#171715; border:1px solid rgba(255,255,255,.18); cursor:pointer; font-size:1.1rem; }
.image-lightbox-nav { position:absolute; top:50%; display:none; width:52px; height:72px; place-items:center; color:#fff; background:rgba(23,23,21,.9); border:1px solid rgba(255,255,255,.18); cursor:pointer; transform:translateY(-50%); font-size:1.2rem; transition:color .2s,border-color .2s,background .2s; }
.image-lightbox.has-multiple .image-lightbox-nav { display:grid; }
.image-lightbox-nav:hover { color:var(--admin-gold-light); background:#171715; border-color:var(--admin-gold-line); }
.image-lightbox-nav.previous { left:22px; }
.image-lightbox-nav.next { right:22px; }
.row-actions { display:flex; gap:7px; }
.row-actions a { display:grid; width:32px; height:32px; place-items:center; color:var(--admin-muted); border:1px solid var(--admin-line); }
.row-actions a:hover { color:var(--admin-gold); border-color:var(--admin-gold-line); }
.simple-pagination { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:16px 20px; color:var(--admin-muted); font-size:.65rem; }
.simple-pagination div { display:flex; gap:8px; }
.simple-pagination a { padding:7px 10px; border:1px solid var(--admin-line); }

.detail-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:20px; align-items:start; }
.detail-list { display:grid; grid-template-columns:1fr 1fr; margin:0; padding:10px 22px 24px; }
.detail-list > div { padding:16px 0; border-bottom:1px solid var(--admin-line); }
.detail-list > div:nth-child(odd) { padding-right:20px; }
.detail-list > div:nth-child(even) { padding-left:20px; border-left:1px solid var(--admin-line); }
.detail-list dt { color:var(--admin-muted); font-size:.6rem; text-transform:uppercase; letter-spacing:.08em; }
.detail-list dd { margin:6px 0 0; color:var(--admin-text); font-size:.76rem; }
.detail-list .highlight dd { color:var(--admin-gold-light); font-size:1rem; font-weight:800; }
.detail-list .full { grid-column:1/-1; padding-inline:0!important; border-left:0!important; }
.detail-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-start; gap:14px; padding:20px 22px; border-top:1px solid var(--admin-line); }
.status-form { display:flex; gap:8px; }
.status-form select { min-width:130px; }
.appointment-image-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:20px; }
.appointment-image-card { min-width:0; margin:0; padding:0; background:#080808; border:1px solid var(--admin-line); }
.appointment-image-card > button { display:block; width:100%; padding:0; background:transparent; border:0; cursor:zoom-in; }
.appointment-image-card img { display:block; width:100%; aspect-ratio:1/1; margin:0; object-fit:cover; background:#080808; }
.appointment-image-card form { margin:0; padding:8px; border-top:1px solid var(--admin-line); }
.appointment-image-card .danger-button { min-height:34px; padding:7px; font-size:.57rem; }
.edit-existing-images { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; padding:20px; border-bottom:1px solid var(--admin-line); }
.edit-existing-images button { min-width:0; padding:0; background:#080808; border:1px solid var(--admin-line); cursor:zoom-in; }
.edit-existing-images img { display:block; width:100%; aspect-ratio:1/1; object-fit:cover; }
.edit-existing-images button:hover { border-color:var(--admin-gold); }
.edit-image-panel { align-self:start; }
.edit-current-image { width:calc(100% - 40px); max-height:280px; margin:20px; object-fit:contain; background:#080808; border:1px solid var(--admin-line); }
.field-group small { color:var(--admin-muted); font-size:.6rem; line-height:1.5; }

.login-page { min-height:100vh; display:grid; place-items:center; padding:24px; overflow:hidden; color:var(--admin-text); background:#070706; }
.login-atmosphere { position:fixed; inset:0; background:radial-gradient(circle at 50% 35%,rgba(217,173,69,.12),transparent 22rem),linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.88)),url('/images/backgroundtruva.png') center/cover; filter:saturate(.5); }
.login-card { position:relative; z-index:1; width:min(100%,430px); padding:38px; text-align:center; background:rgba(13,13,11,.96); border:1px solid var(--admin-gold-line); box-shadow:0 30px 90px rgba(0,0,0,.7); }
.login-logo img { width:84px; margin:0 auto 20px; }
.login-card h1 { margin:0; font:800 1.55rem 'Montserrat',sans-serif; }
.login-copy { margin:10px auto 0; max-width:300px; color:var(--admin-muted); font-size:.72rem; line-height:1.6; }
.login-card .admin-form { padding:26px 0 14px; text-align:left; }
.login-card .admin-alert { margin:18px 0 0; }
.back-to-site { color:var(--admin-muted); font-size:.68rem; }
.back-to-site:hover { color:var(--admin-gold); }

.settlement-toolbar {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    padding:22px 24px;
}
.settlement-toolbar h2 { margin:5px 0 4px; font:800 1.35rem 'Montserrat',sans-serif; }
.settlement-toolbar p { margin:0; color:var(--admin-muted); font-size:.67rem; }
.settlement-toolbar form { display:flex; align-items:center; gap:8px; }
.settlement-toolbar input[type="date"] { min-height:42px; padding:0 12px; color:var(--admin-text); background:#0a0a09; border:1px solid var(--admin-line); color-scheme:dark; }
.settlement-toolbar .icon-button { display:grid; width:42px; height:42px; place-items:center; color:var(--admin-gold-light); border:1px solid var(--admin-gold-line); }
.settlement-note { display:flex; align-items:flex-start; gap:10px; margin:16px 0; padding:13px 16px; color:#c8c4ba; background:rgba(217,173,69,.07); border:1px solid var(--admin-gold-line); font-size:.66rem; line-height:1.6; }
.settlement-note i { flex:0 0 auto; color:var(--admin-gold); }
.settlement-metrics { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; margin-bottom:18px; }
.settlement-metrics article { display:grid; min-height:124px; align-content:center; gap:8px; padding:18px; background:var(--admin-panel); border:1px solid var(--admin-line); }
.settlement-metrics article > span { color:var(--admin-muted); font-size:.58rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.settlement-metrics article > strong { color:var(--admin-text); font:800 clamp(.9rem,1.3vw,1.2rem) 'Montserrat',sans-serif; }
.settlement-metrics article > small { color:#77736c; font-size:.55rem; line-height:1.4; }
.settlement-metrics article.doorman { border-color:rgba(217,173,69,.42); background:linear-gradient(145deg,rgba(217,173,69,.12),var(--admin-panel)); }
.settlement-metrics article.studio strong { color:var(--admin-gold-light); }
.settlement-grid { display:grid; grid-template-columns:minmax(320px,.72fr) minmax(0,1.28fr); gap:18px; align-items:start; }
.payout-list { padding:0 20px 16px; }
.payout-list article { display:grid; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:12px; padding:14px 0; border-bottom:1px solid var(--admin-line); }
.payout-list article:last-child { border-bottom:0; }
.payout-avatar { display:grid; width:38px; height:38px; place-items:center; color:var(--admin-gold); background:rgba(217,173,69,.08); border:1px solid var(--admin-gold-line); border-radius:50%; }
.payout-list article div { display:grid; gap:4px; }
.payout-list article strong { font-size:.72rem; }
.payout-list article small { color:var(--admin-muted); font-size:.57rem; }
.payout-list article b { color:var(--admin-text); font:800 .82rem 'Montserrat',sans-serif; white-space:nowrap; }
.payout-list article > b { display:grid; justify-items:end; gap:3px; }
.payout-list article > b small,.artist-job-list b small { margin:0; color:var(--admin-gold); font-size:.48rem; letter-spacing:.08em; }
.payout-list article.studio b { color:var(--admin-gold-light); }
.payout-list article.artist-payout { padding-bottom:10px; }
.artist-job-list { grid-column:2/-1; display:grid!important; gap:0!important; margin-top:4px; border-top:1px solid var(--admin-line); }
.artist-job-list > div { display:flex!important; align-items:center; justify-content:space-between; gap:16px; padding:10px 0; border-bottom:1px dashed rgba(255,255,255,.07); }
.artist-job-list > div:last-child { border-bottom:0; }
.artist-job-list > div > span { display:grid; gap:3px; min-width:0; }
.artist-job-list > div > span strong { overflow:hidden; font-size:.63rem; text-overflow:ellipsis; white-space:nowrap; }
.artist-job-list > div > span small { margin:0; }
.artist-job-list b { display:grid; justify-items:end; gap:3px; font-size:.7rem!important; }
.settlement-table { min-width:920px; }
.settlement-table td { vertical-align:top; white-space:nowrap; }

@media (max-width: 1200px) {
    .metric-grid { grid-template-columns:1fr 1fr; }
    .appointment-form-layout { grid-template-columns:1fr 1fr; }
    .appointment-form-layout > .admin-panel:first-child,.appointment-form-layout > .admin-panel:nth-child(2) { grid-column:1/-1; }
    .appointment-form-layout > .admin-panel:nth-child(2) { grid-row:auto; }
    .upload-panel { grid-column:1/-1; grid-row:auto; position:static; }
    .upload-zone { min-height:240px; }
    .upload-zone img { height:300px; }
    .appointment-filter-form { grid-template-columns:1fr 1fr; }
    .filter-actions { grid-column:1/-1; justify-content:flex-end; }
    .settlement-metrics { grid-template-columns:repeat(3,1fr); }
    .settlement-grid { grid-template-columns:1fr; }
}

@media (max-width: 900px) {
    .admin-sidebar { position:static; width:100%; padding:16px; border-right:0; border-bottom:1px solid var(--admin-line); }
    .admin-brand { padding-bottom:14px; }
    .admin-nav { grid-template-columns:repeat(4,1fr); margin-top:14px; overflow-x:auto; }
    .admin-nav a { justify-content:center; min-width:120px; padding-inline:10px; }
    .admin-nav a:last-child { display:none; }
    .admin-sidebar-footer { position:absolute; top:20px; right:18px; margin:0; padding:0; border:0; }
    .admin-user { display:none; }
    .admin-main { margin-left:0; }
    .dashboard-grid,.detail-layout { grid-template-columns:1fr; }
    .dashboard-side { grid-template-columns:repeat(3,1fr); }
    .today-card { min-height:130px; }
    .split-layout { grid-template-columns:1fr; }
    .form-panel { position:static; }
    .settlement-toolbar { align-items:flex-start; flex-direction:column; }
    .settlement-toolbar form { width:100%; flex-wrap:wrap; }
}

@media (max-width: 640px) {
    .admin-topbar { align-items:flex-start; padding:20px; }
    .admin-topbar-actions { margin-left:auto; }
    .admin-date { display:none; }
    .admin-topbar .admin-primary-button { width:44px; padding:0; font-size:0; }
    .admin-topbar .admin-primary-button i { font-size:1rem; }
    .admin-content { padding:20px; }
    .admin-alert { margin-inline:20px; }
    .metric-grid { grid-template-columns:1fr; }
    .metric-card { min-height:120px; }
    .dashboard-side { grid-template-columns:1fr; }
    .today-card { min-height:150px; }
    .form-grid.two,.detail-list { grid-template-columns:1fr; }
    .detail-list > div { padding-inline:0!important; border-left:0!important; }
    .detail-actions,.status-form { align-items:stretch; flex-direction:column; }
    .staff-row { grid-template-columns:36px 1fr auto 82px; }
    .staff-row > small { display:none; }
    .appointment-form-layout { grid-template-columns:1fr; }
    .compact-form-header { min-height:68px; padding-inline:20px; }
    .compact-form-body { padding:22px 20px 16px; }
    .compact-form-grid { grid-template-columns:1fr; }
    .compact-form-actions { align-items:stretch; flex-direction:column-reverse; }
    .compact-form-actions > * { width:100%; }
    .filter-tabs { width:100%; }
    .appointment-filter-form { grid-template-columns:1fr; }
    .filter-actions { grid-column:auto; align-items:stretch; flex-direction:column; }
    .panel-heading { align-items:flex-start; flex-wrap:wrap; }
    .login-card { padding:30px 22px; }
    .settlement-metrics { grid-template-columns:1fr 1fr; }
    .settlement-toolbar form input[type="date"] { flex:1; min-width:145px; }
    .settlement-toolbar .admin-primary-button,.settlement-toolbar .admin-secondary-button { flex:1; }
    .image-lightbox { padding:70px 14px 86px; }
    .image-lightbox img { max-width:calc(100vw - 28px); max-height:72vh; }
    .image-lightbox-nav { top:auto; bottom:18px; width:58px; height:48px; transform:none; }
    .image-lightbox-nav.previous { left:calc(50% - 66px); }
    .image-lightbox-nav.next { right:calc(50% - 66px); }
    .image-lightbox-close { top:14px; right:14px; }
}

@media (prefers-reduced-motion: reduce) {
    *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; }
}
