:root{--bg: #0d0d0f;--surface: #161618;--surface2: #1e1e21;--surface3: #252528;--border: rgba(255, 255, 255, .07);--border-med: rgba(255, 255, 255, .12);--text: #eeebe4;--text-dim: #7a7a82;--text-dimmer: #4a4a52;--accent: #ff6b35;--accent-dim: rgba(255, 107, 53, .1);--accent-hover: #ff7d4d;--success: #4ade80;--danger: #f87171;--warn: #fbbf24;--radius-card: 12px;--radius-input: 8px;--radius-btn: 7px;--font: "Plus Jakarta Sans", system-ui, sans-serif;--font-display: "Syne", "Plus Jakarta Sans", system-ui, sans-serif;--mono: "DM Mono", ui-monospace, monospace;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 4px 16px rgba(0, 0, 0, .5)}*{box-sizing:border-box}html,body{margin:0;min-height:100%}#root{margin:0;min-height:100%;width:100%}body{font-family:var(--font);background:var(--bg);color:var(--text)}.app-root{width:100%;max-width:var(--app-max-width);margin:0 auto;min-height:100%}a{color:var(--accent)}.app-logo img{display:block;object-fit:contain}.app-logo-text{font-weight:700;letter-spacing:-.02em}.landing-page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:radial-gradient(ellipse 80% 50% at 50% -10%,rgba(255,107,53,.14),transparent 55%),radial-gradient(ellipse 60% 40% at 100% 20%,rgba(255,140,80,.06),transparent 50%),var(--bg);overflow-x:hidden}.landing-header{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:.85rem 1.5rem;border-bottom:1px solid var(--border);background:#0d0d0fb8;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.landing-header-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.landing-ph-badge img{display:block}.landing-hero{position:relative;min-height:calc(100vh - 64px);min-height:calc(100dvh - 64px);display:flex;align-items:center;justify-content:center;padding:3rem 1.5rem;text-align:center}.landing-hero-glow{pointer-events:none;position:absolute;inset:10% 20% auto;height:40%;background:radial-gradient(ellipse at center,rgba(255,107,53,.18),transparent 70%);filter:blur(40px);animation:landing-glow 8s ease-in-out infinite alternate}.landing-hero-inner{position:relative;z-index:1;width:100%;max-width:820px;margin:0 auto;padding-bottom:2rem}.landing-brand-signal{margin:0 0 .75rem;font-family:var(--font-display);font-weight:800;font-size:clamp(1.1rem,2.4vw,1.35rem);letter-spacing:.18em;text-transform:uppercase;color:var(--accent);animation:landing-rise .7s ease both}.landing-hero-title{font-family:var(--font-display);font-weight:800;font-size:clamp(2.75rem,9vw,5.5rem);margin:0 0 1.1rem;line-height:.95;letter-spacing:-.04em;display:flex;flex-wrap:wrap;justify-content:center;gap:.2em}.landing-hero-title span{display:inline-block;animation:landing-rise .8s ease both}.landing-hero-title span:nth-child(2){animation-delay:.08s}.landing-hero-title span:nth-child(3){animation-delay:.16s;color:var(--accent)}.landing-hero-lead{color:var(--text-dim);margin:0 auto 1.5rem;max-width:34rem;line-height:1.6;font-size:clamp(1rem,2.2vw,1.15rem);animation:landing-rise .85s ease .12s both}.landing-hero-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;animation:landing-rise .9s ease .2s both}.landing-cta{padding:.75rem 1.25rem;font-size:.95rem;text-decoration:none}.landing-steps{padding:4.5rem 1.5rem 3rem}.landing-steps-inner{max-width:980px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:2.5rem 3rem;align-items:start}.landing-step{text-align:left}.landing-step-num{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;margin-bottom:.85rem;border-radius:999px;background:var(--accent);color:#0d0d0f;font-family:var(--font-display);font-weight:800;font-size:.95rem}.landing-step-title{font-family:var(--font-display);font-weight:700;font-size:clamp(1.35rem,3vw,1.75rem);margin:0 0 .65rem;letter-spacing:-.03em;line-height:1.15}.landing-step-copy{margin:0 0 1rem;color:var(--text-dim);line-height:1.6;font-size:.98rem}.landing-step-tip{margin:0 0 1rem;color:var(--text);font-size:.92rem;line-height:1.5}.landing-step-tip:before{content:"";display:inline-block;width:.45rem;height:.45rem;margin-right:.5rem;border-radius:50%;background:var(--accent);vertical-align:middle}.landing-qr-wrap{width:fit-content;padding:10px;margin:0 0 1rem;background:#fff;border-radius:12px;box-shadow:var(--shadow-md)}.landing-qr-wrap img{display:block;width:168px;height:168px}.landing-qr-placeholder{width:168px;height:168px;background:linear-gradient(135deg,#eee,#ddd)}.landing-step-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.landing-step-preview{width:min(100%,280px);margin:0 auto}.landing-step-preview img{display:block;width:100%;height:auto;border-radius:18px;box-shadow:var(--shadow-md)}.landing-showcase{padding:1rem 0 4.5rem;text-align:center}.landing-showcase-inner{max-width:900px;margin:0 auto;padding:0 1.5rem}.landing-showcase-title{font-family:var(--font-display);font-weight:800;font-size:clamp(1.75rem,4vw,2.5rem);margin:0 0 .75rem;letter-spacing:-.03em}.landing-showcase-lead{margin:0 auto 1.75rem;max-width:32rem;color:var(--text-dim);line-height:1.6}.landing-showcase-cta{margin-top:2rem}.landing-previews{display:flex;gap:1rem;overflow-x:auto;padding:.5rem 1.5rem 1rem;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--accent-dim) transparent}.landing-previews::-webkit-scrollbar{height:6px}.landing-previews::-webkit-scrollbar-thumb{background:#ff6b3559;border-radius:999px}.landing-preview{flex:0 0 min(220px,58vw);margin:0;scroll-snap-align:start;animation:landing-rise .8s ease both}.landing-preview:nth-child(2){animation-delay:.04s}.landing-preview:nth-child(3){animation-delay:.08s}.landing-preview:nth-child(4){animation-delay:.12s}.landing-preview:nth-child(5){animation-delay:.16s}.landing-preview:nth-child(6){animation-delay:.2s}.landing-preview:nth-child(7){animation-delay:.24s}.landing-preview:nth-child(8){animation-delay:.28s}.landing-preview img{display:block;width:100%;height:auto;border-radius:16px;box-shadow:var(--shadow-md);transition:transform .25s ease}.landing-preview:hover img{transform:translateY(-4px)}.landing-footer{border-top:1px solid var(--border);padding:1.5rem;display:flex;flex-direction:column;align-items:center;gap:.65rem;text-align:center}.landing-footer-credit,.landing-footer-copy{margin:0;color:var(--text-dimmer);font-size:.82rem}.landing-footer-links{display:flex;gap:1.5rem}.landing-footer-links a{color:var(--text-dim);font-size:.85rem;text-decoration:none}.landing-footer-links a:hover{color:var(--text)}.landing-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.landing-modal{width:min(440px,100%);max-height:90vh;overflow:auto}.landing-modal-tabs{display:flex;gap:8px;margin-bottom:1rem}.landing-modal-tabs .btn{flex:1}@keyframes landing-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes landing-glow{0%{opacity:.55;transform:scale(.96)}to{opacity:1;transform:scale(1.05)}}@media(max-width:820px){.landing-steps-inner{grid-template-columns:1fr;gap:3rem}.landing-ph-badge{display:none}.landing-step-preview{width:min(100%,240px)}}@media(max-width:560px){.landing-header{padding:.75rem 1rem}.landing-header .btn-ghost:not(:last-of-type){display:none}.landing-hero{padding-top:2.25rem;min-height:auto}.landing-hero-title{flex-direction:column;gap:.05em}}@media(prefers-reduced-motion:reduce){.landing-brand-signal,.landing-hero-title span,.landing-hero-lead,.landing-hero-actions,.landing-hero-glow,.landing-preview{animation:none}.landing-preview:hover img{transform:none}}button{font-family:var(--font)}input,select,textarea{font-family:var(--font);width:100%;padding:.55rem .75rem;border-radius:var(--radius-input);border:1px solid var(--border-med);background:var(--surface2);color:var(--text);font-size:.9rem;transition:border-color .15s,box-shadow .15s;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #ff6b351f}.field-label{display:block;font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-dim);margin-bottom:5px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border:none;border-radius:var(--radius-btn);padding:.5rem .95rem;cursor:pointer;font-weight:600;font-size:.875rem;transition:opacity .15s,background .15s,box-shadow .15s}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);color:#0d0d0f;box-shadow:0 2px 8px #ff6b3540}.btn-primary:not(:disabled):hover{background:var(--accent-hover);box-shadow:0 3px 12px #ff6b3559}.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--border-med)}.btn-ghost:not(:disabled):hover{background:var(--surface3);border-color:var(--border-med)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:1.25rem;box-shadow:var(--shadow-sm)}.app-shell{display:flex;height:100vh;overflow:hidden}.sidebar{width:240px;flex-shrink:0;height:100vh;overflow-y:auto;background:var(--surface);border-right:1px solid var(--border);padding:1.25rem 1rem;display:flex;flex-direction:column;z-index:100;transition:transform .25s ease}.sidebar nav a{display:block;padding:.55rem .75rem;border-radius:var(--radius-input);color:var(--text);margin-bottom:.25rem;text-decoration:none}.sidebar nav a:hover,.sidebar nav a.active{background:var(--accent-dim);color:var(--accent)}.main-content{flex:1;min-width:0;min-height:0;padding:1.5rem 2rem;overflow:auto}.main-topbar{display:flex;justify-content:flex-end;margin-bottom:1rem;margin-top:-.25rem}.mobile-topbar,.app-download-banner{display:none}.dash-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:24px}.drawer-backdrop{display:none}@media(max-width:768px){.app-shell{flex-direction:column;height:100dvh}.mobile-topbar{display:flex;align-items:center;gap:10px;padding:.65rem 1rem;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;position:sticky;top:0;z-index:90}.mobile-topbar-title{flex:1;min-width:0}.mobile-hamburger{display:flex;align-items:center;justify-content:center;width:38px;height:38px;background:transparent;border:1px solid var(--border-med);border-radius:var(--radius-btn);color:var(--text);cursor:pointer;padding:0;flex-shrink:0}.mobile-hamburger:hover{background:var(--surface3)}.sidebar{position:fixed;top:0;left:0;height:100dvh;width:260px;transform:translate(-100%);border-right:1px solid var(--border-med);box-shadow:4px 0 24px #00000073;z-index:200;padding-top:env(safe-area-inset-top,1.25rem)}.sidebar.drawer-open{transform:translate(0)}.drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:150;opacity:0;pointer-events:none;transition:opacity .25s ease}.drawer-backdrop.visible{opacity:1;pointer-events:auto}.main-content{padding:1rem;flex:1;overflow:auto}.main-topbar{display:none}.app-download-banner{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border-med);border-radius:var(--radius-card);padding:12px 14px;margin-bottom:16px}.dash-stats-grid,.dash-completeness{display:none}.photos-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.mobile-topbar .credits-pill .credits-label{display:none}}.credits-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 10px 5px 12px;border-radius:999px;cursor:pointer;font-family:inherit;transition:opacity .15s}.credits-pill:hover{opacity:.85}.credits-add-btn{display:inline-flex;align-items:center;background:var(--accent);color:#fff;font-size:.82rem;font-weight:600;padding:4px 11px;border-radius:999px;margin-left:4px;white-space:nowrap}.main-content--photos{display:flex;flex-direction:column;overflow:hidden}.photos-panel{display:flex;flex-direction:column;flex:1;min-height:0}.photos-panel-header{flex-shrink:0}.photos-grid-scroll{flex:1;min-height:0;overflow-y:auto;margin-top:1.5rem;padding-right:.25rem}.photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.badge{display:inline-block;font-size:.75rem;padding:.15rem .45rem;border-radius:999px;background:var(--accent-dim);color:var(--accent)}.share-menu-card{margin-bottom:16px;padding:12px 14px!important}.share-menu-row{display:flex;align-items:center;gap:14px}.share-menu-qr{flex:0 0 auto;background:#fff;padding:6px;border-radius:8px;line-height:0}.share-menu-qr img{display:block;border-radius:4px}.share-menu-qr-placeholder{width:108px;height:108px;background:var(--surface2);border-radius:4px}.share-menu-qr-fallback{display:block;width:108px;font-size:.75rem;color:var(--text-dim);text-align:center;padding:8px}.share-menu-body{flex:1 1 200px;min-width:0}.share-menu-title-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:4px}.share-menu-title{font-size:.95rem}.share-menu-hint{font-size:.78rem;color:var(--text-dim)}.share-menu-link{display:block;font-size:.78rem;color:var(--text-dim)!important;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:8px}.share-menu-link:hover{color:var(--accent)!important}.share-menu-actions{display:flex;flex-wrap:wrap;gap:6px}.upload-zone{border:2px dashed rgba(255,107,53,.35);border-radius:var(--radius-card);padding:1.25rem 1.35rem;background:var(--surface)}.upload-zone-header{margin-bottom:12px}.upload-zone-header strong{display:block;font-size:.95rem;margin-bottom:4px}.upload-zone-header p{margin:0;color:var(--text-dim);font-size:.85rem;line-height:1.45}.file-picker{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.file-picker input[type=file]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.file-picker-btn{display:inline-flex;align-items:center;gap:8px;cursor:pointer;margin:0}.file-picker-btn:has(input:disabled){opacity:.55;cursor:not-allowed}.file-picker-icon{font-size:1.1rem;line-height:1}.file-picker-meta{font-size:.82rem;color:var(--text-dim)}.file-picker-meta strong{color:var(--text);font-weight:600}.toast-fixed{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);z-index:9999;padding:.7rem 1.2rem;border-radius:999px;background:#4ade8026;border:1px solid rgba(74,222,128,.45);color:#4ade80;font-weight:600;font-size:.9rem;white-space:nowrap;box-shadow:0 4px 24px #00000059;animation:toast-in .2s ease}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.toast-fixed.err{background:#f8717126;border-color:#f8717173;color:#f87171}@keyframes typing-bounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-5px);opacity:1}}.typing-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--text-dim);animation:typing-bounce 1.1s infinite ease-in-out}.customer-app .fab-chat{position:fixed;right:1.25rem;bottom:max(1.25rem,env(safe-area-inset-bottom,0px));width:56px;height:56px;border-radius:50%;background:var(--accent);color:#fff;border:none;font-size:1.4rem;cursor:pointer;box-shadow:0 8px 24px #0003;z-index:50;display:flex;align-items:center;justify-content:center;line-height:1}.editor-page-grid{display:grid;grid-template-columns:minmax(280px,340px) 1fr;flex:1;min-height:0;overflow:hidden}.editor-page-grid>*{overflow-y:auto;min-height:0}.editor-page-grid>*:first-child{border-right:1px solid var(--border)}@media(max-width:960px){.editor-page-grid{grid-template-columns:1fr}.editor-page-grid>*:first-child{border-right:none;border-bottom:1px solid var(--border);max-height:45vh}}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:#fff3}.customer-app{--bg: #faf7f2;--surface: #ffffff;--surface2: #f3efe8;--border: rgba(0, 0, 0, .08);--text: #1a1814;--text-dim: #6b6560;position:relative;background:var(--bg);color:var(--text);min-height:100vh}.customer-app input,.customer-app select,.customer-app textarea{font-size:1rem}.chat-page{display:flex;flex-direction:column;min-height:0!important;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;overflow:hidden}.chat-page-head{position:relative;display:flex;align-items:center;padding:.65rem 1rem;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--surface)}.chat-page-messages{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:12px 16px;background:var(--bg)}.chat-page-input{flex-shrink:0;display:flex;gap:8px;padding:12px;padding-bottom:max(12px,env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--surface)}
