:root{
  --bg:#0b0b0b; --card:#111; --card2:#171717; --text:#f5f5f5; --muted:#b0b0b0;
  --line:#2a2a2a; --white:#fff; --max:1180px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Inter,system-ui,sans-serif;background:#0a0a0a;color:var(--text)}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{width:min(var(--max),calc(100% - 32px));margin:0 auto}
.site-header,.admin-header{position:sticky;top:0;z-index:30;background:rgba(10,10,10,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.site-header-inner,.admin-header-inner{display:flex;gap:24px;align-items:center;justify-content:space-between;padding:18px 0}
.brand-kicker,.section-kicker{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#a5a5a5}
.brand-title{font:800 28px/1 "Playfair Display",serif}
.site-nav,.admin-nav{display:flex;gap:14px;flex-wrap:wrap}
.site-nav a,.admin-nav a{padding:10px 12px;border-radius:999px}
.site-nav a.active,.site-nav a:hover,.admin-nav a:hover{background:#1a1a1a}
.header-search{display:flex;align-items:center;gap:8px;background:#131313;border:1px solid var(--line);padding:10px 12px;border-radius:999px}
.header-search input{background:transparent;border:none;outline:none;color:#fff;min-width:220px}
.hero-grid,.article-shell,.admin-main{padding:26px 0}
.hero-card{display:grid;grid-template-columns:1.3fr 1fr;background:linear-gradient(180deg,#121212,#0f0f0f);border:1px solid var(--line);border-radius:28px;overflow:hidden}
.hero-media{height:100%;object-fit:cover;min-height:420px}
.hero-body{padding:34px;display:flex;flex-direction:column;justify-content:center}
.pill{display:inline-flex;width:max-content;background:#fff;color:#000;padding:8px 12px;border-radius:999px;font-weight:700;font-size:12px}
.hero-title,.article-title{font:800 clamp(34px,5vw,62px)/1.03 "Playfair Display",serif;margin:18px 0}
.hero-excerpt,.article-excerpt{color:#d0d0d0;font-size:18px;line-height:1.7}
.button-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 18px;background:#fff;color:#000;border:none;border-radius:16px;font-weight:700;cursor:pointer}
.btn-secondary{background:#171717;color:#fff;border:1px solid var(--line)}
.btn-small{padding:8px 12px;border-radius:12px;font-size:13px}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:34px 0 18px}
.section-head h1,.section-head h2,.admin-card h1,.admin-card h2{margin:4px 0 0}
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.article-card,.admin-card,.panel,.notice-box,.login-card{background:#101010;border:1px solid var(--line);border-radius:24px;overflow:hidden}
.article-card-body,.admin-card,.panel,.login-card{padding:22px}
.article-card-media{aspect-ratio:16/10;object-fit:cover}
.meta-line,.meta-stack{display:flex;gap:10px;align-items:center;flex-wrap:wrap;color:#a8a8a8;font-size:13px}
.dot{width:4px;height:4px;border-radius:50%;background:#707070}
.article-shell{display:block}
.article-hero-image{width:100%;aspect-ratio:21/8;object-fit:cover;border-radius:24px;border:1px solid var(--line);margin-bottom:28px}
.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px}
.article-content,.panel{background:#101010;border:1px solid var(--line);border-radius:24px}
.article-content{padding:28px}
.article-content h2{font:800 32px/1.15 "Playfair Display",serif;margin:30px 0 12px}
.article-content p,.article-content li{line-height:1.9;color:#e1e1e1;font-size:18px}
.article-content iframe,.social-embed iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:18px}
.article-inline-media{margin:0 0 20px}
.article-inline-media img{width:100%;border-radius:18px}
.article-insert-html{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.panel-title{font-weight:800;margin-bottom:12px}
.sidebar-list{display:grid;gap:14px}
.sidebar-item{padding:14px;border:1px solid var(--line);border-radius:18px;background:#131313}
.simple-list{display:grid;gap:10px;padding-left:18px}
.data-table{width:100%;border-collapse:collapse}
.data-table th,.data-table td{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.admin-grid{display:grid;gap:22px}
.stats-grid{grid-template-columns:repeat(4,1fr)}
.two-panel{grid-template-columns:1fr 1fr}
.stat-number{font-size:40px;font-weight:800}
.stat-label,.muted,small{color:#a8a8a8}
.flash{padding:14px 16px;border-radius:16px;margin-bottom:18px}
.flash-success{background:#102313;border:1px solid #1e5727}
.flash-error{background:#2c0f12;border:1px solid #7d242d}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form-grid.two-col{grid-template-columns:1fr 1fr}
.full-width{grid-column:1/-1}
label{display:block;margin-bottom:8px;font-weight:600}
input[type=text],input[type=password],input[type=url],input[type=file],select,textarea{
  width:100%;padding:14px 14px;background:#121212;border:1px solid var(--line);border-radius:16px;color:#fff;outline:none
}
textarea{resize:vertical}
.login-body{display:grid;place-items:center;min-height:100vh}
.login-card{width:min(520px,calc(100% - 32px))}
.footer-inner{padding:42px 0;display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin-top:40px}
.footer-title{font-weight:800;font-size:20px}
.footer-links{display:flex;gap:16px;flex-wrap:wrap}
.pagination{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}
.preview-shell{margin-top:22px}
.video-page{min-height:calc(100vh - 85px)}
.video-stage{position:relative;min-height:calc(100vh - 85px);background-size:cover;background-position:center;padding:40px;display:grid;place-items:center}
.video-overlay{position:absolute;inset:0;background:rgba(0,0,0,.72)}
.video-copy{position:relative;z-index:1;max-width:920px;width:100%}
.video-copy h1{font:800 clamp(34px,6vw,72px)/1.02 "Playfair Display",serif;margin:12px 0 22px}
.video-kicker{display:inline-flex;padding:8px 12px;background:#fff;color:#000;border-radius:999px;font-weight:700}
.typewriter-box,.video-preview-card{background:rgba(15,15,15,.92);border:1px solid rgba(255,255,255,.12);border-radius:24px;padding:24px}
.typewriter-text,.video-preview-text{white-space:pre-wrap;overflow:hidden;border-right:3px solid #fff;animation:typing 14s steps(200,end), blink .9s step-end infinite;max-width:100%}
@keyframes typing{from{max-height:0;opacity:.5}to{max-height:1200px;opacity:1}}
@keyframes blink{50%{border-color:transparent}}
.social-embed{margin:0 0 24px}
.admin-body .article-content{background:#0f0f0f}
.notice-box{padding:28px}
@media (max-width:980px){
  .hero-card,.article-layout,.stats-grid,.two-panel,.form-grid,.form-grid.two-col,.card-grid{grid-template-columns:1fr}
  .header-search input{min-width:0;width:100%}
  .site-header-inner,.admin-header-inner,.footer-inner{flex-direction:column;align-items:flex-start}
}

/* Production admin polish: clean black/white theme from login through dashboard */
body.admin-body,
body.login-body{
  background: radial-gradient(circle at top, #181818 0, #090909 42%, #000 100%);
  color:#fff;
}
.login-card{
  background:rgba(14,14,14,.96);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 24px 80px rgba(0,0,0,.55);
  border-radius:28px;
}
.login-card h1{font-size:38px;margin:0 0 10px;color:#fff}
.login-card p{color:#cfcfcf;line-height:1.6}
.admin-header{background:#000;border-bottom:1px solid rgba(255,255,255,.12)}
.admin-header .brand-title a{color:#fff}
.admin-nav a{border:1px solid transparent;color:#f5f5f5}
.admin-nav a:hover{background:#fff;color:#000;border-color:#fff}
.admin-main{min-height:calc(100vh - 80px)}
.admin-card,.panel,.notice-box{
  background:#0f0f0f;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 18px 50px rgba(0,0,0,.22);
}
.admin-card h1,.admin-card h2{color:#fff}
.btn,.button,.admin-main button{
  border-radius:16px;
  transition:transform .15s ease, background .15s ease, color .15s ease, border-color .15s ease;
}
.btn:hover,.button:hover,.admin-main button:hover{transform:translateY(-1px)}
.btn-danger,.delete-btn,a.btn-danger,button.btn-danger{
  background:#fff !important;
  color:#000 !important;
  border:1px solid #fff !important;
}
.btn-danger:hover,.delete-btn:hover,a.btn-danger:hover,button.btn-danger:hover{
  background:#171717 !important;
  color:#fff !important;
  border-color:#fff !important;
}
input[type=text],input[type=password],input[type=url],input[type=file],input[type=date],input[type=number],input[type=email],select,textarea{
  background:#080808;
  border:1px solid rgba(255,255,255,.18);
  color:#fff;
}
input:focus,select:focus,textarea:focus{border-color:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.08)}
.data-table th{background:#050505;color:#fff}
.data-table tr:hover td{background:#121212}
.setup-warning{border-color:#fff}

/* Production upgrade additions */
.no-select{ -webkit-touch-callout:none; -webkit-user-select:none; -khtml-user-select:none; -moz-user-select:none; -ms-user-select:none; user-select:none; }
.return-top{ position:fixed; right:22px; bottom:22px; width:46px; height:46px; border-radius:999px; background:#000; color:#fff; display:flex; align-items:center; justify-content:center; font-size:24px; font-weight:800; text-decoration:none; box-shadow:0 12px 28px rgba(0,0,0,.22); z-index:9999; }
.login-form-spaced .password-field{ margin-bottom:18px; }
.login-form-spaced .login-submit{ margin-top:10px; }
.article-inline-media video,.video-header-player{ width:100%; max-height:320px; border-radius:24px; background:#000; display:block; object-fit:contain; }
.compact-video-stage{ min-height:100vh; padding:28px 16px; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.video-public-standalone .video-copy{ max-width:980px; }
.video-public-standalone .typewriter-box{ max-height:42vh; overflow:auto; }
.data-table input,.data-table select{ min-width:90px; padding:8px; border:1px solid #ddd; border-radius:10px; }
.admin-card textarea[readonly]{ width:100%; background:#fff; color:#111; border:1px solid #ddd; border-radius:16px; padding:16px; }
.media-credit, figcaption{ color:#666; font-size:.9rem; margin-top:8px; }

.business-details{margin-top:34px;padding:24px;border:1px solid var(--line);border-radius:22px;background:#0b0b0b;overflow-wrap:anywhere;word-break:break-word}
.business-details h2{margin-top:0}
.business-details p,.business-details li{overflow-wrap:anywhere;word-break:break-word}
.business-details a.long-url{overflow-wrap:anywhere;word-break:break-all}
.business-detail-block{margin:18px 0}
.business-hours,.business-list{margin:10px 0 0 0;padding-left:22px}
.business-pre{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;background:#050505;border:1px solid var(--line);border-radius:14px;padding:14px;color:#eee}

/* Import page: widen Recent Import Jobs area by roughly 30% and prevent right-side cut-off. */
.import-jobs-wide{max-width:130%; width:130%; margin-left:-15%; overflow-x:auto;}
.import-jobs-wide .data-table input{max-width:100%; min-width:80px;}
.import-jobs-wide .table-actions{margin:0 0 12px 0;}
@media (max-width:1200px){.import-jobs-wide{max-width:100%; width:100%; margin-left:0;}}
