/* ==========================================================================
   Admin panel styles
   ========================================================================== */
:root{
  --a-primary:#2952e3;--a-primary-dark:#1d3fc4;--a-primary-soft:#eaf0ff;
  --a-ink:#101828;--a-soft:#475467;--a-faint:#98a2b3;
  --a-bg:#f4f6fb;--a-surface:#fff;--a-border:#e4e7ec;
  --a-side:#0f1a3c;--a-side-ink:#b9c2e3;--a-side-active:#1c2b5e;
  --a-ok:#1a8f5e;--a-ok-bg:#e7f7ef;--a-warn:#b25e09;--a-warn-bg:#fdf1e0;--a-bad:#c0293c;--a-bad-bg:#fbe8ea;
  --a-radius:10px;--a-shadow:0 1px 2px rgba(16,24,40,.06),0 4px 14px rgba(16,24,40,.05);
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{font-family:'Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;background:var(--a-bg);color:var(--a-ink);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--a-primary);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{margin:0 0 8px;line-height:1.25}
p{margin:0 0 10px}
button{font-family:inherit;cursor:pointer}
img{max-width:100%}

/* ---------- Shell ---------- */
.a-shell{display:flex;min-height:100vh}
.a-side{width:250px;background:var(--a-side);color:var(--a-side-ink);position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;z-index:60;overflow-y:auto;transition:transform .2s}
.a-brand{display:flex;align-items:center;gap:10px;padding:18px 18px 14px;color:#fff;font-weight:700;font-size:15px}
.a-brand img{width:34px;height:34px;object-fit:contain;background:#fff;border-radius:8px;padding:3px}
.a-brand small{display:block;font-weight:400;color:var(--a-side-ink);font-size:11px}
.a-nav{padding:6px 10px 20px;flex:1}
.a-nav h6{margin:16px 10px 6px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#6f7bab;font-weight:700}
.a-nav a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;color:var(--a-side-ink);font-weight:500;text-decoration:none;margin-bottom:2px}
.a-nav a:hover{background:rgba(255,255,255,.06);color:#fff}
.a-nav a.on{background:var(--a-side-active);color:#fff}
.a-nav .pill{margin-left:auto;background:#e0357e;color:#fff;border-radius:999px;font-size:11px;padding:1px 8px;font-weight:700}
.a-main{margin-left:250px;flex:1;min-width:0;display:flex;flex-direction:column}
.a-top{height:60px;background:var(--a-surface);border-bottom:1px solid var(--a-border);display:flex;align-items:center;gap:14px;padding:0 24px;position:sticky;top:0;z-index:50}
.a-top .spacer{flex:1}
.a-top .who{color:var(--a-soft);font-size:13px}
.a-burger{display:none;background:none;border:1px solid var(--a-border);border-radius:8px;width:38px;height:38px;font-size:18px}
.a-content{padding:24px;max-width:1240px;width:100%}
.a-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.a-page-head h1{font-size:22px;margin:0}
.a-page-head p{color:var(--a-soft);margin:2px 0 0}
.a-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:8px;border:1px solid transparent;font-size:14px;font-weight:600;line-height:1.2;text-decoration:none!important;transition:.12s}
.btn-primary{background:var(--a-primary);color:#fff}
.btn-primary:hover{background:var(--a-primary-dark)}
.btn-light{background:#fff;border-color:var(--a-border);color:var(--a-ink)}
.btn-light:hover{border-color:var(--a-primary);color:var(--a-primary)}
.btn-danger{background:#fff;border-color:#f3c1c7;color:var(--a-bad)}
.btn-danger:hover{background:var(--a-bad);color:#fff}
.btn-sm{padding:5px 10px;font-size:12.5px}
.btn-icon{padding:5px 8px;min-width:30px}

/* ---------- Cards, tables ---------- */
.card{background:var(--a-surface);border:1px solid var(--a-border);border-radius:var(--a-radius);box-shadow:var(--a-shadow);margin-bottom:18px}
.card-head{padding:14px 18px;border-bottom:1px solid var(--a-border);display:flex;align-items:center;justify-content:space-between;gap:10px}
.card-head h2,.card-head h3{margin:0;font-size:15px}
.card-body{padding:18px}
.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;margin-bottom:18px}
.stat{background:var(--a-surface);border:1px solid var(--a-border);border-radius:var(--a-radius);padding:16px;box-shadow:var(--a-shadow);color:inherit;text-decoration:none!important;display:block}
.stat:hover{border-color:var(--a-primary)}
.stat b{display:block;font-size:26px}
.stat span{color:var(--a-soft);font-size:13px}
.table-wrap{overflow-x:auto}
table.t{width:100%;border-collapse:collapse}
.t th{text-align:left;padding:10px 14px;background:#f8f9fc;color:var(--a-soft);font-size:12px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--a-border);white-space:nowrap}
.t td{padding:10px 14px;border-bottom:1px solid var(--a-border);vertical-align:middle}
.t tr:last-child td{border-bottom:none}
.t tbody tr:hover{background:#fafbff}
.t .thumb{width:56px;height:40px;object-fit:cover;border-radius:6px;border:1px solid var(--a-border);background:#eef1f7}
.t .num{text-align:right;white-space:nowrap}
.t .row-actions{display:flex;gap:6px;justify-content:flex-end}
.t .grip{cursor:grab;color:var(--a-faint);user-select:none;width:24px}
.t tr.dragging{opacity:.4}
.muted{color:var(--a-soft)}
.empty{padding:36px;text-align:center;color:var(--a-soft)}
.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;background:#eef1f7;color:var(--a-soft)}
.badge.ok,.badge.contacted{background:var(--a-ok-bg);color:var(--a-ok)}
.badge.new{background:var(--a-primary-soft);color:var(--a-primary)}
.badge.warn{background:var(--a-warn-bg);color:var(--a-warn)}
.badge.closed{background:#eef1f7;color:var(--a-soft)}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--a-border);align-items:center}
.toolbar .input{width:auto;min-width:180px}

/* switch */
.switch{width:38px;height:22px;border-radius:999px;background:#d0d5dd;border:none;position:relative;padding:0;transition:.15s;vertical-align:middle}
.switch::after{content:'';position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:.15s;box-shadow:0 1px 2px rgba(0,0,0,.25)}
.switch.on{background:var(--a-ok)}
.switch.on::after{left:19px}

/* ---------- Alerts ---------- */
.alert{padding:11px 16px;border-radius:9px;margin-bottom:16px;font-weight:500;transition:opacity .4s}
.alert-ok{background:var(--a-ok-bg);color:var(--a-ok)}
.alert-bad{background:var(--a-bad-bg);color:var(--a-bad)}
.alert ul{margin:6px 0 0;padding-left:20px}

/* ---------- Forms ---------- */
.field-grid{display:flex;flex-wrap:wrap;gap:16px}
.field{flex:1 1 calc(var(--w,100) * 1% - 16px);min-width:220px}
.field[style*="--w:100"]{flex-basis:100%}
.field-label{display:block;font-weight:600;font-size:13px;margin-bottom:5px}
.field-label i{color:var(--a-bad);font-style:normal}
.input{width:100%;padding:9px 12px;border:1px solid #cfd4dc;border-radius:8px;font:inherit;background:#fff;color:var(--a-ink)}
.input:focus{outline:none;border-color:var(--a-primary);box-shadow:0 0 0 3px rgba(41,82,227,.14)}
.input[readonly],.input:disabled{background:#f2f4f7;color:var(--a-soft)}
textarea.input{resize:vertical}
input[type=color].input{padding:2px;height:38px;width:90px}
.help{font-size:12px;color:var(--a-faint);margin-top:4px}
.err{font-size:12.5px;color:var(--a-bad);margin-top:4px}
.has-error .input{border-color:var(--a-bad)}
.check{display:inline-flex;align-items:center;gap:8px;font-weight:600;cursor:pointer;padding-top:2px}
.check input{width:16px;height:16px}
.form-actions{display:flex;gap:10px;align-items:center;padding-top:6px;flex-wrap:wrap}
.form-actions.sticky{position:sticky;bottom:0;background:linear-gradient(0deg,var(--a-bg) 70%,transparent);padding:14px 0;z-index:20}

/* image field */
.img-field{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.img-preview{width:110px;height:76px;border:1px dashed #b8bfcc;border-radius:8px;background:#f8f9fc center/cover no-repeat;display:flex;align-items:center;justify-content:center;color:var(--a-faint);font-size:11px;text-align:center;overflow:hidden}
.img-preview img{width:100%;height:100%;object-fit:cover}
.img-path{font-size:12px;color:var(--a-faint);word-break:break-all;max-width:320px}

/* repeater */
.repeater{border:1px solid var(--a-border);border-radius:9px;background:#fafbfd;padding:10px}
.repeater-rows{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}
.repeater-rows:empty{display:none}
.repeater-row{background:#fff;border:1px solid var(--a-border);border-radius:8px;padding:12px;position:relative}
.row-tools{display:flex;gap:4px;justify-content:flex-end;margin-bottom:8px}
.row-tools .btn{padding:2px 8px;font-size:12px}
.repeater .repeater{background:#f6f8fc}

/* section builder */
.section-card{background:#fff;border:1px solid var(--a-border);border-radius:var(--a-radius);margin-bottom:12px;box-shadow:var(--a-shadow)}
.section-head{display:flex;align-items:center;gap:10px;padding:11px 14px;cursor:pointer;flex-wrap:wrap}
.section-head .title{font-weight:700}
.section-head .sub{color:var(--a-soft);font-size:12.5px;flex:1;min-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.section-head .tools{display:flex;gap:4px;align-items:center}
.section-body{padding:16px;border-top:1px solid var(--a-border)}
.section-card.collapsed .section-body{display:none}
.section-card.hidden-section{opacity:.65}
.add-section{display:flex;gap:10px;flex-wrap:wrap;align-items:center;background:var(--a-primary-soft);border:1px dashed #a9bcf5;border-radius:var(--a-radius);padding:14px}
.add-section select{max-width:340px}
.section-tip{font-size:12.5px;color:var(--a-soft)}

/* tabs */
.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--a-border);margin-bottom:18px}
.tabs button{background:none;border:none;padding:10px 16px;font-weight:600;color:var(--a-soft);border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs button.on{color:var(--a-primary);border-color:var(--a-primary)}
.tab-pane{display:none}
.tab-pane.on{display:block}

/* media library + modal */
.modal-back{position:fixed;inset:0;background:rgba(15,23,42,.6);z-index:200;display:none;align-items:center;justify-content:center;padding:20px}
.modal-back.open{display:flex}
.modal{background:#fff;border-radius:14px;width:100%;max-width:880px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 24px 70px rgba(0,0,0,.3)}
.modal-head{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--a-border)}
.modal-head h3{margin:0;flex:1}
.modal-body{padding:16px 18px;overflow-y:auto;flex:1}
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px}
.media-item{border:2px solid transparent;border-radius:9px;background:#f4f6fb;overflow:hidden;cursor:pointer;position:relative;padding:0;text-align:left}
.media-item:hover{border-color:var(--a-primary)}
.media-item img,.media-item .doc{width:100%;height:96px;object-fit:cover;display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--a-soft);background:#e9edf5}
.media-item span{display:block;font-size:11px;padding:5px 7px;color:var(--a-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.media-item .del{position:absolute;top:4px;right:4px;background:rgba(192,41,60,.92);color:#fff;border:none;border-radius:6px;width:22px;height:22px;line-height:1;font-size:14px;display:none}
.media-item:hover .del{display:block}
.dropzone{border:2px dashed #b8bfcc;border-radius:10px;padding:16px;text-align:center;color:var(--a-soft);margin-bottom:14px;background:#fafbfd}
.dropzone.over{border-color:var(--a-primary);background:var(--a-primary-soft)}

/* rich text (Quill) */
.ql-toolbar.ql-snow{border-color:#cfd4dc!important;border-radius:8px 8px 0 0;background:#f8f9fc}
.ql-container.ql-snow{border-color:#cfd4dc!important;border-radius:0 0 8px 8px;font-family:inherit;font-size:14px;background:#fff}
.ql-editor{min-height:150px;max-height:420px;overflow-y:auto}

/* pagination */
.pager{display:flex;gap:4px;padding:14px 18px;flex-wrap:wrap;justify-content:center;border-top:1px solid var(--a-border)}
.pager a,.pager span{padding:5px 11px;border:1px solid var(--a-border);border-radius:7px;color:var(--a-ink);font-size:13px;text-decoration:none}
.pager .on{background:var(--a-primary);color:#fff;border-color:var(--a-primary)}
.pager .off{color:var(--a-faint)}

/* login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,#0f1a3c,#1d3fc4)}
.login-card{background:#fff;border-radius:16px;padding:32px;width:100%;max-width:400px;box-shadow:0 24px 70px rgba(0,0,0,.35)}
.login-card h1{font-size:22px}
.login-logo{width:56px;height:56px;object-fit:contain;margin-bottom:12px}

.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.detail{display:grid;grid-template-columns:130px 1fr;gap:6px 14px;font-size:13.5px}
.detail dt{color:var(--a-soft)}
.detail dd{margin:0;word-break:break-word}

@media (max-width:900px){
  .a-side{transform:translateX(-100%)}
  .a-side.open{transform:none;box-shadow:0 0 40px rgba(0,0,0,.4)}
  .a-main{margin-left:0}
  .a-burger{display:inline-flex;align-items:center;justify-content:center}
  .a-content{padding:16px}
  .two{grid-template-columns:1fr}
  .field{min-width:100%}
}
