body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.login-wrapper{background:#f5f5f7;display:grid;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Helvetica Neue,Arial,sans-serif;min-height:100vh;padding:0;place-items:center}.login-card{animation:fadeSlide .6s ease;background:#fff;border-radius:22px;box-shadow:0 20px 40px #0000001f;max-width:420px;padding:32px;width:100%}.login-card h1{font-size:26px;font-weight:600;margin-bottom:24px;text-align:left}.login-card input{border:1px solid #d2d2d7;border-radius:10px;box-sizing:border-box;font-size:16px;margin-bottom:18px;padding:14px 16px;width:100%}.login-card input:focus{border-color:#0071e3;outline:none}.login-card button{background:#000;border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;padding:14px;transition:transform .15s ease,opacity .15s ease;width:100%}.login-card button:hover{opacity:.9}.login-card button:active{transform:scale(.98)}.modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;padding:16px;place-items:center;z-index:10}.modal-card{animation:fadeSlide .5s ease;border-radius:22px;box-shadow:0 20px 20px #0000001a;max-width:380px;padding:38px;padding-block:48px;width:100%}.modal-card p{color:#1d1d1f;font-size:16px;font-weight:500;margin-bottom:18px;text-align:center}.modal-card input{border:1px solid #d2d2d7;border-radius:12px;box-sizing:border-box;font-family:inherit;font-size:20px;letter-spacing:6px;padding:14px 0;text-align:center;width:100%}.modal-card input:focus{border-color:#0071e3;outline:none}.modal-close{background:#e5e5ea;color:#1d1d1f;display:grid;font-size:18px;height:26px;line-height:1;place-items:center;right:12px;top:12px;transition:background .15s ease,transform .15s ease;width:26px}.modal-close:hover{background:#d1d1d6}.modal-close:active{transform:scale(.92)}.modal-backdrop{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.apple-modal{background:#fff;border-radius:18px;box-shadow:0 20px 40px #0003,0 2px 6px #0000001a;max-width:420px;padding:32px;text-align:center;width:100%}.modal-title{font-size:20px;font-weight:600;margin-bottom:14px}.modal-text{color:#1d1d1f;font-size:15px;line-height:1.5}.stay-logged-actions{display:flex;gap:12px;justify-content:center;margin-top:28px}.apple-btn{border-radius:10px;cursor:pointer;font-size:14px;font-weight:500;min-width:90px;padding:8px 18px;transition:all .15s ease}.apple-btn.primary{background:#0071e3;border:none;color:#fff}.apple-btn.primary:hover{background:#0077ed}.apple-btn.primary:active{transform:scale(.97)}.apple-btn.secondary{background:#f5f5f7;border:1px solid #d2d2d7;color:#1d1d1f}.apple-btn.secondary:hover{background:#eaeaef}.apple-btn.secondary:active{transform:scale(.97)}@keyframes fadeSlide{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.login-card{border-radius:18px;margin:10px;padding:24px;width:80%}.login-card h1{font-size:22px}}.alert-overlay{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;position:fixed;z-index:9999}.alert-box{animation:alertFade .25s ease;background:#fff;border-radius:16px;box-shadow:0 20px 40px #00000040;padding:24px;width:360px}.alert-title{font-size:18px;margin:0 0 8px}.alert-message{color:#555;font-size:14px}.alert-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:20px}.alert-cancel{background:#f0f0f0}.alert-cancel,.alert-confirm{border:none;border-radius:999px;cursor:pointer;padding:8px 16px}.alert-confirm{background:#000;color:#fff}@keyframes alertFade{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.pictures-upload{margin:70px auto;max-width:760px;padding:0 22px;text-align:center}.upload-header{margin-bottom:36px}.upload-header-content{gap:30px;padding:28px 34px}.upload-title{flex:1 1;text-align:left}.pictures-upload h2{color:#181818;font-size:32px;font-weight:700;letter-spacing:-.04em;margin-bottom:10px;margin-top:-28px}.subtitle{line-height:1.6;margin-bottom:0;margin-top:8px}.subtitle strong{color:#2b2b2b;font-weight:600}.actions{align-items:center;gap:14px;margin:34px 0 42px}.primary,.secondary{align-items:center;border-radius:999px;display:inline-flex;font-size:14px;font-weight:600;gap:8px;height:46px;justify-content:center;min-width:145px;transition:all .22s ease}.primary{background:#111;border:none;box-shadow:0 8px 18px #0000001a;color:#fff}.primary:hover:not(:disabled){background:#222;box-shadow:0 12px 24px #00000024;cursor:pointer;transform:translateY(-1px)}.primary:disabled{background:#d5d5d5;box-shadow:none;color:#888;cursor:not-allowed}.secondary{background:#fff;border:1px solid #d7d7d7;color:#222}.secondary:hover{background:#fafafa;border-color:#bdbdbd;transform:translateY(-1px)}.upload-box{background:linear-gradient(180deg,#fff,#f7fbff);border:2px dashed #c8d8ff;border-radius:26px;margin-top:10px;overflow:hidden;padding:80px 40px;position:relative;transition:all .25s ease}.upload-box:hover{background:linear-gradient(180deg,#fff,#f1f7ff);border-color:#3b82f6;box-shadow:0 18px 40px #3b82f61f;transform:translateY(-2px)}.upload-box input[type=file]{cursor:pointer;inset:0;opacity:0;position:absolute}.upload-content{flex-direction:column;margin:0 auto;max-width:430px}.upload-content,.upload-icon{align-items:center;display:flex}.upload-icon{background:#ebf3ff;border-radius:50%;box-shadow:0 8px 20px #2563eb1a;color:#2563eb;font-size:42px;height:90px;justify-content:center;margin-bottom:22px;width:90px}.upload-content p:first-of-type{color:#1f2937;font-size:20px;font-weight:700;margin:0}.upload-content p:last-of-type{color:#8a8a8a!important;font-size:13px!important;margin-top:6px!important}.or{color:#9b9b9b;font-size:12px;font-weight:600;letter-spacing:.08em;margin:18px 0 14px;text-transform:uppercase}.select-btn{background:linear-gradient(180deg,#3b82f6,#2563eb);border:none;border-radius:999px;box-shadow:0 10px 24px #2563eb38;color:#fff;font-size:14px;font-weight:600;padding:14px 28px;transition:all .22s ease}.select-btn:hover{background:#111;border-color:#111;color:#fff}.preview-count{color:#666;font-size:14px;margin-top:18px}.preview-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));margin:34px 0 30px}.preview-item{animation:previewFadeSlide .45s ease forwards;background:#fff;border:1px solid #ececec;border-radius:18px;box-shadow:0 10px 28px #0000000f,0 2px 6px #0000000a;opacity:0;overflow:hidden;position:relative;transform:translateY(12px);transition:transform .22s ease,box-shadow .22s ease}.preview-item:hover{box-shadow:0 18px 36px #0000001a,0 6px 16px #0000000f;transform:translateY(-4px)}@keyframes previewFadeSlide{to{opacity:1;transform:translateY(0)}}.preview-item img{display:block;height:150px;object-fit:cover;width:100%}.remove-btn{background:#000000b3;border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:18px;height:30px;position:absolute;right:10px;top:10px;transition:all .18s ease;width:30px}.remove-btn:hover{background:#d93025;transform:scale(1.08)}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0000007a;display:flex;inset:0;justify-content:center;position:fixed;z-index:9999}.modal-card{animation:modalPop .22s ease;background:#fff;border-radius:24px;box-shadow:0 35px 90px #0000003d,0 10px 25px #0000001f;padding:30px 30px 36px;position:relative;width:min(92vw,680px)}.modal-card h1{color:#1f1f1f;font-size:30px;font-weight:700;margin-bottom:18px;margin-top:0}.modal-close{align-items:center;background:#f4f4f4;border:none;border-radius:50%;cursor:pointer;display:flex;height:36px;justify-content:center;position:absolute;right:18px;top:18px;transition:all .2s ease;width:36px}.modal-close:hover{background:#e9e9e9;transform:rotate(90deg)}.step{min-width:70px}.step-icon{transition:.25s}.steps-hero-modal{animation:heroReveal .55s ease .15s both;background:linear-gradient(180deg,#fbfbfc,#f3f6fb);border:1px solid #edf1f6;border-radius:18px;box-shadow:inset 0 1px 0 #ffffffe6,0 8px 24px #00000080;height:270px;margin-top:20px;overflow:hidden;transform:translateX(-112px);width:160%}.steps-hero-modal img{border-radius:12px;box-shadow:0 10px 30px #0000001a,0 2px 8px #0000000f;display:block;height:100%;object-fit:cover;object-position:center -90px;transition:transform .25s ease;width:100%}.steps-hero-modal:hover img{transform:scale(1.015)}@keyframes heroReveal{0%{opacity:0;transform:translateX(-112px) translateY(10px)}to{opacity:1;transform:translateX(-112px) translateY(0)}}.modal-card.apple{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffeb;border-radius:24px;max-width:40px;padding:30px}.modal-card.apple h3{font-size:18px;margin-bottom:10px}.modal-card.apple p{margin-bottom:22px}.app-footer{border-top:1px solid #efefef;color:#8c8c8c;font-size:12px;line-height:1.8;margin-top:90px;padding:26px 0;text-align:center}.app-footer strong{color:#555;font-weight:600}.modal-card.apple{border-radius:22px;min-width:320px;padding:28px 30px;text-align:center;width:min(90vw,420px)}.modal-card.apple h3{color:#222;font-size:24px;font-weight:700;margin:0 0 14px}.modal-card.apple p{color:#666;font-size:16px;line-height:1.6;margin:0 0 24px;overflow-wrap:anywhere;white-space:normal;word-break:normal}.modal-card.apple .primary{display:block;margin:0 auto;max-width:220px;width:100%}@media (max-width:900px){.pictures-upload{margin:40px auto;padding:0 18px}.pictures-upload h2{font-size:26px;line-height:1.2;margin-top:6px}.subtitle{font-size:14px;margin-bottom:26px}.actions{display:flex;flex-shrink:0;gap:12px;margin:0}.primary,.secondary{height:48px;width:100%}.upload-box{border-radius:18px;padding:42px 20px}.upload-icon{font-size:34px;height:62px;margin-bottom:14px;width:62px}.upload-content p:first-of-type{font-size:16px}.upload-content p:last-of-type{font-size:13px!important}.select-btn{max-width:260px;width:100%}.preview-grid{gap:16px;grid-template-columns:1fr}.preview-item img{height:220px}.modal-card{border-radius:20px;padding:24px;width:calc(100vw - 28px)}.modal-card h1{font-size:24px}.modal-close{right:14px;top:14px}.steps-hero{margin-bottom:14px;margin-top:-25px}.steps-hero img{max-height:120px;object-position:center}.steps-hero-modal{max-height:420px}.steps-hero-modal img{height:auto;object-fit:contain;object-position:center;width:100%}.app-footer{font-size:11px;line-height:1.8;margin-top:60px}}@media (max-width:480px){.pictures-upload{padding:0 14px}.pictures-upload h2{font-size:34px;font-weight:700;letter-spacing:-.04em;margin:0}.upload-box{padding:34px 16px}.upload-icon{font-size:30px;height:56px;width:56px}.upload-content p:first-of-type{font-size:15px}.preview-item img{height:180px}.modal-card{padding:20px}}.pictures-setup{margin:60px auto;max-width:1000px;text-align:center}.studio-header h2{font-size:26px;font-weight:600;margin-top:-40px}.studio-header p{color:#666;margin-bottom:24px}.thumbs{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-bottom:34px}.thumbs img{border:3px solid #0000;border-radius:14px;box-shadow:0 8px 22px #00000014;cursor:pointer;height:105px;object-fit:cover;opacity:.45;transition:.2s;width:170px}.thumbs img:hover{opacity:.8;transform:translateY(-2px)}.thumbs img.active{border-color:#2563eb;box-shadow:0 14px 28px #2563eb2e;opacity:1}.stage{margin:0 auto 24px;max-width:900px;position:relative}.stage-image{border-radius:16px;width:100%}.area-shape{cursor:move;z-index:3}.area-shape.square{background:#dc000040;border:2px solid #d00;border-radius:6px}.area-shape.circle{background:#dc000040;border:2px solid #d00}.shape-label{align-items:center;background:#000;border-radius:50%;color:#fff;font-size:12px;height:22px;left:-10px;pointer-events:none;position:absolute;top:-10px;width:22px}.shape-label,.studio-tools{display:flex;justify-content:center}.studio-tools{gap:12px;margin-bottom:32px}.studio-tools button{background:#000;border:none;border-radius:999px;color:#fff;cursor:pointer;padding:10px 18px}.area-shape:active{cursor:grabbing}.resize-handle{bottom:-6px;cursor:se-resize;right:-6px}.resize-handle,.rotate-handle{background:#fff;border:2px solid #d00;border-radius:50%;height:12px;position:absolute;width:12px}.rotate-handle{cursor:grab;left:50%;top:-18px;transform:translateX(-50%)}.stage-image-wrapper{position:relative}.stage-overlay{inset:0;pointer-events:none;position:absolute;z-index:2}.stage-image{pointer-events:none;-webkit-user-select:none;user-select:none}.remove-shape{background:#00000071;border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:18px;height:22px;line-height:1;opacity:0;position:absolute;right:-10px;top:-10px;width:22px}.area-shape:hover .remove-shape{opacity:1}.add-sign-btn{backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:hsla(0,0%,100%,.548);border:1px solid #00000014;border-radius:14px;box-shadow:0 6px 20px rgba(0,0,0,.233);color:#111;cursor:pointer;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:16px;font-weight:600;padding:10px 16px;position:absolute;right:14px;top:-22px;transition:all .15s ease;z-index:20}.add-sign-btn:hover{box-shadow:0 10px 28px #0000002e;transform:translateY(-2px)}.add-sign-btn:active{box-shadow:0 4px 14px #0000001f;transform:translateY(0)}.removal{backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:hsla(0,86%,86%,.342);border:1px solid #00000014;border-radius:14px;box-shadow:0 6px 20px rgba(0,0,0,.233);color:#771818;cursor:pointer;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:16px;font-weight:600;padding:10px 16px;position:absolute;right:154px;top:-22px;transition:all .15s ease;z-index:20}.area-shape.removal{align-items:center;background:rgba(253,2,2,.534);border:2px dashed #ff4d4f;cursor:move;display:flex;justify-content:center}.area-shape.removal,.removal-label{user-select:none;-webkit-user-select:none;-ms-user-select:none}.removal-label{color:#fcfcfc;font-size:12px;font-weight:400;pointer-events:none;text-align:center}.add-sign-wrapper{display:inline-block}.add-sign-dropdown{animation:dropdownFade .16s ease-out forwards;background:#fff;border-radius:8px;box-shadow:0 10px 25px #00000026;overflow:hidden;position:absolute;right:20px;top:20px;z-index:20}.add-sign-dropdown button{align-items:center;background:none;border:none;cursor:pointer;display:flex;font-size:14px;gap:8px;padding:10px 14px;width:100%}.add-sign-dropdown button:hover{background:#f2f4f7}@keyframes dropdownFade{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:900px){.studio-header h2{font-size:20px;font-weight:500;margin-top:10px}}.sign-type{margin:60px auto;max-width:980px;padding:0 24px}.upload-header{background:#fff;border:1px solid #ececec;border-radius:24px;box-shadow:0 12px 36px #0000000f;margin-bottom:34px;overflow:hidden}.upload-header-content{align-items:center;display:flex;gap:32px;justify-content:space-between;padding:30px 36px}.header{flex:1 1;text-align:left}.header h2{font-size:34px;font-weight:700;letter-spacing:-.04em;margin:0}.header p{color:#6b7280;font-size:15px;line-height:1.6;margin-top:10px}.sign-flow-shell{background:#fff;border:1px solid #ececec;border-radius:24px;box-shadow:0 12px 36px #0000000f;margin-bottom:34px;overflow:hidden}.steps-progress{background:#fbfcff;border-bottom:1px solid #edf1f7;gap:18px;justify-content:center;padding:28px 40px}.step,.steps-progress{align-items:center;display:flex}.step{flex-direction:column;gap:8px;min-width:80px}.step-icon{align-items:center;background:#eef4ff;border-radius:50%;color:#2563eb;display:flex;height:44px;justify-content:center;width:44px}.step.active .step-icon{background:#2563eb;box-shadow:0 8px 22px #2563eb38;color:#fff}.step span{color:#64748b;font-size:13px;font-weight:600}.step.active span{color:#111827}.step-line{background:#dbe7ff;flex:1 1;height:2px;max-width:70px}.sign-cards{display:flex;flex-direction:column;gap:26px}.sign-card{grid-gap:18px;background:#fff;border:1px solid #ececec;border-radius:24px;box-shadow:0 12px 30px #0000000d;display:grid;gap:18px;grid-template-columns:330px 1fr 1fr;padding:28px}.sign-card:hover{box-shadow:0 18px 42px #00000014}.sign-card.ai-active .logo-dropzone,.sign-card.ai-active .sign-config{opacity:.35;pointer-events:none}.sign-card.ai-active .ai-btn{opacity:1;pointer-events:auto}.sign-preview{flex-shrink:0;min-width:280px;width:320px}.sign-preview img{border-radius:16px;width:100%}.sign-config{display:contents}.sign-header-row{border-bottom:1px solid #edf1f6;grid-column:2/4;margin-bottom:4px;padding-bottom:14px}.ai-btn{background:#fff;border:1px solid #1e6bff;border-radius:999px;color:#1e6bff;cursor:pointer;font-size:14px;padding:7px 16px;transition:all .2s ease}.ai-btn:hover{background:#f0f5ff}.ai-btn.active{background:#1e6bff;color:#fff}.category{margin-bottom:10px}.category-btn{align-items:center;background:#fafbfc;border:1px solid #e5e7eb;border-radius:14px;cursor:pointer;display:flex;justify-content:space-between;padding:14px 16px;transition:.2s;width:100%}.category-btn:hover{background:#f3f3f3}.category-btn.open{background:#2563eb;border-color:#2563eb;color:#fff}.category-panel{max-height:0;opacity:0;overflow:hidden;transform:translateY(-4px);transition:all .35s ease}.category-panel.open{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,1fr);margin-top:8px;max-height:260px;opacity:1;transform:translateY(0)}.type-btn{background:#fff;border:1px solid #d7dde8;border-radius:12px;cursor:pointer;font-size:13px;padding:10px 14px;transition:.18s}.type-btn:hover{background:#f4f4f4}.type-btn.active{background:#2563eb;border-color:#2563eb;box-shadow:0 8px 20px #2563eb33;color:#fff}.illumination{display:flex;gap:12px;margin-top:16px}.illum-btn{background:#fff;border:1px solid #000;border-radius:999px;color:#000;cursor:pointer;padding:7px 18px;transition:all .2s ease}.illum-btn.active{background:#1e6bff;border-color:#1e6bff;color:#fff}.details-toggle{margin-top:16px}.details-toggle button{align-items:center;background:#fafafa;border:1px dashed #bbb;border-radius:14px;cursor:pointer;display:flex;justify-content:space-between;padding:10px 14px;width:100%}.details-panel{max-height:0;opacity:0;overflow:hidden;transform:translateY(-4px);transition:all .35s ease}.details-panel.open{margin-top:10px;max-height:220px;opacity:1;transform:translateY(0)}.dimensions{grid-gap:12px;align-items:center;display:grid;gap:12px;grid-template-columns:1fr 1fr;margin-bottom:20px}.dimensions input{background:#fff;border:1px solid #b9dcff;border-radius:12px;box-sizing:border-box;padding:13px 14px;width:100%}.sign-config>hr{background:#edf1f6!important;height:1px!important;margin:22px 0!important}.sign-config>p{margin-top:0!important}.ai-dim-btn{background:#fff;border:1px dashed #1e6bff;border-radius:999px;color:#1e6bff;cursor:pointer;padding:7px 14px}.ai-dim-btn.active{background:#eef3ff;background:#1e6bff;color:#fff}.additions span{color:#555;font-size:13px}.additions-options{display:flex;gap:10px;margin-top:8px}.addition-btn{border:1px dashed #aaa;border-radius:999px;cursor:pointer;margin-bottom:10px;padding:7px 16px;transition:all .2s ease}.addition-btn.active{background:#1e6bff;border-color:#1e6bff;color:#fff;font-weight:500}.logo-dropzone{background:linear-gradient(180deg,#fff,#f8fbff);border:2px dashed #b9dcff;border-radius:18px;color:#6b7280;min-height:150px;padding:18px;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.logo-dropzone.disabled{opacity:.35;pointer-events:none}.actions{display:flex;justify-content:space-between;margin-top:36px}.logo-and-instructions{grid-gap:18px;display:grid;gap:18px;grid-column:2/4;grid-template-columns:1fr 1fr;margin-bottom:20px;width:100%}.logo-dropzone{align-items:center;background:#fafafa;border:1px dashed #d2d2d7;border-radius:14px;box-sizing:border-box;display:flex;justify-content:center;min-height:160px;min-width:0;padding:16px;transition:border-color .2s ease,background .2s ease;width:100%}.logo-dropzone:hover{background:#f5f9ff;border-color:#0071e3}.logo-dropzone img{border-radius:14px;height:auto;max-width:100%}.logo-dropzone.missing-logo{animation:logoPulse 1.8s infinite;border:2px solid #7ecbff;box-shadow:0 0 0 0 #7ecbffa6}.sign-instructions{background:#fff;border:1px solid #ececec;border-radius:18px;display:flex;flex-direction:column;justify-content:center;min-height:150px;padding:18px}.sign-instructions label{color:#6e6e73;font-size:12px;font-weight:500}.sign-instructions textarea{background:#f5f5f7;border:1px solid #d2d2d7;border-radius:12px;color:#1d1d1f;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Arial,sans-serif;font-size:11px;min-height:158px;outline:none;padding:12px 14px;resize:vertical;transition:border-color .2s ease,box-shadow .2s ease}.sign-instructions textarea::placeholder{color:#9e9ea3}.sign-instructions textarea:focus{background:#fff;border-color:#0071e3;box-shadow:0 0 0 3px #0071e326}.category.missing-sign-type .category-btn,.dimensions.missing-dimensions input{animation:logoPulse 1.8s infinite;border:2px solid #7ecbff;box-shadow:0 0 0 0 #7ecbffa6}.image-wrapper{display:block;line-height:0;position:relative;width:100%}.image-wrapper img{display:block;height:auto;width:100%}.shape-overlay{background:#dc000040;box-sizing:border-box;left:0;margin:0;outline:2px solid #d00;padding:0;position:absolute;top:0}.shape-overlay.circle{border-radius:50%;outline:2px solid #d00}.apple-loading-overlay{align-items:center;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffa6;display:flex;inset:0;justify-content:center;position:fixed;z-index:9999}.apple-loading-card{background:#ffffffd9;border-radius:24px;box-shadow:0 20px 60px #0000001f;padding:28px 34px;text-align:center}.apple-spinner{animation:appleSpin .8s linear infinite;border:3px solid #0000001f;border-radius:50%;border-top-color:#000;height:34px;margin:0 auto 14px;width:34px}@keyframes appleSpin{to{transform:rotate(1turn)}}@keyframes logoPulse{0%{box-shadow:0 0 0 0 #7ecbffa6}70%{box-shadow:0 0 0 12px #7ecbff00}to{box-shadow:0 0 0 0 #7ecbff00}}.open-instructions-btn{background:linear-gradient(135deg,#f8fbff,#eef5ff);border:1px solid #1e6bff38;border-radius:12px;color:#1e5edb;cursor:pointer;font-size:13px;font-weight:500;padding:10px 14px;transition:all .25s ease;width:100%}.open-instructions-btn.active,.open-instructions-btn:hover{border-color:#1e6bff;box-shadow:0 10px 24px #1e6bff2e}.instructions-inline-panel{max-height:0;opacity:0;overflow:hidden;transform:translateY(-6px);transition:all .32s ease}.instructions-inline-panel textarea{background:#fbfdff;border:1px solid #d8e2f0;border-radius:14px;color:#1f2937;font-size:12.5px;line-height:1.55;min-height:200px;outline:none;padding:14px;resize:vertical;width:88%}.instructions-inline-panel textarea:focus{border-color:#1e6bff;box-shadow:0 0 0 4px #1e6bff1a}@keyframes modalFade{0%{opacity:0}to{opacity:1}}@keyframes modalPop{0%{box-shadow:0 0 0 #1e6bff00;-webkit-clip-path:inset(0 0 100% 0 round 14px);clip-path:inset(0 0 100% 0 round 14px);filter:blur(10px);opacity:0;transform:translateY(-14px) scale(.94)}45%{box-shadow:0 18px 42px #1e6bff2e;-webkit-clip-path:inset(0 0 0 0 round 14px);clip-path:inset(0 0 0 0 round 14px);filter:blur(0);opacity:1;transform:translateY(4px) scale(1.018)}72%{transform:translateY(-2px) scale(.996)}to{box-shadow:0 10px 28px #1e6bff1a;-webkit-clip-path:inset(0 0 0 0 round 14px);clip-path:inset(0 0 0 0 round 14px);filter:blur(0);opacity:1;transform:translateY(0) scale(1)}}.instructions-inline-panel.open{animation:modalPop .48s cubic-bezier(.92,1,.36,1);margin-top:12px;max-height:360px;opacity:1;transform:translateY(0)}.logo-dropzone{isolation:isolate;overflow:hidden;position:relative}.logo-dropzone input{cursor:pointer;height:100%;inset:0;opacity:0;position:absolute;width:100%;z-index:2}.logo-dropzone img,.logo-dropzone span{pointer-events:none;position:relative;z-index:1}.logo-upload-placeholder{align-items:center;color:#6b7280;display:flex;flex-direction:column;gap:14px;justify-content:center;text-align:center}.logo-upload-placeholder svg{stroke-width:1.8;color:#2563eb}.logo-dropzone:hover .logo-upload-placeholder svg{transform:translateY(-2px) scale(1.05);transition:.2s ease}.sign-control-panel{background:linear-gradient(180deg,#fff,#fbfdff);border-radius:0 0 20px 20px;border-top:1px solid #edf1f6;grid-column:1/4;margin-top:8px;padding:22px 24px 18px}.control-row{grid-gap:22px;align-items:start;display:grid;gap:22px;grid-template-columns:1fr 2fr;margin-bottom:22px}.control-row:last-child{margin-bottom:0}.control-label{color:#6b7280;font-size:12px;font-weight:700;letter-spacing:.02em}.control-label span{color:#a1a1aa;display:block;font-weight:400;margin-top:4px}.sign-control-panel .category{margin-bottom:12px}.sign-control-panel .details-toggle,.sign-control-panel .illumination{margin-top:0}.addition-color{margin-top:16px}.addition-color>label{color:#374151;display:block;font-size:13px;font-weight:700;margin-bottom:10px}.color-presets{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr)}.color-option{align-items:center;background:#fff;border:1px dashed #cfd8e3;border-radius:14px;color:#111827;cursor:pointer;display:flex;font-size:13px;font-weight:700;justify-content:space-between;min-height:58px;padding:0 16px;position:relative;transition:.2s}.color-option:hover{background:#f8fbff;border-color:#60a5fa}.color-option.active{background:#2563eb;border-color:#2563eb;box-shadow:0 8px 20px #2563eb2e;color:#fff}.color-option.custom.active{background:#fff;border-color:#2563eb;color:#111827}.color-dot{border-radius:50%;box-shadow:0 0 0 2px #ffffffbf;flex-shrink:0;height:16px;width:16px}.color-custom-preview{border:1px solid #d1d5db;border-radius:50%;flex-shrink:0;height:18px;width:18px}.color-option.custom input{cursor:pointer;inset:0;opacity:0;position:absolute}@media (max-width:900px){.sign-type{margin:20px auto;max-width:100%;padding:0 14px}.sign-type h2{font-size:16px;margin-top:10px}.sign-card{align-items:stretch!important;border-radius:16px;display:flex;flex-direction:column!important;gap:14px;padding:16px}.sign-preview{flex-shrink:0;min-width:0!important;order:1;width:100%!important}.image-wrapper{background:#fff;border:1px solid #edf1f6;border-radius:20px;box-shadow:0 14px 34px #00000014;overflow:hidden}.sign-preview img{display:block;height:auto;width:100%}.sign-config{order:2;width:100%!important}.logo-and-instructions{order:3;width:100%!important}.logo-dropzone{min-height:140px;min-width:0!important;width:100%!important}.category-panel.open{grid-template-columns:repeat(2,1fr)}.dimensions,.illumination{flex-wrap:wrap}.dimensions{gap:10px}.dimensions input{background:#fff;border:1px solid #b9dcff;border-radius:12px;box-sizing:border-box;padding:13px 14px;width:100%}.dimensions input:focus{border-color:#2563eb;box-shadow:0 0 0 4px #2563eb1a;outline:none}.additions-options{flex-wrap:wrap}.actions{flex-direction:column;gap:10px}.actions button{width:100%}}.project-review{color:#0b0b0b;margin:58px auto 80px;max-width:1200px;padding:0 18px}.pr-header{margin:10px 0 28px;text-align:center}.pr-header h1{font-size:40px;letter-spacing:-.5px;margin:-60px 0 6px}.pr-header p{color:#7b7b7b;margin:0}.project-review .sign-flow-shell{background:#fff;border:1px solid #ececec;border-radius:24px;box-shadow:0 12px 36px #0000000f;margin:60px auto 34px;max-width:980px;overflow:hidden}.project-review .upload-header-content{padding:42px 36px}.project-review .studio-header h2{font-size:34px;font-weight:700;letter-spacing:-.04em;margin:0}.project-review .studio-header p{color:#6b7280;font-size:15px;margin-top:10px}.pr-actions{align-items:center;display:flex;gap:12px;justify-content:space-between}.pr-actions-bottom{margin-top:26px}.pr-btn{align-items:center;background:#000;border:1px solid #000;border-radius:999px;color:#fff;cursor:pointer;display:inline-flex;font-weight:600;gap:10px;padding:12px 18px;transition:transform .05s ease,opacity .2s ease,background .2s ease;-webkit-user-select:none;user-select:none}.pr-btn:active{transform:translateY(1px)}.pr-outline,.pr-secondary{background:#fff;color:#000}.pr-outline{border:1px solid #d7d7d7}.pr-btn:disabled,.pr-outline.disabled,.pr-primary.disabled{cursor:not-allowed;opacity:.45}.submit-btn{animation:gradientFlow 6s ease infinite;background:linear-gradient(120deg,#256aeb,#3b82f6,#06b6d4,#3b82f6,#2563eb);background-size:300% 300%;border:none;border-radius:999px;box-shadow:0 10px 25px #2563eb59,inset 0 1px 0 #ffffff40;color:#fff;cursor:pointer;font-size:18px;font-weight:600;padding:18px 38px;position:relative;transition:transform .15s ease,box-shadow .15s ease}.submit-btn:active{box-shadow:0 6px 18px #2563eb59;transform:translateY(1px) scale(.985)}.submit-btn:disabled{animation:none;cursor:not-allowed;opacity:.5}.submit-btn:after{animation:gradientFlow 6s ease infinite;background:inherit;border-radius:inherit;content:"";filter:blur(2px);inset:-3px;opacity:.25;position:absolute;z-index:-1}.submit-btn:not(:disabled){animation:gradientFlow 6s ease infinite,pulseGlow 2.4s ease-out infinite}@keyframes gradientFlow{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}@keyframes pulseGlow{0%{box-shadow:0 10px 35px #2563eb59,0 0 0 0 #3b82f699;transform:scale(1)}70%{box-shadow:0 10px 35px #2563eb73,0 0 0 18px #3b82f600;transform:scale(1.08)}to{box-shadow:0 10px 35px #2563eb59,0 0 0 0 #3b82f600;transform:scale(1)}}.pr-grid{grid-gap:22px;display:grid;gap:22px;grid-template-columns:1.15fr .85fr;margin-top:18px}@media (max-width:980px){.pr-grid{grid-template-columns:1fr}}.pr-section{background:#fff;border:1px solid #eee;border-radius:20px;padding:18px}.pr-section-title{align-items:baseline;display:flex;gap:10px;justify-content:space-between;margin-bottom:14px}.pr-section-title h2{font-size:18px;letter-spacing:-.2px;margin:0}.pr-note{color:#8b8b8b;font-size:12px}.pr-note.ok{color:#1f7a3a}.pr-pill{background:#fafafa;border:1px solid #e7e7e7;border-radius:999px;color:#444;font-size:12px;padding:6px 10px}.pr-images{display:flex;flex-direction:column;gap:16px}.pr-image-card{border:1px solid #f0f0f0;border-radius:18px;padding:14px}.pr-image-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.pr-image-label{align-items:center;display:inline-flex;font-weight:700;gap:10px}.pr-image-count{border:1px solid #eee;border-radius:999px;color:#7b7b7b;font-size:12px;padding:4px 8px}.pr-image-body{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}@media (max-width:980px){.pr-image-body{grid-template-columns:1fr}}.pr-image-preview img{border:1px solid #f0f0f0;border-radius:16px;display:block;width:100%}.pr-image-placeholder{border:1px dashed #ddd;border-radius:16px;color:#8b8b8b;display:grid;height:220px;place-items:center}.pr-sign-thumbs{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr}.pr-sign-thumb{border:1px solid #f0f0f0;border-radius:16px;padding:10px}.pr-thumb-top{align-items:center;display:flex;gap:10px;margin-bottom:8px}.pr-thumb-badge{background:#000;border-radius:999px;color:#fff;display:grid;font-size:12px;font-weight:700;height:22px;place-items:center;width:22px}.pr-thumb-title{font-size:13px;font-weight:700}.pr-thumb-preview img{border:1px solid #f0f0f0;border-radius:12px;display:block;width:100%}.pr-thumb-placeholder{border:1px dashed #ddd;border-radius:12px;color:#8b8b8b;display:grid;height:110px;place-items:center}.pr-details{display:flex;flex-direction:column;gap:12px}.pr-detail-card{border:1px solid #f0f0f0;border-radius:18px;padding:14px}.pr-detail-row{align-items:center;display:flex;gap:12px;justify-content:space-between}.pr-detail-body{border-top:1px solid #f2f2f2;flex-wrap:wrap;margin-top:10px;padding-top:10px}.pr-detail-title{display:flex;flex-direction:column;gap:4px}.pr-detail-title span{color:#1e6bff;margin-top:-20px}.pr-muted{color:#7c7c7c;font-size:12px}.pr-badges{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.pr-chip{background:#fafafa;border:1px solid #e7e7e7;border-radius:999px;color:#333;font-size:12px;padding:6px 10px}.pr-chip.blue{background:#1e6bff14;border-color:#1e6bff;color:#1e6bff}.pr-chip.gray{background:#f7f7f7;border-color:#d9d9d9;color:#6f6f6f}.pr-chip.dashed,.pr-chip.ghost{background:#fff;border-style:dashed}.pr-chip.ghost{color:#8b8b8b}.pr-mini{min-width:160px}.pr-mini-label{color:#8b8b8b;font-size:12px;margin-bottom:3px}.pr-mini-value{font-weight:600}.pr-ok{color:#1f7a3a;font-weight:700}.pr-warn{color:#b36200;font-weight:700}.pr-logo-preview{margin-top:12px}.pr-logo-box{background:#fff;border:1px solid #f0f0f0;border-radius:14px;padding:10px}.pr-logo-box img{border-radius:10px;display:block;max-width:100%}.pr-section-block{border-top:1px solid #f2f2f2;margin-top:16px;padding-top:14px}.pr-toggle{display:inline-flex;gap:10px;margin-top:10px}.pr-toggle-btn{background:#fff;border:1px solid #000;border-radius:999px;color:#000;cursor:pointer;font-weight:700;padding:8px 16px}.pr-toggle-btn.active{background:#000;color:#fff}.pr-field{margin-top:12px}.pr-field label{align-items:center;color:#1858ce;display:inline-flex;font-size:12px;font-weight:700;gap:8px;margin-bottom:6px}.pr-field input{border:1px solid #d9d9d9;border-radius:12px;outline:none;padding:12px;transition:border .15s ease;width:95%}.pr-field input:focus{border-color:#000}.pr-field input.invalid{border-color:#d00}.pr-field-row{align-items:flex-end;display:flex;gap:15px}.pr-field-row .grow{flex:1 1}@media (max-width:980px){.pr-field-row{align-items:stretch;flex-direction:column}}.pr-help{color:#d00;font-size:12px;margin-top:6px}.pr-hint{color:#7b7b7b;font-size:12px;margin-top:8px}.pr-empty{display:grid;margin-top:20px;place-items:center}.pr-empty-card{background:#fff;border:1px solid #eee;border-radius:20px;padding:18px;text-align:center;width:min(560px,100%)}.pr-empty-card h3{margin:6px 0 4px}.pr-empty-card p{color:#7b7b7b;margin:0 0 14px}.pr-modal-overlay{background:#00000059;display:grid;padding:18px;place-items:center;z-index:9999}.pr-modal{border:1px solid #eee;border-radius:20px;box-shadow:0 10px 40px #0000002e;padding:18px;width:min(520px,100%)}.pr-modal-title{font-size:16px;font-weight:800}.pr-modal-sub{color:#6f6f6f;font-size:13px;margin-top:6px}.pr-code{border:1px solid #d9d9d9;border-radius:14px;font-size:22px;letter-spacing:3px;margin-top:12px;outline:none;padding:14px 12px;text-align:center;width:95%}.pr-code:focus{border-color:#000}.pr-modal-actions{gap:10px;margin-top:14px}.pr-modal-hint{color:#8b8b8b;font-size:12px;margin-top:10px}.email-validation--top{background:#fafafa;border:1px solid #eee;border-radius:18px;margin:32px 0 48px;padding:24px}.email-validation--top h3{font-family:Trebuchet MS,Lucida Sans Unicode,Lucida Grande,Lucida Sans,Arial,sans-serif;font-size:20px;font-weight:700;margin-bottom:12px}.email-row{display:flex;gap:12px}.email-row input{border:1px solid #ccc;border-radius:12px;flex:1 1;font-size:16px;margin-left:-2px;padding:12px 14px}.email-hint{color:#999;font-size:14px}.pr-image-with-signs{border-radius:16px;overflow:hidden;position:relative;width:100%}.pr-base-image{border-radius:16px;display:block;width:100%}.pr-sign-overlay{background:#ff000026;border:2px solid #ff0000a6}.pr-sign-index{align-items:center;background:#000;border-radius:50%;color:#fff;display:flex;font-size:12px;height:22px;justify-content:center;position:absolute;right:-10px;top:-10px;width:22px}.pr-image-group{display:flex;flex-wrap:wrap;gap:16px}.pr-sign-preview{position:relative;width:260px}.pr-sign-preview img{border-radius:12px;width:100%}.pr-sign-badge{background:#1e6bff;border-radius:999px;color:#fff;font-size:12px;padding:4px 8px;position:absolute;right:8px;top:8px}.pr-image-group{background:#f6f6f6;border:1px solid #eee;border-radius:18px;margin-top:16px;overflow:hidden;width:100%}.pr-composite-image{border-radius:18px}.pr-image-group:hover{border-color:#dcdcdc}.pr-composite-image{min-height:220px;object-fit:cover}.pr-image-label{background:#000000bf;border-radius:999px;color:#fff;font-size:12px;left:14px;padding:6px 10px;position:absolute;top:14px}.project-top-row{grid-gap:120px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:14px;display:grid;gap:120px;grid-template-columns:1fr 1fr;margin-bottom:30px;margin-top:-20px;padding:16px}.project-top-col h3{font-size:20px;font-weight:600;margin:0 0 10px}.project-name-col h3{color:#1d4ed8}.project-name-col input{border:1px solid #c7d2fe;border-radius:8px;font-size:16px;margin-left:-2px;padding:10px 12px;width:100%}.project-name-hint{color:#64748b;font-size:12px;margin-top:6px}.installation-col .pr-toggle{margin-bottom:12px}.pr-sign-overlay{background:#ff00002e;border:3px solid #ff0000a6;box-sizing:border-box;pointer-events:none;position:absolute}.pr-sign-overlay.circle{border-radius:50%}.pr-removal-overlay{align-items:center;background:#d10a0ad9;border:5px dashed #b00000;border-radius:10px;box-sizing:border-box;color:#fff;display:flex;font-size:clamp(10px,1.05vw,16px);font-weight:500;justify-content:center;line-height:1.1;padding:6px;pointer-events:none;position:absolute;text-align:center;-webkit-user-select:none;user-select:none}.pr-removal-overlay span{font-size:clamp(9px,1.05vw,13px);line-height:1.1;text-shadow:0 1px 2px #00000073}@media (max-width:900px){.project-top-row{grid-template-columns:1fr}}.submit-overlay{align-items:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#00000073;display:flex;inset:0;justify-content:center;position:fixed;z-index:9999}.submit-modal{background:#ffffffd9;border-radius:20px;box-shadow:0 40px 80px #00000040;padding:40px;text-align:center;width:520px}.submit-loader{margin-bottom:20px;position:relative}.submit-spinner{animation:spin 1s linear infinite;border:6px solid #e5e7eb;border-radius:50%;border-top-color:#2563eb;height:120px;margin:auto;width:120px}.submit-percent{align-items:center;display:flex;font-size:28px;font-weight:600;inset:0;justify-content:center;position:absolute}.submit-carousel{overflow:hidden;width:100%}.submit-carousel-track{display:flex;width:100%}.submit-step{align-items:center;display:flex;font-size:18px;gap:12px;justify-content:center;min-width:100%}.submit-icon{font-size:22px}.pr-removal-list{background:#fff5f5;border:1px solid #ffd6d6;border-radius:12px;margin-top:12px;padding:10px 12px}.pr-removal-title{color:#d32f2f;font-size:10px;font-weight:500;margin-bottom:6px}.pr-removal-item{color:#444;font-size:13px}.pr-image-wrapper{position:relative}.pr-composite-image{display:block;height:auto;width:100%}.pulse-input{animation:pulseInput 1.8s infinite;border-color:#1e6bff!important}@keyframes pulseInput{0%{box-shadow:0 0 0 0 #1e6bff66}70%{box-shadow:0 0 0 12px #1e6bff00}to{box-shadow:0 0 0 0 #1e6bff00}}.validate-btn{font-size:13px}.validate-btn.pulse{animation:pulseValidate 1.8s infinite}@keyframes pulseValidate{0%{box-shadow:0 0 0 0 #1e6bff99}70%{box-shadow:0 0 0 12px #1e6bff00}to{box-shadow:0 0 0 0 #1e6bff00}}.input-project-name{max-width:800px}.area-shape{background:#dc000040;border:2px solid #d00;box-sizing:border-box;position:absolute}.area-shape.circle{border-radius:50%}.verification-error-backdrop{align-items:center;animation:fadeIn .2s ease;background:#00000073;display:flex;inset:0;justify-content:center;position:fixed;z-index:99999}.verification-error-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px #00000040;max-width:calc(100vw - 40px);padding:28px;text-align:center;width:400px}.verification-error-icon{font-size:42px;margin-bottom:12px}.verification-error-modal h3{color:#d32f2f;margin:0 0 10px}.verification-error-modal p{color:#555;line-height:1.5;margin-bottom:22px}.verification-error-btn{background:#123f7a;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:10px 28px;transition:.2s}.verification-error-btn:hover{background:#0d3262}@media (max-width:900px){.pr-header h1{font-size:20px;font-weight:500;margin-top:10px}.pr-secondary{background:#fff;color:#000;font-size:11px}.validate-btn{border-color:#1858ce;color:#1858ce;font-size:11px;gap:2px;max-width:80px;padding-inline:10px}.input-project-name{max-width:300px}.installation-col .pr-toggle{margin-top:-12px}.installation-col h3{margin-top:-100px}}@media (max-width:380px){.validate-btn{border-color:#1858ce;color:#1858ce;font-size:11px;gap:2px;max-width:80px;padding-inline:2px}.input-project-name{max-width:250px}}.ai-processing{background:#f5f5f7;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Arial,sans-serif;min-height:100vh;padding:36px 16px}.ai-processing-shell{margin:0 auto;max-width:620px;width:100%}.ai-card{background:#fff;border-radius:24px;box-shadow:0 18px 45px #00000014,0 1px 2px #0000000d;padding:30px 28px 32px;width:100%}.ai-top{align-items:center;display:flex;gap:18px;margin-bottom:20px}.ai-loader{animation:spin 1s linear infinite;border:3px solid #e5e5ea;border-radius:50%;border-top-color:#0071e3;height:36px;margin-top:-13px;width:36px}.ai-loader.done{animation:none;border:3px solid #34c759}@keyframes spin{to{transform:rotate(1turn)}}.ai-title h2{color:#1d1d1f;font-size:20px;font-weight:600;margin:0}.ai-sub{color:#6e6e73;font-size:13px;margin-top:2px}.ai-steps{flex-direction:column;margin-bottom:20px}.ai-step,.ai-steps{display:flex;gap:10px}.ai-step{align-items:center;color:#8e8e93;font-size:13px}.ai-step .dot{background:#d1d1d6;border-radius:50%;height:8px;width:8px}.ai-step.active{color:#1d1d1f;font-weight:500}.ai-step.active .dot{background:#0071e3}.ai-step.done{color:#34c759}.ai-step.done .dot{background:#34c759}.ai-meta{border-top:1px solid #f0f0f0;margin-top:16px;padding-top:14px}.ai-meta-row{display:flex;font-size:13px;justify-content:space-between;margin-bottom:6px}.ai-meta-row .k{color:#6e6e73}.ai-meta-row .v{color:#1d1d1f;font-weight:500}.ai-links{display:flex;gap:12px;margin-top:18px}.ai-link{background:#0071e3;border-radius:12px;color:#fff;flex:1 1;font-size:14px;font-weight:500;padding:10px 12px;text-align:center;text-decoration:none;transition:background .2s ease}.ai-link:hover{background:#005bb5}.ai-link.ghost{background:#f2f2f7;color:#0071e3}.ai-link.ghost:hover{background:#e9e9ee}.ai-render-preview{margin-top:18px}.ai-render-preview-title{color:#6b7280;font-size:12px;font-weight:700;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.ai-render-preview img{border:1px solid #e5eaf2;border-radius:16px;box-shadow:0 12px 28px #00000014;display:block;width:100%}.ai-preview{margin-top:22px}.ai-preview-title{color:#6e6e73;font-size:11px;font-weight:600;margin-bottom:6px}.ai-preview-box{background:#f5f5f7;border-radius:12px;color:#1d1d1f;font-size:12px;line-height:1.45;max-height:180px;overflow:auto;padding:12px 14px}.ai-quote-box{background:#ffffffb8;border:1px solid #1e6bff38;border-radius:16px;margin-top:12px;padding:18px}.ai-quote-note{background:#1e6bff14;border-radius:12px;color:#4b5563;font-size:13px;line-height:1.45;margin:0 0 16px;padding:12px 14px}.ai-quote-sign{border-top:1px solid #00000014;padding:14px 0}.ai-quote-sign:first-of-type{border-top:none;padding-top:0}.ai-quote-sign h3{color:#123f7a;font-size:14px;letter-spacing:.4px;margin:0 0 10px}.ai-spec-row{border-bottom:1px solid #0000000f;display:flex;font-size:13px;gap:20px;justify-content:space-between;padding:8px 0}.ai-spec-row span{color:#374151}.ai-spec-row strong{color:#111827;text-align:right;white-space:nowrap}.ai-quote-included{color:#4b5563;font-size:13px;line-height:1.45;margin:10px 0 0}.ai-quote-disclaimer{color:#6b7280;font-size:12px;line-height:1.45;margin:16px 0 0}.ai-progress-outside{margin-bottom:18px;width:100%}.ai-progress-carousel{align-items:center;background:linear-gradient(135deg,#1e6bff24,#ffffffd9);border:1px solid #1e6bff2e;border-radius:24px;box-shadow:0 18px 45px #1e6bff1a,0 1px 2px #0000000a;display:flex;gap:18px;min-height:112px;padding:22px 24px;width:100%}.ai-progress-carousel.done{background:linear-gradient(135deg,#22c55e1f,#ffffffb8);border-color:#22c55e40}.ai-progress-carousel.error{background:linear-gradient(135deg,#ef44441f,#ffffffb8);border-color:#ef444440}.ai-progress-icon{align-items:center;background:#fff;border-radius:14px;box-shadow:0 8px 18px #1e6bff29;color:#1e6bff;display:flex;flex-shrink:0;height:46px;justify-content:center;transition:color .35s ease,transform .35s ease;width:46px}.ai-progress-icon svg{animation:iconPulse 3.2s ease-in-out infinite}@keyframes iconPulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.ai-progress-carousel.done .ai-progress-icon{color:#16a34a}.ai-progress-carousel.error .ai-progress-icon{color:#dc2626}.ai-progress-copy{flex:1 1;min-width:0;overflow:visible}.ai-progress-content{display:flex;flex-direction:column;justify-content:center}@keyframes textIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ai-progress-title{color:#111827;font-size:16px;font-weight:700;letter-spacing:.2px}.ai-progress-dots{display:inline-block;min-width:18px}.ai-progress-text{color:#6b7280;font-size:13px;line-height:1.5;margin-top:6px}.ai-spec-total{border-top:2px solid #d7dce5;font-size:17px;font-weight:700;margin-top:10px;padding-top:12px}.ai-spec-total strong{color:#0f4da8;font-size:18px}.ai-spec-row.ai-tax-row{font-size:12px}.ai-spec-row.ai-tax-row span,.ai-spec-row.ai-tax-row strong{color:#6b7280;font-weight:500}.ai-sign-reference{color:#6b7280;font-size:12px;font-style:italic;margin:-4px 0 10px}.ai-floating-proposal-btn{align-items:center;animation:proposalPulse 2.2s ease-out infinite;background:linear-gradient(135deg,#123f7a,#1e6bff,#4d8dff);border-radius:999px;bottom:28px;box-shadow:0 0 0 0 #1e6bff8c;color:#fff;display:inline-flex;font-size:15px;font-weight:700;gap:10px;padding:15px 22px;position:fixed;right:28px;text-decoration:none;transition:transform .25s ease,box-shadow .25s ease;z-index:9999}.ai-floating-proposal-btn:hover{box-shadow:0 14px 36px #1e6bff59;transform:translateY(-3px) scale(1.03)}.ai-floating-icon{font-size:18px}@keyframes proposalPulse{0%{box-shadow:0 0 0 0 #1e6bff8c,0 10px 30px #1e6bff40}70%{box-shadow:0 0 0 22px #1e6bff00,0 10px 30px #1e6bff40}to{box-shadow:0 0 0 0 #1e6bff00,0 10px 30px #1e6bff40}}.ai-revision-overlay{align-items:center;animation:revisionFade .25s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#12182773;display:flex;inset:0;justify-content:center;position:fixed;z-index:9999}.ai-revision-modal{animation:revisionPop .35s cubic-bezier(.18,.9,.32,1.05);background:#fff;border-radius:22px;box-shadow:0 30px 80px #00000047,0 8px 25px #0000001f;overflow:hidden;padding:34px;position:relative;width:min(760px,92vw)}.ai-revision-modal:before{background:radial-gradient(circle at top right,#4678ff29,#0000 55%),linear-gradient(180deg,#f7faff,#eef4ff);border-bottom:1px solid #e7edf8;content:"";height:86px;left:0;pointer-events:none;position:absolute;right:0;top:0}.ai-revision-modal h3{align-items:center;color:#1f2937;display:flex;font-size:34px;font-weight:700;gap:12px;margin:0;position:relative;z-index:2}.ai-revision-modal h3:before{align-items:center;background:linear-gradient(135deg,#0e265a,#5b6cff);border-radius:50%;box-shadow:0 10px 24px #2563eb4d;color:#fff;content:"✨";display:flex;font-size:25px;height:42px;justify-content:center;width:42px}.ai-revision-modal p{color:#6b7280;font-size:15px;line-height:1.5;margin:10px 0 26px}.ai-revision-modal textarea{background:#fbfcfe;border:2px solid #d8dee8;border-radius:18px;box-sizing:border-box;color:#222;font-family:inherit;font-size:15px;line-height:1.6;min-height:230px;outline:none;padding:18px 20px;resize:vertical;transition:.25s;width:100%}.ai-revision-modal textarea::placeholder{color:#9ca3af}.ai-revision-modal textarea:focus{background:#fff;border-color:#2f6df6;box-shadow:0 0 0 5px #2f6df61f,0 12px 30px #2f6df614}.ai-revision-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.ai-revision-actions button{border-radius:12px;cursor:pointer;font-size:14px;font-weight:600;height:46px;padding:0 22px;transition:.25s}.ai-revision-actions button:first-child{background:#fff;border:1px solid #d5dbe5;color:#555}.ai-revision-actions button:first-child:hover{background:#f5f7fa}.ai-revision-actions button:last-child{background:linear-gradient(135deg,#2563eb,#4f46e5);border:none;box-shadow:0 10px 30px #2563eb47;color:#fff}.ai-revision-actions button:last-child:hover{box-shadow:0 14px 30px #172e6161;transform:translateY(-2.5px)}.ai-revision-actions button:last-child:active{transform:scale(.98)}.ai-revision-btn{align-items:center;background:linear-gradient(135deg,#2563eb,#3b82f6);border:none;border-radius:14px;box-shadow:0 10px 24px #2563eb47,inset 0 1px 0 #ffffff26;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:10px;justify-content:center;letter-spacing:.2px;margin-top:18px;padding:8px 18px;transition:transform .22s ease,box-shadow .22s ease,filter .22s ease;width:100%}.ai-revision-btn:hover{box-shadow:0 14px 32px #2563eb61,inset 0 1px 0 #ffffff2e;filter:brightness(1.03);transform:translateY(-2px)}.ai-revision-btn:active{transform:translateY(0)}.ai-revision-btn:disabled{box-shadow:none;cursor:not-allowed;opacity:.55;transform:none}.ai-revision-btn:before{content:"✨";font-size:18px}@keyframes revisionFade{0%{opacity:0}to{opacity:1}}@keyframes revisionPop{0%{filter:blur(10px);opacity:0;transform:translateY(24px) scale(.94)}60%{filter:blur(0);opacity:1;transform:translateY(-3px) scale(1.01)}to{transform:translateY(0) scale(1)}}.ai-error{background:#fff5f5;border-radius:10px;color:#d92d20;font-size:13px;margin-top:14px;padding:10px 12px}.ai-resend-btn{align-items:center;background:linear-gradient(135deg,#1e6bff,#4d8dff);border:none;border-radius:12px;box-shadow:0 8px 24px #1e6bff38;color:#fff;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;margin-bottom:20px;padding:10px 18px;transition:all .25s ease}.ai-resend-btn:hover{box-shadow:0 14px 34px #1e6bff4d;transform:translateY(-2px)}.ai-resend-btn:active{transform:scale(.98)}.ai-resend-btn svg{height:16px;width:16px}.page{flex-direction:column;margin:0 auto;max-width:1200px;padding:80px 24px}.login-header,.page{align-items:center;display:flex}.login-header{gap:18px;margin-bottom:8px}.login-icon{align-items:center;background:#eef4ff;border-radius:16px;color:#2563eb;display:flex;font-size:24px;height:54px;justify-content:center;width:54px}.login-header h2{font-size:32px;font-weight:700;margin:0}.login-header p{color:#6b7280;font-size:15px;margin:6px 0 0}.page h1{font-size:42px;margin-bottom:8px;text-align:center}.subtitle{color:#6b7280;font-size:15px;margin-bottom:26px;text-align:center}.email-gate{background:#fff;border:1px solid #e8edf5;border-radius:26px;box-shadow:0 18px 45px #0000000f;display:flex;flex-direction:column;gap:18px;margin:40px auto 0;max-width:520px;padding:34px;width:100%}.email-gate input{background:#fff;border:1px solid #d9e1ec;border-radius:16px;font-size:15px;height:52px;padding:0 18px;transition:.2s}.email-gate input:focus{border-color:#6b8cff;box-shadow:0 0 0 4px #6b8cff1f;outline:none}.email-gate button{background:#111827;border:none;border-radius:16px;color:#fff;cursor:pointer;font-size:15px;font-weight:600;height:50px;transition:.2s}.email-gate button:hover{background:#000;transform:translateY(-1px)}.email-gate button:disabled{cursor:not-allowed;opacity:.55;transform:none}.projects-grid{width:96%}.project-card{background:#fff;border-radius:22px;box-shadow:0 10px 28px #00000014;min-height:430px;overflow:hidden;transition:.22s ease}.project-card:hover{transform:translateY(-4px)}.project-image img{height:220px}.project-meta{color:#777;display:flex;font-size:13px;justify-content:space-between;margin-bottom:12px}.status{align-items:center;border-radius:999px;display:inline-flex;font-size:11px;font-weight:600;padding:4px 10px;text-transform:capitalize}.status.completed{background:#e9f9ef;color:#2e9c5d}.status.processing{background:#eef5ff;color:#2b73ff}.status.pending{background:#fff5df;color:#cf8a00}.status.failed{background:#ffecec;color:#d93b3b}.project-desc{font-size:12px;max-height:72px;overflow:hidden;transition:max-height .3s ease}.project-desc.open{max-height:400px}.see-more{background:none;border:none;color:#007aff;font-size:13px;margin-top:6px}.project-actions{display:flex;gap:16px;margin-top:16px}.project-actions a{color:#007aff;font-size:14px;text-decoration:none}.pr-modal-overlay{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;position:fixed}.pr-modal{background:#fff;border-radius:24px;padding:28px;width:420px}.pr-modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:20px}.pr-modal-actions button{border:none;border-radius:18px;padding:10px 18px}.pr-modal-actions .confirm{background:#000;color:#fff;cursor:pointer}.project-kv{margin:10px 0 12px}.kv{color:#777;display:flex;font-size:12.5px;gap:12px;justify-content:space-between}.kv .k{color:#8a8a8a;min-width:72px}.kv .v{color:#666;text-align:right}.kv .v.mono{color:#6b6b6b;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px}.project-actions a{display:inline-flex;flex-direction:column;gap:2px}.file-hint{color:#9a9a9a;font-size:11px;line-height:1.1}.project-id{color:#b0b0b0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:11px;margin-top:12px}.status.completed{color:#2ecc71}.status.pending{color:#f39c12}.status.processing{color:#007aff}.status.failed{color:#e74c3c}.load-more{background:#111;border:none;border-radius:999px;color:#fff;cursor:pointer;display:block;font-size:12px;font-weight:400;letter-spacing:.2px;margin:22px auto 0;padding:10px 30px;transition:transform .12s ease,box-shadow .12s ease,background .12s ease,opacity .12s ease}.load-more:hover{background:#000;box-shadow:0 6px 18px #00000040;transform:translateY(-1px)}.load-more:active{box-shadow:0 3px 10px #0003;transform:translateY(0)}.load-more:disabled{box-shadow:none;cursor:not-allowed;opacity:.45;transform:none}.apple-alert{animation:appleFadeIn .25s ease;background:#ff3b301f;border:1px solid #ff3b3059;border-radius:14px;color:#1c1c1e;font-size:14px;font-weight:500;margin-bottom:14px;padding:12px 16px;text-align:center}.project-review-loading{align-items:center;color:#666;display:flex;flex-direction:column;font-size:15px;gap:18px;justify-content:center;min-height:70vh}.project-review-spinner{animation:projectReviewSpin .8s linear infinite;border:3px solid #e5e5e5;border-radius:50%;border-top-color:#000;height:42px;width:42px}@keyframes projectReviewSpin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes appleFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.projects-grid{align-content:start;grid-template-columns:repeat(3,minmax(0,1fr));padding-right:20px}@media (max-width:1200px){.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:768px){.projects-grid{grid-template-columns:1fr}}.project-body,.project-card{display:flex;flex-direction:column;height:100%}.project-kv{grid-gap:8px;display:grid;gap:8px;margin-bottom:18px}.project-actions{margin-top:auto}.ppm-backdrop{align-items:center;animation:ppmFade .18s ease;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#00000073;display:flex;inset:0;justify-content:center;position:fixed;z-index:99999}@keyframes ppmFade{0%{opacity:0}to{opacity:1}}.ppm-center{background:#fff;border-radius:26px;box-shadow:0 35px 90px #00000040;display:flex;flex-direction:column;height:92vh;overflow:hidden;width:min(1500px,96vw)}.ppm-header{align-items:center;border-bottom:1px solid #eee;display:flex;flex-shrink:0;justify-content:space-between;padding:26px 32px}.ppm-header h2{font-size:28px;font-weight:600;margin:0}.ppm-count{color:#888;display:block;font-size:13px;margin-top:4px}.ppm-close{background:#0000;border:none;border-radius:50%;cursor:pointer;height:42px;transition:.18s;width:42px}.ppm-close:hover{background:#f3f3f3}.ppm-search{align-items:center;border-bottom:1px solid #eee;display:flex;flex-shrink:0;gap:12px;padding:22px 32px}.ppm-search svg{color:#999}.ppm-search input{background:#0000;border:none;flex:1 1;font-size:15px;outline:none}.projects-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));overflow-y:auto;padding:24px}.project-card{min-height:600px;width:100%}.project-card:hover{box-shadow:0 18px 40px #0000001a;transform:translateY(-3px)}.project-image{background:#f4f4f4;border-radius:22px 22px 0 0;height:240px;overflow:hidden;width:100%}.project-image img{display:block;height:100%;object-fit:cover;width:100%}.project-content{padding:20px}.project-body{flex:1 1;padding:22px}.project-body h3{font-size:20px;margin-bottom:10px}.project-actions{margin-top:22px}.project-actions a{font-weight:500}.project-id{margin-top:16px;opacity:.65}.project-desc{line-height:1.45}.project-desc p{margin:8px 0}.projects-grid::-webkit-scrollbar{width:10px}.projects-grid::-webkit-scrollbar-thumb{background:#ddd;border-radius:20px}.projects-grid::-webkit-scrollbar-thumb:hover{background:#bbb}.project-no-image{align-items:center;background:#f6f6f6;color:#999;display:flex;font-size:13px;height:100%;justify-content:center}.portal-primary-btn{background:#2f6df6;border:none;border-radius:999px;color:#fff;cursor:pointer;font-size:12px;font-weight:500;height:20px;padding:0 20px;transition:.22s}.ppm-description-backdrop{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1212128c;display:flex;inset:0;justify-content:center;position:fixed;z-index:999999}.ppm-description-modal{background:#f4f5f7;border-radius:26px;box-shadow:0 35px 90px #00000047;display:flex;flex-direction:column;max-height:88vh;overflow:hidden;width:min(980px,92vw)}.ppm-description-header{align-items:center;background:#fff;border-bottom:1px solid #ececec;display:flex;justify-content:space-between;padding:24px 30px}.ppm-description-header h2{font-size:24px;margin:0}.ppm-description-header span{color:#888;font-size:13px}.ppm-description-paper{flex:1 1;overflow:auto;padding:34px}.ppm-description-content{background:#fff;border-radius:18px;box-shadow:0 8px 25px #0000000f;color:#444;line-height:1.7;padding:40px}.ppm-description-content h1,.ppm-description-content h2{color:#111;margin-top:0}.ppm-description-content h3{border-bottom:1px solid #ececec;margin-top:32px;padding-bottom:10px}.ppm-description-content p{margin:14px 0}.ppm-description-content strong{color:#111}.ppm-description-content ul{padding-left:24px}.ppm-description-content li{margin-bottom:10px}.ppm-description-content blockquote{background:#f8faff;border-left:4px solid #2f6df6;border-radius:12px;margin:24px 0;padding:18px 22px}.ppm-description-content hr{border:none;border-top:1px solid #ececec;margin:30px 0}.portal-page{align-items:flex-start;background:radial-gradient(circle at top,#1e6bff14,#0000 34%),#fff;display:flex;justify-content:center;min-height:calc(100vh - 70px);padding:72px 18px}.portal-card{background:#fffffff0;border:1px solid #e2e8f0e6;border-radius:28px;box-shadow:0 24px 70px #0f172a14;padding:34px;width:min(520px,100%)}.portal-brand{gap:16px;margin-bottom:28px}.portal-brand,.portal-logo{align-items:center;display:flex}.portal-logo{background:#eef6ff;border-radius:18px;color:#1e6bff;height:58px;justify-content:center;width:58px}.portal-brand h1{color:#111827;font-size:28px;font-weight:850;letter-spacing:-.04em;margin:0}.portal-brand p{color:#6b7280;font-size:14px;margin:6px 0 0}.portal-field{margin-bottom:18px}.portal-field label{align-items:center;color:#111827;display:flex;font-size:13px;font-weight:750;gap:7px;margin-bottom:8px}.portal-code-input,.portal-field input{background:#fff;border:1px solid #dbe3ef;border-radius:16px;box-sizing:border-box;font-size:15px;height:54px;outline:none;padding:0 16px;transition:.18s ease;width:100%}.portal-code-input:focus,.portal-field input:focus{border-color:#1e6bff;box-shadow:0 0 0 5px #1e6bff1a}.portal-note{background:#f8fafc;border-radius:16px;color:#64748b;font-size:13px;line-height:1.45;margin:8px 0 18px;padding:13px 14px}.portal-error{background:#fff1f2;border-radius:14px;color:#be123c;font-size:13px;font-weight:650;margin:12px 0;padding:12px 14px}.portal-primary{align-items:center;background:#1e6bff;border:none;border-radius:999px;box-shadow:0 12px 26px #1e6bff3d;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:800;gap:9px;height:52px;justify-content:center;transition:.18s ease;width:100%}.portal-primary.disabled,.portal-primary:disabled{background:#d1d5db;box-shadow:none;cursor:not-allowed}.portal-secondary{background:#fff;border:1px solid #dbe3ef;border-radius:999px;color:#111827;cursor:pointer;font-weight:750;height:48px;margin-top:12px;width:100%}.portal-modal-actions .portal-primary,.portal-modal-actions .portal-secondary{align-items:center;display:flex;height:52px;justify-content:center;margin-top:0}.portal-code-header{text-align:center}.portal-code-icon{align-items:center;background:#eef6ff;border-radius:999px;color:#1e6bff;display:flex;height:68px;justify-content:center;margin:0 auto 16px;width:68px}.portal-code-header h2{color:#111827;font-size:24px;font-weight:850;margin:0 0 8px}.portal-code-header p{color:#6b7280;font-size:14px;margin:0 0 22px}.portal-code-input{font-size:28px;font-weight:850;letter-spacing:8px;margin-bottom:16px;text-align:center}.portal-spinner{animation:portalSpin .75s linear infinite;border:3px solid #ffffff73;border-radius:50%;border-top-color:#fff;display:inline-block;height:22px;width:22px}.portal-spinner.small{border-width:2.5px;height:18px;width:18px}@keyframes portalSpin{to{transform:rotate(1turn)}}.portal-dashboard{width:min(1120px,100%)}.portal-dashboard-header{align-items:center;background:#fffffff0;border:1px solid #e2e8f0e6;border-radius:28px;box-shadow:0 24px 70px #0f172a14;display:flex;gap:18px;justify-content:space-between;margin-bottom:24px;padding:30px}.portal-eyebrow{color:#1e6bff;font-size:12px;font-weight:850;letter-spacing:.08em;margin-bottom:6px;text-transform:uppercase}.portal-dashboard-header h1{color:#111827;font-size:34px;font-weight:900;letter-spacing:-.05em;margin:0}.portal-dashboard-header p{color:#6b7280;font-size:14px;margin:6px 0 0}.portal-secondary.compact{min-width:132px;padding:0 18px;width:auto}.portal-stats-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:repeat(4,1fr);margin-bottom:18px}.portal-stat-card{background:#fff;border:1px solid #e5eaf2;border-radius:24px;box-shadow:0 18px 46px #0f172a0f;padding:22px}.portal-stat-card svg{color:#1e6bff;margin-bottom:14px}.portal-stat-card strong{color:#111827;display:block;font-size:25px;font-weight:900}.portal-stat-card span{color:#6b7280;display:block;font-size:13px;margin-top:4px}.portal-dashboard-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:repeat(2,1fr)}.portal-panel{background:#fff;border:1px solid #e5eaf2;border-radius:26px;box-shadow:0 18px 46px #0f172a0f;padding:24px}.portal-panel-title{align-items:center;display:flex;gap:10px;margin-bottom:18px}.portal-panel-title svg{color:#1e6bff}.portal-panel-title h3{color:#111827;font-size:18px;font-weight:850;margin:0}.portal-user-row{align-items:center;display:flex;justify-content:space-between;padding:14px 0}.portal-user-row strong{color:#111827;display:block;font-size:14px}.portal-user-row span{color:#6b7280;display:block;font-size:12px;margin-top:4px}.portal-pill{background:#ecfdf5;color:#047857!important;font-size:12px;padding:7px 10px}.portal-panel-btn,.portal-pill{border-radius:999px;font-weight:800}.portal-panel-btn{background:#f8fafc;border:1px dashed #cbd5e1;color:#94a3b8;height:42px;margin-top:14px;width:100%}.portal-empty-box{background:#f8fafc;border-radius:18px;color:#64748b;font-size:14px;padding:24px;text-align:center}.portal-info-list{grid-gap:12px;display:grid;gap:12px}.portal-info-list div{border-bottom:1px solid #edf2f7;display:flex;gap:14px;justify-content:space-between;padding-bottom:12px}.portal-info-list div:last-child{border-bottom:none;padding-bottom:0}.portal-info-list span{color:#64748b;font-size:13px}.portal-info-list strong{color:#111827;font-size:13px;text-align:right}.portal-dashboard{margin:0 auto;width:min(1120px,calc(100% - 36px))}.portal-panel-title-between{justify-content:space-between}.portal-panel-title-between>div{align-items:center;display:flex;gap:10px}.portal-mini-btn{background:#1e6bff;border:none;border-radius:999px;color:#fff;cursor:pointer;font-size:12px;font-weight:800;padding:9px 14px}.portal-users-list{grid-gap:10px;display:grid;gap:10px}.portal-role-select{background:#fff;border:1px solid #dbe3ef;border-radius:999px;font-size:12px;font-weight:750;height:36px;outline:none;padding:0 12px}.portal-role-select.full{border-radius:16px;font-size:14px;height:48px;width:100%}.portal-user-modal-backdrop{align-items:center;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#0f172a47;display:flex;inset:0;justify-content:center;position:fixed;z-index:9999}.portal-user-modal{animation:logoutModalIn .28s cubic-bezier(.22,1,.36,1);background:#fffffff5;border-radius:28px;box-shadow:0 26px 80px #0f172a33;padding:34px;width:min(440px,calc(100% - 34px))}.portal-user-modal h3{color:#111827;font-size:24px;font-weight:850;letter-spacing:-.03em;margin:0 0 8px}.portal-user-modal p{color:#6b7280;font-size:14px;margin:0 0 24px}.portal-user-modal .portal-field{margin-bottom:18px}.portal-user-modal .portal-field label{align-items:center;color:#111827;display:flex;font-size:13px;font-weight:750;gap:7px;margin-bottom:8px}.portal-user-modal input,.portal-user-modal select{background:#fff;border:1px solid #dbe3ef;border-radius:16px;box-sizing:border-box;font-size:14px;font-weight:650;height:50px;outline:none;padding:0 15px;width:100%}.portal-user-modal input:focus,.portal-user-modal select:focus{border-color:#1e6bff;box-shadow:0 0 0 5px #1e6bff1a}.portal-modal-actions{display:flex;gap:12px;margin-top:24px}.portal-modal-actions .portal-primary,.portal-modal-actions .portal-secondary{border-radius:999px;cursor:pointer;flex:1 1;font-weight:800;height:46px}.portal-modal-actions .portal-secondary{background:#fff;border:1px solid #dbe3ef;color:#111827}.portal-modal-actions .portal-primary{background:#1e6bff;border:none;box-shadow:0 12px 26px #1e6bff3d;color:#fff}.portal-user-actions{align-items:center;display:flex;gap:14px}.portal-user-info{display:flex;flex-direction:column}.portal-switch{display:inline-block;height:28px;position:relative;width:48px}.portal-switch input{height:0;opacity:0;width:0}.portal-slider{background:#d5dce8;border-radius:999px;cursor:pointer;inset:0;position:absolute;transition:.22s}.portal-slider:before{background:#fff;border-radius:50%;box-shadow:0 2px 8px #0f172a2e;content:"";height:22px;left:3px;position:absolute;top:3px;transition:.22s;width:22px}.portal-switch input:checked+.portal-slider{background:#1e6bff}.portal-switch input:checked+.portal-slider:before{transform:translateX(20px)}.portal-switch input:disabled+.portal-slider{cursor:not-allowed;opacity:.45}.portal-link-btn{background:#0000;border:none;color:#888;cursor:pointer;font-size:11px;font-weight:500;margin-top:18px;transition:opacity .18s ease;width:100%}.portal-link-btn:hover{opacity:.75}.portal-link-btn:disabled{cursor:default;opacity:.45}.portal-message-backdrop{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0f172a47;display:flex;inset:0;justify-content:center;position:fixed;z-index:9999}.portal-message-modal{background:#fffffff5;border-radius:28px;box-shadow:0 26px 80px #0f172a33;padding:30px;text-align:center;width:min(380px,calc(100% - 34px))}.portal-message-modal h3{color:#111827;font-size:24px;font-weight:850;margin:0 0 8px}.portal-message-modal p{color:#6b7280;font-size:14px;margin:0 0 22px}.portal-company-title-row,.portal-panel-actions{align-items:center;display:flex;gap:10px}.portal-company-title-row h1{margin:0}.portal-delete-icon-btn,.portal-icon-btn{align-items:center;background:#f3f6ff;border:none;border-radius:12px;color:#246bfe;cursor:pointer;display:inline-flex;height:34px;justify-content:center;transition:.2s ease;width:34px}.portal-delete-icon-btn:hover,.portal-icon-btn:hover{background:#e7efff;transform:translateY(-1px)}.portal-delete-icon-btn{background:#fff1f0;color:#d93025}.portal-delete-icon-btn:hover{background:#ffe0de}.portal-delete-icon-btn:disabled,.portal-icon-btn:disabled{cursor:not-allowed;opacity:.45;transform:none}.portal-company-edit{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.portal-company-edit input{border:1px solid #dde5f2;border-radius:14px;font-weight:700;height:42px;min-width:260px;outline:none;padding:0 14px}.portal-company-edit input:focus{border-color:#246bfe;box-shadow:0 0 0 4px #246bfe1f}.portal-secondary.small{height:38px;margin-top:0;padding:0 14px}.portal-message-modal strong{color:#0f172a}.portal-user-modal .portal-users-list{margin-top:16px}.portal-search-input{background:#fff;border:1px solid #dde5f2;border-radius:14px;font-weight:600;height:42px;margin:14px 0;outline:none;padding:0 14px;width:90%}.portal-search-input:focus{border-color:#246bfe;box-shadow:0 0 0 4px #246bfe1f}.portal-panel>.portal-users-list,.portal-user-modal .portal-users-list{max-height:360px;overflow-y:auto;padding-right:4px}.portal-project-count{align-items:center;background:#f1f2f4;border-radius:999px;color:#666;display:flex;font-size:11px;font-weight:600;height:22px;justify-content:center;min-width:22px;padding:0 7px}.portal-project-row{align-items:center;border-radius:16px;cursor:pointer;display:flex;justify-content:space-between;padding:14px 16px;transition:background .18s ease,transform .18s ease,box-shadow .18s ease}.portal-project-row:hover{background:#fafafa;box-shadow:0 8px 18px #0000000f;transform:translateY(-1px)}.portal-project-left{align-items:center;display:flex;gap:14px;min-width:0}.portal-project-right{align-items:center;display:flex;flex-shrink:0;gap:16px}.portal-project-thumb{background:#f3f3f3;object-fit:cover}.portal-project-placeholder,.portal-project-thumb{border:1px solid #ececec;border-radius:14px;height:58px;width:58px}.portal-project-placeholder{align-items:center;background:#f6f6f7;color:#888;display:flex;justify-content:center}.portal-project-date{color:#999;font-size:12px;min-width:88px;text-align:right}.portal-status{border-radius:999px;font-size:11px;font-weight:600;padding:6px 12px;text-transform:capitalize;white-space:nowrap}.portal-status.processing{background:#e9f3ff;color:#007aff}.portal-status.completed{background:#eaf9ef;color:#22a447}.portal-status.pending{background:#fff6df;color:#d38b00}.portal-status.failed{background:#ffeaea;color:#d94141}.portal-status.review{background:#f2ecff;color:#6d3ef5}.portal-status.rendering{background:#eef7ff;color:#3d8bfd}.portal-status.approved{background:#e8fbef;color:#19a95a}.portal-status.rejected{background:#ffe8e8;color:#d93f3f}.portal-status.unknown{background:#f2f2f2;color:#777}@media (max-width:850px){.portal-dashboard-header{align-items:flex-start;flex-direction:column}.portal-dashboard-grid,.portal-stats-grid{grid-template-columns:1fr}}.assistant-header{background:#fff;border-bottom:1px solid #e5e5ea;padding-block:10px;padding-inline:60px}.assistant-header-inner{align-items:center;display:flex;justify-content:space-between}.assistant-title{align-items:center;display:flex;gap:10px}.assistant-logo{align-items:center;background:#000;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:22px;font-weight:700;height:44px;justify-content:center;width:44px}.assistant-actions{align-items:center;display:flex;gap:18px;margin-right:10px}.assistant-action-btn{align-items:center;background:none;border:none;color:#1d1d1f;cursor:pointer;display:flex;flex-direction:column;font-size:11px;gap:2px}.assistant-action-btn span{color:#6e6e73;font-size:10px}.assistant-action-btn:hover{opacity:.7}.assistant-logout{background:none;border:none;color:#1d1d1f;cursor:pointer}.assistant-logout:hover{opacity:.7}.header-back{background:#0000;border:none;color:#1d1d1f;cursor:pointer;margin-right:8px;opacity:.7}.header-back:hover{opacity:1}.assistant-back{align-items:center;background:#0000;border:none;color:#1d1d1f;cursor:pointer;display:flex;margin-right:10px;opacity:.7;padding:4px}.assistant-back:hover{opacity:1}.logout-modal-backdrop{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#11182752;display:flex;inset:0;justify-content:center;position:fixed;z-index:9999}.logout-modal{animation:logoutModalIn .28s cubic-bezier(.22,1,.36,1);background:#fffffff0;border-radius:26px;box-shadow:0 24px 70px #0f172a38;padding:34px 28px 30px;text-align:center;width:min(360px,calc(100% - 32px))}.logout-modal.closing{animation:logoutModalOut .22s ease-in forwards}.logout-icon{align-items:center;background:#eef6ff;border-radius:999px;color:#1e6bff;display:flex;height:68px;justify-content:center;margin:0 auto 16px;width:68px}.logout-modal h3{color:#111827;font-size:22px;font-weight:800;margin:0 0 8px}.logout-modal p{color:#6b7280;font-size:14px;margin:0}@keyframes logoutModalIn{0%{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes logoutModalOut{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(18px) scale(.96)}}.portal-warning-backdrop{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#11182757;display:flex;inset:0;justify-content:center;position:fixed;z-index:9998}.portal-warning-modal{animation:logoutModalIn .28s cubic-bezier(.22,1,.36,1);background:#fffffff5;border-radius:26px;box-shadow:0 24px 70px #0f172a38;padding:32px 28px 26px;text-align:center;width:min(390px,calc(100% - 32px))}.portal-warning-icon{align-items:center;background:#eef6ff;border-radius:999px;color:#1e6bff;display:flex;height:66px;justify-content:center;margin:0 auto 16px;width:66px}.portal-warning-modal h3{color:#111827;font-size:22px;font-weight:850;margin:0 0 8px}.portal-warning-modal p{color:#6b7280;font-size:14px;line-height:1.5;margin:0}.portal-warning-actions{display:flex;gap:12px;margin-top:24px}.portal-warning-btn{border:none;border-radius:999px;cursor:pointer;flex:1 1;font-weight:800;height:44px}.portal-warning-btn.secondary{background:#fff;border:1px solid #dbe3ef;color:#111827}.portal-warning-btn.primary{background:#1e6bff;box-shadow:0 10px 24px #1e6bff3d;color:#fff}
/*# sourceMappingURL=main.9c640b7b.css.map*/