:root {
  --pine-900: #14261C; --pine-800: #1C3829; --pine-700: #24462F;
  --gold-600: #B8860B; --gold-500: #C99A2E;
  --stone-100: #EDEAD9; --paper: #FFFFFF; --ink-900:#1A1F16; --ink-700:#3A3F33; --ink-500:#6B7062;
  --line:#E1DECE; --danger:#B23A2E; --success:#2F7D4F;
  --font-body: 'Work Sans', Arial, sans-serif;
  --font-mono: 'IBM Plex Mono', monospace;
  --radius: 6px;
}
* { box-sizing: border-box; }
body { margin:0; font-family: var(--font-body); background: #F6F5EF; color: var(--ink-900); }
a { text-decoration:none; color:inherit; }

/* Login page */
.login-wrap { min-height:100vh; display:flex; align-items:center; justify-content:center; background: var(--pine-900); }
.login-card { background:#fff; border-radius: var(--radius); padding: 40px 36px; width: 100%; max-width: 380px; box-shadow: 0 20px 50px rgba(0,0,0,.3); }
.login-card h1 { font-size:1.3rem; margin:0 0 4px; color: var(--pine-900); }
.login-card p.sub { color: var(--ink-500); font-size:.85rem; margin:0 0 24px; }

/* Layout */
.admin-shell { display:flex; min-height:100vh; }
.admin-sidebar { width:230px; background: var(--pine-900); color:#E4E2CF; flex-shrink:0; display:flex; flex-direction:column; }
.admin-sidebar .brand { padding:22px 20px; font-family: Georgia, serif; font-size:1.1rem; color:#fff; border-bottom:1px solid rgba(255,255,255,.1); }
.admin-sidebar .brand small { display:block; font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; color:#B9B69E; margin-top:3px; }
.admin-nav { padding: 14px 10px; flex:1; }
.admin-nav a { display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:5px; font-size:.9rem; margin-bottom:2px; color:#C4C1AA; }
.admin-nav a:hover { background: rgba(255,255,255,.06); color:#fff; }
.admin-nav a.active { background: var(--gold-600); color:#fff; }
.admin-sidebar .sidebar-foot { padding:16px 20px; border-top:1px solid rgba(255,255,255,.1); font-size:.82rem; }
.admin-sidebar .sidebar-foot a { color:#E4E2CF; }

.admin-main { flex:1; min-width:0; }
.admin-topbar { background:#fff; border-bottom:1px solid var(--line); padding:16px 28px; display:flex; justify-content:space-between; align-items:center; }
.admin-topbar h1 { font-size:1.2rem; margin:0; }
.admin-content { padding: 26px 28px 60px; }

/* Cards / tables */
.card { background:#fff; border:1px solid var(--line); border-radius: var(--radius); padding:22px; margin-bottom:20px; }
.stat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:24px; }
.stat-card { background:#fff; border:1px solid var(--line); border-radius: var(--radius); padding:18px 20px; }
.stat-card .num { font-family: var(--font-mono); font-size:1.7rem; font-weight:600; color: var(--pine-800); }
.stat-card .label { font-size:.78rem; text-transform:uppercase; letter-spacing:.05em; color: var(--ink-500); }

table.admin-table { width:100%; border-collapse:collapse; font-size:.9rem; }
table.admin-table th { text-align:left; font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-500); padding:10px 12px; border-bottom:2px solid var(--line); }
table.admin-table td { padding:12px; border-bottom:1px solid var(--line); vertical-align:middle; }
table.admin-table tr:hover td { background:#FAF9F2; }
.thumb-sm { width:52px; height:40px; object-fit:cover; border-radius:4px; background:var(--stone-100); }

.badge { display:inline-block; padding:3px 10px; border-radius:100px; font-size:.72rem; font-weight:600; }
.badge-available { background:#E4F0E6; color:var(--success); }
.badge-sold { background:#F5E1DD; color:var(--danger); }
.badge-hold { background:#FBF0D6; color:#8A6116; }
.badge-new { background:#E4F0E6; color:var(--success); }
.badge-contacted { background:#FBF0D6; color:#8A6116; }
.badge-closed { background:#EAEAEA; color:#666; }

/* Buttons */
.btn { display:inline-flex; align-items:center; gap:6px; padding:9px 16px; border-radius:5px; font-size:.86rem; font-weight:600; border:1.5px solid transparent; cursor:pointer; }
.btn-primary { background: var(--gold-600); color:#fff; }
.btn-primary:hover { background: var(--gold-500); }
.btn-outline { border-color: var(--line); color: var(--ink-700); background:#fff; }
.btn-outline:hover { border-color: var(--pine-800); color: var(--pine-800); }
.btn-danger { background:#fff; border-color:#F0C0B7; color:var(--danger); }
.btn-danger:hover { background:#FBE7E4; }
.btn-sm { padding:6px 11px; font-size:.78rem; }

/* Forms */
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-group { margin-bottom:16px; }
.form-group.full { grid-column: 1 / -1; }
.form-group label { display:block; font-size:.82rem; font-weight:600; margin-bottom:6px; color: var(--ink-700); }
.form-group .hint { font-size:.76rem; color: var(--ink-500); margin-top:4px; }
.form-group input, .form-group select, .form-group textarea {
  width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:5px; font-family: var(--font-body); font-size:.9rem; background:#fff;
}
.form-group textarea { min-height:110px; resize:vertical; }
.checkbox-row { display:flex; align-items:center; gap:8px; }
.checkbox-row input { width:auto; }
.section-title { font-size:.95rem; font-weight:700; margin: 26px 0 14px; padding-bottom:8px; border-bottom:2px solid var(--line); color: var(--pine-800); }
.section-title:first-child { margin-top:0; }

.alert { padding:12px 16px; border-radius:5px; margin-bottom:18px; font-size:.88rem; }
.alert-success { background:#E4F0E6; color:var(--success); border:1px solid #B7D9BC; }
.alert-error { background:#FBE7E4; color:var(--danger); border:1px solid #F0C0B7; }

.current-image { max-width:180px; border-radius:5px; border:1px solid var(--line); margin-bottom:10px; }
.gallery-thumb-list { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:10px; }
.gallery-thumb-list .g-item { position:relative; }
.gallery-thumb-list img { width:90px; height:64px; object-fit:cover; border-radius:4px; border:1px solid var(--line); }
.gallery-thumb-list .del-link { position:absolute; top:-6px; right:-6px; background:var(--danger); color:#fff; width:18px; height:18px; border-radius:50%; font-size:.7rem; display:flex; align-items:center; justify-content:center; }

.toolbar { display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; gap:12px; flex-wrap:wrap; }
.search-input { padding:9px 12px; border:1px solid var(--line); border-radius:5px; min-width:220px; }

@media (max-width: 860px) {
  .admin-sidebar { display:none; }
  .form-grid { grid-template-columns:1fr; }
  .stat-grid { grid-template-columns:1fr 1fr; }
}
