:root{
  --bg:#f5f7fb;--card:#fff;--text:#101828;--muted:#667085;--line:#e4e7ec;
  --primary:#5b4bc4;--primary2:#7c6ee6;--primary-soft:#f0eeff;--danger:#b42318;
  --success:#067647;--success-soft:#ecfdf3;--warning:#b54708;--shadow:0 10px 32px rgba(16,24,40,.07)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit}.shell{max-width:1420px;margin:0 auto;padding:22px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.brand{display:flex;align-items:center;gap:12px}.logo{width:48px;height:48px;border-radius:15px;background:linear-gradient(135deg,var(--primary),#8b5cf6);display:grid;place-items:center;color:#fff;font-weight:950;letter-spacing:.02em;box-shadow:var(--shadow)}.brand h1{font-size:21px;margin:0}.brand small{display:block;color:var(--muted);margin-top:3px}.nav{display:flex;gap:7px;flex-wrap:wrap}.nav a{color:#344054;text-decoration:none;padding:9px 13px;border-radius:10px;font-weight:800;font-size:13px}.nav a.active,.nav a:hover{background:var(--primary-soft);color:var(--primary)}
.layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(350px,.72fr);gap:18px;align-items:start}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:var(--shadow)}.card h2{font-size:18px;margin:0 0 14px}.card h3{font-size:15px;margin:0}.section{padding-top:18px;margin-top:18px;border-top:1px solid var(--line)}.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.step{display:flex;align-items:center;gap:9px}.step-num{width:27px;height:27px;border-radius:9px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;font-weight:900;font-size:12px}.muted{color:var(--muted)}.note{font-size:12px;color:var(--muted);line-height:1.5}.hint{font-size:12px;color:var(--muted);margin-top:6px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label,label.field-label{font-size:12px;font-weight:800;color:#475467}.input,select,textarea{width:100%;border:1px solid #d0d5dd;background:#fff;border-radius:11px;padding:10px 11px;outline:none;color:#101828}.input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(91,75,196,.12)}textarea{min-height:82px;resize:vertical}.details{margin-top:12px;border:1px solid var(--line);border-radius:12px;background:#fcfcfd}.details summary{cursor:pointer;padding:11px 12px;font-weight:800;font-size:13px}.details-body{padding:0 12px 12px}
.system-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.system-card{border:1px solid var(--line);border-radius:13px;padding:12px;background:#fff;cursor:pointer;text-align:left;transition:.15s}.system-card:hover{border-color:#b9b2f2;transform:translateY(-1px)}.system-card.active{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 2px rgba(91,75,196,.08)}.system-card b{display:block;font-size:14px}.system-card small{display:block;color:var(--muted);font-size:11px;margin-top:4px;line-height:1.35}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mode-btn{border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px 12px;font-weight:850;cursor:pointer;text-align:left}.mode-btn span{display:block;font-size:11px;color:var(--muted);font-weight:600;margin-top:3px}.mode-btn.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}
.eq-list{display:grid;gap:8px}.eq-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:13px;padding:11px;background:#fff;transition:.15s}.eq-row.selected{border-color:#6ce9a6;background:var(--success-soft)}.eq-title{font-weight:850;font-size:13px}.eq-desc{font-size:11px;color:var(--muted);margin-top:3px}.price{font-size:12px;color:var(--primary);font-weight:850;margin-top:4px}.qtybox{display:flex;align-items:center;gap:5px}.qtybox button{width:30px;height:30px;border:1px solid var(--line);background:#fff;border-radius:8px;cursor:pointer;font-weight:900}.qty{width:58px;text-align:center;padding:7px;border:1px solid #d0d5dd;border-radius:8px}.line-sum{min-width:85px;text-align:right;font-weight:900;font-size:13px}.service-list{display:grid;gap:8px}.service-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:11px}.service-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary)}.service-row b{font-size:13px}.service-row small{display:block;color:var(--muted);margin-top:3px}.service-price{font-weight:900;color:#344054;font-size:13px}
.summary{position:sticky;top:18px}.summary .badge{margin-bottom:12px}.badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:850;background:var(--primary-soft);color:var(--primary)}.summary-line{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:13px}.summary-line span:first-child{color:#475467}.summary-line strong{text-align:right}.summary-line.total{font-size:18px;font-weight:950;border-bottom:0;padding:14px 0 4px}.summary-line.total span:first-child{color:#101828}.recurring{margin-top:12px;background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:11px}.recurring b{display:block;font-size:12px;margin-bottom:5px}.warning{font-size:12px;color:var(--warning);background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:9px 10px;margin-top:10px}.actions{display:grid;gap:8px;margin-top:15px}.actions.inline{display:flex;flex-wrap:wrap}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.btn{border:0;border-radius:11px;padding:11px 14px;font-weight:850;cursor:pointer;transition:.15s;text-align:center}.btn:hover{transform:translateY(-1px)}.btn.primary{background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff}.btn.secondary{background:#eef2ff;color:#4f46e5}.btn.ghost{background:#f2f4f7;color:#344054}.btn.success{background:#ecfdf3;color:#067647}.btn.danger{background:#fff0ee;color:var(--danger)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn.loading{opacity:.65;pointer-events:none}.saved-pill{display:none;margin-top:10px;background:#ecfdf3;color:#067647;border:1px solid #abefc6;border-radius:10px;padding:8px 10px;font-size:12px;font-weight:800}.saved-pill.show{display:block}
.toast{position:fixed;right:20px;bottom:20px;background:#101828;color:#fff;padding:12px 16px;border-radius:12px;box-shadow:var(--shadow);z-index:120;max-width:440px}.hidden{display:none!important}.empty{padding:22px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px}.archive-list{display:grid;gap:10px}.offer-row{display:grid;grid-template-columns:1.4fr 1fr 1fr auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:13px;background:#fff}.offer-title b{display:block}.offer-title small{color:var(--muted)}.offer-metric{font-size:12px;color:var(--muted)}.offer-metric b{display:block;color:#101828;font-size:13px;margin-top:2px}.row-actions{display:flex;gap:6px;flex-wrap:wrap}.mini{padding:7px 9px;border-radius:8px;border:0;cursor:pointer;font-weight:800;white-space:nowrap}.mini.save{background:#ecfdf5;color:#047857}.mini.del{background:#fef2f2;color:#b91c1c}.mini.map{background:#eef2ff;color:#4338ca}
.modal{position:fixed;inset:0;background:rgba(15,23,42,.55);display:grid;place-items:center;padding:20px;z-index:100;overflow:auto}.modal-card{background:#fff;border-radius:18px;padding:20px;max-width:920px;width:100%;box-shadow:0 24px 70px rgba(15,23,42,.25)}.preview-sheet{background:#fff;border:1px solid #e4e7ec;border-radius:12px;padding:30px;max-height:70vh;overflow:auto}.preview-head{display:flex;justify-content:space-between;gap:20px;border-bottom:3px solid #5b4bc4;padding-bottom:12px;margin-bottom:18px}.preview-company{text-align:right;font-size:12px;color:#475467}.preview-company b{display:block;color:#101828;font-size:16px}.preview-title{text-align:center;margin:18px 0}.preview-title h2{font-size:22px;margin:0 0 5px}.preview-table{width:100%;border-collapse:collapse;margin:12px 0;font-size:12px}.preview-table th,.preview-table td{border:1px solid #d0d5dd;padding:8px;text-align:left}.preview-table th{background:#f2f4f7}.preview-total{font-size:18px;font-weight:950;text-align:right;margin-top:15px}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.kpi{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fafafa}.kpi b{font-size:24px;display:block}.kpi span{font-size:12px;color:var(--muted)}.admin-layout{display:grid;grid-template-columns:230px 1fr;gap:18px}.admin-menu{display:flex;flex-direction:column;gap:7px}.admin-menu button{border:0;text-align:left;background:transparent;padding:10px;border-radius:10px;font-weight:800;cursor:pointer}.admin-menu button.active,.admin-menu button:hover{background:var(--primary-soft);color:var(--primary)}.admin-side .btn{width:100%;margin-top:10px}.table-wrap{overflow:auto}.tbl{width:100%;border-collapse:collapse;font-size:13px;min-width:780px}.tbl th,.tbl td{border-bottom:1px solid var(--line);padding:8px;vertical-align:middle;text-align:left}.tbl th{color:#475467;font-size:11px;text-transform:uppercase;letter-spacing:.03em;background:#fafafa}.tbl input,.tbl select,.tbl textarea{min-width:90px;padding:7px;border:1px solid #d0d5dd;border-radius:8px}.tbl textarea{min-height:54px}.login{max-width:420px;margin:11vh auto}.placeholder-box{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.75;word-break:break-word}.drop{border:2px dashed #c7c3f7;border-radius:14px;padding:18px;background:#fafaff}.template-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.template-card{border:1px solid var(--line);border-radius:14px;padding:14px}.template-card h3{margin-top:0}.checklist{display:grid;gap:8px;max-height:390px;overflow:auto}.checkline{display:flex;align-items:flex-start;gap:9px;padding:8px;border:1px solid var(--line);border-radius:10px}.history-kind{font-weight:800;font-size:11px;text-transform:uppercase}.status-ok{color:var(--success)}
@media(max-width:1050px){.layout,.admin-layout{grid-template-columns:1fr}.summary{position:static}.system-grid{grid-template-columns:repeat(2,1fr)}.admin-menu{flex-direction:row;overflow:auto}.admin-menu button{white-space:nowrap}.kpi-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.shell{padding:13px}.form-grid,.template-grid,.action-grid{grid-template-columns:1fr}.topbar{align-items:flex-start;flex-direction:column}.nav{width:100%}.nav a{flex:1;text-align:center}.system-grid{grid-template-columns:1fr 1fr}.eq-row{grid-template-columns:1fr auto}.line-sum{grid-column:1/-1;text-align:left}.offer-row{grid-template-columns:1fr}.mode-switch{grid-template-columns:1fr}.preview-sheet{padding:16px}}
@media print{body{background:#fff}.topbar,.no-print,.modal>.modal-card>.actions{display:none!important}.shell{padding:0}.card{box-shadow:none;border:0}.preview-sheet{border:0;max-height:none}}
.user-chip{border:0;background:#fff;color:#475467;border-radius:10px;padding:9px 12px;font-weight:800;cursor:pointer}.login-brand{margin-bottom:24px}.catalog-tools{display:grid;grid-template-columns:1.5fr 1fr;gap:8px;margin-bottom:10px}.catalog-list{display:grid;gap:7px;max-height:520px;overflow:auto;padding-right:3px}.catalog-row{display:grid;grid-template-columns:minmax(0,1fr) auto 110px;gap:12px;align-items:center;border:1px solid var(--line);border-radius:13px;padding:11px;background:#fff}.catalog-row.selected{border-color:#6ce9a6;background:var(--success-soft)}.soft-tag{font-size:10px;background:#f2f4f7;color:#475467;border-radius:999px;padding:3px 6px;margin-left:5px}.fx-line{font-size:12px;color:var(--muted);padding:8px 10px;background:#f8fafc;border:1px solid var(--line);border-radius:10px;margin-bottom:10px}.new-user{display:grid;grid-template-columns:1fr 1.3fr 1fr 160px auto;gap:8px;margin-bottom:16px}.tbl.wide{min-width:1250px}.fx-cards{display:flex;gap:7px;flex-wrap:wrap}.catalog-row .muted{font-weight:600}.nav button{white-space:nowrap}.preview-company{white-space:pre-line}
@media(max-width:800px){.catalog-tools,.new-user{grid-template-columns:1fr}.catalog-row{grid-template-columns:1fr auto}.catalog-row .line-sum{grid-column:1/-1}.user-chip{width:100%}}
.catalog-row.unpriced{background:#fffaf5;border-color:#fed7aa}.catalog-row.unpriced .price{color:#b54708}.catalog-row button:disabled,.catalog-row input:disabled{opacity:.45;cursor:not-allowed}


/* v4.1 — визуально отдельная административная зона */
body.admin-mode{background:#fff8f1}
body.admin-mode .topbar{background:#fffaf5;border-color:#fed7aa;box-shadow:0 10px 30px rgba(180,83,9,.08)}
body.admin-mode .topbar .logo{background:linear-gradient(135deg,#b54708,#e04f16)}
body.admin-mode .nav a.active{background:#fff0e5;color:#b54708}
body.admin-mode .admin-side{border-color:#fed7aa;background:#fffdfb}
body.admin-mode .admin-menu button.active,body.admin-mode .admin-menu button:hover{background:#fff0e5;color:#b54708}
body.admin-mode #admin-content{border-color:#fed7aa}
body.admin-mode .btn.primary{background:linear-gradient(135deg,#b54708,#e04f16)}
.admin-login-shell{min-height:100vh;display:grid;place-items:center;padding-top:20px;padding-bottom:20px}
.admin-login-card{border-color:#fdba74;box-shadow:0 24px 70px rgba(154,52,18,.14);position:relative;overflow:hidden}
.admin-login-card:before{content:'';position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,#b54708,#f97316)}
.admin-login-card .logo{background:linear-gradient(135deg,#b54708,#e04f16)}
.admin-login-card .input:focus{border-color:#f97316;box-shadow:0 0 0 3px rgba(249,115,22,.12)}
.admin-lock-badge{display:inline-flex;background:#fff0e5;color:#b54708;border:1px solid #fdba74;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:900;letter-spacing:.08em;margin-bottom:14px}
.back-login{display:inline-block;margin-top:14px;color:#b54708;text-decoration:none;font-size:12px;font-weight:800}
.back-login:hover{text-decoration:underline}

/* editable Smartdev services */
.service-edit {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.service-price-input {
    width: 130px !important;
    text-align: right;
}

.custom-services {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 12px;
}

.custom-service-row {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) 80px 160px 46px;
    gap: 10px;
    align-items: center;
    padding: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #fafafa;
}

.custom-price {
    text-align: right;
}

.custom-remove {
    padding: 9px 12px !important;
}

@media (max-width: 760px) {
    .custom-service-row {
        grid-template-columns: 1fr 70px;
    }

    .custom-price {
        grid-column: 1 / 2;
    }
}
