:root{
  --bg:#f4f7fb;
  --panel:#ffffff;
  --text:#0d2340;
  --muted:#6f7d8f;
  --navy:#0b2d52;
  --navy2:#123d70;
  --royal:#2f5ea8;
  --blue:#397abe;
  --cyan:#10a7d7;
  --cyan2:#0799c8;
  --line:#dce5ef;
  --soft:#edf4fa;
  --green:#208a67;
  --amber:#a96f12;
  --red:#b23a3a;
  --shadow:0 12px 34px rgba(12,45,82,.10);
  --shadow-lg:0 26px 80px rgba(5,27,51,.20)
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit}.hidden{display:none!important}

/* Login */
.login-shell{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 72% 18%,rgba(16,167,215,.16),transparent 28%),linear-gradient(135deg,#082847 0%,#0d365f 48%,#0a2748 100%);padding:28px}
.login-card{width:min(470px,94vw);background:#fff;padding:42px 42px 38px;border-radius:24px;box-shadow:0 30px 90px rgba(0,0,0,.30);border:1px solid rgba(255,255,255,.5)}
.login-logo{display:block;width:338px;max-width:92%;height:auto;margin:0 0 28px}
.login-card h1{margin:0 0 8px;font-size:32px;letter-spacing:-.03em;color:var(--navy)}
.login-card p,.login-card small{color:var(--muted)}

label{display:flex;flex-direction:column;gap:7px;font-weight:700;font-size:13px;margin-top:16px;color:var(--navy)}
.check{flex-direction:row;align-items:center}.check input{width:auto}
input,select,textarea{width:100%;border:1px solid #cfdbe7;border-radius:10px;padding:12px 13px;background:#fff;color:var(--text);outline:none;transition:.15s ease}
input:focus,select:focus,textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(16,167,215,.13)}
.primary,.secondary,.icon-btn,.nav-btn,.text-btn{border:0;border-radius:10px;padding:11px 15px;cursor:pointer}
.primary{background:linear-gradient(135deg,var(--cyan),#178cc9);color:#fff;font-weight:800;box-shadow:0 7px 16px rgba(16,167,215,.20)}
.primary:hover{background:linear-gradient(135deg,var(--cyan2),#157fb7)}
.secondary{background:#eef4fa;color:var(--navy);font-weight:750;border:1px solid #d8e4ef}
.secondary:hover{background:#e5eef7}.wide{width:100%;margin-top:22px}

/* App chrome */
.app{min-height:100vh;display:grid;grid-template-columns:250px 1fr}
.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,#082b4c 0%,#0b355d 58%,#071f39 100%);color:#fff;padding:20px 16px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:12px 0 30px rgba(7,31,57,.08)}
.logo-row{display:block;margin:0 4px 28px;padding-bottom:22px;border-bottom:1px solid rgba(255,255,255,.16)}
.sidebar-logo{display:block;width:170px;max-width:92%;height:auto;filter:brightness(0) invert(1);opacity:.98;margin-bottom:13px}
.sidebar-product strong{display:block;font-size:19px;letter-spacing:-.02em}.sidebar-product span{display:block;font-size:10px;color:#9fc7e7;letter-spacing:.11em;text-transform:uppercase;margin-top:4px}
.user-chip{padding:13px 12px;margin-bottom:8px;border-top:1px solid rgba(255,255,255,.14)}.user-chip strong{display:block}.user-chip span{display:block;font-size:12px;color:#a9c4d9;margin-top:3px}
.sidebar nav{display:grid;gap:7px}.nav-btn{position:relative;background:transparent;color:#d7e6f2;text-align:left;padding:13px 13px;font-weight:650}
.nav-btn:hover,.nav-btn.active{background:linear-gradient(90deg,rgba(16,167,215,.24),rgba(49,101,168,.22));color:#fff}
.nav-btn.active:before{content:"";position:absolute;left:-16px;top:6px;bottom:6px;width:4px;background:var(--cyan);border-radius:0 4px 4px 0}

.main{padding:0 30px 50px;min-width:0}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:23px 0 18px;position:sticky;top:0;background:rgba(244,247,251,.94);backdrop-filter:blur(10px);z-index:5;border-bottom:1px solid rgba(220,229,239,.65)}
.topbar h2{margin:0;font-size:29px;letter-spacing:-.035em;color:var(--navy)}.topbar p{margin:4px 0 0;color:var(--muted)}.top-actions{display:flex;gap:10px}
.view{display:none}.active-view{display:block}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:16px;margin:18px 0 22px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow)}
.kpi{position:relative;overflow:hidden}.kpi:after{content:"";position:absolute;right:-22px;top:-22px;width:74px;height:74px;border-radius:50%;background:rgba(16,167,215,.07)}
.kpi span{display:block;color:var(--muted);font-size:13px}.kpi strong{display:block;font-size:30px;margin-top:8px;color:var(--navy)}
.grid-2{display:grid;grid-template-columns:1.3fr .7fr;gap:18px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-head h3{margin:0;color:var(--navy)}.muted{color:var(--muted)}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:700px}th{font-size:11px;color:#77889a;text-align:left;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:11px 10px;border-bottom:1px solid var(--line)}td{padding:14px 10px;border-bottom:1px solid #edf2f7;font-size:14px;vertical-align:middle}.click-row{cursor:pointer}.click-row:hover{background:#f5f9fd}
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800;background:#e5f5ef;color:#197251;white-space:nowrap}.badge.warn{background:#fff2dc;color:var(--amber)}.badge.danger{background:#fdebea;color:var(--red)}
.mini{font-size:10px;padding:3px 6px;border-radius:999px;background:#eef4fa;color:var(--navy2);font-weight:800}.progress{height:8px;background:#e6edf5;border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--royal))}
.alert-list{display:grid;gap:10px}.alert{border:1px solid var(--line);border-left:4px solid var(--amber);border-radius:12px;padding:12px;background:#fff}.alert.danger{border-left-color:var(--red)}.alert strong{display:block;margin-bottom:4px}
.project-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.project-header h3{font-size:25px;margin:0;color:var(--navy)}
.tabs{display:flex;gap:5px;overflow:auto;margin:16px 0}.tab{border:0;background:transparent;padding:10px 13px;border-radius:9px;color:var(--muted);font-weight:800;cursor:pointer}.tab:hover{background:#edf4fa;color:var(--navy)}.tab.active{background:#dff4fb;color:#087ca6;box-shadow:inset 0 0 0 1px #b8e7f6}
.room-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.room-card{border:1px solid var(--line);border-radius:13px;padding:14px;background:#fff;box-shadow:0 5px 16px rgba(12,45,82,.04)}.room-top{display:flex;justify-content:space-between;gap:8px}.room-card strong{font-size:18px;color:var(--navy)}.room-meta{font-size:12px;color:var(--muted);margin:5px 0 12px}.text-btn{display:block;padding:0;margin-top:12px;background:transparent;color:var(--cyan2);font-size:12px;font-weight:850}
.spec-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.spec-card{border:1px solid var(--line);border-radius:14px;padding:15px;background:#fff}.spec-head{display:flex;justify-content:space-between;gap:10px}.detail-grid{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;font-size:12px}.detail-grid span{color:var(--muted)}
.mfg-board{display:grid;grid-template-columns:repeat(7,minmax(190px,1fr));gap:12px;overflow:auto}.mfg-col{min-height:330px;background:#eaf1f7;border:1px solid #dde7f1;border-radius:14px;padding:12px}.mfg-col h4{margin:2px 0 10px;color:var(--navy)}.work-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px;margin-bottom:9px;box-shadow:0 4px 12px rgba(12,45,82,.05)}.work-card strong,.work-card span,.work-card small{display:block}.work-card span,.work-card small{font-size:12px;color:var(--muted);margin-top:4px}.stage-select{min-width:150px;padding:7px}
.activity{display:grid;gap:10px}.activity-item{padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}.activity-item .meta{font-size:12px;color:var(--muted);margin-bottom:6px}

/* Modals */
dialog{border:0;border-radius:18px;padding:0;box-shadow:var(--shadow-lg);width:min(850px,94vw)}dialog.compact{width:min(660px,94vw)}dialog::backdrop{background:rgba(5,22,41,.56);backdrop-filter:blur(1px)}.modal-card{padding:25px 25px 24px}.modal-head{display:flex;justify-content:space-between}.modal-head h3{margin:0;font-size:25px;color:var(--navy)}.modal-head p{margin:5px 0;color:var(--muted)}.icon-btn{font-size:20px;background:transparent;color:var(--navy)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.empty{padding:35px;text-align:center;color:var(--muted)}.small-empty{padding:15px}.field-hint{display:block;color:var(--muted);font-size:11px;margin-top:4px;font-weight:500}a{color:var(--cyan2);font-weight:750;text-decoration:none}a:hover{text-decoration:underline}

@media(max-width:1100px){.kpis{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.room-grid{grid-template-columns:repeat(2,1fr)}.spec-grid{grid-template-columns:1fr}}
@media(max-width:780px){.app{grid-template-columns:1fr}.sidebar{position:relative;height:auto;padding:12px 12px 10px}.logo-row{display:flex;align-items:center;gap:12px;margin-bottom:10px;padding-bottom:10px}.sidebar-logo{width:120px;margin:0}.sidebar-product{display:none}.sidebar nav{display:flex;overflow:auto;gap:4px}.nav-btn{white-space:nowrap;padding:10px 12px}.nav-btn.active:before{display:none}.main{padding:0 14px 30px}.topbar{position:relative;align-items:flex-start;gap:12px}.topbar h2{font-size:25px}.top-actions{flex-direction:column}.kpis{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.room-grid{grid-template-columns:1fr}.mfg-board{grid-template-columns:repeat(7,240px)}.login-card{padding:32px 26px}.login-logo{width:308px;max-width:90%}}

/* V1.9 - Screenshot-matched THW blue interface */
:root{
  --bg:#f3f6f9;
  --panel:#ffffff;
  --text:#10243d;
  --muted:#6d7d8d;
  --navy:#062b50;
  --navy2:#0a3a68;
  --royal:#284d8c;
  --blue:#397abe;
  --cyan:#0aa8dc;
  --cyan2:#0796c8;
  --line:#d8e1ea;
  --soft:#eef3f7;
}
.app{grid-template-columns:244px 1fr;background:var(--bg)}
.sidebar{background:linear-gradient(180deg,#062d52 0%,#07345e 55%,#052746 100%);padding:0 12px 18px;box-shadow:none;border-right:1px solid rgba(255,255,255,.08)}
.logo-row{margin:0 -12px 18px;padding:14px 18px 14px;border-bottom:1px solid rgba(255,255,255,.18);min-height:88px;display:flex;align-items:center;gap:12px}
.sidebar-logo{width:150px;max-height:58px;object-fit:contain;object-position:left center;margin:0;filter:brightness(0) invert(1);opacity:1}
.sidebar-product{display:none}
.sidebar nav{gap:4px}.nav-btn{border-radius:6px;padding:13px 16px;color:#e4edf6;font-size:15px}.nav-btn:hover,.nav-btn.active{background:#0b5d91;color:#fff}.nav-btn.active:before{background:#09b1e6;left:-12px;top:0;bottom:0;width:5px;border-radius:0}
.main{padding:0 28px 50px}
.topbar{margin:0 -28px 22px;padding:16px 28px;background:linear-gradient(90deg,#062d52,#073760);border-bottom:1px solid #0c4a7e;color:#fff;box-shadow:0 3px 12px rgba(6,43,80,.14)}
.topbar h2{color:#fff;font-size:27px}.topbar p{color:#b9cde0}.topbar .secondary{background:transparent;color:#dceaf5;border:1px solid #6f93b4}.topbar .secondary:hover{background:rgba(255,255,255,.08)}
.primary{background:#0aa8dc;border-radius:7px;box-shadow:none}.primary:hover{background:#0796c8}.secondary{border-radius:7px;background:#fff;color:#16436d;border:1px solid #cbd8e4}
.card{border-radius:10px;box-shadow:0 2px 7px rgba(14,42,70,.04)}
.kpi strong,.section-head h3,.project-header h3{color:#102f54}
.tabs{border-bottom:1px solid #d8e1ea;gap:0}.tab{border-radius:0;padding:11px 14px}.tab.active{background:transparent;color:#087fa9;box-shadow:inset 0 -3px 0 #0aa8dc}
.progress>span{background:#0aa8dc}.text-btn,a{color:#078bb9}
input:focus,select:focus,textarea:focus{border-color:#0aa8dc;box-shadow:0 0 0 3px rgba(10,168,220,.13)}
dialog{border-radius:18px}.modal-head h3{color:#102f54}.modal-card{padding:28px}.login-shell{background:linear-gradient(135deg,#062b50,#073a68)}.login-card{border-radius:20px}.login-logo{width:368px;max-width:92%;filter:none}
@media(max-width:780px){.sidebar{padding:10px 10px 8px}.logo-row{margin:-10px -10px 8px;padding:10px 14px;min-height:auto}.sidebar-logo{width:130px;filter:brightness(0) invert(1)}.main{padding:0 14px 30px}.topbar{margin:0 -14px 16px;padding:15px 14px}}

/* V1.10 operational UX */
.logo-row{min-height:150px;padding:18px 16px;margin:0 -12px 18px;justify-content:center;align-items:center}
.sidebar-logo{width:210px;max-width:100%;max-height:125px;object-fit:contain;object-position:center;filter:none}
.button-row{display:flex;gap:9px;align-items:center}.room-actions{display:flex;gap:8px;align-items:center}.filter-row{display:flex;gap:10px;margin:4px 0 16px}.filter-row input{flex:1}.filter-row select{width:220px}.measurement-kpis{margin-top:0}.mini-action{border:1px solid #bcd4e5;background:#f8fbfd;color:#087fa9;border-radius:7px;padding:6px 9px;font-weight:800;cursor:pointer}.mini-action:hover{background:#e9f7fc}.inline-control{min-width:135px;padding:8px 9px;font-size:13px}.admin-note{margin-top:16px;padding:13px 15px;border-radius:10px;background:#edf7fb;border:1px solid #cae9f4;color:#31536b}.import-help{padding:12px 14px;margin:8px 0 14px;border-radius:10px;background:#eef6fb;color:#37556d}.text-btn.inline{display:inline;margin-left:8px}.sidebar nav:after{content:none!important;display:none!important}
@media(max-width:780px){.logo-row{min-height:auto;justify-content:flex-start}.sidebar-logo{width:175px;max-height:72px}.filter-row{flex-direction:column}.filter-row select{width:100%}.button-row{flex-wrap:wrap}.sidebar nav:after{content:none!important;display:none!important}}

/* V1.10.2 logo correction: preserve aspect ratio, white mark, larger sidebar lockup */
.logo-row{min-height:150px;padding:18px 14px;margin:0 -12px 18px;justify-content:center;align-items:center;overflow:hidden}
.sidebar-logo{display:block;width:205px;height:auto;max-width:100%;max-height:105px;object-fit:contain;object-position:center center;margin:0;filter:none!important;opacity:1}
@media(max-width:780px){.logo-row{min-height:92px;padding:10px 14px;justify-content:flex-start}.sidebar-logo{width:172px;height:auto;max-height:72px;object-fit:contain}}

/* V1.11 secure uploads + field/factory workflow */
.field-help{display:block;font-size:12px;color:var(--muted);margin-top:5px;font-weight:500}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;min-height:120px}.photo-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.photo-card img{width:100%;height:140px;object-fit:cover;display:block}.photo-card .photo-meta{padding:9px;font-size:12px;color:var(--muted)}.uploading{opacity:.65;pointer-events:none}.qr-btn{white-space:nowrap}.workorder-note{font-size:12px;color:var(--muted);margin-top:4px}.file-name{font-size:12px;color:var(--muted);margin-top:3px}

/* V1.12 project file uploader */
.upload-panel{display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,.8fr);gap:18px;margin:18px 0 22px;padding:18px;border:1px solid #dbe5f0;border-radius:16px;background:#f8fbff}
.upload-dropzone{min-height:150px;border:2px dashed #88bfea;border-radius:14px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:22px;cursor:pointer;transition:.18s ease;color:var(--navy)}
.upload-dropzone:hover,.upload-dropzone.dragover{border-color:var(--cyan2);background:#eef8ff;transform:translateY(-1px)}
.upload-dropzone .upload-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#e9f6ff;color:var(--cyan2);font-size:26px;font-weight:800;margin-bottom:3px}
.upload-dropzone strong{font-size:16px}.upload-dropzone span{font-size:12px;color:var(--muted);max-width:520px}
.upload-options{display:flex;flex-direction:column;justify-content:center;gap:12px}.upload-options label{margin:0}.upload-status{padding:10px 12px;border-radius:10px;background:#fff;border:1px solid #e0e8f1;font-size:12px}
@media(max-width:760px){.upload-panel{grid-template-columns:1fr}.upload-dropzone{min-height:130px}}

/* Manufacturing V2 */
.action-stack{display:flex;flex-wrap:wrap;gap:6px;min-width:190px}.danger-btn{border-color:#dc3545!important;color:#b02a37!important}.qc-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.packing-list{display:grid;gap:10px}.packing-card{padding:12px 14px;border:1px solid #dce7f0;border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.packing-card span{color:#607285}.mfg-board{overflow-x:auto}.mfg-col{min-width:220px}.work-card small{display:block;margin-top:4px}.project-header+.tabs{overflow-x:auto;white-space:nowrap}.button-row{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:700px){.qc-grid{grid-template-columns:1fr}.action-stack{min-width:0}.packing-card{align-items:flex-start;flex-direction:column}}

.check-stack{display:grid;gap:8px;max-height:160px;overflow:auto;padding:10px;border:1px solid #d8e0ea;border-radius:10px;background:#f8fbff}.check-line{display:flex!important;align-items:center;gap:8px;font-weight:500!important}.check-label{display:flex!important;align-items:center;gap:8px;margin-top:24px}.check-label input{width:auto}.photo-card img{width:100%;height:160px;object-fit:cover;border-radius:10px}.packing-card,.room-card{box-shadow:0 3px 12px rgba(7,37,69,.07)}
.pref-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin:18px 0}.small-note{margin-top:10px;font-size:12px}.alert small{display:block;color:#7890a4;margin-top:6px}.check-stack{display:grid;gap:8px;margin-top:6px}@media(max-width:780px){.pref-grid{grid-template-columns:1fr}}
\n/* V1.16 portals + executive reporting */
.portal-shell{min-height:100vh;background:#f3f6f9}.portal-page{max-width:1180px;margin:0 auto;padding:28px 24px 50px}.portal-brand{display:flex;align-items:center;justify-content:space-between;padding:10px 0 24px}.portal-brand img{width:230px;height:auto;object-fit:contain}.portal-brand span{color:#47657d;font-weight:900;letter-spacing:.16em;font-size:12px}.portal-hero{background:linear-gradient(120deg,#062d52,#0a497b);color:#fff;border-radius:18px;padding:28px 30px;margin-bottom:20px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 10px 30px rgba(7,43,80,.16)}.portal-hero h1{margin:4px 0;font-size:34px}.portal-hero p{margin:0;color:#c8dcea}.eyebrow{font-size:12px;font-weight:900;letter-spacing:.14em;color:#65c8ee}.portal-status{display:grid;gap:2px}.portal-status p{display:flex;justify-content:space-between;gap:22px;padding:12px 0;margin:0;border-bottom:1px solid var(--line)}.portal-status span{color:var(--muted)}.approval-stack{display:grid;gap:10px}.portal-approval{border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;justify-content:space-between;gap:18px}.portal-approval span{display:block;color:var(--muted);font-size:12px;margin-top:4px}.portal-approval p{margin:8px 0 0;color:#486074}.portal-footer{text-align:center;color:#7d8fa0;font-size:12px;padding:28px 0}.portal-page .badge{white-space:nowrap}@media(max-width:760px){.portal-page{padding:16px 12px 34px}.portal-brand img{width:185px}.portal-brand span{display:none}.portal-hero{padding:22px;align-items:flex-start;gap:14px}.portal-hero h1{font-size:27px}.portal-approval{flex-direction:column}.portal-status p{flex-direction:column;gap:4px}}

.ai-card{padding:24px}.ai-answer{min-height:260px;border:1px solid #d9e5ef;background:linear-gradient(180deg,#fbfdff,#f4f8fc);border-radius:14px;padding:20px;margin:14px 0}.ai-welcome{display:grid;gap:7px;color:#5b6f83}.ai-welcome strong{color:#072f58;font-size:20px}.ai-compose{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end}.ai-compose textarea{min-height:84px;resize:vertical}.ai-response{white-space:normal;line-height:1.65;color:#102a43}.ai-loading{color:#0b5d91;font-weight:700}.ai-error{color:#9b2c2c}.ai-note{margin-top:10px;font-size:12px}@media(max-width:780px){.ai-compose{grid-template-columns:1fr}.ai-compose .primary{width:100%}}

/* V1.21 responsive application shell hardening */
html,body{height:100%;min-height:100%}
body{overflow-x:hidden}
.app{height:100vh;min-height:100vh;grid-template-columns:252px minmax(0,1fr);overflow:hidden}
.sidebar{position:relative;top:auto;height:100vh;min-height:0;padding:0 12px 14px;display:grid;grid-template-rows:minmax(0,1fr) auto;overflow:hidden;justify-content:stretch}
.sidebar>div:first-child{min-height:0;display:flex;flex-direction:column;overflow:hidden}
.logo-row{flex:0 0 auto;min-height:132px;margin:0 -12px 12px;padding:16px 18px;border-bottom:1px solid rgba(255,255,255,.16);display:flex;align-items:center;justify-content:flex-start;overflow:hidden}
.sidebar-logo{width:205px;max-width:100%;height:auto;max-height:96px;object-fit:contain;object-position:left center;flex:0 0 auto}
.sidebar nav{display:flex;flex-direction:column;gap:3px;min-height:0;overflow-y:auto;overflow-x:hidden;padding:2px 0 14px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.22) transparent}
.sidebar nav::-webkit-scrollbar{width:5px}.sidebar nav::-webkit-scrollbar-track{background:transparent}.sidebar nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.20);border-radius:10px}
.sidebar nav:after{content:none!important;display:none!important}
.sidebar>div:last-child{position:relative;z-index:2;flex:0 0 auto;padding-top:8px;background:linear-gradient(180deg,rgba(7,31,57,0),#071f39 20%)}
.user-chip{margin:0;padding:13px 12px 8px;border-top:1px solid rgba(255,255,255,.17)}
#logoutBtn{width:100%;margin-top:1px}
.main{height:100vh;min-height:0;overflow-y:auto;overflow-x:hidden;padding:0 28px 46px;scrollbar-gutter:stable}
.topbar{position:sticky;top:0;z-index:20;margin:0 -28px 20px;padding:15px 28px;min-height:92px}
.topbar>div:first-child{min-width:0}.topbar h2{line-height:1.05}.top-actions{flex:0 0 auto;align-items:center}
.view{min-width:0}.active-view{min-width:0}
.kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.kpi{min-width:0}.kpi strong{line-height:1}
.grid-2{grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr)}
.card{min-width:0}.section-head{flex-wrap:wrap}.table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
table{min-width:680px}.project-header{flex-wrap:wrap}.tabs{max-width:100%;scrollbar-width:thin}
dialog{max-height:calc(100vh - 32px);overflow:auto}.modal-card{min-width:0}.form-grid>*{min-width:0}

/* Stable laptop sizing */
@media(max-height:820px) and (min-width:781px){
  .logo-row{min-height:104px;padding:11px 16px;margin-bottom:8px}
  .sidebar-logo{width:178px;max-height:76px}
  .nav-btn{padding:10px 13px;font-size:14px}
  .sidebar nav{gap:1px}
  .sidebar nav:after{content:none!important;display:none!important}
  .user-chip{padding:9px 12px 6px}.user-chip span{font-size:11px}
  #logoutBtn{padding:9px 12px}
  .topbar{min-height:78px;padding-top:12px;padding-bottom:12px}
  .topbar h2{font-size:25px}.topbar p{font-size:13px}
  .kpis{margin-top:14px;margin-bottom:16px}.card{padding:16px}
}

@media(max-width:1280px) and (min-width:781px){
  .app{grid-template-columns:226px minmax(0,1fr)}
  .logo-row{padding-left:15px;padding-right:15px}.sidebar-logo{width:188px}
  .main{padding-left:22px;padding-right:22px}.topbar{margin-left:-22px;margin-right:-22px;padding-left:22px;padding-right:22px}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .room-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(max-width:980px) and (min-width:781px){
  .app{grid-template-columns:205px minmax(0,1fr)}
  .sidebar-logo{width:165px}.nav-btn{font-size:13px;padding:11px 12px}
  .grid-2{grid-template-columns:1fr}.room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .top-actions{gap:7px}.top-actions .primary,.top-actions .secondary{padding:10px 12px}
}

/* Mobile/tablet shell */
@media(max-width:780px){
  body{overflow:auto}.app{height:auto;min-height:100vh;display:block;overflow:visible}
  .sidebar{height:auto;min-height:auto;display:block;position:relative;padding:0 10px 9px;overflow:visible}
  .sidebar>div:first-child{display:block;overflow:visible}
  .logo-row{min-height:88px;margin:0 -10px 7px;padding:9px 14px;justify-content:flex-start}
  .sidebar-logo{width:172px;max-height:68px;object-position:left center}
  .sidebar nav{display:flex;flex-direction:row;overflow-x:auto;overflow-y:hidden;padding:3px 0 7px;gap:4px}
  .sidebar nav:after{content:none!important;display:none!important}.nav-btn{flex:0 0 auto;white-space:nowrap}
  .sidebar>div:last-child{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 2px 2px;background:transparent;border-top:1px solid rgba(255,255,255,.14)}
  .user-chip{border:0;padding:6px 8px;margin:0;min-width:0}.user-chip strong,.user-chip span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #logoutBtn{width:auto;margin:0;flex:0 0 auto}
  .main{height:auto;min-height:0;overflow:visible;padding:0 14px 30px}
  .topbar{position:relative;min-height:0;margin:0 -14px 16px;padding:14px;align-items:flex-start;flex-wrap:wrap}
  .topbar>div:first-child{flex:1 1 220px}.top-actions{flex:1 1 100%;flex-direction:row;justify-content:flex-start}.top-actions button{width:auto}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.grid-2{grid-template-columns:1fr}
  .card{padding:14px}.room-grid{grid-template-columns:1fr}.spec-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}
  dialog{width:min(94vw,850px);max-height:92vh}.modal-card{padding:20px 18px}
}
@media(max-width:480px){
  .kpis{grid-template-columns:1fr}.topbar h2{font-size:23px}.top-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.top-actions button{width:100%}
}

/* V1.22 Manufacturing Production Board */
.production-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin:4px 0 16px}.production-heading h2{margin:4px 0 6px;font-size:30px;color:var(--navy)}.production-heading p{margin:0;color:var(--muted)}
.production-kpis{grid-template-columns:repeat(8,minmax(105px,1fr));overflow-x:auto;padding-bottom:2px}.production-kpis .kpi{min-width:105px}.production-kpis .kpi span{font-size:11px}.production-kpis .kpi strong{font-size:26px}
.production-toolbar{display:grid;grid-template-columns:minmax(230px,1.4fr) minmax(520px,3fr) auto;gap:12px;align-items:center;margin-bottom:16px;padding:14px}.production-search input{width:100%}.production-filters{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:8px}.production-actions{display:flex;gap:8px;justify-content:flex-end}
.production-board-card{padding:16px}.production-legend{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.production-projects{display:grid;gap:12px}.production-project{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}.production-project>summary{cursor:pointer;list-style:none;background:linear-gradient(90deg,#f4f9fd,#fff);padding:15px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.production-project>summary::-webkit-details-marker,.production-floor>summary::-webkit-details-marker{display:none}.production-project>summary>div{display:flex;flex-direction:column;gap:3px}.production-project>summary strong{font-size:17px;color:var(--navy)}.production-project>summary span{font-size:12px;color:var(--muted)}.production-floor-list{padding:10px;display:grid;gap:10px}.production-floor{border:1px solid #e4edf5;border-radius:10px;overflow:hidden}.production-floor>summary{cursor:pointer;padding:10px 12px;background:#f8fafc;display:flex;align-items:center;justify-content:space-between;gap:12px}.production-floor>summary span{font-size:12px;color:var(--muted)}
.production-table-wrap{border-top:1px solid #e7eef4}.production-table{min-width:1600px;font-size:12px}.production-table th{position:sticky;top:0;background:#f6f9fc;z-index:1;white-space:nowrap}.production-table td{vertical-align:top}.production-table strong{color:#102f4d}.size-cell{white-space:nowrap}.compact-stage{min-width:126px;font-size:11px;padding:7px}.production-row-actions{display:flex;gap:5px;margin-top:6px;flex-wrap:wrap}.production-blocked{background:#fff7f6}.danger-text{color:#b42318}.production-board-card .table-wrap{margin:0}
.factory-mode .sidebar,.factory-mode .topbar{display:none!important}.factory-mode .app{display:block;height:100vh}.factory-mode .main{height:100vh;padding:12px 14px 30px;max-width:none}.factory-mode .view:not(#manufacturing){display:none!important}.factory-mode #manufacturing{display:block!important}.factory-mode .production-heading{position:sticky;top:0;z-index:30;background:#fff;padding:10px 0;margin:0 0 10px;border-bottom:1px solid var(--line)}.factory-mode .production-kpis{position:sticky;top:78px;z-index:25;background:#f6f8fa;padding:8px 0;margin-bottom:8px}.factory-mode .production-toolbar{position:sticky;top:170px;z-index:24;box-shadow:0 6px 16px rgba(13,45,75,.08)}.factory-mode .production-table{font-size:14px;min-width:1750px}.factory-mode .production-table th{font-size:12px}.factory-mode .production-table td{padding-top:13px;padding-bottom:13px}
@media(max-width:1450px){.production-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.production-toolbar{grid-template-columns:1fr}.production-filters{grid-template-columns:repeat(5,minmax(0,1fr))}.production-actions{justify-content:flex-start}}
@media(max-width:900px){.production-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.production-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.production-project>summary{align-items:flex-start}.production-floor>summary{align-items:flex-start}.production-toolbar{padding:12px}}
@media(max-width:520px){.production-filters{grid-template-columns:1fr}.production-actions{display:grid;grid-template-columns:1fr 1fr}.production-actions button{width:100%}.production-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.production-heading h2{font-size:25px}}
.demo-notice{margin-top:10px;display:inline-block;padding:8px 12px;border-radius:10px;background:#fff7dd;border:1px solid #f0d57a;color:#6f5610;font-size:13px;font-weight:700}.production-demo-row{background:#fffdf5}.production-demo-row td:first-child strong:after{content:' DEMO';display:inline-block;margin-left:6px;padding:2px 6px;border-radius:999px;background:#fff1b8;color:#745b00;font-size:10px;letter-spacing:.06em;vertical-align:middle}

/* V1.24 Bulk Floor Room Sizes */
.floor-size-summary-card{margin-bottom:16px}.floor-size-projects{display:grid;gap:10px}.floor-size-project{border:1px solid var(--line);border-radius:12px;overflow:hidden}.floor-size-project>summary{list-style:none;cursor:pointer;padding:12px 14px;background:#f7fafc;display:flex;justify-content:space-between;align-items:center}.floor-size-project>summary::-webkit-details-marker{display:none}.floor-size-project>summary>div{display:flex;flex-direction:column;gap:2px}.floor-size-project>summary span{font-size:12px;color:var(--muted)}.floor-size-floor-list{padding:10px;display:grid;gap:10px}.floor-size-floor{border:1px solid #e5edf4;border-radius:10px;padding:10px}.floor-size-floor-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.floor-size-floor-head>div{display:flex;flex-direction:column;gap:2px}.floor-size-floor-head span{font-size:12px;color:var(--muted)}.floor-size-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.floor-size-card{border:1px solid #dfe8ef;border-radius:10px;padding:10px;background:#fff}.floor-size-dimension{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:4px}.floor-size-dimension strong{font-size:17px;color:var(--navy)}.floor-size-dimension span{font-size:12px;font-weight:700;color:#1f5c89}.floor-size-rooms{font-size:12px;margin-top:6px;color:#324d64}.link-danger{border:0;background:transparent;color:#b42318;padding:6px 0 0;font-size:11px;cursor:pointer}.bulk-floor-dialog{width:min(1080px,94vw)}.bulk-floor-dialog form{max-height:86vh;overflow:auto}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.dialog-head h3{margin:4px 0}.dialog-head p{margin:0;color:var(--muted)}.icon-close{border:0;background:#eef3f7;border-radius:999px;width:36px;height:36px;font-size:24px;cursor:pointer}.bulk-floor-top{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:16px}.bulk-floor-help{margin:12px 0;padding:10px 12px;border-radius:10px;background:#eef7fd;border:1px solid #cde5f5;color:#234f6e;font-size:13px}.bulk-size-head{margin:14px 0 8px}.bulk-size-rows{display:grid;gap:8px}.bulk-size-row{display:grid;grid-template-columns:130px 130px minmax(220px,1.4fr) minmax(180px,1fr) auto;gap:8px;align-items:end;padding:10px;border:1px solid #e2eaf0;border-radius:10px;background:#fafcfd}.bulk-size-row label{margin:0}.danger-btn{color:#b42318}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}@media(max-width:900px){.bulk-floor-top{grid-template-columns:1fr 1fr}.bulk-size-row{grid-template-columns:1fr 1fr}.bulk-room-numbers,.bulk-notes{grid-column:1/-1}}@media(max-width:560px){.bulk-floor-top{grid-template-columns:1fr}.bulk-size-row{grid-template-columns:1fr}.bulk-room-numbers,.bulk-notes{grid-column:auto}.floor-size-floor-head{align-items:flex-start;flex-direction:column}}

/* V1.24.1 Manufacturing + Bulk Floor Sizes design cleanup */
#manufacturing{padding-top:6px}
.production-heading{margin:0 0 14px;padding-top:4px}
.production-heading h2{line-height:1.12;margin-top:2px}
.production-kpis{overflow:visible;grid-template-columns:repeat(8,minmax(0,1fr));gap:12px;margin-top:14px;margin-bottom:16px}
.production-kpis .kpi{min-width:0;padding:15px 16px}

.production-toolbar{
  grid-template-columns:minmax(260px,1.15fr) minmax(0,3fr);
  grid-template-areas:
    "search filters"
    "actions actions";
  gap:10px 12px;
  align-items:center;
  padding:14px 16px;
}
.production-search{grid-area:search;min-width:0}
.production-filters{grid-area:filters;grid-template-columns:repeat(5,minmax(0,1fr));min-width:0}
.production-filters select{min-width:0;width:100%;padding-left:11px;padding-right:30px}
.production-actions{grid-area:actions;justify-content:flex-end;flex-wrap:wrap;padding-top:2px}
.production-actions button{white-space:nowrap}
.floor-size-summary-card{padding:16px;margin-bottom:16px}
.floor-size-summary-card>.section-head{margin-bottom:10px}
.floor-size-summary-card>.section-head .primary{white-space:nowrap}

/* Compact, scroll-safe bulk floor dialog */
.bulk-floor-dialog{
  width:min(980px,calc(100vw - 48px));
  max-width:980px;
  max-height:calc(100vh - 48px);
  overflow:hidden;
  border-radius:16px;
}
.bulk-floor-dialog form{
  max-height:calc(100vh - 48px);
  overflow:auto;
  background:#fff;
}
.bulk-floor-dialog .dialog-head{
  position:sticky;
  top:0;
  z-index:4;
  background:#fff;
  padding:18px 22px 13px;
  border-bottom:1px solid #edf2f7;
}
.bulk-floor-dialog .dialog-head h3{font-size:24px;line-height:1.15;margin:3px 0 4px}
.bulk-floor-dialog .dialog-head p{font-size:14px;line-height:1.4}
.bulk-floor-dialog .icon-close{flex:0 0 auto;width:34px;height:34px;font-size:22px}
.bulk-floor-top{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0 14px;
  margin:0;
  padding:0 22px;
}
.bulk-floor-top label{margin-top:12px}
.bulk-floor-help{margin:12px 22px 10px;padding:9px 12px}
.bulk-size-head{margin:10px 22px 8px;align-items:flex-end}
.bulk-size-head h4{margin:0 0 3px;font-size:17px;color:var(--navy)}
.bulk-size-head .secondary{padding:9px 13px;white-space:nowrap}
.bulk-size-rows{gap:7px;padding:0 22px 10px}
.bulk-size-row{
  grid-template-columns:110px 110px minmax(250px,1.45fr) minmax(180px,1fr) auto;
  gap:8px;
  padding:9px 10px;
  align-items:end;
}
.bulk-size-row label{font-size:12px;gap:5px}
.bulk-size-row input{padding:10px 11px}
.bulk-size-row .danger-btn{padding:10px 11px;white-space:nowrap}
.bulk-floor-dialog .dialog-actions{
  position:sticky;
  bottom:0;
  z-index:4;
  margin:0;
  padding:13px 22px 16px;
  background:#fff;
  border-top:1px solid #e7eef4;
  box-shadow:0 -8px 18px rgba(9,44,77,.05);
}
.bulk-floor-dialog .dialog-actions button{min-width:104px}
.bulk-floor-dialog .dialog-actions .primary{min-width:165px}

@media(max-width:1450px){
  .production-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
  .production-toolbar{
    grid-template-columns:1fr;
    grid-template-areas:"search" "filters" "actions";
  }
  .production-filters{grid-template-columns:repeat(5,minmax(0,1fr))}
  .production-actions{justify-content:flex-end}
}
@media(max-width:1180px){
  .production-filters{grid-template-columns:repeat(3,minmax(0,1fr))}
  .production-actions{justify-content:flex-start}
}
@media(max-width:900px){
  #manufacturing{padding-top:0}
  .production-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .production-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .production-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .production-actions button{width:100%}
  .bulk-floor-dialog{width:min(94vw,760px);max-height:92vh}
  .bulk-floor-dialog form{max-height:92vh}
  .bulk-floor-top{grid-template-columns:1fr 1fr;padding:0 16px}
  .bulk-floor-help{margin-left:16px;margin-right:16px}
  .bulk-size-head{margin-left:16px;margin-right:16px}
  .bulk-size-rows{padding-left:16px;padding-right:16px}
  .bulk-size-row{grid-template-columns:1fr 1fr}
  .bulk-room-numbers,.bulk-notes{grid-column:1/-1}
  .bulk-floor-dialog .dialog-head,.bulk-floor-dialog .dialog-actions{padding-left:16px;padding-right:16px}
}
@media(max-width:560px){
  .production-filters{grid-template-columns:1fr}
  .production-actions{grid-template-columns:1fr}
  .bulk-floor-top{grid-template-columns:1fr}
  .bulk-size-row{grid-template-columns:1fr}
  .bulk-room-numbers,.bulk-notes{grid-column:auto}
  .bulk-size-head{align-items:stretch}
  .bulk-size-head .secondary{width:100%}
  .bulk-floor-dialog .dialog-actions{display:grid;grid-template-columns:1fr 1.3fr}
  .bulk-floor-dialog .dialog-actions button{width:100%;min-width:0}
}

/* V1.25 - Bulk floor production details */
.floor-size-card-topline{display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--muted);font-size:12px;margin:4px 0 5px}
.due-pill{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;background:#fff3d7;color:#7a5200;font-size:11px;font-weight:800;white-space:nowrap}
.floor-product-list{display:grid;gap:7px;margin-top:9px;padding-top:8px;border-top:1px solid #e7eef4}
.floor-product-line{padding:8px 9px;border-radius:9px;background:#f7fafc;border:1px solid #e7eef4}
.floor-product-title{display:flex;justify-content:space-between;gap:8px;align-items:center;color:var(--navy);font-size:12px}
.floor-product-title span{font-size:11px;font-weight:800;color:#1f5c89;background:#eaf5fc;border-radius:999px;padding:3px 7px}
.floor-product-meta{display:flex;flex-wrap:wrap;gap:5px 12px;margin-top:5px;font-size:11px;color:#526b80}
.floor-product-meta b{color:#27445d}.floor-size-notes{margin-top:7px}
.bulk-size-row{display:block;padding:10px 11px}
.bulk-size-main{display:grid;grid-template-columns:110px 110px minmax(240px,1.45fr) minmax(170px,1fr) auto;gap:8px;align-items:end}
.bulk-products-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;padding-top:9px;border-top:1px solid #e4ecf2}
.bulk-products-head>div{display:flex;flex-direction:column;gap:2px}.bulk-products-head strong{font-size:13px;color:var(--navy)}.bulk-products-head .secondary{padding:7px 10px;white-space:nowrap}
.bulk-products{display:grid;gap:7px;margin-top:8px}
.bulk-product-row{display:grid;grid-template-columns:minmax(135px,.85fr) minmax(165px,1.2fr) minmax(120px,.8fr) minmax(155px,1fr) minmax(95px,.65fr) minmax(120px,.8fr) minmax(145px,1fr) auto;gap:7px;align-items:end;background:#fff;border:1px solid #dfe8ef;border-radius:9px;padding:8px}
.bulk-product-row label{font-size:11px;gap:4px;margin:0}.bulk-product-row input,.bulk-product-row select{padding:8px 9px;font-size:12px;min-width:0;width:100%}.bulk-product-row .danger-btn{padding:9px 10px;white-space:nowrap}
@media(max-width:1180px){.bulk-size-main{grid-template-columns:1fr 1fr 1.5fr}.bulk-size-main .bulk-notes{grid-column:1/3}.bulk-product-row{grid-template-columns:repeat(4,minmax(0,1fr))}.bulk-product-row .danger-btn{justify-self:start}}
@media(max-width:760px){.bulk-size-main{grid-template-columns:1fr 1fr}.bulk-size-main .bulk-room-numbers,.bulk-size-main .bulk-notes{grid-column:1/-1}.bulk-products-head{align-items:flex-start;flex-direction:column}.bulk-product-row{grid-template-columns:1fr 1fr}.floor-product-title{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.bulk-size-main,.bulk-product-row{grid-template-columns:1fr}.bulk-size-main .bulk-room-numbers,.bulk-size-main .bulk-notes{grid-column:auto}.floor-size-card-topline{align-items:flex-start;flex-direction:column}}
/* V1.25.1 production detail refinements */
.bulk-lining-toggle .check-row{display:flex;align-items:center;gap:7px;min-height:38px;padding:8px 10px;border:1px solid #d7e1e8;border-radius:8px;background:#f8fbfd;font-weight:700;color:#38556d}
.bulk-lining-toggle .check-row input{width:auto;min-width:auto;margin:0}
.bulk-lining-field[hidden]{display:none!important}

/* V1.25.2 floor production + hardware purchasing */
.floor-due-strong{font-weight:900;color:#7a5200}
.floor-size-card-topline.due-only{justify-content:flex-end;margin-top:2px}
.due-pill{font-weight:900}
.bulk-product-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.bulk-product-row .bulk-lining-toggle,.bulk-product-row .bulk-lining-field{min-width:0}
.hardware-requirements-dialog{width:min(820px,94vw);max-height:88vh;padding:22px 24px 18px;overflow:auto}
.hardware-requirements-dialog .dialog-head{padding-bottom:14px;border-bottom:1px solid var(--line);align-items:flex-start}
.hardware-requirements-dialog .dialog-head h3{font-size:26px;margin:2px 0 4px}
.hardware-requirements-dialog .dialog-head p{margin:0;font-size:14px;max-width:620px}
.hardware-filter{padding:16px 0 4px;max-width:none}
.hardware-filter label{margin:0;font-size:13px;font-weight:800;color:var(--navy)}
.hardware-filter select{margin-top:6px;min-height:44px;font-size:14px;font-weight:700}
.hardware-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}
.hardware-kpis>div{border:1px solid #d7e2eb;border-radius:14px;padding:14px 14px 12px;background:#f7fafc;display:flex;flex-direction:column;gap:6px;min-width:0}
.hardware-kpis span{font-size:12px;line-height:1.2;color:#597086;font-weight:800}
.hardware-kpis strong{font-size:28px;line-height:1;color:var(--navy)}
.hardware-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(220px,.75fr);gap:14px;align-items:start}
.hardware-grid section{border:1px solid #d7e2eb;border-radius:14px;padding:14px;background:#fff;min-width:0}
.hardware-grid h4{margin:0 0 10px;color:var(--navy);font-size:16px}
.hardware-grid .table-wrap{overflow-x:auto;border:1px solid #e4ebf1;border-radius:10px}
.hardware-table{width:100%;border-collapse:collapse;table-layout:auto}
.hardware-table th,.hardware-table td{padding:11px 12px;text-align:left;border-bottom:1px solid #e7eef4;font-size:13px;white-space:nowrap}
.hardware-table th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#597086;background:#f5f8fa;font-weight:800}
.hardware-table td strong{font-size:15px;color:var(--navy)}
.hardware-table tbody tr:last-child td{border-bottom:0}
.hardware-rule-note{font-size:12px;color:var(--muted);margin-top:9px;font-weight:700}
.hardware-warning{margin-top:14px;padding:11px 13px;border-radius:10px;background:#fff3d7;color:#7a5200;border:1px solid #f3d487;font-weight:700;font-size:12px}
.hardware-rules{margin-top:14px;padding:12px 14px;border-radius:10px;background:#eef7fd;color:#234f6e;border:1px solid #cde5f5;font-size:12px;line-height:1.5}
.hardware-requirements-dialog .dialog-actions{position:sticky;bottom:-18px;background:#fff;margin:16px -24px -18px;padding:12px 24px 0;border-top:1px solid var(--line)}
.hardware-requirements-dialog .dialog-actions button{min-width:110px}
@media(max-width:900px){.hardware-requirements-dialog{width:min(760px,95vw)}.hardware-kpis{grid-template-columns:1fr 1fr}.hardware-grid{grid-template-columns:1fr}.bulk-product-row{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.hardware-requirements-dialog{width:96vw;padding:18px 16px}.hardware-requirements-dialog .dialog-head h3{font-size:22px}.hardware-kpis,.bulk-product-row{grid-template-columns:1fr}.hardware-requirements-dialog .dialog-actions{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}}

/* V1.25.4 Large Production Display */
.floor-size-project>summary{padding:16px 18px}
.floor-size-project>summary strong{font-size:18px}
.floor-size-project>summary span{font-size:14px}
.floor-size-floor{padding:15px}
.floor-size-floor-head{margin-bottom:14px}
.floor-size-floor-head>div>strong{font-size:22px;line-height:1.15;color:var(--navy)}
.floor-size-floor-head>div>span{font-size:15px;line-height:1.4}
.floor-due-strong{font-size:16px;color:#123f63}
.floor-size-grid{grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:12px}
.floor-size-card{padding:14px;border-radius:12px}
.floor-size-dimension{margin-bottom:7px}
.floor-size-dimension strong{font-size:24px;line-height:1.1}
.floor-size-dimension span{font-size:16px}
.floor-size-rooms{font-size:15px;margin-top:8px;font-weight:700;color:#324d64}
.floor-product-list{gap:10px;margin-top:12px;padding-top:11px}
.floor-product-line{padding:12px 13px;border-radius:10px}
.floor-product-title{font-size:17px;gap:10px}
.floor-product-title strong{font-size:18px}
.floor-product-title span{font-size:14px;padding:5px 9px}
.floor-product-meta{gap:8px 18px;margin-top:8px;font-size:15px;line-height:1.45}
.floor-product-meta b{font-size:15px}
.floor-size-notes{font-size:14px;line-height:1.45;margin-top:10px}
.floor-size-card .link-danger{font-size:12px;margin-top:6px}
@media(max-width:760px){
 .floor-size-grid{grid-template-columns:1fr}
 .floor-size-floor-head>div>strong{font-size:20px}
 .floor-size-dimension strong{font-size:22px}
 .floor-product-title{flex-direction:column;align-items:flex-start}
}

/* V1.25.6 floor due-date emphasis */
.floor-size-floor-actions{display:flex;align-items:center;gap:14px;margin-left:auto}
.floor-due-right{font-size:22px;line-height:1;font-weight:900;letter-spacing:.02em;color:#d32020;white-space:nowrap}
@media(max-width:700px){.floor-size-floor-actions{width:100%;justify-content:space-between;margin-left:0}.floor-due-right{font-size:20px}}


/* V1.26 Fabric Requirements */
.project-fabrics-create{margin:16px 0;padding:14px;border:1px solid #cfe0ee;border-radius:14px;background:#f8fbfd}.project-fabrics-create h4{margin:0}.project-fabric-rows{display:grid;gap:10px;margin-top:10px}.project-fabric-row{display:grid;grid-template-columns:minmax(260px,2fr) minmax(150px,.8fr) auto;gap:10px;align-items:end;padding:10px;border:1px solid #dce8f1;border-radius:12px;background:#fff}.project-fabric-row label{margin:0}.fabric-dialog{width:min(1380px,94vw);max-height:90vh}.fabric-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.fabric-kpis>div{border:1px solid #cfe0ee;border-radius:14px;background:#f7fbfe;padding:15px}.fabric-kpis span{display:block;color:#64778d;font-weight:700;font-size:13px}.fabric-kpis strong{display:block;color:#082f55;font-size:26px;margin-top:5px}.fabric-requirements-table th,.fabric-requirements-table td{font-size:15px}.fabric-requirements-table td:nth-child(5){font-size:19px;color:#082f55}.fabric-detail-row td{background:#f8fbfd;padding:12px!important}.fabric-detail-table th,.fabric-detail-table td{font-size:13px}.fabric-rules{margin-top:14px;padding:14px 16px;border-radius:12px;background:#eaf6fc;color:#164b70;line-height:1.5}.bulk-product-row{grid-template-columns:repeat(4,minmax(160px,1fr))!important}@media(max-width:900px){.fabric-kpis{grid-template-columns:repeat(2,1fr)}.project-fabric-row{grid-template-columns:1fr}.bulk-product-row{grid-template-columns:repeat(2,minmax(150px,1fr))!important}}

/* V1.26.1 Fabric Requirements popup design cleanup */
.fabric-dialog{
  width:min(1180px,92vw);
  max-height:88vh;
  padding:22px 24px 18px;
  border-radius:18px;
  overflow:auto;
}
.fabric-dialog .dialog-head{
  padding-bottom:14px;
  border-bottom:1px solid var(--line);
  align-items:flex-start;
}
.fabric-dialog .dialog-head h3{
  font-size:26px;
  line-height:1.15;
  margin:2px 0 4px;
}
.fabric-dialog .dialog-head p{
  margin:0;
  font-size:14px;
  line-height:1.45;
  max-width:720px;
}
.fabric-dialog .hardware-filter{
  padding:16px 0 6px;
  max-width:520px;
}
.fabric-dialog .hardware-filter label{
  margin:0;
  font-size:13px;
  font-weight:800;
  color:var(--navy);
}
.fabric-dialog .hardware-filter select{
  margin-top:6px;
  min-height:46px;
  font-size:14px;
  font-weight:700;
}
.fabric-dialog .fabric-kpis{
  gap:12px;
  margin:14px 0 16px;
}
.fabric-dialog .fabric-kpis>div{
  min-height:92px;
  padding:14px 16px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.fabric-dialog .fabric-kpis span{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.03em;
}
.fabric-dialog .fabric-kpis strong{
  font-size:28px;
  line-height:1.1;
  margin-top:7px;
}
.fabric-dialog .table-wrap{
  border:1px solid #d9e5ee;
  border-radius:14px;
  overflow:hidden;
  background:#fff;
}
.fabric-dialog .fabric-requirements-table{
  width:100%;
  border-collapse:collapse;
}
.fabric-dialog .fabric-requirements-table th{
  padding:13px 14px;
  background:#f5f8fb;
  color:#617489;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.035em;
  white-space:nowrap;
}
.fabric-dialog .fabric-requirements-table td{
  padding:15px 14px;
  font-size:14px;
  vertical-align:middle;
}
.fabric-dialog .fabric-requirements-table td:first-child{
  font-weight:800;
  color:#0a2f55;
}
.fabric-dialog .fabric-requirements-table td:nth-child(2),
.fabric-dialog .fabric-requirements-table td:nth-child(3),
.fabric-dialog .fabric-requirements-table td:nth-child(4){
  white-space:nowrap;
}
.fabric-dialog .fabric-requirements-table td:nth-child(5){
  font-size:20px;
  font-weight:900;
  white-space:nowrap;
}
.fabric-dialog .fabric-requirements-table td:last-child{
  width:92px;
  text-align:right;
}
.fabric-dialog .fabric-rules{
  margin:14px 0 0;
  padding:12px 14px;
  font-size:13px;
  line-height:1.5;
}
.fabric-dialog .dialog-actions{
  position:sticky;
  bottom:-18px;
  background:#fff;
  margin:16px -24px -18px;
  padding:12px 24px 0;
  border-top:1px solid var(--line);
}
.fabric-dialog .dialog-actions button{min-width:110px}
@media(max-width:820px){
  .fabric-dialog{width:95vw;padding:18px 16px}
  .fabric-dialog .fabric-kpis{grid-template-columns:repeat(2,1fr)}
  .fabric-dialog .hardware-filter{max-width:none}
  .fabric-dialog .table-wrap{overflow-x:auto}
  .fabric-dialog .fabric-requirements-table{min-width:760px}
  .fabric-dialog .dialog-actions{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}
}

/* V1.27 Manufacturing project progress tracker */
.mfg-project-progress{position:relative;padding:18px 22px 16px;background:#fbfdff;border-top:1px solid #e8f0f6;border-bottom:1px solid #e8f0f6}
.mfg-progress-track{position:absolute;left:9%;right:9%;top:96px;height:6px;background:#dce8f2;border-radius:999px;overflow:hidden}
.mfg-progress-fill{height:100%;background:linear-gradient(90deg,#15a9df,#0f6ea5);border-radius:999px;transition:width .25s ease}
.mfg-progress-steps{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.mfg-progress-step{appearance:none;border:0;background:transparent;padding:0 6px;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;color:#6a7f91;font:inherit}
.mfg-progress-step:disabled{cursor:default}
.mfg-progress-dot{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#eef4f8;border:3px solid #c7d7e4;color:#597287;font-size:13px;font-weight:900;box-shadow:0 0 0 4px #fbfdff}
.mfg-progress-label{text-align:center;font-size:13px;font-weight:800;line-height:1.2}
.mfg-progress-step.done .mfg-progress-dot{background:#0f6ea5;border-color:#0f6ea5;color:#fff}
.mfg-progress-step.done .mfg-progress-label{color:#123d61}
.mfg-progress-step.current .mfg-progress-dot{background:#13a9df;border-color:#13a9df;box-shadow:0 0 0 5px rgba(19,169,223,.13)}
.mfg-progress-step.current .mfg-progress-label{color:#0b5d8b}
.floor-size-project>.mfg-project-progress{margin:0}
.production-project>.mfg-project-progress{margin:0}
@media(max-width:700px){.mfg-project-progress{padding:16px 10px 14px}.mfg-progress-track{left:11%;right:11%;top:106px}.mfg-progress-dot{width:30px;height:30px}.mfg-progress-label{font-size:11px}.mfg-progress-steps{gap:3px}}

/* V1.28 Factory Manager Portal */
.factory-portal-mode .sidebar nav{padding-top:8px}
.factory-portal-mode .sidebar .nav-btn[data-view="manufacturing"]{margin-top:4px}
.factory-portal-mode .top-actions{display:none!important}
.factory-portal-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px;margin:0 0 16px;background:#e9f7fd;border:1px solid #a9dcf1;border-radius:12px;color:#083b66}
.factory-portal-banner div{display:flex;flex-direction:column;gap:2px}
.factory-portal-banner strong{font-size:17px}
.factory-portal-banner span{font-size:13px;color:#4c6d86}
@media(max-width:760px){.factory-portal-banner{align-items:flex-start;flex-direction:column}}
.factory-portal-mode .factory-readonly-note{padding:10px 14px;border-radius:10px;background:#eef6fb;color:#31566f;font-size:13px;font-weight:700;white-space:nowrap}
.factory-portal-mode .factory-view-badge{background:#eef6fb;color:#31566f;border-color:#c8dce9}
.factory-portal-mode .production-actions{display:none!important}
.factory-portal-mode .production-row-actions,.factory-portal-mode .stage-select{display:none!important}
.factory-portal-mode .production-project summary button{display:none!important}

/* V1.28.4 Factory Portal cleanup */
.factory-toolbar-simple{display:grid;grid-template-columns:minmax(320px,1fr) minmax(220px,320px);gap:14px;align-items:end;padding:18px 20px}
.factory-toolbar-simple .production-search,.factory-toolbar-simple .production-filters{margin:0}
.factory-toolbar-simple .production-search input,.factory-toolbar-simple .factory-project-filter select{width:100%;min-height:48px;font-size:16px}
.factory-toolbar-simple .factory-readonly-note{grid-column:1/-1;margin-top:0;padding-top:2px}
@media (max-width:900px){.factory-toolbar-simple{grid-template-columns:1fr}.factory-toolbar-simple .factory-readonly-note{grid-column:1}}

/* V1.28.5 Full-width Factory Portal header/layout */
.factory-portal-mode .sidebar{display:none!important}
.factory-portal-mode #app{display:block!important;min-height:100vh;background:#f4f7fb}
.factory-portal-mode .main{margin-left:0!important;width:100%!important;max-width:none!important;min-height:100vh;padding:0 28px 36px}
.factory-portal-mode .topbar{display:none!important}
.factory-portal-mode .production-heading{display:none!important}
.factory-page-header{position:relative;display:grid;grid-template-columns:1fr minmax(320px,auto) 1fr;align-items:center;gap:20px;width:100%;padding:18px 30px;background:#fff;border-bottom:1px solid #dce7f0;box-shadow:0 2px 8px rgba(12,46,72,.05);z-index:5}
.factory-header-logo{justify-self:start;display:flex;align-items:center}
.factory-header-logo img{display:block;width:auto;height:72px;max-width:260px;object-fit:contain}
.factory-header-title{text-align:center;justify-self:center}
.factory-header-title h1{margin:0;color:#0b2d4d;font-size:32px;line-height:1.05;font-weight:900;letter-spacing:-.02em}
.factory-header-title p{margin:7px 0 0;color:#60778b;font-size:15px;font-weight:600}
.factory-header-account{justify-self:end;display:flex;align-items:center;gap:12px}
.factory-header-account span{font-size:14px;font-weight:700;color:#21435f}
.factory-header-account button{min-height:42px;padding:0 18px}
.factory-portal-mode #manufacturing{padding-top:24px}
.factory-portal-mode .factory-toolbar-simple{grid-template-columns:minmax(300px,1fr) minmax(340px,1.35fr);max-width:none;width:100%;gap:18px;padding:20px 22px}
.factory-toolbar-simple .factory-project-filter,.factory-toolbar-simple .production-search{display:flex;flex-direction:column;gap:7px}
.factory-toolbar-simple .factory-project-filter>span,.factory-toolbar-simple .production-search>span{font-size:13px;font-weight:800;color:#173c5c}
.factory-toolbar-simple .factory-project-filter select,.factory-toolbar-simple .production-search input{width:100%;min-height:52px;font-size:16px;border-radius:10px}
.factory-toolbar-simple .factory-readonly-note{grid-column:1/-1;margin-top:0;padding:4px 2px 0;background:transparent;color:#6b7f90;font-size:12px;font-weight:600}
.factory-portal-mode .floor-size-summary-card,.factory-portal-mode .production-board-card,.factory-portal-mode .production-toolbar{width:100%;max-width:none}
@media(max-width:900px){
  .factory-page-header{grid-template-columns:1fr;justify-items:center;padding:16px 18px}
  .factory-header-logo,.factory-header-account{justify-self:center}
  .factory-header-logo img{height:58px}
  .factory-header-title h1{font-size:28px}
  .factory-portal-mode .main{padding:0 14px 28px}
  .factory-portal-mode .factory-toolbar-simple{grid-template-columns:1fr}
  .factory-toolbar-simple .factory-readonly-note{grid-column:1}
}

/* V1.28.6 factory progress selection + admin live status */
.mfg-progress-status{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 4px;padding:0 2px 8px}
.mfg-progress-status>div{display:flex;align-items:baseline;gap:10px;min-width:0}
.mfg-progress-status span{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#70869a}
.mfg-progress-status strong{font-size:18px;color:#123d61}
.mfg-progress-status>b{font-size:20px;color:#0f6ea5}
.mfg-progress-helper{margin:0 0 12px;padding:0 2px;font-size:12px;font-weight:700;color:#6a7f91}
.mfg-progress-step.current{cursor:pointer}
.mfg-progress-step.current:hover .mfg-progress-dot{transform:scale(1.06);box-shadow:0 0 0 6px rgba(19,169,223,.18)}
.mfg-progress-step .mfg-progress-dot{transition:transform .16s ease,box-shadow .16s ease,background .16s ease}
.factory-portal-mode .mfg-progress-status strong{font-size:20px}
.factory-portal-mode .mfg-progress-status>b{font-size:22px}
.factory-portal-mode .mfg-progress-helper{font-size:13px;color:#3f637f}
@media(max-width:700px){.mfg-progress-status{align-items:flex-start}.mfg-progress-status>div{flex-direction:column;gap:2px}.mfg-progress-status strong{font-size:16px}}

/* V1.29.0 progress spacing repair */
.mfg-progress-status{position:relative;z-index:2;background:#fbfdff;padding-bottom:8px;margin-bottom:2px}
.mfg-progress-helper{position:relative;z-index:2;background:#fbfdff;padding-bottom:8px;margin-bottom:8px}
.mfg-progress-steps{padding-top:2px}
.factory-portal-mode .mfg-project-progress{padding-top:20px;padding-bottom:18px}
@media(max-width:700px){.mfg-progress-track{top:112px}.mfg-progress-steps{padding-top:6px}}

/* V1.29.1 Factory portal design + finished projects + production list management */
.factory-portal-mode .factory-page-header{
  background:linear-gradient(135deg,#06375f 0%,#0a4b78 100%);
  border-bottom:0;
  box-shadow:0 6px 18px rgba(6,55,95,.18);
  color:#fff;
}
.factory-portal-mode .factory-header-logo img{
  height:96px;
  max-width:330px;
  filter:brightness(0) invert(1);
}
.factory-portal-mode .factory-header-title h1,
.factory-portal-mode .factory-header-title p,
.factory-portal-mode .factory-header-account span{color:#fff}
.factory-portal-mode .factory-header-account button{
  color:#fff;background:transparent;border:1px solid rgba(255,255,255,.6)
}
.factory-portal-mode .factory-header-account button:hover{background:rgba(255,255,255,.1)}

/* Make each project header stand out in factory view */
.factory-portal-mode .floor-size-project>summary{
  background:linear-gradient(135deg,#0a4773,#0d5b8f);
  color:#fff;
  border-radius:12px 12px 0 0;
  padding:18px 22px;
}
.factory-portal-mode .floor-size-project>summary strong,
.factory-portal-mode .floor-size-project>summary span{color:#fff}
.factory-portal-mode .floor-size-project>summary .badge{
  background:rgba(255,255,255,.18);color:#fff;border-color:rgba(255,255,255,.25)
}
.factory-portal-mode .floor-size-project>.mfg-project-progress{
  background:#eef7fd;
}

/* Center progress line exactly through the circle centers */
.mfg-progress-track{
  position:relative!important;
  left:auto!important;right:auto!important;top:auto!important;
  margin:14px 9% -20px!important;
  height:6px;
  z-index:0;
}
.mfg-progress-steps{position:relative;z-index:1;padding-top:0!important}
@media(max-width:700px){.mfg-progress-track{margin:12px 11% -18px!important}}

/* Factory production-list sections */
.factory-production-lists{display:flex;flex-direction:column;gap:24px}
.factory-list-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 10px;padding:0 2px}
.factory-list-heading h3{margin:0;font-size:22px;color:#0b2d4d}
.factory-list-heading span{font-size:13px;font-weight:800;color:#60778b;background:#eef4f8;padding:6px 10px;border-radius:999px}
.factory-list-heading.finished{padding-top:8px;border-top:2px solid #d9e5ee}
.factory-finished-projects .finished-list{display:flex;flex-direction:column;gap:10px}
.factory-finished-projects .floor-size-project{opacity:.96}
.factory-finished-projects .floor-size-project>summary{border-radius:12px}
.factory-finished-projects .floor-size-project[open]>summary{border-radius:12px 12px 0 0}
.factory-project-summary-actions{display:flex;align-items:center;gap:10px}
.factory-project-summary-actions .unfinish-btn{background:#fff;color:#0b4d78;border-color:#fff;font-weight:900}
.factory-project-summary-actions .unfinish-btn:hover{background:#e9f6fd}
.empty.compact{padding:16px}

/* Our Production List heading */
.factory-portal-mode .floor-size-summary-card>.section-head{
  padding:18px 20px;border-radius:12px 12px 0 0;background:#0b4773;color:#fff;margin:-1px -1px 18px
}
.factory-portal-mode .floor-size-summary-card>.section-head h3{color:#fff;font-size:24px}
.factory-portal-mode .floor-size-summary-card>.section-head .secondary{
  color:#fff;background:transparent;border-color:rgba(255,255,255,.65)
}
.factory-portal-mode .floor-size-summary-card>.section-head .secondary:hover{background:rgba(255,255,255,.1)}

/* Admin production list manager */
.production-list-manager-dialog{width:min(92vw,820px);max-height:88vh;border:0;border-radius:16px;padding:0;overflow:hidden}
.production-list-manager-body{padding:8px 22px 18px;max-height:58vh;overflow:auto}
.production-list-manage-row{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:18px;align-items:center;padding:14px 0;border-bottom:1px solid #e3edf4}
.production-list-toggle{display:flex;align-items:center;gap:12px;cursor:pointer}
.production-list-toggle input{width:20px;height:20px}
.production-list-toggle span{display:flex;flex-direction:column;gap:2px}
.production-list-toggle strong{font-size:15px;color:#0b2d4d}
.production-list-toggle small{color:#71869a}
.production-list-order{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800;color:#60778b}
.production-list-order input{width:72px;padding:8px;border:1px solid #cbdbe7;border-radius:8px}
@media(max-width:700px){
 .factory-portal-mode .factory-header-logo img{height:74px}
 .production-list-manage-row{grid-template-columns:1fr}
 .production-list-order{justify-content:flex-start}
}

/* V1.29.2 - project progress photos */
.project-photo-section{margin:18px 22px 4px;padding:16px;border:1px solid #d8e4ef;border-radius:14px;background:#fff}
.project-photo-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.project-photo-head>div{display:flex;flex-direction:column;gap:2px}
.project-photo-head strong{font-size:18px;color:#0b3158}
.project-photo-head span{font-size:13px;color:#6b7f93}
.photo-upload-btn{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;white-space:nowrap}
.project-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.project-photo-card{border:1px solid #d9e5f0;border-radius:12px;overflow:hidden;background:#f9fbfd}
.project-photo-card.photo-hidden-portal{opacity:.62}
.project-photo-image{display:block;width:100%;height:145px;padding:0;border:0;background:#eaf2f8;cursor:pointer}
.project-photo-image img{display:block;width:100%;height:100%;object-fit:cover}
.project-photo-meta{padding:10px;display:flex;flex-direction:column;gap:4px}
.project-photo-meta>span{font-weight:700;color:#102f50}
.project-photo-meta small{color:#72859a;line-height:1.35}
.photo-admin-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:6px}
.portal-photo-card{margin-top:18px}
.portal-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.portal-photo-grid figure{margin:0;border:1px solid #d9e5f0;border-radius:14px;overflow:hidden;background:#fff}
.portal-photo-grid figure a{display:block;height:180px;background:#edf3f8}
.portal-photo-grid figure img{width:100%;height:100%;object-fit:cover;display:block}
.portal-photo-grid figcaption{padding:11px 12px;display:flex;flex-direction:column;gap:3px}
.portal-photo-grid figcaption strong{color:#0b3158}
.portal-photo-grid figcaption span{font-size:12px;color:#718398}
@media(max-width:760px){.project-photo-section{margin:14px 10px 2px;padding:12px}.project-photo-head{align-items:flex-start;flex-direction:column}.project-photo-grid,.portal-photo-grid{grid-template-columns:1fr}.project-photo-image{height:200px}.portal-photo-grid figure a{height:220px}}


/* V1.29.5 - Factory page flow + finished projects/footer repair */
body.factory-portal-mode{
  overflow-x:hidden!important;
  overflow-y:auto!important;
  min-height:100vh;
}
.factory-portal-mode #app{
  display:block!important;
  height:auto!important;
  min-height:100vh!important;
  overflow:visible!important;
  background:#f4f7fb;
}
.factory-portal-mode .main{
  height:auto!important;
  min-height:0!important;
  overflow:visible!important;
  padding:0 28px 42px!important;
}
.factory-portal-mode #manufacturing{
  min-height:auto!important;
}
.factory-portal-mode .floor-size-summary-card{
  margin-bottom:0;
}
.factory-portal-mode .factory-production-lists{
  padding-bottom:8px;
}
.factory-portal-mode .factory-finished-projects{
  display:block!important;
  clear:both;
  margin-top:28px;
  padding:24px 0 14px;
  border-top:2px solid #cfddea;
}
.factory-portal-mode .factory-list-heading.finished{
  border-top:0;
  padding-top:0;
  margin-bottom:14px;
}
.factory-portal-mode .factory-finished-projects .finished-list{
  padding-bottom:10px;
}
.factory-page-footer{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:26px 34px;
  background:linear-gradient(135deg,#06375f 0%,#0a4b78 100%);
  color:#fff;
  border-top:1px solid rgba(255,255,255,.14);
  box-shadow:0 -6px 18px rgba(6,55,95,.08);
}
.factory-footer-brand{
  display:flex;
  align-items:center;
  gap:14px;
}
.factory-footer-brand img{
  width:auto;
  height:58px;
  max-width:210px;
  object-fit:contain;
  filter:brightness(0) invert(1);
}
.factory-footer-brand div,
.factory-footer-copy{
  display:flex;
  flex-direction:column;
  gap:3px;
}
.factory-footer-brand strong,
.factory-footer-copy strong{
  font-size:14px;
  font-weight:900;
}
.factory-footer-brand span,
.factory-footer-copy span{
  color:#c9deee;
  font-size:12px;
  font-weight:650;
}
.factory-footer-copy{text-align:right}
@media(max-width:760px){
  .factory-portal-mode .main{padding:0 14px 28px!important}
  .factory-page-footer{padding:22px 18px;align-items:flex-start;flex-direction:column}
  .factory-footer-copy{text-align:left}
  .factory-footer-brand img{height:48px}
}


/* V1.29.6 - factory toolbar cleanup + project-specific requirements */
.factory-portal-mode .production-toolbar.factory-toolbar-simple{display:none!important}
.factory-blue-project-select{display:flex;align-items:center;gap:10px;margin:0;color:#fff;font-size:13px;font-weight:800}
.factory-blue-project-select span{color:#fff!important}
.factory-blue-project-select select{min-width:260px;height:42px;padding:0 40px 0 14px;border:1px solid rgba(255,255,255,.55);border-radius:9px;background:#fff;color:#0b3158;font-size:14px;font-weight:800}
.factory-project-summary-actions{flex-wrap:wrap;justify-content:flex-end}
.project-requirement-btn{border:1px solid rgba(255,255,255,.62);background:rgba(255,255,255,.08);color:#fff;border-radius:9px;padding:9px 13px;font-size:12px;font-weight:900;cursor:pointer;white-space:nowrap}
.project-requirement-btn:hover{background:rgba(255,255,255,.18)}
body:not(.factory-portal-mode) .project-requirement-btn{background:#fff;color:#0b4773;border-color:#b9cfdf}
body:not(.factory-portal-mode) .project-requirement-btn:hover{background:#eef7fd}
@media(max-width:900px){.factory-portal-mode .floor-size-summary-card>.section-head{align-items:flex-start}.factory-blue-project-select{width:100%;align-items:flex-start;flex-direction:column;gap:5px}.factory-blue-project-select select{width:100%;min-width:0}.factory-project-summary-actions{width:100%;justify-content:flex-start;margin-top:10px}}

/* V1.29.7 - factory header/action cleanup */
.factory-blue-project-select{gap:0}
.factory-project-summary-actions{display:flex!important;align-items:center!important;gap:10px!important;flex-wrap:nowrap!important;justify-content:flex-end!important}
.factory-project-summary-actions .project-requirement-btn{display:inline-flex;align-items:center;justify-content:center}
.factory-project-summary-actions .badge,.factory-project-summary-actions .unfinish-btn{flex:0 0 auto}
@media(max-width:980px){.factory-project-summary-actions{flex-wrap:wrap!important;justify-content:flex-start!important}.factory-project-summary-actions .project-requirement-btn{flex:0 0 auto}}

/* V1.29.8 - project photo gallery at bottom of each production project */
.project-photo-section{margin:22px 22px 24px;padding:18px;border:1px solid #d4e2ee;border-radius:14px;background:#fff}
.project-photo-head{margin-bottom:14px}
.project-photo-head strong{font-size:20px}
.project-photo-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.project-photo-card{box-shadow:0 3px 12px rgba(7,37,69,.06)}
.project-photo-image{height:175px}
.photo-upload-btn{min-height:42px;padding:10px 16px;font-weight:800}
@media(max-width:760px){.project-photo-section{margin:16px 10px 20px}.project-photo-grid{grid-template-columns:1fr 1fr}.project-photo-image{height:150px}}
@media(max-width:520px){.project-photo-grid{grid-template-columns:1fr}.project-photo-image{height:220px}}

/* V1.30.3 Projects page: active / finished split + owner delete */
.projects-section-card{margin-bottom:18px}
.projects-table .project-delete-col{width:54px;text-align:right}
.project-delete-x{width:34px;height:34px;border-radius:999px;border:1px solid #e2a7a7;background:#fff;color:#b42318;font-size:22px;line-height:1;font-weight:800;cursor:pointer;display:inline-grid;place-items:center}
.project-delete-x:hover{background:#fff1f1;border-color:#d87070}
.finished-projects-card details>summary{list-style:none}
.finished-projects-card details>summary::-webkit-details-marker{display:none}
.finished-projects-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}
.finished-projects-summary h3{margin:0;color:var(--navy)}
.finished-projects-summary>div{display:flex;flex-direction:column;gap:2px}
.finished-projects-toggle{font-size:12px;font-weight:800;color:#1879ad;border:1px solid #c8ddea;border-radius:999px;padding:6px 10px;background:#f7fbfe}
.finished-projects-body{margin-top:14px}
@media(max-width:720px){.projects-table .project-delete-col{width:44px}.project-delete-x{width:30px;height:30px;font-size:20px}}


/* V1.30.4 - multi project type + fabric assignment */
.project-type-field{border:0;padding:0;margin:0;min-width:0}
.project-type-field legend{font-weight:800;color:#0b3158;margin-bottom:8px;font-size:14px}
.project-type-field .field-hint{font-weight:600;color:#6b8095;font-size:12px;margin-left:6px}
.project-type-options{display:flex;flex-wrap:wrap;gap:8px}
.project-type-option{position:relative;cursor:pointer}
.project-type-option input{position:absolute;opacity:0;pointer-events:none}
.project-type-option span{display:inline-flex;align-items:center;min-height:38px;padding:8px 12px;border:1px solid #c7d8e6;border-radius:9px;background:#fff;color:#183a5a;font-weight:750;font-size:13px;transition:.15s ease}
.project-type-option input:checked+span{background:#e7f6fd;border-color:#14a9df;color:#075b84;box-shadow:inset 0 0 0 1px #14a9df}
.project-type-option input:focus-visible+span{outline:2px solid #14a9df;outline-offset:2px}
.project-fabric-row{display:grid!important;grid-template-columns:minmax(240px,1.3fr) minmax(150px,.55fr) minmax(260px,1fr) auto!important;gap:12px!important;align-items:end!important}
.fabric-applies-field{display:flex;flex-direction:column;gap:7px;min-width:0}
.fabric-applies-field>strong{font-size:13px;color:#0b3158}
.fabric-applies-options{display:flex;flex-wrap:wrap;gap:6px;min-height:42px;align-items:center}
.fabric-type-option{position:relative;cursor:pointer}
.fabric-type-option input{position:absolute;opacity:0;pointer-events:none}
.fabric-type-option span{display:inline-flex;align-items:center;padding:7px 9px;border:1px solid #c7d8e6;border-radius:999px;background:#fff;color:#46627b;font-size:11px;font-weight:800}
.fabric-type-option input:checked+span{background:#e4f6ed;border-color:#8fcfb0;color:#0d7048}
.fabric-type-hint{font-size:12px;color:#7b8d9d;font-style:italic}
.fabric-project-types-note{margin:0 0 14px;padding:10px 12px;border-radius:9px;background:#f0f7fb;color:#244d6d;font-size:13px}
@media(max-width:900px){.project-fabric-row{grid-template-columns:1fr 1fr!important}.fabric-applies-field{grid-column:1/-1}.project-fabric-row .danger-btn{justify-self:start}}
@media(max-width:600px){.project-fabric-row{grid-template-columns:1fr!important}.fabric-applies-field{grid-column:auto}}


/* V1.30.5 - Add Project alignment cleanup */
#projectDialog .project-type-field{display:flex;flex-direction:column;align-self:stretch;justify-content:flex-start;gap:6px;padding:0;margin:0;border:0}
#projectDialog .project-type-field legend{display:block;margin:0;padding:0;font-size:14px;font-weight:800;line-height:1.25;color:#0b3158}
#projectDialog .project-type-help{display:block;margin:0;color:#6b8095;font-size:12px;font-weight:600;line-height:1.2}
#projectDialog .project-type-options{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-height:48px;margin-top:1px}
#projectDialog .project-type-option span{min-height:42px;padding:9px 16px}
#projectDialog .project-fabrics-create{margin-top:18px}
#projectDialog .project-fabric-row{grid-template-columns:minmax(250px,1.25fr) minmax(170px,.62fr) minmax(300px,1fr) auto!important;align-items:end!important}
#projectDialog .fabric-applies-options{min-height:42px}
@media(max-width:900px){#projectDialog .project-fabric-row{grid-template-columns:1fr 1fr!important}#projectDialog .fabric-applies-field{grid-column:1/-1}}
@media(max-width:600px){#projectDialog .project-fabric-row{grid-template-columns:1fr!important}}

/* V1.30.7 Add/Edit Project layout cleanup */
#projectDialog{width:min(980px,94vw)}
#projectDialog .modal-card{padding:28px 30px 26px}
#projectDialog .form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:22px;row-gap:16px;align-items:start}
#projectDialog .form-grid>label,#projectDialog .project-type-field{margin:0;min-width:0}
#projectDialog .project-type-field{display:block!important;align-self:start!important;padding-top:0!important}
#projectDialog .project-type-field legend{margin:0 0 3px!important;line-height:1.2}
#projectDialog .project-type-help{display:block;margin:0 0 8px;color:#6b8095;font-size:12px;font-weight:600}
#projectDialog .project-type-options{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px!important;margin:0!important;min-height:48px}
#projectDialog .project-type-option{width:100%;justify-content:center;min-height:48px}
#projectDialog .project-fabrics-create{margin-top:18px;overflow:hidden}
#projectDialog .project-fabric-row{grid-template-columns:minmax(240px,1.25fr) minmax(150px,.6fr) minmax(250px,1fr) auto!important;gap:12px!important;align-items:end!important}
#projectDialog .project-fabric-row>*{min-width:0}
#projectDialog .project-fabric-row .danger-btn{white-space:nowrap}
#projectDialog .conditional-project-field[hidden],#projectDialog #totalWindowsField[hidden]{display:none!important}
@media(max-width:760px){#projectDialog .form-grid{grid-template-columns:1fr}#projectDialog .project-type-options{grid-template-columns:1fr 1fr}#projectDialog .project-fabric-row{grid-template-columns:1fr!important}}

/* V1.30.9 sidebar cleanup */
.sidebar nav:after{content:none!important;display:none!important}

/* V1.31 Project Production Setup */
.factory-readiness-card{margin-bottom:18px}.factory-readiness-card .badge.success{background:#dff5ea;color:#087548}.readiness-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}.readiness-row{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid #d8e5ef;border-radius:10px;background:#f8fbfd}.readiness-row span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;font-weight:800}.readiness-row.ready span{background:#dff5ea;color:#087548}.readiness-row.missing span{background:#fff0d8;color:#9a5b00}.readiness-note{padding:12px 14px;border-radius:10px;background:#edf8fd;color:#31556f}.production-setup-card>.factory-production-lists .factory-list-heading{display:none}.production-setup-card>.factory-production-lists .factory-finished-projects{display:none}.production-setup-card .floor-size-project{margin-top:14px}.factory-project-production-preview .factory-list-heading{display:none}.factory-project-production-preview .factory-finished-projects{display:none}.factory-project-production-preview .project-requirement-btn,.factory-project-production-preview .mini-action,.factory-project-production-preview .link-danger{display:none!important}.project-combined-sections{display:grid;gap:20px}.project-overview-grid{align-items:stretch}.project-overview-grid>.factory-readiness-card{margin:0}@media(max-width:900px){.readiness-list{grid-template-columns:1fr}.project-overview-grid{grid-template-columns:1fr}}

/* V1.31.1 Job Type selector */
.job-type-field{border:0;padding:0;margin:0;min-width:0;align-self:start}
.job-type-field legend{font-weight:700;margin-bottom:10px}
.job-type-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.job-type-option{position:relative;margin:0}
.job-type-option input{position:absolute;opacity:0;pointer-events:none}
.job-type-option span{display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 12px;border:1px solid var(--line,#c9d8e6);border-radius:10px;background:#fff;font-weight:700;cursor:pointer;text-align:center}
.job-type-option input:checked+span{border-color:#08a8df;background:#e9f8fe;box-shadow:0 0 0 2px rgba(8,168,223,.12)}
#windowTagField{align-self:start}
@media(max-width:760px){.job-type-options{grid-template-columns:1fr 1fr}}

/* V1.31.6 project address alignment */
#projectDialog .project-location-row{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(140px,.7fr);gap:12px;align-items:start;min-width:0}
#projectDialog .project-location-row>label{margin:0;min-width:0}
@media(max-width:760px){#projectDialog .project-location-row{grid-template-columns:1fr}}

/* V1.31.8 readiness details */
.readiness-missing-detail{margin-top:12px;padding:12px 14px;border:1px solid #f1d39b;background:#fff9ee;border-radius:12px;display:grid;gap:8px}.readiness-missing-detail>strong{color:#8a5a00}.readiness-missing-item{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding-top:8px;border-top:1px solid rgba(138,90,0,.14)}.readiness-missing-item:first-of-type{border-top:0;padding-top:0}.readiness-missing-item span{color:var(--text)}.readiness-missing-item b{color:#b66a00;text-align:right}@media(max-width:760px){.readiness-missing-item{display:block}.readiness-missing-item b{display:block;text-align:left;margin-top:4px}}

/* v1.31.9 completed project production record */
.project-complete-banner{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 18px;padding:18px 22px;border:1px solid #b9dfca;border-radius:14px;background:#eef9f3;color:#0c5132}.project-complete-banner>div{display:grid;gap:3px}.project-complete-banner span{font-size:12px;font-weight:900;letter-spacing:.12em}.project-complete-banner strong{font-size:22px;color:#0b2d50}.project-complete-banner small{font-size:14px;color:#466b5b}.project-complete-banner>b{font-size:28px;color:#087443}.job-complete-card{border-color:#b9dfca}.project-production-record .factory-active-projects,.project-production-record .factory-finished-projects>.factory-list-heading{display:none}.project-production-record .factory-production-lists,.project-production-record .admin-production-lists{display:block}.project-production-record .factory-finished-projects{display:block}.project-production-record .floor-size-projects{display:block}.project-production-record details.floor-size-project{margin:0;border:0;box-shadow:none}.project-production-record details.floor-size-project>summary{border-radius:10px}.project-production-record details.floor-size-project[open]>.floor-size-floor-list{padding-top:12px}@media(max-width:700px){.project-complete-banner{align-items:flex-start;flex-direction:column;gap:8px}.project-complete-banner>b{font-size:22px}}

/* V1.32.1 sidebar information architecture + header notification bell */
.nav-group{display:grid;gap:2px}
.nav-group-toggle{display:flex;align-items:center;justify-content:space-between;width:100%}
.nav-group-toggle .nav-caret{font-size:13px;transition:transform .16s ease;color:#a8c6df}
.nav-group.collapsed .nav-caret{transform:rotate(-90deg)}
.nav-submenu{display:grid;gap:2px;padding-left:12px}
.nav-group.collapsed .nav-submenu{display:none}
.nav-sub-btn{padding-left:20px!important;font-size:14px!important;color:#c9dceb!important}
.nav-sub-btn.active{color:#fff!important}
.nav-bottom-item{margin-top:12px;border-top:1px solid rgba(255,255,255,.14);padding-top:16px}
.top-icon-btn{position:relative;width:44px;height:44px;border-radius:9px;border:1px solid #6f93b4;background:transparent;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.top-icon-btn:hover{background:rgba(255,255,255,.08)}
.top-icon-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.notification-badge{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#e74a3b;color:#fff;font-size:11px;font-weight:900;line-height:20px;text-align:center;border:2px solid #073760}
@media(max-width:780px){.nav-submenu{display:flex;padding-left:0}.nav-group{display:flex}.nav-group-toggle{white-space:nowrap}.nav-bottom-item{margin-top:0;border-top:0;padding-top:10px}.top-icon-btn{width:40px;height:40px;flex:0 0 auto}}

/* V1.32.2 - project-level client portal */
.client-portal-project-card{max-width:1100px}
.portal-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}
.portal-project-grid>div{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid var(--border,#d9e3ed);border-radius:12px;background:#f8fbfd}
.portal-project-grid strong{font-size:15px;word-break:break-word}
.portal-link-field{display:block;margin:16px 0;font-weight:700}
.portal-link-field input{width:100%;margin-top:8px;font-weight:500;background:#fff}
@media(max-width:800px){.portal-project-grid{grid-template-columns:1fr}.client-portal-project-card .button-row{align-items:stretch}.client-portal-project-card .button-row button{width:100%}}

/* V1.32.3 Installation scheduling */
.installation-trip-list{display:grid;gap:14px;margin-top:16px}.installation-trip-card{display:grid;grid-template-columns:180px 1fr;border:1px solid var(--line,#d7e3ef);border-radius:14px;overflow:hidden;background:#fff}.installation-trip-date{padding:18px;background:#eef7fc;display:flex;flex-direction:column;gap:4px;justify-content:center}.installation-trip-date span{font-size:12px;font-weight:800;letter-spacing:.09em;color:#627a90}.installation-trip-date strong{font-size:20px;color:#0b355d}.installation-trip-main{padding:16px 18px}.installation-trip-meta{display:flex;gap:22px;flex-wrap:wrap;margin:8px 0 6px;color:#45627d}.installation-schedule-card .section-head{align-items:center}@media(max-width:760px){.installation-trip-card{grid-template-columns:1fr}.installation-trip-date{padding:12px 16px}.installation-trip-meta{gap:8px;flex-direction:column}}

.installation-complete-summary{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 14px;margin:0 0 14px;border:1px solid var(--line,#d7e1eb);border-left:4px solid #25b8e6;border-radius:10px;background:#f5fbfe}.installation-complete-summary strong{color:#0a3158}.installation-complete-summary span{color:#5e7288}.installation-trip-card .room-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}.installation-trip-card .room-actions .primary,.installation-trip-card .room-actions .secondary{padding:8px 12px;font-size:13px}

/* V1.32.8: completed installation trips can be reopened. */
.installation-trip-card .undo-install-btn{border-color:#e8a3a3;color:#a92b2b;background:#fff;}
.installation-trip-card .undo-install-btn:hover{background:#fff4f4;}

/* V1.32.17 Dashboard Activity Stream */
.dashboard-activity-card{margin-top:18px}.dashboard-activity{display:flex;flex-direction:column;max-height:520px;overflow:auto}.dashboard-activity-item{display:flex;gap:14px;padding:14px 4px;border-top:1px solid #e3ebf2}.dashboard-activity-item:first-child{border-top:0}.activity-dot{width:10px;height:10px;border-radius:50%;background:#08a6d8;margin-top:6px;flex:0 0 auto}.activity-main{display:flex;justify-content:space-between;gap:18px;width:100%;align-items:flex-start}.activity-main>div:last-child{white-space:nowrap;font-size:12px}@media(max-width:760px){.activity-main{display:block}.activity-main>div:last-child{margin-top:4px}}

/* V1.32.18 Dashboard sizing: attention panel matches one KPI column width */
@media(min-width:1101px){#dashboard .grid-2{grid-template-columns:minmax(0,3fr) minmax(0,1fr)}}


/* V1.32.20 Model Room workflow */
.model-room-project-toggle{display:flex!important;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid #cdd9e3;border-radius:10px;background:#f8fbfd}.model-room-project-toggle input{margin-top:4px}.model-room-project-toggle span{display:flex;flex-direction:column;gap:3px}.model-room-project-toggle small{color:#6b7d8e;font-weight:400}.model-room-banner{background:linear-gradient(135deg,#083c67,#0d5f96);color:#fff;padding:18px 20px;border-radius:12px;margin-bottom:16px}.model-room-banner div{display:flex;flex-direction:column;gap:4px}.model-room-banner span{font-size:11px;letter-spacing:1.3px;font-weight:800}.model-room-banner strong{font-size:20px}.model-room-banner small{opacity:.9}.model-room-stack{display:grid;gap:16px}.model-room-card{border:1px solid #d8e2ea;border-radius:12px;padding:16px;background:#fff}.model-room-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px}.model-room-card-head h3{margin:3px 0}.model-room-actions{margin-top:14px;flex-wrap:wrap}.model-room-warning{display:flex;gap:12px;align-items:center;background:#fff3f3;border:1px solid #f4b6b6;border-left:5px solid #b91c1c;color:#7f1d1d;padding:11px 13px;border-radius:8px;margin-bottom:14px}.model-room-warning span{color:#7f1d1d}.model-room-modal{width:min(1100px,94vw)}.model-room-item-rows{display:grid;gap:8px;margin-bottom:14px}.model-room-item-row{display:grid;grid-template-columns:130px 70px 90px 90px 1.2fr 1.2fr 1fr 1.4fr auto;gap:8px;align-items:center}.model-room-item-row input,.model-room-item-row select{min-width:0}.model-room-files{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.model-room-factory-queue{border-top:4px solid #b91c1c;margin-bottom:16px}@media(max-width:1100px){.model-room-item-row{grid-template-columns:1fr 90px 90px 90px 1fr 1fr}.model-room-item-row button{grid-column:auto}.model-room-item-row input[name=mrDescription]{grid-column:1/-2}}

/* v1.32.22 - Model Room Production Setup gate */
.model-room-pending-wrap{position:relative;min-height:390px;overflow:hidden}
.model-room-pending-content{filter:blur(1.5px);opacity:.32;pointer-events:none;user-select:none}
.model-room-pending-placeholder{height:260px;border:1px dashed #cbd5e1;border-radius:12px;background:linear-gradient(180deg,#f8fafc,#eef2f7);margin-top:18px}
.model-room-pending-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px;background:rgba(248,250,252,.88);backdrop-filter:blur(2px);z-index:3}
.model-room-pending-overlay h2{margin:6px 0 8px;font-size:30px;color:#0b3155}
.model-room-pending-overlay p{max-width:650px;margin:0 0 20px;color:#52667a;line-height:1.55}
.model-room-pending-lock{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;background:#0b3155;color:white;font-weight:800;letter-spacing:.08em;margin-bottom:12px;box-shadow:0 8px 24px rgba(11,49,85,.18)}
/* V1.32.24 - Model Room popup only */
.bulk-floor-dialog.model-room-mode .bulk-floor-top{grid-template-columns:minmax(260px,1fr) minmax(220px,.65fr)}
.bulk-floor-dialog.model-room-mode .model-room-add-set{display:flex;justify-content:flex-end;margin:12px 0 8px}
.bulk-floor-dialog.model-room-mode .model-room-size-row{display:block;padding:12px}
.bulk-floor-dialog.model-room-mode .model-room-size-main{grid-template-columns:repeat(4,minmax(120px,.8fr)) minmax(220px,1.35fr) minmax(190px,1fr) auto;align-items:end}
.bulk-floor-dialog.model-room-mode .model-room-product-row{grid-template-columns:repeat(4,minmax(150px,1fr))!important;margin-top:8px}
.bulk-floor-dialog.model-room-mode .model-room-hardware{grid-column:1/-1;display:grid;grid-template-columns:160px minmax(150px,1fr) minmax(150px,1fr) minmax(150px,1fr);gap:8px;align-items:end;padding:12px;border:1px solid #cfe0ee;border-radius:10px;background:#f7fbfe}
.bulk-floor-dialog.model-room-mode .model-room-hardware[hidden]{display:none!important}
.bulk-floor-dialog.model-room-mode .model-room-hardware-title{font-weight:800;color:var(--navy);align-self:center}
.bulk-floor-dialog.model-room-mode .model-room-product-row>[hidden]{display:none!important}
.bulk-floor-dialog.model-room-mode .model-room-product-row>.danger-btn{align-self:end;justify-self:start}
@media(max-width:1100px){.bulk-floor-dialog.model-room-mode .model-room-size-main{grid-template-columns:repeat(3,minmax(0,1fr))}.bulk-floor-dialog.model-room-mode .model-room-hardware{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.bulk-floor-dialog.model-room-mode .bulk-floor-top,.bulk-floor-dialog.model-room-mode .model-room-size-main,.bulk-floor-dialog.model-room-mode .model-room-product-row,.bulk-floor-dialog.model-room-mode .model-room-hardware{grid-template-columns:1fr!important}}

/* V1.32.25 - Compact Model Room popup + hardware sub-dialog */
.bulk-floor-dialog.model-room-mode{
  width:min(1180px,calc(100vw - 32px));
  max-width:1180px;
  max-height:calc(100vh - 28px);
}
.bulk-floor-dialog.model-room-mode form{max-height:calc(100vh - 28px)}
.bulk-floor-dialog.model-room-mode .dialog-head{padding:14px 20px 10px}
.bulk-floor-dialog.model-room-mode .dialog-head h3{font-size:25px;line-height:1.08;margin:2px 0 3px}
.bulk-floor-dialog.model-room-mode .dialog-head p{font-size:13px;line-height:1.35}
.bulk-floor-dialog.model-room-mode .eyebrow{font-size:11px;letter-spacing:1.5px}
.bulk-floor-dialog.model-room-mode .bulk-floor-top{grid-template-columns:minmax(360px,1.35fr) minmax(240px,.8fr);padding:0 20px;gap:12px}
.bulk-floor-dialog.model-room-mode .bulk-floor-top label{font-size:12px;margin-top:10px}
.bulk-floor-dialog.model-room-mode .bulk-floor-top input,.bulk-floor-dialog.model-room-mode .bulk-floor-top select{font-size:13px;padding:9px 10px}
.bulk-floor-dialog.model-room-mode .model-room-add-set{margin:8px 20px 6px}
.bulk-floor-dialog.model-room-mode .model-room-add-set .secondary{font-size:12px;padding:8px 11px}
.bulk-floor-dialog.model-room-mode .bulk-size-rows{padding:0 20px 8px;gap:8px}
.bulk-floor-dialog.model-room-mode .model-room-size-row{padding:10px;border-radius:12px}
.bulk-floor-dialog.model-room-mode .model-room-size-main{grid-template-columns:repeat(4,minmax(105px,.65fr)) minmax(190px,1.15fr) minmax(175px,1fr) auto;gap:7px}
.bulk-floor-dialog.model-room-mode .model-room-size-main label{font-size:11px;gap:4px}
.bulk-floor-dialog.model-room-mode .model-room-size-main input{font-size:13px;padding:8px 9px}
.bulk-floor-dialog.model-room-mode .bulk-products-head{margin-top:8px;padding-top:8px}
.bulk-floor-dialog.model-room-mode .bulk-products-head strong{font-size:14px}
.bulk-floor-dialog.model-room-mode .bulk-products-head .muted{font-size:11px}
.bulk-floor-dialog.model-room-mode .bulk-products-head .secondary{font-size:12px;padding:7px 10px}
.bulk-floor-dialog.model-room-mode .model-room-product-row{position:relative;grid-template-columns:repeat(4,minmax(135px,1fr))!important;gap:7px;margin-top:7px;padding:11px 10px 9px;border:1px solid #dbe6ee;border-radius:10px;background:#fff}
.bulk-floor-dialog.model-room-mode .model-room-product-row label{font-size:11px;gap:4px;margin:0}
.bulk-floor-dialog.model-room-mode .model-room-product-row input,.bulk-floor-dialog.model-room-mode .model-room-product-row select{font-size:13px;padding:8px 9px;min-height:36px}
.bulk-floor-dialog.model-room-mode .model-room-product-actions{grid-column:1/-1;display:flex;justify-content:flex-end;margin:-3px 0 0}
.bulk-floor-dialog.model-room-mode .model-room-product-actions .danger-btn{font-size:11px;padding:6px 9px}
.bulk-floor-dialog.model-room-mode .model-room-hardware-button{grid-column:1/-1;display:flex;align-items:center;gap:10px;margin-top:1px}
.bulk-floor-dialog.model-room-mode .model-room-hardware-button[hidden]{display:none!important}
.bulk-floor-dialog.model-room-mode .model-room-hardware-button .secondary{font-size:12px;padding:8px 11px;white-space:nowrap}
.bulk-floor-dialog.model-room-mode .model-room-hardware-button .muted{font-size:11px}
.bulk-floor-dialog.model-room-mode .dialog-actions{padding:10px 20px 12px}
.bulk-floor-dialog.model-room-mode .dialog-actions button{font-size:13px;padding:9px 14px}
.model-room-hardware-dialog{width:min(620px,calc(100vw - 32px));border-radius:16px;overflow:hidden}
.model-room-hardware-dialog form{background:#fff}
.model-room-hardware-dialog .dialog-head{padding:18px 20px 12px;border-bottom:1px solid #e7eef4}
.model-room-hardware-dialog .dialog-head h3{font-size:22px;margin:3px 0 4px}
.model-room-hardware-dialog .dialog-head p{font-size:13px;margin:0;color:var(--muted)}
.model-room-hardware-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:18px 20px}
.model-room-hardware-form label{font-size:12px;margin:0}
.model-room-hardware-form input,.model-room-hardware-form select{font-size:13px;padding:9px 10px}
.model-room-hardware-dialog .dialog-actions{padding:12px 20px 16px;margin:0;border-top:1px solid #e7eef4}
@media(max-width:950px){
  .bulk-floor-dialog.model-room-mode .model-room-size-main{grid-template-columns:repeat(3,minmax(0,1fr))}
  .bulk-floor-dialog.model-room-mode .model-room-product-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:650px){
  .bulk-floor-dialog.model-room-mode .bulk-floor-top,.bulk-floor-dialog.model-room-mode .model-room-size-main,.bulk-floor-dialog.model-room-mode .model-room-product-row{grid-template-columns:1fr!important}
  .model-room-hardware-form{grid-template-columns:1fr}
}

/* V1.32.27 Model Room factory submission workflow */
.model-room-primary-card{margin-top:14px}
.model-room-record-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;margin-top:14px}
.model-room-record-card{border:1px solid #d8e4ee;border-radius:12px;padding:14px;background:#fff}
.model-room-record-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}
.model-room-record-head strong{display:block;font-size:17px;color:#0b3156;margin-top:3px}
.model-room-record-head small{display:block;color:#62788e;margin-top:4px}
.model-room-requirements-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}
.model-room-requirements-grid section{border:1px solid #d8e4ee;border-radius:12px;padding:14px;background:#f9fbfd}
.model-room-summary-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}
.model-room-summary-title h4{margin:0;color:#0b3156}
.model-room-summary-title span{font-size:12px;color:#6b7f93}
.model-room-submit-row{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid #dce6ef;margin-top:16px;padding-top:14px}
.model-room-submit-issues{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;color:#a05a00;font-size:13px}
.model-room-pending-factory-wrap{position:relative;margin-top:14px;min-height:380px;border-radius:14px;overflow:hidden}
.model-room-pending-factory-content{filter:grayscale(.8);opacity:.34;pointer-events:none;user-select:none}
.model-room-pending-factory-overlay{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px;background:rgba(242,246,249,.78);backdrop-filter:blur(2px);border:1px solid #d6e1ea;border-radius:14px}
.model-room-pending-factory-overlay h2{margin:6px 0;color:#0b3156}
.model-room-pending-factory-overlay p{max-width:690px;color:#536a80;line-height:1.5}
.model-room-hardware-manager{width:min(1100px,94vw)}
.model-room-hardware-manager-list{display:flex;flex-direction:column;gap:10px;padding:12px 22px}
.model-room-hardware-manager-row{display:grid;grid-template-columns:minmax(180px,1.5fr) repeat(3,minmax(150px,1fr));gap:12px;align-items:end;border:1px solid #d8e4ee;border-radius:12px;padding:12px;background:#f9fbfd}
.model-room-hardware-manager-row>div strong,.model-room-hardware-manager-row>div span{display:block}.model-room-hardware-manager-row>div span{font-size:12px;color:#6b7f93;margin-top:4px}
@media(max-width:900px){.model-room-requirements-grid{grid-template-columns:1fr}.model-room-hardware-manager-row{grid-template-columns:1fr 1fr}.model-room-submit-row{align-items:flex-start;flex-direction:column}}
.model-room-hardware-calc-row{display:grid!important;grid-template-columns:minmax(180px,1.25fr) repeat(3,minmax(135px,.8fr));gap:12px;align-items:end;padding:16px!important}
.model-room-hardware-product{display:flex;flex-direction:column;gap:4px;align-self:center}.model-room-hardware-product strong{font-size:15px}.model-room-hardware-product span{font-size:12px}
.model-room-hardware-calcs{grid-column:1/-1;display:grid;grid-template-columns:repeat(6,minmax(100px,1fr));gap:8px;padding-top:10px;border-top:1px solid var(--line,#dfe8f1)}
.model-room-hardware-calcs span{background:#f7fafc;border:1px solid #e3ebf2;border-radius:8px;padding:9px 10px;font-size:12px;display:flex;gap:5px;align-items:baseline}.model-room-hardware-calcs b{font-size:15px;color:#0b3558}
.model-room-hardware-rule-note{margin:12px 0 0}.model-room-hardware-summary-section{min-width:0}.model-room-hardware-summary-section .table-wrap{overflow-x:auto}.model-room-hardware-summary-section table{min-width:850px}
@media(max-width:1050px){.model-room-hardware-calc-row{grid-template-columns:1fr 1fr}.model-room-hardware-calcs{grid-template-columns:repeat(3,1fr)}}
node --check /mnt/data/v13231/app.js
rm -f /mnt/data/THW_Command_Center_Live_V1_32_31_Manage_Fabrics_Fix.zip
cd /mnt/data/v13231 && zip -qr /mnt/data/THW_Command_Center_Live_V1_32_31_Manage_Fabrics_Fix.zip .
ls -lh /mnt/data/THW_Command_Center_Live_V1_32_31_Manage_Fabrics_Fix.zip

.project-locked-field{margin-top:6px;padding:12px 14px;border:1px solid #c9d8e7;border-radius:10px;background:#f6f9fc;font-weight:700;color:#12395f;min-height:44px;display:flex;align-items:center}

/* V1.32.32 Model Room submission requirements UX */
.model-room-inline-requirements{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}
.model-room-requirement-card{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #d8e4ee;border-radius:12px;padding:12px 14px;background:#f8fbfd}
.model-room-requirement-card.incomplete{border-color:#e7b66d;background:#fffaf2}.model-room-requirement-card.complete{border-color:#b9dfcc;background:#f4fbf7}
.model-room-requirement-card>div:first-child{display:flex;flex-direction:column;gap:3px}.model-room-requirement-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:#61778b}.model-room-requirement-card strong{font-size:14px;color:#0b3156}
.model-room-inline-date{display:flex;gap:8px;align-items:center}.model-room-inline-date input{min-width:150px}
.model-room-submit-issues-actionable{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.model-room-submit-issues-actionable>div:first-child{display:flex;flex-wrap:wrap;gap:6px 14px}.model-room-submit-issues-actionable .button-row{flex:0 0 auto}
.model-room-primary-card.needs-completion{box-shadow:0 0 0 3px rgba(229,154,43,.28);transition:box-shadow .2s ease}
@media(max-width:900px){.model-room-inline-requirements{grid-template-columns:1fr}.model-room-requirement-card{align-items:flex-start;flex-direction:column}.model-room-submit-issues-actionable{flex-direction:column}.model-room-inline-date{width:100%;flex-wrap:wrap}}

/* v1.32.36 - Factory portal Model Room label + alignment cleanup */
.factory-portal-mode .floor-size-summary-card>.section-head{
  align-items:center;
  gap:16px;
}
.factory-portal-mode .factory-project-summary-actions{
  display:grid!important;
  grid-auto-flow:row;
  justify-items:stretch!important;
  align-items:stretch!important;
  gap:10px!important;
  min-width:170px;
}
.factory-portal-mode .factory-project-summary-actions .project-requirement-btn{
  width:100%;
  min-width:160px;
  justify-content:center;
}
.factory-portal-mode .floor-size-project>summary{
  align-items:center;
  gap:24px;
}
.factory-portal-mode .floor-size-floor{
  padding:16px 18px;
}
.factory-portal-mode .floor-size-floor-head{
  align-items:flex-start;
  margin-bottom:16px;
}
.factory-portal-mode .floor-size-floor-head>div:first-child{
  min-width:0;
}
.factory-portal-mode .floor-size-floor-head>div>strong{
  margin:0;
}
.factory-portal-mode .floor-size-floor-actions{
  min-width:max-content;
  justify-content:flex-end;
}
.factory-portal-mode .floor-due-right{
  text-align:right;
  white-space:nowrap;
}
.factory-portal-mode .floor-size-card{
  padding:14px 16px;
}
.factory-portal-mode .floor-size-dimension{
  align-items:center;
  margin-bottom:8px;
}
.factory-portal-mode .floor-size-rooms{
  margin:0 0 12px;
}
.factory-portal-mode .floor-product-line{
  align-items:center;
}
.factory-portal-mode .model-room-factory-floor .floor-size-floor-head>div>strong{
  font-size:22px;
}
.factory-portal-mode .model-room-factory-floor .floor-size-floor-head>div>span{
  font-size:14px;
}
@media(max-width:980px){
  .factory-portal-mode .floor-size-project>summary{align-items:flex-start;flex-direction:column}
  .factory-portal-mode .factory-project-summary-actions{width:100%;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}
  .factory-portal-mode .floor-size-floor-head{align-items:flex-start;flex-direction:column}
  .factory-portal-mode .floor-size-floor-actions{width:100%;justify-content:flex-start}
  .factory-portal-mode .floor-due-right{text-align:left}
}

/* V1.32.37 - submitted Model Room state */
.model-room-submitted-button{background:#e5e7eb!important;color:#6b7280!important;border:1px solid #d1d5db!important;box-shadow:none!important;cursor:not-allowed!important;opacity:1!important;font-weight:700;}
.model-room-submitted-button:hover{background:#e5e7eb!important;color:#6b7280!important;transform:none!important;}

/* V1.32.40 Factory Portal no-flash loading */
body.factory-portal-loading{overflow:hidden}
body.factory-portal-loading #app{display:none!important}
body.factory-portal-loading #login{display:grid!important;place-items:center!important;position:fixed;inset:0;width:100vw;height:100dvh;min-height:100dvh;z-index:9999;margin:0!important;padding:28px!important}
body.factory-portal-loading #login .login-card{position:relative!important;left:auto!important;right:auto!important;top:auto!important;transform:none!important;margin:0!important;width:min(470px,94vw)!important}
body.factory-portal-loading #loginHint{opacity:1}

/* V1.32.42 - Manufacturing popup product-specific fields */
.bulk-hardware-section{grid-column:1/-1;display:grid;grid-template-columns:180px repeat(3,minmax(180px,1fr));gap:12px;align-items:end;padding:14px 16px;border:1px solid #d6e4ef;border-radius:12px;background:#f7fbfe}
.bulk-hardware-section[hidden]{display:none}
.bulk-hardware-title{font-weight:800;font-size:18px;color:#0c3155;align-self:center}
.bulk-hardware-section label{margin:0}
.bulk-hardware-section input[readonly]{background:#eef4f8;color:#52677a}
@media(max-width:900px){.bulk-hardware-section{grid-template-columns:1fr 1fr}.bulk-hardware-title{grid-column:1/-1}}


/* V1.32.44 - Adding Products popup visual organization */
.bulk-floor-dialog:not(.model-room-mode){width:min(1180px,96vw)}
.bulk-floor-dialog:not(.model-room-mode) .dialog-head{padding:20px 26px 16px;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%)}
.bulk-floor-dialog:not(.model-room-mode) .dialog-head h3{font-size:26px;letter-spacing:-.02em}
.bulk-floor-dialog:not(.model-room-mode) .dialog-head p{max-width:760px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-section-label,
.bulk-floor-dialog:not(.model-room-mode) .bulk-room-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 24px 8px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-section-label{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin-top:18px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-section-label strong,
.bulk-floor-dialog:not(.model-room-mode) .bulk-room-section-head strong{font-size:15px;color:var(--navy)}
.bulk-floor-dialog:not(.model-room-mode) .bulk-section-label span,
.bulk-floor-dialog:not(.model-room-mode) .bulk-room-section-head span{display:block;margin-top:2px;font-size:12px;color:var(--muted)}
.bulk-floor-dialog:not(.model-room-mode) .bulk-floor-top{grid-template-columns:1.15fr .75fr .9fr .9fr;gap:12px;padding:0 24px 14px;margin:0 24px;border:1px solid #e2eaf0;border-radius:12px;background:#f8fbfd}
.bulk-floor-dialog:not(.model-room-mode) .bulk-floor-top label{margin-top:12px;font-size:12px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-floor-help{margin:12px 24px 4px;font-size:12px;padding:8px 11px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-room-section-head{margin-top:16px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-room-section-head .secondary{white-space:nowrap;padding:8px 12px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-size-rows{padding:0 24px 12px;gap:12px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-size-row{padding:14px;border-radius:12px;background:#fbfdff;border:1px solid #dce7ef;box-shadow:0 1px 0 rgba(9,44,77,.02)}
.bulk-floor-dialog:not(.model-room-mode) .bulk-size-main{grid-template-columns:125px 125px 125px minmax(220px,1.25fr) minmax(190px,1fr) auto;gap:10px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-size-main .danger-btn{align-self:end;min-height:40px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-products-head{margin-top:13px;padding-top:12px;border-top:1px solid #dfe8ef}
.bulk-floor-dialog:not(.model-room-mode) .bulk-products-head strong{font-size:14px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-products{gap:10px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-product-row{padding:11px;border-radius:10px;background:#fff}
.bulk-floor-dialog:not(.model-room-mode) .dialog-actions{padding:14px 24px 17px}
@media(max-width:1100px){
 .bulk-floor-dialog:not(.model-room-mode) .bulk-floor-top{grid-template-columns:1fr 1fr;margin-left:16px;margin-right:16px;padding-left:16px;padding-right:16px}
 .bulk-floor-dialog:not(.model-room-mode) .bulk-section-label,.bulk-floor-dialog:not(.model-room-mode) .bulk-room-section-head{margin-left:16px;margin-right:16px}
 .bulk-floor-dialog:not(.model-room-mode) .bulk-floor-help{margin-left:16px;margin-right:16px}
 .bulk-floor-dialog:not(.model-room-mode) .bulk-size-rows{padding-left:16px;padding-right:16px}
 .bulk-floor-dialog:not(.model-room-mode) .bulk-size-main{grid-template-columns:1fr 1fr 1fr}
 .bulk-floor-dialog:not(.model-room-mode) .bulk-size-main .bulk-room-numbers{grid-column:1/3}
 .bulk-floor-dialog:not(.model-room-mode) .bulk-size-main .bulk-notes{grid-column:3/4}
}
@media(max-width:720px){
 .bulk-floor-dialog:not(.model-room-mode) .bulk-floor-top,.bulk-floor-dialog:not(.model-room-mode) .bulk-size-main{grid-template-columns:1fr 1fr}
 .bulk-floor-dialog:not(.model-room-mode) .bulk-size-main .bulk-room-numbers,.bulk-floor-dialog:not(.model-room-mode) .bulk-size-main .bulk-notes{grid-column:1/-1}
 .bulk-floor-dialog:not(.model-room-mode) .bulk-room-section-head{align-items:flex-start;flex-direction:column}
}
@media(max-width:520px){.bulk-floor-dialog:not(.model-room-mode) .bulk-floor-top,.bulk-floor-dialog:not(.model-room-mode) .bulk-size-main{grid-template-columns:1fr}}

/* V1.32.45 - product-specific Manufacturing fields */
.bulk-floor-dialog .bulk-product-row>[data-bulk-field][hidden]{display:none!important;}
.bulk-floor-dialog .bulk-hardware-section{grid-column:1/-1;display:grid;grid-template-columns:minmax(120px,.8fr) repeat(3,minmax(160px,1fr));gap:10px;align-items:end;padding:12px 14px;border:1px solid #d7e3ee;border-radius:12px;background:#f8fbfd;}
.bulk-floor-dialog .bulk-hardware-section>strong{align-self:center;font-size:16px;color:#0b355c;}
.bulk-floor-dialog .bulk-hardware-section label{font-size:11px;}
@media(max-width:900px){.bulk-floor-dialog .bulk-hardware-section{grid-template-columns:1fr 1fr}.bulk-floor-dialog .bulk-hardware-section>strong{grid-column:1/-1}}

/* v1.32.46 - Adding Products popup fit/alignment */
.bulk-floor-dialog:not(.model-room-mode){
  width:min(1280px,calc(100vw - 32px));
  max-width:1280px;
  max-height:calc(100vh - 24px);
}
.bulk-floor-dialog:not(.model-room-mode) form{
  max-height:calc(100vh - 24px);
  overflow-y:auto;
  overflow-x:hidden;
}
.bulk-floor-dialog:not(.model-room-mode) .dialog-head{
  padding:14px 20px 10px;
}
.bulk-floor-dialog:not(.model-room-mode) .dialog-head h3{
  font-size:23px;
  margin:2px 0 3px;
}
.bulk-floor-dialog:not(.model-room-mode) .dialog-head p{font-size:13px;line-height:1.3}
.bulk-floor-dialog:not(.model-room-mode) .bulk-section-label{
  margin:10px 20px 5px;
}
.bulk-floor-dialog:not(.model-room-mode) .bulk-section-label strong{font-size:14px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-section-label span{font-size:11px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-floor-top{
  grid-template-columns:1.25fr .7fr .9fr .9fr;
  gap:10px;
  margin:0 20px;
  padding:0 12px 10px;
}
.bulk-floor-dialog:not(.model-room-mode) .bulk-floor-top label{margin-top:9px;font-size:11px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-floor-top input,
.bulk-floor-dialog:not(.model-room-mode) .bulk-floor-top select{padding:8px 9px;font-size:12px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-floor-help{
  margin:8px 20px 8px;
  padding:7px 10px;
  font-size:11px;
}
.bulk-floor-dialog:not(.model-room-mode) .bulk-room-section-head{
  margin:8px 20px 6px;
}
.bulk-floor-dialog:not(.model-room-mode) .bulk-room-section-head strong{font-size:14px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-room-section-head span{font-size:11px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-room-section-head .secondary{font-size:12px;padding:7px 10px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-size-rows{
  padding:0 20px 8px;
  gap:8px;
}
.bulk-floor-dialog:not(.model-room-mode) .bulk-size-row{
  padding:10px 11px;
  border-radius:10px;
}
.bulk-floor-dialog:not(.model-room-mode) .bulk-size-main{
  grid-template-columns:140px 140px 150px minmax(230px,1.25fr) minmax(190px,1fr) auto;
  gap:8px;
}
.bulk-floor-dialog:not(.model-room-mode) .bulk-size-main label{font-size:11px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-size-main input{padding:8px 9px;font-size:12px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-size-main .danger-btn{padding:8px 10px;min-height:36px;font-size:12px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-products-head{
  margin-top:8px;
  padding-top:8px;
}
.bulk-floor-dialog:not(.model-room-mode) .bulk-products-head strong{font-size:13px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-products-head .muted{font-size:11px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-products-head .secondary{font-size:12px;padding:7px 10px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-products{gap:7px;margin-top:7px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-product-row{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:7px;
  padding:8px 9px;
}
.bulk-floor-dialog:not(.model-room-mode) .bulk-product-row label{font-size:11px;gap:3px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-product-row input,
.bulk-floor-dialog:not(.model-room-mode) .bulk-product-row select{padding:8px 9px;font-size:12px}
.bulk-floor-dialog:not(.model-room-mode) .bulk-product-row .danger-btn{padding:8px 10px;font-size:12px;min-height:36px}
.bulk-floor-dialog:not(.model-room-mode) .dialog-actions{padding:10px 20px 12px}
.bulk-floor-dialog:not(.model-room-mode) .dialog-actions button{padding:9px 14px;font-size:13px}
@media(max-width:1050px){
  .bulk-floor-dialog:not(.model-room-mode){width:min(96vw,980px)}
  .bulk-floor-dialog:not(.model-room-mode) .bulk-floor-top{grid-template-columns:1fr 1fr}
  .bulk-floor-dialog:not(.model-room-mode) .bulk-size-main{grid-template-columns:1fr 1fr 1fr}
  .bulk-floor-dialog:not(.model-room-mode) .bulk-size-main .bulk-room-numbers{grid-column:1/3}
  .bulk-floor-dialog:not(.model-room-mode) .bulk-size-main .bulk-notes{grid-column:3/4}
  .bulk-floor-dialog:not(.model-room-mode) .bulk-product-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* v1.32.47 - inline optional labels */
#bulkFloorSizeDialog .field-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;}
#bulkFloorSizeDialog .optional-inline{font-size:12px;font-weight:600;line-height:1;white-space:nowrap;}

/* V1.32.52 - simplified Manufacturing toolbar */
.manufacturing-toolbar-simple{display:grid;grid-template-columns:minmax(320px,1.4fr) minmax(220px,.7fr);gap:12px;align-items:center}
.manufacturing-toolbar-simple .production-filters{display:block}
.manufacturing-toolbar-simple .production-filters select,.manufacturing-toolbar-simple .production-search input{width:100%}
@media(max-width:800px){.manufacturing-toolbar-simple{grid-template-columns:1fr}}
/* v1.32.56 client portal summary redesign */
.portal-project-status-card{margin-bottom:18px;padding:24px 26px}
.portal-status-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:15px}
.portal-status-heading h2{margin:3px 0 0;color:#0b3158;font-size:24px}
.eyebrow.dark{color:#4e8daf}
.portal-progress-number{font-size:38px;line-height:1;color:#0a78b3}
.portal-progress-track{height:12px;background:#e6eef5;border-radius:999px;overflow:hidden;margin-bottom:22px}
.portal-progress-track span{display:block;height:100%;background:#0aa7d8;border-radius:999px;transition:width .25s ease}
.portal-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.portal-status-grid>div{border:1px solid #dbe6ef;border-radius:12px;padding:15px 16px;background:#f9fbfd;min-width:0}
.portal-status-grid span{display:block;color:#6d8094;font-size:12px;font-weight:700;margin-bottom:6px}
.portal-status-grid strong{display:block;color:#0b3158;font-size:16px;overflow-wrap:anywhere}
.portal-section-card{margin-bottom:18px}
@media(max-width:760px){.portal-project-status-card{padding:18px}.portal-status-heading{align-items:flex-start}.portal-progress-number{font-size:32px}.portal-status-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.portal-status-grid{grid-template-columns:1fr}}

/* V1.32.57 - Client Portal project-tab spacing cleanup */
.client-portal-project-card{
  width:100%;
  max-width:none;
  margin:0;
  padding:18px 20px;
}
.client-portal-project-card .section-head{margin-bottom:10px}
.client-portal-project-card .portal-project-grid{
  gap:10px;
  margin:12px 0;
}
.client-portal-project-card .portal-project-grid>div{
  padding:11px 14px;
}
.client-portal-project-card .portal-link-field{
  margin:12px 0;
}
.client-portal-project-card .portal-link-field input{
  margin-top:6px;
}
.client-portal-project-card .button-row{
  margin-top:0;
  margin-bottom:10px;
}
.client-portal-project-card .readiness-note{
  margin-top:0;
  padding:11px 14px;
}
@media(max-width:800px){
  .client-portal-project-card{padding:15px 14px}
}


/* V1.32.60 Portal + Admin Chat */
.chat-nav-btn{display:flex!important;align-items:center;justify-content:space-between;gap:10px}
.chat-nav-badge{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#0aa7d8;color:#fff;font-size:11px;font-weight:800;line-height:20px;text-align:center}
.chat-admin-shell{display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);height:calc(100vh - 145px);min-height:600px;border:1px solid #d7e2ec;border-radius:16px;background:#fff;overflow:hidden;box-shadow:0 8px 22px rgba(9,49,88,.05)}
.chat-inbox{border-right:1px solid #d7e2ec;background:#f7fafc;min-width:0;display:flex;flex-direction:column}
.chat-inbox-head{padding:18px;border-bottom:1px solid #d7e2ec;display:flex;align-items:center;justify-content:space-between;gap:12px}
.chat-inbox-head h3{margin:0;color:#0b3158}.chat-inbox-head span{display:block;margin-top:3px;color:#708397;font-size:12px}.compact-btn{padding:8px 11px!important;font-size:12px!important}
.chat-conversation-list{overflow:auto;flex:1;padding:8px}
.chat-conversation{width:100%;text-align:left;border:1px solid transparent;background:transparent;border-radius:12px;padding:12px 13px;cursor:pointer;color:#173857;margin:2px 0}
.chat-conversation:hover{background:#eef6fb}.chat-conversation.active{background:#e5f5fc;border-color:#a7d9ee}
.chat-conversation-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.chat-conversation-top strong{font-size:14px;color:#0b3158}.chat-unread{background:#0aa7d8;color:#fff;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:800}
.chat-project{display:block;margin-top:3px;font-size:12px;color:#647b90;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-conversation p{margin:8px 0 3px;font-size:12px;color:#405d74;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-conversation small{font-size:10px;color:#8b9bac}
.chat-inbox-empty,.chat-thread-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#6f8396;padding:30px}.chat-inbox-empty strong,.chat-thread-empty strong{color:#244764;margin-bottom:5px}.chat-thread-empty.inline{min-height:260px;height:auto}
.chat-thread{min-width:0;display:flex;flex-direction:column;background:#fff}.chat-thread-head{padding:17px 20px;border-bottom:1px solid #d7e2ec;display:flex;align-items:center;justify-content:space-between;gap:15px}.chat-thread-head h3{margin:0;color:#0b3158}.chat-thread-head span{font-size:12px;color:#6f8396}
.chat-thread-messages{flex:1;overflow:auto;padding:22px;background:#f5f8fb}.chat-message-row{display:flex;margin:8px 0}.chat-message-row.mine{justify-content:flex-end}.chat-message-row.theirs{justify-content:flex-start}.chat-bubble{max-width:min(72%,680px);padding:11px 13px;border-radius:15px;background:#fff;border:1px solid #d8e4ed;color:#173857;font-size:13px;line-height:1.45;box-shadow:0 2px 5px rgba(10,49,88,.03)}.chat-message-row.mine .chat-bubble{background:#0b74aa;color:#fff;border-color:#0b74aa}.chat-bubble-meta{display:flex;gap:12px;justify-content:space-between;margin-bottom:5px;font-size:10px;opacity:.75}.chat-bubble-meta strong{font-size:11px}
.chat-admin-compose{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:14px 16px;border-top:1px solid #d7e2ec;background:#fff}.chat-admin-compose textarea,.portal-chat-compose textarea{resize:none;min-height:48px;max-height:120px}
.chat-loading-card{padding:25px}.chat-loading,.chat-error,.portal-chat-welcome{padding:20px;text-align:center;color:#718497;font-size:12px}.portal-chat-welcome{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px}.portal-chat-welcome strong{color:#173857;font-size:14px}
.portal-chat-widget{position:fixed;right:24px;bottom:24px;z-index:1000}.portal-chat-launch{display:flex;align-items:center;gap:9px;border:0;border-radius:999px;background:#0b4d78;color:#fff;padding:13px 18px;font-weight:800;font-size:14px;box-shadow:0 12px 30px rgba(6,43,72,.24);cursor:pointer}.portal-chat-launch:hover{background:#083d61}.portal-chat-icon{font-size:16px}
.portal-chat-panel{position:absolute;right:0;bottom:58px;width:min(390px,calc(100vw - 28px));height:min(560px,calc(100vh - 120px));background:#fff;border:1px solid #cfdeea;border-radius:18px;box-shadow:0 18px 50px rgba(5,37,63,.25);overflow:hidden;display:flex;flex-direction:column}.portal-chat-panel[hidden]{display:none!important}.portal-chat-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:#0b4d78;color:#fff}.portal-chat-head>div{display:flex;flex-direction:column}.portal-chat-head strong{font-size:15px}.portal-chat-head span{font-size:11px;opacity:.8}.portal-chat-close{border:0;background:rgba(255,255,255,.12);color:#fff;width:30px;height:30px;border-radius:50%;font-size:20px;cursor:pointer}.portal-chat-messages{flex:1;overflow:auto;padding:12px;background:#f5f8fb}.portal-chat-compose{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:11px;border-top:1px solid #d7e2ec;background:#fff}.portal-chat-compose button{align-self:stretch;padding:0 15px}
@media(max-width:820px){.chat-admin-shell{grid-template-columns:1fr;height:auto;min-height:0}.chat-inbox{border-right:0;border-bottom:1px solid #d7e2ec;max-height:340px}.chat-thread{min-height:560px}.chat-bubble{max-width:88%}}
@media(max-width:520px){.portal-chat-widget{right:14px;bottom:14px}.portal-chat-launch{padding:11px 14px}.portal-chat-panel{bottom:54px;height:min(520px,calc(100vh - 90px))}.chat-admin-compose{grid-template-columns:1fr}.chat-admin-compose button{width:100%}}


/* V1.32.61 Billing */
.billing-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.billing-card{margin-bottom:16px}.billing-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.mini-action.primary-mini{background:#0aa6d8;color:#fff;border-color:#0aa6d8}.mini-action:disabled{opacity:.45;cursor:not-allowed}.billing-email-modal{width:min(720px,calc(100vw - 32px))}.billing-email-summary{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px 18px;background:#eef8fc;border:1px solid #cfe8f2;border-radius:10px;margin-bottom:14px}.billing-email-summary strong{font-size:18px;color:#0a3156}.billing-email-summary span{color:#5f7488;font-weight:700}.billing-email-preview-note{padding:12px 14px;border-radius:9px;background:#f5f8fb;color:#60758a;font-size:13px;line-height:1.45}@media(max-width:1000px){.billing-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.billing-kpis{grid-template-columns:1fr}.billing-email-summary{align-items:flex-start;flex-direction:column}}

/* V1.32.62 header chat + account menu */
.sidebar{grid-template-rows:minmax(0,1fr)!important}
.top-actions{display:flex!important;align-items:center;gap:10px;position:relative}
.top-account{position:relative}
.account-menu-btn{height:44px;display:flex;align-items:center;gap:9px;padding:4px 10px 4px 5px;border:1px solid #6f93b4;border-radius:9px;background:transparent;color:#fff;cursor:pointer;min-width:0}
.account-menu-btn:hover,.account-menu-btn[aria-expanded="true"]{background:rgba(255,255,255,.08)}
.account-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#0b3a63;font-weight:900;font-size:12px;flex:0 0 auto}
.top-user-chip{display:flex;flex-direction:column;align-items:flex-start;min-width:0;line-height:1.05}
.top-user-chip strong{display:block;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;color:#fff}
.top-user-chip span{display:block;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px;color:#b9d0e3;margin-top:3px}
.account-chevron{font-size:12px;color:#c6d9e8;margin-left:2px}
.account-menu{position:absolute;right:0;top:calc(100% + 8px);width:230px;background:#fff;border:1px solid #d4e0ea;border-radius:12px;box-shadow:0 14px 35px rgba(7,31,57,.2);padding:8px;z-index:100}
.account-menu[hidden]{display:none!important}
.account-menu-identity{padding:10px 11px 12px;border-bottom:1px solid #e3ebf2;color:#62798e;font-size:11px;line-height:1.35}
.account-menu-identity strong{display:block;color:#0b3158;font-size:14px;margin-bottom:3px}
.account-menu-action{width:100%;border:0;background:transparent;text-align:left;color:#173857;padding:10px 11px;border-radius:8px;font-weight:750;cursor:pointer}
.account-menu-action:hover{background:#eef6fb}
@media(max-width:780px){.top-actions{width:auto!important;display:flex!important;flex-direction:row!important;flex-wrap:nowrap}.top-user-chip{display:none}.account-menu-btn{padding-right:6px}.account-chevron{display:none}.topbar{align-items:center!important}.topbar>div:first-child{flex:1 1 auto}.top-actions{flex:0 0 auto!important}}

/* V1.32.64 billing contacts + invoice/estimate spacing */
#billing{display:grid;gap:18px}
#billing .billing-kpis{margin:0;gap:14px}
#billing .billing-card{margin:0;padding:20px}
#billing .section-head{gap:16px;align-items:center;margin-bottom:14px}
.billing-contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.billing-contact-card{border:1px solid var(--line,#d8e3ee);border-radius:12px;padding:14px;display:flex;justify-content:space-between;gap:12px;align-items:flex-start;background:#fff}
.billing-contact-main{display:flex;flex-direction:column;gap:3px;min-width:0}.billing-contact-main strong{font-size:15px}.billing-contact-main span,.billing-contact-main a{font-size:13px;color:var(--muted,#66778a);overflow-wrap:anywhere}.billing-contact-main a{text-decoration:none;color:#0b5f91}
.billing-contact-actions{display:flex;gap:6px;flex-shrink:0}.billing-contact-empty{padding:18px;border:1px dashed var(--line,#d8e3ee);border-radius:12px;color:var(--muted,#66778a);text-align:center}
.billing-email-contact-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.billing-add-contact-inline{height:44px;white-space:nowrap}
.billing-contact-modal{max-width:760px}
@media(max-width:760px){.billing-email-contact-row{grid-template-columns:1fr}.billing-add-contact-inline{width:100%}.billing-contact-card{flex-direction:column}.billing-contact-actions{width:100%}}

/* V1.32.65 billing shipping */
#billing .billing-shipping-card{margin:0;padding:20px}.billing-shipping-card .billing-contact-main span{line-height:1.35}

/* V1.32.66 standalone billing customer/document controls */
.billing-customer-picker{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;margin:4px 0 14px;padding:14px;border:1px solid #dbe7f0;border-radius:12px;background:#f7fbfe}.billing-customer-picker label{margin:0}.billing-customer-picker .secondary{white-space:nowrap;height:42px}.billing-doc-modal{width:min(820px,calc(100vw - 32px))}.billing-doc-modal .form-grid{gap:12px}.billing-card .section-head{gap:16px;align-items:center}.billing-actions{gap:6px;flex-wrap:wrap}@media(max-width:700px){.billing-customer-picker{grid-template-columns:1fr}.billing-customer-picker .secondary{width:100%}}

/* V1.32.67 FreshBooks-inspired billing workspace */
#billing{padding:0;background:#f7f9fc;min-height:calc(100vh - 86px)}
.billing-workspace{padding:24px 28px 40px;max-width:1500px;margin:0 auto}
.billing-workspace-top{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;border-bottom:1px solid #dbe4ed;margin-bottom:24px}
.billing-workspace-title{padding-bottom:14px}.billing-workspace-title>span{display:block;color:#20a6d2;font-size:11px;font-weight:800;letter-spacing:.14em;margin-bottom:5px}.billing-workspace-title h2{margin:0;color:#0b2f56;font-size:28px;line-height:1.15}
.billing-workspace-nav{display:flex;gap:2px;align-items:flex-end}.billing-workspace-nav button{appearance:none;border:0;background:transparent;padding:14px 16px 13px;color:#60738a;font-weight:750;font-size:14px;border-bottom:3px solid transparent;cursor:pointer}.billing-workspace-nav button:hover{color:#0b365f}.billing-workspace-nav button.active{color:#0b5e91;border-bottom-color:#10a8d5}
.billing-page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin:2px 0 22px}.billing-page-heading h1{margin:0 0 5px;color:#092a50;font-size:34px;letter-spacing:-.02em}.billing-page-heading p{margin:0;color:#6b7d91;font-size:14px}
.billing-create-menu{position:relative;z-index:8}.billing-create-menu summary{list-style:none;background:#0aa6d8;color:#fff;font-weight:800;font-size:15px;border-radius:8px;padding:12px 20px;cursor:pointer;box-shadow:0 2px 4px rgba(4,57,89,.12)}.billing-create-menu summary::-webkit-details-marker{display:none}.billing-create-menu summary:after{content:' ▾';margin-left:8px}.billing-create-menu[open] summary{background:#078bb8}.billing-create-menu>div{position:absolute;right:0;top:52px;width:220px;background:#fff;border:1px solid #ced9e4;border-radius:10px;box-shadow:0 14px 34px rgba(15,48,76,.18);padding:6px}.billing-create-menu>div button{width:100%;border:0;background:#fff;text-align:left;padding:11px 12px;border-radius:7px;font-weight:700;color:#153a5e;cursor:pointer}.billing-create-menu>div button:hover{background:#eef7fb;color:#087aa3}
.billing-panel{background:#fff;border:1px solid #dce5ee;border-radius:10px;padding:22px 24px;margin-bottom:20px;box-shadow:0 1px 2px rgba(17,48,76,.04)}.billing-panel h2,.billing-panel h3{color:#0a2d53}.billing-panel h3{margin:0 0 16px;font-size:20px}.billing-panel-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px}.billing-panel-head h2,.billing-panel-head h3{margin:0 0 4px}.billing-panel-head p{margin:0;color:#6a7c90;font-size:14px}
.billing-recent-panel{padding-bottom:20px}.billing-recent-grid{display:grid;grid-template-columns:repeat(6,minmax(145px,1fr));gap:12px}.billing-recent-card{display:flex;flex-direction:column;text-align:left;min-height:190px;border:1px solid #d7e0e9;border-radius:7px;background:#fff;padding:14px 14px 0;overflow:hidden;cursor:pointer;box-shadow:0 2px 4px rgba(10,45,80,.04);color:#203a56}.billing-recent-card:hover{transform:translateY(-1px);box-shadow:0 7px 16px rgba(10,45,80,.10);border-color:#b7ccdd}.billing-recent-card .doc-number{color:#708299;font-size:13px;margin-bottom:8px}.billing-recent-card strong{font-size:14px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.billing-recent-card>span:nth-of-type(2){font-size:12px;color:#7a8a9d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.billing-recent-card .doc-total{margin-top:auto;text-align:right;font-size:18px;color:#173b60;padding:16px 0 9px;border-bottom:1px solid #e3e9ef}.billing-recent-card .doc-status{margin:0 -14px;padding:8px 12px;text-align:center;font-weight:800;font-size:12px;background:#f5f7f9;color:#516579}.billing-recent-card .doc-status.sent{background:#fff1bf}.billing-recent-card .doc-status.accepted,.billing-recent-card .doc-status.paid{background:#bfe6c6;color:#164c28}.billing-recent-card .doc-status.overdue,.billing-recent-card .doc-status.rejected{background:#ffe2e2;color:#9d2626}
.billing-recent-empty{padding:24px;color:#75869a;text-align:center;border:1px dashed #ccd8e3;border-radius:8px}
.billing-list-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:12px}.billing-list-head h3{margin:0}.billing-search{width:min(430px,45%)}.billing-search input{height:42px;border:1px solid #c8d6e3;border-radius:21px;padding:0 18px;font-size:14px;background:#fff;width:100%}.billing-search input:focus{outline:none;border-color:#19a8d6;box-shadow:0 0 0 3px rgba(25,168,214,.12)}
#billing .table-wrap{border:0;border-radius:0;overflow:auto}#billing table{width:100%;border-collapse:collapse}#billing th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#73849a;padding:10px 10px;border-bottom:1px solid #cfdbe6;text-align:left;background:#fff}#billing td{padding:13px 10px;border-bottom:1px solid #e2e9ef;vertical-align:top;color:#173551;font-size:13px}#billing tbody tr:hover{background:#f8fbfd}
#billing .billing-actions{gap:5px}#billing .mini-action{font-size:11px;padding:6px 8px;background:#fff;border:1px solid #c9d5e1;border-radius:5px;color:#19476c}#billing .mini-action:hover{background:#edf7fb;border-color:#98cadd}#billing .mini-action.primary-mini{background:#0aa6d8;border-color:#0aa6d8;color:#fff}
.billing-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.billing-overview-stat{background:#fff;border:1px solid #dce5ee;border-radius:10px;padding:18px 20px;display:flex;flex-direction:column;gap:5px}.billing-overview-stat span{color:#687c91;font-size:13px}.billing-overview-stat strong{font-size:26px;color:#0a3158}.billing-overview-stat small{color:#8a99a8;font-size:12px}

/* document-style estimate and invoice editor */
.billing-editor-dialog{width:min(1280px,calc(100vw - 36px));max-width:none;padding:0;border:0;border-radius:12px;overflow:hidden;background:#f4f7fa;box-shadow:0 24px 60px rgba(7,37,66,.28)}.billing-editor-dialog::backdrop{background:rgba(16,39,61,.44)}.billing-editor-form{display:block;max-height:calc(100vh - 30px);overflow:auto;background:#f4f7fa}.billing-editor-topbar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 24px;background:#fff;border-bottom:1px solid #dbe4ed}.billing-editor-topbar h3{margin:0;font-size:26px;color:#0a2d54}.billing-editor-topbar p{margin:2px 0 0;color:#6d8094;font-size:13px}.billing-editor-top-actions{display:flex;gap:10px}.billing-editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;padding:24px;align-items:start}.billing-document-sheet{background:#fff;border:1px solid #d7e0e8;min-height:760px;padding:42px 48px;box-shadow:0 2px 5px rgba(6,44,77,.05)}.billing-doc-brand{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.billing-doc-brand img{width:270px;max-width:40%}.billing-doc-brand>div{display:flex;flex-direction:column;align-items:flex-end;font-size:12px;color:#263c50;line-height:1.35}.billing-doc-brand strong{font-size:13px;color:#102b47}.billing-doc-meta-grid{display:grid;grid-template-columns:1.4fr .85fr .85fr;gap:22px;margin-top:78px}.billing-doc-meta-grid>div>span,.billing-doc-meta-grid label>span,.billing-doc-project>span{display:block;color:#637b92;font-size:12px;margin-bottom:6px}.billing-doc-meta-grid input,.billing-doc-meta-grid select,.billing-doc-project input,.billing-doc-inline-customer select{width:100%;border:0;border-bottom:1px solid #cad6df;border-radius:0;background:#fff;padding:6px 2px;color:#122f4c;min-height:34px}.billing-doc-meta-grid input:focus,.billing-doc-meta-grid select:focus,.billing-doc-project input:focus,.billing-doc-inline-customer select:focus{outline:none;border-bottom-color:#0ca5d6}.billing-doc-inline-customer{display:flex;flex-direction:column;gap:4px}.text-action{border:0;background:transparent;color:#0879ad;text-align:left;padding:0;font-size:12px;font-weight:700;cursor:pointer}.billing-doc-project{display:block;margin-top:18px}.billing-doc-meta-secondary{margin-top:22px}.billing-line-preview{margin-top:80px}.billing-line-head{display:grid;grid-template-columns:1fr 110px 70px 110px;border-top:3px solid #526c80;border-bottom:1px solid #cfd9e2;padding:11px 0;color:#60798f;font-size:12px}.billing-line-head span:not(:first-child){text-align:right}.billing-line-empty{min-height:90px;display:flex;align-items:center;justify-content:center;color:#8291a1;font-size:13px;border-bottom:1px solid #d9e2e9}.billing-doc-totals{margin:50px 0 0 auto;width:min(360px,55%)}.billing-doc-totals>div{display:grid;grid-template-columns:1fr 120px;align-items:center;padding:8px 0;font-size:13px}.billing-doc-totals>div>*:last-child{text-align:right}.billing-doc-totals input{border:1px solid #d1dbe5;border-radius:5px;padding:7px 8px;width:110px;justify-self:end;text-align:right}.billing-doc-totals .total{border-top:2px solid #cad5df;color:#0b426a;padding-top:12px}.billing-doc-totals .total strong{font-size:18px}.billing-editor-settings{position:sticky;top:92px;background:#fff;border:1px solid #d7e0e8;border-radius:8px;padding:20px}.billing-editor-settings h4{margin:0;color:#0d3155;font-size:18px}.billing-editor-settings>p{margin:2px 0 16px;color:#718399;font-size:12px;padding-bottom:12px;border-bottom:1px solid #d9e2ea}.billing-editor-settings label{display:block;font-size:12px;color:#526b81;font-weight:700;margin:0 0 13px}.billing-editor-settings input,.billing-editor-settings select,.billing-editor-settings textarea{width:100%;margin-top:5px;border:1px solid #cbd7e2;border-radius:6px;padding:9px 10px;font-size:13px;background:#fff;color:#16324d}.billing-editor-settings textarea{resize:vertical;min-height:110px}

@media(max-width:1150px){.billing-recent-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}.billing-editor-layout{grid-template-columns:1fr}.billing-editor-settings{position:static}.billing-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.billing-workspace{padding:16px}.billing-workspace-top{align-items:flex-start;flex-direction:column}.billing-workspace-nav{width:100%;overflow:auto}.billing-workspace-nav button{white-space:nowrap}.billing-page-heading{flex-direction:column}.billing-recent-grid{grid-template-columns:repeat(2,minmax(135px,1fr))}.billing-list-head{align-items:flex-start;flex-direction:column}.billing-search{width:100%}.billing-overview-grid{grid-template-columns:1fr}.billing-editor-layout{padding:12px}.billing-document-sheet{padding:26px 22px}.billing-doc-brand img{width:180px}.billing-doc-meta-grid{grid-template-columns:1fr;margin-top:40px}.billing-line-head{grid-template-columns:1fr 80px 50px 90px}.billing-doc-totals{width:100%}}

/* V1.32.68 FreshBooks-style document editor */
.billing-doc-link{border:0;background:none;color:#0b3155;font:inherit;font-weight:800;padding:0;cursor:pointer}.billing-doc-link:hover{text-decoration:underline}
.estimate-workspace{max-width:1180px;margin:0 auto 36px}.estimate-detail-top{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin:12px 0 14px}.estimate-detail-top h1{font-size:34px;margin:4px 0 0;color:#092f55}.text-back{border:0;background:none;color:#0b77c5;font-size:15px;padding:0;cursor:pointer}.estimate-detail-actions{display:flex;align-items:center;gap:10px}.estimate-edit-btn{background:#098c16;color:#fff;border:0;border-radius:6px;padding:12px 21px;font-weight:800;font-size:16px;cursor:pointer}.estimate-actions-menu{position:relative}.estimate-actions-menu summary{list-style:none;border:2px solid #b9c7d5;border-radius:6px;background:#fff;padding:11px 18px;font-weight:800;font-size:16px;color:#0a3156;cursor:pointer;min-width:170px;display:flex;justify-content:space-between;gap:20px}.estimate-actions-menu summary::-webkit-details-marker{display:none}.estimate-actions-pop{position:absolute;right:0;top:calc(100% + 8px);z-index:30;background:#fff;border:2px solid #8fa0b2;border-radius:5px;box-shadow:0 10px 30px rgba(10,49,86,.18);min-width:235px;overflow:hidden}.estimate-actions-pop:before{content:"";position:absolute;right:34px;top:-10px;width:16px;height:16px;background:#fff;border-left:2px solid #8fa0b2;border-top:2px solid #8fa0b2;transform:rotate(45deg)}.estimate-actions-pop button{display:block;width:100%;border:0;background:#fff;text-align:left;padding:11px 15px;color:#0a3156;font-size:15px;cursor:pointer}.estimate-actions-pop button:hover{background:#eef6fc}.estimate-actions-pop button.danger{color:#b42318}.estimate-actions-pop hr{border:0;border-top:1px solid #d4dde5;margin:0}.estimate-status-strip{background:#fff1b8;border-top:1px solid #f1d97a;border-bottom:1px solid #f1d97a;padding:10px 14px;margin-bottom:16px;display:flex;gap:12px;align-items:center}
.estimate-paper{background:#fff;border:1px solid #ccd9e4;box-shadow:0 4px 18px rgba(10,49,86,.06);padding:52px 62px 60px;min-height:820px}.estimate-paper-head{display:flex;justify-content:space-between;align-items:flex-start;min-height:190px}.estimate-paper-head img{width:265px;height:auto}.estimate-company{text-align:right;display:flex;flex-direction:column;line-height:1.35;color:#111;font-size:14px}.estimate-meta{display:grid;grid-template-columns:1.25fr .8fr .9fr;gap:54px;margin:12px 0 58px}.estimate-label{display:block;color:#527087;font-size:14px;margin-bottom:5px}.estimate-label.second{margin-top:23px}.estimate-value{font-size:15px;line-height:1.42;color:#111}.estimate-value.preserve{white-space:pre-wrap}.estimate-meta select,.estimate-meta input,.estimate-bottom-fields textarea{width:100%;border:1px solid transparent;border-radius:3px;padding:6px 7px;background:#f8fbfd;font:inherit;color:#111}.estimate-meta select:focus,.estimate-meta input:focus,.estimate-bottom-fields textarea:focus{outline:2px solid #1c7ac9;background:#fff}.estimate-text-link{border:0;background:none;color:#0879ce;padding:6px 0;cursor:pointer}.estimate-line-head,.estimate-line{display:grid;grid-template-columns:minmax(0,1fr) 120px 80px 125px 40px;gap:18px;align-items:start}.estimate-line-head{border-top:4px solid #527087;color:#527087;padding:11px 0 9px}.estimate-line-head span:nth-child(n+2):not(:last-child){text-align:right}.estimate-line{padding:11px 0;border-bottom:1px solid #c9d4dd;color:#111}.estimate-line>div:nth-child(n+2):not(:last-child){text-align:right}.estimate-line small{display:block;color:#526678;margin-top:4px;line-height:1.35}.estimate-line.editing input,.estimate-line.editing textarea{width:100%;border:1px solid transparent;background:transparent;padding:5px 6px;font:inherit}.estimate-line.editing input:focus,.estimate-line.editing textarea:focus{border-color:#4e91c7;background:#f8fbfd;outline:0}.estimate-line.editing textarea{resize:vertical;min-height:34px;color:#526678;font-size:13px}.estimate-line .line-total{padding-top:6px}.line-delete{border:0;background:none;color:#7d8993;font-size:18px;cursor:pointer}.estimate-add-line{width:100%;border:2px dashed #c7d0d9;background:#fff;border-radius:4px;padding:11px;font-size:18px;font-weight:700;color:#0a3156;margin:14px 0 23px;cursor:pointer}.estimate-add-line:hover{background:#f6fafc}.estimate-totals{width:380px;margin-left:auto}.estimate-totals>div{display:grid;grid-template-columns:1fr 145px;gap:22px;padding:6px 0;align-items:center}.estimate-totals>div>*:last-child{text-align:right}.estimate-totals input{width:100%;text-align:right;border:1px solid #ccd8e2;padding:4px}.estimate-totals .grand{border-top:3px double #cad3db;margin-top:4px;padding-top:12px;color:#527087;font-size:16px}.estimate-totals .grand strong{color:#111}.estimate-bottom-fields{margin-top:54px;display:grid;gap:32px}.estimate-bottom-fields textarea{min-height:68px}.estimate-empty-lines{padding:28px 0;text-align:center;color:#71869a;border-bottom:1px solid #c9d4dd}
@media(max-width:900px){.estimate-paper{padding:30px 26px}.estimate-paper-head img{width:210px}.estimate-meta{grid-template-columns:1fr;gap:20px;margin-bottom:35px}.estimate-line-head,.estimate-line{grid-template-columns:minmax(0,1fr) 86px 60px 105px 32px;gap:8px}.estimate-totals{width:100%}.estimate-detail-top{align-items:flex-start;flex-direction:column}.estimate-detail-actions{width:100%;justify-content:flex-end}}


/* V1.32.69 - Weekly payroll uploads */
.factory-portal-mode .factory-page-header{grid-template-columns:auto minmax(280px,1fr) auto auto!important}
.factory-header-nav{display:flex;align-items:center;justify-content:center;gap:8px}
.factory-header-nav-btn{border:1px solid rgba(255,255,255,.48);background:rgba(255,255,255,.08);color:#fff;border-radius:9px;padding:10px 15px;font-weight:800;cursor:pointer;white-space:nowrap}
.factory-header-nav-btn:hover{background:rgba(255,255,255,.18)}
.factory-portal-mode #payrollUpload{padding-top:24px;min-height:500px}
.factory-payroll-page{max-width:1180px;margin:0 auto;display:grid;gap:18px}
.factory-payroll-hero{background:linear-gradient(135deg,#0a4773,#0d6a9f);border-radius:14px;padding:24px 26px;color:#fff;box-shadow:0 8px 24px rgba(10,71,115,.13)}
.factory-payroll-hero .eyebrow{color:#77d4f3}.factory-payroll-hero h2{margin:3px 0 5px;font-size:30px}.factory-payroll-hero p{margin:0;max-width:780px;color:#e6f3fb;line-height:1.45}
.payroll-upload-card{padding:22px 24px}.payroll-upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:14px}.payroll-selected-files{display:flex;gap:8px;flex-wrap:wrap;margin:9px 0 14px}.payroll-selected-chip{display:inline-flex;padding:7px 10px;background:#eef6fb;border:1px solid #cfe0ec;border-radius:8px;color:#244b68;font-size:13px;font-weight:700}.payroll-submit-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px}.payroll-submit-actions .primary{min-width:190px}
.payroll-status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800;background:#eaf4fb;color:#0a5f94}.payroll-status.reviewed{background:#fff2d6;color:#8a5a00}.payroll-status.paid{background:#ddf5e8;color:#087047}
.payroll-factory-history{display:grid;gap:0}.payroll-history-row{display:flex;align-items:center;justify-content:space-between;padding:13px 2px;border-bottom:1px solid #e6edf3}.payroll-history-row:last-child{border-bottom:0}.payroll-history-row>div:first-child{display:grid;gap:3px}.payroll-history-row>div:first-child span{font-size:13px;color:#6d8193}
.payroll-admin{display:grid;gap:18px}.payroll-page-head{align-items:end}.payroll-page-head h2{font-size:30px;margin:2px 0 3px}.payroll-week-filter{min-width:280px}.payroll-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.payroll-week-card{padding:0;overflow:hidden}.payroll-week-head{display:flex;justify-content:space-between;align-items:center;padding:20px 22px;background:#f5f9fc;border-bottom:1px solid #dae6ef}.payroll-week-head h3{margin:2px 0;font-size:22px}.payroll-submission-list{display:grid}.payroll-submission{padding:20px 22px;border-bottom:1px solid #e4ebf1}.payroll-submission:last-child{border-bottom:0}.payroll-submission-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.payroll-submission-head h4{margin:0 0 3px;font-size:18px}.payroll-submission-head p{margin:0}.payroll-notes{margin:12px 0;color:#37556d}.payroll-files-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:12px;margin-top:14px}.payroll-file-card{border:1px solid #d6e2ec;border-radius:10px;background:#fff;padding:0;overflow:hidden;cursor:pointer;text-align:left;display:flex;flex-direction:column;min-height:128px}.payroll-file-card:hover{border-color:#67b7de;box-shadow:0 4px 14px rgba(17,74,110,.09)}.payroll-file-card img{width:100%;height:118px;object-fit:cover;background:#f3f6f9}.payroll-file-card>span:last-child{padding:8px 10px;font-size:12px;font-weight:700;color:#294a64;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;width:100%}.payroll-thumb-loading,.payroll-file-icon{height:118px;display:grid;place-items:center;background:#f3f7fa;color:#7890a4;font-weight:800}.payroll-file-icon{font-size:24px;color:#d14e4e}.payroll-admin-actions{display:flex;gap:9px;align-items:center;justify-content:flex-end;margin-top:14px}
@media(max-width:950px){.factory-portal-mode .factory-page-header{grid-template-columns:1fr!important}.factory-header-nav,.factory-header-account,.factory-header-logo{justify-self:center}.payroll-kpis{grid-template-columns:repeat(2,1fr)}.payroll-upload-grid{grid-template-columns:1fr}.payroll-page-head{align-items:flex-start;flex-direction:column}.payroll-week-filter{width:100%;min-width:0}}
@media(max-width:620px){.payroll-kpis{grid-template-columns:1fr 1fr}.payroll-submit-actions{flex-direction:column}.payroll-submit-actions>*{width:100%}.payroll-files-grid{grid-template-columns:1fr 1fr}.payroll-submission-head{flex-direction:column}}
/* V1.32.70 payroll weekly batch improvements */
.payroll-people-list{display:grid;gap:14px;margin-top:4px}
.payroll-person-row{border:1px solid #d9e5ee;background:#f9fbfd;border-radius:12px;padding:16px}
.payroll-person-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;color:#143c5d}
.payroll-add-person-row{display:flex;align-items:center;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid #e2eaf0}
.payroll-confirm-week{margin-left:auto}
.payroll-confirm-help{display:block;margin-top:10px}
.text-btn.danger{color:#b93636}
@media(max-width:700px){.payroll-add-person-row{align-items:stretch;flex-direction:column}.payroll-confirm-week{margin-left:0}}

/* V1.32.71 - Payroll page top spacing fix */
#payroll.active-view{margin-top:0!important;padding-top:0!important;}
#payroll .payroll-admin{margin-top:0!important;padding-top:0!important;}

/* V1.32.72 Payroll employees + reporting */
.payroll-new-employee-fields[hidden]{display:none!important}.payroll-report-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px}.payroll-report-grid>div{border:1px solid var(--line,#d9e3ee);border-radius:12px;padding:14px;background:#f8fbfd}.payroll-report-grid span{display:block;color:#6c7d90;font-size:12px;margin-bottom:5px}.payroll-report-grid strong{font-size:24px;color:#0b3156}.row-actions{white-space:nowrap}.row-actions>*{margin-left:6px}@media(max-width:900px){.payroll-report-grid{grid-template-columns:repeat(2,1fr)}}


/* V1.32.73 payroll pay-rate + compact admin spacing */
body.payroll-admin-view .topbar{margin-bottom:0!important;min-height:70px!important;padding-top:10px!important;padding-bottom:10px!important;}
body.payroll-admin-view .main{padding-top:0!important;}
body.payroll-admin-view #payroll.active-view,
body.payroll-admin-view #payrollEmployees.active-view,
body.payroll-admin-view #payrollReports.active-view{margin-top:0!important;padding-top:0!important;}
body.payroll-admin-view .payroll-admin{margin-top:0!important;padding-top:10px!important;}
.payroll-person-primary{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(150px,.6fr);gap:12px;align-items:end}
.payroll-person-head-actions,.payroll-history-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.payroll-person-save{display:flex;justify-content:flex-end;margin-top:12px}
.payroll-person-save-status{font-size:12px;font-weight:800;color:#6d8093}.payroll-person-save-status.saved{color:#18835f}
.payroll-history-manage{align-items:center}.payroll-history-actions .text-btn{margin:0;display:inline-flex}
@media(max-width:720px){.payroll-person-primary{grid-template-columns:1fr}.payroll-history-manage{align-items:flex-start;gap:10px;flex-direction:column}.payroll-history-actions{width:100%}}
body.payroll-admin-view .topbar{position:relative!important;background:transparent!important;backdrop-filter:none!important;border-bottom:0!important;min-height:0!important;padding:6px 0!important;margin:0!important;justify-content:flex-end!important;}
body.payroll-admin-view .topbar>div:first-child{display:none!important;}
body.payroll-admin-view .top-actions{margin:0!important;}


/* V1.32.74 payroll flow + layout */
body.payroll-admin-view .main{padding-top:0!important;display:block!important;position:relative!important;}
body.payroll-admin-view .topbar{position:sticky!important;top:0!important;background:linear-gradient(90deg,#062d52,#073760)!important;border-bottom:1px solid #0c4a7e!important;min-height:84px!important;padding:14px 28px!important;margin:0 -28px 18px!important;justify-content:space-between!important;}
body.payroll-admin-view .topbar>div:first-child{display:block!important;}
body.payroll-admin-view .topbar h2,body.payroll-admin-view .topbar p{display:block!important;}
body.payroll-admin-view #payroll.active-view,body.payroll-admin-view #payrollEmployees.active-view,body.payroll-admin-view #payrollReports.active-view{position:relative!important;top:auto!important;transform:none!important;margin:0!important;padding:0!important;min-height:0!important;}
body.payroll-admin-view .payroll-admin{margin:0!important;padding:0!important;}
.payroll-kpis.five{grid-template-columns:repeat(5,minmax(0,1fr))}
.payroll-admin-v2{gap:16px}.week-pay-total{text-align:right}.week-pay-total span{display:block;color:#6d8193;font-size:12px}.week-pay-total strong{font-size:24px;color:#0b3156}
.payroll-admin-table{display:grid}.payroll-admin-table-head,.payroll-admin-table-row{display:grid;grid-template-columns:minmax(170px,1.5fr) 90px 120px 120px 70px 120px minmax(190px,1fr);gap:12px;align-items:center;padding:12px 18px}.payroll-admin-table-head{background:#f4f8fb;color:#60778c;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #dce6ee}.payroll-admin-table-row{border-bottom:1px solid #e4ebf1}.payroll-admin-table-row:last-child{border-bottom:0}.payroll-admin-table-row .payroll-admin-actions{margin:0;justify-content:flex-start}.payroll-admin-files{grid-column:1/-1;margin:3px 0 8px;display:none}
.factory-payroll-page.payroll-flow-v2{max-width:none;gap:16px}.factory-payroll-titlebar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;background:#fff;padding:20px 22px;border:1px solid #d9e5ee;border-radius:14px}.factory-payroll-titlebar h2{font-size:30px;margin:3px 0 4px;color:#0b3156}.factory-payroll-titlebar p{margin:0;color:#657b90;max-width:820px}.factory-payroll-weekbar{display:grid;grid-template-columns:minmax(280px,1.5fr) 150px 180px auto;gap:18px;align-items:center;padding:16px 20px}.factory-payroll-weekbar>div{display:grid;gap:3px}.factory-payroll-weekbar>div:first-child{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.factory-payroll-weekbar>div:first-child .mini-label{width:100%}.mini-label{display:block;color:#72869a;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.factory-new-payroll-card{padding:20px}.factory-new-employee-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 14px;margin-top:14px}.factory-new-employee-grid .wide{grid-column:span 2}.factory-payroll-roster{padding:0;overflow:hidden}.factory-payroll-roster>.section-head{padding:18px 20px;margin:0;border-bottom:1px solid #dce6ee}.factory-payroll-roster-head,.factory-payroll-employee{display:grid;grid-template-columns:minmax(240px,1.6fr) 130px minmax(220px,1.2fr) minmax(180px,1fr) auto;gap:14px;align-items:end;padding:12px 20px}.factory-payroll-roster-head{background:#f4f8fb;color:#60778c;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.factory-payroll-employee{border-bottom:1px solid #e4ebf1}.factory-payroll-employee:last-child{border-bottom:0}.factory-payroll-employee.saved{grid-template-columns:minmax(240px,1.6fr) 90px 115px 125px 105px auto;align-items:center;background:#fbfdfc}.factory-payroll-name{display:grid;gap:3px}.factory-payroll-name span{color:#72869a;font-size:12px}.factory-payroll-employee label{margin:0;font-size:11px}.factory-payroll-employee input{margin-top:5px;min-height:40px}.factory-timecard-file input{padding:8px}.factory-payroll-row-actions{display:flex;align-items:center;gap:8px;justify-content:flex-end;flex-wrap:wrap}.payroll-confirm-help{padding:0 4px 12px}
@media(max-width:1150px){.payroll-kpis.five{grid-template-columns:repeat(3,1fr)}.factory-payroll-weekbar{grid-template-columns:1fr 1fr}.factory-new-employee-grid{grid-template-columns:1fr 1fr}.factory-payroll-roster{overflow-x:auto}.factory-payroll-roster-head,.factory-payroll-employee{min-width:1000px}.payroll-admin-table{overflow-x:auto}.payroll-admin-table-head,.payroll-admin-table-row{min-width:1000px}}
@media(max-width:700px){.payroll-kpis.five{grid-template-columns:1fr 1fr}.factory-payroll-titlebar{align-items:stretch;flex-direction:column}.factory-payroll-weekbar{grid-template-columns:1fr}.factory-new-employee-grid{grid-template-columns:1fr}.factory-new-employee-grid .wide{grid-column:auto}}

/* V1.32.75 - Factory Payroll spacing cleanup */
.factory-payroll-page.payroll-flow-v2{padding:18px 22px 28px;gap:14px}
.factory-payroll-titlebar{padding:16px 20px;align-items:center}
.factory-payroll-titlebar h2{font-size:28px;line-height:1.05}
.factory-payroll-weekbar{padding:14px 18px;gap:14px}
.factory-new-payroll-card{padding:16px 18px 18px}
.factory-new-payroll-card .section-head{margin-bottom:4px;align-items:flex-start}
.factory-new-payroll-card .section-head h3{margin:0 0 4px}
.factory-new-payroll-card .section-head p{margin:0}
.factory-new-employee-grid{gap:10px 12px;margin-top:10px}
.factory-new-employee-grid label{margin:0}
.factory-new-employee-grid input,.factory-new-employee-grid select{min-height:42px;margin-top:5px}
.factory-new-employee-grid input[type=file]{padding:8px 10px}
.factory-new-payroll-card .payroll-person-save{margin-top:12px;padding-top:0}
.factory-payroll-roster>.section-head{padding:14px 18px}
.factory-payroll-roster-head,.factory-payroll-employee{padding:10px 18px}
@media(max-width:700px){.factory-payroll-page.payroll-flow-v2{padding:12px}.factory-new-payroll-card{padding:14px}.factory-payroll-titlebar{padding:14px 16px}}

/* V1.32.76: payroll admin must begin directly beneath the header */
body.payroll-admin-view .main{
  display:grid!important;
  grid-template-rows:auto 1fr!important;
  align-content:start!important;
  height:100vh!important;
  overflow-y:auto!important;
}
body.payroll-admin-view .topbar{
  grid-row:1!important;
  position:sticky!important;
  top:0!important;
  margin:0 -28px 0!important;
  min-height:84px!important;
}
body.payroll-admin-view #payroll.active-view,
body.payroll-admin-view #payrollEmployees.active-view,
body.payroll-admin-view #payrollReports.active-view{
  grid-row:2!important;
  align-self:start!important;
  margin:0!important;
  padding:18px 0 0!important;
  min-height:0!important;
  height:auto!important;
}
body.payroll-admin-view #payroll .payroll-admin,
body.payroll-admin-view #payrollEmployees .payroll-admin,
body.payroll-admin-view #payrollReports .payroll-admin{
  margin:0!important;
  padding:0!important;
  min-height:0!important;
}


/* V1.32.77 - eliminate reserved whitespace on every admin Payroll page */
body.payroll-admin-view .main{
  display:block!important;
  height:100vh!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  padding:0 28px 46px!important;
}
body.payroll-admin-view .topbar{
  position:sticky!important;
  top:0!important;
  z-index:20!important;
  margin:0 -28px!important;
  padding:14px 28px!important;
  min-height:84px!important;
  background:linear-gradient(90deg,#062d52,#073760)!important;
  border-bottom:1px solid #0c4a7e!important;
}
body.payroll-admin-view #payroll.active-view,
body.payroll-admin-view #payrollEmployees.active-view,
body.payroll-admin-view #payrollReports.active-view{
  display:block!important;
  position:static!important;
  inset:auto!important;
  transform:none!important;
  margin:0!important;
  padding:18px 0 0!important;
  width:100%!important;
  min-height:0!important;
  height:auto!important;
}
body.payroll-admin-view #payroll .payroll-admin,
body.payroll-admin-view #payrollEmployees .payroll-admin,
body.payroll-admin-view #payrollReports .payroll-admin{
  display:grid!important;
  margin:0!important;
  padding:0!important;
  min-height:0!important;
  height:auto!important;
}
@media(max-width:780px){
  body.payroll-admin-view .main{padding:0 14px 30px!important;height:auto!important;overflow:visible!important}
  body.payroll-admin-view .topbar{margin:0 -14px!important;padding:12px 14px!important}
}
/* V1.32.78 Factory Portal user management */
.factory-users-page{padding:20px 26px 32px;max-width:1600px;margin:0 auto;width:100%;box-sizing:border-box}
.factory-users-page .section-head{margin-bottom:14px}.factory-users-page .table-wrap{padding:0;overflow:auto}.factory-users-page table{min-width:1080px}.factory-users-page .inline-control{min-width:135px;width:100%}.factory-users-page td:first-child .inline-control{min-width:180px}.factory-users-page td:nth-child(2) .inline-control{min-width:220px}.factory-users-page .row-actions{display:flex;gap:8px;align-items:center}.factory-users-page .admin-note{margin-top:14px}
.factory-header-nav{display:flex;gap:8px;flex-wrap:wrap}.factory-header-nav-btn{white-space:nowrap}
@media(max-width:900px){.factory-users-page{padding:14px}.factory-header-nav{width:100%;order:4}}
\n\n/* V1.32.79 - unified admin page routing / whitespace fix */
.main > .view{display:none!important;position:static!important;inset:auto!important;transform:none!important;float:none!important;clear:both!important;width:100%!important;max-width:none!important;min-height:0!important;height:auto!important;margin:0!important;box-sizing:border-box!important}
.main > .view.active-view{display:block!important;padding:0!important;margin:0!important;min-height:0!important;height:auto!important}
.main > .topbar + .view.active-view{margin-top:0!important}
body:not(.payroll-admin-view) .main > .view.active-view{padding-top:0!important}
/* Keep a normal compact gap inside content, not a blank page/header region. */
#financials.active-view,#reports.active-view,#employees.active-view,#crm.active-view,#billing.active-view,#ai.active-view{padding-top:0!important}
#financials.active-view>.kpis,#reports.active-view>.kpis,#employees.active-view>.kpis,#crm.active-view>*:first-child,#billing.active-view>*:first-child,#ai.active-view>*:first-child{margin-top:0!important}
/* Payroll no longer needs alternate document-flow hacks; it uses the same view host. */
body.payroll-admin-view .main{display:block!important;height:100vh!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;padding:0 28px 46px!important}
body.payroll-admin-view .topbar{position:sticky!important;top:0!important;z-index:20!important;margin:0 -28px 18px!important;padding:14px 28px!important;min-height:84px!important;background:linear-gradient(90deg,#062d52,#073760)!important;border-bottom:1px solid #0c4a7e!important}
body.payroll-admin-view .main>.view.active-view{padding:0!important;margin:0!important}
body.payroll-admin-view .payroll-admin{margin:0!important;padding:0!important;min-height:0!important;height:auto!important}
@media(max-width:780px){body.payroll-admin-view .main{padding:0 14px 30px!important;height:auto!important;overflow:visible!important}body.payroll-admin-view .topbar{margin:0 -14px 16px!important;padding:12px 14px!important}}

/* V1.32.80 - strict single-view isolation. No inactive admin section may render. */
.main > section.view[hidden]{display:none!important;visibility:hidden!important;height:0!important;min-height:0!important;overflow:hidden!important;margin:0!important;padding:0!important}
.main > section.view.active-view{display:block!important;visibility:visible!important;height:auto!important;min-height:0!important;overflow:visible!important}

/* V1.32.81 tax + payment schedule */
.billing-tax-controls{display:grid;grid-template-columns:88px 78px 18px;gap:6px;align-items:center;justify-content:end}.billing-tax-controls select,.billing-tax-controls input{width:100%!important}.billing-payment-plan{display:block!important;border-top:1px solid #dbe4ec;margin-top:10px;padding-top:12px}.billing-payment-plan h4{margin:0 0 10px;color:#123552;font-size:13px}.billing-plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.billing-plan-grid label{font-size:11px;color:#5e7488}.billing-plan-grid input,.billing-plan-grid select{width:100%!important;margin-top:4px}.billing-payment-rows{margin:8px 0}.billing-payment-row{display:grid;grid-template-columns:1fr 115px 110px 32px;gap:6px;margin:6px 0;align-items:center}.billing-payment-row input{width:100%!important}.billing-schedule-summary{margin-top:14px;border-top:1px solid #d8e2ea;padding-top:10px}.billing-schedule-summary h4{font-size:13px;margin:0 0 8px;color:#123552}.billing-schedule-summary table{width:100%;font-size:12px;border-collapse:collapse}.billing-schedule-summary td{padding:5px 0;border-bottom:1px solid #edf1f4}.billing-schedule-summary td:last-child{text-align:right}.tax-note{font-size:10px;color:#73879a;margin-top:4px}

/* V1.32.82 billing left-nav integration */
.billing-workspace-nav{display:none!important;}

.estimate-totals input[type="number"]{max-width:120px;text-align:right;}


/* V1.32.83 - Invoice deposit/payment schedule controls */
.billing-plan-actions{display:flex;gap:8px;margin-top:8px}.billing-payment-row{grid-template-columns:minmax(130px,1.2fr) 120px 105px 105px 32px!important}.billing-payment-row select,.billing-payment-row input{min-width:0;width:100%}
.invoice-payment-editor{margin-top:16px;border:1px solid #dbe4ec;border-radius:10px;background:#f8fafc;padding:14px}.invoice-plan-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.invoice-plan-title>div:first-child{display:flex;flex-direction:column;gap:3px}.invoice-plan-title strong{font-size:14px;color:#123552}.invoice-plan-title span{font-size:11px;color:#6b7f91}.invoice-plan-row-actions{display:flex;gap:6px}.invoice-deposit-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;align-items:end;margin-bottom:14px}.invoice-deposit-grid label{font-size:11px;font-weight:600;color:#536b7d}.invoice-deposit-grid input,.invoice-deposit-grid select{display:block;width:100%;margin-top:4px}.invoice-deposit-calc{border:1px solid #dbe4ec;background:#fff;border-radius:8px;padding:8px 10px;display:flex;justify-content:space-between;align-items:center;min-height:38px}.invoice-deposit-calc span{font-size:11px;color:#637789}.invoice-deposit-calc strong{font-size:14px;color:#123552}.invoice-plan-head,.invoice-plan-row{display:grid;grid-template-columns:minmax(150px,1.5fr) 120px 105px 105px 120px 32px;gap:7px;align-items:center}.invoice-plan-head{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#71879a;font-weight:700;padding:0 2px 5px}.invoice-plan-row{margin-bottom:7px}.invoice-plan-row input,.invoice-plan-row select{width:100%;min-width:0}.invoice-plan-row>strong{text-align:right;font-size:12px;color:#123552}.invoice-plan-footer{display:flex;align-items:center;justify-content:flex-end;gap:18px;border-top:1px solid #dbe4ec;padding-top:11px;margin-top:10px}.invoice-plan-footer>div{display:flex;flex-direction:column;align-items:flex-end;gap:1px}.invoice-plan-footer span{font-size:10px;color:#6d8193}.invoice-plan-footer strong{font-size:13px;color:#123552}@media(max-width:900px){.invoice-deposit-grid{grid-template-columns:1fr}.invoice-plan-head{display:none}.invoice-plan-row{grid-template-columns:1fr 1fr}.invoice-plan-row>strong{text-align:left}.invoice-plan-footer{align-items:stretch;flex-direction:column}.invoice-plan-footer>div{align-items:flex-start}}
/* V1.32.84 - deposit percent/amount input affordance */
.invoice-deposit-value-wrap{display:flex;align-items:center;gap:8px;border:1px solid var(--line,#d6e1eb);border-radius:10px;background:#fff;padding:0 12px;min-height:46px}.invoice-deposit-value-wrap input{border:0!important;box-shadow:none!important;padding:0!important;min-width:0;flex:1}.invoice-deposit-value-wrap [data-inv-deposit-prefix],.invoice-deposit-value-wrap [data-inv-deposit-suffix]{font-weight:800;color:#173d64;font-size:16px}.invoice-deposit-calc strong{font-variant-numeric:tabular-nums}

/* V1.32.86 - Factory Portal compact account menu */
.factory-portal-mode .factory-page-header{
  grid-template-columns:auto minmax(320px,1fr) auto!important;
  align-items:center;
}
.factory-portal-mode .factory-header-logo img{
  height:144px!important; /* 50% larger than original 96px */
  max-width:495px!important;
}
.factory-portal-mode .factory-header-nav{display:none!important}
.factory-portal-mode .factory-header-account{justify-self:end;position:relative}
.factory-account-menu{position:relative}
.factory-account-menu>summary{list-style:none}
.factory-account-menu>summary::-webkit-details-marker{display:none}
.factory-account-trigger{
  display:flex;align-items:center;justify-content:center;gap:7px;
  min-width:52px;height:46px;padding:0 12px;
  border:1px solid rgba(255,255,255,.58);border-radius:10px;
  background:rgba(255,255,255,.08);color:#fff;cursor:pointer;
}
.factory-account-trigger:hover,.factory-account-menu[open] .factory-account-trigger{background:rgba(255,255,255,.16)}
.factory-account-icon{display:grid;place-items:center;line-height:0}
.factory-account-caret{font-size:12px;line-height:1;transform:translateY(-1px)}
.factory-account-dropdown{
  position:absolute;right:0;top:calc(100% + 9px);z-index:100;
  min-width:205px;padding:7px;background:#fff;border:1px solid #d4e0ea;
  border-radius:10px;box-shadow:0 14px 34px rgba(4,35,61,.22);
}
.factory-account-dropdown button{
  display:flex!important;width:100%;border:0!important;background:transparent!important;color:#123b5d!important;
  text-align:left!important;padding:11px 12px!important;border-radius:7px;font:inherit!important;font-weight:800!important;cursor:pointer;
  opacity:1!important;visibility:visible!important;line-height:1.25!important;align-items:center!important;white-space:nowrap!important;
}
.factory-account-dropdown button:hover{background:#eef6fb}
.factory-account-divider{height:1px;background:#dde6ee;margin:6px 4px}
.factory-account-dropdown .factory-account-logout{color:#b42318!important}
@media(max-width:950px){
  .factory-portal-mode .factory-page-header{grid-template-columns:auto 1fr auto!important;padding:14px 18px}
  .factory-portal-mode .factory-header-logo{justify-self:start}
  .factory-portal-mode .factory-header-logo img{height:110px!important;max-width:390px!important}
  .factory-header-title h1{font-size:26px}
  .factory-header-title p{font-size:13px}
  .factory-portal-mode .factory-header-account{justify-self:end}
}
@media(max-width:650px){
  .factory-portal-mode .factory-page-header{grid-template-columns:auto 1fr auto!important;gap:10px}
  .factory-portal-mode .factory-header-logo img{height:86px!important;max-width:290px!important}
  .factory-header-title p{display:none}
  .factory-header-title h1{font-size:22px}
}
/* V1.32.89 Hotel Finder */
.hotel-finder-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 170px 170px auto;gap:10px;align-items:end;margin-bottom:14px}.hotel-finder-toolbar label{margin:0}.hotel-finder-tabs{display:flex;gap:8px;margin:0 0 14px;flex-wrap:wrap}.hotel-finder-tabs button.active{background:#0b64d8;color:#fff;border-color:#0b64d8}.hotel-results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.hotel-result-card{overflow:hidden;padding:0}.hotel-result-photo{height:178px;background:#eef2f7;display:flex;align-items:center;justify-content:center;overflow:hidden}.hotel-result-photo img{width:100%;height:100%;object-fit:cover}.hotel-result-body{padding:16px}.hotel-result-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.hotel-result-title h3{margin:0;font-size:18px}.hotel-score{min-width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;background:#eef5ff;color:#0b64d8;border:1px solid #cfe1fb}.hotel-score.hot{background:#fff1f0;color:#b42318;border-color:#f5c7c2}.hotel-score.warm{background:#fff8e8;color:#9a6700;border-color:#f5dfa8}.hotel-signal-list{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.hotel-signal-pill{font-size:12px;padding:5px 8px;border-radius:999px;background:#f2f4f7;color:#344054}.hotel-card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.hotel-finder-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.hotel-lead-modal{width:min(920px,94vw)}.hotel-source-note{font-size:12px;color:#667085;margin-top:12px}.hotel-saved-table td{vertical-align:top}.hotel-contact-stack{display:grid;gap:3px}.hotel-search-empty{padding:50px 24px;text-align:center}.hotel-search-empty h3{margin-bottom:6px}.hotel-map-link{font-size:12px}.hotel-signal-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.hotel-signal-board .card strong{font-size:28px}.hotel-finder-loading{padding:40px;text-align:center}.hotel-status-select{min-width:130px}
@media(max-width:900px){.hotel-finder-toolbar{grid-template-columns:1fr 1fr}.hotel-finder-summary{grid-template-columns:1fr 1fr}}@media(max-width:600px){.hotel-finder-toolbar{grid-template-columns:1fr}.hotel-finder-summary{grid-template-columns:1fr}.hotel-results-grid{grid-template-columns:1fr}}
/* V1.32.90 Hotel Finder U.S. prospecting controls */
.hotel-finder-toolbar-v2{grid-template-columns:minmax(220px,1.2fr) minmax(220px,1.2fr) 125px 145px 155px 145px auto auto}.hotel-us-toggle{display:flex!important;align-items:center;gap:7px;min-height:42px;padding:0 6px;white-space:nowrap}.hotel-us-toggle input{width:auto;margin:0}.hotel-results-head{display:flex;justify-content:space-between;align-items:end;margin:0 0 10px}.hotel-results-controls label{display:flex;align-items:center;gap:8px;margin:0}.hotel-results-controls select{min-width:190px}.hotel-score{flex-direction:column;line-height:1}.hotel-score small{font-size:9px;margin-top:3px;font-weight:700}.hotel-score span{font-size:17px}
@media(max-width:1350px){.hotel-finder-toolbar-v2{grid-template-columns:repeat(4,minmax(150px,1fr))}.hotel-finder-toolbar-v2>button{min-height:42px}}@media(max-width:900px){.hotel-finder-toolbar-v2{grid-template-columns:1fr 1fr}}@media(max-width:600px){.hotel-finder-toolbar-v2{grid-template-columns:1fr}.hotel-results-head{align-items:stretch;gap:8px;flex-direction:column}}

/* V1.32.92: restricted-role navigation must truly disappear. Author display rules on
   .nav-group/.nav-btn previously overrode the browser's [hidden] behavior. */
.sidebar nav [hidden],
.sidebar .nav-group[hidden],
.sidebar .nav-btn[hidden],
.sidebar .nav-submenu[hidden]{
  display:none !important;
}


/* V1.32.93 Hotel Finder review viewer */
.hotel-reviews-btn{font-weight:800}.hotel-reviews-overlay{position:fixed;inset:0;z-index:10000;background:rgba(4,25,45,.58);display:flex;align-items:center;justify-content:center;padding:24px}.hotel-reviews-modal{width:min(920px,96vw);max-height:90vh;background:#fff;border-radius:16px;box-shadow:0 24px 70px rgba(0,0,0,.28);display:flex;flex-direction:column;overflow:hidden}.hotel-reviews-head{display:flex;justify-content:space-between;gap:18px;padding:22px 24px 18px;border-bottom:1px solid #dfe7ee}.hotel-reviews-head h2,.hotel-reviews-head h3{margin:0}.hotel-reviews-head h2{font-size:24px;color:#0a3153}.hotel-reviews-head h3{margin-top:5px;font-size:18px;color:#183d5d}.hotel-reviews-title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.hotel-review-score{border:1px solid #cfe1fb;background:#eef5ff;color:#0b64d8;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800}.hotel-review-score.hot{background:#fff1f0;color:#b42318;border-color:#f5c7c2}.hotel-review-score.warm{background:#fff8e8;color:#9a6700;border-color:#f5dfa8}.hotel-reviews-close{width:40px;height:40px;border:1px solid #d6e1ea;border-radius:9px;background:#fff;color:#52697c;font-size:27px;line-height:1;cursor:pointer}.hotel-review-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:13px 24px;border-bottom:1px solid #e4eaf0;background:#f8fafc}.hotel-review-filters button.active{background:#0b365a;color:#fff;border-color:#0b365a}.hotel-review-filters .muted{margin-left:auto;font-size:11px}.hotel-review-list{padding:18px 24px;overflow:auto;display:grid;gap:12px}.hotel-review-card{border:1px solid #dde5ec;border-radius:12px;padding:16px;background:#fff}.hotel-review-meta{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.hotel-review-stars{color:#e89b16;font-size:16px;letter-spacing:1px}.hotel-review-card p{margin:12px 0 0;color:#31485b;line-height:1.55;white-space:pre-wrap}.hotel-review-empty{text-align:center;padding:44px 20px}.hotel-review-empty .muted{margin-top:6px}.hotel-reviews-foot{display:flex;justify-content:space-between;align-items:center;padding:14px 24px;border-top:1px solid #dfe7ee;background:#f8fafc}.hotel-reviews-foot button{min-width:90px}@media(max-width:650px){.hotel-reviews-overlay{padding:8px}.hotel-reviews-modal{max-height:96vh}.hotel-reviews-head,.hotel-review-filters,.hotel-review-list,.hotel-reviews-foot{padding-left:14px;padding-right:14px}.hotel-review-filters .muted{width:100%;margin-left:0}.hotel-review-meta{flex-direction:column;gap:6px}}

/* V1.32.95 Hotel Finder intelligence expansion */
.hotel-photo-modal{width:min(1180px,97vw)}
.hotel-photo-grid{padding:18px 24px;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.hotel-photo-card{border:1px solid #dce5ed;border-radius:13px;overflow:hidden;background:#fff;box-shadow:0 3px 12px rgba(7,49,84,.06)}
.hotel-photo-card img{width:100%;height:285px;object-fit:cover;display:block;background:#eef2f7}
.hotel-photo-info{padding:13px;display:grid;gap:8px}
.hotel-photo-info small{display:block}
.hotel-photo-relevance{justify-self:start;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;background:#eef2f6;color:#52697c}
.hotel-photo-relevance.high{background:#fff1f0;color:#b42318}.hotel-photo-relevance.medium{background:#fff8e8;color:#9a6700}.hotel-photo-relevance.low{background:#eef5ff;color:#0b64d8}
.hotel-photo-summary{max-width:420px;margin-left:auto!important}
.hotel-contact-modal{width:min(980px,96vw)}
.hotel-contact-content{padding:18px 24px;overflow:auto}
.hotel-contact-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.hotel-contact-section{border:1px solid #dfe7ee;border-radius:12px;padding:15px;background:#fff;display:grid;gap:8px;align-content:start}
.hotel-contact-section h4{margin:0 0 3px;color:#0a3153;font-size:15px}
.hotel-contact-wide{grid-column:1/-1}
.hotel-contact-row{display:grid;grid-template-columns:145px 1fr;gap:10px;font-size:13px;align-items:start}
.hotel-contact-row>span{color:#667085}.hotel-contact-row strong,.hotel-contact-row a{overflow-wrap:anywhere}
.hotel-person-card{display:grid;gap:3px;padding:10px;border-radius:9px;background:#f8fafc;border:1px solid #e8edf2;font-size:13px}
.hotel-person-card span{color:#667085}.hotel-person-card a{overflow-wrap:anywhere}
.hotel-contact-chips{display:flex;flex-wrap:wrap;gap:7px}.hotel-contact-chips a{font-size:12px;padding:6px 9px;border:1px solid #d8e2ea;border-radius:999px;background:#f8fafc;overflow-wrap:anywhere}
.hotel-source-list{display:grid;gap:5px}.hotel-source-list a{font-size:12px;overflow-wrap:anywhere}
@media(max-width:760px){.hotel-photo-grid{grid-template-columns:1fr;padding:12px}.hotel-photo-card img{height:230px}.hotel-contact-columns{grid-template-columns:1fr}.hotel-contact-wide{grid-column:auto}.hotel-contact-row{grid-template-columns:1fr}.hotel-photo-summary{max-width:none;margin-left:0!important;width:100%}}

/* V1.32.96 - Hotel Finder LinkedIn intelligence */
.hotel-linkedin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.hotel-linkedin-btn{display:inline-flex!important;align-items:center;justify-content:center;width:max-content;margin-top:6px;font-size:12px!important;padding:6px 9px!important}
.hotel-linkedin-companies{margin-top:10px}

/* V1.32.97 Hotel Finder modal cleanup + interactive photo gallery */
.hotel-reviews-overlay{padding:28px;overflow:auto}
.hotel-reviews-modal{max-height:calc(100vh - 56px)}
.hotel-reviews-head{align-items:flex-start;padding:24px 28px 20px}
.hotel-reviews-head>div:first-child{min-width:0}
.hotel-review-filters{padding:14px 28px;gap:10px}
.hotel-review-list{padding:20px 28px;gap:14px}
.hotel-reviews-foot{padding:16px 28px;gap:18px;min-height:66px}
.hotel-reviews-foot>div{display:flex;align-items:center;gap:10px}
.hotel-reviews-foot button{margin:0!important}
.hotel-review-card{padding:18px}
.hotel-review-card .hotel-signal-list{margin-bottom:0}
.hotel-contact-modal{width:min(1060px,96vw)}
.hotel-contact-content{padding:22px 28px}
.hotel-contact-columns{gap:16px}
.hotel-contact-section{padding:18px;gap:10px}
.hotel-contact-section h4{margin:0 0 6px}
.hotel-contact-row{grid-template-columns:160px minmax(0,1fr);gap:14px;line-height:1.4}
.hotel-person-card{padding:12px;border:1px solid #e3e9ef;border-radius:10px;display:grid;gap:6px;min-width:0}
.hotel-linkedin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.hotel-source-list{display:grid;gap:6px}
.hotel-source-list a{overflow-wrap:anywhere}
.hotel-contact-chips{margin-top:3px}
.hotel-lead-modal{width:min(980px,95vw);padding:0;overflow:hidden}
#hotelLeadDialog{padding:0;border:0;border-radius:16px;max-height:92vh;overflow:hidden}
#hotelLeadDialog::backdrop{background:rgba(4,25,45,.58)}
#hotelLeadForm .modal-head{padding:22px 26px 18px;border-bottom:1px solid #dfe7ee;margin:0}
#hotelLeadForm>.form-grid{padding:22px 26px 8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px;overflow:auto}
#hotelLeadForm>.form-grid label{min-width:0;margin:0;display:grid;gap:6px}
#hotelLeadForm>.form-grid input,#hotelLeadForm>.form-grid select{width:100%;min-width:0}
#hotelLeadForm>label{margin:8px 26px 0;display:grid;gap:6px}
#hotelLeadForm>label textarea{width:100%;box-sizing:border-box}
#hotelLeadForm .modal-actions{padding:16px 26px 22px;margin:0;border-top:1px solid #e4eaf0;display:flex;justify-content:flex-end;gap:10px}

.hotel-photo-gallery-modal{width:min(1460px,97vw);height:min(850px,92vh);max-height:none}
.hotel-photo-head{min-height:102px;align-items:center}
.hotel-photo-head-copy h2{font-size:26px;margin:0;color:#0a3153}
.hotel-photo-head-copy h3{font-size:19px;margin:5px 0 2px;color:#183d5d}
.hotel-photo-head-stats{display:flex;align-items:center;gap:24px;flex-shrink:0}
.hotel-photo-head-stats>div:not(.hotel-score){display:grid;gap:3px;min-width:78px}
.hotel-photo-head-stats>div:not(.hotel-score) strong{font-size:22px;color:#0a3153}
.hotel-photo-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 28px;border-bottom:1px solid #e4eaf0;background:#fbfcfd}
.hotel-photo-filter-group{display:flex;gap:8px;flex-wrap:wrap}
.hotel-photo-filter-group button.active{background:#0b365a;color:#fff;border-color:#0b365a}
.hotel-ai-button{font-weight:800;color:#0b64d8;border-color:#a9cef9;background:#eff6ff}
.hotel-photo-gallery-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(350px,42%) minmax(0,58%);gap:20px;padding:18px 28px;overflow:hidden}
.hotel-photo-thumbs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:128px;gap:9px;align-content:start;overflow:auto;padding:1px 6px 1px 1px}
.hotel-photo-thumb{position:relative;padding:0;border:2px solid transparent;border-radius:10px;overflow:hidden;background:#eef2f7;cursor:pointer;min-width:0}
.hotel-photo-thumb:hover{border-color:#8fbce9;transform:translateY(-1px)}
.hotel-photo-thumb.selected{border-color:#0b84ef;box-shadow:0 0 0 2px rgba(11,132,239,.14)}
.hotel-photo-thumb img{width:100%;height:100%;display:block;object-fit:cover}
.hotel-photo-thumb span{position:absolute;right:6px;bottom:6px;background:rgba(7,49,84,.82);color:#fff;border-radius:999px;min-width:24px;height:24px;display:grid;place-items:center;font-size:11px;font-weight:800}
.hotel-photo-stage{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:auto;padding-right:2px}
.hotel-photo-main-wrap{position:relative;background:#eaf0f5;border-radius:12px;overflow:hidden;min-height:390px;height:min(51vh,520px);display:grid;place-items:center}
.hotel-photo-main{width:100%;height:100%;object-fit:contain;display:block}
.hotel-photo-counter{position:absolute;right:14px;top:14px;background:rgba(7,49,84,.88);color:#fff;border-radius:999px;padding:6px 11px;font-size:12px;font-weight:800}
.hotel-photo-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:1px solid #d9e2ea;background:rgba(255,255,255,.96);color:#0a3153;font-size:34px;line-height:34px;display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.12)}
.hotel-photo-nav:hover{background:#fff;transform:translateY(-50%) scale(1.04)}
.hotel-photo-nav.prev{left:14px}.hotel-photo-nav.next{right:14px}
.hotel-photo-detail{padding:14px 2px 4px;display:grid;gap:10px}
.hotel-photo-detail-title{display:flex;justify-content:space-between;align-items:center;gap:14px}
.hotel-photo-detail-title>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.hotel-photo-detail-title>div>strong{font-size:18px;color:#0a3153}
.hotel-photo-source{font-size:12px}
.hotel-photo-ai-observations{border-top:1px solid #edf1f5;padding-top:11px}
.hotel-photo-ai-observations>strong{font-size:13px;color:#183d5d}
.hotel-photo-ai-observations p{margin:7px 0 0;line-height:1.45}
.hotel-photo-foot{flex-shrink:0}

@media(max-width:1000px){
  .hotel-photo-gallery-modal{height:auto;max-height:96vh}
  .hotel-photo-gallery-body{grid-template-columns:1fr;overflow:auto}
  .hotel-photo-thumbs{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:110px;overflow:visible}
  .hotel-photo-stage{overflow:visible}
  .hotel-photo-main-wrap{height:420px;min-height:300px}
}
@media(max-width:760px){
  .hotel-reviews-overlay{padding:8px}
  .hotel-reviews-head,.hotel-review-filters,.hotel-review-list,.hotel-reviews-foot,.hotel-contact-content,.hotel-photo-toolbar,.hotel-photo-gallery-body{padding-left:14px;padding-right:14px}
  .hotel-photo-head{align-items:flex-start}
  .hotel-photo-head-stats{gap:10px}
  .hotel-photo-head-stats>div:not(.hotel-score){display:none}
  .hotel-photo-toolbar{align-items:stretch;flex-direction:column}
  .hotel-photo-thumbs{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:120px}
  .hotel-photo-main-wrap{height:300px;min-height:240px}
  .hotel-photo-detail-title{align-items:flex-start;flex-direction:column}
  .hotel-contact-columns,.hotel-linkedin-grid{grid-template-columns:1fr}
  .hotel-contact-row{grid-template-columns:1fr;gap:3px}
  #hotelLeadForm>.form-grid{grid-template-columns:1fr;padding:18px 16px 6px}
  #hotelLeadForm>.modal-head{padding:18px 16px 14px}
  #hotelLeadForm>label{margin-left:16px;margin-right:16px}
  #hotelLeadForm .modal-actions{padding:14px 16px 18px}
}

.hotel-ai-error{border:1px solid #fecaca;background:#fff7f7}.hotel-ai-error strong{color:#b91c1c}.hotel-ai-error p{margin:.5rem 0 0}


/* V1.33.02 Hotel Finder AI Photo Training */
.hotel-ai-training-grid{display:grid;gap:18px}.hotel-ai-training-main textarea{width:100%;min-height:120px}.hotel-training-version{padding:10px 14px;border:1px solid var(--line,#dbe4ed);border-radius:10px;background:#f8fbfd}.hotel-training-section{margin-top:18px}.hotel-training-checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}.hotel-training-check{display:flex!important;align-items:center;gap:9px;padding:11px;border:1px solid #d9e4ec;border-radius:10px;background:#fff}.hotel-training-check input{width:auto!important}.hotel-training-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}.hotel-training-actions{display:flex;gap:10px;margin-top:18px}.hotel-training-examples{display:grid;gap:10px}.hotel-training-example{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;border:1px solid #dce6ee;border-radius:12px}.hotel-training-example>div{display:grid;gap:5px}.hotel-training-test-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.hotel-training-result{margin-top:14px;padding:16px;border:1px dashed #cdd9e4;border-radius:12px;min-height:60px}.hotel-training-test-result{display:grid;gap:9px}.hotel-training-dialog{max-width:720px}.hotel-training-dialog-body{padding:20px;display:grid;gap:14px}.hotel-training-dialog-body label{display:grid;gap:7px}@media(max-width:800px){.hotel-training-checks{grid-template-columns:1fr 1fr}.hotel-training-row{grid-template-columns:1fr}}@media(max-width:520px){.hotel-training-checks{grid-template-columns:1fr}}

/* V1.33.03 Hospitality Lead Intelligence */
.lead-intel-crossnav,.lead-intel-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.lead-intel-crossnav{padding-bottom:12px;border-bottom:1px solid #e5edf5}.lead-intel-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:14px;background:linear-gradient(135deg,#f8fcff,#eef7ff)}.lead-intel-hero h3{margin:0 0 6px}.lead-intel-hero p{margin:0;max-width:900px;color:#5b6b7c}.lead-search-card{margin-bottom:14px}.lead-search-grid{display:grid;grid-template-columns:minmax(260px,1.4fr) minmax(220px,1fr) auto;gap:12px;align-items:end}.lead-search-grid label,.lead-watch-form label{display:flex;flex-direction:column;gap:6px;font-weight:700;color:#173653}.lead-search-grid input,.lead-watch-form input,.lead-watch-form select{min-height:42px}.lead-search-presets{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.lead-search-presets button{border:1px solid #cbd9e6;background:#fff;color:#1b4a70;border-radius:999px;padding:7px 11px;cursor:pointer}.lead-results-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.lead-results-head>div{display:flex;flex-direction:column;gap:3px}.lead-intel-results-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.lead-intel-result{padding:18px}.lead-intel-result-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.lead-intel-result h3{margin:4px 0}.lead-intel-type{font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:#6b7d90}.lead-intent-score{width:62px;height:62px;flex:0 0 62px;border-radius:16px;background:#eef3f7;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #dfe8ef}.lead-intent-score strong{font-size:24px;line-height:1;color:#163b5b}.lead-intent-score span{font-size:9px;font-weight:800;letter-spacing:.06em;margin-top:4px}.lead-intent-score.lead-intent-hot{background:#fff0ed;border-color:#ffb6aa}.lead-intent-score.lead-intent-hot strong{color:#c73522}.lead-intent-score.lead-intent-warm{background:#fff8e7;border-color:#f4d28b}.lead-intent-score.lead-intent-warm strong{color:#a86a00}.lead-signal-box{margin:14px 0;padding:12px 14px;border-radius:10px;background:#f7fafc;border:1px solid #e6edf4}.lead-signal-box p{margin:5px 0 0;line-height:1.45}.lead-source{margin-top:14px;padding-top:12px;border-top:1px solid #e6edf4}.lead-source strong,.lead-source span{display:block}.lead-source p{margin:5px 0 0}.lead-search-links{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:10px 0}.lead-search-links a{font-size:13px}.lead-config-note{border:1px solid #efcf85;background:#fff9e9;color:#7c5b12;border-radius:8px;padding:10px 12px;margin:10px 0}.lead-intel-empty{min-height:140px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;color:#65768a}.lead-intel-table .hotel-signal-pill{display:inline-block;margin:2px}.lead-intent-mini{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:34px;border-radius:9px;background:#eef3f7;font-weight:800}.lead-intent-mini.lead-intent-hot{background:#fff0ed;color:#c73522}.lead-intent-mini.lead-intent-warm{background:#fff8e7;color:#a86a00}.lead-opportunity-list{display:flex;flex-direction:column;gap:12px}.lead-opportunity-row{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:16px;align-items:start}.lead-opportunity-main h3{margin:2px 0 4px}.lead-opportunity-main p{margin:8px 0}.lead-opportunity-actions{display:flex;flex-direction:column;gap:8px;min-width:120px}.lead-watch-form{display:grid;grid-template-columns:1.2fr .8fr 1.4fr auto;gap:12px;align-items:end;margin-bottom:16px}.lead-watch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.lead-watch-grid h3{margin:5px 0}.lead-watch-grid .card{padding:16px}@media(max-width:1000px){.lead-intel-results-grid{grid-template-columns:1fr}.lead-search-grid,.lead-watch-form{grid-template-columns:1fr 1fr}.lead-opportunity-row{grid-template-columns:64px minmax(0,1fr)}.lead-opportunity-actions{grid-column:2;flex-direction:row;flex-wrap:wrap}.lead-watch-grid{grid-template-columns:1fr 1fr}}@media(max-width:680px){.lead-search-grid,.lead-watch-form,.lead-watch-grid{grid-template-columns:1fr}.lead-intel-hero{align-items:flex-start;flex-direction:column}.lead-opportunity-row{grid-template-columns:1fr}.lead-opportunity-actions{grid-column:auto}.lead-intent-score{width:58px;height:58px}}

/* V1.33.04 Automated Daily Lead Discovery */
.daily-leads-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px;margin-bottom:14px;background:linear-gradient(135deg,#fff 0%,#f6fbff 100%)}
.daily-leads-hero h2{margin:4px 0 8px}.daily-leads-hero p{margin:0;max-width:900px;line-height:1.55}.daily-leads-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:14px 0}.daily-leads-toolbar>div:first-child{display:flex;flex-direction:column;gap:4px}.daily-lead-filters{display:flex;gap:8px;flex-wrap:wrap}.daily-lead-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.daily-lead-card{padding:20px}.daily-lead-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.daily-lead-top h3{margin:4px 0}.daily-lead-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0}.daily-run-time{font-size:18px!important;line-height:1.2!important}.daily-lead-card .hotel-card-actions{margin-top:14px}.daily-lead-card .lead-source{margin-top:12px}.daily-lead-card .lead-signal-box{margin-top:12px}
@media(max-width:900px){.daily-lead-grid{grid-template-columns:1fr}.daily-leads-hero,.daily-leads-toolbar{align-items:stretch;flex-direction:column}.daily-leads-hero button{width:100%}}
/* V1.33.07 lead timing + research */
.lead-timing-box,.lead-research-box{margin:12px 0;padding:12px 14px;border:1px solid var(--line,#dbe4ee);border-radius:12px;background:#f8fbfe}.lead-timing-box p,.lead-research-box p{margin:5px 0}.lead-research-box>div{margin-top:4px}.daily-lead-late{opacity:.78}.badge.success{background:#e9f8ef;color:#147a43}.badge.warn{background:#fff4df;color:#9b6400}.daily-lead-filters{display:flex;gap:8px;flex-wrap:wrap}
/* V1.33.07 lead timing + research */
.lead-timing-box,.lead-research-box{margin:12px 0;padding:12px 14px;border:1px solid var(--line,#dbe4ee);border-radius:12px;background:#f8fbfe}.lead-timing-box p,.lead-research-box p{margin:5px 0}.lead-research-box>div{margin-top:4px}.daily-lead-late{opacity:.78}.badge.success{background:#e9f8ef;color:#147a43}.badge.warn{background:#fff4df;color:#9b6400}.daily-lead-filters{display:flex;gap:8px;flex-wrap:wrap}

/* V1.33.13 scheduled lead discovery health */
.automation-health-card{margin:14px 0}.automation-health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.automation-health-item{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--border,#d8e2ec);border-radius:12px;background:#fff}.automation-health-item .muted{width:100%}@media(max-width:760px){.automation-health-grid{grid-template-columns:1fr}}

/* V1.33.14 lead identity + discovery timestamps */
.lead-property-location{font-size:15px;font-weight:800;color:#173b5f;margin-top:4px}
.lead-property-address{margin-top:2px;line-height:1.35}
.lead-company-name{margin-top:4px;font-weight:600}
.lead-discovered-stamp{font-size:12px;color:#526b84;background:#f4f8fb;border:1px solid #dce7ef;border-radius:999px;padding:5px 9px}
.daily-lead-meta{gap:7px;align-items:center;flex-wrap:wrap}

/* V1.33.15 lead verification */
.lead-freshness-box{margin:12px 0;padding:12px 14px;border:1px solid #cfe0ec;border-radius:12px;background:#f5fbff;color:#12324a}.lead-freshness-box.warn{border-color:#f0c36a;background:#fff8e8;color:#6b4a00}.lead-freshness-box strong{display:block;margin-bottom:4px}.lead-freshness-box p{margin:4px 0 0}

/* V1.33.21 - visual divider below Hotel Intelligence */
#hotelIntelligenceNavGroup{border-bottom:1px solid rgba(255,255,255,.18);padding-bottom:12px;margin-bottom:12px}


/* V1.33.22 - Factory Portal responsive/mobile + progress confirmation */
.factory-progress-confirm-dialog{border:0;padding:0;background:transparent;max-width:none;width:auto}
.factory-progress-confirm-dialog::backdrop{background:rgba(5,27,47,.62);backdrop-filter:blur(2px)}
.factory-progress-confirm-card{width:min(460px,calc(100vw - 28px));background:#fff;border-radius:18px;padding:24px;box-shadow:0 28px 80px rgba(4,30,51,.28);display:grid;gap:16px;color:#102f4b}
.factory-progress-confirm-card h3{margin:3px 0 6px;font-size:22px;color:#0b3154}.factory-progress-confirm-card p{margin:0;color:#536c80;line-height:1.5}
.factory-progress-confirm-icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#e8f6fd;color:#0b6fa4;font-size:24px;font-weight:900}
.factory-progress-confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.factory-progress-confirm-actions button{min-height:48px;font-size:16px;font-weight:900}

.factory-portal-mode,.factory-portal-mode #app,.factory-portal-mode .main{max-width:100%;overflow-x:hidden}
.factory-portal-mode .main{box-sizing:border-box}
.factory-portal-mode img,.factory-portal-mode svg{max-width:100%}
.factory-portal-mode .card,.factory-portal-mode .floor-size-project,.factory-portal-mode .floor-size-floor,.factory-portal-mode .floor-size-card{min-width:0;max-width:100%;box-sizing:border-box}
.factory-portal-mode .floor-size-project>summary,.factory-portal-mode .floor-size-floor-head,.factory-portal-mode .factory-list-heading{min-width:0}
.factory-portal-mode .floor-size-project>summary strong,.factory-portal-mode .floor-size-project>summary span,.factory-portal-mode .floor-product-meta,.factory-portal-mode .floor-size-rooms{overflow-wrap:anywhere;word-break:break-word}
.factory-portal-mode button,.factory-portal-mode select,.factory-portal-mode input{touch-action:manipulation}
.factory-portal-mode .mfg-progress-step{min-height:74px}
.factory-portal-mode .mfg-progress-step button{min-height:44px}

@media(max-width:900px){
  body.factory-portal-mode{font-size:16px}
  .factory-portal-mode .main{padding:0 12px 24px!important}
  .factory-portal-mode #manufacturing{padding-top:14px!important}
  .factory-portal-mode .factory-page-header{position:sticky;top:0;grid-template-columns:1fr auto!important;gap:10px;padding:10px 12px!important;min-height:72px}
  .factory-portal-mode .factory-header-logo{justify-self:start!important;min-width:0}
  .factory-portal-mode .factory-header-logo img{height:62px!important;max-width:200px!important;width:auto!important}
  .factory-portal-mode .factory-header-title{display:none!important}
  .factory-portal-mode .factory-header-account{justify-self:end!important}
  .factory-account-trigger{height:46px;min-width:48px;padding:0 10px}
  .factory-account-dropdown{position:fixed;right:12px;top:70px;min-width:220px;max-width:calc(100vw - 24px)}
  .factory-portal-mode .floor-size-summary-card>.section-head{padding:14px!important;gap:12px}
  .factory-portal-mode .floor-size-summary-card>.section-head h3{font-size:20px!important}
  .factory-blue-project-select{width:100%!important;display:grid!important;gap:6px!important}
  .factory-blue-project-select select{width:100%!important;min-width:0!important;height:48px!important;font-size:16px!important}
  .factory-project-summary-actions{width:100%;display:flex!important;flex-wrap:wrap!important;justify-content:flex-start!important;gap:8px!important}
  .factory-project-summary-actions button{min-height:44px}
  .factory-production-lists{gap:16px}
  .factory-list-heading{align-items:flex-start;gap:8px}
  .factory-list-heading h3{font-size:19px}
  .factory-portal-mode .floor-size-project>summary{padding:14px!important;align-items:flex-start!important;gap:10px;flex-direction:column}
  .factory-portal-mode .floor-size-project>summary>div:first-child{width:100%}
  .factory-portal-mode .floor-size-floor-list{padding:8px!important}
  .factory-portal-mode .floor-size-floor{padding:10px!important}
  .factory-portal-mode .floor-size-grid{grid-template-columns:1fr!important}
  .factory-portal-mode .floor-size-card{padding:14px!important}
  .factory-portal-mode .floor-size-dimension{align-items:flex-start;flex-wrap:wrap}
  .factory-portal-mode .mfg-project-progress{padding:16px 12px!important}
  .factory-portal-mode .mfg-progress-status{gap:10px;align-items:flex-start}
  .factory-portal-mode .mfg-progress-status strong{font-size:18px!important}
  .factory-portal-mode .mfg-progress-status>b{font-size:20px!important}
  .factory-portal-mode .mfg-progress-helper{font-size:13px;line-height:1.45}
  .factory-portal-mode .mfg-progress-track{display:none!important}
  .factory-portal-mode .mfg-progress-steps{grid-template-columns:1fr 1fr!important;gap:8px!important;padding-top:8px!important}
  .factory-portal-mode .mfg-progress-step{min-height:64px!important;border:1px solid #d7e4ee!important;border-radius:12px!important;background:#fff!important;padding:10px 8px!important;display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:9px!important;text-align:left!important}
  .factory-portal-mode .mfg-progress-step.done{background:#eef8fd!important;border-color:#a9d8ef!important}
  .factory-portal-mode .mfg-progress-step.current{background:#dff3fc!important;border-color:#4fb8e6!important;box-shadow:0 0 0 2px rgba(16,145,202,.10)}
  .factory-portal-mode .mfg-progress-dot{flex:0 0 34px;width:34px!important;height:34px!important;margin:0!important}
  .factory-portal-mode .mfg-progress-label{font-size:13px!important;line-height:1.25!important;text-align:left!important}
  .factory-page-footer{padding:18px 12px!important}
}
@media(max-width:560px){
  .factory-portal-mode .main{padding:0 8px 18px!important}
  .factory-portal-mode .factory-page-header{padding:8px 10px!important}
  .factory-portal-mode .factory-header-logo img{height:52px!important;max-width:170px!important}
  .factory-account-trigger{height:44px}
  .factory-account-dropdown{right:8px;top:62px}
  .factory-portal-mode .mfg-progress-steps{grid-template-columns:1fr!important}
  .factory-portal-mode .mfg-progress-step{min-height:58px!important}
  .factory-portal-mode .floor-size-project>summary{padding:12px!important}
  .factory-portal-mode .floor-size-floor-list{padding:6px!important}
  .factory-portal-mode .floor-size-card{padding:12px!important}
  .factory-portal-mode .factory-list-heading{flex-direction:column}
  .factory-portal-mode .factory-list-heading span{align-self:flex-start}
  .factory-progress-confirm-card{padding:20px 16px;border-radius:16px}
  .factory-progress-confirm-actions{grid-template-columns:1fr}
  .factory-progress-confirm-actions button{min-height:50px}
}
@media(max-width:380px){
  .factory-portal-mode .factory-header-logo img{height:46px!important;max-width:145px!important}
  .factory-account-trigger{min-width:44px;padding:0 8px}
  .factory-portal-mode .mfg-progress-status{flex-direction:column}
}

/* V1.33.23 - Factory Portal full mobile responsiveness + reliable progress confirmation */
.factory-progress-confirm-overlay{
  position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;
  padding:max(18px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));
  background:rgba(5,27,47,.68);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)
}
.factory-progress-confirm-overlay.open{display:flex}
body.factory-confirm-open{overflow:hidden!important;touch-action:none}
.factory-progress-confirm-overlay .factory-progress-confirm-card{width:min(460px,100%);max-height:min(620px,calc(100dvh - 36px));overflow:auto;margin:0}

@media(max-width:760px){
  body.factory-portal-mode{width:100%;max-width:100%;overflow-x:hidden!important}
  .factory-portal-mode #app,.factory-portal-mode .main,.factory-portal-mode #manufacturing,.factory-portal-mode .view{width:100%;max-width:100%;min-width:0!important}
  .factory-portal-mode .main{padding:0 10px 24px!important}
  .factory-portal-mode .factory-page-header{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto!important;align-items:center!important;gap:8px!important;padding:10px max(10px,env(safe-area-inset-right)) 10px max(10px,env(safe-area-inset-left))!important;min-height:66px}
  .factory-portal-mode .factory-header-logo{justify-self:start!important;min-width:0}
  .factory-portal-mode .factory-header-logo img{height:44px!important;max-width:112px!important;width:auto!important}
  .factory-portal-mode .factory-header-title{min-width:0;text-align:center!important;justify-self:stretch!important}
  .factory-portal-mode .factory-header-title h1{font-size:20px!important;line-height:1.05!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .factory-portal-mode .factory-header-title p{display:none!important}
  .factory-portal-mode .factory-header-account{justify-self:end!important;gap:4px!important;min-width:0}
  .factory-account-trigger{min-width:42px!important;min-height:42px!important;padding:8px!important}
  .factory-account-caret{display:none!important}
  .factory-account-dropdown{right:0!important;left:auto!important;min-width:190px!important;max-width:calc(100vw - 24px)!important}

  .factory-portal-mode #manufacturing{padding-top:12px!important}
  .factory-portal-mode .floor-size-summary-card{width:100%!important;margin:0!important;border-radius:12px!important;overflow:hidden!important}
  .factory-portal-mode .floor-size-summary-card>.section-head{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:12px!important;margin:0 0 12px!important;padding:14px!important;border-radius:12px!important}
  .factory-portal-mode .floor-size-summary-card>.section-head>div:first-child{min-width:0!important;width:100%!important}
  .factory-portal-mode .floor-size-summary-card>.section-head h3{font-size:20px!important;line-height:1.15!important;margin:0!important}
  .factory-portal-mode .floor-size-summary-card>.section-head .muted{font-size:12px!important;line-height:1.35!important;color:rgba(255,255,255,.86)!important}
  .factory-blue-project-select{width:100%!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:6px!important}
  .factory-blue-project-select select{width:100%!important;max-width:100%!important;min-width:0!important;height:46px!important;font-size:16px!important;padding-left:12px!important}

  .factory-production-lists{gap:16px!important}
  .factory-list-heading{margin:4px 0 8px!important;align-items:center!important}
  .factory-list-heading h3{font-size:18px!important}
  .factory-list-heading span{font-size:11px!important;padding:5px 8px!important}

  .factory-portal-mode .floor-size-project{width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important;overflow:hidden!important;border-radius:12px!important}
  .factory-portal-mode .floor-size-project>summary{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:10px!important;padding:14px!important;border-radius:12px 12px 0 0!important;min-width:0!important}
  .factory-portal-mode .floor-size-project>summary>div:first-child{min-width:0!important;width:100%!important}
  .factory-portal-mode .floor-size-project>summary strong{display:block!important;font-size:16px!important;line-height:1.25!important;white-space:normal!important;overflow-wrap:anywhere!important}
  .factory-portal-mode .floor-size-project>summary span{white-space:normal!important;overflow-wrap:anywhere!important}
  .factory-project-summary-actions{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%!important;gap:8px!important;margin:0!important;align-items:stretch!important}
  .factory-project-summary-actions .project-requirement-btn,.factory-project-summary-actions .unfinish-btn,.factory-project-summary-actions .badge{width:100%!important;min-width:0!important;min-height:42px!important;display:flex!important;align-items:center!important;justify-content:center!important;white-space:normal!important;text-align:center!important;padding:8px 10px!important;font-size:11px!important;line-height:1.2!important}
  .factory-project-summary-actions .badge:last-child:nth-child(odd){grid-column:1/-1}

  .factory-portal-mode .mfg-project-progress{padding:14px!important;overflow:hidden!important}
  .mfg-progress-status{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:start!important;gap:10px!important;margin:0!important;padding:0 0 8px!important}
  .mfg-progress-status>div{display:flex!important;flex-direction:column!important;gap:2px!important;min-width:0!important}
  .factory-portal-mode .mfg-progress-status strong{font-size:15px!important;line-height:1.2!important;white-space:normal!important}
  .factory-portal-mode .mfg-progress-status>b{font-size:18px!important}
  .factory-portal-mode .mfg-progress-helper{font-size:12px!important;line-height:1.4!important;margin:0 0 10px!important;padding:0!important}
  .mfg-progress-track{display:none!important}
  .mfg-progress-steps{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important;padding:0!important;margin:0!important}
  .mfg-progress-step{width:100%!important;min-width:0!important;min-height:76px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:6px!important;padding:9px 7px!important;border:1px solid #c9dce9!important;border-radius:12px!important;background:#fff!important;text-align:center!important;position:relative!important;left:auto!important;right:auto!important;top:auto!important;transform:none!important}
  .mfg-progress-step.done{background:#ecf8fd!important;border-color:#8bcce8!important}
  .mfg-progress-step.current{background:#dff4fc!important;border-color:#1aa9df!important;box-shadow:inset 0 0 0 1px #1aa9df!important}
  .mfg-progress-step .mfg-progress-dot{position:static!important;transform:none!important;width:30px!important;height:30px!important;min-width:30px!important;display:grid!important;place-items:center!important;font-size:13px!important;margin:0!important}
  .mfg-progress-step .mfg-progress-label{font-size:11px!important;line-height:1.15!important;white-space:normal!important;word-break:normal!important;overflow-wrap:anywhere!important;max-width:100%!important}

  .project-photo-section{margin:12px 0 16px!important;padding:12px!important;border-radius:12px!important}
  .project-photo-head{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:10px!important}
  .project-photo-head .photo-upload-btn{width:100%!important}
  .project-photo-grid{grid-template-columns:1fr!important}
  .project-photo-image{height:auto!important;aspect-ratio:4/3!important}

  .factory-page-footer{padding:18px max(14px,env(safe-area-inset-right)) calc(18px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))!important;gap:12px!important}
  .factory-footer-brand img{height:38px!important;max-width:145px!important}

  .factory-progress-confirm-overlay{align-items:flex-end!important;padding:12px max(12px,env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))!important}
  .factory-progress-confirm-overlay .factory-progress-confirm-card{width:100%!important;max-width:none!important;border-radius:18px!important;padding:18px 16px!important;gap:12px!important;max-height:calc(100dvh - 24px)!important}
  .factory-progress-confirm-card h3{font-size:20px!important}
  .factory-progress-confirm-card p{font-size:14px!important}
  .factory-progress-confirm-actions{grid-template-columns:1fr 1fr!important;gap:10px!important}
  .factory-progress-confirm-actions button{min-height:50px!important;font-size:16px!important}
}

@media(max-width:390px){
  .factory-portal-mode .factory-page-header{grid-template-columns:90px minmax(0,1fr) 42px!important;gap:5px!important}
  .factory-portal-mode .factory-header-logo img{height:38px!important;max-width:90px!important}
  .factory-portal-mode .factory-header-title h1{font-size:18px!important}
  .factory-project-summary-actions{grid-template-columns:1fr!important}
  .factory-project-summary-actions .badge:last-child:nth-child(odd){grid-column:auto}
  .mfg-progress-steps{grid-template-columns:1fr!important}
  .mfg-progress-step{min-height:60px!important;display:grid!important;grid-template-columns:34px minmax(0,1fr)!important;text-align:left!important;justify-items:start!important;padding:9px 11px!important}
  .mfg-progress-step .mfg-progress-label{text-align:left!important;font-size:12px!important}
}

/* Factory Portal critical mobile rules - V1.33.24 */
html,body.factory-entry{max-width:100%;overflow-x:hidden}
body.factory-entry #login.login-shell{box-sizing:border-box;width:100%;max-width:100%;min-height:100vh;min-height:100dvh;margin:0;padding:max(18px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));display:grid;place-items:center;overflow-x:hidden}
body.factory-entry #login .login-card{box-sizing:border-box;width:min(440px,100%);max-width:calc(100vw - 24px);min-width:0;margin:0 auto;padding:30px 26px 28px;border-radius:20px;overflow:hidden}
body.factory-entry #login .login-logo{display:block;width:min(315px,88vw);max-width:100%;height:auto;margin:0 auto 22px}
body.factory-entry #login .login-card h1{font-size:clamp(27px,7.2vw,34px);line-height:1.08;letter-spacing:-.035em;white-space:normal;overflow-wrap:anywhere;margin:0 0 8px}
body.factory-entry #login .login-card p{font-size:clamp(15px,4.2vw,18px);line-height:1.42;margin:0 0 22px;overflow-wrap:anywhere}
body.factory-entry #login .login-card label{display:block;min-width:0;max-width:100%}
body.factory-entry #login .login-card input,body.factory-entry #login .login-card button{box-sizing:border-box;width:100%;max-width:100%;min-width:0}
body.factory-entry #login .login-card input{font-size:16px;min-height:50px}
body.factory-entry #login .login-card .primary.wide{min-height:52px;font-size:17px}
body.factory-entry #login #loginHint{display:block;line-height:1.35;overflow-wrap:anywhere}
body.factory-entry.factory-auth-checking #login .login-card label,
body.factory-entry.factory-auth-checking #login #loginBtn{visibility:hidden}
body.factory-entry.factory-auth-checking #login #loginHint{margin-top:10px;text-align:center;font-size:15px}
@media(max-width:760px){
  body.factory-entry #login .login-card{padding:24px 18px 22px;max-width:calc(100vw - 24px);border-radius:18px}
  body.factory-entry #login .login-logo{width:min(270px,82vw);margin-bottom:18px}
  body.factory-portal-mode .mfg-project-progress{overflow:visible!important}
  body.factory-portal-mode .mfg-progress-track{display:none!important}
  body.factory-portal-mode .mfg-progress-steps{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;overflow:visible!important}
  body.factory-portal-mode .mfg-progress-step{box-sizing:border-box!important;position:static!important;inset:auto!important;transform:none!important;width:100%!important;max-width:100%!important;min-width:0!important;min-height:72px!important;margin:0!important;padding:10px!important;display:grid!important;grid-template-columns:34px minmax(0,1fr)!important;align-items:center!important;justify-items:start!important;gap:9px!important;border:1px solid #c9dce9!important;border-radius:12px!important;background:#fff!important;box-shadow:none!important;text-align:left!important;overflow:hidden!important}
  body.factory-portal-mode .mfg-progress-step.done{background:#eef8fc!important;border-color:#9bcfe4!important}
  body.factory-portal-mode .mfg-progress-step.current{background:#ddf3fb!important;border-color:#12a8dd!important;box-shadow:inset 0 0 0 1px #12a8dd!important}
  body.factory-portal-mode .mfg-progress-step .mfg-progress-dot{box-sizing:border-box!important;position:static!important;inset:auto!important;transform:none!important;width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;margin:0!important;padding:0!important;display:grid!important;place-items:center!important;border-radius:9px!important;font-size:14px!important;line-height:1!important;aspect-ratio:1/1!important}
  body.factory-portal-mode .mfg-progress-step .mfg-progress-label{position:static!important;transform:none!important;width:auto!important;max-width:100%!important;margin:0!important;font-size:12px!important;line-height:1.2!important;text-align:left!important;white-space:normal!important;overflow-wrap:anywhere!important}
}
@media(max-width:390px){
  body.factory-entry #login.login-shell{padding-left:10px;padding-right:10px}
  body.factory-entry #login .login-card{max-width:calc(100vw - 20px);padding:22px 16px 20px}
  body.factory-entry #login .login-logo{width:min(246px,80vw)}
  body.factory-portal-mode .mfg-progress-steps{grid-template-columns:1fr!important}
  body.factory-portal-mode .mfg-progress-step{min-height:58px!important}
}

/* V1.33.27 - Factory payroll true mobile cards (no horizontal scrollbar) */
@media(max-width:700px){
  .factory-payroll-page.payroll-flow-v2{width:100%;max-width:100%;padding:10px!important;overflow-x:hidden!important;box-sizing:border-box}
  .factory-payroll-page.payroll-flow-v2 *{box-sizing:border-box;max-width:100%}
  .factory-payroll-roster{overflow:visible!important;width:100%}
  .factory-payroll-roster-head{display:none!important}
  .factory-payroll-roster-list{display:grid;gap:12px;padding:12px;background:#f6f9fc}
  .factory-payroll-employee,.factory-payroll-employee.saved{min-width:0!important;width:100%!important;display:grid!important;grid-template-columns:1fr!important;gap:12px!important;align-items:stretch!important;padding:16px!important;border:1px solid #d9e5ee!important;border-radius:14px!important;background:#fff!important;box-shadow:0 2px 8px rgba(17,54,84,.04)}
  .factory-payroll-name{padding-bottom:10px;border-bottom:1px solid #e5edf3}
  .factory-payroll-name strong{font-size:20px;line-height:1.15}
  .factory-payroll-name span{font-size:13px;overflow-wrap:anywhere}
  .factory-payroll-employee label{display:block;width:100%;font-size:12px}
  .factory-payroll-employee input,.factory-payroll-employee select,.factory-payroll-employee textarea{width:100%!important;min-width:0!important;max-width:100%!important;font-size:16px!important}
  .factory-timecard-file input{white-space:normal}
  .factory-payroll-row-actions{width:100%;justify-content:stretch!important;gap:8px}
  .factory-payroll-row-actions button{flex:1 1 auto;min-height:44px}
  .factory-payroll-employee.saved>div:not(.factory-payroll-name):not(.factory-payroll-row-actions){display:flex;justify-content:space-between;align-items:center;gap:12px;padding:5px 0;border-bottom:1px solid #edf2f6}
  .factory-payroll-employee.saved .mini-label{margin:0}
  .factory-payroll-weekbar{width:100%;min-width:0;overflow:hidden}
  .factory-payroll-weekbar .payroll-confirm-week{width:100%;margin:4px 0 0}
  body.factory-portal-mode,body.factory-portal-mode main,body.factory-portal-mode .main,body.factory-portal-mode .view{overflow-x:hidden!important;max-width:100vw!important}
}

/* V1.33.28 Factory Payroll / Payee UX */
.factory-payroll-page .payroll-week-bottom{margin-top:18px!important;margin-bottom:0!important}
.factory-new-payroll-card .payroll-person-save{margin-top:20px!important;display:flex!important;justify-content:flex-end!important;gap:10px!important;flex-wrap:wrap!important}
.factory-new-payroll-card .danger-outline{color:#b42318!important;border-color:#e7aaa4!important;background:#fff!important}
.factory-new-payroll-card .danger-outline:hover{background:#fff2f0!important}
/* 60% larger factory header logo than the prior compact size */
.factory-portal-mode .factory-header-logo img{height:160px!important;max-width:520px!important;width:auto!important}
@media(max-width:950px){.factory-portal-mode .factory-header-logo img{height:132px!important;max-width:430px!important}}
@media(max-width:650px){.factory-portal-mode .factory-header-logo img{height:98px!important;max-width:260px!important}}
@media(max-width:520px){
  .factory-portal-mode .factory-header-logo img{height:70px!important;max-width:180px!important}
  .factory-new-payroll-card .payroll-person-save{display:grid!important;grid-template-columns:1fr!important}
  .factory-new-payroll-card .payroll-person-save button{width:100%!important}
}


/* V1.33.31 Factory menu, persistent session UX, and payroll actions */
.factory-account-icon.factory-hamburger-icon{display:flex!important;flex-direction:column!important;justify-content:center!important;gap:5px!important;width:28px!important;height:28px!important;line-height:normal!important}
.factory-account-icon.factory-hamburger-icon>span{display:block!important;width:27px!important;height:3px!important;border-radius:999px!important;background:currentColor!important}
.factory-account-caret{display:none!important}
.payroll-submission-actions{display:grid!important;grid-template-columns:auto 1fr 1fr!important;gap:10px!important;align-items:center!important}
.payroll-submission-status{display:flex;align-items:center}
.payroll-edit-btn,.payroll-delete-btn{min-height:42px!important;border-radius:10px!important;font-weight:800!important}
.payroll-delete-btn{border:1px solid #efb0aa!important;background:#fff7f6!important;color:#b42318!important}
.factory-edit-payroll-card{border:2px solid #8dcde5!important;background:#fbfeff!important}
.factory-existing-timecards{margin-top:16px;padding-top:14px;border-top:1px solid #dce6ee}
.payroll-existing-files{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
@media(max-width:700px){
  .payroll-submission-actions{grid-template-columns:1fr!important}
  .payroll-submission-status{justify-content:flex-start}
  .payroll-edit-btn,.payroll-delete-btn{width:100%!important}
}

/* v1.33.32 payroll/payee + login polish */
.factory-payroll-edit-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 18px}.factory-payroll-edit-summary>div{padding:14px 16px;border:1px solid #d7e2ec;border-radius:14px;background:#f8fbfe;display:flex;flex-direction:column;gap:5px}.payroll-edit-only-grid{grid-template-columns:1fr}.payroll-edit-only-grid .wide{grid-column:1/-1}@media(max-width:700px){.factory-payroll-edit-summary{grid-template-columns:1fr}}

/* V1.33.33 Factory Payee List */
.factory-payee-page{display:grid;gap:20px;width:100%;max-width:1180px;margin:0 auto}.factory-payee-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;background:#fff;border:1px solid #d5e2ec;border-radius:18px;padding:24px}.factory-payee-head h2{margin:3px 0 5px;color:#0c3156;font-size:32px}.factory-payee-head p{margin:0;color:#6d8193}.factory-payee-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.factory-payee-card{padding:22px!important}.factory-payee-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding-bottom:16px;border-bottom:1px solid #e2eaf0}.factory-payee-card-head h3{margin:0 0 4px;font-size:23px;color:#0d3155}.factory-payee-card-head span{color:#6d8193}.factory-payee-card-head>strong{font-size:20px;color:#0b6f91}.factory-payee-details{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:18px 0}.factory-payee-details .wide{grid-column:1/-1}.factory-payee-details span{display:block;color:#72879a;font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:800;margin-bottom:3px}.factory-payee-details strong{display:block;color:#173955;overflow-wrap:anywhere}.factory-payee-actions{display:flex;gap:10px}.factory-payee-actions>*{flex:1}.factory-portal-mode #payrollEmployees.active-view{padding:24px!important}
@media(max-width:780px){.factory-payee-page{gap:14px}.factory-payee-head{align-items:stretch;flex-direction:column;padding:18px}.factory-payee-head h2{font-size:27px}.factory-payee-grid{grid-template-columns:1fr}.factory-payee-card{padding:18px!important}.factory-payee-details{grid-template-columns:1fr}.factory-payee-details .wide{grid-column:auto}.factory-payee-actions{flex-direction:column}.factory-portal-mode #payrollEmployees.active-view{padding:14px!important}}
