@import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Fraunces:ital,opsz,wght@0,9..144,100..900;1,9..144,100..900&display=swap";:root{--container-max-width: 1200px;--container-max-width-tablet: 800px;--container-max-width-mobile: 420px;--container-padding: 24px;--border-radius: 12px;--border-radius-large: 24px;--font-size-base: 16px;--font-size-large: 1.1rem;--font-size-small: .9rem;--spacing-unit: 8px;--logo-size: 180px;--modal-max-width: 500px}*{box-sizing:border-box}body{margin:0;padding:0;min-height:100vh;background:#f8f8fa;font-family:SF Pro Display,Segoe UI,Roboto,Arial,sans-serif;color:#222;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-base);line-height:1.5}.welcome-container{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;max-width:var(--container-max-width);min-height:100vh;background:#fff;box-shadow:0 4px 32px #00000014;border-radius:var(--border-radius);padding:calc(var(--spacing-unit) * 4) calc(var(--spacing-unit) * 3);box-sizing:border-box;transition:box-shadow .3s;margin:0 auto}.logo{width:var(--logo-size);max-width:80vw;height:auto;margin-bottom:calc(var(--spacing-unit) * 4);filter:drop-shadow(0 2px 8px rgba(0,0,0,.06))}.tagline{font-size:1.4rem;font-weight:400;margin-bottom:calc(var(--spacing-unit) * 5);color:#444;letter-spacing:.02em;text-align:center}.primary-btn{background:linear-gradient(90deg,#e0e7ef,#f3f4f6);color:#222;font-size:var(--font-size-large);font-weight:600;padding:calc(var(--spacing-unit) * 2.25) calc(var(--spacing-unit) * 6);border:none;border-radius:32px;box-shadow:0 2px 12px #00000014;cursor:pointer;transition:background .2s,box-shadow .2s,transform .1s;outline:none;min-height:48px;display:flex;align-items:center;justify-content:center}.primary-btn:hover,.primary-btn:focus{background:linear-gradient(90deg,#f3f4f6,#e0e7ef);box-shadow:0 4px 16px #0000001f;transform:translateY(-2px) scale(1.03)}.room-selection-container{max-width:var(--container-max-width);width:100%;margin:0 auto;padding:calc(var(--spacing-unit) * 2) calc(var(--spacing-unit) * 3);display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;min-height:100vh;background:#fff;border-radius:var(--border-radius);box-shadow:0 4px 32px #00000014;box-sizing:border-box;position:relative}.room-selection-container h2{font-size:1.4rem;font-weight:600;margin:calc(var(--spacing-unit) * 1.25) 0 calc(var(--spacing-unit) * .25) 0;text-align:center;width:100%}.room-selection-container .subtitle{font-size:1rem;color:#888;margin-bottom:var(--spacing-unit);margin-top:0;text-align:center;width:100%}.room-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:calc(var(--spacing-unit) * 1.25);width:100%;margin-bottom:calc(var(--spacing-unit) * 1.5)}.room-btn{background:#f8f8fa;border:none;border-radius:12px;padding:calc(var(--spacing-unit) * 1.5) 0 calc(var(--spacing-unit) * 1) 0;font-size:.98rem;font-weight:500;color:#222;box-shadow:0 1px 4px #00000008;cursor:pointer;transition:background .2s,box-shadow .2s,transform .1s;outline:none;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:70px;position:relative;aspect-ratio:1}.room-btn .room-icon{font-size:1.4rem;margin-bottom:calc(var(--spacing-unit) * .5)}.add-room-btn{background:#f0f0f3;color:#444;font-size:1.1rem;font-weight:500;border:none;border-radius:18px;padding:calc(var(--spacing-unit) * 2) 0;width:100%;margin-top:var(--spacing-unit);box-shadow:0 2px 8px #0000000a;cursor:pointer;transition:background .2s,box-shadow .2s,transform .1s;min-height:48px}.add-room-btn:hover,.add-room-btn:focus{background:#eaeaea;transform:translateY(-1px) scale(1.01)}.back-btn{position:absolute;top:calc(var(--spacing-unit) * 2.25);left:calc(var(--spacing-unit) * 2.25);z-index:10}.back-btn:active,.back-btn:focus,.back-btn:hover{color:#174ea6;background:#e0e7ef}.scanner-container{position:relative;max-width:var(--container-max-width);width:100%;margin:0 auto;padding:calc(var(--spacing-unit) * 3) calc(var(--spacing-unit) * 1) 0 calc(var(--spacing-unit) * 1);display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;min-height:100vh;background:#fff;border-radius:var(--border-radius);box-shadow:0 4px 32px #0000000a;box-sizing:border-box}.scanner-container .back-btn{position:absolute;top:calc(var(--spacing-unit) * 2.25);left:calc(var(--spacing-unit) * 2.25);z-index:10}.scanner-header{width:100%;display:flex;align-items:center;justify-content:flex-start;margin-bottom:var(--spacing-unit)}.room-badge{background:#e0e7ef;color:#2563eb;font-weight:600;border-radius:12px;padding:calc(var(--spacing-unit) * .75) calc(var(--spacing-unit) * 2);margin-left:calc(var(--spacing-unit) * 1.5);font-size:var(--font-size-small)}.camera-preview{position:relative;width:100%;max-width:340px;aspect-ratio:4/3;background:#222;border-radius:18px;overflow:hidden;margin-bottom:calc(var(--spacing-unit) * 2.25);box-shadow:0 2px 12px #0000001a;display:flex;align-items:center;justify-content:center;transform:translateZ(0);backface-visibility:hidden;perspective:1000px}#scanner-video{width:100%;height:100%;object-fit:contain;border-radius:18px;transform:translateZ(0);backface-visibility:hidden}#scanner-viewport{-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden;transform:translateZ(0);backface-visibility:hidden;perspective:1000px;touch-action:manipulation;user-select:none;-webkit-user-select:none}#scanner-viewport video{-webkit-transform:translateZ(0);transform:translateZ(0);width:100%!important;height:100%!important;object-fit:cover}#scanner-viewport canvas{image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges}#scanner-overlay{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}.scan-area{position:absolute;top:20%;left:10%;right:10%;bottom:20%;border:2px solid #2563eb;border-radius:12px;box-sizing:border-box;z-index:2}.scan-line{position:absolute;left:12%;right:12%;top:40%;height:2px;background:linear-gradient(90deg,#2563eb,#e0e7ef);border-radius:1px;animation:scan-move 1.2s infinite alternate;z-index:3}@keyframes scan-move{0%{top:30%}to{top:60%}}.manual-entry{width:100%;margin:calc(var(--spacing-unit) * 2.25) 0 var(--spacing-unit) 0;display:flex;flex-direction:column;align-items:flex-start}.manual-entry label{font-size:.98rem;color:#666;margin-bottom:calc(var(--spacing-unit) * .5)}#manual-barcode{width:100%;font-size:1.1rem;padding:calc(var(--spacing-unit) * 1.25) calc(var(--spacing-unit) * 1.5);border-radius:10px;border:1px solid #e0e0e0;margin-bottom:var(--spacing-unit);box-sizing:border-box}#manual-search-btn{align-self:flex-end;background:#e6f7ec;color:#1a7f4e;font-weight:600;border:none;border-radius:10px;padding:var(--spacing-unit) calc(var(--spacing-unit) * 2.25);font-size:1rem;cursor:pointer;transition:background .2s;min-height:40px}#manual-search-btn:hover,#manual-search-btn:focus{background:#d2f4e3}.scanner-actions{width:100%;display:flex;justify-content:flex-end;margin-top:calc(var(--spacing-unit) * 1.5)}#scanner-feedback{width:100%;min-height:calc(var(--spacing-unit) * 3);color:#1a7f4e;font-size:1.1rem;text-align:center;margin-top:var(--spacing-unit)}.product-details-container{max-width:var(--container-max-width);width:100%;margin:0 auto;padding:calc(var(--spacing-unit) * 2) calc(var(--spacing-unit) * 3);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:100vh;background:#fff;border-radius:var(--border-radius);box-shadow:0 4px 32px #00000014;box-sizing:border-box;position:relative}.product-image-wrap{width:200px;height:200px;margin:0 auto 8px;display:flex;align-items:center;justify-content:center;margin:4px auto!important;padding:0!important;background:none!important;border-radius:18px;box-shadow:none!important}#product-image{max-width:200px;max-height:200px;width:100%;height:auto;border-radius:12px;object-fit:contain;background:#fff;display:block;margin:0 auto}#product-name{font-size:1.3rem;font-weight:600;margin:var(--spacing-unit) 0 calc(var(--spacing-unit) * .5) 0;text-align:center;color:#222;width:100%}.product-meta{display:flex;flex-direction:row;justify-content:space-between;width:100%;gap:8px;font-size:1rem;color:#888;margin-bottom:var(--spacing-unit)}#product-price-inline{text-align:right;color:#1a7f4e;font-weight:600;margin-bottom:var(--spacing-unit)}#product-code,#product-price-inline{flex:1 1 0;font-size:1rem;color:#888;text-align:left;font-weight:500}#product-price-inline{text-align:right;color:#1a7f4e;font-weight:600}.product-price{font-size:1.08rem;font-weight:600;color:#1a7f4e;margin-bottom:8px;text-align:center;margin-bottom:var(--spacing-unit)}.product-description{font-size:1rem;color:#444;margin-bottom:calc(var(--spacing-unit) * 1.5);text-align:left;width:100%}.product-links{display:flex;flex-direction:row;gap:8px;margin-bottom:calc(var(--spacing-unit) * 2);flex-wrap:nowrap;width:100%;justify-content:space-between}.product-links a{flex:1 1 0;min-width:0;text-align:center;width:auto;justify-content:center;margin:0;background:#f8f8fa;color:#2563eb;text-decoration:none;padding:10px 0;border-radius:10px;font-size:var(--font-size-small);font-weight:500;transition:background .2s,transform .1s;display:flex;align-items:center;gap:4px;border:none;box-shadow:none}.product-links a:hover{background:#e0e7ef;transform:translateY(-1px);text-decoration:none}.product-details-row{display:flex;flex-direction:row;gap:4px;width:100%;margin-bottom:calc(var(--spacing-unit) * 1.5);align-items:flex-end;justify-content:space-between}.room-select-field{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:flex-start}.quantity-field{flex:0 0 64px;width:64px;display:flex;flex-direction:column;align-items:flex-end}.room-select-field label,.room-select-field select{align-self:flex-start;text-align:left;margin-left:0}.quantity-field label,.quantity-field select{align-self:flex-end;text-align:right}.variant-select-row label{font-size:var(--font-size-small);color:#666;margin-bottom:calc(var(--spacing-unit) * .5)}#room-select,#product-quantity{width:100%;padding:calc(var(--spacing-unit) * 1.25) calc(var(--spacing-unit) * 1.5);border-radius:10px;border:1px solid #e0e0e0;font-size:1rem;background:#fff;margin-bottom:calc(var(--spacing-unit) * 1.5);min-height:44px}#room-select:focus,#product-quantity:focus{outline:none;border-color:#2563eb}.annotation-field{width:100%;margin-bottom:calc(var(--spacing-unit) * 2)}.annotation-label-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:calc(var(--spacing-unit) * .5)}.annotation-char-count{font-size:var(--font-size-small);color:#888}#add-to-room-btn{background:linear-gradient(90deg,#e0e7ef,#f3f4f6);color:#222;font-size:1.2rem;font-weight:600;padding:18px 48px;border:none;border-radius:32px;box-shadow:0 2px 12px #00000014;cursor:pointer;transition:background .2s,box-shadow .2s,transform .1s;outline:none;width:100%;margin-top:calc(var(--spacing-unit) * 1.5);min-height:48px}#add-to-room-btn:hover,#add-to-room-btn:focus{background:linear-gradient(90deg,#f3f4f6,#e0e7ef);box-shadow:0 4px 16px #0000001f;transform:translateY(-2px) scale(1.03)}.product-search{width:100%;margin-bottom:calc(var(--spacing-unit) * 1.5);position:relative}.product-search label{display:block;font-size:var(--font-size-small);color:#666;margin-bottom:calc(var(--spacing-unit) * .5)}#product-search-input{width:100%;padding:calc(var(--spacing-unit) * 1.25) calc(var(--spacing-unit) * 1.5);border-radius:10px;border:1px solid #e0e0e0;font-size:1rem;background:#fff;min-height:44px}.search-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #e0e0e0;border-radius:10px;box-shadow:0 4px 16px #0000001a;z-index:1000;max-height:200px;overflow-y:auto;display:none;margin-top:calc(var(--spacing-unit) * .5)}.search-dropdown.visible{display:block}.search-dropdown li{padding:calc(var(--spacing-unit) * 1.25) calc(var(--spacing-unit) * 1.5);cursor:pointer;border-bottom:1px solid #f0f0f0;font-size:1rem;transition:background .2s}.search-dropdown li:last-child{border-bottom:none}.search-dropdown li:hover,.search-dropdown li.active{background:#f8f8fa}#product-annotation{width:100%;padding:calc(var(--spacing-unit) * 1.25) calc(var(--spacing-unit) * 1.5);border-radius:10px;border:1px solid #e0e0e0;font-size:1rem;background:#fff;resize:vertical;min-height:80px;font-family:inherit}.top-bar{width:100%;display:flex;flex-direction:row;align-items:center;justify-content:center;position:relative;margin-bottom:8px;min-height:48px}.top-bar .back-btn{position:absolute;left:0;top:0;min-width:44px;min-height:44px;width:44px;height:44px;font-size:2.2rem;display:flex;align-items:center;justify-content:center;z-index:2}.top-bar .page-logo{margin:0 auto;display:block;position:relative;left:0;right:0;height:22px;width:auto;opacity:.85}.review-container{max-width:var(--container-max-width);width:100%;margin:0 auto;padding:calc(var(--spacing-unit) * 2) calc(var(--spacing-unit) * 3);display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;min-height:100vh;background:#fff;border-radius:var(--border-radius);box-shadow:0 4px 32px #00000014;box-sizing:border-box;position:relative}.review-container h2{font-size:1.4rem;font-weight:600;margin:12px 0 2px;text-align:center}.review-container .subtitle{display:none}#review-list{width:100%;margin-bottom:12px}.review-room-group{margin-bottom:8px}.review-room-group+.review-room-group{border-top:1px solid #e0e0e0;margin-top:8px}.review-room-header{font-size:1.05rem;font-weight:600;color:#2563eb;margin-bottom:2px;margin-top:8px;display:flex;align-items:center;gap:6px}.review-product-card{background:#fff;border-radius:16px;box-shadow:0 2px 12px #00000012;margin-bottom:4px;padding:20px 16px 16px;display:flex;flex-direction:row;align-items:flex-start;position:relative}.review-product-thumb-wrap{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;min-width:96px;position:relative}.review-product-thumb{width:96px;height:96px;border-radius:12px;object-fit:cover;background:#fff;margin-bottom:10px}.review-qty-pill{display:flex;align-items:center;background:none;border:1.5px solid #bbb;border-radius:999px;box-shadow:none;padding:0 8px;gap:2px;min-width:56px;min-height:28px;font-size:1.1rem;font-weight:500;margin:16px 0 0;position:static}.review-qty-btn{background:none;border:none;color:#111;font-size:1.5rem;font-weight:700;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s}.review-qty-btn.delete{color:#111;font-size:1.7rem}.review-qty-btn svg{width:22px;height:22px;display:block}.review-qty-value{min-width:16px;text-align:center;font-size:1.1rem;font-weight:500}.review-product-info{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin-top:6px;margin-left:18px}.review-product-title{font-size:.98rem;font-weight:600;color:#222;margin-bottom:2px}.review-product-meta{font-size:.96rem;color:#888;margin-bottom:2px;display:flex;flex-direction:row;align-items:flex-start;justify-content:flex-start;width:100%}.review-product-code{flex:1;text-align:left}.review-product-price{font-size:.96rem;color:#222;font-weight:500;text-align:right;min-width:70px;margin-left:8px}.review-product-notes{font-size:.98rem;color:#444;margin-bottom:2px}.review-actions{width:100%;display:flex;justify-content:space-between;gap:8px;margin-top:48px;margin-bottom:18px}.secondary-btn{background:#f3f4f6;color:#2563eb;font-size:1rem;font-weight:500;border:none;border-radius:14px;padding:10px 0;width:48%;box-shadow:0 1px 4px #00000008;cursor:pointer;transition:background .2s,box-shadow .2s,transform .1s}.secondary-btn:hover,.secondary-btn:focus{background:#e0e7ef;transform:translateY(-1px) scale(1.01)}.empty-state{color:#888;font-size:1rem;text-align:center;margin-top:18px}.review-product-description-full{display:none}.review-qty-pill{display:flex;align-items:center;background:none;border:1.5px solid #bbb;border-radius:999px;box-shadow:none;padding:0 6px;gap:2px;min-width:48px;min-height:24px;font-size:.98rem;font-weight:500;margin:4px 0 0;position:absolute;left:0;bottom:-10px}.review-qty-btn{background:none;border:none;color:#111;font-size:1.4rem;font-weight:700;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s}.review-qty-btn:active{background:#ededed}.review-qty-btn.delete{color:#111;font-size:1.6rem}.review-qty-btn svg{width:20px;height:20px;display:block}.review-qty-value{min-width:16px;text-align:center;font-size:1rem;font-weight:500}.clear-selection-btn{font-size:1.05rem!important;padding:12px 32px!important;background:#fff0f0!important;color:#b91c1c!important;border-radius:32px!important;width:auto!important;min-width:120px!important;display:block!important;margin:32px auto 8px!important;border:none!important;box-shadow:none!important;font-weight:600;transition:background .2s,box-shadow .2s,transform .1s;cursor:pointer}.clear-selection-btn:hover,.clear-selection-btn:focus{background:#ffe5e5!important;color:#a00!important;transform:translateY(-2px) scale(1.03)}.logo,.page-logo{width:var(--logo-size);max-width:80vw;height:auto;margin-bottom:calc(var(--spacing-unit) * 4);filter:drop-shadow(0 2px 8px rgba(0,0,0,.06));display:block;opacity:.85;align-self:center}@media (max-width: 600px){html,body{width:100vw;min-height:100vh;height:auto;margin:0;padding:0;background:#f4f6f9;overflow-x:hidden;overflow-y:auto;scroll-padding-top:32px}.scanner-container{max-width:none;width:100vw;min-height:100vh;height:100vh;border-radius:0;box-shadow:none;padding:0 0 32px;background:#f4f6f9;display:flex;flex-direction:column;align-items:center}.scanner-header{width:100vw;padding:24px 18px 0;background:#f4f6f9;box-sizing:border-box}.camera-preview{max-width:none;width:94vw;height:60vw;min-height:240px;max-height:60vh;border-radius:18px;margin:24px 0 18px;box-shadow:0 4px 24px #0000001a;background:#fff;padding:0;display:flex;align-items:center;justify-content:center;position:relative}#scanner-viewport{width:100%!important;height:100%!important;min-height:240px;max-height:60vh;object-fit:contain;border-radius:18px!important;background:#222;display:block;transform:translateZ(0)!important;backface-visibility:hidden!important;perspective:1000px!important}#scanner-overlay{border-radius:18px;pointer-events:none}.product-search,.scanner-actions,#scanner-feedback{padding-left:18px;padding-right:18px}.product-search,.scanner-actions{margin-top:18px}#scanner-feedback{margin-top:12px}.product-details-container{max-width:none;width:100vw;min-height:100vh;height:100vh;border-radius:0;box-shadow:none;background:#fff;padding:0 0 24px;display:flex;flex-direction:column;align-items:stretch}.product-image-wrap{width:140px;height:140px;margin-bottom:6px}#product-image{max-width:140px;max-height:140px}.annotation-field,.room-select-field,.quantity-field,.product-links{width:92vw;max-width:420px;margin-left:auto;margin-right:auto}.room-selection-container{max-width:none;width:100vw;min-height:100vh;height:100vh;border-radius:0;box-shadow:none;padding:0 0 32px;background:#fff;display:flex;flex-direction:column;align-items:center}.room-grid,.add-room-btn{width:94vw;margin-left:auto;margin-right:auto}.room-selection-container h2,.room-selection-container .subtitle{padding-left:18px;padding-right:18px;text-align:center}.review-container{max-width:none;width:100vw;min-height:unset;height:auto;border-radius:0;box-shadow:none;padding:0 8px 24px;background:#f4f6f9;display:flex;flex-direction:column;align-items:center;overflow-x:hidden;overflow-y:visible;margin-top:0}.review-actions{width:100%;display:flex;justify-content:space-between;gap:8px;margin-top:24px;margin-bottom:12px;padding:0 12px}.secondary-btn{font-size:1rem;padding:10px 0;width:48%;border-radius:10px;min-width:0;max-width:100%;box-shadow:0 1px 4px #00000008}.back-btn{font-size:1.2rem;margin-top:8px;margin-bottom:8px;padding:0 0 0 2px;min-width:0;min-height:0;width:auto;height:auto}.review-container h2{margin-top:12px}}.modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000052;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:var(--border-radius);padding:calc(var(--spacing-unit) * 3);max-width:var(--modal-max-width);width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 8px 48px #0000001f}.page-logo{width:48px;height:auto;display:block;margin:24px auto 12px;opacity:.85;align-self:center}.product-details-container,.review-container,.scanner-container,.room-selection-container{align-items:flex-start!important;justify-content:flex-start!important}@media (min-width: 1200px){:root{--container-max-width: 1400px;--container-max-width-tablet: 1000px;--logo-size: 200px;--modal-max-width: 600px}.welcome-container{padding:calc(var(--spacing-unit) * 6) calc(var(--spacing-unit) * 4)}.room-selection-container,.product-details-container,.review-container,.product-lookup-container{padding:calc(var(--spacing-unit) * 4) calc(var(--spacing-unit) * 6)}.room-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}@media (min-width: 768px) and (max-width: 1199px){:root{--container-max-width: var(--container-max-width-tablet);--logo-size: 160px;--modal-max-width: 500px}.welcome-container{padding:calc(var(--spacing-unit) * 4) calc(var(--spacing-unit) * 3)}.room-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.camera-preview{max-width:400px}.product-image-wrap{width:180px;height:180px}#product-image{max-width:180px;max-height:180px}}@media (min-width: 481px) and (max-width: 767px){:root{--container-max-width: var(--container-max-width-mobile);--logo-size: 140px}.welcome-container{padding:calc(var(--spacing-unit) * 3) calc(var(--spacing-unit) * 2)}.room-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}}@media (max-width: 480px){:root{--container-max-width: var(--container-max-width-mobile);--logo-size: 120px}body{padding:calc(var(--spacing-unit) * 1)}.welcome-container{padding:calc(var(--spacing-unit) * 2) calc(var(--spacing-unit) * 1.5);min-height:calc(100vh - 16px)}.room-selection-container,.product-details-container,.review-container,.product-lookup-container{padding:calc(var(--spacing-unit) * 1.5) calc(var(--spacing-unit) * 1);min-height:calc(100vh - 16px)}.room-grid{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.room-btn{min-height:80px;font-size:.9rem}.room-btn .room-icon{font-size:1.2rem}.camera-preview{max-width:100%;aspect-ratio:4/3;border-radius:12px}.product-image-wrap{width:140px;height:140px;margin-bottom:6px}#product-image{max-width:140px;max-height:140px}.product-details-row{flex-direction:row;gap:calc(var(--spacing-unit) * 1);flex-wrap:nowrap}.room-select-field,.quantity-field{max-width:50%}.product-links{flex-direction:row;gap:calc(var(--spacing-unit) * 1)}.product-links a{width:auto;min-width:60px;font-size:var(--font-size-small)}.back-btn{top:calc(var(--spacing-unit) * 1.5);left:calc(var(--spacing-unit) * 1.5);font-size:1.8rem;min-width:40px;min-height:40px;width:40px;height:40px}.primary-btn,.secondary-btn{padding:calc(var(--spacing-unit) * 2) calc(var(--spacing-unit) * 4);font-size:var(--font-size-large);min-height:44px}.scanner-actions,.review-actions{flex-direction:column;gap:calc(var(--spacing-unit) * 1)}.review-product-card{flex-direction:column;gap:calc(var(--spacing-unit) * 1.5)}.review-product-thumb-wrap{align-self:center}.review-product-info{margin-left:0;text-align:center}}@media (max-width: 320px){:root{--spacing-unit: 5px;--logo-size: 150px}.welcome-container{padding:calc(var(--spacing-unit) * 2) calc(var(--spacing-unit) * 1)}.room-selection-container,.scanner-container,.product-details-container,.review-container{padding:calc(var(--spacing-unit) * 1.5) calc(var(--spacing-unit) * 1)}.room-grid{grid-template-columns:repeat(2,1fr)}.room-btn{min-height:60px;font-size:.85rem}.primary-btn,.secondary-btn{padding:calc(var(--spacing-unit) * 1.5) calc(var(--spacing-unit) * 3);font-size:1rem}}@media (orientation: landscape) and (max-height: 600px){.welcome-container{min-height:100vh;padding:calc(var(--spacing-unit) * 2) calc(var(--spacing-unit) * 3)}.room-selection-container,.scanner-container,.product-details-container,.review-container{min-height:100vh;padding:calc(var(--spacing-unit) * 1.5) calc(var(--spacing-unit) * 2)}.logo,.tagline{margin-bottom:calc(var(--spacing-unit) * 2)}.camera-preview{max-height:40vh;aspect-ratio:16/9}}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.logo,#product-image{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.scan-line{animation:none}}@media (prefers-contrast: high){:root{--border-radius: 0}.primary-btn,.secondary-btn,.room-btn{border:2px solid #000}.product-links a{border:1px solid #000}}@media print{.back-btn,.scanner-actions,.review-actions,.product-search{display:none!important}.welcome-container,.room-selection-container,.scanner-container,.product-details-container,.review-container{box-shadow:none;border-radius:0;max-width:none;width:100%}}.row-actions-responsive{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:12px;margin:0 0 8px;width:100%}.small-btn{font-size:1rem;padding:10px 22px;min-width:90px;min-height:38px;border-radius:10px;box-shadow:0 2px 8px #00000012;font-weight:600;letter-spacing:.01em}.left-btn{margin-right:auto}.right-btn{margin-left:auto}.secondary-btn.small-btn{background:#fff;color:#2563eb;border:2px solid #2563eb;transition:background .2s,color .2s}.secondary-btn.small-btn:hover,.secondary-btn.small-btn:focus{background:#2563eb;color:#fff}.primary-btn.small-btn{background:#2563eb;color:#fff;border:2px solid #2563eb;transition:background .2s,color .2s}.primary-btn.small-btn:hover,.primary-btn.small-btn:focus{background:#174ea6;color:#fff}@media (max-width: 600px){.row-actions-responsive{flex-direction:row;gap:8px;margin:0 0 6px}.small-btn{font-size:.98rem;padding:8px 10px;min-width:70px;min-height:34px;border-radius:8px}}.cancel-btn{min-width:70px;font-size:.98rem;padding:8px 0;border-radius:8px;margin-right:auto;color:#2563eb;background:#fff;border:none;box-shadow:none;text-align:left}.send-btn{min-width:120px;font-size:1.08rem;padding:10px 0;border-radius:10px;margin-left:auto;background:#2563eb;color:#fff;border:none;font-weight:600;box-shadow:0 2px 8px #00000012;text-align:center}@media (max-width: 600px){.cancel-btn{min-width:54px;font-size:.95rem;padding:7px 0}.send-btn{min-width:90px;font-size:1rem;padding:8px 0}}.product-lookup-container{max-width:var(--container-max-width);width:100%;margin:0 auto;padding:calc(var(--spacing-unit) * 3) calc(var(--spacing-unit) * 4);display:flex;flex-direction:column;min-height:100vh;background:#fff;border-radius:var(--border-radius);box-shadow:0 4px 32px #00000014;box-sizing:border-box}.lookup-header-section{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:calc(var(--spacing-unit) * 4);padding-bottom:calc(var(--spacing-unit) * 3);border-bottom:1px solid #e5e7eb}.lookup-header-section .back-btn{min-width:48px;min-height:48px;width:48px;height:48px;font-size:1.8rem;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#f3f4f6;border:1px solid #e5e7eb;transition:all .2s ease}.lookup-header-section .back-btn:hover{background:#e5e7eb;transform:translateY(-1px)}.header-content{display:flex;flex-direction:column;align-items:center;flex:1;text-align:center}.header-content .page-logo{width:120px;height:auto;margin-bottom:calc(var(--spacing-unit) * 2);filter:drop-shadow(0 2px 8px rgba(0,0,0,.06))}.page-title{font-size:2.2rem;font-weight:600;color:#1f2937;margin:0 0 calc(var(--spacing-unit) * 1) 0;letter-spacing:-.025em}.page-subtitle{font-size:1.1rem;color:#6b7280;margin:0;font-weight:400}.header-actions{display:flex;align-items:center;gap:calc(var(--spacing-unit) * 2);flex-shrink:0;justify-content:flex-end}.search-section{width:100%;margin-bottom:calc(var(--spacing-unit) * 4)}.search-actions{display:flex;justify-content:center;margin-top:calc(var(--spacing-unit) * 3)}.search-input-container{position:relative;max-width:600px;margin:0 auto}.search-input-container input{width:100%;padding:calc(var(--spacing-unit) * 2.5) calc(var(--spacing-unit) * 6) calc(var(--spacing-unit) * 2.5) calc(var(--spacing-unit) * 3);font-size:1.1rem;border:2px solid #e5e7eb;border-radius:calc(var(--border-radius) * 2);background:#f9fafb;transition:all .2s ease;box-shadow:0 1px 3px #0000001a}.search-input-container input:focus{outline:none;border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f61a,0 1px 3px #0000001a}#product-search-dropdown{margin:calc(var(--spacing-unit) * 1) 0 0 0;padding:0;list-style:none;background:#fff;border:2px solid #e5e7eb;border-radius:calc(var(--border-radius) * 1.5);max-height:320px;overflow-y:auto;box-shadow:0 4px 16px #0000001a;position:relative;z-index:100}#product-search-dropdown li{padding:calc(var(--spacing-unit) * 2) calc(var(--spacing-unit) * 3);cursor:pointer;transition:background .15s ease;border-bottom:1px solid #f3f4f6}#product-search-dropdown li:last-child{border-bottom:none}#product-search-dropdown li:hover,#product-search-dropdown li.active{background:#f0f9ff;color:#1e40af}.room-badge{font-size:1rem;color:#2563eb;font-weight:600;background:#eff6ff;padding:calc(var(--spacing-unit) * 1) calc(var(--spacing-unit) * 2);border-radius:calc(var(--border-radius) * .75);border:1px solid #bfdbfe}#lookup-feedback{margin-top:calc(var(--spacing-unit) * 2);color:#dc2626;font-size:1rem;text-align:center;display:none}#lookup-feedback:not(:empty){display:block;min-height:24px}@media (max-width: 1000px){.product-lookup-container{padding:calc(var(--spacing-unit) * 2) calc(var(--spacing-unit) * 3)}.page-title{font-size:1.8rem}.page-subtitle{font-size:1rem}}@media (max-width: 768px){.lookup-header-section{flex-direction:column;gap:calc(var(--spacing-unit) * 2);align-items:center}.lookup-header-section .back-btn{min-width:44px;min-height:44px;width:44px;height:44px;font-size:1.6rem;align-self:flex-start}.header-actions{width:auto;justify-content:center}.search-input-container{max-width:100%}.page-title{font-size:1.6rem}}.split-container{display:flex;width:100%;max-width:100vw;min-height:100vh;background:#f8f8fa;overflow:hidden}.left-panel{width:60%;background:#fff;border-right:1px solid #e0e0e0;display:flex;flex-direction:column;overflow:hidden}.right-panel{width:40%;background:#fff;display:flex;flex-direction:column;overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e0e0e0;background:#fafbfc;min-height:80px}.panel-header .header-content{flex:1;display:flex;flex-direction:column;align-items:center}.panel-header .header-content h2{margin:0 0 4px;font-size:1.3rem;font-weight:600;color:#1f2937}.panel-header .subtitle{margin:0;font-size:.9rem;color:#6b7280}.panel-logo{height:32px;width:auto;margin-bottom:8px}.selection-summary{font-size:.85rem;color:#374151;margin-top:4px}.header-actions{display:flex;gap:8px;align-items:center}.header-actions .primary-btn,.header-actions .secondary-btn{padding:8px 16px;font-size:.9rem;min-height:auto;border-radius:8px}.review-table-container{flex:1;overflow:hidden;display:flex;flex-direction:column}.review-table-container .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:40px 20px;text-align:center;color:#6b7280}.review-table-container .empty-state p{margin:0 0 8px;font-size:1rem}.review-table-container .empty-state .subtitle{font-size:.9rem;color:#9ca3af}.review-table{display:flex;flex-direction:column;flex:1;overflow:hidden}.table-header{display:grid;grid-template-columns:60px 4fr 1.5fr 80px 80px 100px 30px;gap:12px;padding:12px 16px;background:#f9fafb;border-bottom:1px solid #e5e7eb;font-weight:600;font-size:.85rem;color:#374151;text-transform:uppercase;letter-spacing:.025em}.table-body{flex:1;overflow-y:auto}.table-row{display:grid;grid-template-columns:60px 4fr 1.5fr 80px 80px 100px 30px;gap:12px;padding:12px 16px;border-bottom:1px solid #f3f4f6;align-items:center;transition:background-color .2s}.table-row:hover{background:#f9fafb}.table-row .product-info{display:flex;flex-direction:column;gap:2px}.table-row .product-name{font-weight:500;color:#1f2937;font-size:.9rem;line-height:1.3}.table-row .product-code{font-size:.8rem;color:#6b7280}.table-row input,.table-row select{width:100%;padding:6px 8px;border:1px solid #d1d5db;border-radius:4px;font-size:.85rem;background:#fff}.table-row input:focus,.table-row select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.table-row .quantity-input{text-align:center}.table-row .price-display{font-weight:500;color:#059669;font-size:.9rem}.table-row .remove-btn{background:#fee2e2;color:#dc2626;border:none;border-radius:4px;padding:2px 4px;cursor:pointer;font-size:.8rem;transition:background-color .2s}.table-row .remove-btn:hover{background:#fecaca}.table-product-image{width:50px;height:50px;object-fit:contain;border-radius:6px;border:1px solid #e5e7eb;background:#f9fafb}.search-section{flex:1;display:flex;flex-direction:column;padding:16px 20px;overflow:auto}.search-section .search-input-container{position:relative;margin-bottom:16px}.search-section .search-input-container input{width:100%;padding:12px 16px 12px 44px;border:1px solid #d1d5db;border-radius:8px;font-size:1rem;background:#fff}.search-section .search-input-container input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.search-results{margin-bottom:16px}.loading-state,.no-results{display:flex;flex-direction:column;align-items:center;justify-content:center;height:240px;padding:40px 20px;text-align:center;color:#6b7280;border:1px solid #e5e7eb;border-radius:8px;background:#fff}.results-list{overflow-y:auto;max-height:240px;border:1px solid #e5e7eb;border-radius:8px;background:#fff}.result-item{padding:12px 16px;border-bottom:1px solid #f3f4f6;cursor:pointer;transition:background-color .2s;background:#fff;font-size:.9rem;color:#1f2937;line-height:1.4;min-height:48px;display:flex;align-items:center}.result-item:last-child{border-bottom:none}.result-item:hover{background:#f9fafb}.result-item .result-code{font-weight:600;color:#2563eb}.product-details{padding:20px;background:#f9fafb;border-top:1px solid #e5e7eb;max-height:50%;overflow-y:auto}.product-header{display:flex;gap:16px;margin-bottom:20px;position:relative}.close-btn{position:absolute;top:-8px;right:-8px;background:#e5e7eb;border:none;border-radius:50%;width:24px;height:24px;cursor:pointer;font-size:1.2rem;color:#6b7280;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.close-btn:hover{background:#d1d5db}.product-image-container{flex-shrink:0;width:120px;height:120px;display:flex;align-items:center;justify-content:center;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.product-details .product-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px}.product-details .product-info{flex:1}.product-details .product-name{font-size:1.1rem;font-weight:600;color:#1f2937;margin:0 0 4px;line-height:1.3}.product-details .product-code{font-size:.9rem;color:#6b7280;margin:0 0 4px}.product-details .product-price{font-size:1rem;color:#059669;font-weight:600;margin:0}.product-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:.9rem;font-weight:500;color:#374151}.room-select,.quantity-input,.notes-input{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:.95rem}.room-select:focus,.quantity-input:focus,.notes-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.notes-input{min-height:60px;resize:vertical}.form-actions{margin-top:8px}.form-actions .primary-btn{width:100%;padding:10px 16px;font-size:.95rem;min-height:auto;border-radius:6px}@media (max-width: 768px){body{align-items:stretch;justify-content:stretch}.split-container{flex-direction:column}.left-panel,.right-panel{width:100%}.left-panel{min-height:40vh;border-right:none;border-bottom:1px solid #e0e0e0}.right-panel{min-height:60vh}.panel-header{padding:12px 16px;min-height:60px}.panel-header .header-content h2{font-size:1.1rem}.table-header{grid-template-columns:40px 2fr 1fr 60px 60px;gap:8px;padding:8px 12px;font-size:.75rem}.table-row{grid-template-columns:40px 2fr 1fr 60px 60px;gap:8px;padding:8px 12px}.col-price-ea,.col-total,.col-actions{display:none}.table-product-image{width:35px;height:35px}.product-details{padding:16px}.product-header{flex-direction:column;gap:12px}.product-image-container{align-self:center}}.grid-container{width:100%;min-height:100vh;background:#fafbfc;display:flex;flex-direction:column}.grid-header{background:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 1px 3px #0000001a;position:sticky;top:0;z-index:100}.header-top{display:flex;align-items:center;justify-content:space-between;padding:16px 24px}.header-left{display:flex;align-items:center;gap:12px}.header-center{flex:1;display:flex;justify-content:center}.header-right{display:flex;gap:8px;align-items:center}.header-bottom{padding:0 24px 12px}.grid-header .back-btn{min-width:44px;min-height:44px;width:44px;height:44px;font-size:1.8rem;background:#f3f4f6;border:1px solid #d1d5db;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.grid-header .back-btn:hover{background:#e5e7eb;border-color:#9ca3af}.grid-header .panel-logo{height:32px;width:auto}.grid-header h2{font-size:1.5rem;font-weight:600;color:#1f2937;margin:0}.grid-header .selection-summary{font-size:.875rem;color:#6b7280}.version-display{font-size:1rem;color:#222!important;font-weight:500;margin-top:12px;margin-right:0;padding:2px 8px;display:inline-block;background:#f5f5f5;border-radius:4px;letter-spacing:.5px}.btn-import-quote{background:#3b82f6;color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-import-quote:hover{background:#2563eb}.btn-clear-all{background:#ef4444;color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-clear-all:hover{background:#dc2626}.btn-settings{background:#6b7280;color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-settings:hover{background:#4b5563}.btn-create{background:#10b981;color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-create:hover{background:#059669}.sort-controls{display:flex;align-items:center;gap:8px;margin-right:16px}.sort-controls label{font-size:.875rem;color:#374151;font-weight:500}.sort-select{padding:6px 8px;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;background:#fff;color:#374151;cursor:pointer;transition:all .15s ease}.sort-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.grid-content{flex:1;padding:24px;overflow:visible;min-height:calc(100vh - 120px)}.empty-state{text-align:center;padding:60px 20px;color:#6b7280}.empty-state p{font-size:1.125rem;margin:0 0 8px}.empty-state .subtitle{font-size:.875rem;color:#9ca3af}.grid-table-container{background:#fff;border-radius:12px;border:1px solid #e5e7eb;box-shadow:0 1px 3px #0000001a;overflow:visible}.grid-table{width:100%;display:table;table-layout:fixed;overflow:visible!important}.grid-table.has-open-dropdown{table-layout:auto!important;overflow:visible!important}.grid-header-row{display:table-row;background:#f9fafb;border-bottom:2px solid #e5e7eb}.grid-header-row>div{display:table-cell;padding:12px;font-weight:600;font-size:.8rem;color:#374151;text-transform:uppercase;letter-spacing:.05em;border-right:1px solid #e5e7eb}.col-image{width:8%}.col-product{width:32%}.col-room{width:12%}.col-qty{width:6%}.col-price,.col-total{width:8%}.col-notes{width:18%}.col-actions{width:8%}.grid-body{display:table-row-group}.grid-row{display:table-row;transition:background-color .15s ease;height:auto}.grid-row:nth-child(2n){background:#f9fafb}.grid-row:hover{background:#f0f9ff}.grid-row>div{display:table-cell;padding:2px 4px;vertical-align:middle;border-right:1px solid #e5e7eb;border-bottom:1px solid #f3f4f6;overflow:visible;position:relative;font-size:.85rem;height:auto}.grid-search-input{width:100%;padding:3px 6px;border:1px solid #d1d5db;border-radius:6px;font-size:.8rem;background:#fff;transition:all .15s ease}.grid-search-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.grid-search-input.populated{background:#f0f9ff;border-color:#3b82f6}.grid-search-dropdown{position:absolute!important;top:100%!important;left:0!important;width:500px!important;min-width:500px!important;max-width:none!important;background:#fff;border:1px solid #d1d5db;border-radius:6px;box-shadow:0 8px 25px -5px #00000026;max-height:300px;overflow-x:visible!important;overflow-y:auto;z-index:2000;display:none;margin-top:2px}.grid-search-dropdown.visible{display:block}.grid-search-dropdown li{padding:10px 14px;cursor:pointer;font-size:.875rem;line-height:1.4;border-bottom:1px solid #f3f4f6;white-space:nowrap!important;word-wrap:normal!important;overflow:visible!important;text-overflow:clip!important;min-width:450px}.grid-search-dropdown li:last-child{border-bottom:none}.grid-search-dropdown li:hover,.grid-search-dropdown li.active{background:#f0f9ff;color:#1e40af}.col-price .grid-search-dropdown,.col-notes .grid-search-dropdown,.col-actions .grid-search-dropdown{left:auto!important;right:0!important;width:500px!important}.grid-table-container .grid-search-dropdown{position:absolute!important;width:500px!important;max-width:none!important;overflow-x:visible!important;z-index:9999!important}.grid-image-cell{text-align:center;padding:2px 4px!important;vertical-align:middle}.grid-product-image{height:100%;width:auto;max-width:100%;max-height:60px;object-fit:contain;border-radius:4px;border:1px solid #e5e7eb;display:block;margin:0 auto}.grid-product-cell{padding:2px 6px!important;position:relative}.grid-product-cell.has-product .grid-product-display{display:block;padding:2px}.grid-product-cell.empty-product .grid-search-input{display:block}.grid-product-name{font-weight:400;font-size:.8rem;color:#1f2937;line-height:1.2}.grid-product-name strong{font-weight:600;color:#374151;margin-right:6px}.grid-product-code{font-size:.75rem;color:#6b7280;font-family:Monaco,Menlo,monospace}.grid-select,.grid-input,.grid-textarea{width:100%;padding:2px 4px;border:1px solid #d1d5db;border-radius:4px;font-size:.8rem;background:#fff;transition:all .15s ease}.grid-select:focus,.grid-input:focus,.grid-textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.grid-textarea{resize:vertical;min-height:16px;max-height:40px}.grid-input[type=number]{text-align:center}.grid-price-cell{font-weight:500;color:#059669}.grid-total-display{font-weight:600;color:#1f2937;text-align:right;padding:4px 8px;font-size:.85rem;background-color:#f9fafb;border-radius:4px}.grid-actions-cell{text-align:center;padding:2px 4px!important}.grid-actions-group{display:flex;align-items:center;gap:4px;justify-content:center}.grid-move-btn{width:24px;height:24px;border:none;background:#e5e7eb;color:#374151;border-radius:4px;font-size:12px;line-height:1;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.grid-move-btn:hover{background:#d1d5db;transform:scale(1.1)}.grid-move-btn:disabled{opacity:.5;cursor:not-allowed}.grid-drag-handle{width:24px;height:24px;background:#f3f4f6;color:#6b7280;border-radius:4px;font-size:12px;line-height:1;cursor:grab;transition:all .15s ease;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;font-weight:700}.grid-drag-handle:hover{background:#e5e7eb;color:#374151}.grid-remove-btn{width:24px;height:24px;border:none;background:#fee2e2;color:#dc2626;border-radius:4px;font-size:14px;line-height:1;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.grid-remove-btn:hover{background:#fecaca;transform:scale(1.1)}.grid-footer{padding:16px 24px;background:#f9fafb;border-top:1px solid #e5e7eb}.add-row-btn{background:#f0f9ff;border:1px dashed #3b82f6;color:#1d4ed8;padding:12px 24px;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;gap:8px}.add-row-btn:hover{background:#dbeafe;border-color:#1d4ed8}.room-group{margin-bottom:8px;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.room-group-header{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;padding:12px 20px;font-weight:600;font-size:.95rem;border-bottom:none;position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between}.room-group-header .room-name{display:flex;align-items:center;gap:8px}.room-group-header .room-icon{font-size:1.1rem}.room-group-header .room-count{background:#fff3;color:#fff;padding:2px 8px;border-radius:12px;font-size:.8rem;font-weight:500}.room-group-header.blank-room{background:linear-gradient(135deg,#6b7280,#4b5563)}.room-group-header.bath-room{background:linear-gradient(135deg,#0ea5e9,#0284c7)}.room-group-header.kitchen-room{background:linear-gradient(135deg,#f59e0b,#d97706)}.room-group-header.laundry-room{background:linear-gradient(135deg,#10b981,#059669)}.room-header-row{background:linear-gradient(135deg,#3b82f6,#1d4ed8)!important;color:#fff!important;border-bottom:2px solid #1e40af!important;font-weight:600}.room-header-row:hover{background:linear-gradient(135deg,#3b82f6,#1d4ed8)!important}.room-header-row:nth-child(2n){background:linear-gradient(135deg,#3b82f6,#1d4ed8)!important}.room-header-row .room-header-cell{padding:10px 12px!important;border-right:none!important}.room-header-content{display:flex;align-items:center;gap:8px;font-weight:600;color:#fff}.room-header-content .room-icon{font-size:1.1rem}.room-header-content .room-count{background:#fff3;color:#fff;padding:2px 8px;border-radius:12px;font-size:.8rem;font-weight:500;margin-left:auto}.room-header-row.blank-room{background:linear-gradient(135deg,#6b7280,#4b5563)!important}.room-header-row.bath-room{background:linear-gradient(135deg,#0ea5e9,#0284c7)!important}.room-header-row.kitchen-room{background:linear-gradient(135deg,#f59e0b,#d97706)!important}.room-header-row.laundry-room{background:linear-gradient(135deg,#10b981,#059669)!important}.grid-row.dragging{opacity:.5}.grid-row.drag-over{background:#dbeafe!important;border-top:2px solid #3b82f6}@media (max-width: 1200px){.col-product{width:30%}.col-notes{width:16%}}@media (max-width: 900px){.grid-header{padding:12px 16px}.grid-header .header-content{margin:0 16px}.grid-header h2{font-size:1.25rem}.grid-content{padding:16px}.col-image{width:8%}.col-product{width:35%}.col-notes{width:12%}.grid-header-row>div,.grid-row>div{padding:4px 6px;font-size:.8rem}.grid-search-input,.grid-select,.grid-input,.grid-textarea{font-size:.8rem;padding:2px 4px}.grid-product-image{height:100%;width:auto;max-width:100%;max-height:60px}}@media (max-width: 768px){.header-top{flex-direction:column;gap:12px;padding:12px 16px}.header-left,.header-center{justify-content:center}.header-right{justify-content:center;flex-wrap:wrap;gap:6px}.header-bottom{padding:0 16px 8px;text-align:center}.btn-import-quote,.btn-clear-all,.btn-settings,.btn-create{font-size:.8rem;padding:6px 12px}.grid-header h2{font-size:1.25rem}.grid-header .panel-logo{height:28px}.col-notes{display:none}.col-product{width:40%}.col-room{width:16%}.col-qty{width:8%}.col-price,.col-total{width:10%}.col-actions{width:8%}}.grid-row.loading{opacity:.6;pointer-events:none}.grid-row.loading .grid-search-input{background:#f3f4f6}.grid-row.success{background:#f0fdf4!important;border-left:3px solid #10b981}.grid-row.error{background:#fef2f2!important;border-left:3px solid #ef4444}.grid-search-input.error{border-color:#ef4444;background:#fef2f2}.grid-row.selected{background:#dbeafe!important;border-left:3px solid #3b82f6}.bulk-actions{display:none;padding:12px 24px;background:#f0f9ff;border-bottom:1px solid #bfdbfe;align-items:center;gap:12px}.bulk-actions.visible{display:flex}.bulk-actions-text{font-size:.875rem;color:#1e40af;font-weight:500}.bulk-action-btn{font-size:.8rem;padding:6px 12px;border-radius:6px;border:1px solid #3b82f6;background:#fff;color:#3b82f6;cursor:pointer;transition:all .15s ease}.bulk-action-btn:hover{background:#3b82f6;color:#fff}.global-search-dropdown{scrollbar-width:thin;scrollbar-color:#2563eb #f3f4f6}.global-search-dropdown::-webkit-scrollbar{width:8px;background:#f3f4f6}.global-search-dropdown::-webkit-scrollbar-thumb{background:#2563eb;border-radius:4px}.global-search-dropdown li{transition:background .15s,border-left .15s,padding-left .15s;background:#fff;cursor:pointer}.global-search-dropdown li.active,.global-search-dropdown li:active{background:#e0f2fe!important;border-left:3px solid #2563eb;padding-left:13px}.global-search-dropdown li:hover{background:#f0f9ff!important;border-left:3px solid #3b82f6;padding-left:13px}.global-search-dropdown{box-shadow:0 10px 25px -5px #00000026,0 8px 10px -6px #0000001a;border:1px solid #d1d5db;border-radius:8px;background:#fff;max-height:300px;overflow-y:auto;overflow-x:hidden;z-index:10010;position:fixed!important;padding:4px 0;margin:0;list-style:none;width:auto;min-width:200px;font-size:14px;transition:box-shadow .2s}.global-search-dropdown li{padding:12px 16px;cursor:pointer;border-bottom:1px solid #f3f4f6;background:#fff;color:#374151;font-size:14px;line-height:1.5;margin:0;display:block;width:100%;white-space:normal;word-wrap:break-word;overflow:visible;transition:background .15s,color .15s}.global-search-dropdown li.active{background:#2563eb!important;color:#fff!important;font-weight:700}.global-search-dropdown li.hover:not(.active){background:#e0e7ff!important;color:#1e293b!important}.global-search-dropdown::-webkit-scrollbar{width:8px}.global-search-dropdown::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.global-search-dropdown::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}:root{--font-primary: "DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-display: "Fraunces", Georgia, serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.333rem;--text-2xl: 1.777rem;--text-3xl: 2.369rem;--text-4xl: 3.157rem;--leading-tight: 1.2;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--color-charcoal: #1a1a1a;--color-graphite: #2d2d2d;--color-slate: #404040;--color-stone: #737373;--color-pewter: #a3a3a3;--color-silver: #d4d4d4;--color-mist: #e5e5e5;--color-cloud: #f5f5f5;--color-ivory: #fafafa;--color-white: #ffffff;--color-copper: #b87333;--color-copper-light: #d4915a;--color-copper-dark: #8b5a2b;--color-bronze: #cd7f32;--color-sage: #7c9082;--color-sage-light: #a3b5a8;--color-ocean: #4a6670;--color-ocean-light: #6d8a94;--color-primary: var(--color-charcoal);--color-primary-hover: var(--color-graphite);--color-secondary: var(--color-stone);--color-accent: var(--color-copper);--color-accent-hover: var(--color-copper-light);--color-success: var(--color-sage);--color-success-light: #e8f0ea;--color-error: #c44536;--color-error-light: #fbeae8;--color-warning: #d4915a;--color-warning-light: #fef3e8;--bg-primary: var(--color-white);--bg-secondary: var(--color-ivory);--bg-tertiary: var(--color-cloud);--bg-elevated: var(--color-white);--bg-overlay: rgba(26, 26, 26, .6);--text-primary: var(--color-charcoal);--text-secondary: var(--color-slate);--text-tertiary: var(--color-stone);--text-muted: var(--color-pewter);--text-inverse: var(--color-white);--border-light: var(--color-mist);--border-medium: var(--color-silver);--border-dark: var(--color-pewter);--border-focus: var(--color-copper);--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--radius-none: 0;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .06);--shadow-md: 0 4px 8px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .1);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .12);--shadow-inner: inset 0 2px 4px rgba(0, 0, 0, .04);--shadow-focus: 0 0 0 3px rgba(184, 115, 51, .2);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--transition-slower: .5s ease;--z-base: 0;--z-dropdown: 100;--z-sticky: 200;--z-overlay: 300;--z-modal: 400;--z-popover: 500;--z-toast: 600;--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px;--container-2xl: 1536px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-primary);font-size:var(--text-base);font-weight:var(--font-normal);line-height:var(--leading-normal);color:var(--text-primary);background:var(--bg-secondary)}.heading-display{font-family:var(--font-display);font-weight:var(--font-semibold);line-height:var(--leading-tight);letter-spacing:-.02em}.heading-1{font-size:var(--text-4xl);font-weight:var(--font-bold);line-height:var(--leading-tight);letter-spacing:-.02em}.heading-2{font-size:var(--text-3xl);font-weight:var(--font-semibold);line-height:var(--leading-tight);letter-spacing:-.01em}.heading-3{font-size:var(--text-2xl);font-weight:var(--font-semibold);line-height:var(--leading-snug)}.heading-4{font-size:var(--text-xl);font-weight:var(--font-medium);line-height:var(--leading-snug)}.text-body{font-size:var(--text-base);line-height:var(--leading-relaxed)}.text-small{font-size:var(--text-sm);line-height:var(--leading-normal)}.text-caption{font-size:var(--text-xs);line-height:var(--leading-normal);text-transform:uppercase;letter-spacing:.05em;font-weight:var(--font-medium)}.text-muted{color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);font-family:var(--font-primary);font-size:var(--text-sm);font-weight:var(--font-medium);line-height:1;text-decoration:none;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-charcoal);color:var(--text-inverse);border-color:var(--color-charcoal)}.btn-primary:hover:not(:disabled){background:var(--color-graphite);border-color:var(--color-graphite)}.btn-secondary{background:var(--bg-primary);color:var(--text-primary);border-color:var(--border-medium)}.btn-secondary:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--border-dark)}.btn-accent{background:var(--color-copper);color:var(--text-inverse);border-color:var(--color-copper)}.btn-accent:hover:not(:disabled){background:var(--color-copper-dark);border-color:var(--color-copper-dark)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary)}.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--text-xs)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--text-base)}.btn-xl{padding:var(--space-5) var(--space-10);font-size:var(--text-lg)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary)}.form-label-optional{font-weight:var(--font-normal);color:var(--text-muted);margin-left:var(--space-1)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--space-3) var(--space-4);font-family:var(--font-primary);font-size:var(--text-base);color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);transition:all var(--transition-fast)}.form-input:hover,.form-select:hover,.form-textarea:hover{border-color:var(--border-medium)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-copper);box-shadow:var(--shadow-focus)}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.form-textarea{min-height:100px;resize:vertical}.form-checkbox,.form-radio{display:flex;align-items:center;gap:var(--space-3);cursor:pointer}.form-checkbox input,.form-radio input{width:18px;height:18px;accent-color:var(--color-copper);cursor:pointer}.form-hint{font-size:var(--text-xs);color:var(--text-muted)}.form-error{font-size:var(--text-xs);color:var(--color-error)}.card{background:var(--bg-elevated);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-light)}.card-body{padding:var(--space-6)}.card-footer{padding:var(--space-5) var(--space-6);border-top:1px solid var(--border-light);background:var(--bg-secondary);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.wizard-container{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;min-height:100vh;width:100vw;background:var(--bg-secondary);z-index:10000;overflow:hidden}.wizard-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-8);background:var(--bg-primary);border-bottom:1px solid var(--border-light)}.wizard-logo{height:32px;width:auto}.wizard-close{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.wizard-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.wizard-progress{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-6) var(--space-8);background:var(--bg-primary)}.wizard-step{display:flex;align-items:center;gap:var(--space-3)}.wizard-step-indicator{display:flex;align-items:center;justify-content:center;width:32px;height:32px;font-size:var(--text-sm);font-weight:var(--font-semibold);border-radius:var(--radius-full);transition:all var(--transition-base)}.wizard-step-indicator.pending{background:var(--bg-tertiary);color:var(--text-muted);border:2px solid var(--border-light)}.wizard-step-indicator.active{background:var(--color-charcoal);color:var(--text-inverse);border:2px solid var(--color-charcoal)}.wizard-step-indicator.completed{background:var(--color-sage);color:var(--text-inverse);border:2px solid var(--color-sage)}.wizard-step-label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-tertiary)}.wizard-step.active .wizard-step-label{color:var(--text-primary)}.wizard-step-connector{width:48px;height:2px;background:var(--border-light);margin:0 var(--space-2)}.wizard-step-connector.completed{background:var(--color-sage)}.wizard-content{flex:1;display:flex;overflow:hidden}.wizard-main{flex:1;padding:var(--space-8);overflow-y:auto}.wizard-sidebar{width:400px;background:var(--color-charcoal);color:var(--text-inverse);padding:var(--space-8);display:flex;flex-direction:column}.wizard-footer{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-8);background:var(--bg-primary);border-top:1px solid var(--border-light)}.step-section{max-width:600px;margin:0 auto}.step-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:var(--space-2)}.step-description{font-size:var(--text-base);color:var(--text-tertiary);margin-bottom:var(--space-8)}.step-form{display:flex;flex-direction:column;gap:var(--space-5)}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-5)}@media (max-width: 600px){.form-row{grid-template-columns:1fr}}.preview-panel{flex:1;display:flex;flex-direction:column}.preview-header{padding-bottom:var(--space-6);border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:var(--space-6)}.preview-title{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.1em;color:var(--color-pewter);margin-bottom:var(--space-2)}.preview-document-name{font-family:var(--font-display);font-size:var(--text-xl);color:var(--text-inverse)}.preview-mockup{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.preview-page{width:100%;max-width:280px;aspect-ratio:1 / 1.414;background:var(--bg-primary);border-radius:var(--radius-sm);box-shadow:var(--shadow-xl);padding:var(--space-4);display:flex;flex-direction:column}.preview-page-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:var(--space-3);border-bottom:1px solid var(--border-light);margin-bottom:var(--space-3)}.preview-page-logo{height:16px;width:auto}.preview-page-content{flex:1;display:flex;flex-direction:column;gap:var(--space-2)}.preview-line{height:8px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.preview-line.short{width:60%}.preview-line.medium{width:80%}.preview-summary{margin-top:auto;padding-top:var(--space-6);border-top:1px solid rgba(255,255,255,.1)}.preview-summary-title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--color-pewter);margin-bottom:var(--space-4)}.preview-summary-list{list-style:none;display:flex;flex-direction:column;gap:var(--space-3)}.preview-summary-item{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-silver)}.preview-summary-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border-radius:var(--radius-sm);font-size:var(--text-xs)}.option-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4)}.option-card{display:flex;flex-direction:column;padding:var(--space-5);background:var(--bg-primary);border:2px solid var(--border-light);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast)}.option-card:hover{border-color:var(--border-medium);box-shadow:var(--shadow-md)}.option-card.selected{border-color:var(--color-copper);background:var(--color-warning-light)}.option-card-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border-radius:var(--radius-md);font-size:var(--text-xl);margin-bottom:var(--space-4)}.option-card.selected .option-card-icon{background:var(--color-copper);color:var(--text-inverse)}.option-card-title{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:var(--space-1)}.option-card-description{font-size:var(--text-sm);color:var(--text-tertiary)}.option-grid-compact{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:var(--space-2)}.option-grid-compact .option-card{padding:var(--space-2) var(--space-3);min-height:auto}.option-grid-compact .option-card-icon{font-size:.875rem;margin-bottom:var(--space-1);width:28px;height:28px}.option-grid-compact .option-card-title{font-size:var(--text-xs)}.option-grid-compact .option-card-description{display:none}.file-upload-inline{margin-top:var(--space-2)}.file-upload-link{font-size:var(--text-sm);color:var(--color-copper);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.file-upload-link:hover{color:var(--color-copper-dark)}.file-preview-inline{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:var(--text-sm)}.btn-text-danger{background:none;border:none;color:var(--color-error);font-size:var(--text-xs);cursor:pointer;padding:0}.btn-text-danger:hover{text-decoration:underline}.file-upload{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);background:var(--bg-secondary);border:2px dashed var(--border-medium);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast)}.file-upload:hover{border-color:var(--color-copper);background:var(--color-warning-light)}.file-upload-icon{font-size:var(--text-3xl);color:var(--text-muted);margin-bottom:var(--space-4)}.file-upload-text{font-size:var(--text-sm);color:var(--text-tertiary);text-align:center}.file-upload-text strong{color:var(--color-copper)}.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-4)}.template-card{display:flex;flex-direction:column;padding:var(--space-4);background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.template-card:hover{border-color:var(--border-medium);box-shadow:var(--shadow-md);transform:translateY(-2px)}.template-card.selected{border-color:var(--color-copper);box-shadow:var(--shadow-focus)}.template-card-preview{aspect-ratio:16 / 9;background:var(--bg-tertiary);border-radius:var(--radius-sm);margin-bottom:var(--space-3);display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.template-card-name{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary)}.template-card-meta{font-size:var(--text-xs);color:var(--text-muted);margin-top:var(--space-1)}.divider{height:1px;background:var(--border-light);margin:var(--space-6) 0}.divider-with-text{display:flex;align-items:center;gap:var(--space-4);margin:var(--space-6) 0}.divider-with-text:before,.divider-with-text:after{content:"";flex:1;height:1px;background:var(--border-light)}.divider-with-text span{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.animate-fade-in{animation:fadeIn var(--transition-base) ease-out}.animate-slide-up{animation:slideUp var(--transition-slow) ease-out}.animate-slide-in-right{animation:slideInRight var(--transition-slow) ease-out}.delay-1{animation-delay:50ms}.delay-2{animation-delay:.1s}.delay-3{animation-delay:.15s}.delay-4{animation-delay:.2s}.delay-5{animation-delay:.25s}body{display:block!important;align-items:initial!important;justify-content:initial!important}.grid-container{opacity:0;transition:opacity .2s ease}.grid-container.ready{opacity:1}.grid-container{font-family:var(--font-primary, "DM Sans", -apple-system, BlinkMacSystemFont, sans-serif);background:var(--bg-secondary, #fafafa);min-height:100vh;display:flex;flex-direction:column}.app-navbar{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--color-charcoal, #1a1a1a);color:#fff}.navbar-brand{display:flex;align-items:center;gap:16px}.navbar-logo{height:28px;width:auto;filter:brightness(10)}.navbar-divider{width:1px;height:20px;background:#fff3}.navbar-title{font-size:.9375rem;font-weight:500;color:#ffffffe6;letter-spacing:-.01em}.navbar-actions{display:flex;align-items:center;gap:16px}.navbar-btn{width:36px;height:36px;border:none;background:#ffffff1a;color:#fffc;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.navbar-btn:hover{background:#fff3;color:#fff}.navbar-actions .navbar-link{font-size:.75rem;font-family:inherit;color:#fff9;background:transparent;padding:6px 12px;border-radius:4px;border:none;cursor:pointer;transition:all .15s ease}.navbar-actions .navbar-link:hover{color:#ffffffe6;background:#ffffff1a}.navbar-actions .version-text{font-size:.6875rem;font-family:inherit;color:#fff6;background:transparent;padding:4px 8px;border:none;cursor:pointer;transition:color .15s ease}.navbar-actions .version-text:hover{color:#ffffffb3}.context-header{display:flex;align-items:center;justify-content:space-between;padding:10px 24px;background:linear-gradient(180deg,var(--bg-secondary, #f9fafb) 0%,var(--bg-primary, #ffffff) 100%);border-bottom:1px solid var(--border-light, #e5e5e5)}.context-left{display:flex;align-items:center;gap:12px}.context-label{font-size:.75rem;font-weight:500;color:var(--text-muted, #a3a3a3);text-transform:uppercase;letter-spacing:.05em}.selection-status{display:flex;align-items:center;gap:10px}.status-icon{font-size:.875rem;color:var(--color-sage, #7c9082)}.status-icon.saved{color:var(--color-sage, #7c9082)}.status-icon.unsaved{color:var(--color-copper, #b87333)}.selection-name{font-family:var(--font-primary, "DM Sans", sans-serif);font-size:.9375rem;font-weight:600;color:var(--text-primary, #1a1a1a);max-width:300px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.save-indicator{display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--color-copper, #b87333);background:#b873331a;padding:4px 10px;border-radius:12px;animation:pulse-subtle 2s ease-in-out infinite}@keyframes pulse-subtle{0%,to{opacity:1}50%{opacity:.7}}.dot-unsaved{width:6px;height:6px;border-radius:50%;background:var(--color-copper, #b87333)}.context-right{display:flex;align-items:center;gap:8px}.context-btn{display:flex;align-items:center;gap:6px;padding:7px 14px;background:transparent;border:1px solid var(--border-light, #e5e5e5);border-radius:6px;font-family:var(--font-primary, "DM Sans", sans-serif);font-size:.8125rem;font-weight:500;color:var(--text-secondary, #404040);cursor:pointer;transition:all .15s ease}.context-btn:hover{background:var(--bg-tertiary, #f5f5f5);border-color:var(--border-medium, #d4d4d4)}.context-btn-primary{background:var(--color-charcoal, #1a1a1a);border-color:var(--color-charcoal, #1a1a1a);color:#fff}.context-btn-primary:hover{background:var(--color-graphite, #2d2d2d);border-color:var(--color-graphite, #2d2d2d)}.app-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--bg-primary, #ffffff);border-bottom:1px solid var(--border-light, #e5e5e5);gap:24px}.toolbar-left,.toolbar-right{display:flex;align-items:center;gap:12px}.toolbar-center{flex:1;display:flex;justify-content:center}.toolbar-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid var(--border-light, #e5e5e5);background:var(--bg-primary, #ffffff);border-radius:8px;font-family:var(--font-primary, "DM Sans", sans-serif);font-size:.8125rem;font-weight:500;color:var(--text-secondary, #404040);cursor:pointer;transition:all .15s ease}.toolbar-btn:hover{background:var(--bg-tertiary, #f5f5f5);border-color:var(--border-medium, #d4d4d4)}.toolbar-btn-primary{background:var(--color-charcoal, #1a1a1a);border-color:var(--color-charcoal, #1a1a1a);color:#fff}.toolbar-btn-primary:hover{background:var(--color-graphite, #2d2d2d)}.toolbar-btn-danger{color:var(--color-error, #c44536);border-color:var(--color-error-light, #fbeae8);background:var(--color-error-light, #fbeae8)}.toolbar-btn-danger:hover{background:var(--color-error, #c44536);color:#fff;border-color:var(--color-error, #c44536)}.toolbar-btn-accent{background:var(--color-copper, #b87333);border-color:var(--color-copper, #b87333);color:#fff}.toolbar-btn-accent:hover{background:var(--color-copper-dark, #8b5a2b);border-color:var(--color-copper-dark, #8b5a2b)}.stats-bar{display:flex;align-items:center;gap:20px;padding:8px 24px;background:var(--bg-tertiary, #f5f5f5);border-radius:24px}.stat-item{display:flex;align-items:baseline;gap:6px}.stat-value{font-size:1.125rem;font-weight:600;color:var(--text-primary, #1a1a1a)}.stat-label{font-size:.75rem;color:var(--text-muted, #a3a3a3);text-transform:lowercase}.stat-total .stat-value{color:var(--color-copper, #b87333)}.stat-divider{width:1px;height:20px;background:var(--border-light, #e5e5e5)}.empty-state-hero{flex:1;display:none;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:48px 24px}.empty-state-hero[style*="display: block"],.empty-state-hero[style*="display:block"]{display:flex!important}.empty-hero-bg{position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at 30% 20%,rgba(184,115,51,.08) 0%,transparent 50%),radial-gradient(ellipse at 70% 80%,rgba(124,144,130,.08) 0%,transparent 50%);pointer-events:none}.empty-hero-content{position:relative;text-align:center;max-width:540px}.empty-hero-logo{height:48px;margin-bottom:32px;opacity:.15}.empty-hero-title{font-family:var(--font-display, "Fraunces", Georgia, serif);font-size:2rem;font-weight:600;color:var(--text-primary, #1a1a1a);margin:0 0 16px;letter-spacing:-.02em}.empty-hero-text{font-size:1.0625rem;color:var(--text-tertiary, #737373);margin:0 0 32px;line-height:1.6}.empty-hero-actions{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:48px}.hero-btn{display:flex;align-items:center;gap:10px;padding:14px 28px;border-radius:10px;font-family:var(--font-primary, "DM Sans", sans-serif);font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:none}.hero-btn-primary{background:var(--color-charcoal, #1a1a1a);color:#fff;box-shadow:0 4px 12px #1a1a1a33}.hero-btn-primary:hover{background:var(--color-graphite, #2d2d2d);transform:translateY(-2px);box-shadow:0 6px 16px #1a1a1a40}.hero-btn-secondary{background:var(--bg-primary, #ffffff);color:var(--text-secondary, #404040);border:1px solid var(--border-medium, #d4d4d4)}.hero-btn-secondary:hover{background:var(--bg-tertiary, #f5f5f5);border-color:var(--text-tertiary, #737373)}.hero-divider{color:var(--text-muted, #a3a3a3);font-size:.875rem}.entry-options{width:100%;max-width:500px;margin-bottom:32px}.entry-card{display:flex;align-items:center;gap:16px;padding:16px 20px;background:var(--bg-primary, #ffffff);border:1px solid var(--border-light, #e5e5e5);border-radius:12px;cursor:pointer;transition:all .2s ease;margin-bottom:16px}.entry-card:hover{border-color:var(--color-copper, #b87333);box-shadow:0 4px 12px #b8733326;transform:translateY(-2px)}.entry-card-primary{background:linear-gradient(135deg,#b8733314,#b8733305);border-color:var(--color-copper, #b87333)}.entry-icon{font-size:1.5rem;flex-shrink:0}.entry-content{flex:1;min-width:0}.entry-title{font-weight:600;color:var(--text-primary, #1a1a1a);font-size:.9375rem;margin-bottom:2px}.entry-subtitle{font-size:.8125rem;color:var(--text-tertiary, #737373);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entry-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.entry-btn{display:flex;align-items:center;gap:8px;padding:12px 20px;background:var(--bg-primary, #ffffff);border:1px solid var(--border-medium, #d4d4d4);border-radius:10px;font-family:var(--font-primary, "DM Sans", sans-serif);font-size:.875rem;font-weight:500;color:var(--text-secondary, #404040);cursor:pointer;transition:all .15s ease}.entry-btn:hover{background:var(--bg-tertiary, #f5f5f5);border-color:var(--text-tertiary, #737373);transform:translateY(-1px)}.entry-btn-primary{background:var(--color-charcoal, #1a1a1a);border-color:var(--color-charcoal, #1a1a1a);color:#fff;box-shadow:0 4px 12px #1a1a1a33}.entry-btn-primary:hover{background:var(--color-graphite, #2d2d2d);transform:translateY(-2px);box-shadow:0 6px 16px #1a1a1a40}.empty-hero-hints{display:flex;gap:24px;justify-content:center}.empty-hero-hints .hint{display:flex;align-items:center;gap:8px;font-size:.75rem;color:var(--text-muted, #a3a3a3)}.empty-hero-hints kbd{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 5px;font-size:.6875rem;font-weight:500;color:var(--text-secondary, #404040);background:var(--bg-primary, #ffffff);border:1px solid var(--border-light, #e5e5e5);border-radius:4px;box-shadow:0 1px 0 var(--border-medium, #d4d4d4)}.grid-header{display:none!important}.grid-header{background:var(--bg-primary, #ffffff);border-bottom:1px solid var(--border-light, #e5e5e5);box-shadow:0 1px 3px #0000000a}.header-top{padding:16px 32px}.header-left h2{font-family:var(--font-display, "Fraunces", Georgia, serif);font-weight:600;font-size:1.5rem;color:var(--text-primary, #1a1a1a);letter-spacing:-.02em}.panel-logo{height:36px;width:auto}.btn-import-quote,.btn-clear-all,.btn-settings,.btn-create{font-family:var(--font-primary, "DM Sans", sans-serif);font-weight:500;padding:10px 20px;border-radius:8px;font-size:.875rem;transition:all .15s ease;border:none;cursor:pointer}.btn-import-quote{background:var(--color-charcoal, #1a1a1a);color:#fff}.btn-import-quote:hover{background:var(--color-graphite, #2d2d2d);transform:translateY(-1px)}.btn-clear-all{background:var(--color-error-light, #fbeae8);color:var(--color-error, #c44536);border:1px solid var(--color-error, #c44536)}.btn-clear-all:hover{background:var(--color-error, #c44536);color:#fff}.btn-settings{background:var(--bg-tertiary, #f5f5f5);color:var(--text-secondary, #404040);border:1px solid var(--border-medium, #d4d4d4)}.btn-settings:hover{background:var(--bg-primary, #ffffff);border-color:var(--text-secondary, #404040)}.btn-create{background:var(--color-copper, #b87333);color:#fff}.btn-create:hover{background:var(--color-copper-dark, #8b5a2b);transform:translateY(-1px);box-shadow:0 4px 12px #b873334d}.sort-controls{display:flex;align-items:center;gap:10px}.sort-controls label{font-size:.875rem;color:var(--text-tertiary, #737373);font-weight:500}.sort-select{font-family:var(--font-primary, "DM Sans", sans-serif);padding:8px 12px;border:1px solid var(--border-light, #e5e5e5);border-radius:6px;font-size:.875rem;background:var(--bg-primary, #ffffff);color:var(--text-primary, #1a1a1a);cursor:pointer;transition:all .15s ease}.sort-select:hover{border-color:var(--border-medium, #d4d4d4)}.sort-select:focus{outline:none;border-color:var(--color-copper, #b87333);box-shadow:0 0 0 3px #b8733326}.selection-summary{font-size:.875rem;color:var(--text-secondary, #404040);padding:8px 0}#app-version{color:var(--text-muted, #a3a3a3)!important;text-decoration:none!important;font-weight:500}.grid-table-container{background:var(--bg-primary, #ffffff);border-radius:12px;border:1px solid var(--border-light, #e5e5e5);box-shadow:0 1px 3px #0000000a;overflow:hidden}.grid-header-row{background:var(--bg-tertiary, #f5f5f5);border-bottom:2px solid var(--border-light, #e5e5e5)}.grid-header-row>div{font-family:var(--font-primary, "DM Sans", sans-serif);font-weight:600;font-size:.75rem;color:var(--text-tertiary, #737373);text-transform:uppercase;letter-spacing:.05em;padding:14px 12px;border-right:1px solid var(--border-light, #e5e5e5)}.grid-header-row>div:last-child{border-right:none}.grid-row{transition:background-color .1s ease}.grid-row:nth-child(2n){background:var(--bg-secondary, #fafafa)}.grid-row:hover{background:#b873330a}.grid-row.dragging{opacity:.5;background:var(--bg-secondary, #f5f5f5)!important}.grid-row.drag-over-above{position:relative}.grid-row.drag-over-above:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--color-copper, #b87333);z-index:10;box-shadow:0 0 8px #b8733380}.grid-row.drag-over-below{position:relative}.grid-row.drag-over-below:after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--color-copper, #b87333);z-index:10;box-shadow:0 0 8px #b8733380}.grid-drag-handle{cursor:grab}.grid-drag-handle:active{cursor:grabbing}.grid-row>div{font-family:var(--font-primary, "DM Sans", sans-serif);padding:10px 12px;border-right:1px solid var(--border-light, #e5e5e5);border-bottom:1px solid var(--border-light, #e5e5e5);font-size:.875rem;color:var(--text-primary, #1a1a1a)}.grid-row>div:last-child{border-right:none}.grid-product-name{font-weight:500;color:var(--text-primary, #1a1a1a);line-height:1.4}.grid-product-name strong{font-weight:600;color:var(--color-copper, #b87333)}.grid-product-code{font-size:.75rem;color:var(--text-muted, #a3a3a3);font-family:SF Mono,Monaco,Menlo,monospace}.grid-search-input,.grid-select,.grid-input,.grid-textarea{font-family:var(--font-primary, "DM Sans", sans-serif);border:1px solid var(--border-light, #e5e5e5);border-radius:6px;padding:8px 10px;font-size:.875rem;background:var(--bg-primary, #ffffff);color:var(--text-primary, #1a1a1a);transition:all .15s ease}.grid-search-input:hover,.grid-select:hover,.grid-input:hover,.grid-textarea:hover{border-color:var(--border-medium, #d4d4d4)}.grid-search-input:focus,.grid-select:focus,.grid-input:focus,.grid-textarea:focus{outline:none;border-color:var(--color-copper, #b87333);box-shadow:0 0 0 3px #b8733326}.grid-input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.grid-input[type=number]::-webkit-outer-spin-button,.grid-input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.grid-search-input::placeholder{color:var(--text-muted, #a3a3a3)}.grid-search-input.populated{background:#b873330d;border-color:var(--color-copper, #b87333)}.grid-price-cell{font-weight:500;color:var(--color-sage, #7c9082)}.grid-total-display{font-weight:600;color:var(--text-primary, #1a1a1a);background:var(--bg-tertiary, #f5f5f5);border-radius:4px;padding:6px 10px;text-align:right}.grid-move-btn{width:28px;height:28px;border:none;background:var(--bg-tertiary, #f5f5f5);color:var(--text-tertiary, #737373);border-radius:6px;font-size:14px;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.grid-move-btn:hover{background:var(--border-medium, #d4d4d4);color:var(--text-primary, #1a1a1a)}.grid-drag-handle{width:28px;height:28px;background:var(--bg-tertiary, #f5f5f5);color:var(--text-muted, #a3a3a3);border-radius:6px;cursor:grab;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.grid-drag-handle:hover{background:var(--border-medium, #d4d4d4);color:var(--text-secondary, #404040)}.grid-remove-btn{width:28px;height:28px;border:none;background:var(--color-error-light, #fbeae8);color:var(--color-error, #c44536);border-radius:6px;font-size:16px;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.grid-remove-btn:hover{background:var(--color-error, #c44536);color:#fff}.add-row-btn{font-family:var(--font-primary, "DM Sans", sans-serif);background:var(--bg-primary, #ffffff);border:2px dashed var(--border-medium, #d4d4d4);color:var(--text-tertiary, #737373);padding:14px 24px;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease}.add-row-btn:hover{border-color:var(--color-copper, #b87333);color:var(--color-copper, #b87333);background:#b873330a}.room-header-row{background:var(--color-charcoal, #1a1a1a)!important}.room-header-content{display:flex;align-items:center;gap:8px;color:#fff;font-weight:600;white-space:nowrap}.room-header-content .room-name{white-space:nowrap}.room-header-content .room-drag-handle{cursor:grab;opacity:.6;font-size:14px;letter-spacing:-2px;-webkit-user-select:none;user-select:none;padding:2px 4px;border-radius:4px;transition:opacity .15s ease,background .15s ease}.room-header-content .room-drag-handle:hover{opacity:1;background:#fff3}.room-header-content .room-drag-handle:active{cursor:grabbing}.room-header-row[draggable=true]{cursor:grab}.room-header-row[draggable=true]:active{cursor:grabbing}.room-header-row.dragging{opacity:.5}.room-header-content .room-count{background:#ffffff26;padding:2px 10px;border-radius:12px;font-size:.75rem}.room-header-row.blank-room{background:var(--color-slate, #404040)!important}.room-header-row.bath-room{background:#4a7c8c!important}.room-header-row.kitchen-room{background:var(--color-copper, #b87333)!important}.room-header-row.laundry-room{background:var(--color-sage, #7c9082)!important}.room-header-row.alfresco-room{background:#6b8e6b!important}.room-header-row.butlers-room{background:#8b7355!important}.room-header-row.standard-room{background:#5a6f7a!important}.room-header-row.upgrade-room{background:#9b7b3b!important}.room-header-row.other-room{background:#7a7a7a!important}.grid-row[data-room=bath]>div:first-child,.grid-row.bath-room-row>div:first-child{border-left:3px solid #4a7c8c}.grid-row[data-room=kitchen]>div:first-child,.grid-row.kitchen-room-row>div:first-child{border-left:3px solid var(--color-copper, #b87333)}.grid-row[data-room=laundry]>div:first-child,.grid-row.laundry-room-row>div:first-child{border-left:3px solid var(--color-sage, #7c9082)}.grid-row[data-room=alfresco]>div:first-child,.grid-row.alfresco-room-row>div:first-child{border-left:3px solid #6b8e6b}.grid-row[data-room=butlers]>div:first-child,.grid-row.butlers-room-row>div:first-child{border-left:3px solid #8b7355}.grid-row[data-room=standard]>div:first-child,.grid-row.standard-room-row>div:first-child{border-left:3px solid #5a6f7a}.grid-row[data-room=upgrade]>div:first-child,.grid-row.upgrade-room-row>div:first-child{border-left:3px solid #9b7b3b}.global-search-dropdown{font-family:var(--font-primary, "DM Sans", sans-serif);background:var(--bg-primary, #ffffff);border:1px solid var(--border-light, #e5e5e5);border-radius:8px;box-shadow:0 8px 24px #0000001f}.global-search-dropdown li{padding:12px 16px;font-size:.875rem;color:var(--text-primary, #1a1a1a);border-bottom:1px solid var(--border-light, #e5e5e5);transition:background-color .1s ease}.global-search-dropdown li:last-child{border-bottom:none}.global-search-dropdown li:hover{background:var(--bg-secondary, #fafafa)}.global-search-dropdown li.active{background:var(--color-copper, #b87333)!important;color:#fff!important}.modal{background:#1a1a1a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{font-family:var(--font-primary, "DM Sans", sans-serif);background:var(--bg-primary, #ffffff);border-radius:16px;box-shadow:0 24px 48px #0003;border:1px solid var(--border-light, #e5e5e5);padding:32px;max-width:480px}.modal-content h3{font-family:var(--font-display, "Fraunces", Georgia, serif);font-weight:600;font-size:1.5rem;color:var(--text-primary, #1a1a1a);margin-bottom:24px}.modal-content label{font-size:.875rem;font-weight:500;color:var(--text-secondary, #404040);display:block;margin-bottom:6px}.modal-content input[type=text],.modal-content input[type=email],.modal-content input[type=tel],.modal-content select,.modal-content textarea{font-family:var(--font-primary, "DM Sans", sans-serif);width:100%;padding:12px 14px;border:1px solid var(--border-light, #e5e5e5);border-radius:8px;font-size:1rem;color:var(--text-primary, #1a1a1a);background:var(--bg-primary, #ffffff);transition:all .15s ease;margin-bottom:16px}.modal-content input:focus,.modal-content select:focus,.modal-content textarea:focus{outline:none;border-color:var(--color-copper, #b87333);box-shadow:0 0 0 3px #b8733326}.modal-content .primary-btn{background:var(--color-charcoal, #1a1a1a);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-weight:500;cursor:pointer;transition:all .15s ease}.modal-content .primary-btn:hover{background:var(--color-graphite, #2d2d2d);transform:translateY(-1px)}.modal-content .secondary-btn{background:var(--bg-tertiary, #f5f5f5);color:var(--text-secondary, #404040);border:1px solid var(--border-medium, #d4d4d4);padding:12px 24px;border-radius:8px;font-weight:500;cursor:pointer;transition:all .15s ease}.modal-content .secondary-btn:hover{background:var(--bg-primary, #ffffff);border-color:var(--text-tertiary, #737373)}.empty-state{text-align:center;padding:80px 40px;display:flex;flex-direction:column;align-items:center;gap:16px}.empty-state-icon{color:var(--border-medium, #d4d4d4);margin-bottom:8px}.empty-state-title{font-family:var(--font-display, "Fraunces", Georgia, serif);font-size:1.5rem;font-weight:600;color:var(--text-primary, #1a1a1a);margin:0}.empty-state-text{font-size:1rem;color:var(--text-tertiary, #737373);margin:0;max-width:400px}.empty-state-hints{display:flex;gap:24px;margin-top:24px;flex-wrap:wrap;justify-content:center}.empty-state-hints .hint{display:flex;align-items:center;gap:8px;font-size:.8125rem;color:var(--text-muted, #a3a3a3)}.empty-state-hints kbd{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 6px;font-family:var(--font-primary, "DM Sans", sans-serif);font-size:.75rem;font-weight:500;color:var(--text-secondary, #404040);background:var(--bg-tertiary, #f5f5f5);border:1px solid var(--border-light, #e5e5e5);border-radius:4px;box-shadow:0 1px 0 var(--border-medium, #d4d4d4)}#pdf-spinner{background:#1a1a1ab3!important;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}#pdf-spinner>div{background:var(--bg-primary, #ffffff)!important;border-radius:16px!important;padding:40px!important;box-shadow:0 24px 48px #0003!important}#pdf-spinner div[style*=border-top]{border-color:var(--border-light, #e5e5e5)!important;border-top-color:var(--color-copper, #b87333)!important}.grid-product-image{border-radius:8px;border:1px solid var(--border-light, #e5e5e5);background:var(--bg-primary, #ffffff)}.grid-content::-webkit-scrollbar,.modal-content::-webkit-scrollbar{width:8px;height:8px}.grid-content::-webkit-scrollbar-track,.modal-content::-webkit-scrollbar-track{background:var(--bg-tertiary, #f5f5f5);border-radius:4px}.grid-content::-webkit-scrollbar-thumb,.modal-content::-webkit-scrollbar-thumb{background:var(--border-medium, #d4d4d4);border-radius:4px}.grid-content::-webkit-scrollbar-thumb:hover,.modal-content::-webkit-scrollbar-thumb:hover{background:var(--text-muted, #a3a3a3)}.modal-content input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-copper, #b87333);cursor:pointer;margin-right:10px}.modal-content input[type=file]{font-family:var(--font-primary, "DM Sans", sans-serif);font-size:.875rem;color:var(--text-secondary, #404040)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{animation:fadeIn .2s ease-out}.modal-content{animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.form-section-title{font-family:var(--font-primary, "DM Sans", sans-serif);font-weight:600;font-size:.875rem;color:var(--text-secondary, #404040);margin:24px 0 12px;padding-top:16px;border-top:1px solid var(--border-light, #e5e5e5)}.form-section-title:first-of-type{margin-top:0;padding-top:0;border-top:none}.label-optional{font-weight:400;color:var(--text-muted, #a3a3a3);font-size:.875em}.checkbox-group{display:flex;flex-direction:column;gap:12px;margin:16px 0;padding:16px;background:var(--bg-secondary, #fafafa);border-radius:8px}.checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:.875rem;color:var(--text-secondary, #404040)}.checkbox-label input[type=checkbox]{margin:0}.checkbox-label span{-webkit-user-select:none;user-select:none}.logo-preview{min-height:60px;max-height:120px;width:auto;max-width:200px;background:var(--bg-primary, #ffffff);border:1px solid var(--border-light, #e5e5e5);border-radius:8px;display:flex;align-items:center;justify-content:center;margin:12px 0;padding:8px}.logo-preview img{max-width:100%;max-height:100%;object-fit:contain}.tip-tail-section{margin-bottom:16px;padding:16px;background:var(--bg-secondary, #fafafa);border-radius:8px}.tip-tail-section label,.tip-tail-section select{margin-bottom:8px}.tip-tail-section input[type=file]{margin-bottom:8px;font-size:.875rem}.file-status{font-size:.875rem;color:var(--color-sage, #7c9082);margin-top:4px}.btn-sm{padding:6px 12px!important;font-size:.75rem!important;margin-bottom:8px}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:24px;border-top:1px solid var(--border-light, #e5e5e5)}.modal-actions .primary-btn,.modal-actions .secondary-btn{min-width:100px}.modal-wide{max-width:600px!important}.file-drop-zone{border:2px dashed var(--border-medium, #d4d4d4);padding:48px 24px;text-align:center;margin:20px 0;border-radius:12px;background:var(--bg-secondary, #fafafa);cursor:pointer;transition:all .2s ease}.file-drop-zone:hover{border-color:var(--color-copper, #b87333);background:#b873330a}.file-drop-zone.drag-over{border-color:var(--color-copper, #b87333);background:#b8733314}.drop-zone-text{margin:0 0 8px;color:var(--text-secondary, #404040);font-size:1rem;font-weight:500}.drop-zone-formats{margin:0;color:var(--text-muted, #a3a3a3);font-size:.875rem}.file-selected-info{margin:16px 0;padding:12px 16px;background:#7c90821f;border:1px solid var(--color-sage, #7c9082);border-radius:8px;color:var(--color-sage-dark, #5a6b5e)}.step-description{margin-bottom:20px;color:var(--text-secondary, #404040);font-size:1rem}.import-mode-options{margin:24px 0}.radio-label{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px;cursor:pointer;padding:16px;background:var(--bg-secondary, #fafafa);border:1px solid var(--border-light, #e5e5e5);border-radius:8px;transition:all .15s ease}.radio-label:hover{border-color:var(--border-medium, #d4d4d4);background:var(--bg-primary, #ffffff)}.radio-label input[type=radio]{width:18px;height:18px;accent-color:var(--color-copper, #b87333);margin-top:2px;flex-shrink:0}.radio-label span{flex:1;-webkit-user-select:none;user-select:none}.radio-label strong{color:var(--text-primary, #1a1a1a)}.warning-box{margin:16px 0;padding:16px;background:var(--color-error-light, #fbeae8);border:1px solid var(--color-error, #c44536);border-radius:8px;color:var(--color-error, #c44536);font-size:.875rem}.processing-step{text-align:center;padding:48px 24px}.spinner{border:4px solid var(--border-light, #e5e5e5);border-top:4px solid var(--color-copper, #b87333);border-radius:50%;width:48px;height:48px;animation:spin .8s linear infinite;margin:0 auto 20px}.processing-step p{margin:0;color:var(--text-secondary, #404040);font-size:1rem}.success-title{margin:0 0 16px;color:var(--color-sage, #7c9082);font-size:1.25rem;font-weight:600}.import-summary{margin-bottom:20px;padding:16px;background:var(--bg-secondary, #fafafa);border-radius:8px;font-size:.9375rem;line-height:1.6}.not-found-section{margin-top:24px}.not-found-title{margin:0 0 12px;color:var(--color-error, #c44536);font-size:.875rem;font-weight:600}.not-found-list{max-height:200px;overflow-y:auto;border:1px solid var(--border-light, #e5e5e5);padding:12px 16px;border-radius:8px;background:var(--bg-secondary, #fafafa);font-size:.875rem}.modal-confirm{max-width:420px!important}.confirm-text{margin-bottom:16px;color:var(--text-secondary, #404040);line-height:1.6}.clear-options{margin-bottom:24px;padding:12px 16px;background:var(--bg-tertiary, #f5f5f5);border-radius:8px}.clear-options .checkbox-label{margin:0;font-size:.875rem}.settings-section{margin-bottom:24px}.section-description{margin:0 0 20px;color:var(--text-muted, #a3a3a3);font-size:.875rem}.btn-refresh{width:100%;padding:12px 20px;margin-top:16px;background:var(--bg-tertiary, #f5f5f5);color:var(--color-copper, #b87333);border:1px solid var(--color-copper, #b87333);border-radius:8px;font-family:var(--font-primary, "DM Sans", sans-serif);font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-refresh:hover{background:#b8733314}.changelog-title{display:flex;align-items:center;gap:8px}.version-highlight{color:var(--color-copper, #b87333);font-weight:700}.changelog-content{max-height:400px;overflow-y:auto;line-height:1.7;color:var(--text-secondary, #404040);padding-right:8px}.changelog-content h4{color:var(--text-primary, #1a1a1a);margin:20px 0 10px;font-size:1rem}.changelog-content ul{margin:0 0 16px;padding-left:20px}.changelog-content li{margin-bottom:6px}.spinner-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#1a1a1ab3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999;display:flex;align-items:center;justify-content:center}.spinner-content{background:var(--bg-primary, #ffffff);padding:40px 48px;border-radius:16px;text-align:center;max-width:320px;box-shadow:0 24px 48px #0003}.spinner-content .spinner{width:48px;height:48px;margin:0 auto 20px}.spinner-content p{margin:0;color:var(--text-secondary, #404040);font-size:1rem;font-weight:500}#sort-refresh-btn{margin-left:8px;background:none;border:none;cursor:pointer;font-size:1.1rem;color:var(--color-copper, #b87333);padding:4px;border-radius:4px;transition:all .15s ease}#sort-refresh-btn:hover{background:#b873331a}.header-bottom{display:flex;justify-content:space-between;align-items:center;padding:8px 32px;background:var(--bg-secondary, #fafafa);border-top:1px solid var(--border-light, #e5e5e5)}.header-meta{display:flex;align-items:center;gap:12px}.version-badge{font-size:.75rem;color:var(--text-muted, #a3a3a3);background:var(--bg-tertiary, #f5f5f5);padding:4px 10px;border-radius:12px;cursor:pointer;transition:all .15s ease}.version-badge:hover{background:var(--border-light, #e5e5e5);color:var(--text-secondary, #404040)}.selection-summary{font-size:.875rem;color:var(--text-secondary, #404040)}.selection-summary #total-value{font-weight:600;color:var(--color-copper, #b87333)}.header-left h2{font-family:var(--font-primary, "DM Sans", sans-serif);font-size:1.125rem;font-weight:500;color:var(--text-secondary, #404040);margin:0}.panel-logo{height:28px;width:auto}.modal-fullscreen{width:90vw;max-width:1000px;height:85vh;max-height:85vh;display:flex;flex-direction:column;padding:0;overflow:hidden}.user-guide-header{display:flex;align-items:center;justify-content:space-between;padding:20px 28px;background:var(--color-charcoal, #1a1a1a);color:#fff;flex-shrink:0}.user-guide-header h2{margin:0;font-size:1.25rem;font-weight:600;font-family:var(--font-primary, "DM Sans", sans-serif)}.modal-close-btn{width:40px;height:40px;border:none;background:#ffffff1a;color:#fffc;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.modal-close-btn:hover{background:#fff3;color:#fff}.user-guide-content{flex:1;overflow-y:auto;padding:32px;background:var(--bg-primary, #ffffff)}.user-guide-content h3{font-family:var(--font-display, "Fraunces", serif);font-size:1.5rem;font-weight:500;color:var(--color-charcoal, #1a1a1a);margin:0 0 16px;padding-bottom:12px;border-bottom:2px solid var(--color-copper, #b87333)}.user-guide-content h4{font-family:var(--font-primary, "DM Sans", sans-serif);font-size:1.125rem;font-weight:600;color:var(--color-charcoal, #1a1a1a);margin:28px 0 12px}.user-guide-content p{font-size:.9375rem;line-height:1.7;color:var(--text-secondary, #404040);margin:0 0 16px}.user-guide-content ul,.user-guide-content ol{margin:0 0 20px;padding-left:24px}.user-guide-content li{font-size:.9375rem;line-height:1.7;color:var(--text-secondary, #404040);margin-bottom:8px}.user-guide-content .guide-header{display:flex;align-items:center;gap:20px;padding:32px 0;margin-bottom:32px;border-bottom:1px solid var(--border-light, #e5e5e5)}.user-guide-content .guide-logo{height:44px;width:auto}.user-guide-content .guide-header-text{display:flex;flex-direction:column;gap:2px}.user-guide-content .guide-header-title{font-family:var(--font-display, "Fraunces", serif);font-size:1.5rem;font-weight:600;color:var(--color-charcoal, #1a1a1a);margin:0;line-height:1.2}.user-guide-content .guide-header-subtitle{font-size:.875rem;color:var(--color-copper, #b87333);font-weight:500;margin:0;text-transform:uppercase;letter-spacing:.05em}.user-guide-content .guide-section{margin-bottom:36px}.user-guide-content .guide-tip{background:linear-gradient(135deg,#fef3c7,#fed7aa);border-left:4px solid var(--color-copper, #b87333);padding:16px 20px;border-radius:0 8px 8px 0;margin:20px 0}.user-guide-content .guide-tip strong{color:#92400e}.user-guide-content .guide-tip p{margin:0;color:#78350f}.user-guide-content .shortcut-table{width:100%;border-collapse:collapse;margin:16px 0 24px}.user-guide-content .shortcut-table th,.user-guide-content .shortcut-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border-light, #e5e5e5)}.user-guide-content .shortcut-table th{background:var(--bg-tertiary, #f5f5f5);font-weight:600;color:var(--color-charcoal, #1a1a1a);font-size:.875rem}.user-guide-content .shortcut-table td{font-size:.875rem;color:var(--text-secondary, #404040)}.user-guide-content .shortcut-table kbd{display:inline-block;padding:4px 8px;background:var(--color-charcoal, #1a1a1a);color:#fff;border-radius:4px;font-family:SF Mono,Consolas,monospace;font-size:.75rem;font-weight:500}.user-guide-content .guide-img{max-width:100%;border-radius:8px;box-shadow:0 4px 12px #0000001a;margin:16px 0}.user-guide-content .step-number{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--color-copper, #b87333);color:#fff;border-radius:50%;font-weight:600;font-size:.875rem;margin-right:12px}.user-guide-content .guide-footer{margin-top:48px;padding-top:32px;border-top:1px solid var(--border-light, #e5e5e5);text-align:center}.user-guide-content .guide-footer-brand{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:16px}.user-guide-content .guide-footer-logo{height:32px;width:auto;opacity:.7}.user-guide-content .guide-footer-tagline{font-size:.875rem;color:var(--text-muted, #a3a3a3);font-style:italic}.user-guide-content .guide-footer-copyright{font-size:.75rem;color:var(--text-muted, #a3a3a3);margin:0}.toast-container{position:fixed;bottom:24px;right:24px;z-index:100000;display:flex;flex-direction:column-reverse;gap:12px;pointer-events:none;max-width:400px}.toast{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;background:var(--bg-primary, #ffffff);border-radius:10px;box-shadow:0 4px 12px #00000026,0 0 0 1px #0000000d;pointer-events:auto;opacity:0;transform:translate(100%);transition:opacity .2s,transform .3s cubic-bezier(.4,0,.2,1)}.toast-enter{opacity:1;transform:translate(0)}.toast-exit{animation:toast-slide-out .2s ease-in forwards}@keyframes toast-slide-out{to{opacity:0;transform:translate(100%)}}.toast-icon{flex-shrink:0;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff}.toast-success .toast-icon{background:var(--color-sage, #7c9082)}.toast-error .toast-icon{background:var(--color-error, #c44536)}.toast-warning .toast-icon{background:var(--color-warning, #d4915a)}.toast-info .toast-icon{background:var(--color-copper, #b87333)}.toast-content{flex:1;min-width:0}.toast-message{display:block;font-family:var(--font-primary, "DM Sans", sans-serif);font-size:.9375rem;font-weight:500;color:var(--text-primary, #1a1a1a);line-height:1.4}.toast-action{display:inline-block;margin-top:8px;padding:6px 14px;font-family:var(--font-primary, "DM Sans", sans-serif);font-size:.8125rem;font-weight:600;color:var(--color-copper, #b87333);background:#b873331a;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease}.toast-action:hover{background:#b8733333;color:var(--color-copper-dark, #8b5a2b)}.toast-close{flex-shrink:0;width:24px;height:24px;padding:0;font-size:18px;font-weight:300;color:var(--text-muted, #a3a3a3);background:none;border:none;border-radius:4px;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.toast-close:hover{color:var(--text-primary, #1a1a1a);background:var(--bg-tertiary, #f5f5f5)}.toast-success{border-left:3px solid var(--color-sage, #7c9082)}.toast-error{border-left:3px solid var(--color-error, #c44536)}.toast-warning{border-left:3px solid var(--color-warning, #d4915a)}.toast-info{border-left:3px solid var(--color-copper, #b87333)}@media (max-width: 480px){.toast-container{left:16px;right:16px;bottom:16px;max-width:none}.toast{transform:translateY(100%)}.toast-enter{transform:translateY(0)}@keyframes toast-slide-out{to{opacity:0;transform:translateY(100%)}}}@media (max-width: 1024px){.grid-header-row>div,.grid-row>div{padding:8px 10px}.col-notes{display:none}#pdf-wizard .wizard-sidebar{width:320px;min-width:320px;padding:24px}.header-right{gap:8px}.header-right .btn-import-quote,.header-right .btn-clear-all,.header-right .btn-settings{padding:8px 12px;font-size:.8125rem}}@media (max-width: 768px){.header-top{flex-direction:column;gap:16px;padding:16px}.header-left{width:100%;text-align:center}.header-right{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}.header-right button,.sort-controls{width:100%;justify-content:center}.grid-table-container{border:none;background:none;box-shadow:none}.grid-header-row{display:none!important}.grid-row{display:grid!important;grid-template-columns:80px 1fr;grid-template-rows:auto auto auto;gap:8px;padding:16px;margin-bottom:12px;background:var(--bg-primary, #ffffff);border:1px solid var(--border-light, #e5e5e5);border-radius:12px;box-shadow:0 1px 3px #0000000a}.grid-row.room-header-row{grid-template-columns:1fr;padding:12px 16px;margin-bottom:8px;border-radius:8px}.grid-row>div{border:none!important;padding:0!important}.grid-row .col-image{grid-row:1 / 3;align-self:start}.grid-row .grid-product-image{width:80px;height:80px;object-fit:contain}.grid-row .col-product{grid-column:2;grid-row:1}.grid-row .col-product .grid-product-name{font-size:.9375rem;line-height:1.4}.grid-row .col-room,.grid-row .col-qty,.grid-row .col-price,.grid-row .col-total{grid-column:2}.grid-row .col-room{grid-row:2}.grid-row .col-room select{width:100%;padding:10px 12px;font-size:1rem}.grid-row .col-qty,.grid-row .col-price{display:inline-block!important;width:auto!important}.grid-row .col-total{grid-column:1 / -1;grid-row:3;display:flex!important;justify-content:space-between;align-items:center;padding-top:12px!important;margin-top:8px;border-top:1px solid var(--border-light, #e5e5e5)!important}.grid-row .col-total:before{content:"Total";font-weight:500;color:var(--text-tertiary, #737373)}.grid-row .col-actions{grid-column:1 / -1;grid-row:4;display:flex!important;justify-content:flex-end;gap:8px;padding-top:12px!important}.grid-row .grid-actions-group{display:flex;gap:8px}.grid-row .grid-move-btn,.grid-row .grid-drag-handle,.grid-row .grid-remove-btn{width:36px;height:36px;font-size:16px}.grid-row .col-notes{display:none!important}.add-row-btn{width:100%}#pdf-wizard .wizard-content{flex-direction:column}#pdf-wizard .wizard-sidebar{width:100%;min-width:100%;order:-1;max-height:200px;overflow-y:auto}#pdf-wizard .wizard-main{padding:20px}.wizard-progress{padding:12px 16px;overflow-x:auto}.wizard-step-label{font-size:.75rem}.wizard-step-indicator{width:28px;height:28px;font-size:.75rem}.modal-content{max-width:100%!important;max-height:100vh;margin:0;border-radius:0}.empty-state{padding:48px 24px}.empty-state-icon svg{width:60px;height:60px}.empty-state-title{font-size:1.25rem}.empty-state-hints{flex-direction:column;gap:12px}}@media (max-width: 480px){.header-right{grid-template-columns:1fr}.grid-row{grid-template-columns:60px 1fr;padding:12px}.grid-row .grid-product-image{width:60px;height:60px}.wizard-step-label{display:none}.wizard-step{flex-direction:column;gap:4px}}@media (hover: none) and (pointer: coarse){.btn-import-quote,.btn-clear-all,.btn-settings,.btn-create{min-height:44px}.grid-move-btn,.grid-drag-handle,.grid-remove-btn{min-width:44px;min-height:44px}.grid-row:hover{background:inherit}.btn-import-quote:active,.btn-clear-all:active,.btn-settings:active,.btn-create:active{transform:scale(.98)}}@media print{.grid-header,.grid-footer,.header-right,.col-actions,.toast-container{display:none!important}.grid-row{break-inside:avoid}}
