@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap');
:root{--accent:#1B5FD9;--bg:#f3f4f6;--card:#fff;--ink:#121212;--muted:#737373;--line:#e2e2e2;--side:#111;--radius:18px}*{box-sizing:border-box}body{margin:0;font-family:Montserrat,Arial,sans-serif;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer}.admin-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:var(--side);color:#fff;padding:24px 16px;position:sticky;top:0;height:100vh;overflow:auto}.side-logo{background:#fff;border-radius:14px;padding:18px 16px;margin-bottom:24px;min-height:72px;display:flex;align-items:center;justify-content:center}.side-logo img{width:100%;height:auto;display:block}.side-group{font-size:9px;letter-spacing:.18em;color:#777;margin:22px 12px 8px;font-weight:800}.nav-btn{width:100%;border:0;background:transparent;color:#bbb;padding:12px 14px;border-radius:12px;text-align:left;font-size:13px;font-weight:600;display:flex;justify-content:space-between}.nav-btn:hover,.nav-btn.active{background:#252525;color:#fff}.admin-main{padding:26px 30px 60px;min-width:0}.admin-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.admin-top h1{font-size:28px;margin:0}.top-actions{display:flex;gap:10px}.btn{border:1px solid var(--line);background:#fff;border-radius:999px;padding:11px 16px;font-weight:700;font-size:12px}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.dark{background:#111;color:#fff;border-color:#111}.btn.danger{color:#b91c1c}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px}.stat b{font-size:28px;display:block}.stat span{font-size:11px;color:var(--muted)}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);margin-top:16px;overflow:hidden}.panel-head{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.panel-head h2{font-size:17px;margin:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th,td{text-align:left;padding:13px 14px;border-bottom:1px solid #eee;vertical-align:middle}th{font-size:10px;color:#777;text-transform:uppercase;letter-spacing:.05em;background:#fafafa}.tag{display:inline-flex;padding:6px 9px;border-radius:999px;background:#f0f0f0;font-size:10px;font-weight:700}.tag.good{background:#e9f8ee;color:#15803d}.tag.warn{background:#fff3db;color:#a16207}.tag.blue{background:#eef3ff;color:#1B5FD9}.row-actions{display:flex;gap:6px}.icon-btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 9px;font-size:11px}.section{display:none}.section.active{display:block}.section-intro{color:#777;font-size:13px;margin-top:-14px;margin-bottom:20px}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;z-index:100;padding:20px}.modal-backdrop.open{display:flex}.modal{background:#fff;width:min(780px,100%);max-height:90vh;overflow:auto;border-radius:22px;padding:24px}.modal h2{margin-top:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:11px;font-weight:700}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}.field textarea{min-height:92px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.mini-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px}.mini-card h3{font-size:15px;margin:0 0 8px}.mini-card p{font-size:11px;line-height:1.5;color:#777}.inline-edit{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;padding:20px}.preview-swatch{height:54px;border-radius:12px;border:1px solid var(--line)}.empty{padding:38px;text-align:center;color:#999}.help{background:#eef3ff;border:1px solid #dbe5ff;border-radius:14px;padding:14px;font-size:12px;line-height:1.5;margin-bottom:14px}.admin-footer{font-size:10px;color:#999;margin-top:24px}
@media(max-width:1000px){.admin-shell{grid-template-columns:82px 1fr}.sidebar{padding:18px 10px}.side-logo{padding:8px}.side-group{display:none}.nav-btn{font-size:0;text-align:center;padding:13px 8px}.nav-btn:before{content:attr(data-short);font-size:11px}.stats{grid-template-columns:repeat(2,1fr)}.cards{grid-template-columns:1fr 1fr}.admin-main{padding:20px}}
@media(max-width:650px){.admin-shell{display:block}.sidebar{position:static;height:auto;display:flex;gap:6px;overflow:auto;padding:10px}.side-logo{display:none}.nav-btn{width:auto;white-space:nowrap;font-size:11px;padding:9px 12px}.nav-btn:before{display:none}.admin-main{padding:16px 12px}.stats{grid-template-columns:1fr 1fr}.cards{grid-template-columns:1fr}.form-grid,.inline-edit{grid-template-columns:1fr}.field.full{grid-column:auto}.admin-top{align-items:flex-start;gap:12px}.admin-top h1{font-size:22px}}


/* INTERNET SHOP ORDERS · admin v0.9 */
.tag.bad{background:#fdeaea;color:#b42318}
.order-admin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 14px}
.order-admin-filters{display:flex;gap:7px;flex-wrap:wrap}
.order-filter.active{background:#111;color:#fff;border-color:#111}
.order-admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.order-admin-stats>div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px}
.order-admin-stats b{display:block;font-size:21px;letter-spacing:-.03em}
.order-admin-stats span{display:block;font-size:9px;color:#888;margin-top:5px}
.order-admin-updated{font-size:9px;color:#999}
.orders-table td:first-child b{white-space:nowrap}
.orders-table small{font-size:9px;color:#888}
.order-modal{width:min(900px,100%)}
.order-modal-kicker{font-size:8px;letter-spacing:.14em;font-weight:800;color:var(--accent);margin-bottom:6px}
.order-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.order-detail-card{border:1px solid var(--line);border-radius:15px;padding:15px}
.order-detail-card>span,.order-detail-heading>span,.order-comment-box>span{font-size:8px;letter-spacing:.12em;color:#888;font-weight:800}
.order-detail-card>div{display:flex;flex-direction:column;gap:5px;margin-top:9px}
.order-detail-card b{font-size:12px}
.order-detail-card a,.order-detail-card p,.order-detail-card small{font-size:10px;color:#666;margin:0}
.order-detail-products{margin-top:12px;border:1px solid var(--line);border-radius:15px;padding:15px}
.order-detail-heading{display:flex;justify-content:space-between;align-items:end;padding-bottom:10px;border-bottom:1px solid #eee}
.order-detail-heading b{font-size:18px}
.order-detail-item{display:grid;grid-template-columns:1fr auto 100px;gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid #eee}
.order-detail-item:last-child{border-bottom:0}
.order-detail-item>div{display:flex;flex-direction:column;gap:3px}
.order-detail-item small{font-size:8px;color:#888}
.order-detail-item b{font-size:10px}
.order-detail-item>span{font-size:9px;color:#666}
.order-detail-item>strong{font-size:10px;text-align:right}
.order-status-editor{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.order-status-editor label{display:flex;flex-direction:column;gap:6px}
.order-status-editor label>span{font-size:9px;font-weight:700}
.order-status-editor select{height:43px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:0 11px}
.order-comment-box{margin-top:12px;border-radius:14px;background:#f3f5fa;padding:13px}
.order-comment-box p{font-size:10px;line-height:1.55;margin:6px 0 0}
#orderNavCount{min-width:22px;height:22px;padding:0 5px;border-radius:999px;background:#1B5FD9;color:#fff;display:grid;place-items:center;font-size:9px}
@media(max-width:800px){
  .order-admin-stats{grid-template-columns:1fr 1fr}
  .order-detail-grid,.order-status-editor{grid-template-columns:1fr}
  .order-detail-item{grid-template-columns:1fr auto}
  .order-detail-item>strong{grid-column:2;grid-row:2}
}


/* CRM SEGMENTATION + ANALYTICS v1.0 */
.segmented-admin-row{
  display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:14px
}
.segmented-admin-group{
  display:flex;align-items:center;gap:7px;flex-wrap:wrap
}
.segmented-admin-group>span{
  font-size:8px;letter-spacing:.13em;color:#888;font-weight:800;margin-right:3px
}
.order-audience-filter.active,.order-status-filter.active,.user-filter.active{
  background:#111;color:#fff;border-color:#111
}
.audience-tag{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:24px;padding:0 8px;border-radius:999px;
  font-size:8px;font-weight:800;letter-spacing:.04em
}
.audience-tag.retail{background:#eef1f4;color:#4d5662}
.audience-tag.pro{background:#eaf0ff;color:#2757ad}
.users-server-table small{font-size:8px;color:#888}
.users-toolbar{justify-content:space-between}

.analytics-segments{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px
}
.analytics-segment{
  border-radius:20px;padding:22px;border:1px solid var(--line);background:#fff
}
.analytics-segment.pro{
  background:#111;color:#fff;border-color:#111
}
.analytics-segment-head{
  display:flex;justify-content:space-between;align-items:center;margin-bottom:20px
}
.analytics-segment-head span{
  font-size:8px;letter-spacing:.15em;font-weight:800;color:#7d9fe9
}
.analytics-segment-head b{font-size:18px;letter-spacing:-.025em}
.analytics-metrics{
  display:grid;grid-template-columns:1fr 1fr;gap:8px
}
.analytics-metrics>div{
  min-height:92px;border-radius:14px;padding:13px;
  border:1px solid #e2e2dd;display:flex;flex-direction:column;justify-content:space-between
}
.analytics-segment.pro .analytics-metrics>div{border-color:#303030;background:#171717}
.analytics-metrics b{font-size:19px;letter-spacing:-.035em}
.analytics-metrics span{font-size:8px;color:#888}
.analytics-city-panel{margin-top:0}
.order-modal .tag.blue{background:#eaf0ff;color:#2757ad}

@media(max-width:900px){
  .analytics-segments{grid-template-columns:1fr}
}


/* RBAC + TERRITORIES v1.1 */
.admin-auth{position:fixed;inset:0;z-index:999;background:#0d0d0d;display:grid;place-items:center;padding:24px}
.admin-auth.hidden{display:none}
.admin-auth-card{width:min(440px,100%);background:#fff;border-radius:24px;padding:34px;box-shadow:0 30px 90px rgba(0,0,0,.35)}
.admin-auth-card img{width:145px;margin-bottom:30px}.admin-auth-kicker{font-size:8px;letter-spacing:.16em;color:#1B5FD9;font-weight:800;margin:0 0 8px}
.admin-auth-card h1{font-size:32px;letter-spacing:-.045em;font-weight:500;margin:0 0 8px}.admin-auth-card>p:not(.admin-auth-kicker){font-size:10px;line-height:1.6;color:#777;margin:0 0 20px}
.admin-auth-card form{display:grid;gap:12px}.admin-auth-card .btn{height:46px;margin-top:4px}.admin-current-user{display:flex;flex-direction:column;align-items:flex-end;gap:2px;margin-right:4px}.admin-current-user b{font-size:9px}.admin-current-user span{font-size:8px;color:#888}
.manager-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.access-role-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:12px}.access-role-cards>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px;min-height:90px}.access-role-cards b{display:block;font-size:10px;margin-bottom:6px}.access-role-cards span{font-size:8px;line-height:1.5;color:#777}.tag.blue{background:#eaf0ff;color:#2757ad}
@media(max-width:1000px){.access-role-cards{grid-template-columns:1fr 1fr}.manager-admin-grid{grid-template-columns:1fr}}
@media(max-width:650px){.access-role-cards{grid-template-columns:1fr}.admin-current-user{display:none}}


/* DIRECTOR / EXECUTIVE READ-ONLY MODE */
.admin-readonly-badge{min-height:28px;padding:0 10px;border-radius:999px;background:#eef3ff;color:#1B5FD9;border:1px solid #d9e4ff;display:flex;align-items:center;font-size:8px;letter-spacing:.08em;font-weight:800;white-space:nowrap}
body.admin-readonly #newProduct,
body.admin-readonly #addCategory,
body.admin-readonly [data-add-kind],
body.admin-readonly [data-edit-product],
body.admin-readonly [data-delete-product],
body.admin-readonly [data-generic-edit],
body.admin-readonly [data-generic-delete],
body.admin-readonly [data-lead-done],
body.admin-readonly [data-server-approve],
body.admin-readonly #managerCreateForm,
body.admin-readonly #territoryForm,
body.admin-readonly #saveOrderStatus,
body.admin-readonly #homeForm .btn.primary,
body.admin-readonly #designForm .btn.primary,
body.admin-readonly #resetDemo{display:none!important}
body.admin-readonly #homeForm input,
body.admin-readonly #homeForm textarea,
body.admin-readonly #homeForm select,
body.admin-readonly #designForm input,
body.admin-readonly #designForm textarea,
body.admin-readonly #designForm select,
body.admin-readonly #orderStatusSelect,
body.admin-readonly #orderPaymentSelect{pointer-events:none!important;background:#f5f5f2!important;color:#777!important}
body.admin-readonly .row-actions{display:none!important}
body.admin-executive-view .section-intro:first-child:before{content:'Режим руководителя: данные доступны для просмотра, изменения отключены. ';color:#1B5FD9;font-weight:800}
@media(max-width:900px){.admin-readonly-badge{display:none!important}}


/* =========================================================
   ADMIN LAYOUT FIX · managers / territories · v1.1.2
   Fixes panel content touching borders and restores spacing.
   ========================================================= */

/* Main administration canvas */
.admin-main{
  padding:28px 34px 64px;
}
.admin-top{
  min-height:58px;
  gap:18px;
}
.admin-top > div:first-child{
  min-width:0;
}
.admin-top h1{
  line-height:1.05;
  letter-spacing:-.035em;
}
.top-actions{
  align-items:center;
  flex-wrap:wrap;
  justify-content:flex-end;
}

/* Sidebar: cleaner scrollbar and stable width */
.sidebar{
  scrollbar-width:thin;
  scrollbar-color:#444 #111;
}
.sidebar::-webkit-scrollbar{width:7px}
.sidebar::-webkit-scrollbar-track{background:#111}
.sidebar::-webkit-scrollbar-thumb{
  background:#3a3a3a;
  border-radius:999px;
}

/* Managers page */
.manager-admin-grid{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:14px;
  align-items:stretch;
  margin-bottom:14px;
}
.manager-admin-grid > .panel{
  margin-top:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.manager-admin-grid > .panel .panel-head{
  min-height:66px;
  padding:20px 22px;
  flex:0 0 auto;
}
.manager-admin-grid > .panel .panel-head h2{
  font-size:18px;
  letter-spacing:-.02em;
}

/* This was the broken part: form content had no panel padding */
.manager-admin-grid > .panel .form-grid{
  padding:18px 22px 8px;
  gap:14px 16px;
  flex:1;
}
.manager-admin-grid > .panel .modal-actions{
  margin-top:0;
  padding:12px 22px 20px;
}
.manager-admin-grid > .panel .field{
  min-width:0;
  gap:7px;
}
.manager-admin-grid > .panel .field label{
  font-size:10px;
  line-height:1.2;
}
.manager-admin-grid > .panel .field input,
.manager-admin-grid > .panel .field select{
  width:100%;
  min-width:0;
  height:48px;
  padding:0 14px;
  border-radius:13px;
  background:#fff;
}
.manager-admin-grid > .panel .field input:focus,
.manager-admin-grid > .panel .field select:focus{
  border-color:#8faeea;
  outline:none;
  box-shadow:0 0 0 3px rgba(27,95,217,.06);
}
.manager-admin-grid > .panel .modal-actions .btn{
  min-height:44px;
  padding-inline:20px;
}

/* Tables under manager forms */
#sec-managers > .panel{
  margin-top:14px;
}
#sec-managers > .panel .panel-head{
  min-height:64px;
  padding:18px 22px;
}
#sec-managers .table-wrap{
  width:100%;
}
#sec-managers table{
  table-layout:auto;
}
#sec-managers th,
#sec-managers td{
  padding:14px 16px;
}

/* Access cards: there are now 6 roles, keep them balanced */
.access-role-cards{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.access-role-cards>div{
  min-height:104px;
  padding:15px;
}

/* Access form is also a normal panel, so give it proper inner padding */
#accessCreateForm .form-grid{
  padding:18px 20px 6px;
}
#accessCreateForm .modal-actions{
  margin-top:0;
  padding:12px 20px 20px;
}

/* Prevent wide content from pushing panels out */
.section,
.panel,
.manager-admin-grid,
.manager-admin-grid > *{
  min-width:0;
}

/* Large laptop */
@media(max-width:1250px){
  .admin-main{padding:24px 26px 58px}
  .manager-admin-grid > .panel .form-grid{
    grid-template-columns:1fr;
  }
  .manager-admin-grid > .panel .field.full{
    grid-column:auto;
  }
}

/* Tablet */
@media(max-width:1000px){
  .admin-main{padding:20px}
  .manager-admin-grid{
    grid-template-columns:1fr;
  }
  .manager-admin-grid > .panel .form-grid{
    grid-template-columns:1fr 1fr;
  }
  .access-role-cards{
    grid-template-columns:1fr 1fr;
  }
}

/* Mobile */
@media(max-width:650px){
  .admin-main{padding:16px 12px 44px}
  .manager-admin-grid > .panel .form-grid{
    grid-template-columns:1fr;
    padding:16px 16px 6px;
  }
  .manager-admin-grid > .panel .modal-actions{
    padding:10px 16px 16px;
  }
  .manager-admin-grid > .panel .panel-head{
    padding:17px 16px;
  }
  .access-role-cards{
    grid-template-columns:1fr;
  }
}
