:root{--bg:#f4f6f8;--card:#fff;--text:#111827;--muted:#6b7280;--line:#e5e7eb;--brand:#2563eb}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}.shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{background:#111827;color:#fff;padding:22px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;padding:8px}.brand-mark,.login-logo{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--brand);color:white;font-weight:900;font-size:22px}.brand span:last-child{display:flex;flex-direction:column}.brand small,.userbox small{color:#9ca3af;margin-top:2px}.sidebar nav{display:grid;gap:7px;margin-top:28px}.sidebar nav a{padding:12px 14px;border-radius:10px;color:#d1d5db}.sidebar nav a:hover,.sidebar nav a.active{background:#1f2937;color:#fff}.sidebar-foot{margin-top:auto;border-top:1px solid #374151;padding:16px 8px 0}.userbox{display:flex;flex-direction:column}.link-btn{margin-top:10px;border:0;background:none;color:#9ca3af;padding:0;cursor:pointer}.main{padding:28px;max-width:1500px;width:100%;margin:0 auto}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.topbar h1{margin:0;font-size:27px}.topbar p{margin:5px 0 0;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;background:var(--brand);color:#fff;padding:11px 16px;font-weight:700;cursor:pointer}.wide{width:100%}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.stat,.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 5px 20px rgba(17,24,39,.04)}.stat{padding:18px}.stat span{color:var(--muted);display:block;font-size:13px}.stat b{font-size:25px;display:block;margin-top:6px}.panel{padding:20px}.panel h2{margin:0 0 16px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.panel-head h2{margin:0}.panel-head a{color:var(--brand);font-weight:700}.cards-list{display:grid;gap:10px}.row-card,.company-card,.job-card{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fff}.row-card,.company-card,.job-top{display:flex;justify-content:space-between;align-items:center;gap:15px}.row-card div,.company-card>div:first-child,.job-top div{display:flex;flex-direction:column}.row-card small,.company-card small,.job-top small{color:var(--muted);margin-top:4px}.pill{display:inline-flex;padding:6px 9px;border-radius:999px;background:#eef2ff;color:#3730a3;font-size:12px;font-weight:700}.job-card form{margin-top:10px}.job-card select{width:100%}.company-metrics{display:flex;gap:12px;align-items:center;color:var(--muted);font-size:13px}.grid-2{display:grid;grid-template-columns:minmax(280px,420px) 1fr;gap:18px}.wide-left{grid-template-columns:minmax(300px,430px) 1fr}.form-stack{display:grid;gap:13px}.form-stack label{display:grid;gap:6px;font-size:13px;font-weight:700;color:#374151}input,select,textarea{width:100%;border:1px solid #d1d5db;border-radius:9px;padding:11px 12px;background:#fff;color:#111827;font:inherit}input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--brand) 25%,transparent);border-color:var(--brand)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.flash,.errors{padding:12px 14px;border-radius:10px;margin-bottom:15px}.flash{background:#ecfdf5;color:#065f46}.errors{background:#fef2f2;color:#991b1b}.empty{text-align:center;color:var(--muted);padding:30px 10px}.auth-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at top,#dbeafe,#f8fafc 45%)}.auth-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px;box-shadow:0 25px 70px rgba(15,23,42,.12)}.auth-card h1{margin:16px 0 5px}.auth-card>p{margin:0 0 22px;color:var(--muted)}.auth-card>small{display:block;text-align:center;color:var(--muted);margin-top:15px}.check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center}.check input{width:auto}.form-panel{max-width:800px}.form-panel hr{border:0;border-top:1px solid var(--line);width:100%;margin:8px 0}.form-panel h3{margin:0}.pagination{margin-top:16px}@media(max-width:900px){.shell{display:block}.sidebar{height:auto;position:static;padding:12px;display:block}.brand{padding:4px}.sidebar nav{grid-template-columns:repeat(3,1fr);margin-top:12px}.sidebar nav a{text-align:center;padding:10px 6px;font-size:13px}.sidebar-foot{display:none}.main{padding:16px}.stats{grid-template-columns:1fr 1fr}.grid-2,.wide-left{grid-template-columns:1fr}.topbar{align-items:flex-start;gap:10px}.topbar h1{font-size:22px}.company-card{align-items:flex-start;flex-direction:column}.company-metrics{flex-wrap:wrap}}@media(max-width:520px){.stats{grid-template-columns:1fr 1fr}.form-row{grid-template-columns:1fr}.main{padding:12px}.panel{padding:15px}.topbar{flex-direction:column}.topbar .btn{width:100%}.row-card{align-items:flex-start}.job-top{align-items:flex-start}.auth-card{padding:22px}.sidebar nav{grid-template-columns:1fr 1fr 1fr}}
.job-open{display:block}.job-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.job-meta span{font-size:12px;padding:5px 8px;background:#f3f4f6;border-radius:999px;color:#4b5563}.job-page-grid{display:grid;grid-template-columns:minmax(300px,390px) 1fr;gap:18px;align-items:start}.muted{color:var(--muted)}.secondary{background:#fff;color:var(--text);border:1px solid var(--line)}.estimate-items{display:grid;gap:8px;margin:15px 0}.estimate-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;border:1px solid var(--line);padding:12px;border-radius:12px}.estimate-row>div{display:flex;flex-direction:column;gap:3px}.estimate-row small{color:var(--muted)}.type-badge{font-size:10px;font-weight:800;text-transform:uppercase;color:var(--brand)}.icon-danger{width:30px;height:30px;border:0;border-radius:8px;background:#fef2f2;color:#b91c1c;font-size:20px;cursor:pointer}.estimate-add{display:grid;grid-template-columns:115px minmax(180px,1fr) 90px 75px 120px auto;gap:8px;align-items:center;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.estimate-settings{display:grid;gap:12px;margin-top:16px}.estimate-total{margin-left:auto;width:min(410px,100%);display:grid;gap:5px;padding:12px 0}.estimate-total span{display:flex;justify-content:space-between}.estimate-total .grand{font-size:19px;border-top:2px solid var(--text);padding-top:8px;margin-top:4px}.share-box{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;margin-top:18px;padding:14px;background:#f8fafc;border-radius:12px}.compact{padding:15px}.panel-head small{display:block;margin-top:3px}@media(max-width:1150px){.job-page-grid{grid-template-columns:1fr}.estimate-add{grid-template-columns:120px 1fr 100px 80px 120px}.estimate-add .btn{grid-column:1/-1}}@media(max-width:700px){.estimate-add{grid-template-columns:1fr 1fr}.estimate-add input[name=name]{grid-column:1/-1}.estimate-add .btn{grid-column:1/-1}.estimate-row{grid-template-columns:1fr auto}.estimate-row form{grid-column:2}.share-box{grid-template-columns:1fr}.share-box .btn{width:100%}}
.brand-logo{width:40px;height:40px;border-radius:12px;background:#fff;display:grid;place-items:center;overflow:hidden;flex:0 0 auto}.brand-logo img{width:100%;height:100%;object-fit:contain}.niche-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.niche-card p{margin:10px 0}.stage-list{display:flex;gap:6px;flex-wrap:wrap}.stage-list span{padding:5px 8px;border:1px solid var(--line);border-radius:999px;font-size:12px}.action-row{display:flex;gap:8px;align-items:center;margin-top:14px}.action-row form{margin:0}.niche-editor{grid-template-columns:minmax(320px,520px) 1fr}.catalog-mini{display:grid;gap:7px}.catalog-mini-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:10px}.catalog-mini-row>div{display:flex;flex-direction:column;gap:2px}.catalog-mini-row small{color:var(--muted)}.compact-form{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.brand-preview{display:flex;align-items:center;gap:14px;padding:14px;background:#f8fafc;border-radius:12px}.brand-preview img,.brand-preview-letter{width:64px;height:64px;border-radius:14px}.brand-preview img{object-fit:contain;background:#fff;border:1px solid var(--line)}.brand-preview-letter{display:grid;place-items:center;background:var(--brand);color:#fff;font-size:30px;font-weight:900}.brand-preview>div:last-child{display:flex;flex-direction:column}.brand-preview small{color:var(--muted);margin-top:3px}.sync-box{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.catalog-list{display:grid;gap:8px}.catalog-item-wrap{position:relative}.catalog-edit{display:grid;grid-template-columns:105px 130px minmax(180px,1fr) 75px 110px 65px auto;gap:7px;align-items:center;border:1px solid var(--line);border-radius:11px;padding:9px 46px 9px 9px}.catalog-delete{position:absolute;right:8px;top:13px}.tiny-check{display:flex!important;grid-template-columns:auto 1fr!important;gap:5px!important;align-items:center!important;font-size:12px!important}.tiny-check input{width:auto}.small-btn{padding:10px 11px}.quick-catalog{padding:12px;background:#f8fafc;border:1px solid var(--line);border-radius:12px;margin:12px 0}.quick-catalog>form{display:grid;grid-template-columns:1fr 90px auto;gap:8px;margin-top:8px}@media(max-width:1100px){.niche-grid{grid-template-columns:1fr}.catalog-edit{grid-template-columns:1fr 1fr}.catalog-edit input[name=name]{grid-column:1/-1}.catalog-item-wrap{padding-bottom:4px}.niche-editor{grid-template-columns:1fr}}@media(max-width:650px){.quick-catalog>form{grid-template-columns:1fr 80px}.quick-catalog .btn{grid-column:1/-1}.catalog-edit{grid-template-columns:1fr;padding-right:46px}.catalog-edit input[name=name]{grid-column:auto}.action-row{align-items:stretch;flex-direction:column}.action-row .btn{width:100%}}
.security-grid{display:grid;gap:18px;max-width:900px}.security-hero{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center}.security-hero h2{margin-bottom:7px}.security-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:#ecfdf5;color:#047857;font-size:28px;font-weight:900}.security-status{display:inline-flex;margin-top:8px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800}.security-status.ok{background:#ecfdf5;color:#047857}.security-status.warn{background:#fff7ed;color:#c2410c}.security-steps{display:grid;gap:8px;padding-left:22px;color:#374151}.secret-box{margin-top:16px;padding:16px;border:1px dashed #94a3b8;border-radius:12px;background:#f8fafc}.secret-box span{display:block;color:var(--muted);font-size:12px;margin-bottom:8px}.secret-box code{font-size:19px;font-weight:800;letter-spacing:1px;word-break:break-all}.technical-secret{margin-top:12px;color:var(--muted);font-size:12px}.technical-secret code{display:block;margin-top:8px;word-break:break-all;padding:10px;background:#f8fafc;border-radius:8px}.security-form{max-width:480px}.recovery-warning{padding:12px 14px;border-radius:10px;background:#fffbeb;color:#92400e;margin:12px 0}.recovery-codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0 18px}.recovery-codes code{padding:10px 12px;background:#111827;color:#fff;border-radius:8px;text-align:center;letter-spacing:1px}.danger-zone{border-color:#fecaca}.danger-btn{background:#b91c1c}.pwa-install{margin-top:14px}@media(max-width:600px){.recovery-codes{grid-template-columns:1fr}.security-hero{grid-template-columns:1fr}.secret-box code{font-size:16px}}
.company-link{transition:transform .12s ease,border-color .12s ease}.company-link:hover{transform:translateY(-1px);border-color:#cbd5e1}.status-trial{background:#fff7ed;color:#9a3412}.status-active{background:#ecfdf5;color:#047857}.status-suspended{background:#fef2f2;color:#b91c1c}.hint{font-weight:400;color:var(--muted)}.inline-trial{display:grid;grid-template-columns:100px 1fr;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.access-card{display:grid;gap:5px;padding:16px;border-radius:12px;margin-bottom:16px}.access-card b{font-size:18px}.access-card small{opacity:.75}.access-ok{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}.access-stop{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.plan-limits,.usage-list{display:grid;gap:8px;margin:12px 0 20px}.plan-limits>div,.usage-list>div{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;background:#f8fafc;border-radius:10px}.price-big{font-size:34px;font-weight:900;margin:12px 0}.price-big small{font-size:14px;font-weight:500;color:var(--muted)}.feature-list{display:grid;gap:8px}.feature-list span{padding:9px 11px;background:#f8fafc;border-radius:9px}.trial-banner,.limit-bar,.mini-status-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:12px 14px;border-radius:11px;margin-bottom:16px}.trial-banner{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}.trial-banner a,.limit-bar a{font-weight:800;text-decoration:underline}.limit-bar{background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}.limit-bar a{margin-left:auto}.mini-status-row{background:#f8fafc;border:1px solid var(--line);color:#475569}.subscription-actions{display:grid;gap:9px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.subscription-actions>span{font-size:13px;font-weight:800;color:#374151}.subscription-actions>div{display:flex;gap:8px;flex-wrap:wrap}.subscription-actions form{margin:0}@media(max-width:650px){.inline-trial{grid-template-columns:1fr}.limit-bar a{margin-left:0;width:100%}.plan-limits>div,.usage-list>div{align-items:center}.subscription-actions>div{display:grid;grid-template-columns:1fr 1fr}.subscription-actions .btn{width:100%}}
.access-date{font-size:15px}.subscription-summary{display:grid;gap:8px;margin:14px 0 18px}.subscription-summary>div{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:10px 12px;background:#f8fafc;border-radius:10px}.subscription-summary span{color:var(--muted);font-size:13px}.subscription-summary b{font-size:14px}.admin-summary{margin-top:0}.company-access-date{color:#475569!important;font-weight:600}@media(max-width:520px){.subscription-summary>div{grid-template-columns:1fr;gap:3px}}
/* PATCH 006: clearer subscription spacing + superadmin tariff editor */
.access-card{gap:8px;padding:18px 20px;margin-bottom:20px;line-height:1.45}.access-card b{margin-bottom:1px}.subscription-summary{gap:12px;margin:18px 0 22px}.subscription-summary>div{grid-template-columns:110px minmax(0,1fr);column-gap:24px;row-gap:4px;padding:12px 14px;align-items:start}.subscription-summary span{padding-right:4px;line-height:1.45}.subscription-summary b{line-height:1.45}.subscription-note{margin-top:20px;line-height:1.55}.plan-admin-panel{max-width:1100px}.plan-price-form{display:grid;gap:18px}.plan-price-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.plan-price-card{display:grid;gap:8px;padding:16px;border:1px solid var(--line);border-radius:13px;background:#f8fafc}.plan-price-name{font-size:18px;font-weight:900}.plan-price-card small{color:var(--muted);line-height:1.45;min-height:40px}.plan-price-input{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;margin-top:4px}.plan-price-input input{font-size:19px;font-weight:800}.plan-price-input span{white-space:nowrap;color:#475569;font-weight:700}.plan-admin-note{max-width:1100px;margin-top:18px}.plan-admin-note p{margin:0;line-height:1.6}@media(max-width:700px){.plan-price-grid{grid-template-columns:1fr}.subscription-summary>div{grid-template-columns:1fr;gap:5px}.subscription-summary span{font-weight:700}.plan-price-card small{min-height:0}}

/* HOTFIX 006A: job card alignment / UI polish */
.job-page-grid{
  grid-template-columns:minmax(360px,420px) minmax(0,1fr);
  gap:20px;
}
.job-page-grid>.panel:first-child{
  padding:22px 20px;
  min-width:0;
  overflow:hidden;
}
.job-page-grid>.panel:first-child .panel-head{
  gap:16px;
  margin-bottom:18px;
  align-items:center;
}
.job-page-grid>.panel:first-child .panel-head h2{
  margin:0;
  line-height:1.15;
}
.job-page-grid>.panel:first-child .panel-head a{
  flex:0 0 auto;
  white-space:nowrap;
}
.job-page-grid>.panel:first-child .form-stack{
  gap:16px;
}
.job-page-grid>.panel:first-child .form-stack>label,
.job-page-grid>.panel:first-child .form-row>label{
  min-width:0;
  gap:7px;
  line-height:1.25;
}
.job-page-grid>.panel:first-child .form-row{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  align-items:start;
}
.job-page-grid>.panel:first-child input,
.job-page-grid>.panel:first-child select{
  width:100%;
  min-width:0;
  height:44px;
  padding:10px 12px;
}
.job-page-grid>.panel:first-child input[type="date"],
.job-page-grid>.panel:first-child input[type="datetime-local"]{
  font-size:13px;
}
.job-page-grid>.panel:first-child textarea{
  width:100%;
  min-width:0;
  min-height:104px;
  resize:vertical;
  line-height:1.45;
}
.job-page-grid>.panel:first-child .btn{
  margin-top:2px;
  min-height:44px;
}
.job-action-strip{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:4px;
}
.job-action-strip .planning-badge,
.job-action-strip .priority-tag{
  line-height:1.35;
}
@media(max-width:1150px){
  .job-page-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
  .job-page-grid>.panel:first-child{padding:18px 15px}
  .job-page-grid>.panel:first-child .panel-head{align-items:flex-start}
  .job-page-grid>.panel:first-child .form-row{grid-template-columns:1fr;gap:16px}
  .job-page-grid>.panel:first-child input[type="date"],
  .job-page-grid>.panel:first-child input[type="datetime-local"]{font-size:14px}
}

/* PATCH 007: objects, QR, warranty and service */
.objects-page-grid{grid-template-columns:minmax(340px,430px) minmax(0,1fr)}
.object-list{display:grid;gap:10px}
.object-card{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.9fr) auto;gap:14px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:13px;background:#fff;transition:transform .12s ease,border-color .12s ease}
.object-card:hover{transform:translateY(-1px);border-color:#cbd5e1}
.object-card-main,.object-card-status{display:grid;gap:5px;min-width:0}.object-card-main small{color:var(--muted);overflow:hidden;text-overflow:ellipsis}.object-card-status{justify-items:start}.object-card-meta{display:grid;gap:5px;color:#475569;font-size:12px;white-space:nowrap}
.service-chip{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:6px 9px;border-radius:999px;font-size:12px;font-weight:800;line-height:1.25}.service-chip.ok{background:#ecfdf5;color:#047857}.service-chip.warn{background:#fffbeb;color:#92400e}.service-chip.danger{background:#fef2f2;color:#b91c1c}.service-chip.neutral{background:#f1f5f9;color:#475569}
.object-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.object-detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:18px;margin-bottom:18px}.object-health{display:flex;gap:8px;flex-wrap:wrap;margin:-2px 0 16px}.check-line{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:9px!important}.check-line input{width:auto!important;height:auto!important}.qr-card{display:flex;flex-direction:column;align-items:stretch}.qr-box{min-height:240px;display:grid;place-items:center;padding:10px;background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:12px}.qr-box img,.qr-box canvas{max-width:220px;height:auto}.qr-fallback{padding:18px;color:var(--muted);text-align:center}.object-qr-actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.object-history-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:18px}.service-event-form{display:grid;grid-template-columns:1fr 150px 170px 1fr;gap:10px;align-items:end;padding:14px;background:#f8fafc;border:1px solid var(--line);border-radius:12px;margin-bottom:16px}.service-event-form label{display:grid;gap:6px;font-size:12px;font-weight:800}.service-event-form .service-note-field{grid-column:1/-1}.service-event-form .btn{width:max-content}.service-timeline{display:grid}.timeline-row{display:grid;grid-template-columns:130px minmax(0,1fr);gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}.timeline-row:last-child{border-bottom:0}.timeline-date{display:grid;gap:3px}.timeline-date small,.timeline-main small{color:var(--muted)}.timeline-main{line-height:1.45}.object-requests-block{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.object-requests-block h3{display:flex;gap:8px;align-items:center}.object-requests-block h3 span{font-size:12px;padding:3px 7px;background:#f1f5f9;border-radius:999px}.request-mini{padding:11px 0;border-bottom:1px solid var(--line)}.request-mini:last-child{border-bottom:0}.request-mini div{display:grid;gap:3px}.request-mini small{color:var(--muted)}.request-mini p{margin:5px 0 0;white-space:pre-wrap}
.service-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.service-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.service-section{margin-bottom:18px}.service-request-list{display:grid;gap:10px}.service-request-card{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(0,1.4fr) 150px;gap:14px;align-items:start;padding:14px;border:1px solid var(--line);border-radius:12px}.request-object,.request-body{display:grid;gap:4px}.request-object small,.request-body small{color:var(--muted)}.request-body p{margin:3px 0;white-space:pre-wrap}.service-row>span{font-weight:800}.danger-row{border-color:#fecaca;background:#fffafa}.service-alert{padding:10px 12px;border-radius:10px;background:#fff7ed;color:#9a3412;margin-bottom:12px}.dashboard-service{margin-bottom:18px}
@media(max-width:1180px){.objects-page-grid,.object-detail-grid,.object-history-grid{grid-template-columns:1fr}.object-card{grid-template-columns:minmax(0,1fr) auto}.object-card-status{grid-column:1/-1;display:flex;flex-wrap:wrap}.object-card-meta{grid-row:1;grid-column:2}.service-event-form{grid-template-columns:1fr 1fr}.service-event-form .service-note-field{grid-column:1/-1}}
@media(max-width:850px){.service-summary-grid{grid-template-columns:1fr 1fr}.service-columns{grid-template-columns:1fr}.service-request-card{grid-template-columns:1fr}.service-request-card form{width:100%}.service-request-card select{width:100%}}
@media(max-width:620px){.object-card{grid-template-columns:1fr}.object-card-meta{grid-column:1;grid-row:auto;display:flex;gap:12px;flex-wrap:wrap}.service-event-form{grid-template-columns:1fr}.service-event-form .service-note-field{grid-column:1}.timeline-row{grid-template-columns:1fr;gap:5px}.service-summary-grid{grid-template-columns:1fr 1fr}.object-toolbar .btn{flex:1 1 auto;text-align:center}.object-qr-actions{display:grid;grid-template-columns:1fr}.object-qr-actions .btn{text-align:center}}

/* PATCH 008: client cabinet, safe deletion and deletion backups */
.safety-note{margin:16px 0 0;padding:11px 12px;border-radius:10px;background:#f8fafc;border:1px solid var(--line);color:#475569;font-size:12px;line-height:1.55}.team-row{align-items:center}.team-actions{display:flex!important;flex-direction:row!important;align-items:center;gap:12px;flex-wrap:wrap}.team-actions form,.client-actions form{margin:0}.action-link{margin:0;font-size:13px;font-weight:800}.danger-link{color:#b91c1c!important}.danger-btn{background:#b91c1c}.danger-zone{margin-top:18px;border-color:#fecaca;background:#fffafa}.danger-zone h2{color:#991b1b}.danger-zone p{color:#7f1d1d;line-height:1.6}.danger-delete-form{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:14px;align-items:end;margin-top:16px}.danger-delete-form label{display:grid;gap:7px;font-size:13px;font-weight:700;color:#7f1d1d}.danger-delete-form input{border-color:#fca5a5}.client-row-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px}.client-main{display:grid!important;gap:4px;min-width:0}.client-main small{margin:0}.client-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.portal-state{width:max-content;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800}.portal-state.on{background:#ecfdf5;color:#047857}.portal-state.off{background:#f1f5f9;color:#64748b}
.backup-panel{max-width:1150px}.backup-intro{margin:0 0 16px}.backup-list{display:grid;gap:10px}.backup-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff}.backup-main{display:grid;gap:4px}.backup-main small,.backup-main span{color:var(--muted);font-size:12px}.backup-files{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.backup-warning{max-width:1150px;margin-top:18px}.backup-warning p{margin:0;color:#475569;line-height:1.6}
.client-portal-body{background:#eef2f7}.client-portal-shell{width:min(1080px,100%);margin:0 auto;padding:20px}.client-portal-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 0 22px}.portal-brand{display:flex;align-items:center;gap:11px}.portal-brand img,.portal-brand>span{width:44px;height:44px;border-radius:13px}.portal-brand img{object-fit:contain;background:#fff;border:1px solid var(--line)}.portal-brand>span{display:grid;place-items:center;background:var(--brand);color:#fff;font-size:22px;font-weight:900}.portal-brand>div{display:grid;gap:2px}.portal-brand small{color:var(--muted)}.portal-client-name{font-weight:800;color:#475569}.portal-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding:28px;border-radius:20px;background:linear-gradient(135deg,var(--brand),#111827);color:#fff;box-shadow:0 16px 45px rgba(15,23,42,.14)}.portal-hero span{font-size:12px;text-transform:uppercase;letter-spacing:.08em;opacity:.78;font-weight:800}.portal-hero h1{margin:8px 0 8px;font-size:32px}.portal-hero p{margin:0;max-width:680px;line-height:1.55;opacity:.86}.portal-install{background:#fff;color:#111827;white-space:nowrap}.portal-section{margin-top:20px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 6px 24px rgba(15,23,42,.04)}.portal-section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.portal-section-head h2{margin:0}.portal-section-head p{margin:4px 0 0;color:var(--muted);font-size:13px}.portal-job-list,.portal-object-grid{display:grid;gap:12px}.portal-job-card,.portal-object-card{padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff}.portal-job-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.portal-job-top h3,.portal-object-card h3{margin:4px 0}.portal-job-top p,.portal-object-card p{margin:4px 0 0;color:#475569}.portal-job-top small,.portal-object-card small{color:var(--muted)}.portal-stage{padding:6px 9px;border-radius:999px;background:#eef2ff;color:#3730a3;font-size:12px;font-weight:800;white-space:nowrap}.portal-job-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px}.portal-job-meta>div{display:grid;gap:3px;padding:10px;background:#f8fafc;border-radius:10px}.portal-job-meta span{font-size:11px;color:var(--muted)}.portal-job-meta b{font-size:13px;line-height:1.35}.portal-actions{display:flex;gap:8px;margin-top:12px}.portal-photo-block{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.portal-photo-block h4{margin:0 0 10px}.portal-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.portal-photo{position:relative;display:block;overflow:hidden;border-radius:11px;background:#e5e7eb;aspect-ratio:4/3}.portal-photo img{width:100%;height:100%;object-fit:cover}.portal-photo span{position:absolute;left:6px;bottom:6px;padding:4px 6px;border-radius:7px;background:rgba(15,23,42,.76);color:#fff;font-size:10px;font-weight:800}.portal-object-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-object-card{display:grid;gap:12px}.portal-object-health{display:flex;gap:7px;flex-wrap:wrap}.portal-object-history{display:grid;border-top:1px solid var(--line);padding-top:8px}.portal-object-history>div{display:grid;grid-template-columns:90px 1fr;gap:8px;padding:6px 0;font-size:12px}.portal-object-history span{color:#475569}.portal-empty{padding:24px;text-align:center;color:var(--muted);background:#f8fafc;border-radius:12px}.portal-footer{display:flex;justify-content:space-between;gap:16px;padding:22px 4px 8px;color:#64748b}.portal-footer small{text-align:right;max-width:520px;line-height:1.45}
@media(max-width:850px){.danger-delete-form{grid-template-columns:1fr}.backup-row{grid-template-columns:1fr}.backup-files{justify-content:flex-start}.client-row-card{grid-template-columns:1fr}.client-actions{justify-content:flex-start}.portal-job-meta{grid-template-columns:1fr 1fr}.portal-object-grid{grid-template-columns:1fr}.portal-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.client-portal-shell{padding:12px}.client-portal-head{align-items:flex-start}.portal-client-name{font-size:12px}.portal-hero{padding:20px;display:grid}.portal-hero h1{font-size:26px}.portal-section{padding:15px}.portal-job-top{display:grid}.portal-stage{width:max-content}.portal-job-meta{grid-template-columns:1fr}.portal-photo-grid{grid-template-columns:1fr 1fr}.portal-footer{display:grid}.portal-footer small{text-align:left}.team-actions,.client-actions{display:grid!important;width:100%}.team-actions .btn,.client-actions .btn{width:100%}}
\n\n/* PATCH 009: restore, audit and printable documents */\n.backup-head{align-items:flex-start}.backup-head>div{display:grid;gap:3px}.backup-row-v2{grid-template-columns:minmax(0,1fr) auto;align-items:start}.backup-title-line{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.restore-badge{display:inline-flex;padding:3px 7px;border-radius:999px;background:#ecfdf5;color:#047857!important;font-size:11px!important;font-weight:800}.restore-form{grid-column:1/-1;display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:12px;align-items:end;padding-top:12px;border-top:1px dashed var(--line)}.restore-form label{display:grid;gap:6px;font-size:12px;color:#475569}.restore-form input{max-width:360px}.restore-btn{border-color:#86efac;color:#166534}.legacy-backup{grid-column:1/-1;padding:10px 12px;border-radius:9px;background:#fff7ed;color:#9a3412;font-size:12px}.audit-panel{max-width:1400px}.audit-filters{display:grid;grid-template-columns:minmax(220px,1fr) 150px 140px auto auto;gap:10px;align-items:end;margin-bottom:16px}.audit-filters label{display:grid;gap:6px;font-size:12px;font-weight:800}.audit-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}.audit-table{width:100%;border-collapse:collapse;min-width:950px}.audit-table th,.audit-table td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.audit-table th{font-size:11px;text-transform:uppercase;color:#64748b;background:#f8fafc}.audit-table td{font-size:13px}.audit-table td small{display:block;color:var(--muted);margin-top:3px}.audit-status{display:inline-flex;padding:4px 7px;border-radius:999px;font-weight:800;font-size:11px}.audit-status.ok{background:#ecfdf5;color:#047857}.audit-status.bad{background:#fef2f2;color:#b91c1c}.job-documents-panel{margin-top:18px}.document-buttons{display:flex;gap:10px;flex-wrap:wrap}\n@media(max-width:850px){.restore-form{grid-template-columns:1fr}.audit-filters{grid-template-columns:1fr 1fr}.audit-filters .btn{width:100%}.backup-row-v2{grid-template-columns:1fr}}\n@media(max-width:620px){.audit-filters{grid-template-columns:1fr}.document-buttons{display:grid}.document-buttons .btn{width:100%}}\n
/* PATCH 010: plan limits, notification center and calendar polish */
.topbar-actions{display:flex;align-items:center;gap:10px}.notification-bell{position:relative;width:43px;height:43px;display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:18px;box-shadow:0 3px 12px rgba(15,23,42,.04)}.notification-bell:hover{border-color:#cbd5e1;background:#f8fafc}.notification-bell b{position:absolute;right:-6px;top:-7px;min-width:20px;height:20px;padding:0 5px;display:grid;place-items:center;border-radius:999px;background:#dc2626;color:#fff;font-size:10px;line-height:1}.notification-bell.has-unread{border-color:#bfdbfe;background:#eff6ff}
.plan-admin-head{align-items:flex-start}.plan-unlimited-note{display:inline-flex;padding:7px 10px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:12px;font-weight:800;white-space:nowrap}.plan-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-settings-card{gap:16px;padding:18px}.plan-settings-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.plan-settings-title>div{display:grid;gap:4px}.plan-settings-title small{min-height:0}.plan-field{display:grid;gap:6px}.plan-field>span{font-size:12px;font-weight:800;color:#475569}.plan-field small{min-height:0!important;font-size:11px}.plan-field-price{padding-top:12px;border-top:1px solid var(--line)}.plan-price-input b{white-space:nowrap;color:#475569;font-size:13px}.plan-limits-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.plan-limits-grid input{font-size:17px;font-weight:800}.plan-save-row{display:flex;align-items:center;gap:16px}.plan-save-row small{max-width:760px;line-height:1.5}
.calendar-hero{padding:22px;margin-bottom:18px;background:linear-gradient(135deg,#ffffff 0%,#f8fafc 65%,#eef2ff 100%)}.calendar-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.calendar-month-nav{display:flex;align-items:center;gap:14px}.calendar-month-nav h2{margin:2px 0 0;font-size:26px}.calendar-eyebrow{display:block;color:#64748b;text-transform:uppercase;letter-spacing:.08em;font-weight:900;font-size:10px}.calendar-nav-btn{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:20px;font-weight:900;box-shadow:0 3px 12px rgba(15,23,42,.05)}.calendar-nav-btn:hover{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.calendar-hero-actions{display:flex;align-items:flex-end;gap:10px}.calendar-worker-filter label{display:grid;gap:5px}.calendar-worker-filter span{font-size:11px;font-weight:800;color:#64748b}.calendar-worker-filter select{min-width:190px;padding:10px 34px 10px 11px}.calendar-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:18px}.calendar-kpis>div{padding:12px 14px;border:1px solid #e2e8f0;border-radius:13px;background:rgba(255,255,255,.8)}.calendar-kpis span{display:block;font-size:11px;color:#64748b}.calendar-kpis b{display:block;margin-top:3px;font-size:20px}.calendar-layout-v2{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}.calendar-panel-v2{padding:0;overflow:hidden}.calendar-scroll{overflow-x:auto}.calendar-weekdays-v2{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));min-width:1015px;background:#f8fafc;border-bottom:1px solid var(--line)}.calendar-weekdays-v2 span{padding:11px 12px;font-size:11px;font-weight:900;color:#64748b;text-transform:uppercase;letter-spacing:.04em;text-align:center}.calendar-grid-v2{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));min-width:1015px}.calendar-day-v2{min-height:156px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;transition:.15s ease}.calendar-day-v2:nth-child(7n){border-right:0}.calendar-day-v2.outside{background:#f8fafc}.calendar-day-v2.outside .calendar-date-number{color:#94a3b8}.calendar-day-v2.weekend:not(.outside){background:#fcfcfd}.calendar-day-v2.today{background:#eff6ff}.calendar-day-v2.selected{box-shadow:inset 0 0 0 2px var(--brand);position:relative;z-index:1}.calendar-day-head-v2{display:flex;align-items:center;gap:6px;min-height:28px;margin-bottom:5px}.calendar-date-number{width:27px;height:27px;display:grid;place-items:center;border-radius:9px;font-weight:900;font-size:13px}.today .calendar-date-number{background:var(--brand);color:#fff}.calendar-today-label{font-size:9px!important;color:#2563eb!important;font-weight:900;text-transform:uppercase}.calendar-day-count{margin-left:auto;min-width:21px;height:21px;padding:0 5px;display:grid;place-items:center;border-radius:999px;background:#f1f5f9;color:#475569;font-size:10px;font-weight:900}.calendar-events-v2{display:grid;gap:5px}.calendar-event-v2{position:relative;display:grid;gap:2px;padding:7px 8px 7px 10px;border:1px solid #e2e8f0;border-radius:9px;background:#fff;overflow:hidden;box-shadow:0 2px 7px rgba(15,23,42,.03)}.calendar-event-v2:before,.calendar-focus-job:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#64748b}.calendar-event-v2.priority-high:before,.calendar-focus-job.priority-high:before{background:#f59e0b}.calendar-event-v2.priority-urgent:before,.calendar-focus-job.priority-urgent:before{background:#dc2626}.calendar-event-v2.priority-low:before,.calendar-focus-job.priority-low:before{background:#22c55e}.calendar-event-v2:hover{border-color:#bfdbfe;box-shadow:0 4px 12px rgba(37,99,235,.09)}.calendar-event-time{display:flex;gap:3px;align-items:center;color:#475569;font-size:9px}.calendar-event-time time{font-weight:900}.calendar-event-v2>b{font-size:11px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event-v2 small{font-size:9px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event-worker{font-size:9px;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-more-v2{display:block;padding:4px 7px;color:#2563eb;font-size:10px;font-weight:800}.calendar-side-stack{display:grid;gap:18px;position:sticky;top:18px}.calendar-focus-panel,.unscheduled-panel-v2{padding:16px}.calendar-focus-head{align-items:flex-start}.calendar-focus-head h2{margin:2px 0 0}.calendar-focus-count{min-width:30px;height:30px;padding:0 7px;display:grid;place-items:center;border-radius:10px;background:#f1f5f9;color:#334155;font-weight:900}.calendar-focus-list{display:grid;gap:8px}.calendar-focus-job{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr);gap:10px;padding:11px 10px 11px 13px;border:1px solid var(--line);border-radius:11px;background:#fff;overflow:hidden}.calendar-focus-time{display:grid;align-content:start}.calendar-focus-time b{font-size:14px}.calendar-focus-time span{font-size:10px;color:#64748b}.calendar-focus-job>div:last-child{display:grid;gap:2px;min-width:0}.calendar-focus-job>div:last-child>b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-focus-job small,.calendar-focus-job>div:last-child>span{font-size:10px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unscheduled-list{display:grid;gap:9px;max-height:520px;overflow:auto;padding-right:2px}.unscheduled-card-v2{padding:11px;border:1px solid var(--line);border-radius:11px;background:#fff}.unscheduled-card-v2>a{display:grid;gap:3px}.unscheduled-card-v2 small{color:#64748b;font-size:10px}.quick-schedule-v2{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin-top:8px}.quick-schedule-v2 input{padding:8px;font-size:11px}.quick-schedule-v2 .btn{padding:8px 10px;font-size:11px}
.notifications-panel{max-width:1050px}.notifications-head{align-items:flex-start}.notifications-head form{margin:0}.notification-list{display:grid;gap:8px}.notification-form{margin:0}.notification-card{position:relative;width:100%;display:grid;grid-template-columns:10px minmax(0,1fr);gap:11px;text-align:left;padding:14px 15px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text);cursor:pointer;font:inherit}.notification-card:hover{border-color:#cbd5e1;background:#f8fafc}.notification-card.is-unread{border-color:#bfdbfe;background:#f8fbff}.notification-card.is-read{opacity:.72}.notification-dot{width:8px;height:8px;margin-top:5px;border-radius:999px;background:#64748b}.severity-warning .notification-dot{background:#f59e0b}.severity-danger .notification-dot{background:#dc2626}.severity-info .notification-dot{background:#3b82f6}.notification-body{display:grid;gap:5px;min-width:0}.notification-topline{display:flex;justify-content:space-between;gap:15px}.notification-topline b{font-size:13px}.notification-topline time{color:#64748b;font-size:10px;white-space:nowrap}.notification-message{font-size:12px;color:#475569;line-height:1.5}.notification-body small{font-size:10px;color:#64748b}.attention-panel{margin-bottom:18px}.attention-list{display:grid;gap:7px}.attention-list form{margin:0}.attention-row{position:relative;width:100%;display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:10px;align-items:start;text-align:left;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--text);font:inherit;cursor:pointer}.attention-row>span:nth-child(2){display:grid;gap:3px}.attention-row b{font-size:12px}.attention-row small{font-size:10px;color:#64748b}.attention-row time{font-size:10px;color:#64748b;white-space:nowrap}
@media(max-width:1180px){.calendar-layout-v2{grid-template-columns:1fr}.calendar-side-stack{position:static;grid-template-columns:1fr 1fr}.plan-limits-grid{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:850px){.calendar-title-row{display:grid}.calendar-hero-actions{justify-content:space-between}.calendar-kpis{grid-template-columns:1fr 1fr}.calendar-side-stack{grid-template-columns:1fr}.plan-settings-grid{grid-template-columns:1fr}.plan-save-row{display:grid}.topbar-actions{align-self:flex-start}.plan-admin-head{display:grid;gap:10px}.plan-unlimited-note{width:max-content}}
@media(max-width:620px){.calendar-hero{padding:16px}.calendar-month-nav{justify-content:space-between}.calendar-month-nav h2{font-size:21px}.calendar-hero-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.calendar-worker-filter select{min-width:0}.calendar-kpis{grid-template-columns:1fr 1fr}.calendar-kpis>div{padding:10px}.plan-limits-grid{grid-template-columns:1fr}.notification-topline{display:grid;gap:3px}.attention-row{grid-template-columns:10px minmax(0,1fr)}.attention-row time{grid-column:2}.topbar{display:grid}.topbar-actions{width:100%;justify-content:flex-end}.topbar-actions .btn{width:auto}.plan-settings-title{display:grid}.quick-schedule-v2{grid-template-columns:1fr}.quick-schedule-v2 .btn{width:100%}}

/* PATCH 011 — analytics and reports */
.report-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:end;margin-bottom:16px}.report-periods{display:flex;gap:8px;flex-wrap:wrap}.report-period-chip{display:inline-flex;align-items:center;justify-content:center;padding:9px 12px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#475569;font-size:13px;font-weight:800}.report-period-chip:hover,.report-period-chip.active{border-color:color-mix(in srgb,var(--brand) 45%,var(--line));background:color-mix(in srgb,var(--brand) 9%,#fff);color:var(--brand)}.report-custom-period{display:flex;gap:9px;align-items:end}.report-custom-period label{display:grid;gap:5px;color:#64748b;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.report-custom-period input{min-width:142px;padding:9px 10px}.report-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:16px}.report-kpi{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px;box-shadow:0 5px 20px rgba(17,24,39,.04)}.report-kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#cbd5e1}.report-kpi.positive:before{background:#10b981}.report-kpi.danger:before{background:#ef4444}.report-kpi span{display:block;color:#64748b;font-size:12px;font-weight:700}.report-kpi b{display:block;margin-top:6px;font-size:23px;letter-spacing:-.02em}.report-kpi small{display:block;margin-top:5px;color:#94a3b8;font-size:11px;line-height:1.35}.report-export-row{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:16px}.report-export-row>div:first-child{display:grid;gap:4px}.report-export-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.report-chart-panel{margin-bottom:16px}.report-chart-total{font-size:19px;font-weight:900}.report-bars{height:260px;display:flex;align-items:end;gap:8px;padding:18px 4px 4px;overflow-x:auto;border-top:1px solid #f1f5f9}.report-bar-item{min-width:42px;flex:1;display:grid;grid-template-rows:22px 180px 30px;align-items:end;text-align:center}.report-bar-value{font-size:11px;color:#64748b;font-weight:800;align-self:end;padding-bottom:4px}.report-bar-track{height:180px;border-radius:8px 8px 3px 3px;background:#f1f5f9;display:flex;align-items:end;overflow:hidden}.report-bar-track span{display:block;width:100%;min-height:4px;border-radius:7px 7px 2px 2px;background:linear-gradient(180deg,color-mix(in srgb,var(--brand) 72%,#60a5fa),var(--brand));transition:.2s}.report-bar-item small{font-size:10px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-top:6px}.report-grid-2{display:grid;grid-template-columns:1.05fr .95fr;gap:16px;margin-bottom:16px}.report-funnel{display:grid;gap:15px}.report-funnel-row{display:grid;gap:6px}.report-funnel-title{display:flex;justify-content:space-between;align-items:center;gap:12px}.report-funnel-title b{font-size:13px}.report-funnel-title span{font-size:12px;font-weight:900;color:#64748b}.report-funnel-track{height:10px;border-radius:999px;background:#eef2f7;overflow:hidden}.report-funnel-track span{height:100%;display:block;border-radius:999px;background:linear-gradient(90deg,var(--brand),color-mix(in srgb,var(--brand) 55%,#60a5fa))}.report-funnel-row small{font-size:11px;color:#64748b}.report-rank-list{display:grid;gap:9px}.report-rank-row{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:10px;padding:11px;border:1px solid #edf0f3;border-radius:12px}.report-rank-number{width:28px;height:28px;border-radius:9px;background:#f1f5f9;display:grid;place-items:center;font-weight:900;color:#475569}.report-rank-row>div{display:grid;gap:3px;min-width:0}.report-rank-row b,.report-rank-row small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-rank-row small{color:#64748b}.report-rank-row strong{white-space:nowrap}.report-team-panel{margin-bottom:16px}.report-table-wrap{overflow:auto;border:1px solid #edf0f3;border-radius:12px}.report-table{width:100%;border-collapse:collapse;min-width:760px}.report-table th,.report-table td{padding:12px 13px;border-bottom:1px solid #edf0f3;text-align:right;font-size:13px;vertical-align:middle}.report-table th{background:#f8fafc;color:#64748b;font-size:11px;text-transform:uppercase;letter-spacing:.035em;position:sticky;top:0}.report-table th:first-child,.report-table td:first-child{text-align:left}.report-table tbody tr:last-child td{border-bottom:0}.report-table td:first-child{display:table-cell}.report-table td:first-child b{display:block}.report-table td:first-child small,.table-link small{display:block;color:#94a3b8;margin-top:3px}.positive-text{color:#047857;font-weight:800}.danger-text{color:#b91c1c;font-weight:800}.report-note{margin:8px 0 2px;padding:14px 16px;border-radius:12px;background:#fffbeb;border:1px solid #fde68a;color:#854d0e;font-size:12px;line-height:1.55}.dashboard-report-strip{margin-bottom:18px;padding:16px 18px}.dashboard-report-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:13px}.dashboard-report-head>div{display:grid;gap:3px}.dashboard-report-head small{color:#64748b}.dashboard-report-head a{color:var(--brand);font-weight:800}.dashboard-report-metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.dashboard-report-metrics>div{background:#f8fafc;border:1px solid #eef2f7;border-radius:11px;padding:11px}.dashboard-report-metrics span{display:block;color:#64748b;font-size:11px}.dashboard-report-metrics b{display:block;margin-top:4px;font-size:16px}.plan-analytics-list{display:grid;gap:10px}.plan-analytics-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px;border:1px solid #edf0f3;border-radius:12px}.plan-analytics-row>div{display:grid;gap:3px}.plan-analytics-row small{color:#64748b}.plan-analytics-row strong{font-size:17px;white-space:nowrap}.access-health-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.access-health-grid>div{border:1px solid #edf0f3;border-radius:12px;padding:14px;background:#f8fafc}.access-health-grid span{display:block;font-size:12px;color:#64748b}.access-health-grid b{display:block;margin-top:5px;font-size:24px}.table-link{display:block}.status-badge{display:inline-flex;padding:5px 8px;border-radius:999px;background:#f1f5f9;font-size:11px;font-weight:800}.status-active{background:#ecfdf5;color:#047857}.status-trial{background:#eff6ff;color:#1d4ed8}.status-suspended{background:#fef2f2;color:#b91c1c}
@media(max-width:1200px){.report-kpis{grid-template-columns:repeat(3,1fr)}.dashboard-report-metrics{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.report-toolbar,.report-export-row{align-items:stretch;flex-direction:column}.report-custom-period{width:100%;display:grid;grid-template-columns:1fr 1fr auto}.report-custom-period input{min-width:0}.report-grid-2{grid-template-columns:1fr}.report-export-actions{justify-content:flex-start}.report-bars{height:230px}.report-bar-item{min-width:46px}.super-report-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.report-kpis{grid-template-columns:1fr 1fr}.report-custom-period{grid-template-columns:1fr 1fr}.report-custom-period .btn{grid-column:1/-1}.report-kpi{padding:14px}.report-kpi b{font-size:19px}.report-export-actions{display:grid;grid-template-columns:1fr 1fr}.report-export-actions .btn{width:100%}.dashboard-report-metrics{grid-template-columns:1fr 1fr}.report-bars{padding-left:0;padding-right:0}.report-bar-item{min-width:42px}.access-health-grid{grid-template-columns:1fr 1fr}}

/* PATCH 012 — finance, Excel CSV, image optimizer */
.readonly-money{background:#f8fafc;color:#334155;font-weight:800}.job-finance-panel{margin-top:16px;margin-bottom:16px}.job-payment-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.job-payment-summary>div{padding:13px 14px;border:1px solid #edf0f3;border-radius:12px;background:#f8fafc}.job-payment-summary span{display:block;color:#64748b;font-size:11px;font-weight:700}.job-payment-summary b{display:block;margin-top:5px;font-size:18px}.payment-add-form{display:grid;grid-template-columns:140px 150px 180px 190px minmax(220px,1fr) auto;gap:10px;align-items:end;margin-bottom:14px}.payment-add-form label,.expense-form label{display:grid;gap:5px;font-size:11px;font-weight:800;color:#64748b}.payment-add-form input,.payment-add-form select,.expense-form input,.expense-form select{width:100%}.payment-history,.finance-list{display:grid;gap:8px}.payment-row,.finance-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:11px 12px;border:1px solid #edf0f3;border-radius:11px;background:#fff}.payment-row>div,.finance-row>div{display:grid;gap:3px;min-width:0}.payment-row small,.finance-row small{color:#64748b;white-space:normal}.payment-row strong,.finance-row strong{white-space:nowrap}.payment-row.refund{background:#fffafa}.finance-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.finance-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.expense-form{display:grid;grid-template-columns:170px 140px 150px minmax(200px,1fr) auto;gap:9px;align-items:end;margin-bottom:14px}.csv-help{display:block;margin-top:10px;color:#64748b;font-size:11px}.image-compress-status{grid-column:1/-1;color:#047857;font-weight:700;min-height:16px}.file-upload-form[data-image-compressor] .btn:disabled{opacity:.65;cursor:wait}
@media(max-width:1180px){.payment-add-form{grid-template-columns:1fr 1fr 1fr}.payment-note{grid-column:1/3}.finance-grid{grid-template-columns:1fr}.expense-form{grid-template-columns:1fr 1fr 1fr}.expense-note{grid-column:1/3}}
@media(max-width:760px){.finance-kpis{grid-template-columns:1fr 1fr}.job-payment-summary{grid-template-columns:1fr}.payment-add-form,.expense-form{grid-template-columns:1fr 1fr}.payment-note,.expense-note{grid-column:1/-1}.payment-row,.finance-row{grid-template-columns:minmax(0,1fr) auto}.payment-row form,.finance-row form{grid-column:2}.job-finance-panel .panel-head{display:grid;gap:8px}}
@media(max-width:520px){.finance-kpis{grid-template-columns:1fr}.payment-add-form,.expense-form{grid-template-columns:1fr}.payment-note,.expense-note{grid-column:auto}.payment-add-form .btn,.expense-form .btn{width:100%}}

/* PATCH 013 — PWA install, storage monitor, Excel RU export */
.pwa-install-button{white-space:nowrap}.pwa-ios-hint{position:fixed;right:18px;bottom:18px;z-index:1000;width:min(390px,calc(100vw - 36px));display:flex;gap:16px;align-items:flex-start;background:#111827;color:#fff;border-radius:16px;padding:17px 18px;box-shadow:0 18px 50px rgba(15,23,42,.25)}.pwa-ios-hint div{display:grid;gap:5px}.pwa-ios-hint b{font-size:14px}.pwa-ios-hint p{margin:0;color:#cbd5e1;font-size:12px;line-height:1.45}.pwa-ios-hint button{border:0;background:transparent;color:#fff;font-size:24px;line-height:1;cursor:pointer;padding:0}
.storage-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}.storage-kpi{padding:16px}.storage-kpi span{display:block;color:#64748b;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.035em}.storage-kpi b{display:block;margin-top:6px;font-size:22px}.storage-kpi small{display:block;margin-top:4px;color:#94a3b8;line-height:1.35}.storage-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.storage-detail-list{display:grid;gap:1px;border:1px solid #edf0f3;border-radius:12px;overflow:hidden}.storage-detail-list>div{display:flex;justify-content:space-between;gap:18px;padding:12px 13px;background:#fff;border-bottom:1px solid #edf0f3}.storage-detail-list>div:last-child{border-bottom:0}.storage-detail-list span{color:#64748b}.storage-detail-list b{white-space:nowrap}.storage-paths{display:grid;gap:5px;margin-top:12px;color:#94a3b8;word-break:break-all}.storage-cleanup p{color:#64748b;line-height:1.55}.storage-clean-form{display:grid;grid-template-columns:150px 180px 1fr auto;gap:10px;align-items:end}.storage-clean-form label{display:grid;gap:5px}.storage-clean-form label span{font-size:11px;color:#64748b;font-weight:800}.storage-confirm input{font-weight:800;letter-spacing:.06em}.storage-company-table{min-width:620px}.storage-company-table th:nth-child(n+2),.storage-company-table td:nth-child(n+2){text-align:right}.csv-mode-note{display:flex;gap:12px;justify-content:space-between;align-items:center;margin-top:14px}.csv-mode-note span{color:#64748b;font-size:12px;line-height:1.5}.csv-mode-note a,.csv-help a{color:var(--brand);font-weight:800}
@media(max-width:1100px){.storage-kpis{grid-template-columns:repeat(3,1fr)}.storage-clean-form{grid-template-columns:1fr 1fr}.storage-clean-form .btn{grid-column:1/-1}}
@media(max-width:800px){.storage-grid{grid-template-columns:1fr}.storage-kpis{grid-template-columns:1fr 1fr}.pwa-install-button{padding:8px 10px;font-size:12px}.csv-mode-note{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.storage-kpis{grid-template-columns:1fr}.storage-clean-form{grid-template-columns:1fr}.storage-clean-form .btn{grid-column:auto}.pwa-install-button{max-width:145px;white-space:normal;line-height:1.15}}
.report-export-row{flex-wrap:wrap}.report-export-row>.csv-help{flex:1 0 100%;margin-top:-3px}

/* PATCH 014 — real PWA install UX + White Label */
.pwa-modal-backdrop{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;padding:20px;background:rgba(15,23,42,.58);backdrop-filter:blur(4px)}.pwa-modal{position:relative;width:min(520px,100%);padding:24px;border-radius:20px;background:#fff;box-shadow:0 24px 80px rgba(15,23,42,.3)}.pwa-modal-close{position:absolute;right:14px;top:12px;border:0;background:transparent;font-size:27px;color:#64748b;cursor:pointer}.pwa-modal-icon{width:50px;height:50px;display:grid;place-items:center;border-radius:15px;background:#eff6ff;color:#1d4ed8;font-size:24px;font-weight:900}.pwa-modal h3{margin:14px 0 8px;font-size:21px}.pwa-modal-body{color:#475569;line-height:1.55}.pwa-modal-body p{margin:8px 0}.pwa-steps{margin:12px 0 0;padding-left:22px}.pwa-steps li{margin:8px 0}.pwa-diag{margin-top:14px;padding:10px 12px;border-radius:10px;background:#f8fafc;border:1px solid #e2e8f0;font-size:12px;color:#64748b}.pwa-shortcut-warning{position:fixed;left:50%;bottom:18px;z-index:2500;transform:translateX(-50%);width:min(760px,calc(100vw - 32px));display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:14px 16px;border:1px solid #fdba74;border-radius:14px;background:#fff7ed;color:#9a3412;box-shadow:0 16px 40px rgba(15,23,42,.14)}.pwa-shortcut-warning>div{display:grid;gap:3px}.pwa-shortcut-warning span{font-size:12px;line-height:1.45}.pwa-shortcut-warning button{border:0;background:transparent;color:#9a3412;font-size:24px;cursor:pointer}.section-heading-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}.section-heading-row h2,.section-heading-row h3{margin:0}.section-heading-row p{margin:5px 0 0}.muted,.hint{color:#64748b}.hint{margin:-4px 0 6px;font-size:12px;line-height:1.5}.white-label-panel{margin-top:18px}.white-label-toggle{padding:14px;border:1px solid #dbeafe;border-radius:12px;background:#eff6ff}.white-label-toggle span{display:grid;gap:3px}.white-label-toggle small{color:#64748b;font-weight:500}.pwa-icon-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.pwa-icon-upload{display:grid;grid-template-columns:76px minmax(0,1fr);grid-template-areas:"title title" "icon input" "icon check";gap:8px 12px;align-items:center;padding:14px;border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc}.pwa-icon-upload>span:first-child{grid-area:title;font-size:12px;font-weight:800;color:#475569}.pwa-icon-upload img{grid-area:icon;width:70px;height:70px;border-radius:16px;object-fit:cover;background:#fff;border:1px solid #dbeafe}.pwa-icon-upload input[type=file]{grid-area:input;width:100%}.pwa-icon-upload .check{grid-area:check;font-size:12px;color:#64748b}.pwa-install-note{padding:12px 14px;border-radius:12px;background:#f8fafc;border:1px solid #e2e8f0;color:#475569;font-size:12px;line-height:1.55}.white-label-preview{display:flex;gap:13px;align-items:center;padding:14px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}.phone-icon-preview img{width:56px;height:56px;border-radius:14px;object-fit:cover;box-shadow:0 5px 16px rgba(15,23,42,.12)}.white-label-preview>div:last-child{display:grid;gap:2px}.white-label-preview small,.white-label-preview span{color:#64748b}.white-label-preview b{font-size:17px}.pill.ok{background:#ecfdf5;color:#047857}.empty-state.compact{padding:14px;margin:0;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px;color:#64748b}.brand-preview+.form-row{margin-top:2px}
@media(max-width:760px){.pwa-icon-grid{grid-template-columns:1fr}.section-heading-row{flex-direction:column}.pwa-shortcut-warning{bottom:10px}.pwa-modal{padding:20px}.white-label-preview{align-items:flex-start}}

/* PATCH 015 — launch wizard + import */
.launch-wizard{max-width:1180px;margin:0 auto}
.launch-progress{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:24px}
.launch-progress span{display:flex;align-items:center;gap:9px;padding:12px 14px;border:1px solid #e5e7eb;border-radius:14px;background:#fff;font-weight:700;font-size:13px}
.launch-progress b,.launch-section-title>span{display:grid;place-items:center;flex:0 0 auto;width:28px;height:28px;border-radius:50%;background:var(--brand);color:#fff;font-size:13px}
.launch-section{padding:22px 0;border-top:1px solid #edf0f4}
.launch-section:first-of-type{border-top:0;padding-top:0}
.launch-section-title{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px}
.launch-section-title h2{margin:0 0 4px}
.launch-section-title p{margin:0;color:#6b7280}
.company-limit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.company-limit-grid.compact{margin:10px 0}
.company-limit-grid label{margin:0}
.company-limit-grid small{display:block;margin-top:6px;color:#6b7280}
.launch-submit{display:flex;align-items:center;gap:16px;padding-top:18px;border-top:1px solid #edf0f4}
.launch-submit small{color:#6b7280}
.individual-limit-form{margin-top:20px;padding-top:18px;border-top:1px solid #edf0f4}
.demo-data-box{margin-top:18px;padding:16px;border:1px dashed #cbd5e1;border-radius:14px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:#f8fafc}
.demo-data-box div{display:flex;flex-direction:column;gap:4px}.demo-data-box small{color:#6b7280}
.import-grid{align-items:stretch}.import-card{display:flex;flex-direction:column;gap:18px}.import-template-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:auto}
.import-help-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.import-help-grid>div{display:flex;flex-direction:column;gap:6px;padding:16px;border-radius:14px;background:#f8fafc}.import-help-grid span{color:#6b7280;font-size:14px;line-height:1.45}
.import-report{margin-top:18px}.import-errors{margin-top:14px;display:grid;gap:6px}.import-errors>div{padding:9px 12px;border-radius:10px;background:#fff7ed;color:#9a3412;font-size:13px}
.import-mapping-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.import-map-card{padding:12px;border:1px solid #e5e7eb;border-radius:14px;background:#fff}.source-column{display:block;margin-bottom:8px;font-weight:800;color:#111827}
.import-preview-table-wrap{overflow:auto;border:1px solid #e5e7eb;border-radius:14px}.import-preview-table{min-width:900px;margin:0}.import-preview-table th{white-space:nowrap}.import-preview-table td{max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:900px){.launch-progress{grid-template-columns:1fr 1fr}.company-limit-grid,.import-mapping-grid,.import-help-grid{grid-template-columns:1fr 1fr}.demo-data-box{align-items:flex-start;flex-direction:column}}
@media(max-width:620px){.launch-progress,.company-limit-grid,.import-mapping-grid,.import-help-grid{grid-template-columns:1fr}.launch-submit{align-items:flex-start;flex-direction:column}}

/* PATCH 016 — roles, permissions and active employee limits */
.limit-explainer{margin:0 0 18px;padding:12px 14px;border:1px solid #dbeafe;border-radius:12px;background:#eff6ff;font-size:14px;line-height:1.45}
.employee-limit-state{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;padding:12px 14px;border-radius:12px;background:#f8fafc;border:1px solid #e5e7eb}
.employee-limit-state span{color:#64748b;font-size:13px}
.team-row-off{opacity:.78;background:#f8fafc}
.limit-disabled-note{display:block!important;color:#b45309!important;margin-top:4px;font-weight:600}
.permissions-panel{max-width:1100px}
.permission-mode-check{padding:14px;border:1px solid #dbeafe;border-radius:12px;background:#eff6ff}
.permission-mode-check span{display:flex;flex-direction:column;gap:3px}
.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.permission-group{border:1px solid #e5e7eb;border-radius:14px;padding:14px;background:#fff}
.permission-group h3{margin:0 0 10px;font-size:15px}
.permission-item{padding:7px 0;margin:0}
.permission-warning{padding:12px 14px;border-radius:12px;background:#f8fafc;color:#475569;font-size:13px;line-height:1.45}
.full-span{grid-column:1/-1}
@media(max-width:760px){.permission-grid{grid-template-columns:1fr}.employee-limit-state{align-items:flex-start;flex-direction:column}}
.permission-fieldset{border:0;padding:0;margin:0;min-width:0;display:contents}
.permission-fieldset:disabled{opacity:.72}


/* PATCH 017 — diagnostics + stability */
.diag-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.diag-summary .panel{display:grid;gap:5px}.diag-summary span{font-size:12px;color:#64748b;font-weight:800}.diag-summary b{font-size:27px}.diag-overall-ok{border-color:#bbf7d0;background:#f0fdf4}.diag-overall-warn{border-color:#fde68a;background:#fffbeb}.diag-overall-fail{border-color:#fecaca;background:#fef2f2}.diag-table-wrap{overflow:auto}.diag-table{width:100%;min-width:820px;border-collapse:collapse}.diag-table th,.diag-table td{padding:12px 10px;text-align:left;border-bottom:1px solid #eef2f7;vertical-align:top}.diag-table th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.diag-status{display:inline-flex;align-items:center;justify-content:center;min-width:76px;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:900}.diag-status.ok{background:#dcfce7;color:#166534}.diag-status.warn{background:#fef3c7;color:#92400e}.diag-status.fail{background:#fee2e2;color:#991b1b}.diag-detail{display:grid;gap:3px}.diag-detail small{color:#64748b;line-height:1.4}.diag-group{font-weight:800;color:#475569}.diag-head-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.diag-note{margin-top:14px;padding:12px 14px;border-radius:12px;background:#f8fafc;color:#475569;font-size:13px;line-height:1.5}.security-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:11px;font-weight:800}
@media(max-width:760px){.diag-summary{grid-template-columns:1fr 1fr}}@media(max-width:480px){.diag-summary{grid-template-columns:1fr}}

/* PATCH 019 — real plan entitlements + commercial leads */
.plan-lock-card{display:grid;grid-template-columns:76px 1fr;gap:20px;align-items:start;max-width:760px}.plan-lock-icon{display:grid;place-items:center;width:66px;height:66px;border-radius:18px;background:#eef2ff;font-size:30px}.plan-lock-card h2{margin:12px 0 6px}.plan-lock-card p{color:var(--muted,#6b7280);line-height:1.65;max-width:620px}.plan-lock-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.plan-upgrade-note,.report-level-note{border-left:4px solid #6366f1}.lead-stats{grid-template-columns:repeat(6,minmax(0,1fr))}.lead-filter-form{display:grid;grid-template-columns:2fr 1fr 1fr auto auto;gap:10px;align-items:end}.lead-filter-form label,.lead-update-form label{display:grid;gap:6px;font-size:12px;font-weight:700}.lead-pipeline-legend{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0}.lead-status{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;background:#eef2f7;color:#5b6474}.lead-status-new{background:#edf5ff;color:#1e5db8}.lead-status-contacted{background:#f3f0ff;color:#6346c7}.lead-status-demo{background:#fff6db;color:#986500}.lead-status-thinking{background:#fff0e8;color:#a94d16}.lead-status-won{background:#eafaf1;color:#14734a}.lead-status-lost{background:#f6f7f9;color:#707784}.lead-list{display:grid;gap:12px}.commercial-lead-card{padding:20px}.lead-highlight{outline:3px solid rgba(99,102,241,.25)}.commercial-lead-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.lead-title-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.lead-title-line h2{margin:0}.lead-contact-line{display:flex;gap:12px;flex-wrap:wrap;margin-top:7px;color:#64748b;font-size:12px}.lead-contact-line a{font-weight:800}.lead-meta-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.lead-comment{margin:14px 0;padding:12px 14px;border-radius:12px;background:#f8fafc;white-space:pre-wrap;line-height:1.55}.lead-source-row{display:flex;gap:10px;flex-wrap:wrap;color:#768196;font-size:11px;margin:10px 0}.lead-update-form{display:grid;grid-template-columns:190px 210px minmax(260px,1fr) auto;gap:10px;align-items:end;border-top:1px solid #e5e7eb;padding-top:14px;margin-top:14px}.lead-note-field textarea{min-height:42px;resize:vertical}.lead-card-actions{display:flex;justify-content:flex-end;margin-top:12px}.single-report-grid{grid-template-columns:1fr!important}.report-level-note{margin-bottom:14px}.commercial-lead-card .pill{text-transform:none}@media(max-width:1100px){.lead-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.lead-filter-form{grid-template-columns:1fr 1fr}.lead-update-form{grid-template-columns:1fr 1fr}.lead-update-form .lead-note-field{grid-column:1/-1}}@media(max-width:700px){.plan-lock-card{grid-template-columns:1fr}.lead-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.lead-filter-form,.lead-update-form{grid-template-columns:1fr}.lead-update-form .lead-note-field{grid-column:auto}.commercial-lead-head{display:block}.lead-meta-right{justify-content:flex-start;margin-top:10px}.lead-card-actions .btn{width:100%}}
.manual-lead-panel summary{cursor:pointer;font-weight:800}.manual-lead-panel[open] summary{margin-bottom:14px}.manual-lead-form{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.manual-lead-form label{display:grid;gap:6px;font-size:12px;font-weight:700}.manual-lead-comment{grid-column:1/-1}.manual-lead-form button{justify-self:start}@media(max-width:800px){.manual-lead-form{grid-template-columns:1fr}.manual-lead-comment{grid-column:auto}}

/* PATCH 020: SaaS billing + onboarding */
.activation-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:18px}.activation-access-box{border:1px solid #e4e9f2;border-radius:16px;padding:18px;background:#f8faff}.billing-summary-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:16px 0}.billing-summary-grid>div{border:1px solid #e5eaf2;border-radius:14px;padding:14px;background:#fafcff}.billing-summary-grid span,.billing-summary-grid b{display:block}.billing-summary-grid span{font-size:11px;color:#758099}.billing-summary-grid b{margin-top:5px}.billing-settings-form{margin:18px 0;padding-top:16px;border-top:1px solid #edf0f5}.billing-payment-box{margin:22px 0;padding:18px;border-radius:16px;background:#f5f8ff;border:1px solid #dfe7fb}.billing-payment-form{display:grid;grid-template-columns:.7fr .8fr 1fr 1.4fr auto;gap:10px;align-items:end}.billing-payment-form label{margin:0}.billing-history-row form{margin:0}.onboarding-hero{background:linear-gradient(135deg,#0d5cf2,#6546df);color:#fff}.onboarding-hero .muted{color:#dce6ff}.onboarding-progress{height:9px;background:rgba(255,255,255,.2);border-radius:999px;overflow:hidden;margin-top:22px}.onboarding-progress i{display:block;height:100%;background:#fff;border-radius:999px}.onboarding-list{display:grid;gap:10px}.onboarding-step{display:flex;align-items:center;gap:15px;margin:0;text-decoration:none}.onboarding-step.done{opacity:.72}.onboarding-num{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#edf3ff;color:#205bd3;font-weight:900}.onboarding-step.done .onboarding-num{background:#eafaf1;color:#128357}.onboarding-step b,.onboarding-step small{display:block}.onboarding-step small{margin-top:3px;color:#7a859a}.onboarding-actions{display:flex;gap:10px;margin-top:16px}.onboarding-actions form{margin:0}.onboarding-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px;padding:16px 18px;border-radius:16px;background:linear-gradient(135deg,#eef4ff,#f4efff);border:1px solid #dfe6fb}.onboarding-banner b,.onboarding-banner small{display:block}.onboarding-banner small{margin-top:3px;color:#68758d}.billing-state-overdue{color:#b42318}
@media(max-width:1050px){.billing-summary-grid{grid-template-columns:repeat(3,1fr)}.billing-payment-form{grid-template-columns:1fr 1fr}.billing-payment-form .billing-note{grid-column:1/-1}.activation-grid{grid-template-columns:1fr}}@media(max-width:700px){.billing-summary-grid{grid-template-columns:1fr 1fr}.billing-payment-form{grid-template-columns:1fr}.billing-payment-form .billing-note{grid-column:auto}.onboarding-banner{align-items:flex-start;flex-direction:column}.onboarding-actions{flex-direction:column}.onboarding-actions .btn{width:100%}}

/* PATCH 021: clearer validation feedback */
.input-error{border-color:#ef4444!important;box-shadow:0 0 0 3px rgba(239,68,68,.08)!important}.field-error{display:block;margin-top:6px;color:#b91c1c;font-size:12px;font-weight:700}.errors{scroll-margin-top:20px}


/* PATCH 022 — Release Candidate UX + lead deletion */
.nav-progress{position:fixed;z-index:99999;top:0;left:0;height:3px;width:0;opacity:0;background:linear-gradient(90deg,#2563eb,#7c3aed);box-shadow:0 0 12px rgba(37,99,235,.45);transition:width .25s ease,opacity .15s ease;pointer-events:none}.nav-progress.show{opacity:1}
.lead-card-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.lead-primary-actions{display:flex;gap:8px;flex-wrap:wrap}.lead-delete-form{margin:0}.danger-outline{border-color:#fecaca!important;color:#b91c1c!important;background:#fff!important}.danger-outline:hover{background:#fef2f2!important;border-color:#fca5a5!important}.diag-head-actions form{margin:0}
@media(max-width:700px){.lead-card-actions,.lead-primary-actions{display:grid;grid-template-columns:1fr;width:100%}.lead-delete-form,.lead-delete-form .btn,.lead-primary-actions .btn{width:100%}}


/* PATCH 023 — tenant Google Authenticator + Pro team policy */
.security-team-policy{border-color:#dbeafe}.security-team-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}.security-team-stats>div{padding:14px;border:1px solid var(--line);border-radius:12px;background:#f8fafc;display:grid;gap:4px}.security-team-stats span{color:var(--muted);font-size:12px}.security-team-stats b{font-size:22px}.two-factor-policy-note{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;margin:0 0 14px;border:1px solid #bbf7d0;background:#f0fdf4;border-radius:12px}.two-factor-policy-note b{color:#047857}.two-factor-policy-note span{color:#475569}.two-factor-policy-note a{margin-left:auto}.two-factor-line{display:block!important;margin-top:4px;font-size:12px}.two-factor-line.is-on{color:#047857!important}.two-factor-line.is-off{color:#b45309!important}.company-2fa-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}.company-2fa-summary.is-on{border-color:#bbf7d0;background:#f0fdf4}.company-2fa-summary>div{display:grid;gap:3px}.company-2fa-summary small{color:var(--muted)}.super-user-security-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.super-user-security-actions form{margin:0}
@media(max-width:700px){.security-team-stats{grid-template-columns:1fr}.two-factor-policy-note a{margin-left:0;width:100%}.company-2fa-summary{align-items:flex-start}.super-user-security-row{align-items:flex-start}.super-user-security-actions{justify-content:flex-end}}
