/* Compact typography and spacing, v0.2.1. */
html,body{font-size:13px}
.topbar{height:62px;gap:22px}
.brand{min-width:185px}.brand img{width:36px;height:36px}.brand strong{font-size:14px}.topbar nav{gap:18px}.topbar nav a{font-size:12px}
.page{padding:27px 26px 58px;min-height:calc(100vh - 104px)}
.page-heading{margin-bottom:18px}.page-heading h1{font-size:29px}.page-heading p{margin-top:4px}
.eyebrow{font-size:9px;margin-bottom:7px}
.panel{padding:16px;border-radius:12px;margin-bottom:15px}.panel h2{font-size:16px;margin-bottom:13px}.panel h3{font-size:13px;margin-top:18px}
.filterbar{margin-bottom:17px}.filterbar input,.filterbar select,.form-card input,.form-card select,.form-card textarea,.audit-form input,.status-form select,.quote-inline input{padding:8px 10px;border-radius:7px}
.btn{padding:8px 12px;border-radius:7px}.btn.large{padding:10px 15px}.btn.small{padding:5px 8px;font-size:11px}
.data-table{font-size:12px}.data-table th{font-size:9px;padding:8px 10px}.data-table td{padding:8px 10px}.data-table small{font-size:10px}
.mini-thumb{width:36px;height:36px}.badge{font-size:10px;padding:3px 7px}
.stat-grid{gap:11px;margin-bottom:15px}.stat-grid a{padding:15px 17px}.stat-grid span{font-size:11px}.stat-grid strong{font-size:28px;margin-top:6px}
.activity-list>div{padding:8px 0}.activity-icon{width:26px;height:26px}.activity-list{font-size:12px}
.form-grid{gap:10px}.form-card label,.audit-form label,.quote-inline label{font-size:11px}.form-actions{margin-top:15px}
.detail-list{grid-template-columns:130px 1fr}.detail-list dt,.detail-list dd{padding:7px 0}.prose{line-height:1.55}
.login-shell{min-height:66vh}.login-card{width:min(380px,100%);padding:28px}.login-card>img{width:74px;height:76px;margin-bottom:13px}.login-card h1{font-size:25px;margin-bottom:15px}.login-card form{gap:10px}.login-card input{padding:9px}
.popover{font-size:12px;min-width:220px;padding:10px}
footer{padding-top:18px;padding-bottom:27px;font-size:10px}

/* Public pages stay slightly more spacious than management views. */
.hero{min-height:250px;padding:36px 40px}.hero h1{font-size:clamp(34px,4.4vw,56px)}.hero p{font-size:15px}.hero-mark{width:180px;height:180px}
.catalog-grid{gap:15px}.card-image{height:195px}.card-body{padding:15px 15px 8px}.card-body h2{font-size:17px;margin-top:8px}.card-body p{font-size:12px}.card-action{padding:10px 15px 15px}
.detail-copy h1{font-size:38px}

@media(max-width:1100px){.mobile-nav{top:62px}}
@media(max-width:760px){html,body{font-size:13px}.page{padding:20px 14px 48px}.topbar{height:58px}.hero{padding:26px 22px;min-height:225px}.hero h1{font-size:34px}.page-heading h1{font-size:27px}.detail-copy h1{font-size:31px}.login-card{padding:24px}.mobile-nav{top:58px}}

