:root{--bg-base:#f7f7f5;--bg-panel:#f1f1efd9;--bg-panel-solid:#fff;--bg-card:#fff;--safe-area-top:env(safe-area-inset-top,0px);--safe-area-right:env(safe-area-inset-right,0px);--safe-area-bottom:env(safe-area-inset-bottom,0px);--safe-area-left:env(safe-area-inset-left,0px);--primary:#2383e2;--primary-hover:#1b68b3;--primary-glow:#2383e226;--accent:#eb5757;--accent-hover:#c44040;--success:#0f7b5f;--success-glow:#0f7b5f1a;--error:#eb5757;--error-glow:#eb57571a;--border:#37352f17;--border-hover:#37352f29;--text-primary:#37352f;--text-secondary:#787774;--text-muted:#9b9a97;--gradient-primary:linear-gradient(135deg, #2383e2 0%, #1c6cbd 100%);--gradient-hover:linear-gradient(135deg, #1b68b3 0%, #16538f 100%);--shadow-sm:0 1px 2px 0 #0f0f0f0d;--shadow-md:0 4px 6px -1px #0f0f0f0d, 0 2px 4px -1px #0f0f0f0d;--shadow-lg:0 10px 15px -3px #0f0f0f0d, 0 4px 6px -2px #0f0f0f0d;--shadow-xl:0 20px 25px -5px #0f0f0f14, 0 10px 10px -5px #0f0f0f0a;--sans:"Inter", "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--sans);background-color:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;justify-content:center;align-items:center;min-height:100dvh;display:flex;overflow:hidden}#app{justify-content:center;align-items:center;width:100%;height:100dvh;display:flex}.macos-window{background:#fff;flex-direction:column;width:100vw;height:100dvh;display:flex;position:relative;overflow:hidden}.title-bar{height:calc(54px + var(--safe-area-top));min-height:calc(54px + var(--safe-area-top));border-bottom:1px solid var(--border);padding:var(--safe-area-top) calc(24px + var(--safe-area-right)) 0 calc(24px + var(--safe-area-left));-webkit-user-select:none;user-select:none;z-index:101;background:#fff;justify-content:space-between;align-items:center;display:flex;position:relative}.window-title{color:var(--text-primary);letter-spacing:-.2px;align-items:center;gap:8px;margin-left:0;font-size:15px;font-weight:600;display:flex}.logo-icon{color:var(--text-primary)}.logo-badge{color:var(--text-primary);letter-spacing:.5px;background:#37352f14;border-radius:3px;margin-left:2px;padding:1px 4px;font-size:9px;font-weight:800}.traffic-lights{pointer-events:none;z-index:-1;display:flex;position:absolute;top:0;left:0}.traffic-light{opacity:.001;width:1px;height:1px;display:inline-block}#traffic-light-close{background-color:var(--error)}#traffic-light-minimize{background-color:var(--warning)}#traffic-light-maximize{background-color:var(--success)}#app-container{flex-direction:row;flex:1;min-height:0;display:flex;overflow:hidden}.glass-panel{background:var(--bg-panel);-webkit-backdrop-filter:blur(20px)saturate(140%)url(#refraction);border:1px solid var(--border);transition:all .25s}aside#sidebar{box-sizing:border-box;border-top:none;border-bottom:none;border-left:none;border-right:1px solid var(--border);flex-direction:column;width:260px;min-width:260px;padding:24px 16px;display:flex;overflow-y:auto}.sidebar-brand{margin-bottom:24px;padding:0 8px}.sidebar-brand h3{letter-spacing:-.3px;color:var(--text-primary);font-size:16px;font-weight:700}.sidebar-tagline{color:var(--text-secondary);margin-top:2px;font-size:11px}#session-info{border:1px solid var(--border);background:#37352f0a;border-radius:8px;margin-bottom:24px;padding:10px 12px}.user-status-row{color:var(--text-primary);align-items:center;gap:8px;font-size:13px;display:flex}.status-indicator{background-color:var(--success);border-radius:50%;width:7px;height:7px}.status-label{font-weight:500}.status-value{color:var(--text-primary);margin-left:auto;font-weight:600}.fingerprint-row{border-top:1px solid #37352f0f;flex-direction:column;gap:2px;margin-top:6px;padding-top:6px;display:flex}.fp-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:9px;font-weight:700}.fp-value{font-family:var(--mono);color:var(--text-secondary);word-break:break-all;font-size:9px;line-height:1.3}.nav-links{flex-direction:column;gap:2px;margin-bottom:24px;display:flex}.nav-pill{color:var(--text-primary);border:1px solid #0000;border-radius:6px;align-items:center;gap:10px;padding:8px 12px;font-size:14px;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.nav-pill svg,.nav-pill i{color:var(--text-secondary)}.nav-pill:hover{background:#37352f0a}.nav-pill.active{background:#37352f0f;font-weight:600}.nav-pill.active svg,.nav-pill.active i{color:var(--text-primary)}.auth-buttons-sidebar{border-top:1px solid #37352f0f;flex-direction:column;gap:8px;margin-top:auto;padding-top:16px;display:flex}main#main-panel{box-sizing:border-box;background-color:#fff;flex-direction:column;flex:1;padding:40px 48px;display:flex;overflow-y:auto}.tab-content{flex-direction:column;flex:1;animation:.15s ease-out fadeIn;display:none}.tab-content.active{display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.tab-header{margin-bottom:32px}.tab-header h2{letter-spacing:-.4px;color:var(--text-primary);margin-bottom:4px;font-size:24px;font-weight:700}.tab-header p{color:var(--text-secondary);font-size:14px}.form-group{flex-direction:column;gap:8px;margin-bottom:24px;display:flex}.form-group label{color:var(--text-primary);font-size:13px;font-weight:600}.upload-dropzone{text-align:center;cursor:pointer;background:#fcfcfb;border:2px dashed #37352f2e;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;min-height:200px;padding:0;transition:all .25s;display:flex;position:relative;overflow:hidden}.upload-dropzone:hover,.upload-dropzone.dragover{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-glow);background:#2383e208}.upload-dropzone input[type=file]{opacity:0;cursor:pointer;z-index:20;width:100%;height:100%;position:absolute;top:0;left:0}.upload-zone-content{pointer-events:none;flex-direction:column;align-items:center;gap:10px;padding:40px 20px;transition:opacity .3s,transform .3s;display:flex}.upload-preview-container~.upload-zone-content{opacity:0;transform:scale(.95)}.upload-icon{width:36px;height:36px;color:var(--text-secondary);transition:all .25s}.upload-dropzone:hover .upload-icon{color:var(--primary);transform:scale(1.1)}.upload-title{color:var(--text-primary);font-size:15px;font-weight:600}.upload-subtitle{color:var(--text-secondary);font-size:12px}.upload-preview-container{z-index:21;background:#1a1a1a;border-radius:8px;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.upload-preview-container.scanning:after{content:"";background:linear-gradient(90deg, transparent, var(--primary), transparent);height:3px;box-shadow:0 0 12px 3px var(--primary-glow), 0 0 30px 6px var(--primary-glow);z-index:25;border-radius:2px;animation:2s ease-in-out infinite scanning-move;position:absolute;top:0;left:0;right:0}@keyframes scanning-move{0%{opacity:.6;top:0%}50%{opacity:1;top:calc(100% - 3px)}to{opacity:.6;top:0%}}#upload-preview{object-fit:cover;border:none;border-radius:8px;width:100%;height:100%;transition:transform .4s,filter .4s}.upload-preview-container:hover #upload-preview{transform:scale(1.03)}.upload-preview-container .preview-image-overlay{pointer-events:none;z-index:22;background:linear-gradient(#0000 45%,#00000014 65%,#000000a6 100%);border-radius:8px;width:100%;height:100%;position:absolute;top:0;left:0}.upload-preview-info{z-index:23;pointer-events:none;justify-content:space-between;align-items:center;padding:14px 18px;display:flex;position:absolute;bottom:0;left:0;right:0}.preview-filename{color:#fff;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px 4px #0006;letter-spacing:.2px;max-width:200px;font-size:13px;font-weight:600;overflow:hidden}.btn-remove{-webkit-backdrop-filter:blur(12px);color:#fff;cursor:pointer;width:32px;height:32px;box-shadow:none;pointer-events:auto;background:#00000059;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:16px;transition:all .2s;display:flex}.btn-remove:hover{background:#eb5757cc;border-color:#eb57574d;transform:scale(1.1);box-shadow:0 2px 12px #eb57574d}.room-type-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-top:4px;display:grid}.room-type-card{border:1px solid var(--border);cursor:pointer;color:var(--text-secondary);-webkit-user-select:none;user-select:none;background:#fff;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:600;transition:all .15s;display:flex}.room-type-card:hover{color:var(--text-primary);border-color:var(--border-hover);background:#37352f0a}.room-type-card.active{border-color:var(--text-primary);color:var(--text-primary);background:#37352f0f}.room-type-card i{color:var(--text-secondary);font-size:16px}.room-type-card.active i{color:var(--text-primary)}.style-header-row{justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px;display:flex}.search-wrapper{flex:1;align-items:center;max-width:240px;display:flex;position:relative}.search-wrapper input{border:1px solid var(--border);width:100%;color:var(--text-primary);font-size:13px;font-family:var(--sans);background:#fbfbfb;border-radius:6px;padding:6px 12px 6px 30px;transition:all .15s}.search-wrapper input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);background:#fff;outline:none}.search-icon{color:var(--text-secondary);pointer-events:none;font-size:14px;position:absolute;left:10px}.style-cards-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin-top:4px;display:grid}.style-card{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:8px;flex-direction:column;transition:all .2s;display:flex;overflow:hidden}.style-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-sm)}.style-card.active{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.style-card-visual{opacity:.85;width:100%;height:140px}.style-modern{background-image:url(/thumbnails/living-room_modern.jpg);background-position:50%;background-size:cover}.style-scandinavian{background-image:url(/thumbnails/living-room_scandinavian.jpg);background-position:50%;background-size:cover}.style-industrial{background-image:url(/thumbnails/living-room_industrial.jpg);background-position:50%;background-size:cover}.style-card-content{padding:10px 12px}.style-card-title{color:var(--text-primary);margin-bottom:2px;font-size:13.5px;font-weight:600}.style-card-desc{color:var(--text-secondary);font-size:11px;line-height:1.35}.btn{font-family:var(--sans);cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:6px;width:100%;padding:8px 14px;font-size:13.5px;font-weight:500;transition:all .15s;display:inline-flex}.btn:active{transform:scale(.98)}.btn-primary{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm);border:none}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{border:1px solid var(--border);color:var(--text-primary);box-shadow:var(--shadow-sm);background:#fff}.btn-secondary:hover{background:#37352f0a}.btn-secondary-outline{border:1px solid var(--border);color:var(--text-primary);background:0 0;width:auto}.btn-secondary-outline:hover{background:#37352f0a}.btn-text{color:var(--text-secondary);box-shadow:none;background:0 0;border:none}.btn-text:hover{color:var(--text-primary);background:#37352f0a}.btn-danger{color:var(--accent);box-shadow:var(--shadow-sm);background:#fff;border:1px solid #eb57574d}.btn-danger:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-submit{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm);margin-top:8px;padding:12px;font-size:14px;font-weight:600}.btn-submit:hover{background:var(--primary-hover)}.btn-submit-modal{background:var(--primary);color:#fff;width:100%;padding:10px}.btn-submit-modal:hover{background:var(--primary-hover)}.modal-backdrop{-webkit-backdrop-filter:blur(2px);z-index:1000;background:#0f0f0f73;width:100vw;height:100dvh;animation:.2s ease-out fadeIn;position:fixed;top:0;left:0}.modal{z-index:1001;box-sizing:border-box;width:350px;max-width:90vw;color:var(--text-primary);border:1px solid var(--border);box-shadow:var(--shadow-xl), 0 8px 30px #0000001a;background:#fff;border-radius:8px;padding:24px;animation:.2s ease-out scaleUp;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes scaleUp{0%{opacity:0;transform:translate(-50%,-50%)scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-header h4{letter-spacing:-.2px;font-size:16px;font-weight:700}#close-register-btn,#close-login-btn{color:var(--text-secondary);cursor:pointer;width:28px;height:28px;box-shadow:none;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:22px;line-height:1;transition:all .15s;display:flex}#close-register-btn:hover,#close-login-btn:hover{color:var(--text-primary);background:#37352f0f}.api-error-modal{border-radius:16px;width:min(680px,92vw);max-width:680px;padding:36px 40px}.api-error-modal-header{border:none;flex-direction:column;justify-content:center;align-items:center;margin-bottom:20px;padding:0;display:flex;position:relative}.api-error-modal-header h4{text-align:center;max-width:85%;font-size:16px;font-weight:700;line-height:1.4}.api-error-modal-icon{color:var(--accent);margin-bottom:12px;font-size:56px}.api-error-modal-close{cursor:pointer;color:var(--text-secondary);box-shadow:none;background:0 0;border:none;font-size:28px;position:absolute;top:-8px;right:-8px}.api-error-modal-close:hover{color:var(--text-primary);background:0 0}.api-error-modal-body{margin-bottom:28px;padding:0}.api-error-modal-body p{color:var(--text-primary);margin:0;max-width:560px;margin-inline:auto;font-size:14px;font-weight:500;line-height:1.6}.api-error-modal-footer{border:none;justify-content:center;gap:12px;padding:0;display:flex}.api-error-modal-footer .btn{min-width:144px;min-height:46px}.input-wrapper{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.input-wrapper label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.input-wrapper input{border:1px solid var(--border);width:100%;color:var(--text-primary);box-sizing:border-box;font-size:14px;font-family:var(--sans);background:#fff;border-radius:4px;padding:8px 12px;transition:all .15s}.input-wrapper input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);outline:none}.modal-footer{margin-top:20px}.error-toast{background:var(--error-glow);color:var(--error);border:1px solid #eb575733;border-radius:6px;margin-top:16px;padding:10px 14px;font-size:13.5px;font-weight:600;line-height:1.4;animation:.2s linear shake}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}#processing-spinner{border:1px solid var(--border);background:#fafaf9;border-radius:8px;justify-content:center;align-items:center;gap:12px;margin-top:20px;padding:16px;display:flex}#processing-spinner span{color:var(--text-secondary);font-size:13.5px;font-weight:500}.spinner-spinner{width:20px;height:20px;position:relative}.double-bounce1,.double-bounce2{background-color:var(--primary);opacity:.6;border-radius:50%;width:100%;height:100%;animation:2s ease-in-out infinite sk-bounce;position:absolute;top:0;left:0}.double-bounce2{background-color:var(--text-secondary);animation-delay:-1s}@keyframes sk-bounce{0%,to{transform:scale(0)}50%{transform:scale(1)}}.output-section{border-top:1px solid var(--border);margin-top:32px;padding-top:24px;animation:.6s cubic-bezier(.16,1,.3,1) forwards fade-in-scale}@keyframes fade-in-scale{0%{opacity:0;transform:scale(.95)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.output-header{text-align:center;margin-bottom:20px}.output-header h3{letter-spacing:-.3px;font-size:18px;font-weight:700}.output-header p{color:var(--text-secondary);margin-top:4px;font-size:13px}.comparison-grid{grid-template-columns:repeat(2,1fr);gap:24px;display:grid}.comparison-card{border:1px solid var(--border);box-shadow:var(--shadow-md);background:#fff;border-radius:12px;padding:6px;transition:all .3s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.comparison-card:hover{box-shadow:var(--shadow-lg);border-color:var(--border-hover);transform:translateY(-3px)}.card-image-wrapper{aspect-ratio:4/3;background:#f1f1ef;border-radius:8px;width:100%;position:relative;overflow:hidden}.card-image-wrapper img{object-fit:cover;width:100%;height:100%;transition:transform .5s,filter .5s}.comparison-card:hover .card-image-wrapper img{filter:brightness(1.05);transform:scale(1.04)}.badge{text-transform:uppercase;letter-spacing:.6px;-webkit-backdrop-filter:blur(8px);border-radius:20px;padding:5px 12px;font-size:11px;font-weight:700;position:absolute;top:10px;left:10px;box-shadow:0 2px 8px #0000001f}.badge-original{color:#fff;background:#0009;border:1px solid #ffffff26}.badge-restyle{color:#fff;background:#2383e2d9;border:1px solid #fff3}.quota-info-grid{grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:24px;display:grid}.quota-card{border:1px solid var(--border);box-shadow:var(--shadow-sm);background:#fff;border-radius:8px;flex-direction:column;gap:4px;padding:20px;display:flex;position:relative;overflow:hidden}.quota-card-icon{border-radius:6px;justify-content:center;align-items:center;width:36px;height:36px;margin-bottom:8px;display:flex}.limit-icon{color:var(--text-secondary);background:#37352f0d}.used-icon{color:var(--primary);background:#2383e214}.remaining-icon{color:var(--success);background:#0f7b5f14}.quota-card.highlight-card{background:#0f7b5f03;border-color:#0f7b5f4d}.quota-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:700}.quota-value{color:var(--text-primary);font-size:24px;font-weight:700;line-height:1}.auth-promo-card{border:1px solid var(--border);background:#37352f05;border-radius:8px;margin-bottom:24px;padding:20px}.auth-promo-card h4{color:var(--text-primary);margin-bottom:10px;font-size:15px;font-weight:700}.auth-promo-card ul{flex-direction:column;gap:6px;list-style:none;display:flex}.auth-promo-card li{color:var(--text-secondary);align-items:center;gap:6px;font-size:13px;display:flex}.auth-promo-card li:before{content:"•";color:var(--primary);font-size:14px}.auth-actions-panel{max-width:480px}.auth-actions-row{gap:12px;display:flex}#mobile-toggle{border:1px solid var(--border);color:var(--text-primary);cursor:pointer;box-shadow:var(--shadow-sm);background:#fff;border-radius:6px;justify-content:center;align-items:center;padding:6px 10px;display:none}#mobile-toggle:hover{background:#37352f0a}#bottom-tab-bar{display:none}@media (width>=768px){#mobile-toggle{display:none!important}}@media (width<=767px){.macos-window{border:none;border-radius:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh}.window-title{margin-left:0}#mobile-toggle{display:flex}aside#sidebar{top:calc(54px + var(--safe-area-top));left:calc(12px + var(--safe-area-left));right:calc(12px + var(--safe-area-right));bottom:calc(80px + var(--safe-area-bottom));z-index:100;width:auto;min-width:0;box-shadow:var(--shadow-xl);border:1px solid var(--border);border-radius:8px;margin:0;display:none;position:absolute}aside#sidebar.mobile-open{display:flex}main#main-panel{padding:24px calc(20px + var(--safe-area-right)) calc(24px + 64px + var(--safe-area-bottom)) calc(20px + var(--safe-area-left));margin:0}#bottom-tab-bar{height:calc(64px + var(--safe-area-bottom));border-top:1px solid var(--border);z-index:99;padding:0 calc(16px + var(--safe-area-right)) var(--safe-area-bottom) calc(16px + var(--safe-area-left));box-sizing:border-box;background:#fff;border-bottom:none;border-left:none;border-right:none;border-radius:0;flex-direction:row;justify-content:space-around;align-items:center;display:flex;position:absolute;bottom:0;left:0;right:0}.tab-item{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;height:100%;font-size:11px;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.tab-item svg,.tab-item i{opacity:.8}.tab-item.active,.tab-item.active svg,.tab-item.active i{color:var(--primary)}.room-type-grid{grid-template-columns:repeat(2,1fr);gap:10px}.style-header-row{flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:12px}.search-wrapper{width:100%;max-width:100%}.style-cards-grid{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;gap:14px;padding:4px 4px 14px;display:flex;overflow-x:auto}.style-cards-grid::-webkit-scrollbar{height:6px}.style-cards-grid::-webkit-scrollbar-track{background:#37352f08;border-radius:3px}.style-cards-grid::-webkit-scrollbar-thumb{background:#37352f26;border-radius:3px}.style-card{scroll-snap-align:start;flex:0 0 160px}.style-card .style-card-visual{height:100px}.comparison-grid{grid-template-columns:1fr;gap:16px}.auth-actions-row{flex-direction:column;gap:10px}}@media (width<=480px){main#main-panel{padding:20px calc(16px + var(--safe-area-right)) calc(20px + 64px + var(--safe-area-bottom)) calc(16px + var(--safe-area-left))}.tab-header h2{font-size:20px}.quota-info-grid{grid-template-columns:1fr;gap:12px}.quota-card{padding:16px}}@media (width<=280px){main#main-panel{padding:16px calc(10px + var(--safe-area-right)) calc(16px + 64px + var(--safe-area-bottom)) calc(10px + var(--safe-area-left))}.tab-header h2{font-size:16px}.btn-submit{padding:10px;font-size:13px}}.title-bar-actions{align-items:center;gap:12px;display:flex}.lang-toggle-pills{border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);background:#37352f0d;border-radius:8px;padding:3px;display:flex;box-shadow:inset 0 1px 2px #0000000d}.lang-pill{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;padding:4px 10px;font-size:11px;font-weight:700;transition:all .2s cubic-bezier(.16,1,.3,1)}.lang-pill:hover{color:var(--text-primary)}.lang-pill.active{color:var(--text-primary);background:#fff;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f}.library-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;margin-top:20px;display:grid}.library-card{border:1px solid var(--border);background:var(--bg-card);cursor:pointer;border-radius:12px;transition:all .3s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.library-card:hover{box-shadow:var(--shadow-lg);border-color:#fff3;transform:translateY(-4px)}.library-card-img-wrapper{aspect-ratio:4/3;background:var(--bg-hover);width:100%;position:relative;overflow:hidden}.library-card-img{object-fit:cover;width:100%;height:100%;transition:transform .5s}.library-card:hover .library-card-img{transform:scale(1.05)}.library-card-overlay{opacity:0;background:#0006;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .3s;display:flex;position:absolute;top:0;left:0}.library-card:hover .library-card-overlay{opacity:1}.library-card-overlay-btn{color:var(--text-primary);background:#fff;border:none;border-radius:20px;align-items:center;gap:6px;padding:8px 16px;font-size:12px;font-weight:600;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex;transform:translateY(10px);box-shadow:0 4px 12px #00000026}.library-card:hover .library-card-overlay-btn{transform:translateY(0)}.library-card-info{padding:12px}.library-card-title-row{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.library-card-style{text-transform:capitalize;font-size:13px;font-weight:700}.library-card-date{color:var(--text-secondary);font-size:11px}.lib-modal{background:var(--bg-modal);border:1px solid var(--border);z-index:1100;opacity:0;visibility:hidden;border-radius:16px;flex-direction:column;width:90%;max-width:800px;max-height:90vh;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)scale(.95);box-shadow:0 20px 40px #0000004d}.lib-modal.active{opacity:1;visibility:visible;transform:translate(-50%,-50%)scale(1)}.lib-modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.lib-modal-title{margin:0;font-size:16px;font-weight:700}.lib-modal-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;font-size:24px;line-height:1}.lib-modal-body{padding:20px;overflow-y:auto}.auth-quota-wrapper{border-top:1px solid var(--border);margin-top:24px;padding-top:24px}.nav-pill-cta{box-shadow:0 4px 12px #4f46e54d;color:#fff!important;background:linear-gradient(135deg,#4f46e5,#06b6d4)!important;border:1px solid #ffffff1a!important;font-weight:700!important}.nav-pill-cta i{color:#fff!important}.nav-pill-cta:hover{transform:translateY(-1px);box-shadow:0 6px 16px #4f46e566;background:linear-gradient(135deg,#4338ca,#0891b2)!important}.nav-pill-cta.active{background:linear-gradient(135deg,#4f46e5,#06b6d4)!important}.modal.onboarding-modal{background:var(--bg-panel-solid);width:620px;max-width:95vw;box-shadow:var(--shadow-xl), 0 20px 40px #00000026;border-radius:16px;padding:24px}.onboarding-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex;position:relative}.onboarding-steps-indicator{gap:8px;display:flex}.step-dot{background:var(--border-hover);cursor:pointer;border-radius:50%;width:8px;height:8px;transition:all .2s}.step-dot.active{background:var(--primary);transform:scale(1.2)}.close-onboarding-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:22px;line-height:1;transition:all .15s;display:flex}.close-onboarding-btn:hover{color:var(--text-primary);background:#37352f0f}.onboarding-body{flex-direction:column;justify-content:center;min-height:380px;margin-bottom:24px;display:flex}.onboarding-slide{animation:.25s ease-out fadeIn;display:none}.onboarding-slide.active{display:block}.onboarding-hero{text-align:center;margin-bottom:20px}.welcome-icon{color:var(--primary);margin-bottom:8px;font-size:40px;display:block}.onboarding-hero h3{color:var(--text-primary);margin-bottom:6px;font-size:20px;font-weight:700}.onboarding-hero p{color:var(--text-secondary);max-width:480px;margin:0 auto;font-size:13.5px;line-height:1.5}.transformation-demo-container{flex-direction:column;align-items:center;gap:12px;width:100%;max-width:480px;margin:0 auto;display:flex}.transformation-slider{aspect-ratio:16/9;border:1px solid var(--border);width:100%;box-shadow:var(--shadow-md);-webkit-user-select:none;user-select:none;--slider-pos:50%;border-radius:12px;position:relative;overflow:hidden}.demo-image{object-fit:cover;pointer-events:none;width:100%;height:100%;display:block;position:absolute;top:0;left:0}.before-image{z-index:2;clip-path:polygon(0 0, var(--slider-pos) 0, var(--slider-pos) 100%, 0 100%)}.after-image{z-index:1}.slider-divider{top:0;bottom:0;left:var(--slider-pos);z-index:3;pointer-events:none;background:#fff;width:2px;position:absolute;transform:translate(-50%);box-shadow:0 0 8px #0000004d}.slider-button{width:32px;height:32px;color:var(--text-primary);background:#fff;border-radius:50%;justify-content:center;align-items:center;font-size:14px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 6px #0003}.demo-slider-range{opacity:0;cursor:ew-resize;z-index:4;width:100%;height:100%;margin:0;position:absolute;top:0;left:0}.demo-badge{text-transform:uppercase;letter-spacing:.5px;color:#fff;z-index:5;pointer-events:none;border-radius:4px;padding:3px 6px;font-size:9px;font-weight:700;position:absolute;top:10px;box-shadow:0 1px 3px #00000026}.demo-badge-before{background:#37352fd9;left:10px}.demo-badge-after{background:var(--primary);right:10px}.demo-controls{flex-direction:column;align-items:center;gap:6px;width:100%;display:flex}.btn-autoplay{border:1px solid var(--border);width:auto;color:var(--text-primary);background:#37352f0d;border-radius:6px;gap:6px;padding:6px 12px;font-size:12px;font-weight:600}.btn-autoplay:hover{background:#37352f1a}.autoplay-hint{color:var(--text-secondary);text-align:center;font-size:11px}.slide-content{text-align:center;flex-direction:column;align-items:center;gap:16px;max-width:460px;margin:0 auto;display:flex}.step-graphic{flex-direction:column;align-items:center;margin-bottom:8px;display:flex}.graphic-circle{background:#2383e214;border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;display:flex;box-shadow:0 4px 10px #2383e21a}.graphic-circle.animate-pulse{background:#0f7b5f14;animation:2s infinite pulseGlow;box-shadow:0 4px 10px #0f7b5f1a}@keyframes pulseGlow{0%{transform:scale(1);box-shadow:0 0 #0f7b5f66}70%{transform:scale(1.05);box-shadow:0 0 0 10px #0f7b5f00}to{transform:scale(1);box-shadow:0 0 #0f7b5f00}}.slide-content h4{color:var(--text-primary);font-size:18px;font-weight:700}.slide-content p{color:var(--text-secondary);font-size:13.5px;line-height:1.6}.onboarding-auth-promo{gap:12px;width:100%;margin-top:12px;display:flex}.onboarding-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:8px;padding-top:16px;display:flex}.onboarding-btn{width:auto;min-width:100px}@media (width<=767px){.modal.onboarding-modal{padding:16px}.onboarding-body{min-height:320px}.onboarding-hero h3{font-size:18px}.slide-content h4{font-size:16px}.slide-content p{font-size:12.5px}.onboarding-auth-promo{flex-direction:column;gap:8px}}#upload-preview[src]:not([src=""]){animation:.5s cubic-bezier(.16,1,.3,1) forwards image-reveal}@keyframes image-reveal{0%{opacity:0;filter:blur(8px)saturate(.5);transform:scale(1.08)}to{opacity:1;filter:blur()saturate();transform:scale(1)}}.card-image-wrapper img[src]:not([src=""]){animation:.6s cubic-bezier(.16,1,.3,1) forwards img-fade-in}@keyframes img-fade-in{0%{opacity:0;filter:brightness(.6)blur(2px)}to{opacity:1;filter:brightness()blur()}}.upload-dropzone:not(:has(.upload-preview-container[style*="display: block"])):not(:has(.upload-preview-container[style*="display: flex"])):hover .upload-icon{animation:.6s infinite alternate icon-bounce}@keyframes icon-bounce{0%{transform:translateY(0)scale(1.1)}to{transform:translateY(-4px)scale(1.15)}}.upload-preview-container.scanning #upload-preview{filter:brightness(.65)saturate(.75);animation:none}.btn-guide-header{border:1px solid var(--border);color:var(--text-primary);cursor:pointer;font-size:11.5px;font-weight:600;font-family:var(--sans);background:#37352f0d;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex;box-shadow:inset 0 1px 2px #0000000a}.btn-guide-header:hover{border-color:var(--border-hover);background:#37352f1a}.btn-guide-header i{color:var(--text-secondary)}.btn-guide-header:hover i{color:var(--text-primary)}@media (width<=480px){.btn-guide-header{padding:6px 8px}.guide-text-header{display:none}}.lang-dropdown{display:inline-block;position:relative}.lang-dropdown-trigger{border:1px solid var(--border);color:var(--text-primary);cursor:pointer;font-size:11.5px;font-weight:600;font-family:var(--sans);background:#37352f0d;border-radius:8px;align-items:center;gap:6px;padding:6px 10px;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex;box-shadow:inset 0 1px 2px #0000000a}.lang-dropdown-trigger:hover{border-color:var(--border-hover);background:#37352f1a}.lang-dropdown-menu{background:var(--bg-panel-solid);border:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:105;border-radius:10px;min-width:130px;padding:4px;list-style:none;display:none;position:absolute;top:calc(100% + 6px);right:0}.lang-dropdown-item.lang-pill{cursor:pointer;color:var(--text-primary);text-align:left;width:100%;box-shadow:none;font-size:12px;font-weight:500;font-family:var(--sans);background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;transition:all .15s;display:flex}.lang-dropdown-item.lang-pill:hover{background:#37352f0f}.lang-dropdown-item.lang-pill.active{color:var(--primary);box-shadow:none;background:#2383e214;font-weight:700}.lang-dropdown-item .lang-flag{font-size:14px}.lang-dropdown-item .lang-name{flex:1}.lang-test-mode .lang-dropdown-menu{box-shadow:var(--shadow-md)!important;display:block!important;position:absolute!important}.spinner-icon-btn{vertical-align:middle;margin-left:6px;animation:1.2s linear infinite button-icon-spin;display:inline-block}@keyframes button-icon-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.driver-popover.ezroom-tour-popover{background:var(--bg-panel)!important;-webkit-backdrop-filter:blur(20px)saturate(140%)url(#refraction)!important;border:1px solid var(--border)!important;box-shadow:var(--shadow-xl), 0 10px 25px #0003!important;color:var(--text-primary)!important;font-family:var(--sans)!important;border-radius:12px!important;width:320px!important;max-width:90vw!important;padding:20px!important}.driver-popover.ezroom-tour-popover .driver-popover-title{color:var(--text-primary)!important;font-size:16px!important;font-weight:600!important;font-family:var(--sans)!important;margin-bottom:6px!important}.driver-popover.ezroom-tour-popover .driver-popover-description{color:var(--text-secondary)!important;font-size:13px!important;line-height:1.45!important;font-family:var(--sans)!important}.driver-popover.ezroom-tour-popover .driver-popover-progress-text{color:var(--primary)!important;background:var(--primary-glow)!important;border-radius:20px!important;padding:3px 8px!important;font-size:11px!important;font-weight:600!important}.driver-popover.ezroom-tour-popover .driver-popover-navigation-btns button{background:var(--primary)!important;color:#fff!important;font-size:12px!important;font-weight:500!important;font-family:var(--sans)!important;cursor:pointer!important;text-shadow:none!important;box-shadow:none!important;border:none!important;border-radius:6px!important;padding:6px 12px!important;transition:all .15s!important}.driver-popover.ezroom-tour-popover .driver-popover-navigation-btns button:hover{background:var(--primary-hover)!important}.driver-popover.ezroom-tour-popover .driver-popover-prev-btn{color:var(--text-secondary)!important;border:1px solid var(--border)!important;background:0 0!important}.driver-popover.ezroom-tour-popover .driver-popover-prev-btn:hover{background:var(--border-hover)!important;color:var(--text-primary)!important}.driver-popover.ezroom-tour-popover .driver-popover-close-btn{color:var(--text-muted)!important}.driver-popover.ezroom-tour-popover .driver-popover-close-btn:hover{color:var(--text-primary)!important}.driver-popover.ezroom-tour-popover .driver-popover-arrow-side-left{border-left-color:var(--bg-panel)!important}.driver-popover.ezroom-tour-popover .driver-popover-arrow-side-right{border-right-color:var(--bg-panel)!important}.driver-popover.ezroom-tour-popover .driver-popover-arrow-side-top{border-top-color:var(--bg-panel)!important}.driver-popover.ezroom-tour-popover .driver-popover-arrow-side-bottom{border-bottom-color:var(--bg-panel)!important}.driver-active .driver-overlay{pointer-events:none}.driver-active.driver-no-scroll{overflow:hidden}.driver-active *{pointer-events:none}.driver-active .driver-active-element,.driver-active .driver-active-element *,.driver-popover,.driver-popover *{pointer-events:auto}@keyframes animate-fade-in{0%{opacity:0}to{opacity:1}}.driver-fade .driver-overlay{animation:animate-fade-in var(--driver-animation-duration,.4s) ease-in-out}.driver-fade .driver-popover{animation:animate-fade-in var(--driver-animation-duration,.4s)}.driver-popover{all:unset;box-sizing:border-box;color:#2d2d2d;z-index:1000000000;background-color:#fff;border-radius:5px;min-width:250px;max-width:300px;margin:0;padding:15px;position:fixed;top:0;right:0;box-shadow:0 1px 10px #0006}.driver-popover *{font-family:Helvetica Neue,Inter,ui-sans-serif,Apple Color Emoji,Helvetica,Arial,sans-serif}.driver-popover-title{zoom:1;margin:0;font:700 19px/1.5 sans-serif;display:block;position:relative}.driver-popover-close-btn{all:unset;cursor:pointer;color:#d2d2d2;z-index:1;text-align:center;width:32px;height:28px;font-size:18px;font-weight:500;transition:color .2s;position:absolute;top:0;right:0}.driver-popover-close-btn:hover,.driver-popover-close-btn:focus{color:#2d2d2d}.driver-popover-title[style*=block]+.driver-popover-description{margin-top:5px}.driver-popover-description{zoom:1;margin-bottom:0;font:400 14px/1.5 sans-serif}.driver-popover-footer{text-align:right;zoom:1;justify-content:space-between;align-items:center;margin-top:15px;display:flex}.driver-popover-progress-text{color:#727272;zoom:1;font-size:13px;font-weight:400}.driver-popover-footer-btn{all:unset;box-sizing:border-box;color:#2d2d2d;cursor:pointer;zoom:1;background-color:#fff;border:1px solid #ccc;border-radius:3px;outline:0;padding:3px 7px;font:12px/1.3 sans-serif;text-decoration:none;display:inline-block}.driver-popover-footer .driver-popover-btn-disabled{opacity:.5;pointer-events:none}.driver-active-element-parent-no-scroll{overflow:hidden!important}.driver-no-interaction,.driver-no-interaction *{pointer-events:none!important}.driver-popover-footer-btn:hover,.driver-popover-footer-btn:focus{background-color:#f7f7f7}.driver-popover-navigation-btns{flex-grow:1;justify-content:flex-end;display:flex}.driver-popover-navigation-btns button+button{margin-left:4px}.driver-popover-arrow{content:"";border:5px solid #fff;position:absolute}.driver-popover-arrow-side-over{display:none}.driver-popover-arrow-side-left{border-top-color:#0000;border-bottom-color:#0000;border-right-color:#0000;left:100%}.driver-popover-arrow-side-right{border-top-color:#0000;border-bottom-color:#0000;border-left-color:#0000;right:100%}.driver-popover-arrow-side-top{border-bottom-color:#0000;border-left-color:#0000;border-right-color:#0000;top:100%}.driver-popover-arrow-side-bottom{border-top-color:#0000;border-left-color:#0000;border-right-color:#0000;bottom:100%}.driver-popover-arrow-side-center,.driver-popover-arrow-none{display:none}
