/* ProfMebel CRM: warm branded actions, neutral surfaces, semantic statuses.
   Loaded after module CSS to ensure one consistent visual language. */
:root{
  --brand-yellow:#e9c86e;
  --brand-yellow-hover:#dfbc5e;
  --brand-ink:#28313d;
  --brand-border:#e8dfc9;
  --brand-tint:#fff9ea;
  --crm-focus:#aa842e;
  --crm-border:#e0e5ec;
  --crm-muted:#68798b;
}
body{background:#f5f6f9;color:#283449}
.shell{width:min(100% - 46px,1280px)}
a{color:#486385}
.site-header{border-color:#e5e8ec;box-shadow:0 2px 14px #15243d06}
.header-inner{min-height:90px}
.brand-logo{filter:none}
.nav-link{color:#405269;font-weight:600}
.nav-link:hover{color:#715000}
main.shell{padding-top:30px;padding-bottom:64px}
.site-footer{border-top:1px solid #e7e9ee;padding-top:20px}
.page-heading{margin-bottom:23px}
.page-heading h1{letter-spacing:-.036em;color:#182b40;font-size:clamp(28px,3vw,37px)}
.page-heading .subtle{font-size:15px}
.eyebrow{color:#9a6b05;font-size:12px;letter-spacing:.075em}
.panel,.tile{border:1px solid #e3e7ed;box-shadow:0 6px 25px #1a2c4010;border-radius:17px}
.panel{padding:clamp(18px,2.5vw,30px)}
.tile{padding:26px}
.tile:hover{border-color:#e6bb39;box-shadow:0 12px 30px #242d4220}
.tile-icon,.tile-more{color:#9e7005}
.button{border:1px solid #d9e1e7;background:#fff;color:#293d50;min-height:42px;border-radius:10px;padding:10px 16px;font-size:14px;font-weight:750;text-decoration:none;transition:background-color .15s,border-color .15s,box-shadow .15s,transform .15s}
.button:hover:not(:disabled){border-color:#c9b578;background:#fff9e5;filter:none}
.button.primary{background:var(--brand-yellow);color:#222a34;border:1px solid #d0a94d;box-shadow:0 3px 10px #93733415}
.button.primary:hover:not(:disabled):not([aria-busy="true"]){background:var(--brand-yellow-hover);border-color:#c59a40;box-shadow:0 5px 13px #9277341a}
.button.primary:active:not(:disabled):not([aria-busy="true"]){background:#d3af53;border-color:#b78d31;box-shadow:inset 0 2px 4px #8c6a2b24}
.button.primary:focus:not(:focus-visible){outline:none}
.button.primary:disabled,.button.primary[aria-busy="true"]{background:#e7d6aa;border-color:#d4be87;color:#555044;box-shadow:none;cursor:progress;opacity:1}
.button.primary:disabled:active{background:#e7d6aa}
.button:focus-visible,:is(a,input,select,textarea,button,summary):focus-visible{outline:3px solid #d1aa51!important;outline-offset:2px}
:where(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){min-width:0;max-width:100%;border-radius:10px;color:#283d51;line-height:1.4}
:where(input[type=checkbox],input[type=radio]){accent-color:#c89600}
.form-stack{gap:19px}
.form-stack label{color:#2d4255;font-weight:750}
.form-stack :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){background:#fff;border:1px solid #cdd7e0;min-height:44px}
.form-stack :is(input,select,textarea):focus-visible{border-color:#d2a11e;box-shadow:0 0 0 3px #ffdd6b4d}
.form-stack input[type=checkbox],.form-stack input[type=radio]{min-height:auto;width:auto}
.crm-menu{display:flex;gap:9px;margin:0 0 26px;padding:5px 0;align-items:center;flex-wrap:wrap}
.crm-menu a{border:1px solid #e1e5eb;border-radius:10px;background:#fff;color:#31465b;min-height:42px;display:inline-flex;align-items:center;padding:10px 15px;font-size:13px;font-weight:750}
.crm-menu a:hover,.crm-menu a[aria-current=page]{border-color:#e2c77e;background:#fff7e3;color:#634800}
.crm-filterbar{border:1px solid #e0e5eb;box-shadow:0 6px 20px #172a3a09;border-radius:16px;padding:19px 22px;gap:13px}
.crm-filterbar :is(input,select){border-color:#cdd7e1;min-height:44px}
.crm-filterbar :is(input,select):focus-visible{outline:3px solid #f2d16b!important}
.crm-filterbar label{color:#455b72;font-size:12px}
.crm-list-panel{padding:0;overflow:hidden}
.crm-list-intro{padding:17px 22px;background:#fff}
.data-table thead th{background:#f8f9fb;color:#5f7186;letter-spacing:.035em}
.data-table tbody tr:hover{background:#fffaf0}
.data-table :is(td,th){border-bottom-color:#e9edf2}
.crm-app-table tbody tr:hover{background:#fff9e8}
.crm-record-id,.crm-client-link{color:#384e6d}
.crm-profile-chip{background:#fff7df;color:#866006;border-color:#f2deaa}
.crm-client-table{width:100%;min-width:640px;table-layout:fixed}
.crm-client-table :is(td,th){padding:16px 19px;vertical-align:middle}
.crm-client-table th:nth-child(1){width:27%}
.crm-client-table th:nth-child(2){width:30%}
.crm-client-table th:nth-child(3){width:15%}
.crm-client-table th:nth-child(4){width:17%}
.crm-client-table th:nth-child(5){width:11%}
.crm-client-table td small{display:block;color:#788a9e;margin-top:6px}
.crm-contact-line{display:block;line-height:1.5;overflow-wrap:anywhere}
.crm-list-action{font-size:12px;font-weight:700;white-space:nowrap}
.crm-empty-results .button{margin-top:16px}
.crm-form-step{padding:28px 37px 32px}
.crm-step-number{background:#fff2c4;color:#805b00;border:1px solid #f0d781}
.crm-step-heading{margin-bottom:22px}
.crm-step-heading h2{font-size:19px}
.crm-step-heading small{font-size:13px;line-height:1.5}
.crm-step-body :is(textarea,input,select):focus{border-color:#d1a32b;box-shadow:0 0 0 3px #f5d7724f}
.crm-form-actions{background:#fafbfd;border-color:#e8ecf0;padding:22px 36px}
.crm-client-create-page{max-width:860px}
.crm-client-create-panel{padding:28px 32px 0;overflow:hidden}
.crm-client-create-panel>.form-stack,.crm-client-create-panel .form-stack{gap:18px;margin:0}
.crm-form-section-heading{display:flex;gap:13px;align-items:center;padding-bottom:17px;border-bottom:1px solid #e6e9f0}
.crm-form-section-heading h2{margin:0;font-size:18px}
.crm-form-section-heading p{margin-top:4px;font-size:13px}
.crm-client-fields{padding-bottom:8px}
.crm-field-span{grid-column:1 / -1}
.crm-client-fields>div{min-width:0}
.crm-client-fields label{display:block;margin-bottom:7px}
.crm-client-fields :is(input,select,textarea){display:block;width:100%;min-height:45px;padding:11px 13px}
.crm-client-create-panel .crm-form-actions{margin:12px -32px 0;border-radius:0 0 17px 17px}
.crm-detail-heading{align-items:center}
.crm-detail-summary{font-size:15px;line-height:1.7}
.crm-kv-row{line-height:1.55}
.crm-client-record{background:#fafbfd}
.crm-client-record:hover{border-color:#ecd590;background:#fffaf0}
.crm-flag.is-active,.crm-mini-badge{background:#fff4d0;color:#805800;border:1px solid #efddac}
.crm-step-body .client-suggestions,.crm-client-preview{border-color:#ead9ac;background:#fffaf0;color:#604c23}
.crm-field-locked{border-color:#e7d08a!important;background:#fffcf5!important}
.crm-matched-caption{color:#795400!important}
.crm-lead-label{align-items:center}
.fabric-card{transition:transform .15s,border-color .15s,box-shadow .15s}
.fabric-card:hover{border-color:#e8c457;transform:translateY(-2px);box-shadow:0 12px 29px #1c304516}
.fabric-card-body{gap:9px;padding:16px}
.fabric-form-shell{padding:30px 36px}
.fabric-form-actions{gap:12px;margin-top:8px}
.fabric-dialog,.crm-action-dialog,.fit-dialog{border:1px solid #dfe3eb;border-radius:18px;box-shadow:0 22px 70px #17263a55}
.fabric-dialog::backdrop,.crm-action-dialog::backdrop,.fit-dialog::backdrop{background:#10233fb5}
.fabric-dialog :is(input,select,textarea),.crm-action-dialog :is(input,select,textarea),.fit-dialog :is(input,select,textarea){border-color:#ccd7e1}
.crm-action-switch{background:#f5f5f6}
.crm-action-switch button[aria-pressed=true]{color:#775300;background:#fff1bb}
.fabric-color-editor,.fit-estimate,.fit-advanced-entry{background:#fffaf0;border-color:#eddbb2}
.fit-progress .fit-spinner{border-color:#f9e9b5;border-top-color:#d8a300}
.fit-photo-card:hover,.fit-photo-card:focus-visible,.fit-fabric-card:hover{border-color:#d1a01f}
.fit-photo-card.is-selected,.fit-editor-fabric.is-active{border-color:#c2920d;background:#fff8e2}
.fit-editor-toolbar .is-active{background:#fff3c9;border-color:#d1a326;color:#654b06}
.fit-editor-base{background:#fff9e8;border-color:#efdbab}
.fit-editor-base .fit-editor-toggle input{accent-color:#c39100}
.fit-editor-new-layer{background:#fff6d7}
/* Preserve semantic colors: error/warning states, success/failure and user-defined annotation colors. */
.notice.error,.crm-status-badge,.crm-status-badge::before{filter:none}
.crm-system-error{min-height:min(68vh,650px);display:grid;place-items:center;padding:26px 0}
.crm-system-error-panel{background:#fff;width:min(100%,720px);padding:clamp(30px,6vw,65px) clamp(25px,6vw,65px);border-radius:24px;border:1px solid #e4e6eb;box-shadow:0 16px 50px #1e304513;text-align:center}
.crm-system-error-code{font-size:clamp(52px,9vw,86px);line-height:1;font-weight:900;letter-spacing:-.06em;color:#d5a700;margin-bottom:17px}
.crm-system-error h1{font-size:clamp(26px,3.2vw,37px);letter-spacing:-.03em;color:#1c2e44;margin:0 0 14px;line-height:1.22}
.crm-system-error p{max-width:490px;margin:0 auto 28px;color:#67798a;font-size:15px;line-height:1.7}
.crm-system-error .button{min-width:220px}
@media(max-width:720px){.shell{width:min(100% - 26px,1280px)}.crm-client-table{min-width:640px}.crm-form-step{padding:21px 18px}.crm-client-create-panel{padding:20px 20px 0}.crm-client-create-panel .crm-form-actions{margin-left:-20px;margin-right:-20px}.crm-field-grid{grid-template-columns:1fr}.crm-form-actions{padding:20px}.site-header{padding-top:4px;padding-bottom:4px}}
/* Older modules used saturated green for arbitrary selections; reserve green for success. */
.pill-options label:has(input:checked),.crm-option-group label:has(input:checked),
.choice-fieldset label:has(input:checked){border-color:#d6b771!important;background:#fff7e4!important;color:#725311!important;box-shadow:0 0 0 1px #d6b771}
:is(.pill-options,.crm-option-group,.choice-fieldset) input:is([type=checkbox],[type=radio]){accent-color:#c99500}
.photo-dropzone{background:#fffaf0;border-color:#edce71;color:#664d0e}
.photo-dropzone:hover,.photo-dropzone.drag-over{background:#fff2cc;border-color:#cf9d11}
.photo-upload-icon{background:#e9c86e;color:#28313d}
.crm-task .button{background:#fff6de;color:#725306;border-color:#efdca6}
.crm-action-dialog .crm-action-switch button[aria-pressed=true]{box-shadow:0 1px 8px #64511e1c}
.fabric-additional-color>summary{background:#fff6d9;color:#715100;border-color:#eddbac}
.fabric-additional-color>summary:hover{background:#fff0c3}
.fabric-crop-handle{background:#e6ba14;box-shadow:0 0 0 1px #9c7b00}
.fit-editor-base .fit-editor-toggle input{accent-color:#c79404}
.fit-photo-card.is-selected::after{background:#d5a207;color:#1f2937}
.fit-editor-region.is-selected{border-color:#d4a52b;box-shadow:0 0 0 1px #d4a52b}
.fit-editor-fabric:hover{border-color:#d7aa3b;background:#fff8e2}
.fit-editor-fabric.is-active{box-shadow:0 0 0 2px #d3a22c}
/* Staff list and fabric catalog use the same registry grammar as requests/clients. */
.crm-worker-table{min-width:780px}
.crm-worker-table td,.crm-worker-table th{padding:15px 17px;vertical-align:middle}
.crm-worker-table th:nth-child(1){width:19%}.crm-worker-table th:nth-child(2){width:16%}
.crm-worker-table th:nth-child(3){width:12%}.crm-worker-table th:nth-child(4){width:17%}
.crm-worker-table th:nth-child(5){width:24%}.crm-worker-table th:nth-child(6){width:12%}
.crm-person-status{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:5px 9px;border:1px solid #cfd8e3;font-weight:750;font-size:12px;white-space:nowrap}
.crm-person-status::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.crm-person-status.is-active{color:#25784b;background:#eaf6ee;border-color:#c2e3cd}
.crm-person-status.is-inactive{color:#6c7785;background:#f3f5f8;border-color:#dce1e6}
.crm-catalog-filter{display:flex;align-items:end;gap:14px;flex-wrap:wrap;background:#fff;border:1px solid #e3e7ed;padding:17px 20px;border-radius:16px;box-shadow:0 5px 21px #192b3d10;margin:0 0 22px}
.crm-catalog-filter label{display:grid;gap:7px;min-width:160px;flex:1;font-size:13px;font-weight:750;color:#44576a}
.crm-catalog-filter label:first-child{flex:2}
.crm-catalog-filter :is(input,select){min-height:43px;width:100%;border:1px solid #ccd7e0;border-radius:10px;padding:9px 12px}
.crm-catalog-filter>.button{min-height:43px;padding:9px 20px}
@media(max-width:600px){.crm-catalog-filter label{flex-basis:100%}.crm-catalog-filter>.button{width:100%}}

/* v0.5.2.10: cohesive, muted amber interactions.
   Interactive focus must remain visible for keyboard users, without carrying
   the previous saturated green palette into pointer-selected controls. */
:root{
  --brand-focus:#af8737;
  --brand-focus-halo:#f2dfa8;
}
:where(.pill-options,.crm-option-group,.choice-fieldset) label:focus-within{
  outline:none!important; /* Mouse focus does not add a second halo around a selected pill. */
}
:where(.pill-options,.crm-option-group,.choice-fieldset) label:has(input:focus-visible){
  outline:2px solid var(--brand-focus)!important;
  outline-offset:3px;
}
:where(.pill-options,.crm-option-group,.choice-fieldset) label:has(input:checked){
  border-color:#d6b771!important;
  background:#fff7e4!important;
  color:#725311!important;
  box-shadow:inset 0 0 0 1px #d6b771!important;
}
:where(.pill-options,.crm-option-group,.choice-fieldset) input:is([type=radio],[type=checkbox]){
  accent-color:var(--brand-focus)!important;
}
/* Also cover mouse focus on ordinary form fields; keep warning/error
   borders intact by restricting this to the normal non-invalid state. */
.crm-intake-form :is(input:not([type=radio]):not([type=checkbox]),select,textarea):focus:not([aria-invalid=true]),
.crm-client-create-panel :is(input,select,textarea):focus:not([aria-invalid=true]),
.fabric-form-shell :is(input,select,textarea):focus:not([aria-invalid=true]){
  border-color:var(--brand-focus)!important;
  box-shadow:0 0 0 3px #e9c86e36!important;
  outline:none;
}
.lead-source-option:hover,.lead-source-option:focus-visible,.lead-source-option[aria-current="true"]{
  background:#fff7e7;
}
/* Intake form follows the same left edge as its heading and other registries.
   Inner step padding provides the readable inset, so no outer panel padding. */
.panel.crm-intake-panel{
  width:100%;
  max-width:1120px;
  margin:0;
  padding:0;
  overflow:hidden;
}
@media(max-width:720px){
  .panel.crm-intake-panel{max-width:100%}
}

/* Keep nonsemantic photo controls and sliders in the same focus palette.
   Actual success/error badges retain their meaning and original color. */
.visually-hidden-file:focus-visible + .photo-status,
.fabric-photo:focus-within{
  outline:2px solid var(--brand-focus)!important;
  outline-offset:2px;
}
:is(input[type=checkbox],input[type=radio],input[type=range]){
  accent-color:var(--brand-focus)!important;
}
#fit-editor-zoom-fit{
  background:#fff6e2;
  border-color:#e8d7ab;
  color:#705319;
}
#fit-editor-zoom-fit:hover{background:#ffefd0}
