:root{--ink:#36302a;--muted:#71675c;--line:#dcd3c7;--blue:#574c3f;--blue-soft:#ece4da;--paper:#f6f3ec;--amber:#86611b;--amber-soft:#fff6df;--red:#a53838;font-family:"Avenir Next",Avenir,"Century Gothic",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);font-size:16px;line-height:1.5;background:var(--paper)}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:var(--blue)}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #8b7257;outline-offset:3px}button{border:0;background:none;color:inherit}svg{width:20px;height:20px;flex-shrink:0;vertical-align:middle}h1,h2,h3,p{margin:0}button, .button{display:inline-flex;align-items:center;justify-content:center;gap:8px}.primary{background:var(--blue);color:#fff;border:1px solid var(--blue);border-radius:7px;padding:10px 16px;font-weight:600}.primary:hover{background:#36302a}.secondary{background:white;border:1px solid var(--line);border-radius:7px;padding:10px 14px;font-weight:500}.secondary:hover{background:var(--paper);border-color:#b9a58f}.small{padding:7px 10px;font-size:.875rem}.icon-button{width:38px;height:38px;border-radius:6px}.icon-button:hover{background:var(--paper)}.danger{color:var(--red)}.muted{color:var(--muted)}.meta{font-size:.8125rem;color:var(--muted)}
.shell{display:grid;grid-template-columns:246px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:white;border-right:1px solid var(--line);padding:26px 18px;display:flex;flex-direction:column;gap:25px}.brand{display:flex;align-items:center;gap:11px;font-size:1.3rem;font-weight:650;letter-spacing:-.7px;padding:0 10px}.brand-mark{width:33px;height:33px;background:var(--blue);color:white;border-radius:7px;display:grid;place-items:center}.brand-mark svg{width:25px;height:25px}.nav-label{display:flex;align-items:center;justify-content:space-between;padding:0 10px 8px;font-size:.75rem;font-weight:650;letter-spacing:1.3px;color:var(--muted);text-transform:uppercase}.project-item,.nav-item{display:flex;width:100%;align-items:center;justify-content:flex-start;text-align:left;gap:10px;padding:10px;border-radius:6px;font-size:.9375rem;margin-bottom:5px}.project-item span{overflow-wrap:anywhere}.project-item.active,.nav-item.active{color:var(--blue);background:var(--blue-soft);font-weight:600}.project-item:hover,.nav-item:hover{background:var(--paper)}.project-count{margin-left:auto;font-size:.75rem;color:var(--muted)}.sidebar-foot{margin-top:auto;border-top:1px solid var(--line);padding:18px 10px 0;font-size:.8125rem;color:var(--muted)}.sidebar-foot strong{color:var(--ink);display:block;font-size:.875rem;margin-bottom:5px}
.workspace{min-width:0}.topbar{background:white;border-bottom:1px solid var(--line);padding:18px 36px;display:flex;gap:18px;justify-content:space-between;align-items:center}.breadcrumbs{font-size:.875rem;color:var(--muted);display:flex;align-items:center;gap:10px}.breadcrumbs strong{color:var(--ink);font-weight:500}.badge{font-size:.75rem;letter-spacing:.6px;text-transform:uppercase;font-weight:600;color:var(--blue);background:var(--blue-soft);padding:5px 9px;border-radius:4px}.session-banner{background:#ece4da;border-bottom:1px solid #dcd3c7;padding:10px 36px;font-size:.875rem;color:#574c3f;display:flex;align-items:center;gap:10px}.main{max-width:1550px;margin:auto;padding:32px 36px 44px}.project-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px}.eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);font-weight:600;margin-bottom:5px}h1{font-family:inherit;font-size:2.5rem;font-weight:400;line-height:1.2;letter-spacing:-.7px}.heading-actions{display:flex;gap:10px;align-items:center}.room-tabs{display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--line);margin-bottom:28px;flex-wrap:wrap}.room-tab{padding:12px 16px 14px;font-size:.9375rem;border-bottom:3px solid transparent;margin-bottom:-1px}.room-tab.active{color:var(--blue);border-color:var(--blue);font-weight:650}.room-tab .room-number{font-size:.75rem;color:var(--muted);margin-right:7px}.room-add{margin-left:auto;font-size:.875rem;color:var(--muted)}
.room-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:21px}.room-head h2{font-size:1.625rem;font-weight:600;letter-spacing:-.4px}.room-head p{font-size:.875rem;color:var(--muted);margin-top:4px}.view-actions{display:flex;gap:10px}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:24px;align-items:start}.product-list{background:white;border:1px solid var(--line);border-radius:10px;overflow:hidden}.list-head{padding:12px 20px;background:#f6f3ec;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-size:.75rem;font-weight:600;letter-spacing:1px;color:var(--muted);text-transform:uppercase}.product-row{display:grid;grid-template-columns:90px minmax(0,1fr) 38px;gap:18px;padding:20px;border-bottom:1px solid var(--line);align-items:center}.product-row:last-child{border-bottom:0}.product-photo{width:90px;height:105px;object-fit:contain;background:#faf8f3;border-radius:5px}.product-photo.fl os{object-fit:cover}.product-info{min-width:0}.product-category{font-size:.75rem;letter-spacing:.8px;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:3px}.product-title{font-size:1.125rem;font-weight:600;line-height:1.35}.product-maker{font-size:.875rem;color:var(--muted);margin-top:2px}.product-specs{display:flex;gap:6px 15px;flex-wrap:wrap;font-size:.875rem;margin-top:10px;color:#574c3f}.product-specs span{display:inline-flex;gap:5px;align-items:center}.missing{color:var(--amber)}.missing-tag{background:var(--amber-soft);color:var(--amber);border-radius:4px;padding:3px 7px;font-size:.75rem;display:inline-flex;margin-top:9px}.aside-card{border:1px solid var(--line);border-radius:9px;background:white;padding:19px;margin-bottom:16px}.aside-card h3{font-size:1rem;font-weight:600;margin-bottom:14px}.todo{padding:11px 0;border-bottom:1px solid var(--line);font-size:.875rem}.todo:last-child{border:0;padding-bottom:0}.todo button{justify-content:flex-start;text-align:left;color:var(--blue);font-weight:550;margin-bottom:4px}.todo p{color:var(--muted);font-size:.8125rem}.aside-note{color:var(--muted);font-size:.875rem;line-height:1.6}.aside-note svg{color:var(--blue);margin-bottom:10px}.aside-note strong{display:block;color:var(--ink);margin-bottom:5px}.empty{padding:60px 24px;text-align:center;border:1px dashed #b9a58f;border-radius:10px;background:white}.empty h3{margin-bottom:8px}.empty p{color:var(--muted);margin-bottom:20px}.bottom-note{font-size:.8125rem;color:var(--muted);display:flex;gap:8px;align-items:center;margin-top:20px}
.catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.catalog-card{background:white;border:1px solid var(--line);border-radius:9px;overflow:hidden}.catalog-card img{width:100%;height:205px;object-fit:contain;background:#faf8f3}.catalog-body{padding:18px}.catalog-body h3{font-size:1.05rem}.catalog-body p{font-size:.875rem;color:var(--muted);margin:5px 0 15px}.catalog-tools{display:flex;justify-content:space-between;gap:16px;margin:25px 0}.search{display:flex;align-items:center;gap:8px;background:white;border:1px solid var(--line);border-radius:7px;padding:9px 12px;max-width:400px;width:100%}.search input{border:0;outline:none;width:100%;min-width:0;background:none}.history-item{background:white;border:1px solid var(--line);padding:20px;border-radius:8px;display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:12px}.history-item h3{font-size:1rem}.history-item p{font-size:.875rem;color:var(--muted);margin-top:4px}
dialog{border:0;border-radius:12px;padding:0;box-shadow:0 24px 90px #36302a25;width:min(740px,calc(100% - 32px));max-height:90dvh;color:var(--ink);background:white}dialog::backdrop{background:#36302a80;backdrop-filter:blur(2px)}.dialog-top{padding:23px 26px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:16px}.dialog-top h2{font-size:1.4rem;font-weight:600}.dialog-body{padding:25px 26px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.field{display:flex;flex-direction:column;gap:6px;font-size:.875rem;font-weight:550;min-width:0}.field.full{grid-column:1/-1}.field input,.field textarea,.field select{width:100%;padding:10px 11px;border:1px solid #c7b9a8;border-radius:6px;color:var(--ink);background:white;font-size:1rem;font-weight:400}.field textarea{resize:vertical;min-height:85px}.field small{font-weight:400;font-size:.8125rem;color:var(--muted)}.image-editor{display:flex;align-items:center;gap:20px;margin-bottom:23px}.image-editor img{width:90px;height:105px;object-fit:contain;border:1px solid var(--line);border-radius:5px}.image-editor p{font-size:.8125rem;color:var(--muted);margin-top:5px}.dialog-footer{border-top:1px solid var(--line);padding:18px 26px;display:flex;justify-content:flex-end;gap:10px;position:sticky;bottom:0;background:white}.dialog-footer .danger{margin-right:auto}.notice{padding:13px 15px;background:var(--blue-soft);border-radius:6px;font-size:.875rem;color:#574c3f;margin-bottom:20px}.error{color:var(--red);font-size:.875rem;margin-top:12px}.print-options{display:flex;flex-direction:column;gap:12px;margin:20px 0}.print-options label{display:flex;align-items:center;gap:10px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(100px);opacity:0;transition:.2s;background:var(--ink);color:white;padding:12px 20px;border-radius:7px;z-index:20;font-size:.9375rem;max-width:90vw;box-shadow:0 7px 30px #36302a25}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}#print-view{display:none}.placeholder{display:grid;place-items:center;color:#8b7e70}.mobile-title{display:none}
@media(min-width:1500px){.content-grid{grid-template-columns:minmax(0,1fr) 290px}.product-row{grid-template-columns:115px minmax(0,1fr) 38px}.product-photo{width:115px;height:125px}}
@media(max-width:1100px){.content-grid{grid-template-columns:minmax(0,1fr)}.aside{display:grid;grid-template-columns:1fr 1fr;gap:16px}.main{padding:26px}.topbar,.session-banner{padding-left:26px;padding-right:26px}.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shell{grid-template-columns:215px minmax(0,1fr)}.sidebar{padding:24px 12px}.room-head{align-items:center}}
@media(max-width:760px){.shell{display:block}.sidebar{position:relative;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:14px 16px;gap:14px}.sidebar .brand{padding:0}.sidebar .project-nav{display:flex;overflow:auto;gap:6px}.sidebar .nav-label,.sidebar-foot{display:none}.project-item{width:auto;white-space:nowrap;margin:0;padding:7px 9px}.sidebar .main-nav{display:flex;gap:8px}.nav-item{width:auto;margin:0;padding:7px 9px;font-size:.875rem}.topbar{padding:12px 20px}.main{padding:24px 18px}.session-banner{padding:10px 18px;align-items:flex-start;font-size:.8125rem}.project-heading,.room-head{align-items:flex-start;flex-direction:column;gap:18px}h1{font-size:2.1rem}.heading-actions,.view-actions{flex-wrap:wrap}.room-tabs{margin-bottom:22px}.room-tab{padding:10px 8px}.room-add{margin-left:0}.product-row{grid-template-columns:70px minmax(0,1fr) 32px;gap:10px;padding:15px 12px}.product-photo{width:70px;height:94px}.product-title{font-size:1rem}.product-category{font-size:.75rem}.product-specs{font-size:.8125rem;gap:4px 10px}.aside{grid-template-columns:1fr}.catalog-grid{grid-template-columns:1fr 1fr;gap:12px}.catalog-card img{height:150px}.catalog-body{padding:13px}.catalog-body .secondary{width:100%;font-size:.8125rem}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.dialog-body,.dialog-top{padding:20px}.dialog-footer{padding:16px 20px;flex-wrap:wrap}.history-item{align-items:flex-start;flex-direction:column}}
@media(max-width:400px){.catalog-grid{grid-template-columns:1fr}.breadcrumbs{font-size:.8125rem}.badge{font-size:.75rem}.product-row{grid-template-columns:60px minmax(0,1fr) 30px}.product-photo{width:60px}.primary,.secondary{font-size:.875rem}}
@media print{@page{size:A4 landscape;margin:12mm}body{background:white;font-family:Arial,sans-serif;color:#111;font-size:10pt}#app,#editor,#toast{display:none!important}#print-view{display:block}.print-room{break-before:page}.print-room:first-child{break-before:auto}.print-header{display:flex;justify-content:space-between;align-items:end;border-bottom:2px solid #222;padding-bottom:10px;margin-bottom:14px}.print-header h1{font-family:Arial,sans-serif;font-size:21pt;font-weight:600}.print-header h2{font-size:14pt;margin-top:5px}.print-header p{font-size:9pt;margin-top:5px}.print-table{width:100%;border-collapse:collapse;table-layout:fixed}.print-table th{text-align:left;background:#ece4da!important;print-color-adjust:exact;padding:8px;font-size:9pt}.print-table td{border-bottom:1px solid #ccc;padding:9px;vertical-align:top;overflow-wrap:anywhere;white-space:pre-line;font-size:9pt;line-height:1.35}.print-table tr{break-inside:avoid}.print-table img{max-width:80px;max-height:95px;object-fit:contain}.print-table th:nth-child(1){width:12%}.print-table th:nth-child(2){width:16%}.print-table th:nth-child(3){width:14%}.print-table th:nth-child(4){width:30%}.print-table th:nth-child(5){width:28%}.print-note{font-size:8pt;color:#555;margin-top:14px}}

.product-actions{display:flex;flex-direction:column;gap:4px;align-items:center}.product-actions .icon-button{font-size:22px;min-width:36px;min-height:36px}.product-actions .icon-button:disabled{opacity:.3;cursor:default}
.drag-handle{touch-action:none;cursor:grab;color:var(--blue);user-select:none}.drag-handle:active{cursor:grabbing}.product-dragging,.sewing-product-dragging{user-select:none;cursor:grabbing}.drag-source{opacity:.35}.product-row.drop-before,.sewing-product-row.drop-before{box-shadow:inset 0 4px var(--blue)}.product-row.drop-after,.sewing-product-row.drop-after{box-shadow:inset 0 -4px var(--blue)}.product-drag-ghost,.sewing-drag-ghost{position:fixed;z-index:1250;pointer-events:none;background:#fffdf9;border:1px solid #b9aa98;border-radius:7px;box-shadow:0 12px 34px #36302a28;padding:8px 11px;font-size:.8rem;font-weight:600;white-space:nowrap;max-width:min(300px,60vw);overflow:hidden;text-overflow:ellipsis;opacity:.96}

.room-picker{margin:18px 0 24px}.room-picker h3{margin-bottom:6px}.room-group{border:1px solid var(--line);border-radius:8px;padding:12px;margin:12px 0}.room-group legend{font-weight:600;padding:0 6px}.room-choice{display:flex;align-items:center;gap:10px;font-size:14px;padding:8px;cursor:pointer}.room-choice input{width:18px;height:18px;flex-shrink:0;accent-color:var(--blue)}.room-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:220px;overflow:auto;border-top:1px solid var(--line);margin-top:8px}.room-choice:has(input:checked){background:#ece4da;border-radius:4px}@media(max-width:500px){.room-choices{grid-template-columns:1fr}}

/* Refine Design Studio: palette from the studio website; system font fallbacks. */
@media screen{
 .sidebar{background:#ece4da}.topbar{background:var(--paper)}
 .brand{flex-direction:column;align-items:flex-start;gap:13px;padding:7px 10px 22px;border-bottom:1px solid #cfc1b0}
 .refine-logo{display:block;width:180px;max-width:100%;height:auto;object-fit:contain}
 .brand-app{display:block;width:180px;max-width:100%;text-align:center;font-size:.75rem;font-weight:500;letter-spacing:3px;text-transform:uppercase}
 .project-item.active,.nav-item.active{background:#f6f3ec;box-shadow:inset 2px 0 var(--blue)}
 .project-item,.nav-item,.primary,.secondary,.icon-button,.badge,.search,.field input,.field textarea,.field select,.notice,.room-group{border-radius:3px}
 .product-list,.aside-card,.catalog-card,.history-item,.empty,dialog,.product-drag-ghost,.sewing-drag-ghost{border-radius:4px}
 h1{font-weight:300;letter-spacing:-.8px}.room-head h2{font-weight:400}
 .eyebrow,.product-category{letter-spacing:1.4px}.list-head{letter-spacing:1.5px}
 .aside-note.aside-card{background:#ece4da}.session-banner{background:var(--paper)}
 .search:focus-within{outline:3px solid #8b7257;outline-offset:3px}
 input[type=checkbox],input[type=radio]{accent-color:var(--blue)}
}
@media screen and (max-width:760px){.sidebar .brand{flex-direction:row;justify-content:space-between;align-items:center;padding-bottom:14px;gap:16px}.refine-logo{width:150px}.brand-app{font-size:.6875rem;letter-spacing:2px}}

.topbar,.topbar .heading-actions{flex-wrap:wrap}.session-banner{align-items:flex-start}.room-tab[draggable="true"]{cursor:grab}.room-tab[draggable="true"]:active{cursor:grabbing}.room-tab.room-dragging{opacity:.4}.room-tab.room-drop-before{box-shadow:inset 3px 0 var(--blue)}.room-tab.room-drop-after{box-shadow:inset -3px 0 var(--blue)}

.file-menu{display:grid;gap:12px;margin-top:20px}.import-register{max-height:50vh;overflow:auto;margin-top:18px}.register-choice{display:flex;align-items:flex-start;gap:12px;padding:14px 0;border-top:1px solid var(--line)}.register-choice input{margin-top:6px}.register-choice details p{margin:10px 0;overflow-wrap:anywhere}
.product-save-scope{margin-top:20px;margin-bottom:0}.product-scope-footer{flex-wrap:wrap}.product-scope-footer [data-scope-back]{margin-right:auto}

/* Web v1 step 4: usage context and faster catalogue filtering. */
.usage-tag{background:var(--blue-soft);color:var(--blue);padding:2px 7px;border-radius:3px;font-size:.75rem;font-weight:600}.filter-field{display:flex;align-items:center;gap:8px;font-size:.8125rem;color:var(--muted);white-space:nowrap}.filter-field select{background:white;border:1px solid var(--line);padding:9px 30px 9px 10px;color:var(--ink);border-radius:3px}.catalog-tools{align-items:center;flex-wrap:wrap}.catalog-tools .meta{margin-left:auto}.catalog-usage{font-size:.8125rem!important;margin-top:-6px!important;margin-bottom:14px!important}.overview-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 24px}.overview-stats section{background:white;border:1px solid var(--line);padding:17px 18px;display:flex;flex-direction:column;gap:2px}.overview-stats strong{font-size:1.55rem;font-weight:500}.overview-stats span{font-size:.8125rem;color:var(--muted)}.overview-stats .attention strong{color:var(--amber)}.overview-tools{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.overview-tools .meta{margin-left:auto}.overview-list{background:white;border:1px solid var(--line)}.overview-row{display:grid;grid-template-columns:78px minmax(0,1fr) 120px minmax(150px,220px);gap:17px;align-items:center;padding:17px 18px;border-bottom:1px solid var(--line)}.overview-row:last-child{border-bottom:0}.overview-photo{width:78px;height:82px;object-fit:contain;background:#faf8f3}.overview-main{min-width:0}.overview-main h3{font-size:1.025rem}.overview-rooms{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.overview-rooms button{font-size:.75rem;background:var(--paper);border:1px solid var(--line);padding:4px 7px}.overview-rooms button:hover{border-color:#b9a58f}.overview-quantity{display:flex;flex-direction:column;align-items:flex-start}.overview-quantity strong{font-size:1.25rem;font-weight:550}.overview-quantity span,.overview-quantity small{font-size:.75rem;color:var(--muted)}.overview-status{display:flex;flex-direction:column;align-items:flex-end;gap:10px;text-align:right}.overview-status .missing-tag{margin:0}.complete-tag{font-size:.75rem;background:var(--paper);border:1px solid var(--line);padding:3px 7px}.usage-panel{border:1px solid var(--line);background:var(--paper);padding:14px 15px;margin-bottom:20px}.usage-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.usage-panel-head p{font-size:.8125rem;color:var(--muted);margin-top:2px}.usage-panel-head>span{font-size:.75rem;font-weight:600;background:white;border:1px solid var(--line);padding:4px 7px}.usage-room-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:12px}.usage-room-list>div{display:flex;justify-content:space-between;gap:10px;background:white;border:1px solid var(--line);padding:7px 9px;font-size:.8125rem}.usage-room-list>div.current{border-color:#8b7257}.usage-room-list strong{font-weight:600;white-space:nowrap}
@media(max-width:900px){.overview-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-row{grid-template-columns:65px minmax(0,1fr) 95px}.overview-photo{width:65px;height:72px}.overview-status{grid-column:2/-1;flex-direction:row;justify-content:space-between;align-items:center;text-align:left}}
@media(max-width:600px){.overview-stats{grid-template-columns:1fr 1fr}.overview-row{grid-template-columns:55px minmax(0,1fr);gap:12px}.overview-photo{width:55px;height:64px}.overview-quantity{grid-column:2}.overview-status{grid-column:1/-1}.usage-room-list{grid-template-columns:1fr}.catalog-tools .search,.overview-tools .search{max-width:none}.catalog-tools .meta,.overview-tools .meta{margin-left:0;width:100%}}

/* Web v1 step 5: denser workspace, quieter chrome and product editing drawer. */
@media screen and (min-width:761px){
 .shell{grid-template-columns:198px minmax(0,1fr)}
 .sidebar{padding:18px 11px;gap:17px}
 .brand{gap:9px;padding:4px 8px 15px}
 .refine-logo{width:154px}
 .brand-app{width:154px;text-align:center;font-size:.625rem;letter-spacing:2.4px}
 .nav-label{padding:0 8px 5px;font-size:.6875rem}
 .project-item,.nav-item{gap:8px;padding:7px 8px;margin-bottom:2px;font-size:.845rem}
 .project-item svg,.nav-item svg{width:17px;height:17px}
 .sidebar-foot{padding:13px 8px 0;font-size:.75rem;line-height:1.4}
 .sidebar-foot strong{font-size:.8rem}
}
.workspace{background:#fbfaf7}
.topbar{min-height:44px;padding:8px 24px;background:#fbfaf7}
.topbar .breadcrumbs{font-size:.8125rem}
.topbar .heading-actions .secondary{padding:7px 10px;font-size:.8125rem}
.session-banner{padding:7px 24px;font-size:.78rem;min-height:34px;background:#f6f3ec}
.session-banner svg{width:16px;height:16px}
.main{max-width:1640px;padding:20px 24px 36px}
.project-heading{margin-bottom:14px;gap:16px}
.project-heading .eyebrow{margin-bottom:1px;font-size:.6875rem}
h1{font-size:1.85rem;line-height:1.12}
.heading-actions{gap:7px}
.heading-actions .secondary,.heading-actions .primary{padding:8px 11px;font-size:.84rem}
.room-tabs{gap:1px;margin-bottom:17px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}
.room-tab{padding:8px 11px 9px;font-size:.825rem;white-space:nowrap;border-bottom-width:2px}
.room-tab svg{width:16px;height:16px}
.room-tab .room-number{font-size:.68rem;margin-right:5px}
.room-add{margin-left:auto}
.room-head{margin-bottom:12px;align-items:center}
.room-head h2{font-size:1.25rem}
.room-head h2 .icon-button{width:30px;height:30px}
.room-head p{font-size:.78rem;margin-top:1px}
.view-actions{gap:7px}
.view-actions .secondary,.view-actions .primary{padding:8px 11px;font-size:.84rem}
.content-grid{grid-template-columns:minmax(0,1fr) 218px;gap:18px}
.product-list{border-radius:0;background:transparent;border-left:0;border-right:0}
.list-head{padding:8px 12px;background:transparent;font-size:.65rem;letter-spacing:1.3px}
.product-row{grid-template-columns:64px minmax(0,1fr) 118px 62px;gap:13px;padding:10px 8px;min-height:82px;background:white}
.product-photo{width:64px;height:68px;border-radius:2px;background:#f7f5f0}
.product-info{align-self:center}
.product-heading-line{display:flex;align-items:center;gap:8px;min-width:0}
.product-heading-line .product-category{margin:0}
.product-title{font-size:.98rem;line-height:1.25;font-weight:600;margin-top:1px}
.product-maker{font-size:.78rem;margin-top:1px}
.product-specs{margin-top:5px;gap:4px 11px;font-size:.76rem;line-height:1.25}
.product-quick{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;font-size:.75rem;color:var(--muted)}
.product-quick strong{font-size:.95rem;color:var(--ink);font-weight:600}
.product-quick .missing-tag,.product-quick .complete-tag{margin:2px 0 0;font-size:.68rem;padding:2px 5px;white-space:nowrap}
.product-actions{flex-direction:row;justify-content:flex-end;gap:1px}
.product-actions .icon-button{min-width:30px;min-height:30px;width:30px;height:30px}
.product-actions .icon-button svg{width:17px;height:17px}
.product-actions .drag-handle{font-size:18px}
.usage-tag{font-size:.66rem;padding:1px 5px;white-space:nowrap}
.aside-card{padding:13px;border-left:0;border-right:0;border-radius:0;background:transparent}
.aside-card h3{font-size:.9rem;margin-bottom:9px}
.todo{padding:8px 0;font-size:.78rem}
.todo p{font-size:.72rem}
.aside-note{font-size:.78rem;line-height:1.45}
.aside-note.aside-card{background:transparent}
.bottom-note{font-size:.73rem;margin-top:12px}

/* Legacy overview styles retained temporarily; overview UI removed in step 7. */
.overview-stats{grid-template-columns:repeat(4,minmax(0,150px));gap:8px;margin-bottom:14px}
.overview-stats section{padding:10px 12px;background:transparent}
.overview-stats strong{font-size:1.18rem}
.overview-stats span{font-size:.72rem}
.overview-tools{margin-bottom:10px;gap:9px}
.overview-tools .search{max-width:360px;padding:7px 9px}
.overview-list{border-left:0;border-right:0;background:white}
.overview-list-head{display:grid;grid-template-columns:minmax(0,1fr) 96px 190px;gap:12px;padding:7px 10px;border-bottom:1px solid var(--line);font-size:.64rem;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted)}
.overview-list-head span:nth-child(2){text-align:left}.overview-list-head span:nth-child(3){text-align:right}
.overview-row{grid-template-columns:54px minmax(0,1fr) 96px 190px;gap:12px;padding:9px 10px}
.overview-photo{width:54px;height:58px}
.overview-main h3{font-size:.9rem}
.overview-main .product-maker{font-size:.73rem}
.overview-rooms{margin-top:5px;gap:4px}
.overview-rooms button{font-size:.66rem;padding:2px 5px}
.overview-quantity strong{font-size:.95rem}
.overview-quantity span,.overview-quantity small{font-size:.66rem}
.overview-status{gap:6px;flex-direction:row;align-items:center;justify-content:flex-end}
.overview-status .secondary{padding:5px 7px;font-size:.72rem}

/* Catalogue is denser without losing product imagery. */
.catalog-tools{margin:14px 0 12px;gap:9px}
.catalog-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.catalog-card img,.catalog-card .catalog-photo{height:145px}
.catalog-body{padding:11px}
.catalog-body h3{font-size:.92rem}
.catalog-body p{font-size:.76rem;margin:3px 0 9px}
.catalog-body .heading-actions{justify-content:space-between}
.catalog-body .secondary{padding:6px 8px;font-size:.75rem}
.catalog-usage{font-size:.7rem!important;margin-bottom:8px!important}

/* Product editor uses a right-hand drawer instead of a centred modal. */
dialog.product-drawer{position:fixed;inset:0 0 0 auto;margin:0;width:min(570px,100vw);height:100dvh;max-height:none;border-radius:0;border-left:1px solid var(--line);box-shadow:-18px 0 55px #36302a22;overflow:hidden}
dialog.product-drawer::backdrop{background:#36302a3d;backdrop-filter:none}
dialog.product-drawer form{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto}
dialog.product-drawer .dialog-top{padding:15px 18px}
dialog.product-drawer .dialog-top h2{font-size:1.15rem}
dialog.product-drawer .dialog-body{padding:16px 18px;overflow:auto}
dialog.product-drawer .dialog-footer{position:static;padding:12px 18px}
dialog.product-drawer .form-grid{gap:11px 12px}
dialog.product-drawer .field{gap:4px;font-size:.78rem}
dialog.product-drawer .field input,dialog.product-drawer .field textarea,dialog.product-drawer .field select{padding:8px 9px;font-size:.88rem}
dialog.product-drawer .field textarea{min-height:68px}
dialog.product-drawer .image-editor{gap:14px;margin-bottom:14px}
dialog.product-drawer .image-editor img,dialog.product-drawer .edit-photo{width:72px;height:78px}
dialog.product-drawer .notice{padding:9px 11px;margin-bottom:12px;font-size:.78rem}
dialog.product-drawer .usage-panel{padding:10px 11px;margin-bottom:12px}
dialog.product-drawer .usage-room-list{gap:4px;margin-top:8px}
dialog.product-drawer .usage-room-list>div{padding:5px 7px;font-size:.72rem}
dialog.product-drawer .room-picker{margin:12px 0 16px}
dialog.product-drawer .room-group{padding:8px;margin:8px 0}
dialog.product-drawer .room-choice{font-size:.76rem;padding:5px}

@media(max-width:1250px) and (min-width:761px){
 .content-grid{grid-template-columns:minmax(0,1fr)}
 .aside{display:grid;grid-template-columns:1fr 1fr;gap:10px}
 .catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:900px) and (min-width:761px){
 .shell{grid-template-columns:176px minmax(0,1fr)}
 .refine-logo,.brand-app{width:138px}
 .product-row{grid-template-columns:58px minmax(0,1fr) 96px 58px}
 .product-photo{width:58px;height:64px}
 .catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
 .topbar{min-height:42px}.main{padding:18px 14px 30px}.session-banner{padding:7px 14px}
 .project-heading{margin-bottom:12px}h1{font-size:1.65rem}
 .room-tabs{margin-bottom:15px;flex-wrap:nowrap;overflow-x:auto}
 .room-head{gap:10px}.view-actions{gap:6px}
 .product-row{grid-template-columns:54px minmax(0,1fr) 48px;gap:9px;padding:9px 5px}
 .product-photo{width:54px;height:60px}.product-quick{display:none}.product-actions{flex-direction:column}
 .catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 dialog.product-drawer{width:100vw}
 dialog.product-drawer .form-grid{grid-template-columns:1fr}
 dialog.product-drawer .field.full{grid-column:auto}
 .overview-list-head{display:none}
}

/* Web v1 step 6: quieter project chrome, archive/trash and compact administration. */
.project-title{font-weight:600;letter-spacing:-.55px}
.project-section{min-height:0}.sidebar-empty{padding:7px 8px;color:var(--muted);font-size:.76rem}
.compact-add{width:28px;height:28px}.compact-add svg{width:16px;height:16px}
.project-library-links{border-top:1px solid rgba(87,76,63,.14);margin-top:9px;padding-top:7px;display:grid;gap:1px}
.library-link{display:flex;justify-content:space-between;align-items:center;width:100%;padding:6px 8px;border-radius:4px;font-size:.76rem;color:var(--muted);text-align:left}
.library-link:hover,.library-link.active{background:rgba(255,255,255,.45);color:var(--ink)}
.library-link span:last-child{font-size:.68rem;min-width:20px;text-align:right}

.topbar{position:relative}.user-menu-wrap{position:relative}.user-menu-button{padding:6px 8px;border-radius:4px;font-size:.8rem;color:var(--muted);gap:6px}
.user-menu-button:hover,.user-menu-button[aria-expanded="true"]{background:var(--paper);color:var(--ink)}
.user-menu-button span{font-size:.9rem;line-height:1}
.user-menu{position:absolute;right:0;top:calc(100% + 7px);z-index:30;width:205px;background:white;border:1px solid var(--line);box-shadow:0 12px 36px #36302a1e;padding:5px}
.user-menu button{width:100%;justify-content:flex-start;padding:8px 9px;border-radius:3px;font-size:.82rem}
.user-menu button:hover{background:var(--paper)}
.user-menu-note{border-top:1px solid var(--line);margin-top:4px;padding:8px 9px 6px;font-size:.68rem;line-height:1.4;color:var(--muted)}

/* Rooms wrap naturally; add-room always follows the final room. */
.room-tabs{flex-wrap:wrap;overflow:visible;row-gap:3px}.room-add{margin-left:0;color:var(--muted)}

/* Legacy overview summary styles retained temporarily; overview UI removed in step 7. */
.overview-stats{display:flex;flex-wrap:wrap;gap:0;margin:0 0 16px;border-bottom:1px solid var(--line);padding-bottom:10px}
.overview-stats section{background:transparent;border:0;padding:6px 28px 6px 0;margin-right:28px;min-width:105px}
.overview-stats section+section{position:relative}.overview-stats section+section:before{content:"";position:absolute;left:-28px;top:7px;bottom:7px;width:1px;background:var(--line)}
.overview-stats strong{font-size:1.25rem;font-weight:600}.overview-stats span{font-size:.72rem}

.library-heading,.backup-heading{align-items:flex-start}.library-heading .muted,.backup-heading .muted{max-width:720px;margin-top:5px;font-size:.84rem}
.library-list{border-top:1px solid var(--line)}.library-row{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:13px 4px;border-bottom:1px solid var(--line)}
.library-row h3{font-size:.94rem;font-weight:600}.library-row p{font-size:.76rem;color:var(--muted);margin-top:3px}.library-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.compact-empty{padding:42px 20px}

.backup-note{font-size:.78rem;background:#f6f3ec;border-left:2px solid #b9a58f;padding:9px 11px;margin:0 0 14px;max-width:900px}
.backup-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:9px 4px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:.8rem}
.backup-toolbar label{display:flex;gap:8px;align-items:center}.backup-list{margin-top:0}
.backup-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 4px;border-bottom:1px solid var(--line);cursor:pointer}
.backup-row:hover{background:rgba(255,255,255,.42)}.backup-project-main{display:flex;flex-direction:column;gap:1px}.backup-project-main strong{font-size:.88rem}.backup-project-main small{font-size:.72rem;color:var(--muted)}
.status-pill{font-size:.68rem;padding:3px 7px;border:1px solid var(--line);border-radius:999px;color:var(--muted)}.status-pill.archived{background:#f1ede5}.status-pill.active{background:white}

.import-project-list{margin-top:16px;border-top:1px solid var(--line)}.import-project-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}
.import-project-row>label:first-child{display:flex;align-items:center;gap:10px}.import-project-row>label:first-child span{display:flex;flex-direction:column}.import-project-row small{font-size:.72rem;color:var(--muted)}
.conflict-choice{display:flex;align-items:center;gap:7px;font-size:.72rem;color:var(--muted)}.conflict-choice select{border:1px solid var(--line);background:white;padding:6px 8px;font-size:.75rem}

/* Settings stay out of the way in a narrow right-hand panel. */
dialog.settings-drawer{position:fixed;inset:0 0 0 auto;margin:0;width:min(390px,100vw);height:100dvh;max-height:none;border-radius:0;border-left:1px solid var(--line);box-shadow:-18px 0 55px #36302a22;overflow:hidden}
dialog.settings-drawer::backdrop{background:#36302a28;backdrop-filter:none}dialog.settings-drawer form{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto}
dialog.settings-drawer .dialog-top{padding:15px 18px}dialog.settings-drawer .dialog-body{padding:16px 18px;overflow:auto}dialog.settings-drawer .dialog-footer{position:static;padding:12px 18px}
.settings-sections{display:grid;gap:22px}.settings-sections section{display:grid;gap:8px}.settings-sections h3{font-size:.82rem;text-transform:uppercase;letter-spacing:.8px;color:var(--muted)}
.setting-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid var(--line);font-size:.8rem}.setting-row strong{font-weight:600}

@media(max-width:760px){
 .room-tabs{flex-wrap:wrap;overflow:visible;row-gap:2px}
 .room-add{margin-left:0}
 .user-menu{right:-4px;width:190px}
 .overview-stats{display:grid;grid-template-columns:1fr 1fr;gap:0}
 .overview-stats section{margin:0;padding:7px 14px 7px 0}.overview-stats section+section:before{display:none}
 .library-row{align-items:flex-start;flex-direction:column}.library-actions{justify-content:flex-start}
 .backup-heading .heading-actions{width:100%}.backup-heading .heading-actions button{flex:1}
 .backup-toolbar{align-items:flex-start;flex-direction:column;gap:5px}.backup-row{grid-template-columns:auto minmax(0,1fr)}.backup-row .status-pill{grid-column:2;justify-self:start}
 .import-project-row{grid-template-columns:1fr}.conflict-choice{padding-left:26px}
}


/* Web v1 step 8: room names lead; repeated room types collapse to number-only tabs. */
.room-tab .room-number{margin-right:0;margin-left:7px}
.room-tab .room-number:first-child{margin-left:0}
.room-tab .room-name{font-weight:inherit}
.room-heading-number{font-size:.78em;font-weight:400;color:var(--muted);margin-left:5px}
.room-inherit-hint{margin-top:12px;line-height:1.5}
.room-inherit-hint strong{color:var(--ink);font-weight:600}

/* Step 11: room information */
.room-note-button{color:var(--muted);vertical-align:middle}
.room-note-button:hover{color:var(--ink)}
.room-info-editor{margin-top:24px;padding-top:22px;border-top:1px solid var(--line)}
.room-info-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}
.room-info-editor-head h3{font-size:1rem;font-weight:600;margin-bottom:4px}
.room-info-editor-head p{font-size:.8125rem;color:var(--muted);line-height:1.45}
#room-info-list{display:grid;gap:12px}
.room-info-row{border:1px solid var(--line);padding:12px;background:#fff}
.room-info-row textarea{width:100%;min-height:88px;resize:vertical;padding:10px 11px;border:1px solid #c7b9a8;border-radius:3px;color:var(--ink);background:#fff;font-size:.9375rem;line-height:1.45}
.room-info-row-actions{display:flex;align-items:center;gap:8px;margin-top:8px}
.room-info-row-actions select{flex:1;min-width:0;padding:8px 10px;border:1px solid #c7b9a8;border-radius:3px;background:#fff;color:var(--ink);font-size:.875rem}
.room-info-remove{color:var(--muted);flex:0 0 auto}
.room-info-remove:hover{color:var(--red)}
.room-info-row-removed{display:none}

@media(max-width:760px){.room-info-editor-head{flex-direction:column}.room-info-editor-head .secondary{width:100%}}

@media print{
 .print-room-info{border-bottom:1px solid #aaa;padding:0 0 12px;margin:-2px 0 14px}
 .print-room-info h3{font-family:Arial,sans-serif;font-size:9pt;text-transform:uppercase;letter-spacing:.5px;margin:0 0 5px}
 .print-room-info p{font-family:Arial,sans-serif;font-size:10pt;line-height:1.4;white-space:pre-line;margin:4px 0}
}

/* Web v1 step 12: project sections and project-level Materialval. */
.project-group{margin-bottom:3px}.project-item.project-current{font-weight:650;color:var(--ink)}
.project-subnav{display:grid;gap:1px;margin:-2px 0 8px 31px;padding-left:10px;border-left:1px solid var(--line)}
.project-subitem{display:flex;align-items:center;justify-content:space-between;width:100%;padding:5px 7px;text-align:left;border-radius:3px;font-size:.76rem;color:var(--muted)}
.project-subitem:hover{background:var(--paper);color:var(--ink)}.project-subitem.active{color:var(--blue);font-weight:650;background:var(--blue-soft)}
.project-subitem span{font-size:.66rem;font-weight:500;color:var(--muted);margin-left:8px}
.project-section-title{font-size:.8rem;color:var(--muted);margin-top:3px;font-weight:550;letter-spacing:.2px}
.material-intro{font-size:.84rem;max-width:780px;margin:-13px 0 18px}
.material-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 12px}.material-toolbar .search{max-width:470px;padding:8px 10px}
.material-list{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:white}
.material-row{display:grid;grid-template-columns:64px minmax(0,1fr) 150px 34px;gap:14px;align-items:center;padding:10px 8px;border-bottom:1px solid var(--line);min-height:84px}.material-row:last-child{border-bottom:0}
.material-photo{width:64px;height:68px;display:grid;place-items:center;object-fit:contain;background:#f7f5f0}.material-photo svg{width:22px;height:22px;color:var(--muted)}
.material-info{min-width:0}.material-info h3{font-size:.98rem;line-height:1.25;font-weight:600}.material-meta{display:flex;gap:6px 14px;flex-wrap:wrap;margin-top:5px;font-size:.76rem;color:var(--muted)}.material-meta span:first-child{color:var(--ink)}
.material-status{display:flex;justify-content:flex-end;align-items:center}.material-status .missing-tag,.material-status .complete-tag{margin:0;white-space:nowrap}
.material-catalog-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.material-catalog-grid .catalog-photo{width:100%;height:145px;display:grid;place-items:center;object-fit:contain;background:#faf8f3}.material-catalog-grid .catalog-photo svg{width:28px;height:28px;color:var(--muted)}
.material-picker{display:grid;gap:1px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.material-picker-row{display:grid;grid-template-columns:48px minmax(0,1fr) 24px;gap:12px;align-items:center;padding:8px 4px;text-align:left;border-bottom:1px solid var(--line)}.material-picker-row:last-child{border-bottom:0}.material-picker-row:hover{background:var(--paper)}.material-picker-row span{display:flex;flex-direction:column;min-width:0}.material-picker-row strong{font-size:.86rem}.material-picker-row small{font-size:.72rem;color:var(--muted)}.material-picker-photo{width:48px;height:48px;object-fit:contain;display:grid;place-items:center;background:#f7f5f0}.material-picker-photo svg{width:19px;height:19px}
.check-field{flex-direction:row!important;align-items:center!important;gap:10px!important}.check-field input{width:auto!important}

/* Keep room action icons optically aligned. */
.room-head h2{display:flex;align-items:center;flex-wrap:wrap;gap:3px}.room-head h2 .room-heading-number{margin-left:3px;margin-right:2px}.room-head h2 .icon-button{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle}.room-head h2 .icon-button svg{width:17px;height:17px;display:block}.room-note-button svg{transform:translateY(.5px)}

@media(max-width:1000px){.material-catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.material-row{grid-template-columns:58px minmax(0,1fr) 120px 32px}.material-photo{width:58px;height:62px}}
@media(max-width:760px){.project-subnav{margin-left:20px}.material-toolbar{align-items:flex-start;flex-direction:column}.material-toolbar .search{max-width:none}.material-row{grid-template-columns:52px minmax(0,1fr) 32px;gap:10px}.material-photo{width:52px;height:56px}.material-status{display:none}.material-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.material-intro{margin-top:-5px}.project-heading .heading-actions{width:100%;flex-wrap:wrap}.project-heading .heading-actions .primary,.project-heading .heading-actions .secondary{flex:1 1 auto}}
@media(max-width:430px){.material-catalog-grid{grid-template-columns:1fr}}

/* Web v1 step 13: cleaner navigation and drag-and-drop images. */
.image-editor.image-drop-zone{transition:background .15s ease,outline-color .15s ease}.image-editor.image-drop-zone.drop-active{background:var(--blue-soft);outline:2px dashed var(--blue);outline-offset:5px}.image-editor.image-drop-zone p:first-of-type{max-width:300px}.brand-app{text-align:center}


/* Web v1 step 14: quieter workspace and dismissible dialogs. */
.topbar{justify-content:flex-end}
.topbar-spacer{display:none}
.content-grid{grid-template-columns:minmax(0,1fr)}
@media(max-width:400px){.breadcrumbs{display:none}}

/* Web v1 step 15: design refinement – navigation, list rhythm, status and image drop zone. */

/* Sidebar: active project section is clear without becoming a dashboard card. */
.project-subnav{gap:2px;border-left-color:rgba(87,76,63,.18)}
.project-subitem{position:relative;padding:6px 9px 6px 11px;border-radius:0;background:transparent!important;color:var(--muted)}
.project-subitem::before{content:"";position:absolute;left:-11px;top:5px;bottom:5px;width:2px;background:transparent}
.project-subitem.active{color:var(--ink);font-weight:650}
.project-subitem.active::before{background:var(--ink)}
.project-subitem:hover{color:var(--ink);background:rgba(255,255,255,.24)!important}

/* Quieter system chrome. */
.topbar{min-height:38px;padding:5px 22px}
.user-menu-button{font-size:.75rem;padding:5px 7px}
.session-banner{min-height:29px;padding:5px 24px;font-size:.72rem;background:#f7f4ee;color:#6e6255}
.session-banner svg{width:14px;height:14px;opacity:.78}
.session-banner .secondary.small,.session-banner .primary.small{padding:4px 7px;font-size:.7rem}
.main{padding-top:17px}

/* Project header: still a clear H1, but less vertically dominant. */
.project-heading{margin-bottom:11px;align-items:center}
.project-title{font-size:1.82rem;line-height:1.05}
.project-heading .heading-actions .secondary,.project-heading .heading-actions .primary{padding:7px 10px;font-size:.8rem}
.project-heading .heading-actions .primary{box-shadow:none}

/* Room navigation: room families read as groups and wrap naturally. */
.room-tabs{gap:2px 3px;row-gap:6px;margin-bottom:15px;padding-bottom:0;align-items:center}
.room-tab{position:relative;padding:7px 8px 8px;border-bottom:2px solid transparent;border-radius:3px 3px 0 0;color:#665c51;transition:background .12s ease,color .12s ease,border-color .12s ease}
.room-tab.group-start:not(:first-child){margin-left:17px}
.room-tab.group-start:not(:first-child)::before{content:"";position:absolute;left:-10px;top:8px;bottom:8px;width:1px;background:rgba(87,76,63,.15)}
.room-tab .room-name{font-weight:590;color:var(--ink)}
.room-tab .room-number{font-size:.72rem;color:#776b5e;margin-left:7px}
.room-tab:not(.active):hover{background:rgba(236,228,218,.42);color:var(--ink)}
.room-tab.active{background:#f1ece4;color:var(--ink);border-color:#5b5146;font-weight:650}
.room-tab.active .room-number{color:var(--ink)}
.room-add{margin-left:9px!important;padding-left:9px;padding-right:10px;color:#6f6458;border-bottom-color:transparent}
.room-add:hover{background:rgba(236,228,218,.42)}

/* Room heading remains the working context, not a repeated nav label. */
.room-head{margin-bottom:10px;min-height:38px}
.room-head h2{font-size:1.22rem;line-height:1.2}
.room-head h2 .icon-button{opacity:.76;transition:opacity .12s ease,background .12s ease}
.room-head h2 .icon-button:hover{opacity:1;background:#f1ece4}
.view-actions .secondary{background:transparent}

/* Product list: fixed scanning columns and quieter metadata. */
.product-list{border:0;background:transparent}
.product-list-head{display:grid;grid-template-columns:minmax(0,1fr) 168px 54px 64px;gap:14px;padding:7px 7px 6px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:transparent}
.product-list-head span:nth-child(2){text-align:left}
.product-list-head span:nth-child(3){text-align:center}
.product-row{grid-template-columns:64px minmax(0,1fr) 168px 54px 64px;gap:14px;padding:10px 7px;min-height:82px;background:transparent;border-bottom:1px solid rgba(195,181,165,.62);transition:background .12s ease}
.product-row:hover{background:rgba(255,255,255,.58)}
.product-row:last-child{border-bottom:1px solid var(--line)}
.product-photo{align-self:center}
.product-category{font-size:.67rem;letter-spacing:1.15px;color:#71675c;font-weight:650}
.product-title{font-size:.98rem;font-weight:650;color:#37312b}
.product-maker{font-size:.74rem;color:#82776b}
.product-specs{font-size:.73rem;color:#6f655a;margin-top:4px}
.product-heading-line{gap:7px}
.usage-tag{font-size:.63rem;font-weight:550;padding:2px 6px;border-radius:999px;background:#eee8df;color:#6d6256}
.product-status{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;min-width:0;font-size:.72rem;color:#776c60}
.product-owner{line-height:1.2}
.product-quantity{display:flex;align-items:baseline;justify-content:center;gap:3px;color:#3d3731}
.product-quantity strong{font-size:.9rem;font-weight:650}
.product-quantity span{font-size:.7rem;color:#756a5e}
.status-chip{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:3px 7px;border-radius:999px;font-size:.65rem;line-height:1.15;border:1px solid transparent;white-space:nowrap}
.status-review{background:#fbf0d8;color:#7e5d18;border-color:#f0dfb7}
.status-complete{background:#f1efe9;color:#6a635b;border-color:#dfd9cf}
.status-inline-missing{color:#8a641f}
.product-actions{height:100%;display:flex;align-items:center;justify-content:flex-end;gap:2px;padding-left:3px}
.product-actions .icon-button{color:#756a5e;opacity:.68;border-radius:4px;transition:opacity .12s ease,background .12s ease,color .12s ease}
.product-row:hover .product-actions .icon-button,.product-actions .icon-button:focus-visible{opacity:1}
.product-actions .icon-button:hover{background:#eee8df;color:#332e29}
.product-actions .drag-handle{font-size:17px;color:#887d71}

/* Keep material rows in the same typographic family. */
.material-row{transition:background .12s ease;background:transparent}
.material-row:hover{background:rgba(255,255,255,.58)}
.material-info h3{font-weight:650;color:#37312b}
.material-info .product-maker,.material-meta{color:#81766a}
.material-status .missing-tag,.material-status .complete-tag{border-radius:999px}

/* Large, calm image drop zone used by products and materials. */
dialog.product-drawer .image-editor.image-drop-zone,.image-editor.image-drop-zone{display:grid;grid-template-columns:118px minmax(0,1fr);align-items:stretch;gap:0;margin:0 0 18px;border:1px dashed #b9aa98;border-radius:4px;background:#faf8f4;min-height:118px;overflow:hidden;outline:none;cursor:pointer;transition:border-color .15s ease,background .15s ease}
.image-editor.image-drop-zone:focus-visible{outline:2px solid #8b7257;outline-offset:2px}
.image-editor.image-drop-zone.drop-active{background:#f1ebe2;outline:none;border-color:#7d6a55}
.image-drop-preview{display:grid;place-items:center;min-width:0;background:#f3efe8;border-right:1px solid #e0d7cb}
.image-drop-preview .edit-photo,.image-drop-preview img.edit-photo{width:100%!important;height:100%!important;min-height:116px;max-height:175px;border:0!important;border-radius:0!important;object-fit:contain;background:#f3efe8}
.image-drop-preview .placeholder svg{width:25px;height:25px;color:#8c7d6d}
.image-drop-copy{min-width:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:16px 18px;color:#6f6458}
.image-drop-empty,.image-drop-filled{display:flex;flex-direction:column;align-items:center;gap:5px}
.image-drop-empty[hidden],.image-drop-filled[hidden]{display:none}
.image-drop-empty>svg{width:27px;height:27px;margin-bottom:2px;color:#796a5b}
.image-drop-empty strong{font-size:.88rem;color:#413a34;font-weight:650}
.image-drop-empty span,.image-drop-filled>span{font-size:.76rem;color:#817569}
.image-drop-copy label,.image-drop-actions button{color:#5e5042;text-decoration:underline;text-underline-offset:2px;cursor:pointer;font-weight:600}
.image-drop-copy small{font-size:.67rem;color:#918579;margin-top:9px}
.image-drop-copy [role="status"]{font-size:.7rem;color:#796d61;margin-top:5px;min-height:1em}
.image-drop-actions{display:flex;gap:13px;align-items:center;margin-top:6px;font-size:.76rem}
.image-drop-actions button{padding:0}
.image-editor.image-drop-zone.has-image .image-drop-preview{background:#fff}

/* Remove leftover status styles from the previous product grid. */
.product-quick{display:none!important}

@media(max-width:1100px) and (min-width:761px){
 .product-list-head{grid-template-columns:minmax(0,1fr) 136px 50px 60px}
 .product-row{grid-template-columns:58px minmax(0,1fr) 136px 50px 60px;gap:11px}
}
@media(max-width:760px){
 .project-subitem.active::before{left:-8px}
 .room-tab.group-start:not(:first-child){margin-left:10px}
 .room-tab.group-start:not(:first-child)::before{left:-6px}
 .product-list-head{display:none}
 .product-row{grid-template-columns:54px minmax(0,1fr) 56px;gap:9px;padding:9px 5px}
 .product-status{grid-column:2;flex-direction:row;align-items:center;gap:7px;flex-wrap:wrap}
 .product-quantity{grid-column:3;grid-row:1;align-self:center}
 .product-actions{grid-column:3;grid-row:2;align-self:start;height:auto}
 dialog.product-drawer .image-editor.image-drop-zone,.image-editor.image-drop-zone{grid-template-columns:92px minmax(0,1fr);min-height:104px}
 .image-drop-preview .edit-photo,.image-drop-preview img.edit-photo{min-height:102px}
 .image-drop-copy{padding:12px 10px}
}

/* Step 15 alignment corrections. */
.product-list-head{grid-template-columns:64px minmax(0,1fr) 168px 54px 64px}
.product-list-head span:first-child{grid-column:1/3}
.product-list-head span:nth-child(2){grid-column:3}
.product-list-head span:nth-child(3){grid-column:4}
.product-list-head span:nth-child(4){grid-column:5}
.image-editor.image-drop-zone:not(.has-image){grid-template-columns:1fr;min-height:148px}
.image-editor.image-drop-zone:not(.has-image) .image-drop-preview{display:none}
@media(max-width:1100px) and (min-width:761px){
 .product-list-head{grid-template-columns:58px minmax(0,1fr) 136px 50px 60px}
}
@media(max-width:760px){
 dialog.product-drawer .image-editor.image-drop-zone:not(.has-image),.image-editor.image-drop-zone:not(.has-image){grid-template-columns:1fr;min-height:134px}
}


/* Step 16: separate owner/status columns and equal product-information typography. */
.product-list-head{grid-template-columns:64px minmax(0,1fr) 116px 138px 54px 64px}
.product-list-head span:first-child{grid-column:1/3}
.product-list-head span:nth-child(2){grid-column:3;text-align:left}
.product-list-head span:nth-child(3){grid-column:4;text-align:left}
.product-list-head span:nth-child(4){grid-column:5;text-align:center}
.product-list-head span:nth-child(5){grid-column:6}
.product-row{grid-template-columns:64px minmax(0,1fr) 116px 138px 54px 64px}
.product-data{display:flex;flex-direction:column;gap:2px;margin-top:4px}
.product-data p{font-size:.76rem;font-weight:400;line-height:1.28;color:#73695e;margin:0}
.product-data .status-inline-missing{color:#8a641f}
.product-title,.product-maker,.product-specs{font-size:inherit;font-weight:inherit}
.product-owner-column{display:flex;align-items:center;min-width:0;font-size:.76rem;font-weight:400;line-height:1.3;color:#73695e}
.product-status{display:flex;align-items:center;justify-content:flex-start;min-width:0}
.product-status .status-chip{margin:0}
@media(max-width:1100px) and (min-width:761px){
 .product-list-head{grid-template-columns:58px minmax(0,1fr) 96px 116px 50px 60px}
 .product-row{grid-template-columns:58px minmax(0,1fr) 96px 116px 50px 60px;gap:10px}
}
@media(max-width:760px){
 .product-row{grid-template-columns:54px minmax(0,1fr) 56px}
 .product-owner-column{grid-column:2;grid-row:2;align-self:center}
 .product-status{grid-column:2;grid-row:3;align-self:start}
 .product-quantity{grid-column:3;grid-row:1;align-self:center}
 .product-actions{grid-column:3;grid-row:2 / span 2;align-self:center;height:auto}
}

/* Step 17: project edit icon and description/comment scanning columns. */
.project-title-wrap{display:flex;align-items:center;gap:7px;min-width:0}
.project-title-wrap .project-edit-button{flex:0 0 auto;color:#665b50;opacity:.76;border-radius:4px;transition:opacity .12s ease,background .12s ease,color .12s ease}
.project-title-wrap .project-edit-button:hover,.project-title-wrap .project-edit-button:focus-visible{opacity:1;background:#eee8df;color:#332e29}

.product-list-head{grid-template-columns:64px minmax(220px,1fr) minmax(125px,.58fr) minmax(125px,.58fr) 104px 126px 54px 64px}
.product-list-head span:first-child{grid-column:1/3}
.product-list-head span:nth-child(2){grid-column:3;text-align:left}
.product-list-head span:nth-child(3){grid-column:4;text-align:left}
.product-list-head span:nth-child(4){grid-column:5;text-align:left}
.product-list-head span:nth-child(5){grid-column:6;text-align:left}
.product-list-head span:nth-child(6){grid-column:7;text-align:center}
.product-list-head span:nth-child(7){grid-column:8}
.product-row{grid-template-columns:64px minmax(220px,1fr) minmax(125px,.58fr) minmax(125px,.58fr) 104px 126px 54px 64px}
.product-text-column{align-self:center;min-width:0;font-size:.73rem;font-weight:400;line-height:1.35;color:#73695e}
.product-text-column span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}
.product-text-column:empty::after,.product-text-column span:empty::after{content:"—";color:#a2988c}

@media(max-width:1300px) and (min-width:761px){
 .product-list-head{grid-template-columns:58px minmax(190px,1fr) minmax(105px,.5fr) minmax(105px,.5fr) 88px 108px 50px 58px;gap:9px}
 .product-row{grid-template-columns:58px minmax(190px,1fr) minmax(105px,.5fr) minmax(105px,.5fr) 88px 108px 50px 58px;gap:9px}
}
@media(max-width:1000px) and (min-width:761px){
 .product-list-head{grid-template-columns:58px minmax(180px,1fr) 92px 96px 50px 58px}
 .product-list-head span:nth-child(2),.product-list-head span:nth-child(3){display:none}
 .product-list-head span:nth-child(4){grid-column:3}.product-list-head span:nth-child(5){grid-column:4}.product-list-head span:nth-child(6){grid-column:5}.product-list-head span:nth-child(7){grid-column:6}
 .product-row{grid-template-columns:58px minmax(180px,1fr) 92px 96px 50px 58px}
 .product-description-column,.product-comment-column{grid-column:2;align-self:start;margin-top:3px}
 .product-description-column{grid-row:2}.product-comment-column{grid-row:3}
 .product-owner-column{grid-column:3;grid-row:1 / span 3}.product-status{grid-column:4;grid-row:1 / span 3}.product-quantity{grid-column:5;grid-row:1 / span 3}.product-actions{grid-column:6;grid-row:1 / span 3}
 .product-text-column::before{content:attr(data-label) ": ";font-weight:600;color:#665b50}
 .product-text-column span{display:inline;-webkit-line-clamp:unset;overflow:visible}
}
@media(max-width:760px){
 .project-title-wrap{gap:5px}
 .product-description-column,.product-comment-column{grid-column:2;align-self:start;margin-top:2px}
 .product-description-column{grid-row:2}.product-comment-column{grid-row:3}
 .product-owner-column{grid-column:2;grid-row:4;align-self:center}
 .product-status{grid-column:2;grid-row:5;align-self:start}
 .product-quantity{grid-column:3;grid-row:1;align-self:center}
 .product-actions{grid-column:3;grid-row:2 / span 4;align-self:center;height:auto}
 .product-text-column::before{content:attr(data-label) ": ";font-weight:600;color:#665b50}
 .product-text-column span{display:inline;-webkit-line-clamp:unset;overflow:visible}
}

/* Step 18/19: project-wide room preview for quick QA before PDF. */
.preview-heading{position:sticky;top:0;z-index:24;margin-bottom:12px;padding:9px 0 10px;background:#fbfaf7;border-bottom:1px solid var(--line)}
.preview-heading .heading-actions .secondary{white-space:nowrap}
.preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:9px 0 12px;border-bottom:1px solid var(--line);margin-bottom:22px}
.preview-summary{display:flex;align-items:baseline;gap:5px 9px;color:var(--muted);font-size:.76rem;flex-wrap:wrap}
.preview-summary strong{font-size:.95rem;font-weight:650;color:var(--ink);margin-left:5px}
.preview-summary strong:first-child{margin-left:0}
.preview-summary strong.attention{color:var(--amber)}
.preview-filter{display:inline-flex;border:1px solid var(--line);padding:2px;background:#f8f5ef;border-radius:4px;flex:0 0 auto}
.preview-filter button{padding:6px 9px;border-radius:2px;font-size:.74rem;color:var(--muted)}
.preview-filter button:hover{color:var(--ink)}
.preview-filter button.active{background:white;color:var(--ink);box-shadow:0 0 0 1px rgba(87,76,63,.05)}
.project-preview{display:grid;gap:30px}
.preview-room{min-width:0;scroll-margin-top:116px}
.preview-room-head{position:sticky;top:var(--preview-heading-height,67px);z-index:20;display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:0;padding:8px 0;background:#fbfaf7;border-bottom:1px solid var(--line)}
.preview-room-head h2{font-size:1.15rem;line-height:1.25;font-weight:600;letter-spacing:-.15px}
.preview-room-notes{display:grid;gap:2px;padding:8px 0 9px;max-width:900px;color:var(--muted);font-size:.73rem;line-height:1.45}
.preview-room-state{font-size:.68rem;color:#665b50;border:1px solid var(--line);border-radius:999px;padding:3px 8px;white-space:nowrap;background:#f6f3ec}
.preview-room-state.attention{color:var(--amber);background:var(--amber-soft);border-color:#e7c984}
.preview-list{border-top:1px solid var(--line)}
.preview-list-head{display:grid;grid-template-columns:64px minmax(220px,1fr) minmax(125px,.58fr) minmax(125px,.58fr) 104px 126px 54px;gap:14px;padding:7px 7px 6px;border-bottom:1px solid var(--line);font-size:.66rem;font-weight:650;letter-spacing:.8px;text-transform:uppercase;color:var(--muted)}
.preview-list-head span:first-child{grid-column:1/3}
.preview-list-head span:nth-child(2){grid-column:3}.preview-list-head span:nth-child(3){grid-column:4}.preview-list-head span:nth-child(4){grid-column:5}.preview-list-head span:nth-child(5){grid-column:6}.preview-list-head span:nth-child(6){grid-column:7;text-align:center}
.preview-product-row{display:grid;grid-template-columns:64px minmax(220px,1fr) minmax(125px,.58fr) minmax(125px,.58fr) 104px 126px 54px;gap:14px;align-items:center;padding:10px 7px;border-bottom:1px solid rgba(195,181,165,.62);cursor:pointer;transition:background .12s ease;outline:none}
.preview-product-row:hover,.preview-product-row:focus-visible{background:rgba(255,255,255,.64)}
.preview-product-row:focus-visible{box-shadow:inset 0 0 0 1px #887663}
.preview-product-row .product-photo{width:64px;height:72px}
.preview-product-row .product-info{align-self:center}
.preview-product-row .product-owner-column,.preview-product-row .product-status,.preview-product-row .product-quantity{align-self:center}
.preview-product-row .product-quantity{justify-content:center}
.preview-room-empty{padding:13px 7px;color:var(--muted);font-size:.76rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

@media(max-width:1300px) and (min-width:1001px){
 .preview-list-head,.preview-product-row{grid-template-columns:58px minmax(190px,1fr) minmax(105px,.5fr) minmax(105px,.5fr) 88px 108px 50px;gap:9px}
 .preview-product-row .product-photo{width:58px;height:66px}
}
@media(max-width:1000px) and (min-width:761px){
 .preview-list-head{grid-template-columns:58px minmax(180px,1fr) 92px 96px 50px;gap:10px}
 .preview-list-head span:nth-child(2),.preview-list-head span:nth-child(3){display:none}
 .preview-list-head span:nth-child(4){grid-column:3}.preview-list-head span:nth-child(5){grid-column:4}.preview-list-head span:nth-child(6){grid-column:5}
 .preview-product-row{grid-template-columns:58px minmax(180px,1fr) 92px 96px 50px;gap:10px}
 .preview-description-column,.preview-comment-column{grid-column:2;align-self:start;margin-top:2px}
 .preview-description-column{grid-row:2}.preview-comment-column{grid-row:3}
 .preview-product-row .product-owner-column{grid-column:3;grid-row:1 / span 3}
 .preview-product-row .product-status{grid-column:4;grid-row:1 / span 3}
 .preview-product-row .product-quantity{grid-column:5;grid-row:1 / span 3}
 .preview-product-row .product-text-column::before{content:attr(data-label) ": ";font-weight:600;color:#665b50}
 .preview-product-row .product-text-column span{display:inline;-webkit-line-clamp:unset;overflow:visible}
}
@media(max-width:760px){
 .preview-toolbar{align-items:flex-start;flex-direction:column;margin-bottom:18px}
 .preview-filter{width:100%}.preview-filter button{flex:1}
 .project-preview{gap:24px}
 .preview-room-head{gap:10px}.preview-room-state{margin-top:1px}
 .preview-list-head{display:none}
 .preview-product-row{grid-template-columns:54px minmax(0,1fr) 56px;gap:9px;padding:9px 5px}
 .preview-product-row .product-photo{width:54px;height:60px}
 .preview-description-column,.preview-comment-column{grid-column:2;align-self:start;margin-top:2px}
 .preview-description-column{grid-row:2}.preview-comment-column{grid-row:3}
 .preview-product-row .product-owner-column{grid-column:2;grid-row:4;align-self:center}
 .preview-product-row .product-status{grid-column:2;grid-row:5;align-self:start}
 .preview-product-row .product-quantity{grid-column:3;grid-row:1;align-self:center}
 .preview-product-row .product-text-column::before{content:attr(data-label) ": ";font-weight:600;color:#665b50}
 .preview-product-row .product-text-column span{display:inline;-webkit-line-clamp:unset;overflow:visible}
}

@media(max-width:760px){.preview-heading{top:0;padding-top:7px}}

/* Step 20: keep the active room context visible while scrolling long product lists. */
.room-head{position:sticky;top:0;z-index:18;padding:8px 0 9px;background:#fbfaf7;border-bottom:1px solid var(--line)}
@media(max-width:760px){.room-head{position:static}}

/* Step 21: Materialval follows the same compact information hierarchy as room products. */
.material-info{min-width:0}
.material-data{display:flex;flex-direction:column;gap:2px;margin-top:4px}
.material-data p{font-size:.76rem;font-weight:400;line-height:1.28;color:#73695e;margin:0}
.material-data .status-inline-missing{color:#8a641f}
.material-info h3,.material-info .product-maker,.material-meta{font-size:inherit;font-weight:inherit}

/* Step 22: Programa-inspired information density with Refine's warm editorial palette. */
.project-row-wrap{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:3px;min-width:0}
.project-row-wrap .project-item{min-width:0;margin:0}
.project-drag-handle{width:22px;height:30px;padding:0;font-size:15px;line-height:1;color:#8a7f73;opacity:.18;cursor:grab;touch-action:none;transition:opacity .12s ease,background .12s ease,color .12s ease}
.project-group:hover .project-drag-handle,.project-drag-handle:focus-visible{opacity:.82}
.project-drag-handle:hover{background:#eee8df;color:#4d443b}.project-drag-handle:active{cursor:grabbing}
.project-drag-source{opacity:.35}.project-dragging{user-select:none;cursor:grabbing}
.project-group.project-drop-before{box-shadow:inset 0 2px #75634f}.project-group.project-drop-after{box-shadow:inset 0 -2px #75634f}
.project-drag-ghost{position:fixed;z-index:1200;pointer-events:none;background:#fffdf9;border:1px solid #b9aa98;border-radius:7px;box-shadow:0 12px 34px #36302a28;padding:3px;opacity:.95;transform:translateY(-50%)}

/* Product rows read as calm working records rather than a boxed dashboard. */
.product-list{display:grid;gap:8px;background:transparent;overflow:visible}
.product-list-head{margin-bottom:1px;border-top:0;padding:5px 10px 4px;border-bottom:1px solid rgba(195,181,165,.72)}
.product-row{border:1px solid rgba(195,181,165,.72)!important;border-radius:8px!important;background:#fffdfa!important;padding:10px 11px;box-shadow:0 1px 0 rgba(57,49,42,.025);transition:border-color .12s ease,background .12s ease,box-shadow .12s ease}
.product-row:hover{background:#fff!important;border-color:#b6a693!important;box-shadow:0 2px 8px rgba(57,49,42,.045)}
.product-row:last-child{border-bottom:1px solid rgba(195,181,165,.72)!important}
.product-photo{border-radius:7px;background:#f3efe8;overflow:hidden}
.product-info{padding:1px 0}
.product-category{margin-bottom:5px;letter-spacing:1.08px}
.product-data{gap:2px}
.product-text-column,.product-owner-column{color:#70665c}
.product-actions{gap:4px}
.product-actions .icon-button{width:30px;height:30px}
.status-chip{padding:4px 8px}

/* Materialval mirrors the same row/card logic and uses its own relevant columns. */
.material-list{display:grid;gap:8px;border:0;background:transparent}
.material-list-head{display:grid;grid-template-columns:64px minmax(210px,1fr) minmax(135px,.58fr) minmax(135px,.58fr) 116px 44px;gap:14px;padding:5px 10px 4px;border-bottom:1px solid rgba(195,181,165,.72);font-size:.66rem;font-weight:650;letter-spacing:.9px;text-transform:uppercase;color:var(--muted)}
.material-list-head span:first-child{grid-column:1/3}.material-list-head span:nth-child(2){grid-column:3}.material-list-head span:nth-child(3){grid-column:4}.material-list-head span:nth-child(4){grid-column:5}.material-list-head span:nth-child(5){grid-column:6}
.material-row{grid-template-columns:64px minmax(210px,1fr) minmax(135px,.58fr) minmax(135px,.58fr) 116px 44px;gap:14px;min-height:84px;padding:10px 11px;border:1px solid rgba(195,181,165,.72)!important;border-radius:8px!important;background:#fffdfa!important;box-shadow:0 1px 0 rgba(57,49,42,.025);transition:border-color .12s ease,background .12s ease,box-shadow .12s ease}
.material-row:hover{background:#fff!important;border-color:#b6a693!important;box-shadow:0 2px 8px rgba(57,49,42,.045)}
.material-photo{border-radius:7px;background:#f3efe8;overflow:hidden}
.material-text-column{align-self:center;min-width:0;font-size:.73rem;line-height:1.35;color:#70665c}
.material-text-column span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}
.material-text-column span:empty::after{content:"—";color:#a2988c}
.material-status{justify-content:flex-start}
.material-actions{display:flex;justify-content:flex-end;align-items:center;height:100%}
.material-actions .icon-button{width:30px;height:30px;color:#756a5e;opacity:.7;border-radius:4px;transition:opacity .12s ease,background .12s ease,color .12s ease}
.material-row:hover .material-actions .icon-button,.material-actions .icon-button:focus-visible{opacity:1}
.material-actions .icon-button:hover{background:#eee8df;color:#332e29}

/* A more composed floating editor for both products and materials. */
dialog.product-drawer{inset:10px 10px 10px auto;width:min(720px,calc(100vw - 20px));height:auto;max-height:none;border:1px solid #d4c8ba;border-radius:14px;box-shadow:-12px 16px 48px rgba(54,48,42,.18);background:#fff;overflow:hidden}
dialog.product-drawer::backdrop{background:rgba(54,48,42,.26);backdrop-filter:blur(1px)}
dialog.product-drawer form{height:100%;max-height:calc(100vh - 20px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#fff}
dialog.product-drawer .dialog-top{padding:17px 22px 11px;border-bottom:0;background:#fff}
dialog.product-drawer .dialog-top h2{font-size:1.22rem;font-weight:650;letter-spacing:-.2px}
dialog.product-drawer .dialog-top .icon-button{width:34px;height:34px;border:1px solid transparent;border-radius:7px}
dialog.product-drawer .dialog-top .icon-button:hover{background:#f3efe8;border-color:#e2d9cd}
dialog.product-drawer .dialog-body{padding:8px 22px 24px;overflow:auto;background:#fff}
dialog.product-drawer .dialog-footer{padding:13px 22px;border-top:1px solid #ddd4c8;background:#fff;gap:9px;box-shadow:0 -4px 16px rgba(54,48,42,.025)}
dialog.product-drawer .form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px 16px}
dialog.product-drawer .field{gap:6px;font-size:.78rem;font-weight:550;color:#5e554c}
dialog.product-drawer .field input,dialog.product-drawer .field textarea,dialog.product-drawer .field select{padding:11px 12px;border:1px solid #d8cec2;border-radius:7px;background:#fff;font-size:.93rem;line-height:1.3;box-shadow:0 1px 1px rgba(54,48,42,.02);transition:border-color .12s ease,box-shadow .12s ease}
dialog.product-drawer .field input:focus,dialog.product-drawer .field textarea:focus,dialog.product-drawer .field select:focus{outline:none;border-color:#8c7760;box-shadow:0 0 0 2px rgba(140,119,96,.10)}
dialog.product-drawer .field textarea{min-height:96px}
dialog.product-drawer .field small{font-size:.7rem;line-height:1.45;color:#8b8074}
dialog.product-drawer .notice{padding:10px 12px;margin-bottom:14px;background:#f7f3ec;border:1px solid #e5ddd2;border-radius:7px;color:#6c6155}
dialog.product-drawer .image-editor.image-drop-zone{margin:0 0 18px;border:1px solid #ded5ca;border-radius:10px;background:#f7f5f1;min-height:158px;box-shadow:none}
dialog.product-drawer .image-drop-preview{background:#f2eee8;border-right:1px solid #ded5ca}
dialog.product-drawer .image-drop-preview .edit-photo,dialog.product-drawer .image-drop-preview img.edit-photo{min-height:156px;max-height:220px;background:#f2eee8}
dialog.product-drawer .image-drop-copy{padding:19px 20px}
dialog.product-drawer .image-drop-empty strong{font-size:.92rem}
dialog.product-drawer .image-drop-copy small{margin-top:11px}
dialog.product-drawer .usage-panel{border:1px solid #e1d8cc;background:#faf8f4;border-radius:8px}
dialog.product-drawer .room-picker{border-top:1px solid #ece5dc;padding-top:12px}
dialog.product-drawer .secondary,dialog.product-drawer .primary{border-radius:7px}

@media(max-width:1300px) and (min-width:1001px){
 .material-list-head,.material-row{grid-template-columns:58px minmax(190px,1fr) minmax(110px,.52fr) minmax(110px,.52fr) 100px 40px;gap:10px}
 .material-photo{width:58px;height:62px}
}
@media(max-width:1000px) and (min-width:761px){
 .material-list-head{grid-template-columns:58px minmax(185px,1fr) 104px 40px;gap:10px}
 .material-list-head span:nth-child(2),.material-list-head span:nth-child(3){display:none}
 .material-list-head span:nth-child(4){grid-column:3}.material-list-head span:nth-child(5){grid-column:4}
 .material-row{grid-template-columns:58px minmax(185px,1fr) 104px 40px;gap:10px}
 .material-description-column,.material-comment-column{grid-column:2;align-self:start;margin-top:2px}
 .material-description-column{grid-row:2}.material-comment-column{grid-row:3}
 .material-status{grid-column:3;grid-row:1 / span 3}.material-actions{grid-column:4;grid-row:1 / span 3}
 .material-text-column::before{content:attr(data-label) ": ";font-weight:600;color:#665b50}
 .material-text-column span{display:inline;-webkit-line-clamp:unset;overflow:visible}
}
@media(max-width:760px){
 .project-row-wrap{grid-template-columns:20px minmax(0,1fr)}
 .project-drag-handle{opacity:.48;height:28px}
 .material-list-head{display:none}
 .material-row{grid-template-columns:52px minmax(0,1fr) 40px;gap:9px;padding:10px;border-radius:7px!important}
 .material-photo{width:52px;height:56px}
 .material-description-column,.material-comment-column{grid-column:2;align-self:start;margin-top:2px}
 .material-description-column{grid-row:2}.material-comment-column{grid-row:3}
 .material-status{display:flex;grid-column:2;grid-row:4;justify-content:flex-start}
 .material-actions{grid-column:3;grid-row:1 / span 4;align-self:center}
 .material-text-column::before{content:attr(data-label) ": ";font-weight:600;color:#665b50}
 .material-text-column span{display:inline;-webkit-line-clamp:unset;overflow:visible}
 dialog.product-drawer{inset:0;margin:0;width:100vw;height:100dvh;max-height:none;border:0;border-radius:0}
 dialog.product-drawer form{max-height:100dvh}
 dialog.product-drawer .form-grid{grid-template-columns:1fr}
 dialog.product-drawer .field.full{grid-column:auto}
}

/* Step 23: equal-height product records, no quantity column, stronger model hierarchy. */
.product-list-head{grid-template-columns:64px minmax(220px,1fr) minmax(135px,.62fr) minmax(135px,.62fr) 110px 128px 64px}
.product-list-head span:first-child{grid-column:1/3}
.product-list-head span:nth-child(2){grid-column:3;text-align:left}
.product-list-head span:nth-child(3){grid-column:4;text-align:left}
.product-list-head span:nth-child(4){grid-column:5;text-align:left}
.product-list-head span:nth-child(5){grid-column:6;text-align:left}
.product-list-head span:nth-child(6){grid-column:7}
.product-row{grid-template-columns:64px minmax(220px,1fr) minmax(135px,.62fr) minmax(135px,.62fr) 110px 128px 64px;height:148px;min-height:148px;max-height:148px;overflow:hidden}
.product-info{min-width:0;overflow:hidden}
.product-data p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.product-model{font-size:.67rem!important;line-height:1.28!important;font-weight:650!important;letter-spacing:1.15px!important;text-transform:uppercase;color:#71675c!important}
.product-text-column span{-webkit-line-clamp:3}
.product-actions{grid-column:7}

@media(max-width:1300px) and (min-width:1001px){
 .product-list-head,.product-row{grid-template-columns:58px minmax(190px,1fr) minmax(112px,.54fr) minmax(112px,.54fr) 92px 110px 58px;gap:9px}
}
@media(max-width:1000px) and (min-width:761px){
 .product-list-head{grid-template-columns:58px minmax(180px,1fr) 94px 100px 58px}
 .product-list-head span:nth-child(2),.product-list-head span:nth-child(3){display:none}
 .product-list-head span:nth-child(4){grid-column:3}.product-list-head span:nth-child(5){grid-column:4}.product-list-head span:nth-child(6){grid-column:5}
 .product-row{grid-template-columns:58px minmax(180px,1fr) 94px 100px 58px;height:154px;min-height:154px;max-height:154px}
 .product-description-column,.product-comment-column{grid-column:2;align-self:start;margin-top:3px}
 .product-description-column{grid-row:2}.product-comment-column{grid-row:3}
 .product-owner-column{grid-column:3;grid-row:1 / span 3}.product-status{grid-column:4;grid-row:1 / span 3}.product-actions{grid-column:5;grid-row:1 / span 3}
}
@media(max-width:760px){
 .product-row{grid-template-columns:54px minmax(0,1fr) 48px;height:auto;min-height:0;max-height:none;overflow:visible}
 .product-description-column,.product-comment-column{grid-column:2;align-self:start;margin-top:2px}
 .product-description-column{grid-row:2}.product-comment-column{grid-row:3}
 .product-owner-column{grid-column:2;grid-row:4;align-self:center}.product-status{grid-column:2;grid-row:5;align-self:start}
 .product-actions{grid-column:3;grid-row:1 / span 5;align-self:center;height:auto}
}

/* Preview mirrors the room list and also omits quantity. */
.preview-list-head,.preview-product-row{grid-template-columns:64px minmax(220px,1fr) minmax(135px,.62fr) minmax(135px,.62fr) 110px 128px}
.preview-list-head span:first-child{grid-column:1/3}.preview-list-head span:nth-child(2){grid-column:3}.preview-list-head span:nth-child(3){grid-column:4}.preview-list-head span:nth-child(4){grid-column:5}.preview-list-head span:nth-child(5){grid-column:6}
@media(max-width:1300px) and (min-width:1001px){.preview-list-head,.preview-product-row{grid-template-columns:58px minmax(190px,1fr) minmax(112px,.54fr) minmax(112px,.54fr) 92px 110px;gap:9px}}
@media(max-width:1000px) and (min-width:761px){
 .preview-list-head{grid-template-columns:58px minmax(180px,1fr) 94px 100px}
 .preview-list-head span:nth-child(2),.preview-list-head span:nth-child(3){display:none}.preview-list-head span:nth-child(4){grid-column:3}.preview-list-head span:nth-child(5){grid-column:4}
 .preview-product-row{grid-template-columns:58px minmax(180px,1fr) 94px 100px}
 .preview-product-row .product-owner-column{grid-column:3;grid-row:1 / span 3}.preview-product-row .product-status{grid-column:4;grid-row:1 / span 3}
}
@media(max-width:760px){
 .preview-product-row{grid-template-columns:54px minmax(0,1fr);gap:9px;padding:9px 5px}
 .preview-product-row .product-owner-column{grid-column:2;grid-row:4}.preview-product-row .product-status{grid-column:2;grid-row:5}
}

@media print{
 .print-table td:nth-child(2) strong{font-weight:700}
 .print-table th:nth-child(1){width:11%}
 .print-table th:nth-child(2){width:17%}
 .print-table th:nth-child(3){width:16%}
 .print-table th:nth-child(4){width:23%}
 .print-table th:nth-child(5){width:22%}
 .print-table th:nth-child(6){width:11%}
 .print-table th:first-child,.print-table td:first-child{padding-right:16px}
 .print-table th:nth-child(5),.print-table td:nth-child(5){padding-left:4px}
 .print-field-stack{display:flex;flex-direction:column;gap:6px;white-space:normal}
 .print-field-stack>div{margin:0;white-space:pre-line}
 .print-main-model{font-weight:700}
}

/* Step 28: more breathing room after product images in the room list and PDF. */
@media screen and (min-width:1001px){
 .product-row > .product-info{padding-left:16px}
}
@media print{
 .print-room:not(.print-materials) .print-table th:nth-child(1){width:14%}
 .print-room:not(.print-materials) .print-table th:nth-child(2){width:16%}
 .print-room:not(.print-materials) .print-table th:nth-child(3){width:16%}
 .print-room:not(.print-materials) .print-table th:nth-child(4){width:21%}
 .print-room:not(.print-materials) .print-table th:nth-child(5){width:20%}
 .print-room:not(.print-materials) .print-table th:nth-child(6){width:13%;white-space:nowrap}
 .print-room:not(.print-materials) .print-table th:first-child,
 .print-room:not(.print-materials) .print-table td:first-child{padding-right:22px}
}


/* Step 29: project-specific Offert workspace, adapted from the standalone Refine Offert prototype. */
.offer-tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);margin:0 0 18px}.offer-tab{padding:9px 1px 10px;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.09em;font-weight:600}.offer-tab:hover{color:var(--ink)}.offer-tab.active{color:var(--ink);border-bottom-color:var(--ink)}
.offer-layout,.offer-calc-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:18px;align-items:start}.offer-card{background:#fff;border:1px solid var(--line);border-radius:4px;overflow:hidden}.offer-card-head{padding:15px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.offer-card-head h2{font-size:1rem;font-weight:600}.offer-card-body{padding:18px}.offer-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.offer-field{display:flex;flex-direction:column;gap:5px;min-width:0}.offer-field>span{font-size:.72rem;color:var(--muted);font-weight:600;letter-spacing:.03em}.offer-field input,.offer-field textarea{width:100%;border:1px solid #d2c9bd;background:#fff;border-radius:3px;padding:9px 10px;color:var(--ink);outline:none;min-height:36px}.offer-field textarea{resize:vertical;min-height:70px;line-height:1.4}.offer-field input:focus,.offer-field textarea:focus{border-color:#8b7257;box-shadow:0 0 0 2px rgba(87,76,63,.08)}.offer-field.span2{grid-column:span 2}.offer-field.span4{grid-column:span 4}.offer-settings{border-top:1px solid var(--line);margin:18px -18px -18px}.offer-settings summary{cursor:pointer;padding:14px 18px;font-size:.82rem;font-weight:600}.offer-settings-fields{padding:18px;border-top:1px solid var(--line)}
.offer-side{display:grid;gap:14px;position:sticky;top:56px}.offer-logo-preview{height:86px;border:1px dashed #c9beb0;background:#faf8f4;display:grid;place-items:center;color:var(--muted);font-size:.78rem}.offer-logo-preview img{max-width:190px;max-height:64px;object-fit:contain}.offer-logo-actions{display:flex;gap:7px;margin-top:12px;flex-wrap:wrap}.offer-logo-actions label.secondary{cursor:pointer}.offer-logo-actions .disabled{opacity:.5;pointer-events:none}.offer-note{padding:13px 14px;background:#ece4da;color:#574c3f;font-size:.78rem;line-height:1.5;border:1px solid #ddd2c4}
.offer-products-card{min-width:0}.offer-products-toolbar{display:flex;align-items:center;gap:12px;padding:11px 13px;border-bottom:1px solid var(--line);flex-wrap:wrap}.offer-category-tabs{display:flex;gap:4px;align-items:center;flex:1 1 360px;overflow:auto;padding-bottom:2px}.offer-category-chip{display:inline-flex;align-items:center;white-space:nowrap;border-bottom:1px solid transparent}.offer-category-chip.active{border-bottom-color:var(--ink)}.offer-category-chip>button:first-child{padding:7px 9px;font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;font-weight:600}.offer-category-chip>button:last-child{padding:7px 5px;color:#9a8e80}.offer-category-chip:hover{background:var(--paper)}.offer-products-actions{display:flex;gap:7px;margin-left:auto}.offer-products-wrap{overflow:auto}.offer-product-table{border-collapse:collapse;width:100%;min-width:1120px}.offer-product-table th{background:#f0ece6;border-bottom:1px solid var(--line);padding:9px 7px;text-align:left;color:#71675c;font-size:.64rem;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.offer-product-table th span{text-transform:none;letter-spacing:0;font-weight:400;opacity:.65}.offer-product-table td{border-bottom:1px solid #ebe5dd;padding:6px;vertical-align:top;background:#fff}.offer-product-table tr:last-child td{border-bottom:0}.offer-product-table input,.offer-product-table textarea{width:100%;height:30px;min-height:30px;border:1px solid #d5cdc3;border-radius:3px;padding:4px 6px;font:inherit;font-size:.78rem;background:#fff}.offer-product-table textarea{resize:vertical;min-height:30px;line-height:20px}.offer-status-cell{text-align:center;width:54px}.offer-status{width:14px;height:14px;border:1px solid var(--line);border-radius:50%;background:#fff;display:inline-grid;place-items:center;padding:0;font-size:9px;font-weight:800}.offer-status.done{color:#4f6255;border-color:#9fb7a7;background:#f3f7f4}.offer-status.check{border-color:#caa52a;background:#d8b52e;color:transparent}.offer-status.stop{border-color:#a64a42;background:#a64a42;color:transparent}.offer-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.78rem;padding-top:12px!important}.margin-ok{color:#4f6255}.margin-low{color:#8a6930}.margin-neg{color:var(--red)}.offer-row-actions{display:flex;gap:3px;white-space:nowrap}.offer-row-actions button{width:25px;height:26px;border:1px solid var(--line);background:#fff;font-size:.78rem}.offer-row-actions button:hover{background:var(--paper)}.offer-summary-card{position:sticky;top:56px}.offer-summary{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:baseline;font-size:.78rem}.offer-summary span{color:var(--muted)}.offer-summary strong{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.offer-summary .offer-total{font-size:1rem;color:var(--ink)}.offer-status-overview{display:flex;flex-wrap:wrap;gap:7px 12px;border-top:1px solid var(--line);margin-top:15px;padding-top:13px;font-size:.72rem;color:var(--muted)}.offer-status-overview b{color:#4f6255}.offer-status-overview .check-dot{color:#d0a900}.offer-status-overview .stop-dot{color:#a64a42}
.offer-quote-shell{max-width:1040px;margin:0 auto;background:white;border:1px solid var(--line);border-radius:4px;overflow:hidden}.offer-quote-toolbar{padding:12px 14px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f8f6f2;font-size:.75rem;color:var(--muted)}.offer-quote-page{padding:48px 56px 54px;min-height:1080px}.offer-quote-head,.offer-print-page .offer-quote-head{position:relative;display:flex;justify-content:flex-end;gap:30px;min-height:62px;margin-bottom:42px}.offer-quote-logo,.offer-print-page .offer-quote-logo{position:absolute;left:50%;top:0;transform:translateX(-50%);display:flex;justify-content:center;align-items:flex-start}.offer-quote-logo img,.offer-print-page .offer-quote-logo img{max-height:62px;max-width:210px;object-fit:contain}.offer-quote-logo span,.offer-print-page .offer-quote-logo span{font-size:1.2rem;font-weight:600;letter-spacing:.18em}.offer-quote-meta,.offer-print-page .offer-quote-meta{text-align:right;font-size:.72rem;line-height:1.7;color:#5f5a54}.offer-quote-page>h1,.offer-print-page>h1{font-size:1.35rem;font-weight:500;letter-spacing:-.02em;margin:0 0 8px}.offer-quote-lead,.offer-print-page .offer-quote-lead{color:#67625c;line-height:1.55;max-width:680px;font-size:.86rem}.offer-quote-customer,.offer-print-page .offer-quote-customer{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:28px 0 32px;padding:18px 0;border-top:1px solid #d8d2ca;border-bottom:1px solid #d8d2ca;font-size:.82rem;line-height:1.5}.offer-quote-customer>div>span,.offer-print-page .offer-quote-customer>div>span{display:block;font-size:.62rem;text-transform:uppercase;letter-spacing:.09em;color:#73706a;font-weight:700;margin-bottom:5px}.offer-quote-customer>div>div,.offer-print-page .offer-quote-customer>div>div{white-space:pre-line}.offer-quote-table,.offer-print-page .offer-quote-table{width:100%;border-collapse:collapse;font-size:.8rem}.offer-quote-table th,.offer-print-page .offer-quote-table th{font-size:.62rem;text-transform:uppercase;letter-spacing:.07em;color:#716c65;border-bottom:1.5px solid #9f978e;padding:8px 6px;text-align:left}.offer-quote-table td,.offer-print-page .offer-quote-table td{padding:10px 6px;border-bottom:1px solid #e4dfd8;vertical-align:top}.offer-quote-table .offer-qnum,.offer-print-page .offer-quote-table .offer-qnum{text-align:right;white-space:nowrap}.offer-cat-row td,.offer-print-page .offer-cat-row td{background:#ece7df;font-size:.68rem;text-transform:uppercase;letter-spacing:.07em;font-weight:700;color:#514c46;padding:7px 6px}.offer-pos{width:42px}.offer-empty{text-align:center;color:var(--muted);padding:30px!important}.offer-quote-totals,.offer-print-page .offer-quote-totals{margin:22px 0 34px auto;width:min(390px,100%)}.offer-quote-totals>div,.offer-print-page .offer-quote-totals>div{display:flex;justify-content:space-between;padding:5px 0;font-size:.8rem}.offer-quote-totals .grand,.offer-print-page .offer-quote-totals .grand{font-size:1rem;font-weight:700;border-top:1px solid #aaa39a;margin-top:6px;padding-top:10px}.offer-terms,.offer-print-page .offer-terms{display:grid;grid-template-columns:1fr 1fr;gap:12px 34px;border-top:1px solid #d8d2ca;padding-top:24px}.offer-terms>div,.offer-print-page .offer-terms>div{display:grid;grid-template-columns:115px 1fr;gap:9px;font-size:.72rem;line-height:1.45}.offer-terms span,.offer-print-page .offer-terms span{white-space:pre-line}.offer-quote-footer,.offer-print-page .offer-quote-footer{margin-top:40px;padding-top:16px;border-top:1px solid #d8d2ca;color:#73706a;font-size:.66rem;display:flex;justify-content:space-between;gap:20px}
@media(max-width:1050px){.offer-layout,.offer-calc-layout{grid-template-columns:1fr}.offer-side,.offer-summary-card{position:static}.offer-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.offer-field.span4{grid-column:span 2}}
@media(max-width:650px){.offer-fields{grid-template-columns:1fr}.offer-field.span2,.offer-field.span4{grid-column:span 1}.offer-tabs{gap:12px;overflow:auto}.offer-quote-toolbar{align-items:flex-start;flex-direction:column}.offer-quote-page{padding:28px 20px}.offer-quote-head{display:block;min-height:0;padding-top:76px}.offer-quote-meta{text-align:left}.offer-quote-customer,.offer-terms{grid-template-columns:1fr}.offer-products-toolbar{align-items:flex-start}.offer-products-actions{margin-left:0}}
@media print{
 .offer-print-page{font-family:Arial,sans-serif;color:#111;background:#fff;padding:14mm 12mm 12mm;min-height:297mm;box-sizing:border-box;font-size:10pt}
 .offer-print-page .offer-quote-head{margin-bottom:28px}
 .offer-print-page>h1{font-family:Arial,sans-serif;font-size:18pt!important;font-weight:500!important}
 .offer-print-page .offer-quote-lead{font-size:9.5pt}
 .offer-print-page .offer-quote-customer{margin:18px 0 24px;font-size:9pt}
 .offer-print-page .offer-quote-table{font-size:9pt}
 .offer-print-page .offer-quote-table th{font-size:7.5pt;background:transparent!important}
 .offer-print-page .offer-cat-row td{background:#ece7df!important;print-color-adjust:exact}
 .offer-print-page .offer-terms>div{font-size:8pt}
 .offer-print-page .offer-quote-footer{margin-top:28px;font-size:7.5pt}
 .offer-print-page .offer-quote-table tr,.offer-print-page .offer-terms>div{break-inside:avoid}
}

/* Step 30: offer import + drag-and-drop */
.offer-import-button svg{width:16px;height:16px}.offer-drag-handle{width:27px;height:26px;border:1px solid var(--line);background:#fff;color:var(--blue);font-size:18px;line-height:1;touch-action:none;cursor:grab;user-select:none}.offer-drag-handle:hover{background:var(--paper);border-color:#b9a58f}.offer-drag-handle:active{cursor:grabbing}.offer-drag-handle:disabled{cursor:not-allowed}.offer-product-dragging{user-select:none;cursor:grabbing}.offer-drag-source td{opacity:.38}.offer-product-row.offer-drop-before td{box-shadow:inset 0 3px var(--blue)}.offer-product-row.offer-drop-after td{box-shadow:inset 0 -3px var(--blue)}.offer-category-chip.offer-category-drop-target{background:#ece4da;border-bottom-color:var(--blue);box-shadow:inset 0 0 0 1px #b9a58f}.offer-drag-ghost{position:fixed;z-index:1250;pointer-events:none;background:#fffdf9;border:1px solid #b9aa98;border-radius:4px;box-shadow:0 12px 34px #36302a28;padding:8px 11px;font-size:.8rem;font-weight:600;white-space:nowrap;max-width:300px;overflow:hidden;text-overflow:ellipsis;opacity:.96}.offer-category-chip[data-offer-category-drop]{transition:background .12s,border-color .12s,box-shadow .12s}

/* Step 31: full-width offert calculation + room drop targets for products */
.offer-calc-layout{display:block}
.offer-products-card{width:100%}
.offer-summary-bar{display:flex;align-items:center;gap:12px 22px;flex-wrap:wrap;padding:10px 13px;border-bottom:1px solid var(--line);background:#fbfaf7}
.offer-summary-metric{display:flex;align-items:baseline;gap:7px;white-space:nowrap}
.offer-summary-metric span{font-size:.64rem;text-transform:uppercase;letter-spacing:.065em;color:var(--muted);font-weight:600}
.offer-summary-metric strong{font-size:.78rem;font-weight:600;font-variant-numeric:tabular-nums}
.offer-summary-metric.offer-total{margin-left:auto;padding-left:16px;border-left:1px solid var(--line)}
.offer-summary-metric.offer-total strong{font-size:.9rem;color:var(--ink)}
.offer-summary-status{display:flex;align-items:center;gap:6px 11px;padding-left:14px;border-left:1px solid var(--line);font-size:.69rem;color:var(--muted);white-space:nowrap}
.offer-summary-status b{color:#4f6255}.offer-summary-status .check-dot{color:#d0a900}.offer-summary-status .stop-dot{color:#a64a42}
.room-tab.room-product-drop-target{background:#e9e1d7;color:var(--ink);border-color:#75634f;box-shadow:inset 0 -3px #75634f,inset 0 0 0 1px #b9aa98;outline:2px solid rgba(117,99,79,.35);outline-offset:2px}
.product-dragging .room-tab[data-action="room"],.sewing-product-dragging .room-tab[data-action="sewing-room"]{transition:background .12s,border-color .12s,box-shadow .12s}
@media(max-width:1180px){.offer-summary-metric.offer-total{margin-left:0}.offer-summary-bar{gap:9px 16px}}
@media(max-width:760px){.offer-summary-bar{align-items:flex-start}.offer-summary-status{width:100%;padding-left:0;border-left:0;border-top:1px solid var(--line);padding-top:8px}.offer-summary-metric.offer-total{padding-left:0;border-left:0}}


/* Step 32: corrected offer import mapping, calmer customer rows and click-to-expand notes. */
.offer-note-wrap{position:relative;min-width:0}
.offer-note-wrap textarea{resize:none!important;padding-right:27px!important;white-space:nowrap;overflow:hidden}
.offer-note-wrap.expanded textarea{white-space:pre-wrap;overflow:auto;min-height:96px}
.offer-note-toggle{position:absolute;right:5px;bottom:5px;width:18px;height:18px;border:0;background:transparent;padding:0;cursor:pointer;opacity:.55;border-radius:0;transition:opacity .12s ease,transform .12s ease}
.offer-note-toggle::before,.offer-note-toggle::after{content:"";position:absolute;height:1px;background:#6d6861;transform:rotate(-45deg);transform-origin:right center}
.offer-note-toggle::before{width:8px;right:3px;bottom:4px}
.offer-note-toggle::after{width:5px;right:3px;bottom:8px}
.offer-note-wrap.expanded .offer-note-toggle{transform:rotate(180deg)}
.offer-note-toggle:hover,.offer-note-toggle:focus-visible{background:transparent;opacity:1;outline:none}
.offer-quote-product-name,.offer-print-page .offer-quote-product-name{font-weight:700}
.offer-quote-supplier,.offer-print-page .offer-quote-supplier{font-weight:400;margin-top:2px;color:#5f5a54}


/* Step 33: imported offer products live in Import and notes use the quieter diagonal expand affordance. */

/* Step 35: wrapped offer rooms, customer VAT mode and project-margin summary. */
.offer-field select{width:100%;border:1px solid #d2c9bd;background:#fff;border-radius:3px;padding:9px 10px;color:var(--ink);outline:none;min-height:36px}
.offer-field select:focus{border-color:#8b7257;box-shadow:0 0 0 2px rgba(87,76,63,.08)}
.offer-products-toolbar{align-items:flex-start}
.offer-category-flow{display:flex;align-items:center;flex-wrap:wrap;gap:4px 5px;row-gap:6px;flex:1 1 680px;min-width:0}
.offer-category-flow .offer-category-chip{flex:0 0 auto}
.offer-category-empty{padding:7px 4px}
.offer-add-category{flex:0 0 auto;margin-left:2px;white-space:nowrap}
.offer-products-actions{flex:0 0 auto;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.offer-summary-metric.offer-total{align-items:flex-start}
.offer-total-values{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.offer-total-values small{font-size:.65rem;font-weight:500;color:var(--muted);white-space:nowrap}
.offer-total-values small b{font-weight:650;font-variant-numeric:tabular-nums}
.offer-total-values small.margin-ok,.offer-total-values small.margin-ok b{color:#4f6255}
.offer-total-values small.margin-low,.offer-total-values small.margin-low b{color:#8a6930}
.offer-total-values small.margin-neg,.offer-total-values small.margin-neg b{color:var(--red)}
@media(max-width:980px){.offer-category-flow{flex-basis:100%}.offer-products-actions{width:100%;justify-content:flex-start;margin-left:0}}

/* Step 36: shared room navigation, preview QA and explicit attention fields */
.status-chip-button{font:inherit;cursor:pointer;border:1px solid #e7c984}.status-chip-button:hover{filter:brightness(.98);box-shadow:0 0 0 1px rgba(138,105,48,.08)}
.field-label{display:inline-flex;align-items:baseline;gap:3px}.attention-asterisk{color:#9a6c20;font-size:1.05em;line-height:1}.field-needs-attention>input,.field-needs-attention>select,.field-needs-attention>textarea{border-color:#d8b25f!important;background:#fffaf0!important;box-shadow:0 0 0 2px rgba(216,178,95,.10)}.field-attention-message{display:block;width:100%;margin-top:5px;color:#8a6930;font-size:.7rem;line-height:1.3}.review-check.field-needs-attention{padding:9px 10px;border:1px solid #dfc27f;border-radius:4px;background:#fffaf0}.attention-notice{border-left:3px solid #c69b40;background:#fffaf0}

.offer-room-tabs{flex:1 1 700px;min-width:0;margin:0;border-bottom:0;padding-bottom:0;row-gap:6px}.offer-room-tabs .room-tab{flex:0 0 auto}.offer-room-tabs .offer-add-category{color:var(--muted)}.offer-products-toolbar{align-items:center}.offer-products-actions{flex:0 0 auto}.offer-room-tab.offer-category-drop-target{background:#e9e1d7;color:var(--ink);border-color:#75634f;box-shadow:inset 0 0 0 1px #b9aa98}

.offer-project-preview{display:grid;gap:26px}.offer-preview-room{min-width:0;scroll-margin-top:116px}.offer-preview-list{border-top:1px solid var(--line)}.offer-preview-list-head,.offer-preview-product{display:grid;grid-template-columns:minmax(220px,1.25fr) minmax(150px,.8fr) 72px 108px 108px 92px 130px;gap:13px;align-items:center}.offer-preview-list-head{padding:7px 8px 6px;border-bottom:1px solid var(--line);font-size:.66rem;font-weight:650;letter-spacing:.8px;text-transform:uppercase;color:var(--muted)}.offer-preview-product{padding:10px 8px;border-bottom:1px solid rgba(195,181,165,.62);cursor:pointer;outline:none;transition:background .12s ease}.offer-preview-product:hover,.offer-preview-product:focus-visible{background:rgba(255,255,255,.66)}.offer-preview-product:focus-visible{box-shadow:inset 0 0 0 1px #887663}.offer-preview-main{min-width:0;display:grid;gap:3px}.offer-preview-main strong{font-weight:650}.offer-preview-main small{color:var(--muted);font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.offer-preview-num{text-align:right;font-variant-numeric:tabular-nums}.offer-preview-product .status-chip{justify-self:start}.offer-preview-heading .project-title-wrap>div{display:grid;gap:2px}
@media(max-width:1180px){.offer-preview-list-head,.offer-preview-product{grid-template-columns:minmax(190px,1.2fr) minmax(130px,.7fr) 64px 94px 94px 84px 116px;gap:8px;font-size:.74rem}}
@media(max-width:820px){.offer-products-toolbar{align-items:flex-start}.offer-room-tabs{flex-basis:100%}.offer-products-actions{width:100%;margin-left:0;justify-content:flex-start}.offer-preview-list-head{display:none}.offer-preview-product{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:start}.offer-preview-main{grid-column:1/3}.offer-preview-product>div:nth-child(2){grid-column:1}.offer-preview-product>div:nth-child(3){grid-column:2;grid-row:2}.offer-preview-product>div:nth-child(4),.offer-preview-product>div:nth-child(5),.offer-preview-product>div:nth-child(6){font-size:.72rem}.offer-preview-product>div:nth-child(7){grid-column:1/3}}


/* Step 37: integer quote quantities and a calmer separated calculation summary. */
.offer-summary-bar{margin:10px 12px 14px;border:1px solid var(--line);border-radius:10px;background:#fbfaf7}
.offer-products-wrap{border-top:0}
@media(max-width:760px){.offer-summary-bar{margin:9px 9px 12px}}

/* Step 38: align room-level and product-level attention status in offer preview. */
.offer-preview-room>.preview-room-head{
  display:grid;
  grid-template-columns:minmax(220px,1.25fr) minmax(150px,.8fr) 72px 108px 108px 92px 130px;
  gap:13px;
  align-items:center;
  padding:8px;
}
.offer-preview-room>.preview-room-head h2{grid-column:1/7;min-width:0}
.offer-preview-room>.preview-room-head .preview-room-state{grid-column:7;justify-self:start}
@media(max-width:1180px){
  .offer-preview-room>.preview-room-head{grid-template-columns:minmax(190px,1.2fr) minmax(130px,.7fr) 64px 94px 94px 84px 116px;gap:8px}
}
@media(max-width:820px){
  .offer-preview-room>.preview-room-head{grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:8px 0}
  .offer-preview-room>.preview-room-head h2{grid-column:1}
  .offer-preview-room>.preview-room-head .preview-room-state{grid-column:2;justify-self:end}
}

/* Step 39: freer offertmoduler without one enclosing outer frame. */
.offer-calc-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}
.offer-calc-section{background:#fff;border:1px solid #d8cec1;border-radius:14px;overflow:hidden;box-shadow:0 1px 0 rgba(54,48,42,.03)}
.offer-toolbar-panel .offer-products-toolbar{padding:18px 20px;border-bottom:0;background:#fff}
.offer-toolbar-panel .offer-room-tabs{margin:0}
.offer-toolbar-panel .offer-products-actions{margin-left:auto;align-items:center}
.offer-summary-shell .offer-summary-bar{margin:0;border:0;border-radius:0;background:#fff;padding:16px 20px}
.offer-products-panel .offer-products-wrap{border-top:0;background:#fff}
.offer-products-panel .offer-product-table th{background:#f7f3ed}
.offer-products-panel .offer-product-table td{background:#fff}
.offer-products-panel .empty{margin:18px;border-radius:12px}
.offer-room-tab.active{background:#f6f3ec}
.offer-room-tab{border-radius:8px 8px 0 0}
@media(max-width:980px){.offer-toolbar-panel .offer-products-toolbar{padding:16px}.offer-summary-shell .offer-summary-bar{padding:15px 16px}}
@media(max-width:760px){.offer-calc-layout{gap:12px}.offer-toolbar-panel .offer-products-toolbar{padding:14px}.offer-summary-shell .offer-summary-bar{padding:14px}.offer-calc-section{border-radius:12px}}

/* Step 40: Rumsbeskrivning adopts the same modular white-card language as Offert. */
.project-heading + .room-tabs{
  background:#fff;
  border:1px solid #d8cec1;
  border-radius:14px;
  padding:14px 16px;
  margin-bottom:16px;
  box-shadow:0 1px 0 rgba(54,48,42,.03);
}
.project-heading + .room-tabs .room-tab{border-radius:8px 8px 0 0}
.project-heading + .room-tabs .room-add{margin-left:9px!important}

.room-head{
  background:#fff;
  border:1px solid #d8cec1;
  border-radius:14px;
  padding:12px 16px;
  margin-bottom:16px;
  box-shadow:0 1px 0 rgba(54,48,42,.03);
}
.room-head .view-actions .secondary{background:#fff}

.product-list{
  display:grid;
  gap:0;
  background:#fff;
  border:1px solid #d8cec1;
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 1px 0 rgba(54,48,42,.03);
}
.product-list-head{
  margin:0;
  padding:9px 12px 8px;
  background:#f7f3ed;
  border:0;
  border-bottom:1px solid #d8cec1;
}
.product-row{
  border:0!important;
  border-bottom:1px solid rgba(195,181,165,.62)!important;
  border-radius:0!important;
  background:#fff!important;
  box-shadow:none!important;
  padding:10px 12px;
}
.product-row:hover{
  background:#fcfaf6!important;
  border-color:rgba(195,181,165,.62)!important;
  box-shadow:none!important;
}
.product-row:last-child{border-bottom:0!important}
.product-status{
  align-self:stretch;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  min-height:100%;
}
.product-status .status-chip{margin:0}

@media(max-width:760px){
  .project-heading + .room-tabs,.room-head,.product-list{border-radius:12px}
  .project-heading + .room-tabs{padding:11px 12px}
  .room-head{padding:11px 12px}
  .product-list-head{padding-left:10px;padding-right:10px}
  .product-row{padding:10px}
}


/* Step 41: align room-description preview status in the same column as product status. */
.project-preview .preview-room>.preview-room-head{
  display:grid;
  grid-template-columns:64px minmax(220px,1fr) minmax(135px,.62fr) minmax(135px,.62fr) 110px 128px;
  gap:14px;
  align-items:center;
  padding:8px 7px;
}
.project-preview .preview-room>.preview-room-head h2{grid-column:1/6;min-width:0}
.project-preview .preview-room>.preview-room-head .preview-room-state{grid-column:6;justify-self:start}
@media(max-width:1300px) and (min-width:1001px){
  .project-preview .preview-room>.preview-room-head{grid-template-columns:58px minmax(190px,1fr) minmax(112px,.54fr) minmax(112px,.54fr) 92px 110px;gap:9px}
}
@media(max-width:1000px) and (min-width:761px){
  .project-preview .preview-room>.preview-room-head{grid-template-columns:58px minmax(180px,1fr) 94px 100px;gap:10px}
  .project-preview .preview-room>.preview-room-head h2{grid-column:1/4}
  .project-preview .preview-room>.preview-room-head .preview-room-state{grid-column:4;justify-self:start}
}
@media(max-width:760px){
  .project-preview .preview-room>.preview-room-head{grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:8px 0}
  .project-preview .preview-room>.preview-room-head h2{grid-column:1}
  .project-preview .preview-room>.preview-room-head .preview-room-state{grid-column:2;justify-self:end}
}

/* Step 42: one shared grid for Rumsbeskrivning preview headers and rows. */
@media(min-width:761px){
  .project-preview .preview-room{
    --room-preview-grid:64px minmax(220px,1fr) minmax(135px,.62fr) minmax(135px,.62fr) 110px 128px;
    --room-preview-gap:14px;
  }
  .project-preview .preview-room>.preview-room-head,
  .project-preview .preview-room .preview-list-head,
  .project-preview .preview-room .preview-product-row{
    grid-template-columns:var(--room-preview-grid)!important;
    column-gap:var(--room-preview-gap)!important;
    padding-left:7px!important;
    padding-right:7px!important;
    width:100%;
  }
  .project-preview .preview-room>.preview-room-head h2{grid-column:1/6!important}
  .project-preview .preview-room>.preview-room-head .preview-room-state{
    grid-column:6!important;
    justify-self:start!important;
    align-self:center;
  }
  .project-preview .preview-room .preview-list-head span:nth-child(5){grid-column:6!important;text-align:left!important}
  .project-preview .preview-room .preview-product-row .product-status{
    grid-column:6!important;
    justify-self:start!important;
    align-self:center!important;
    width:max-content;
  }
}
@media(max-width:1300px) and (min-width:1001px){
  .project-preview .preview-room{
    --room-preview-grid:58px minmax(190px,1fr) minmax(112px,.54fr) minmax(112px,.54fr) 92px 110px;
    --room-preview-gap:9px;
  }
}
@media(max-width:1000px) and (min-width:761px){
  .project-preview .preview-room{
    --room-preview-grid:58px minmax(180px,1fr) 94px 100px;
    --room-preview-gap:10px;
  }
  .project-preview .preview-room>.preview-room-head h2{grid-column:1/4!important}
  .project-preview .preview-room>.preview-room-head .preview-room-state{grid-column:4!important}
  .project-preview .preview-room .preview-list-head span:nth-child(5){grid-column:4!important}
  .project-preview .preview-room .preview-product-row .product-status{grid-column:4!important}
}

/* Step 43: calmer room-product spacing, manual multiline descriptions and centered status. */
.room-head .room-product-actions{gap:8px}
.room-head .room-product-actions .room-action{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 9px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:#655a4f;
  font-size:.88rem;
  transition:background .12s ease,color .12s ease;
}
.room-head .room-product-actions .room-action:hover,
.room-head .room-product-actions .room-action:focus-visible{background:#f3eee6;color:#342f2a}
.room-head .room-product-actions .room-action-primary{font-weight:650;color:#43392f}
.room-head .room-product-actions .room-action-secondary{font-weight:500}

.product-list{gap:8px;background:var(--paper)}
.product-list-head{background:#f7f3ed}
.product-row{
  grid-template-columns:64px minmax(220px,1fr) minmax(210px,.78fr) 110px 150px 64px!important;
  gap:14px!important;
  height:auto!important;
  min-height:148px!important;
  max-height:none!important;
  overflow:visible!important;
  border-bottom:0!important;
  background:#fff!important;
}
.product-list-head{
  grid-template-columns:64px minmax(220px,1fr) minmax(210px,.78fr) 110px 150px 64px!important;
  gap:14px!important;
}
.product-list-head span:first-child{grid-column:1/3!important}
.product-list-head span:nth-child(2){grid-column:3!important;text-align:left!important}
.product-list-head span:nth-child(3){grid-column:4!important;text-align:left!important}
.product-list-head span:nth-child(4){grid-column:5!important;text-align:center!important}
.product-list-head span:nth-child(5){grid-column:6!important}
.product-description-column{grid-column:3!important;align-self:center!important}
.product-owner-column{grid-column:4!important;align-self:center!important}
.product-status{grid-column:5!important;align-self:stretch!important;align-items:center!important;justify-content:center!important;text-align:center}
.product-actions{grid-column:6!important;align-self:stretch!important}
.product-text-column span,
.preview-product-row .product-text-column span{
  display:block!important;
  white-space:pre-wrap!important;
  overflow:visible!important;
  -webkit-line-clamp:unset!important;
  overflow-wrap:anywhere;
}

/* Preview follows the same simplified columns: Product, Description, Owner, Status. */
@media(min-width:1001px){
  .project-preview .preview-room{--room-preview-grid:64px minmax(220px,1fr) minmax(210px,.78fr) 110px 150px;--room-preview-gap:14px}
  .project-preview .preview-room>.preview-room-head,
  .project-preview .preview-room .preview-list-head,
  .project-preview .preview-room .preview-product-row{grid-template-columns:var(--room-preview-grid)!important;column-gap:var(--room-preview-gap)!important}
  .project-preview .preview-room>.preview-room-head h2{grid-column:1/5!important}
  .project-preview .preview-room>.preview-room-head .preview-room-state{grid-column:5!important;justify-self:center!important}
  .project-preview .preview-room .preview-list-head span:first-child{grid-column:1/3!important}
  .project-preview .preview-room .preview-list-head span:nth-child(2){grid-column:3!important;text-align:left!important}
  .project-preview .preview-room .preview-list-head span:nth-child(3){grid-column:4!important;text-align:left!important}
  .project-preview .preview-room .preview-list-head span:nth-child(4){grid-column:5!important;text-align:center!important}
  .project-preview .preview-room .preview-product-row .preview-description-column{grid-column:3!important;align-self:center!important}
  .project-preview .preview-room .preview-product-row .product-owner-column{grid-column:4!important;align-self:center!important}
  .project-preview .preview-room .preview-product-row .product-status{grid-column:5!important;justify-self:stretch!important;justify-content:center!important;align-self:stretch!important;width:auto!important}
}
@media(max-width:1300px) and (min-width:1001px){
  .product-list-head,.product-row{grid-template-columns:58px minmax(190px,1fr) minmax(165px,.65fr) 92px 138px 58px!important;gap:9px!important}
  .project-preview .preview-room{--room-preview-grid:58px minmax(190px,1fr) minmax(165px,.65fr) 92px 138px;--room-preview-gap:9px}
}
@media(max-width:1000px) and (min-width:761px){
  .product-list-head{grid-template-columns:58px minmax(180px,1fr) 94px 130px 58px!important;gap:10px!important}
  .product-list-head span:nth-child(2){display:none!important}
  .product-list-head span:nth-child(3){grid-column:3!important}
  .product-list-head span:nth-child(4){grid-column:4!important;text-align:center!important}
  .product-list-head span:nth-child(5){grid-column:5!important}
  .product-row{grid-template-columns:58px minmax(180px,1fr) 94px 130px 58px!important;gap:10px!important;min-height:154px!important}
  .product-description-column{grid-column:2!important;grid-row:2!important;align-self:start!important;margin-top:5px}
  .product-owner-column{grid-column:3!important;grid-row:1 / span 2!important}
  .product-status{grid-column:4!important;grid-row:1 / span 2!important}
  .product-actions{grid-column:5!important;grid-row:1 / span 2!important}
  .product-description-column::before{content:"Beskrivning: ";font-weight:600;color:#665b50}
  .project-preview .preview-room{--room-preview-grid:58px minmax(180px,1fr) 94px 130px;--room-preview-gap:10px}
  .project-preview .preview-room>.preview-room-head h2{grid-column:1/4!important}
  .project-preview .preview-room>.preview-room-head .preview-room-state{grid-column:4!important;justify-self:center!important}
  .project-preview .preview-room .preview-list-head span:nth-child(2){display:none!important}
  .project-preview .preview-room .preview-list-head span:nth-child(3){grid-column:3!important}
  .project-preview .preview-room .preview-list-head span:nth-child(4){grid-column:4!important;text-align:center!important}
  .project-preview .preview-room .preview-product-row{grid-template-columns:var(--room-preview-grid)!important;column-gap:var(--room-preview-gap)!important}
  .project-preview .preview-room .preview-product-row .preview-description-column{grid-column:2!important;grid-row:2!important;align-self:start!important;margin-top:5px}
  .project-preview .preview-room .preview-product-row .product-owner-column{grid-column:3!important;grid-row:1 / span 2!important}
  .project-preview .preview-room .preview-product-row .product-status{grid-column:4!important;grid-row:1 / span 2!important;justify-content:center!important;width:auto!important}
  .preview-description-column::before{content:"Beskrivning: ";font-weight:600;color:#665b50}
}
@media(max-width:760px){
  .product-list{gap:6px}
  .product-row{grid-template-columns:54px minmax(0,1fr) 48px!important;gap:9px!important;min-height:0!important}
  .product-description-column{grid-column:2!important;grid-row:2!important;align-self:start!important;margin-top:4px}
  .product-owner-column{grid-column:2!important;grid-row:3!important}
  .product-status{grid-column:2!important;grid-row:4!important;justify-content:flex-start!important;align-items:flex-start!important;text-align:left}
  .product-actions{grid-column:3!important;grid-row:1 / span 4!important}
  .product-description-column::before{content:"Beskrivning: ";font-weight:600;color:#665b50}
  .room-head .room-product-actions{gap:3px}
  .room-head .room-product-actions .room-action{padding:7px 6px}
}

@media print{
  .print-description{white-space:pre-wrap!important;line-height:1.45}
}
@media(max-width:760px){
  .project-preview .preview-room .preview-product-row{grid-template-columns:54px minmax(0,1fr)!important;gap:9px!important}
  .project-preview .preview-room .preview-product-row .preview-description-column{grid-column:2!important;grid-row:2!important;align-self:start!important;margin-top:4px}
  .project-preview .preview-room .preview-product-row .product-owner-column{grid-column:2!important;grid-row:3!important}
  .project-preview .preview-room .preview-product-row .product-status{grid-column:2!important;grid-row:4!important;justify-content:flex-start!important;align-items:flex-start!important;width:auto!important}
  .preview-description-column::before{content:"Beskrivning: ";font-weight:600;color:#665b50}
}

/* Step 44: freer product cards and a wider description column. */
.product-list{
  display:grid;
  gap:10px;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  overflow:visible!important;
  box-shadow:none!important;
}
.product-list-head{
  grid-template-columns:64px minmax(190px,.9fr) minmax(300px,1.22fr) 110px 150px 64px!important;
  gap:14px!important;
  margin:0 0 2px!important;
  padding:0 12px 7px!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
}
.product-row{
  grid-template-columns:64px minmax(190px,.9fr) minmax(300px,1.22fr) 110px 150px 64px!important;
  gap:14px!important;
  border:1px solid rgba(195,181,165,.58)!important;
  border-radius:12px!important;
  background:#fff!important;
  padding:12px 13px!important;
  box-shadow:none!important;
}
.product-row:last-child{border-bottom:1px solid rgba(195,181,165,.58)!important}
.product-row:hover{background:#fff!important;border-color:#b9aa98!important;box-shadow:none!important}
.product-description-column{min-width:0}

@media(max-width:1300px) and (min-width:1001px){
  .product-list-head,.product-row{
    grid-template-columns:58px minmax(170px,.82fr) minmax(250px,1.08fr) 92px 124px 58px!important;
    gap:10px!important;
  }
}
@media(max-width:1000px) and (min-width:761px){
  .product-list-head{grid-template-columns:58px minmax(180px,1fr) 94px 100px 58px!important}
  .product-row{grid-template-columns:58px minmax(180px,1fr) 94px 100px 58px!important}
}
@media(max-width:760px){
  .product-list{gap:8px}
  .product-list-head{display:none}
  .product-row{grid-template-columns:54px minmax(0,1fr) 48px!important;border-radius:10px!important;padding:10px!important}
}

/* Step 46: multiple offers per project. */
.offer-record-selector{margin:0 0 14px}
.offer-record-list{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.offer-record-chip,.offer-record-new{display:inline-flex;align-items:center;gap:7px;border:1px solid #d8cec1;background:#fff;border-radius:999px;padding:7px 11px;color:var(--muted);font-size:.76rem;line-height:1.1}
.offer-record-chip span{font-weight:650;color:var(--ink)}
.offer-record-chip small{font-size:.64rem;color:var(--muted);padding-left:7px;border-left:1px solid var(--line)}
.offer-record-chip:hover,.offer-record-new:hover{background:#faf7f2;border-color:#bfae9b}
.offer-record-chip.active{background:#ece4da;border-color:#b9aa98;box-shadow:inset 0 -2px #5b5146}
.offer-record-chip.active small{color:#5b5146}
.offer-record-new{border-style:dashed;font-weight:600;color:#5f554a}
.offer-record-new svg{width:15px;height:15px}
.offer-new-copy{gap:8px}.offer-copy-choice{display:flex;align-items:center;gap:9px;font-weight:400;color:var(--ink)}.offer-copy-choice input{width:auto}
.offer-preview-record-context{margin-bottom:10px}
@media(max-width:760px){.offer-record-list{gap:6px}.offer-record-chip,.offer-record-new{padding:6px 9px}.offer-record-chip small{display:none}}

/* Step 47: Sömnadsorder – shared project rooms, independent room visibility and products. */
.shared-room-picker{border:1px solid var(--line);border-radius:10px;padding:13px 14px;margin:0 0 18px;background:#fbf8f3;display:grid;gap:8px}
.shared-room-picker legend{padding:0 6px;font-size:.76rem;font-weight:650;color:var(--muted);letter-spacing:.35px}
.shared-room-picker .room-choice{display:flex;align-items:center;gap:9px;font-weight:450}
.shared-room-picker input{width:auto}
.form-divider{display:flex;align-items:center;gap:10px;margin:5px 0 18px;color:var(--muted);font-size:.72rem}
.form-divider::before,.form-divider::after{content:"";height:1px;background:var(--line);flex:1}

.sewing-product-list{display:grid;gap:10px;background:transparent;border:0;overflow:visible}
.sewing-list-head,.sewing-product-row{display:grid;grid-template-columns:64px minmax(185px,.82fr) minmax(300px,1.28fr) 110px 72px 142px 48px;gap:14px;align-items:center;min-width:0}
.sewing-list-head{padding:0 12px 7px;font-size:.66rem;font-weight:650;letter-spacing:.8px;text-transform:uppercase;color:var(--muted)}
.sewing-list-head span:first-child{grid-column:1/3}
.sewing-product-row{min-height:142px;padding:12px 13px;border:1px solid rgba(195,181,165,.58);border-radius:12px;background:#fff}
.sewing-product-row:hover{border-color:#b9aa98}
.sewing-product-row .product-photo,.sewing-preview-product .product-photo{width:64px;height:76px;object-fit:contain}
.sewing-product-info{min-width:0;align-self:start}
.sewing-product-info .product-data{margin-top:5px}
.sewing-description{min-width:0;align-self:center;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45}
.sewing-description span{white-space:pre-wrap}
.sewing-width,.sewing-quantity{font-size:.88rem;align-self:center}
.sewing-quantity{text-align:center;font-variant-numeric:tabular-nums}
.sewing-status{display:flex;align-self:stretch;align-items:center;justify-content:center;text-align:center;min-width:0}
.sewing-status .status-chip{justify-content:center}
.sewing-actions{display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;align-self:center}.sewing-actions .icon-button{min-width:36px;min-height:36px}.sewing-actions .sewing-drag-handle{font-size:17px;color:#887d71}

.sewing-project-preview{display:grid;gap:26px}
.sewing-preview-list{display:grid;gap:8px}
.sewing-preview-list-head,.sewing-preview-product{display:grid;grid-template-columns:64px minmax(185px,.82fr) minmax(300px,1.28fr) 110px 72px 142px;gap:14px;align-items:center;min-width:0}
.sewing-preview-list-head{padding:0 10px 7px;font-size:.66rem;font-weight:650;letter-spacing:.8px;text-transform:uppercase;color:var(--muted)}
.sewing-preview-list-head span:first-child{grid-column:1/3}
.sewing-preview-product{padding:11px 12px;border:1px solid rgba(195,181,165,.58);border-radius:12px;background:#fff;cursor:pointer;outline:none}
.sewing-preview-product:hover,.sewing-preview-product:focus-visible{border-color:#b9aa98}
.sewing-preview-product:focus-visible{box-shadow:0 0 0 2px rgba(91,81,70,.14)}
.sewing-preview-product .sewing-status{align-self:stretch}
.sewing-preview-room-head{display:grid!important;grid-template-columns:minmax(0,1fr) 142px;gap:14px;align-items:center}
.sewing-preview-room-head .preview-room-state{justify-self:center}

@media(max-width:1300px) and (min-width:901px){
 .sewing-list-head,.sewing-product-row{grid-template-columns:58px minmax(150px,.75fr) minmax(200px,1.05fr) 82px 58px 112px 42px;gap:8px}
 .sewing-preview-list-head,.sewing-preview-product{grid-template-columns:58px minmax(160px,.8fr) minmax(220px,1.15fr) 90px 64px 122px;gap:10px}
 .sewing-product-row .product-photo,.sewing-preview-product .product-photo{width:58px;height:70px}
}
@media(max-width:900px){
 .sewing-list-head,.sewing-preview-list-head{display:none}
 .sewing-product-row,.sewing-preview-product{grid-template-columns:58px minmax(0,1fr) 92px 58px;gap:9px;min-height:0;padding:10px}
 .sewing-product-row .product-photo,.sewing-preview-product .product-photo{width:58px;height:68px;grid-column:1;grid-row:1/4}
 .sewing-product-info{grid-column:2;grid-row:1}
 .sewing-description{grid-column:2;grid-row:2;margin-top:5px}
 .sewing-width{grid-column:3;grid-row:1/3;align-self:center}
 .sewing-quantity{grid-column:4;grid-row:1/3;align-self:center}
 .sewing-status{grid-column:2/4;grid-row:3;justify-content:flex-start;align-items:flex-start;text-align:left;margin-top:4px}
 .sewing-actions{grid-column:4;grid-row:3;justify-content:flex-end}
 .sewing-preview-product .sewing-status{grid-column:2/5}
 .sewing-preview-room-head{grid-template-columns:minmax(0,1fr) auto}
}
@media(max-width:620px){
 .sewing-product-row,.sewing-preview-product{grid-template-columns:54px minmax(0,1fr) 44px}
 .sewing-product-row .product-photo,.sewing-preview-product .product-photo{width:54px;height:64px}
 .sewing-width{grid-column:2;grid-row:3}.sewing-width::before{content:"Tygbredd: ";font-weight:600;color:#665b50}
 .sewing-quantity{grid-column:2;grid-row:4;text-align:left}.sewing-quantity::before{content:"Antal: ";font-weight:600;color:#665b50}
 .sewing-status{grid-column:2;grid-row:5}
 .sewing-actions{grid-column:3;grid-row:1/6;align-self:start}
 .sewing-preview-product .sewing-status{grid-column:2/4;grid-row:5}
 .sewing-preview-product .sewing-quantity{grid-column:2;grid-row:4}
}

@media print{
 .print-sewing .sewing-print-table{font-size:7.4pt}
 .print-sewing .sewing-print-table th,.print-sewing .sewing-print-table td{font-size:7.4pt;padding:6px 5px;line-height:1.28}
 .print-sewing .sewing-print-table th:nth-child(1){width:12%!important}
 .print-sewing .sewing-print-table th:nth-child(2){width:14%!important}
 .print-sewing .sewing-print-table th:nth-child(3){width:14%!important}
 .print-sewing .sewing-print-table th:nth-child(4){width:24%!important}
 .print-sewing .sewing-print-table th:nth-child(5){width:26%!important}
 .print-sewing .sewing-print-table th:nth-child(6){width:10%!important;white-space:nowrap}
 .print-sewing .sewing-print-table img{max-width:62px;max-height:72px}
}

/* Step 48: Offert toolbar actions mirror Rumsbeskrivning's icon + text controls. */
.offer-products-actions{gap:8px;align-items:center}
.offer-products-actions .offer-action{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 9px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:#655a4f;
  font-size:.88rem;
  transition:background .12s ease,color .12s ease;
}
.offer-products-actions .offer-action svg{width:16px;height:16px}
.offer-products-actions .offer-action:hover,
.offer-products-actions .offer-action:focus-visible{background:#f3eee6;color:#342f2a}
.offer-products-actions .offer-action-primary{font-weight:650;color:#43392f}
.offer-products-actions .offer-action-secondary{font-weight:500}
.offer-products-actions .offer-action:disabled{opacity:.45;cursor:not-allowed;background:transparent}
@media(max-width:760px){.offer-products-actions{gap:3px}.offer-products-actions .offer-action{padding:7px 6px}}


/* Step 49: source-aware offer import and a full-width room navigation row. */
.offer-toolbar-panel .offer-products-toolbar{display:block}
.offer-toolbar-panel .offer-room-tabs{width:100%;flex-basis:auto}
.offer-import-source-intro{margin-bottom:14px}
.offer-import-source-list{display:grid;gap:8px;margin:0 0 14px}
.offer-import-source-option{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;padding:12px 13px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer}
.offer-import-source-option:hover{background:#fbf8f3}
.offer-import-source-option:has(input:checked){border-color:#9c8871;background:#f7f2eb;box-shadow:inset 0 0 0 1px rgba(111,88,62,.12)}
.offer-import-source-option input{margin-top:3px;accent-color:#6b5845}
.offer-import-source-option span{display:grid;gap:3px}
.offer-import-source-option strong{font-size:.82rem;font-weight:650;color:var(--ink)}
.offer-import-source-option small{font-size:.72rem;color:var(--muted);line-height:1.4}
.offer-import-source-option em{font-size:.68rem;color:#766957;font-style:normal}

/* Step 50: discreet deletion control for draft offer records. */
.offer-record-item{display:inline-flex;align-items:center;gap:2px;min-width:0}
.offer-record-delete{display:inline-grid;place-items:center;width:27px;height:27px;padding:0;border:0;border-radius:50%;background:transparent;color:#8b8175;opacity:0;cursor:pointer;transition:opacity .12s ease,background .12s ease,color .12s ease}
.offer-record-delete svg{width:14px;height:14px}
.offer-record-item.active .offer-record-delete,.offer-record-item:hover .offer-record-delete,.offer-record-delete:focus-visible{opacity:1}
.offer-record-delete:hover,.offer-record-delete:focus-visible{background:#f3e8e3;color:#884c45;outline:none}
.offer-record-delete:disabled{opacity:.28;cursor:not-allowed;background:transparent;color:var(--muted)}
@media(max-width:760px){.offer-record-delete{opacity:1;width:25px;height:25px}}
.offer-delete-confirm{background:#7a433d;border-color:#7a433d}
.offer-delete-confirm:hover{background:#633630;border-color:#633630}


/* Step 51: quote product actions sit outside, above and right of the room card. */
.offer-room-module{display:grid;gap:6px;min-width:0}
.offer-calc-actions-row{display:flex;align-items:center;justify-content:flex-end;min-height:34px;padding:0 7px}
.offer-calc-actions-row .offer-products-actions{width:auto;margin:0;justify-content:flex-end}
.offer-toolbar-panel .offer-products-toolbar{padding:11px 20px}
@media(max-width:980px){.offer-toolbar-panel .offer-products-toolbar{padding:10px 16px}}
@media(max-width:760px){.offer-calc-actions-row{justify-content:flex-start;padding:0 4px}.offer-calc-actions-row .offer-products-actions{width:auto;justify-content:flex-start}.offer-toolbar-panel .offer-products-toolbar{padding:10px 14px}}

/* Step 59: shared project information + sewing room/product alignment */
.project-info-row .room-info-row-actions{justify-content:flex-end}
.preview-project-info{margin:0 0 20px;padding:14px 16px;border:1px solid rgba(195,181,165,.58);border-radius:8px;background:rgba(255,255,255,.52);max-width:980px}
.preview-project-info h3{font-size:.76rem;font-weight:650;letter-spacing:.7px;text-transform:uppercase;color:#665b50;margin:0 0 7px}
.preview-project-info p{font-size:.82rem;line-height:1.5;color:var(--muted);white-space:pre-wrap;margin:4px 0}

.sewing-list-head,.sewing-product-row{grid-template-columns:64px minmax(185px,.82fr) minmax(300px,1.28fr) 110px 72px 142px 68px}
.sewing-actions{flex-direction:row;gap:4px;align-items:center;justify-content:flex-end}
.sewing-actions .icon-button{min-width:30px;min-height:30px;width:30px;height:30px}
.sewing-actions .icon-button svg{width:17px;height:17px}

@media(max-width:1300px) and (min-width:901px){
 .sewing-list-head,.sewing-product-row{grid-template-columns:58px minmax(150px,.75fr) minmax(200px,1.05fr) 82px 58px 112px 66px}
}
@media(max-width:900px){
 .sewing-product-row{grid-template-columns:58px minmax(0,1fr) 92px 66px}
 .sewing-actions{grid-column:4;grid-row:3;flex-direction:row;justify-content:flex-end}
}
@media(max-width:620px){
 .sewing-product-row{grid-template-columns:54px minmax(0,1fr) 66px}
 .sewing-actions{grid-column:3;grid-row:1/6;align-self:start;flex-direction:row;justify-content:flex-end}
}

@media print{
 .print-project-info{margin-top:0}
}

dialog.settings-drawer.user-admin-drawer{width:min(720px,100vw)}

.dialog-toast{position:absolute;left:50%;bottom:76px;transform:translateX(-50%) translateY(16px);opacity:0;transition:.2s;background:var(--ink);color:white;padding:12px 20px;border-radius:7px;z-index:50;font-size:.9375rem;max-width:calc(100% - 36px);box-shadow:0 7px 30px #36302a25;pointer-events:none}
.dialog-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* Sidebar: keep project list scrollable when many projects are visible. */
@media screen and (min-width:761px){
  .project-section{
    display:flex;
    flex-direction:column;
    flex:1 1 auto;
    min-height:0;
  }

  .project-nav{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
  }

  .project-library-links,
  .main-nav{
    flex-shrink:0;
  }
}

/* QR-delning: respektera hidden på listan med enskilda rum. */
.project-qr-editor [hidden]{
  display:none !important;
}


/* QR-delning: kort med QR-koder för delade rum. */
.project-qr-room-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:12px;
  margin:14px 0 16px;
}

.project-qr-room{
  display:flex;
  align-items:center;
  gap:14px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
}

.project-qr-code{
  width:110px;
  height:110px;
  flex-shrink:0;
  display:block;
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  padding:6px;
}

.project-qr-room-info{
  display:flex;
  flex-direction:column;
  gap:10px;
  min-width:0;
}

.project-qr-room-info strong{
  font-size:14px;
  line-height:1.4;
  word-break:break-word;
}

.project-qr-actions{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
  margin-top:8px;
}

@media (max-width:560px){
  .project-qr-room{
    align-items:flex-start;
  }

  .project-qr-code{
    width:92px;
    height:92px;
  }
}

/* QR-utskrift: valdialog för skyltar. */
.qr-print-dialog [hidden]{
  display:none !important;
}

.qr-print-dialog .room-group{
  margin-top:18px;
}