/* Light theme, v0.2.2. */
:root{--bg:#f4f7f9;--bg2:#edf2f5;--panel:#fff;--panel2:#f7fafb;--line:#d4dee3;--text:#17252d;--muted:#607681;--accent:#087da2;--accent2:#b97700;--danger:#bc3540;--good:#18784e;--shadow:0 12px 34px rgba(31,54,66,.10);color-scheme:light}
html,body{background:radial-gradient(circle at 78% 0%,#e4f2f7 0,transparent 34%),linear-gradient(180deg,#f8fafb,#eef3f5 68%,#f6f8f9);color:var(--text)}
a{color:inherit}.topbar{border-color:#d9e2e6;background:rgba(255,255,255,.94);box-shadow:0 2px 12px rgba(34,61,74,.07)}
.topbar nav a{color:#405a66}.topbar nav a:hover{color:#087da2}.userbox{border-color:#d7e0e4}.userbox>small{color:#6b808a}.pill{background:#dceff5;color:#075d79}
.mobile-nav{background:#fff;border-color:#d8e2e6}.page{color:#17252d}footer{border-color:#d6e0e4;color:#758892}
.flash{border-color:#cad8de;background:#fff}.flash.success{border-color:#8cc9ae;color:#146a45;background:#f0faf5}.flash.error{border-color:#e2a5aa;color:#a52e38;background:#fff3f4}
.hero{border-color:#c5dce5;background:linear-gradient(115deg,rgba(255,255,255,.98),rgba(238,247,250,.94)),radial-gradient(circle at 80% 50%,rgba(8,125,162,.16),transparent 34%)}
.hero p{color:#536b76}.hero-mark{border-color:#9fc7d6}.hero-mark:before,.hero-mark:after{border-color:#a9cfdd}.hero-mark span{color:#087da2}
.panel,.login-card,.success-card{background:linear-gradient(180deg,#fff,#f8fafb);border-color:#d4e0e5;box-shadow:var(--shadow)}
.stat-grid a,.catalog-card{background:linear-gradient(145deg,#fff,#f2f7f9);border-color:#d3e0e5;box-shadow:0 7px 20px rgba(34,61,74,.08)}
.catalog-card:hover{border-color:#83b4c6}.card-image{background:#edf3f5}.image-placeholder{background:radial-gradient(circle,#e4f0f4,#f5f8f9 68%);border-color:#b8ced7;color:#7fa6b4}.card-body p{color:#566e78}.card-meta{color:#587d8c}.availability{color:#435e69}
.filterbar input,.filterbar select,.form-card input,.form-card select,.form-card textarea,.audit-form input,.status-form select,.quote-inline input,.login-card input,.popover input,.cart-line input{background:#fff;border-color:#bdcdd4;color:#17252d}
.filterbar input:focus,.filterbar select:focus,.form-card input:focus,.form-card select:focus,.form-card textarea:focus{border-color:#168eb3;box-shadow:0 0 0 3px rgba(22,142,179,.12)}
.btn{border-color:#b8cad2;background:#f7fafb;color:#263b45}.btn:hover{background:#eaf2f5}.btn.primary{background:linear-gradient(180deg,#2aa9ce,#087da2);border-color:#087da2;color:#fff}.link-button{color:#087da2}
.table-wrap{border-color:#d2dfe4;background:#fff}.data-table th{background:#eaf2f5;color:#4f6b77;border-color:#cbdadf}.data-table td{border-color:#e1e8eb}.click-row:hover td{background:#eef7fa}.mini-thumb{background:#e9f0f3;color:#6b929f}.badge{border-color:#bcd2da;background:#edf6f8}.muted{color:#778b94}
.activity-list>div,.timeline>div,.detail-list dt,.detail-list dd,.specs dt,.specs dd,.cart-line{border-color:#dce5e8}.activity-icon{background:#dceff5;color:#087da2}.activity-list small,.data-table small,.timeline small,.timeline em,.timeline time,.detail-list dt,.detail-list small,.specs dt,.cart-line small{color:#667d87}
.form-card h2{border-color:#d8e3e7}.form-card label,.audit-form label,.quote-inline label,.login-card label{color:#536b76}.form-card label small,.checks small{color:#71858e}.checks label{border-color:#ccdbe0}
.prose{color:#405963}.gallery img{background:#f4f7f8;border-color:#d2dfe4}.badges span{background:#eaf4f7;border-color:#c3dbe3}.quote-inline{border-color:#cfdee3}
.popover{background:#fff;border-color:#bdcfd6}.icon-btn{border-color:#aebfc6;background:#fff;color:#314a55}.partno{color:#087797!important}

/* Smaller headings requested after the first compact pass. */
.page-heading h1{font-size:24px}.panel h2{font-size:15px}.login-card h1{font-size:22px}.detail-copy h1{font-size:31px}.hero h1{font-size:clamp(30px,3.8vw,44px)}
@media(max-width:760px){.page-heading h1{font-size:23px}.hero h1{font-size:30px}.detail-copy h1{font-size:28px}}

/* Item image management, v0.2.3. */
.image-manager-list{display:grid;gap:10px;margin-bottom:14px}.image-manager-card{display:grid;grid-template-columns:120px 1fr;border:1px solid #d3dfe4;border-radius:10px;overflow:hidden;background:#fff}.image-manager-card.primary-image{border-color:#6aaec5;box-shadow:0 0 0 2px rgba(8,125,162,.08)}
.image-preview{position:relative;min-height:105px;background:#eef3f5}.image-preview img{width:100%;height:100%;object-fit:cover;display:block}.primary-label{position:absolute;left:6px;top:6px;padding:3px 7px;border-radius:12px;background:#087da2;color:#fff;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.image-controls{padding:9px 10px;min-width:0}.image-controls>strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:#506772}.image-controls form{margin:6px 0 0}.image-controls label{display:grid;grid-template-columns:1fr auto;gap:6px;font-size:10px;color:#657b85}.image-controls input[name="caption"]{min-width:0;padding:6px 8px;border:1px solid #bdcdd4;border-radius:6px;background:#fff;color:#17252d}.image-controls label+.btn{margin-top:5px}.image-actions{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.image-actions form{margin:0}.image-actions .btn:disabled{opacity:.38;cursor:not-allowed}.danger-button{color:#a52e38;border-color:#e0b7bb}
.image-dropzone{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;margin:14px 0 20px;padding:16px;border:2px dashed #9bbac6;border-radius:11px;background:#f5fafb;transition:.15s border-color,.15s background}.image-dropzone.drag-active{border-color:#087da2;background:#e7f4f8}.image-dropzone input[type="file"]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.image-dropzone label{display:flex;flex-direction:column;gap:2px;cursor:pointer}.image-dropzone label strong{color:#087da2}.image-dropzone label span{font-size:11px}.image-dropzone label small{font-size:10px;color:#6a808a}
.gallery figure{margin:0;display:grid;gap:5px}.gallery figcaption{font-size:11px;color:#607681;padding:0 4px 6px}
@media(max-width:760px){.image-manager-card{grid-template-columns:95px 1fr}.image-dropzone{grid-template-columns:1fr}.image-dropzone .btn{width:100%}}

/* Running release identification, v0.2.4. */
.header-version{flex:none;margin-left:-14px;padding:3px 7px;border:1px solid #c5d5dc;border-radius:10px;background:#eef5f7;color:#536d78;font:600 10px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.02em}
@media(max-width:760px){.header-version{margin-left:-16px;font-size:9px;padding:3px 6px}}

/* Hierarchical categories and pricing foundation, v0.3.1. */
.public-price{margin-top:8px;font-size:16px;font-weight:800;color:#075f7d}.public-price small{font-size:9px;font-weight:500;color:#6b7f88}.price-box{margin:18px 0;padding:14px;border:1px solid #c8dce3;border-radius:10px;background:#f3f9fb}.price-box h2{margin:0 0 3px;font-size:19px;color:#075f7d}.price-box p{margin:0 0 10px;color:#607681;font-size:11px}.price-box table{width:100%;border-collapse:collapse;margin:8px 0}.price-box th,.price-box td{text-align:left;padding:5px;border-bottom:1px solid #d9e6ea;font-size:11px}.price-box small{color:#607681}
.tier-form{display:flex;align-items:end;gap:8px;margin-top:12px}.tier-form label{display:grid;gap:4px;font-size:11px}.tier-form input{padding:7px 9px;border:1px solid #bdcdd4;border-radius:6px;background:#fff;color:#17252d}.price-tier-table{margin-top:12px}.price-tier-table form{margin:0}.cart-line.priced{grid-template-columns:56px minmax(180px,1fr) 110px 50px 120px 36px}.line-price{text-align:right}.estimate-totals{display:flex;justify-content:flex-end;align-items:center;gap:16px;padding:15px 0 4px;border-top:1px solid #dce5e8}.estimate-totals span{color:#607681}.estimate-totals strong{font-size:16px;color:#075f7d}
@media(max-width:760px){.tier-form{align-items:stretch;flex-direction:column}.cart-line.priced{grid-template-columns:46px 1fr 82px 30px}.cart-line.priced>span,.cart-line.priced>.line-price{display:none}.estimate-totals{justify-content:space-between}}

/* Typed internal/public information links, v0.4.0. */
.resource-link-list{display:grid;gap:9px}.resource-link-row,.resource-link-add{display:grid;grid-template-columns:180px minmax(180px,.7fr) minmax(280px,1.4fr) auto auto auto auto;gap:8px;align-items:end;padding:11px;border:1px solid #d6e2e6;border-radius:9px;background:#f8fafb}.resource-link-row label,.resource-link-add label{display:grid;gap:4px;font-size:10px;color:#607681}.resource-link-row input,.resource-link-row select,.resource-link-add input,.resource-link-add select{min-width:0;padding:7px 8px;border:1px solid #bdcdd4;border-radius:6px;background:#fff;color:#17252d}.resource-link-row .checkline,.resource-link-add .checkline{display:flex;align-items:center;gap:5px;white-space:nowrap;padding-bottom:7px}.resource-link-row .checkline input,.resource-link-add .checkline input{width:auto}.resource-link-add{margin-top:12px;grid-template-columns:180px minmax(180px,.7fr) minmax(280px,1.4fr) auto auto;background:#f3f9fb}.public-resources{margin:18px 0}.public-resources h2{font-size:16px;margin-bottom:8px}.public-resources ul{list-style:none;padding:0;margin:0;display:grid;gap:6px}.public-resources li{display:grid;grid-template-columns:150px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid #d9e5e9}.public-resources li span{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#6b8089}.public-resources a{color:#087da2;font-weight:700}
@media(max-width:1100px){.resource-link-row,.resource-link-add{grid-template-columns:1fr 1fr}.resource-url{grid-column:1/-1}}@media(max-width:760px){.resource-link-row,.resource-link-add{grid-template-columns:1fr}.resource-url{grid-column:auto}.public-resources li{grid-template-columns:1fr;gap:2px}}

/* Information links on initial item creation, v0.4.1. */
.initial-link-list{display:grid;gap:9px;margin:10px 0}.initial-link-row{display:grid;grid-template-columns:180px minmax(180px,.7fr) minmax(280px,1.4fr) auto auto;gap:8px;align-items:end;padding:11px;border:1px solid #d6e2e6;border-radius:9px;background:#f3f9fb}.initial-link-row label{display:grid;gap:4px}.initial-link-row .checkline{display:flex;align-items:center;gap:5px;white-space:nowrap;padding-bottom:7px}.initial-link-row .checkline input{width:auto}.initial-link-row .remove-initial-link{margin-bottom:1px}
@media(max-width:1100px){.initial-link-row{grid-template-columns:1fr 1fr}.initial-link-row .resource-url{grid-column:1/-1}}@media(max-width:760px){.initial-link-row{grid-template-columns:1fr}.initial-link-row .resource-url{grid-column:auto}}

/* PartKeepr-inspired inventory workspace, v0.5.0. */
.page.inventory-page{max-width:1900px;padding-left:16px;padding-right:16px}.inventory-heading{margin-bottom:12px}.inventory-toolbar{display:flex;align-items:center;gap:9px;margin-bottom:10px}.inventory-search{display:flex;gap:7px;flex:1}.inventory-search input{min-width:260px;flex:1;padding:8px 10px;border:1px solid #bdcdd4;border-radius:7px;background:#fff;color:#17252d}.view-switch{display:flex;gap:4px}.view-option.active{background:#dceff5;border-color:#79aec1;color:#075f7d;font-weight:700}
.inventory-workspace{display:grid;grid-template-columns:clamp(230px,18vw,330px) minmax(540px,1fr) clamp(250px,20vw,340px);gap:9px;align-items:start;min-height:620px}.inventory-workspace>.panel{margin:0;padding:0;border-radius:8px;overflow:hidden}.inventory-workspace.details-hidden{grid-template-columns:clamp(230px,18vw,330px) minmax(540px,1fr)}.inventory-workspace.details-hidden .part-detail-pane{display:none}.pane-title{height:38px;display:flex;align-items:center;justify-content:space-between;padding:0 10px;border-bottom:1px solid #cad9df;background:linear-gradient(#f5f9fb,#e7f0f4);color:#294652}.pane-title>a{font-size:10px;color:#087da2}
.category-pane{resize:horizontal;min-width:210px;max-width:480px;height:calc(100vh - 185px);min-height:560px;overflow:auto!important}.category-tree,.category-tree ul{list-style:none;margin:0;padding:0}.category-tree{padding:7px 5px 14px}.category-tree ul{margin-left:12px;border-left:1px dotted #afc2ca;padding-left:3px}.category-node summary{display:flex;list-style:none;cursor:pointer}.category-node summary::-webkit-details-marker{display:none}.category-filter{display:grid;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:4px;min-height:25px;padding:3px 6px;border-radius:5px;font-size:11px;white-space:nowrap}.category-node summary>.category-filter{flex:1}.category-filter:hover{background:#e7f2f6}.category-filter.active{background:#cce8f2;color:#075f7d;font-weight:700}.category-filter small{margin-left:8px;color:#738a94;font-size:9px}.tree-chevron{width:15px;display:grid;place-items:center;color:#607985;transition:transform .12s}.category-node details[open]>summary>.tree-chevron{transform:rotate(90deg)}.tree-spacer{width:15px}.folder-icon{width:13px;height:9px;border:1px solid #bc8500;border-radius:2px;background:#ffd86a;position:relative}.folder-icon:before{content:"";position:absolute;left:1px;top:-4px;width:6px;height:3px;border:1px solid #bc8500;border-bottom:0;border-radius:2px 2px 0 0;background:#ffe18a}
.parts-pane{min-width:0;height:calc(100vh - 185px);min-height:560px;display:flex;flex-direction:column}.compact-filters{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr)) auto;gap:5px;padding:7px;border-bottom:1px solid #d2dfe4;background:#f7fafb}.compact-filters select{min-width:0;padding:6px 7px;border:1px solid #bdcdd4;border-radius:5px;background:#fff;color:#17252d;font-size:10px}.parts-table{border:0;border-radius:0;flex:1}.parts-table .data-table{font-size:10px;min-width:930px}.parts-table .data-table th{padding:7px 8px;font-size:8px;background:#e7f0f4}.parts-table .data-table th button{border:0;background:none;padding:0;color:inherit;text-transform:inherit;font:inherit;cursor:pointer}.parts-table .data-table td{padding:5px 8px}.parts-table .mini-thumb{width:28px;height:28px;border-radius:4px}.parts-table .description-cell{max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.select-part{cursor:pointer}.select-part:hover td,.select-part.selected td{background:#e5f3f8}.select-part.selected td{box-shadow:inset 0 1px #9cc9d8,inset 0 -1px #9cc9d8}
.part-detail-pane{height:calc(100vh - 185px);min-height:560px;overflow:auto!important;padding-bottom:14px!important}.part-detail-pane>h2,.part-detail-pane>p,.part-detail-pane>dl,.part-detail-pane>.detail-preview-actions{margin-left:12px;margin-right:12px}.part-detail-pane>h2{font-size:16px;margin-top:12px;margin-bottom:3px}.detail-preview-image{height:255px;width:100%;box-sizing:border-box;padding:12px;background:#edf3f5;display:flex;align-items:center;justify-content:center;overflow:hidden;color:#7898a5;font-size:34px;font-weight:800}.detail-preview-image img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;min-width:0;min-height:0;object-fit:contain}.quick-details{display:grid;grid-template-columns:82px 1fr;font-size:10px}.quick-details dt,.quick-details dd{padding:6px 0;border-bottom:1px solid #dce5e8}.quick-details dt{color:#6d838d}.quick-details dd{margin:0}.detail-preview-description{font-size:11px;line-height:1.5;color:#526a74;max-height:120px;overflow:auto}.detail-preview-actions{display:flex;gap:6px;margin-top:12px}.internal-thumbnail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:8px;padding:10px;overflow:auto}.internal-part-card{border:1px solid #d2dfe4;border-radius:7px;background:#fff;overflow:hidden;cursor:pointer}.internal-part-card:hover,.internal-part-card.selected{border-color:#70aec3;box-shadow:0 0 0 2px rgba(8,125,162,.08)}.internal-card-image{height:110px;background:#edf3f5;display:grid;place-items:center;color:#7d9eaa;font-size:25px;font-weight:800}.internal-card-image img{width:100%;height:100%;object-fit:contain}.internal-part-card>div:last-child{padding:8px}.internal-part-card strong,.internal-part-card small{display:block}.internal-part-card small{margin-top:3px;color:#71858e;font-size:9px}.internal-part-card p{margin:7px 0 0;font-size:10px;color:#4d6873}
@media(max-width:1200px){.inventory-workspace{grid-template-columns:240px minmax(500px,1fr)}.part-detail-pane{display:none}.inventory-toolbar>#toggle-details{display:none}}@media(max-width:760px){.inventory-toolbar{align-items:stretch;flex-direction:column}.inventory-search{width:100%}.inventory-search input{min-width:0}.inventory-workspace,.inventory-workspace.details-hidden{display:block}.category-pane{resize:none;max-width:none;width:100%;height:300px;min-height:0;margin-bottom:8px!important}.parts-pane{height:auto;min-height:500px}.compact-filters{grid-template-columns:1fr 1fr}.view-switch{align-self:flex-start}}

/* Correct category-tree alignment, v0.5.2. */
.category-filter{text-align:left}.category-filter.leaf{grid-template-columns:15px 16px minmax(0,1fr) auto}.category-filter>span:not(.folder-icon):not(.tree-spacer){justify-self:start;text-align:left;overflow:hidden;text-overflow:ellipsis}.category-filter small{justify-self:end}

/* Public catalogue hero artwork, v0.5.3. */
.hero{position:relative;display:block;isolation:isolate}.hero-copy{position:relative;z-index:2;width:min(48%,620px)}.hero-art{position:absolute;z-index:1;right:-1%;top:0;width:72%;height:100%;object-fit:contain;object-position:right center;pointer-events:none;user-select:none}.hero:after{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.98) 35%,rgba(255,255,255,.68) 50%,rgba(255,255,255,0) 67%);pointer-events:none}.hero-copy{position:relative;z-index:3}
@media(max-width:900px){.hero-copy{width:62%}.hero-art{width:78%;right:-14%;opacity:.72}.hero:after{background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.96) 48%,rgba(255,255,255,.35) 72%,transparent 100%)}}@media(max-width:760px){.hero-copy{width:100%}.hero-art{right:-30%;width:105%;opacity:.20}.hero:after{background:rgba(255,255,255,.72)}}

/* v0.5.5: accessible native file picker, per-file progress and clear errors. */
.image-dropzone .image-upload-controls{display:grid;gap:8px;min-width:0}
.image-dropzone .image-upload-controls label{display:flex;flex-direction:column;gap:2px;cursor:pointer;font-size:12px}
.image-dropzone .image-upload-controls input[type="file"]{position:static;width:100%;height:auto;opacity:1;pointer-events:auto;clip:auto;display:block;max-width:100%;padding:7px;border:1px solid #a9c7d2;border-radius:6px;background:#fff;color:#273c45;font:inherit;font-size:11px}
.image-dropzone .image-upload-controls [data-file-status]{color:#526d78;font-size:11px}
.image-dropzone .image-upload-controls [data-upload-progress]{width:100%;height:12px}
.image-dropzone .image-upload-controls [data-upload-progress][hidden]{display:none}
.image-upload-results{display:block;white-space:pre-wrap;font-size:11px;line-height:1.5;color:#9c2e36;overflow-wrap:anywhere}
.image-upload-results:empty{display:none}
.image-upload-results a{color:#075b87;text-decoration:underline}
.image-dropzone button:disabled{opacity:.55;cursor:wait}
@media(max-width:760px){.image-dropzone{grid-template-columns:minmax(0,1fr)}.image-dropzone .btn{width:100%}}


/* v0.5.6: upload is available from Edit Item as well as the details page.
   The whole Images panel is a drop target, not merely the narrow form. */
[data-image-drop-region].drag-active{outline:3px solid #087da2;outline-offset:-3px;background:#eaf7fb}
[data-image-drop-region].drag-active .image-dropzone{border-color:#087da2;background:#dbf1f8}
.image-edit-panel>.muted{margin:0 0 12px}
.image-upload-thumbs{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0}
.image-upload-thumbs:empty{display:none}
.image-upload-thumbs figure{margin:0;width:110px;min-width:0;border:1px solid #d3dfe4;border-radius:8px;overflow:hidden;background:#fff}
.image-upload-thumbs img{display:block;width:100%;height:85px;object-fit:contain}
.image-upload-thumbs figcaption{padding:5px;font-size:10px;color:#536b76;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.image-gallery-link{display:inline-block;margin:0 0 2px;color:#087da2;font-size:12px;text-decoration:underline}
.image-dropzone{cursor:default}
.image-dropzone .image-upload-controls label strong{font-size:13px}
.image-dropzone .image-upload-controls label span{font-size:11px}
.image-dropzone input[type="file"]{cursor:pointer}
.image-dropzone .image-upload-results{font-weight:600}

/* v0.5.7: runtime indication also functions without loaded JavaScript. */
.image-upload-mode{display:block;padding:8px 10px;border:1px solid #d5b56e;border-radius:7px;background:#fff6dd;color:#66501a!important;font-weight:600;font-size:11px!important}
.image-upload-mode[data-state="enhanced"]{border-color:#91cfbb;background:#e9f9f2;color:#1f624e!important}

/* v0.5.8: The generic catalogue .image-placeholder uses height:100% for
   thumbnails.  On an ITEM DETAIL Images panel that percentage made the empty
   placeholder consume the entire grid cell and put the upload form and
   Physical data OUTSIDE the panel, visually overlaying the next section.
   Give the detail placeholder a definite compact height and size both panels
   by their actual content instead of stretching the placeholder. */
.detail-grid { align-items: start; }
.detail-grid > .panel { min-width: 0; }
.detail-grid > [data-image-drop-region] > .image-placeholder {
  box-sizing: border-box;
  height: 218px;
  min-height: 0;
  max-height: 218px;
  width: 100%;
}
.detail-grid > [data-image-drop-region] > .image-dropzone {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  margin: 14px 0 18px;
}
@media(max-width:760px) {
  .detail-grid > [data-image-drop-region] > .image-placeholder {
    height: 170px;
    max-height: 170px;
  }
}

/* v0.5.12: customer quotation reply composer and retained SMTP history. */
.quote-reply-panel,.quote-reply-history{max-width:100%;min-width:0}
.quote-reply-form{display:grid;gap:9px;max-width:880px}
.quote-reply-form>label:not(.quote-mark-quoted){color:#536b76;font-size:12px;font-weight:650}
.quote-reply-form input[type="text"],.quote-reply-form textarea{display:block;width:100%;min-width:0;box-sizing:border-box;border:1px solid #bdcdd4;border-radius:8px;background:#fff;color:#17252d;padding:10px 12px;font:inherit;line-height:1.5}
.quote-reply-form textarea{resize:vertical;min-height:160px;white-space:pre-wrap}
.quote-reply-form input:focus,.quote-reply-form textarea:focus{outline:2px solid #168eb3;outline-offset:1px}
.quote-reply-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 12px;background:#f2f8fa;border:1px solid #d1e3e9;border-radius:8px;overflow-wrap:anywhere}
.quote-reply-meta strong{color:#536b76}
.quote-mark-quoted{display:flex;align-items:flex-start;gap:9px;font-size:12px;color:#405d68}
.quote-mark-quoted input{margin:2px 0 0;flex:none}
.quote-reply-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:4px}
.quote-reply-actions small{max-width:460px;color:#69808b}
.quote-reply-actions .btn:disabled{opacity:.6;cursor:not-allowed}
.quote-reply-warning{border:1px solid #dfbc78;border-radius:8px;background:#fff7e8;color:#744d08;padding:11px 13px;margin:9px 0;overflow-wrap:anywhere}
.quote-original-message,.quote-reply-saved-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6;color:#405963}
.quote-reply-entry{padding:15px 0;border-top:1px solid #dbe5e9;min-width:0}
.quote-reply-entry-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;overflow-wrap:anywhere}
.quote-reply-entry-meta{font-size:11px;color:#667c88;margin:7px 0 10px;overflow-wrap:anywhere}
.quote-reply-entry details{margin:12px 0 0;border:1px solid #d6e3e8;border-radius:8px;padding:10px 12px;background:#f8fafb}
.quote-reply-entry details summary{cursor:pointer;font-weight:700;color:#087da2}
.quote-reply-saved-body{margin:11px 0 5px}
.quote-reply-state{display:inline-flex;font-size:11px;border-radius:12px;padding:4px 9px;border:1px solid}
.quote-reply-state.state-sent{background:#ecfaf3;border-color:#99d5b5;color:#146a45}
.quote-reply-state.state-failed{background:#fff1f1;border-color:#e3aab0;color:#a22d39}
.quote-reply-state.state-pending{background:#fff7e5;border-color:#e1c784;color:#865a09}
.quote-reply-entry .btn.small{margin:5px 0}
@media(max-width:760px){.quote-reply-actions{align-items:stretch;flex-direction:column}.quote-reply-actions .btn{width:100%}}

/* The quotation's wide item table must scroll *inside* its panel on phones. */
.quote-request-summary{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.quote-request-summary>.panel{min-width:0}
.quote-request-summary .table-wrap{max-width:100%;overflow-x:auto}
@media(max-width:760px){.quote-request-summary{grid-template-columns:minmax(0,1fr)}}

/* Individual unit IDs are real inventory identities, not shared type codes. */
.individual-codes {white-space:normal; min-width:145px;}
.individual-codes summary {cursor:pointer; color:#006b91; font:600 11px/1.5 system-ui,sans-serif;}
.individual-codes-list {display:flex;flex-wrap:wrap;gap:4px 9px;max-height:225px;overflow-y:auto;font:600 11px/1.5 ui-monospace,Consolas,monospace;}
.individual-codes-list a {color:#006b91;text-decoration:underline;}
