@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&family=Ubuntu:wght@400;500;700&display=swap");
:root { --ink:#172433; --navy:#102c47; --bronze:#c18b49; --paper:#f2f1ed; --white:#fff; --line:#d9dde1; --muted:#6b7580; --danger:#a43131; --green:#1d7657; --shadow:0 18px 55px rgba(13,30,47,.12); }
* { box-sizing:border-box; }
body { margin:0; font-family:Montserrat,Arial,sans-serif; color:var(--ink); background:var(--paper); }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
.admin-body { min-height:100vh; }
.admin-sidebar { position:fixed; inset:0 auto 0 0; width:265px; padding:25px 20px; display:flex; flex-direction:column; z-index:20; background:#0c1c2c; color:#fff; }
.admin-brand { padding:0 8px 25px; border-bottom:1px solid rgba(255,255,255,.12); }
.admin-brand img { width:190px; filter:brightness(0) invert(1); }
.admin-brand span { display:block; margin-top:10px; color:rgba(255,255,255,.55); font-size:.68rem; letter-spacing:.13em; text-transform:uppercase; }
.admin-sidebar nav { margin-top:25px; display:grid; gap:5px; }
.admin-sidebar nav a { padding:13px 15px; display:flex; align-items:center; justify-content:space-between; border-radius:8px; color:rgba(255,255,255,.72); font-size:.86rem; }
.admin-sidebar nav a:hover,.admin-sidebar nav a.is-active { background:rgba(255,255,255,.1); color:#fff; }
.nav-count { min-width:26px; padding:3px 6px; border-radius:12px; background:var(--bronze); color:#fff; text-align:center; font-size:.67rem; }
.admin-sidebar-bottom { margin-top:auto; padding:20px 8px 0; display:grid; gap:10px; border-top:1px solid rgba(255,255,255,.12); color:rgba(255,255,255,.55); font-size:.72rem; }
.admin-sidebar-bottom a { color:#fff; }
.admin-main { min-height:100vh; margin-left:265px; padding:0 38px 40px; }
.admin-topbar { min-height:106px; display:flex; align-items:center; gap:18px; }
.admin-topbar h1 { margin:0; font-family:Ubuntu,Arial,sans-serif; font-size:2rem; font-weight:700; }
.admin-topbar p { margin:5px 0 0; color:var(--muted); font-size:.78rem; }
.admin-menu-toggle { display:none; }
.admin-flash { margin:0 0 22px; padding:14px 17px; border-radius:8px; font-size:.84rem; }
.admin-flash-success { background:#def3e8; color:#155d44; }
.admin-flash-error { background:#f7dddd; color:#8d2727; }
.admin-panel { margin-bottom:25px; padding:27px; border:1px solid #e0e2e4; border-radius:12px; background:#fff; box-shadow:0 8px 28px rgba(16,35,52,.04); }
.panel-head { margin-bottom:23px; display:flex; justify-content:space-between; gap:20px; align-items:flex-start; }
.panel-head h2 { margin:0; font-family:Ubuntu,Arial,sans-serif; font-size:1.65rem; font-weight:500; }
.panel-head p { margin:6px 0 0; color:var(--muted); font-size:.79rem; }
.dashboard-stats { margin-bottom:25px; display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.dashboard-stats a { min-height:145px; padding:25px; display:flex; flex-direction:column; justify-content:space-between; border-radius:12px; background:#fff; box-shadow:0 8px 28px rgba(16,35,52,.05); }
.dashboard-stats strong { font-family:Ubuntu,Arial,sans-serif; font-size:3rem; font-weight:500; color:var(--bronze); }
.dashboard-stats span { font-size:.8rem; color:var(--muted); }
.admin-grid-two { display:grid; grid-template-columns:1fr 1fr; gap:25px; }
.quick-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.quick-actions a { min-height:78px; padding:16px; display:flex; align-items:center; border:1px solid var(--line); border-radius:8px; font-size:.82rem; }
.quick-actions a:hover { border-color:var(--bronze); background:#fbf7f0; }
.path-box { padding:14px; border-radius:7px; background:#eef1f4; color:#44515e; font-family:monospace; font-size:.72rem; overflow-wrap:anywhere; }
.status-list { margin:18px 0 0; padding:0; list-style:none; }
.status-list li { padding:11px 0; display:flex; justify-content:space-between; border-bottom:1px solid var(--line); font-size:.78rem; }
.status-list b { color:var(--green); }
.workflow-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.workflow-grid article { min-height:220px; padding:23px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.workflow-grid b { color:var(--bronze); font-family:Ubuntu,Arial,sans-serif; font-size:1.7rem; }
.workflow-grid h3 { margin:45px 0 8px; font-size:1rem; }
.workflow-grid p { margin:0; color:var(--muted); font-size:.76rem; line-height:1.6; }
.admin-list-cards { display:grid; gap:10px; }
.admin-list-cards a { padding:20px; display:flex; justify-content:space-between; align-items:center; gap:20px; border:1px solid var(--line); border-radius:9px; transition:.2s ease; }
.admin-list-cards a:hover { border-color:var(--bronze); transform:translateX(3px); }
.admin-list-cards strong { display:block; font-size:.95rem; }
.admin-list-cards p { margin:5px 0 0; color:var(--muted); font-size:.76rem; }
.admin-list-cards span { color:var(--bronze); font-size:.76rem; white-space:nowrap; }
.admin-list-cards.compact { grid-template-columns:1fr 1fr; }
.service-admin-group + .service-admin-group { margin-top:35px; }
.service-admin-group > h3 { margin:0 0 12px; color:var(--bronze); font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; }
.editor-toolbar { position:sticky; z-index:10; top:0; margin:0 0 22px; padding:15px 18px; display:flex; justify-content:space-between; align-items:center; gap:20px; border:1px solid var(--line); border-radius:10px; background:rgba(255,255,255,.96); box-shadow:var(--shadow); }
.editor-toolbar > div:last-child { display:flex; gap:10px; }
.editor-toolbar a { color:var(--bronze); font-size:.78rem; }
.editor-toolbar p { margin:4px 0 0; color:var(--muted); font-size:.68rem; }
.editor-toolbar code { font-size:.65rem; }
.admin-primary-button,.admin-secondary-button,.inline-admin-form button,.media-meta-form button,.media-actions button { min-height:42px; padding:0 17px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--navy); border-radius:7px; background:var(--navy); color:#fff!important; font-size:.75rem; }
.admin-secondary-button { background:#fff; color:var(--navy)!important; }
.editor-group { margin-bottom:20px; padding:23px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.editor-group.depth-1 { background:#fafafa; }
.editor-group.depth-2 { padding:17px; background:#fff; }
.editor-group-head { margin-bottom:17px; padding-bottom:11px; display:flex; justify-content:space-between; gap:20px; border-bottom:1px solid var(--line); }
.editor-group-head h2 { margin:0; font-family:Ubuntu,Arial,sans-serif; font-size:1.35rem; font-weight:500; }
.editor-group-head span { color:#9aa1a8; font-family:monospace; font-size:.65rem; }
.editor-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.editor-group .editor-group { grid-column:1/-1; margin:0; }
.editor-field { display:grid; gap:7px; align-content:start; }
.editor-field > label { color:#4e5965; font-size:.72rem; font-weight:600; }
.editor-field input[type=text],.editor-field input[type=number],.editor-field textarea,.editor-field select { width:100%; min-height:44px; padding:10px 12px; border:1px solid var(--line); border-radius:7px; background:#fff; outline:0; font-size:.79rem; }
.editor-field textarea { resize:vertical; line-height:1.55; }
.editor-field input:focus,.editor-field textarea:focus { border-color:var(--bronze); box-shadow:0 0 0 3px rgba(193,139,73,.1); }
.editor-field small { color:#8a9299; font-size:.66rem; }
.input-with-action { display:flex; gap:8px; }
.input-with-action input { min-width:0; flex:1; }
.media-pick-button { padding:0 12px; border:1px solid var(--bronze); border-radius:7px; background:#fff7ed; color:#8f622b; font-size:.7rem; white-space:nowrap; }
.switch { display:flex!important; align-items:center; gap:10px!important; font-weight:400!important; }
.switch input { position:absolute; opacity:0; }
.switch span { width:45px; height:24px; padding:3px; border-radius:20px; background:#cbd0d4; transition:.2s; }
.switch span::after { content:""; display:block; width:18px; height:18px; border-radius:50%; background:#fff; transition:.2s; box-shadow:0 1px 3px rgba(0,0,0,.2); }
.switch input:checked + span { background:var(--green); }
.switch input:checked + span::after { transform:translateX(21px); }
.switch b { font-size:.72rem; font-weight:500; }
.editor-save-bottom { padding:20px 0 10px; text-align:right; }
.media-toolbar-grid { display:grid; grid-template-columns:1fr 1fr 1.35fr; gap:15px; align-items:end; }
.media-toolbar-grid form { min-width:0; }
.media-toolbar-grid label { display:grid; gap:6px; color:#56616b; font-size:.7rem; }
.media-toolbar-grid select,.media-toolbar-grid input[type=text],.media-toolbar-grid input[type=file] { width:100%; min-height:43px; padding:8px 10px; border:1px solid var(--line); border-radius:7px; background:#fff; font-size:.75rem; }
.inline-admin-form { display:flex; gap:8px; align-items:end; }
.inline-admin-form label { flex:1; }
.media-admin-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.media-admin-card { overflow:hidden; border:1px solid var(--line); border-radius:9px; background:#fff; }
.media-thumb { position:relative; width:100%; height:210px; padding:0; border:0; background:#e8e8e4; }
.media-thumb img { width:100%; height:100%; object-fit:cover; }
.media-thumb span { position:absolute; left:9px; bottom:9px; padding:5px 8px; border-radius:4px; background:rgba(12,28,44,.9); color:#fff; font-size:.68rem; }
.media-thumb.is-picker::after { content:"Choose"; position:absolute; top:9px; right:9px; padding:5px 8px; border-radius:4px; background:var(--bronze); color:#fff; font-size:.65rem; }
.media-meta-form { padding:13px; display:grid; gap:9px; }
.media-meta-form label { display:grid; gap:4px; color:#5c6670; font-size:.64rem; }
.media-meta-form input[type=text] { min-height:36px; padding:7px 9px; border:1px solid var(--line); border-radius:5px; font-size:.7rem; }
.media-checks { display:flex; gap:15px; font-size:.68rem; }
.media-actions { padding:0 13px 13px; }
.media-actions summary { color:var(--bronze); font-size:.68rem; cursor:pointer; }
.media-actions form { margin-top:8px; display:flex; gap:6px; }
.media-actions input { min-width:0; flex:1; padding:7px; border:1px solid var(--line); border-radius:5px; font-size:.7rem; }
.media-actions button { min-height:34px; padding-inline:10px; font-size:.65rem; }
.media-actions .danger { background:var(--danger); border-color:var(--danger); }
.admin-pagination { margin-top:25px; display:flex; flex-wrap:wrap; gap:6px; }
.admin-pagination a { width:34px; height:34px; display:grid; place-items:center; border:1px solid var(--line); border-radius:5px; background:#fff; font-size:.7rem; }
.admin-pagination a.is-active { background:var(--navy); color:#fff; }
.empty-state { padding:55px; border:1px dashed var(--line); text-align:center; }
.empty-state h3 { margin:0 0 8px; }
.empty-state p { margin:0; color:var(--muted); font-size:.8rem; }
.quote-admin-list { display:grid; gap:16px; }
.quote-admin-card { padding:21px; border:1px solid var(--line); border-radius:9px; }
.quote-admin-head { display:flex; justify-content:space-between; gap:20px; }
.quote-admin-head strong,.quote-admin-head span { display:block; }
.quote-admin-head strong { font-size:1rem; }
.quote-admin-head span { margin-top:3px; color:var(--bronze); font-size:.72rem; }
.quote-admin-head time { color:var(--muted); font-size:.7rem; }
.quote-admin-grid { margin:18px 0; display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.quote-admin-grid div { padding:10px; background:#f4f5f5; }
.quote-admin-grid small,.quote-admin-grid span,.quote-admin-grid a { display:block; }
.quote-admin-grid small,.quote-details small,.quote-files small { color:#8a9299; font-size:.62rem; text-transform:uppercase; letter-spacing:.08em; }
.quote-admin-grid span,.quote-admin-grid a { margin-top:5px; font-size:.75rem; }
.quote-details p { margin:6px 0 0; color:#56616b; font-size:.78rem; }
.quote-files { margin-top:16px; display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.quote-files a { padding:7px 10px; border-radius:5px; background:#eef2f4; font-size:.68rem; }
.admin-footer { padding:20px 0; color:#90979d; font-size:.66rem; }
.login-body { min-height:100vh; display:grid; place-items:center; padding:30px; background:#0d1d2d; }
.login-shell { width:min(980px,100%); min-height:600px; display:grid; grid-template-columns:1.1fr .9fr; overflow:hidden; border-radius:18px; box-shadow:0 30px 100px rgba(0,0,0,.25); }
.login-brand { padding:60px; display:flex; flex-direction:column; justify-content:flex-end; background:linear-gradient(160deg,#122f4b,#091827); color:#fff; }
.login-brand img { width:220px; margin-bottom:auto; filter:brightness(0) invert(1); }
.login-brand > span { color:#d1a66c; font-size:.68rem; letter-spacing:.15em; text-transform:uppercase; }
.login-brand h1 { margin:12px 0 15px; font-family:Ubuntu,Arial,sans-serif; font-size:3rem; font-weight:700; line-height:1.08; }
.login-brand p { margin:0; color:rgba(255,255,255,.6); }
.login-card { padding:60px; display:flex; flex-direction:column; justify-content:center; background:#fff; }
.login-kicker { color:var(--bronze); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; }
.login-card h2 { margin:12px 0; font-family:Ubuntu,Arial,sans-serif; font-size:2.5rem; font-weight:700; }
.login-card > p { margin:0 0 23px; color:var(--muted); font-size:.82rem; }
.login-card form { display:grid; gap:13px; }
.login-card label { display:grid; gap:7px; color:#56616b; font-size:.72rem; }
.login-card input { height:52px; padding:0 14px; border:1px solid var(--line); border-radius:7px; font-size:.9rem; }
.login-card button { height:52px; border:0; border-radius:7px; background:var(--navy); color:#fff; }
.otp-input { font-size:1.5rem!important; letter-spacing:.35em; text-align:center; }
.login-alert { margin-bottom:17px; padding:12px; border-radius:6px; font-size:.75rem; }
.login-alert.error { background:#f7dddd; color:#8d2727; }
.login-alert.success { background:#def3e8; color:#155d44; }
.reset-form { margin-top:10px; }
.reset-form button { height:auto!important; background:transparent!important; color:var(--bronze)!important; text-align:left; }
.login-back { margin-top:25px; color:var(--muted); font-size:.72rem; }
@media(max-width:1100px){.admin-sidebar{transform:translateX(-100%);transition:.25s}.admin-sidebar.is-open{transform:none}.admin-main{margin-left:0;padding-inline:22px}.admin-menu-toggle{display:block;border:0;background:#0c1c2c;color:#fff;width:42px;height:42px;border-radius:7px}.dashboard-stats{grid-template-columns:repeat(2,1fr)}.media-admin-grid{grid-template-columns:repeat(3,1fr)}.workflow-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.admin-grid-two,.editor-fields,.admin-list-cards.compact,.media-toolbar-grid,.login-shell{grid-template-columns:1fr}.dashboard-stats{grid-template-columns:1fr 1fr}.workflow-grid{grid-template-columns:1fr}.media-admin-grid{grid-template-columns:repeat(2,1fr)}.quote-admin-grid{grid-template-columns:repeat(2,1fr)}.editor-toolbar{position:static;align-items:flex-start;flex-direction:column}.editor-toolbar>div:last-child{width:100%;flex-wrap:wrap}.login-brand{display:none}.login-card{padding:38px}.login-shell{min-height:auto}.admin-main{padding-inline:14px}.admin-panel{padding:18px}}
@media(max-width:500px){.dashboard-stats,.media-admin-grid,.quote-admin-grid{grid-template-columns:1fr}.media-thumb{height:260px}.admin-topbar h1{font-size:1.55rem}}

/* Westline V5.2 admin additions */
.dashboard-stats { grid-template-columns: repeat(5, 1fr); }
@media(max-width:1350px){.dashboard-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.dashboard-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:500px){.dashboard-stats{grid-template-columns:1fr}}
