:root { --ink:#17231e; --pine:#1d3028; --pine-2:#29453a; --gold:#d6a85c; --gold-soft:#f3e3c5; --paper:#f6f4ee; --white:#fff; --line:#dedbd2; --muted:#747a75; --danger:#a23b3b; --success:#2e7048; }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial,Helvetica,sans-serif; font-size:14px; }
a { color:inherit; text-decoration:none; }
button,input,textarea,select { font:inherit; }
button { cursor:pointer; }
.admin-sidebar { position:fixed; inset:0 auto 0 0; width:260px; background:var(--pine); color:#dfe6e2; padding:28px 20px; display:flex; flex-direction:column; z-index:20; }
.admin-brand { display:flex; align-items:center; gap:13px; padding:0 9px 28px; border-bottom:1px solid rgba(255,255,255,.1); }
.mini-mark,.login-mark { width:38px; height:38px; background:var(--gold); color:var(--ink); display:grid; place-items:center; font:700 19px Georgia,serif; transform:rotate(45deg); }
.mini-mark::first-letter,.login-mark::first-letter { transform:rotate(-45deg); }
.admin-brand b,.admin-brand small { display:block; text-transform:uppercase; letter-spacing:.14em; }
.admin-brand b { font-size:12px; color:white; }
.admin-brand small { font-size:8px; margin-top:4px; color:#9fb0a8; }
.admin-sidebar nav { display:grid; gap:5px; margin-top:30px; }
.admin-sidebar nav a { padding:13px 15px; border-left:2px solid transparent; font-size:13px; color:#bfcac4; }
.admin-sidebar nav a:hover,.admin-sidebar nav a.active { background:rgba(255,255,255,.07); border-left-color:var(--gold); color:white; }
.sidebar-bottom { margin-top:auto; display:grid; gap:8px; padding:20px 8px 0; border-top:1px solid rgba(255,255,255,.1); }
.sidebar-bottom a,.sidebar-bottom button { color:#bfcac4; background:none; border:0; padding:7px 0; text-align:left; font-size:12px; }
.sidebar-bottom a:hover,.sidebar-bottom button:hover { color:var(--gold); }
.admin-main { margin-left:260px; min-height:100vh; }
.admin-topbar { height:64px; background:white; border-bottom:1px solid var(--line); display:flex; justify-content:flex-end; align-items:center; padding:0 38px; color:var(--muted); font-size:11px; }
.sidebar-toggle { display:none; }
.admin-content { max-width:1320px; margin:auto; padding:44px clamp(24px,4vw,60px) 80px; }
.page-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin-bottom:32px; }
.kicker { margin:0 0 8px; color:#9a6e2c; text-transform:uppercase; letter-spacing:.18em; font-size:9px; font-weight:800; }
.page-heading h1,.login-card h1 { margin:0; font:400 clamp(31px,4vw,45px) Georgia,serif; }
.page-heading p:not(.kicker),.muted { margin:10px 0 0; color:var(--muted); line-height:1.6; }
.primary-button,.secondary-button { border:0; min-height:42px; display:inline-flex; align-items:center; justify-content:center; padding:0 18px; text-transform:uppercase; letter-spacing:.1em; font-size:9px; font-weight:800; }
.primary-button { background:var(--gold); color:var(--ink); }
.primary-button:hover { background:#e6bc75; }
.secondary-button { border:1px solid var(--line); background:white; color:var(--ink); }
.stat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-bottom:24px; }
.stat-grid article { min-height:165px; background:white; border:1px solid var(--line); padding:25px; display:flex; flex-direction:column; }
.stat-grid article.accent { background:var(--pine); color:white; border-color:var(--pine); }
.stat-grid small { color:var(--muted); text-transform:uppercase; letter-spacing:.13em; font-size:8px; }
.stat-grid .accent small { color:#aebdb5; }
.stat-grid strong { display:block; margin:14px 0; font:400 46px Georgia,serif; }
.stat-grid a { margin-top:auto; color:#9a6e2c; font-size:10px; font-weight:700; }
.stat-grid .accent a { color:var(--gold); }
.traffic-section { margin:34px 0 28px; }
.section-title { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:18px; }
.section-title h2 { margin:0; font:400 30px Georgia,serif; }
.section-title p:not(.kicker) { margin:8px 0 0; color:var(--muted); font-size:11px; line-height:1.55; }
.section-title>span { color:#896225; background:var(--gold-soft); padding:8px 11px; white-space:nowrap; text-transform:uppercase; letter-spacing:.09em; font-size:8px; font-weight:800; }
.traffic-metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:12px; }
.traffic-metrics article { min-height:126px; padding:20px; background:white; border:1px solid var(--line); display:flex; flex-direction:column; }
.traffic-metrics small { color:var(--muted); text-transform:uppercase; letter-spacing:.11em; font-size:8px; }
.traffic-metrics strong { margin:10px 0 5px; font:400 34px Georgia,serif; }
.traffic-metrics span { margin-top:auto; color:#777d78; font-size:9px; }
.traffic-detail-grid { display:grid; grid-template-columns:minmax(0,2fr) minmax(260px,.75fr); gap:12px; }
.traffic-detail-grid .admin-panel { margin:0; }
.mini-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.mini-heading h3,.traffic-side-panel h3 { margin:0; font:400 20px Georgia,serif; }
.mini-heading p { margin:6px 0 0; color:var(--muted); font-size:9px; line-height:1.5; }
.mini-heading>strong { font:400 30px Georgia,serif; color:#8d6426; }
.traffic-chart { height:215px; margin-top:24px; padding-top:18px; border-bottom:1px solid var(--line); display:grid; grid-template-columns:repeat(30,1fr); align-items:end; gap:4px; }
.chart-day { height:100%; min-width:0; display:grid; grid-template-rows:16px 1fr 22px; align-items:end; justify-items:center; }
.chart-day i { display:block; width:100%; min-height:2px; max-width:18px; background:linear-gradient(180deg,var(--gold),#b98534); }
.chart-day:hover i { background:var(--pine-2); }
.chart-day small { height:20px; padding-top:7px; color:#92958f; font-size:7px; white-space:nowrap; }
.chart-value { color:#866129; font-size:7px; }
.traffic-side-panel { display:flex; flex-direction:column; }
.device-row { margin-top:20px; }
.device-row>div:first-child { display:flex; justify-content:space-between; gap:10px; font-size:10px; }
.device-track { height:7px; margin:7px 0 5px; background:#ece9e1; overflow:hidden; }
.device-track i { display:block; height:100%; background:var(--gold); }
.device-row small { color:var(--muted); font-size:8px; }
.contact-conversion { margin-top:24px; padding:18px; background:var(--pine); color:white; }
.contact-conversion small { display:block; color:#aebdb5; text-transform:uppercase; letter-spacing:.1em; font-size:7px; }
.contact-conversion strong { display:block; margin-top:8px; color:var(--gold); font:400 31px Georgia,serif; }
.privacy-note { margin:auto 0 0; padding-top:18px; color:var(--muted); font-size:8px; line-height:1.55; }
.admin-panel { background:white; border:1px solid var(--line); padding:28px; margin-bottom:20px; }
.panel-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-bottom:20px; margin-bottom:22px; border-bottom:1px solid #ebe8e0; }
.panel-heading h2 { margin:0; font:400 23px Georgia,serif; }
.panel-heading p { margin:6px 0 0; color:var(--muted); font-size:12px; }
.panel-heading a { color:#926825; font-size:11px; font-weight:700; }
.message-list { display:grid; }
.message-row { display:grid; grid-template-columns:190px 1fr 120px; gap:20px; align-items:center; padding:17px 10px; border-bottom:1px solid #ece9e2; }
.message-row:last-child { border:0; }
.message-row.unread { border-left:3px solid var(--gold); padding-left:14px; background:#fdfaf3; }
.message-row div { display:grid; gap:5px; }
.message-row div span,.message-row small { color:var(--muted); font-size:10px; }
.message-row p { margin:0; color:#515851; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.empty-state { text-align:center; padding:36px; color:var(--muted); }
.empty-state strong { color:var(--ink); font:400 20px Georgia,serif; }
.empty-state.standalone { background:white; border:1px solid var(--line); }
.admin-form { display:grid; gap:20px; }
.admin-form.compact { gap:16px; }
.form-grid { display:grid; gap:18px; }
.form-grid.two { grid-template-columns:1fr 1fr; }
.form-grid.three { grid-template-columns:1fr 1fr; }
.form-grid label,.stack-form label { display:grid; gap:8px; color:#4a534d; font-size:10px; font-weight:700; letter-spacing:.04em; }
.form-grid input,.form-grid textarea,.form-grid select,.stack-form input { width:100%; border:1px solid #d7d4cc; background:#fdfcf9; padding:12px 13px; outline:none; color:var(--ink); font-weight:400; font-size:13px; }
.form-grid input:focus,.form-grid textarea:focus,.stack-form input:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(214,168,92,.14); }
.span-two { grid-column:1/-1; }
.file-label small { color:var(--muted); font-weight:400; }
.logo-notice { display:grid; gap:8px; padding:14px; border-left:3px solid var(--gold); background:#fbf5e9; }
.logo-notice strong { font-size:10px; letter-spacing:.04em; }
.logo-notice small { color:var(--muted); font-weight:400; line-height:1.55; }
.sticky-actions { position:sticky; bottom:16px; display:flex; gap:12px; padding:14px; background:rgba(246,244,238,.94); border:1px solid var(--line); box-shadow:0 8px 30px rgba(34,45,39,.1); z-index:3; }
.alert { padding:13px 16px; margin-bottom:20px; border-left:3px solid; }
.alert.success { color:var(--success); background:#eaf5ee; border-color:var(--success); }
.alert.error { color:#8b2828; background:#f9e7e7; border-color:#ae3e3e; }
.editor-list { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.editor-card { margin:0; }
.editor-card-head { display:flex; justify-content:space-between; align-items:center; }
.order-number { font:italic 16px Georgia,serif; color:#a97831; }
.switch { display:flex!important; grid-template-columns:auto auto!important; align-items:center; gap:8px!important; }
.switch input { position:absolute; opacity:0; pointer-events:none; }
.switch span { width:34px; height:19px; border-radius:20px; background:#c9ccc9; position:relative; transition:.2s; }
.switch span:after { content:""; width:13px; height:13px; background:white; border-radius:50%; position:absolute; left:3px; top:3px; transition:.2s; box-shadow:0 1px 3px rgba(0,0,0,.2); }
.switch input:checked+span { background:var(--pine-2); }
.switch input:checked+span:after { left:18px; }
.small-field { max-width:140px; }
.card-actions { display:flex; gap:10px; }
.danger-link { border:0; background:none; color:var(--danger); font-size:10px; padding:8px 0; }
.new-project summary { cursor:pointer; font:400 20px Georgia,serif; }
.new-project[open] summary { padding-bottom:22px; margin-bottom:22px; border-bottom:1px solid var(--line); }
.project-editor-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.project-editor-card { margin:0; overflow:hidden; }
.project-preview { margin:-28px -28px 22px; height:210px; background:#e1ded5; display:grid; place-items:center; color:#878981; text-transform:uppercase; letter-spacing:.12em; font-size:9px; }
.project-preview img { width:100%; height:100%; object-fit:cover; }
.inbox { display:grid; gap:16px; }
.inbox-card { margin:0; }
.inbox-head { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; }
.inbox-head>div { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.inbox-head a { color:#896225; font-size:12px; }
.inbox-head time { color:var(--muted); font-size:10px; }
.status-dot { width:8px; height:8px; border-radius:50%; background:var(--gold); }
.inbox-topic { margin:18px 0 8px; font-size:11px; color:#896225; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.inbox-message { white-space:pre-wrap; line-height:1.7; color:#4a514d; }
.login-page { min-height:100vh; display:grid; place-items:center; padding:24px; background:linear-gradient(135deg,#16271f,#2a463a); }
.login-card { width:min(440px,100%); background:white; padding:45px; box-shadow:0 24px 70px rgba(0,0,0,.3); }
.login-mark { margin:0 0 30px 8px; }
.stack-form { display:grid; gap:18px; margin-top:28px; }
.stack-form .primary-button { margin-top:5px; }
.back-link { display:block; margin-top:24px; color:var(--muted); font-size:11px; }
.form-grid label small { color:var(--muted); font-size:9px; font-weight:400; line-height:1.5; }
.form-grid select { appearance:auto; }
.user-list { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.user-card { margin:0; }
.user-card.disabled-user { opacity:.72; background:#f2f1ed; }
.user-summary { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:14px; padding-bottom:20px; margin-bottom:20px; border-bottom:1px solid var(--line); }
.user-avatar { width:44px; height:44px; border-radius:50%; display:grid; place-items:center; background:var(--pine); color:var(--gold); font:400 21px Georgia,serif; }
.user-summary h2 { margin:0; font:400 20px Georgia,serif; }
.user-summary p { margin:5px 0 0; color:var(--muted); font-size:10px; }
.account-status { border-radius:20px; padding:6px 9px; text-transform:uppercase; letter-spacing:.09em; font-size:7px; font-weight:800; }
.account-status.active { background:#e5f2e9; color:#2f7048; }
.account-status.inactive { background:#f5e5e5; color:#983f3f; }
.user-edit-form { padding-bottom:18px; margin-bottom:14px; border-bottom:1px solid #ece9e2; }
.user-edit-form>.switch { justify-self:start; }
.password-reset { margin:8px 0 12px; border-bottom:1px solid #ece9e2; padding-bottom:12px; }
.password-reset summary { color:#8b642a; cursor:pointer; font-size:10px; font-weight:700; }
.password-reset form { display:grid; grid-template-columns:1fr auto; gap:10px; align-items:end; margin-top:13px; }
.password-reset label { display:grid; gap:6px; color:#4a534d; font-size:9px; font-weight:700; }
.password-reset input { border:1px solid #d7d4cc; padding:11px; width:100%; }
.self-note { margin:10px 0 0; color:var(--muted); font-size:9px; }
.role-help { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:22px; }
.role-help article { padding:20px; background:var(--gold-soft); border-left:3px solid var(--gold); }
.role-help strong { font:400 17px Georgia,serif; }
.role-help p { margin:7px 0 0; color:#615b50; font-size:11px; line-height:1.5; }
.message-filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px; }
.message-filters a { display:flex; align-items:center; gap:9px; padding:10px 14px; background:white; border:1px solid var(--line); color:var(--muted); font-size:10px; font-weight:700; }
.message-filters a span { min-width:21px; height:21px; padding:0 6px; border-radius:12px; display:grid; place-items:center; background:#eceae4; font-size:8px; }
.message-filters a.active { background:var(--pine); border-color:var(--pine); color:white; }
.message-filters a.active span { background:var(--gold); color:var(--ink); }
.inbox-card { border-left:4px solid var(--gold); }
.inbox-card.status-done { border-left-color:#4a9565; background:#fbfdfb; }
.inbox-card.status-done .status-dot { background:#4a9565; }
.request-status { padding:5px 8px; border-radius:14px; background:#fff1d8; color:#805c24; text-transform:uppercase; letter-spacing:.08em; font-size:7px; font-weight:800; }
.status-done .request-status { background:#e3f2e8; color:#286742; }
.contact-chip { display:inline-grid; gap:3px; margin-top:17px; padding:10px 13px; background:#f4f2ec; }
.contact-chips { display:flex; flex-wrap:wrap; gap:9px; }
.contact-chip small { color:var(--muted); text-transform:uppercase; letter-spacing:.1em; font-size:7px; }
.contact-chip strong { font-size:11px; }
.contact-chip a { color:#76551f; text-decoration:underline; text-underline-offset:2px; }
.mail-state { margin-top:18px; padding:10px 12px; background:#efeee9; color:#5d635f; font-size:10px; line-height:1.5; }
.mail-state.state-sent { background:#e8f4ec; color:#2b6842; }
.mail-state.state-failed { background:#f9e8e7; color:#8c3737; }
.mail-state.state-pending { background:#edf1f5; color:#415f77; }
.mail-state.state-disabled,.mail-state.state-unavailable { background:#f1f0ec; color:#6c716e; }
.completion-info { color:#397451; font-size:9px; margin:12px 0 0; }
.inbox-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:20px; padding-top:16px; border-top:1px solid #ece9e2; }
.complete-button,.reopen-button { min-height:38px; padding:0 15px; border:0; text-transform:uppercase; letter-spacing:.08em; font-size:8px; font-weight:800; }
.complete-button { background:#3f8759; color:white; }
.complete-button:hover { background:#327047; }
.reopen-button { background:#fff0d6; color:#795721; }
.email-toggle-panel,.test-mail-panel { display:flex; justify-content:space-between; align-items:center; gap:25px; }
.email-toggle-panel h2,.test-mail-panel h2 { margin:0; font:400 23px Georgia,serif; }
.email-toggle-panel p,.test-mail-panel p { margin:7px 0 0; color:var(--muted); font-size:11px; }
.test-mail-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; }
.admin-panel code { padding:2px 5px; background:#efede7; color:#685128; font-size:10px; }
.check-line { display:flex!important; grid-template-columns:auto 1fr!important; align-items:center; justify-content:start; gap:9px!important; }
.check-line input { width:auto; }
.maintenance-banner { display:flex; align-items:center; justify-content:space-between; gap:24px; margin:-8px 0 24px; padding:18px 22px; color:white; background:var(--pine); border-left:4px solid var(--gold); }
.maintenance-banner>div { display:flex; align-items:center; gap:14px; }
.maintenance-banner strong { display:block; font:400 17px Georgia,serif; }
.maintenance-banner p { margin:4px 0 0; color:#b8c5be; font-size:10px; line-height:1.5; }
.maintenance-banner a { color:var(--gold); white-space:nowrap; font-size:10px; font-weight:800; }
.maintenance-pulse { width:11px; height:11px; border-radius:50%; background:var(--gold); box-shadow:0 0 0 6px rgba(214,168,92,.13); flex:0 0 auto; }
.maintenance-state { align-self:center; padding:8px 13px; border-radius:20px; text-transform:uppercase; letter-spacing:.1em; font-size:8px; font-weight:800; }
.maintenance-state.active { background:#fff0d4; color:#7e5920; }
.maintenance-state.inactive { background:#e5f1e9; color:#2f7048; }
.maintenance-toggle-panel { display:flex; align-items:center; justify-content:space-between; gap:28px; }
.maintenance-toggle-panel h2 { margin:0; font:400 23px Georgia,serif; }
.maintenance-toggle-panel p { max-width:670px; margin:7px 0 0; color:var(--muted); font-size:11px; line-height:1.6; }
.maintenance-switch { grid-template-columns:auto auto!important; white-space:nowrap; }
.maintenance-switch b { font-size:10px; }
.maintenance-note { margin:22px 0 0; padding:14px 16px; color:#665d4f; background:var(--gold-soft); border-left:3px solid var(--gold); font-size:10px; line-height:1.6; }

@media (max-width:900px) {
  .admin-sidebar { transform:translateX(-100%); transition:.2s; }
  body.sidebar-open .admin-sidebar { transform:translateX(0); }
  .admin-main { margin-left:0; }
  .admin-topbar { justify-content:space-between; padding:0 22px; }
  .sidebar-toggle { display:block; background:none; border:0; font-size:20px; }
  .stat-grid,.editor-list,.project-editor-grid,.user-list,.traffic-detail-grid { grid-template-columns:1fr; }
  .traffic-metrics { grid-template-columns:1fr 1fr; }
}
@media (max-width:620px) {
  .admin-content { padding:30px 16px 70px; }
  .page-heading { align-items:flex-start; flex-direction:column; }
  .form-grid.two,.form-grid.three { grid-template-columns:1fr; }
  .span-two { grid-column:auto; }
  .message-row { grid-template-columns:1fr; gap:8px; }
  .admin-panel { padding:20px; }
  .project-preview { margin:-20px -20px 20px; }
  .login-card { padding:32px 24px; }
  .role-help { grid-template-columns:1fr; }
  .password-reset form { grid-template-columns:1fr; }
  .email-toggle-panel,.test-mail-panel,.maintenance-toggle-panel,.maintenance-banner { align-items:flex-start; flex-direction:column; }
  .traffic-metrics { grid-template-columns:1fr; }
  .traffic-chart { gap:2px; }
  .chart-day small { font-size:6px; transform:rotate(-45deg); transform-origin:center; }
  .section-title { align-items:flex-start; flex-direction:column; }
}
