:root{--crm-primary:#3859f3;--crm-primary-dark:#2944c9;--crm-ink:#172033;--crm-muted:#778198;--crm-bg:#f5f7fb;--crm-border:#e6eaf2;--crm-sidebar:#111827;--crm-radius:16px;--crm-shadow:0 6px 30px rgba(21,35,72,.06)}
*{box-sizing:border-box}body{margin:0;background:var(--crm-bg);color:var(--crm-ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:14px}.btn{border-radius:9px}.btn-primary{background:var(--crm-primary);border-color:var(--crm-primary)}.btn-primary:hover{background:var(--crm-primary-dark);border-color:var(--crm-primary-dark)}.form-control,.form-select,.input-group-text{border-color:#dde3ee;border-radius:9px;min-height:40px}.form-control:focus,.form-select:focus{border-color:#9aaafd;box-shadow:0 0 0 .2rem rgba(56,89,243,.1)}.form-label{font-size:.78rem;font-weight:650;color:#59657b;margin-bottom:.4rem}.table{--bs-table-bg:transparent}.table thead th{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#7b8497;font-weight:700;border-bottom-color:var(--crm-border);background:#fafbfc;white-space:nowrap}.table td{border-color:#eef1f6;padding:.85rem .8rem}.app-shell{display:flex;min-height:100vh}.sidebar{width:246px;background:linear-gradient(180deg,#101827,#151f31);position:fixed;left:0;top:0;bottom:0;z-index:1040;padding:24px 16px;display:flex;flex-direction:column;transition:.25s}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 24px;color:#fff}.brand strong{display:block;font-size:1rem}.brand small{display:block;color:#8e99aa;font-size:.72rem;margin-top:1px}.brand-mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#5772ff,#304ee5);color:#fff;display:inline-grid;place-items:center;font-weight:800;box-shadow:0 7px 18px rgba(60,91,245,.35)}.brand-mark-lg{width:50px;height:50px;border-radius:14px;font-size:1.25rem}.sidebar-nav{gap:4px}.sidebar-nav .nav-link{color:#9ba6b8;border-radius:10px;padding:10px 12px;display:flex;align-items:center;gap:11px;font-weight:520}.sidebar-nav .nav-link i{font-size:1.05rem;width:20px}.sidebar-nav .nav-link:hover{color:#fff;background:rgba(255,255,255,.05)}.sidebar-nav .nav-link.active{background:rgba(79,105,255,.18);color:#fff}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.08);padding:18px 8px 0}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#334155;color:#fff;font-weight:700}.tiny{font-size:.68rem}.main-content{margin-left:246px;width:calc(100% - 246px);min-width:0}.topbar{height:70px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--crm-border);display:flex;align-items:center;padding:0 28px;position:sticky;top:0;z-index:1020}.topbar-title{font-size:.92rem}.content-wrap{padding:28px}.page-title{font-size:1.65rem;font-weight:680;letter-spacing:-.035em;margin:0}.page-subtitle{color:var(--crm-muted);margin:.35rem 0 0;font-size:.9rem}.panel-card{border:1px solid var(--crm-border);border-radius:var(--crm-radius);box-shadow:var(--crm-shadow);overflow:hidden}.panel-header{background:#fff;border-bottom:1px solid var(--crm-border);padding:16px 18px;display:flex;justify-content:space-between;align-items:center}.metric-card{background:#fff;border:1px solid var(--crm-border);border-radius:var(--crm-radius);padding:18px;box-shadow:var(--crm-shadow);display:flex;gap:14px;align-items:flex-start;height:100%}.metric-icon{width:42px;height:42px;border-radius:12px;background:#eef1ff;color:var(--crm-primary);display:grid;place-items:center;font-size:1.1rem}.metric-icon.danger{background:#fff0f1;color:#d74654}.metric-icon.success{background:#ecfbf4;color:#15956f}.metric-label{font-size:.76rem;color:var(--crm-muted);font-weight:650}.metric-value{font-size:1.32rem;font-weight:750;letter-spacing:-.03em;margin-top:2px}.metric-foot{font-size:.7rem;color:#9ba3b2;margin-top:2px}.score-progress{height:6px;background:#e9edf5;border-radius:99px}.score-progress .progress-bar{background:linear-gradient(90deg,#4c68f6,#8c5cf7);border-radius:99px}.priority-score{background:#eef1ff;color:#425bf0;border-radius:8px;padding:5px 9px;font-weight:800}.activity-row{display:flex;align-items:center;gap:12px;padding:13px 16px;border-color:#eef1f6}.activity-type{width:38px;height:38px;border-radius:11px;background:#eef3ff;color:#3c5ef3;display:grid;place-items:center;flex:none}.activity-type.sm{width:30px;height:30px;border-radius:8px}.stage-badge{font-size:.68rem;padding:.42rem .55rem;border-radius:7px}.stage-lead{background:#f0f2f6;color:#596274}.stage-opportunity{background:#fff4d8;color:#986b00}.stage-prospect{background:#eaf2ff;color:#2c5bb7}.stage-client{background:#e9f9f1;color:#177553}.timeline{position:relative}.timeline-item{position:relative;padding-left:28px;padding-bottom:24px}.timeline-item:before{content:"";position:absolute;left:7px;top:13px;bottom:-4px;width:1px;background:#e2e6ee}.timeline-item:last-child:before{display:none}.timeline-dot{position:absolute;left:2px;top:5px;width:11px;height:11px;border-radius:50%;background:#5068f5;border:2px solid #fff;box-shadow:0 0 0 2px #cad3ff}.result-box{padding:9px 11px;background:#f7f8fb;border-radius:8px;font-size:.82rem}.detail-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:#9098a8;font-weight:700;margin-bottom:4px}.mini-metric{background:#fff;border:1px solid var(--crm-border);border-radius:13px;padding:14px 16px;box-shadow:var(--crm-shadow);height:100%}.mini-metric strong{font-size:1.25rem;display:block;margin-top:3px}.builder-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px}.add-area-group{max-width:420px}.quote-area{background:#fff;border:1px solid var(--crm-border);border-radius:15px;overflow:hidden;margin-bottom:16px;box-shadow:0 4px 22px rgba(30,45,80,.04)}.area-head{min-height:54px;padding:8px 12px 8px 15px;display:flex;align-items:center;gap:10px;background:#fbfcfe;border-bottom:1px solid #edf0f5}.area-index{font-size:.72rem;background:#e9edff;color:#4159de;border-radius:7px;padding:5px 7px;font-weight:800}.area-name{background:transparent;min-height:34px!important}.furniture-card{border:1px solid #e5e9f1;border-radius:12px;margin-bottom:14px;overflow:hidden;background:#fff}.furniture-head{display:flex;align-items:center;gap:8px;padding:7px 9px 7px 12px;border-bottom:1px solid #edf0f5;background:#fff}.furniture-name{min-height:32px!important;background:transparent}.drag-dot{color:#c1c7d0;letter-spacing:-1px}.furniture-client{background:#fafbfe;border-bottom:1px solid #edf0f5}.mini-label{font-size:.67rem;text-transform:uppercase;letter-spacing:.04em;color:#8a93a4;font-weight:700;margin-bottom:4px}.component-table thead th{font-size:.64rem;padding:.45rem}.component-table td{padding:.35rem}.component-table .form-control,.component-table .input-group-text{min-height:31px;border-radius:6px}.quote-thumb{width:44px;height:34px;object-fit:cover;border-radius:7px;border:1px solid #dfe4ed}.empty-builder{border:1px dashed #cfd6e3;border-radius:16px;padding:60px 20px;text-align:center;color:#8a94a6;background:rgba(255,255,255,.45)}.empty-builder i{font-size:2rem;color:#8597ee}.empty-builder h3{font-size:1rem;color:#4f596b;margin:12px 0 5px}.empty-builder p{font-size:.8rem;margin:0}.sticky-summary{position:sticky;top:94px}.summary-row,.summary-total{display:flex;justify-content:space-between;gap:12px;padding:7px 0}.summary-row{font-size:.84rem;color:#687286}.summary-row strong{color:#2c3444}.summary-total{border-top:1px solid #e7eaf0;margin-top:8px;padding-top:14px;font-size:1rem}.summary-total strong{font-size:1.2rem}.autosave-state{font-size:.72rem;color:#6a9a81;background:#eef9f3;padding:4px 8px;border-radius:7px}.autosave-state.saving{color:#6d7482;background:#f0f2f5}.autosave-state.error{color:#b44350;background:#fff0f1}.notification-item.unread{background:#f4f6ff;border-left:3px solid #536cf6}.push-enabled{color:#177553!important;background:#e9f9f1!important}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top right,#e7ebff 0,transparent 36%),linear-gradient(145deg,#f4f6fb,#edf1f8)}.login-card{width:min(430px,calc(100% - 32px));background:#fff;border:1px solid #e3e7ef;border-radius:22px;box-shadow:0 24px 80px rgba(23,34,62,.12);padding:40px}.font-monospace{font-size:.82rem}
@media(max-width:991.98px){.sidebar{transform:translateX(-100%)}.sidebar.open{transform:translateX(0);box-shadow:18px 0 40px rgba(0,0,0,.2)}.main-content{margin-left:0;width:100%}.content-wrap{padding:20px}.topbar{padding:0 18px}.builder-toolbar{align-items:stretch;flex-direction:column}.add-area-group{max-width:none}.sticky-summary{position:static}}
@media(max-width:575.98px){.content-wrap{padding:16px}.page-title{font-size:1.4rem}.metric-card{padding:14px;gap:9px}.metric-icon{width:34px;height:34px}.metric-value{font-size:1rem}.metric-foot{display:none}.login-card{padding:28px 22px}.topbar-title span{display:none}.panel-card{border-radius:13px}}
.timeline-item{position:relative;display:grid;grid-template-columns:18px 1fr;gap:12px;padding:0 0 22px 0}.timeline-item:not(:last-child):before{content:"";position:absolute;left:5px;top:12px;bottom:0;width:1px;background:#dde2e7}.timeline-dot{width:11px;height:11px;border-radius:50%;background:#2f6f59;margin-top:5px;position:relative;z-index:1;box-shadow:0 0 0 4px #eef6f2}

/* Riwell v0.3 — brand palette and lighter collapsible navigation */
:root{
  --crm-primary:#9ABC68;--crm-primary-dark:#7F9F52;--crm-primary-soft:#F0F6E8;
  --crm-accent:#967ADC;--crm-info:#5487B9;--crm-brand-pink:#FF1B50;
  --crm-ink:#1D2B36;--crm-muted:#74808A;--crm-bg:#F6F8F5;--crm-border:#E3E9E0;
  --crm-sidebar:#FAFCF8;--crm-radius:15px;--crm-shadow:0 7px 28px rgba(29,43,54,.055)
}
body{background:var(--crm-bg);color:var(--crm-ink)}
a{color:#66893D}.btn-primary{background:var(--crm-primary);border-color:var(--crm-primary);color:#172117}.btn-primary:hover,.btn-primary:focus{background:var(--crm-primary-dark);border-color:var(--crm-primary-dark);color:#fff}.btn-outline-primary{color:#6E9145;border-color:#9ABC68}.btn-outline-primary:hover{background:#9ABC68;border-color:#9ABC68;color:#172117}.form-control:focus,.form-select:focus{border-color:#9ABC68;box-shadow:0 0 0 .2rem rgba(154,188,104,.15)}
.sidebar{width:252px;background:var(--crm-sidebar);border-right:1px solid var(--crm-border);padding:20px 14px;color:var(--crm-ink);box-shadow:5px 0 24px rgba(29,43,54,.025)}
.brand{color:var(--crm-ink);padding:2px 8px 24px;min-height:57px;overflow:hidden}.brand-logo{width:115px;max-height:40px;object-fit:contain;object-position:left center;display:block}.brand-copy{display:none}.sidebar-nav{gap:5px}.sidebar-nav .nav-link{color:#66727B;border-radius:10px;padding:10px 12px;font-weight:570;white-space:nowrap}.sidebar-nav .nav-link:hover{color:var(--crm-ink);background:#F0F4ED}.sidebar-nav .nav-link.active{background:#EAF3DF;color:#557B2E;box-shadow:inset 3px 0 0 #9ABC68}.sidebar-nav .nav-link i{color:#7C8991}.sidebar-nav .nav-link.active i{color:#6F9444}.sidebar-footer{border-top:1px solid var(--crm-border);padding:18px 8px 0}.avatar{background:#E3EDDA;color:#557B2E}.main-content{margin-left:252px;width:calc(100% - 252px);transition:.25s}.topbar{background:rgba(255,255,255,.92);border-bottom-color:var(--crm-border)}.menu-toggle{color:#53616A}.sidebar-backdrop{display:none}
.app-shell.sidebar-collapsed .sidebar{width:78px;padding-left:11px;padding-right:11px}.app-shell.sidebar-collapsed .main-content{margin-left:78px;width:calc(100% - 78px)}.app-shell.sidebar-collapsed .brand{justify-content:center;padding-left:0;padding-right:0}.app-shell.sidebar-collapsed .brand-logo{width:45px;height:35px;object-fit:cover;object-position:left}.app-shell.sidebar-collapsed .sidebar-nav .nav-link{justify-content:center;padding:11px}.app-shell.sidebar-collapsed .sidebar-nav .nav-link i{width:auto;font-size:1.15rem}.app-shell.sidebar-collapsed .sidebar-nav .nav-link span,.app-shell.sidebar-collapsed .sidebar-user-copy,.app-shell.sidebar-collapsed .sidebar-logout span{display:none}.app-shell.sidebar-collapsed .sidebar-user{justify-content:center}.app-shell.sidebar-collapsed .sidebar-footer{padding-left:0;padding-right:0}
.metric-icon{background:var(--crm-primary-soft);color:#658A3B}.priority-score{background:#EEF5E6;color:#63873B}.score-progress .progress-bar{background:linear-gradient(90deg,#9ABC68,#5487B9)}.timeline-dot{background:#9ABC68;box-shadow:0 0 0 4px #EEF5E6}.area-index{background:#EEF5E6;color:#648A3B}.empty-builder i{color:#9ABC68}.notification-item.unread{background:#F3F7EE;border-left-color:#9ABC68}
.builder-toolbar-stacked{display:block}.builder-toolbar-stacked .add-area-group{max-width:520px}.subarea-add-row{display:flex;align-items:center;gap:8px}.subarea-add-row .new-furniture-name{flex:1;min-width:0}.subarea-add-row .btn{white-space:nowrap}.furniture-reference{text-align:center}.furniture-reference .quote-thumb{width:100%;height:100px;object-fit:contain;background:#fff}.furniture-image-placeholder{height:100px;border:1px dashed #CDD6C8;border-radius:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#99A394;background:#FCFDFC;gap:3px}.furniture-image-placeholder i{font-size:1.3rem}.furniture-image-placeholder span{font-size:.68rem}.catalog-autocomplete{position:relative;min-width:300px;max-width:480px;flex:1}.catalog-autocomplete-results{display:none;position:absolute;right:0;left:0;top:100%;margin-top:4px;z-index:1060;max-height:310px;overflow:auto;box-shadow:0 12px 35px rgba(29,43,54,.14);border-radius:10px}.catalog-autocomplete-results.show{display:block}.catalog-autocomplete-results .list-group-item{font-size:.76rem}.total-card{overflow:visible}.commercial-adjustments .btn-light{background:#F6F8F4;border-color:#E6EBE2}.commercial-stepper .form-control{min-width:50px}.quote-side-actions .btn{border:1px solid var(--crm-border);background:#fff;display:flex;align-items:center;min-height:43px}.quote-side-actions .btn:hover{border-color:#CBD9C2;background:#F8FBF5}.quote-side-actions .btn-operation{background:#EEF5E6;border-color:#DCE9D0;color:#567B30;font-weight:600}.offcanvas{--bs-offcanvas-width:min(480px,94vw)}.offcanvas-header{border-bottom:1px solid var(--crm-border);padding:1.25rem 1.5rem}.offcanvas-body{padding:1.5rem}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:#8B9686;font-size:.65rem;font-weight:700;margin-bottom:3px}.export-list .list-group-item{padding:14px 12px;border-color:#E9EDE6}.export-list .list-group-item i:first-child{color:#789A51}.export-list .expediente-link{background:#F4F8EF}.documents-offcanvas{--bs-offcanvas-width:min(520px,94vw)}
.catalog-toolbar{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center}.catalog-thumb{width:62px;height:46px;object-fit:contain;border:1px solid var(--crm-border);border-radius:7px;background:#fff}.catalog-editor{border:1px solid #DCE3D8;border-radius:10px;overflow:hidden;background:#fff}.catalog-editor-toolbar{display:flex;flex-wrap:wrap;gap:5px;padding:8px;background:#F7F9F5;border-bottom:1px solid #E4E9E1}.campaign-editor{min-height:360px;padding:18px;outline:none;overflow:auto}.campaign-editor:focus{box-shadow:inset 0 0 0 2px rgba(154,188,104,.25)}.campaign-source{min-height:360px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;border:0;border-radius:0}
@media(max-width:991.98px){.sidebar{width:252px;transform:translateX(-100%)}.sidebar.open{transform:translateX(0);box-shadow:18px 0 40px rgba(0,0,0,.14)}.main-content,.app-shell.sidebar-collapsed .main-content{margin-left:0;width:100%}.sidebar-backdrop.show{display:block;position:fixed;inset:0;background:rgba(29,43,54,.25);z-index:1035}.catalog-autocomplete{min-width:220px}.subarea-add-row{align-items:stretch}.subarea-add-row .btn{flex:none}}
@media(max-width:575.98px){.subarea-add-row{flex-direction:column}.subarea-add-row .btn{width:100%}.catalog-autocomplete{min-width:100%;max-width:none}.quote-side-actions{margin-bottom:1rem}}
.nav-pills .nav-link{color:#66727B;border-radius:9px}.nav-pills .nav-link.active{background:#EAF3DF;color:#557B2E}.catalog-thumb.d-grid{place-items:center}

/* Riwell r12 — unified table/actions UI */
.btn-icon{width:34px;height:34px;padding:0;display:inline-grid;place-items:center;border-radius:9px;vertical-align:middle}.btn-icon i{font-size:.95rem;line-height:1}.table-actions{display:inline-flex;gap:5px;justify-content:flex-end;align-items:center;white-space:nowrap}.riwell-sortable{cursor:pointer;user-select:none;transition:color .15s ease}.riwell-sortable:hover{color:#557B2E}.riwell-sortable[aria-sort="ascending"],.riwell-sortable[aria-sort="descending"]{color:#557B2E}.riwell-sort-icon{font-size:.68rem;margin-left:.35rem;color:#A1AAA0}.riwell-table-footer{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff;border-top:1px solid var(--crm-border)}.riwell-table-footer .riwell-page-size{width:auto;min-height:31px;padding-top:.2rem;padding-bottom:.2rem}.riwell-table-footer .page-link{color:#66727B;border-color:#E1E7DE;min-width:31px;text-align:center}.riwell-table-footer .page-item.active .page-link{background:#9ABC68;border-color:#9ABC68;color:#172117}.riwell-table-footer .page-link:focus{box-shadow:0 0 0 .15rem rgba(154,188,104,.18)}
@media(max-width:575.98px){.riwell-table-footer{align-items:flex-start;flex-direction:column}.riwell-table-footer>div:last-child{margin-left:0!important;width:100%;justify-content:space-between}.table-actions{gap:3px}}

/* r15: normalized campaign actions and company locations */
.campaign-actions>form{display:flex;align-items:flex-start;margin:0}.campaign-actions>.btn,.campaign-actions>form>.btn{min-height:40px;height:40px;padding:.375rem .75rem;white-space:nowrap}.company-location-card{background:#fff}.company-location-card .btn-icon{flex:none}.sidebar-collapsed .brand-logo{object-fit:contain!important}.was-validated .form-control:invalid,.was-validated .form-select:invalid,.form-control.is-invalid,.form-select.is-invalid{border-color:var(--bs-form-invalid-border-color)}
.notification-badge{position:absolute;top:-5px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#dc3545;color:#fff;border:2px solid #fff;font-size:10px;font-weight:800;line-height:14px;text-align:center;box-shadow:0 2px 6px rgba(0,0,0,.16)}
