:root{--color-primary:#ff570a;--color-primary-light:#ff8a50;--color-primary-hover:#e04b00;--color-primary-active:#b83d00;--color-primary-soft:#ffefe6;--color-secondary:#ffb300;--color-secondary-hover:#ffa000;--color-secondary-active:#ff8f00;--color-secondary-soft:#fff9e6;--color-dark:#585757;--color-dark-hover:#6d6c6c;--color-dark-active:#474646;--color-dark-soft:#f5f5f5;--color-black:#121212;--color-black-hover:#2a2a2a;--color-black-active:#000;--color-black-soft:#efefef;--color-bg-page:#faf8f5;--color-bg-card:#fff;--color-bg-muted:linen;--gradient-brand-primary:linear-gradient(135deg,#ffb300,#ff570a);--gradient-brand-soft:linear-gradient(180deg,#faf8f5,linen);--color-text-primary:#2d2d2e;--color-text-secondary:#6b6a6d;--color-text-muted:#9a999c;--color-text-on-primary:#fff;--color-text-on-secondary:#121212;--color-text-on-dark:#2d2d2e;--color-text-on-black:#faf9f6;--color-border-light:rgba(255,87,10,.06);--color-border-medium:rgba(255,87,10,.12);--color-border-dark:#585757;--color-border-black:#121212;--color-success:#2e7d32;--color-success-soft:#e8f5e9;--color-error:#d32f2f;--color-error-soft:#ffebee;--color-warning:#ed6c02;--color-warning-soft:#fff3e0;--color-info:#0288d1;--color-info-soft:#e1f5fe;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--radius-xs:4px;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-xl:32px;--radius-full:9999px;--font-serif:"Outfit","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-sans:"Outfit","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-size-xs:12px;--line-height-xs:16px;--font-size-sm:14px;--line-height-sm:20px;--font-size-base:16px;--line-height-base:24px;--font-size-lg:18px;--line-height-lg:28px;--font-size-xl:20px;--line-height-xl:30px;--font-size-2xl:24px;--line-height-2xl:34px;--font-size-3xl:32px;--line-height-3xl:42px;--font-size-4xl:40px;--line-height-4xl:50px;--font-size-5xl:48px;--line-height-5xl:58px;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--shadow-sm:0 1px 2px rgba(0,0,0,.01),0 2px 4px rgba(255,87,10,.01);--shadow-md:0 4px 16px -2px rgba(88,87,87,.02),0 2px 6px -1px rgba(255,87,10,.01);--shadow-lg:0 12px 32px -4px rgba(88,87,87,.03),0 4px 12px -2px rgba(255,87,10,.015);--shadow-xl:0 20px 48px -6px rgba(88,87,87,.04),0 6px 16px -4px rgba(255,87,10,.02);--shadow-aura:0 0 24px rgba(255,87,10,.05);--shadow-inset:inset 0 2px 4px 0 rgba(88,87,87,.02);--transition-fast:0.15s cubic-bezier(0.2,0.8,0.2,1);--transition-normal:0.3s cubic-bezier(0.2,0.8,0.2,1);--transition-slow:0.5s cubic-bezier(0.2,0.8,0.2,1);--scale-hover:scale(1.02);--scale-active:scale(0.97);--scale-card-hover:translateY(-4px) scale(1.01)}*{box-sizing:border-box}html{scroll-behavior:smooth}body,html{margin:0;padding:0;background-color:var(--color-bg-page);color:var(--color-text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;transition:background-color var(--transition-normal)}button,input,select,textarea{font-family:inherit}.ff-spin{animation:ff-spin .8s linear infinite}@keyframes ff-spin{to{transform:rotate(1turn)}}.ff-btn{display:inline-flex;align-items:center;justify-content:center;height:44px;padding:0 var(--space-6);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);border:none;cursor:pointer;text-decoration:none;box-sizing:border-box;transition:transform var(--transition-fast),background-color var(--transition-fast),box-shadow var(--transition-fast);-webkit-user-select:none;-moz-user-select:none;user-select:none;letter-spacing:.03em}.ff-btn:hover{transform:var(--scale-hover)}.ff-btn:active{transform:var(--scale-active)}.ff-btn.is-disabled,.ff-btn:disabled{background-color:var(--color-border-light)!important;color:var(--color-text-muted)!important;cursor:not-allowed;transform:none!important;box-shadow:none!important}.ff-btn-dark{background-color:var(--color-dark);color:var(--color-text-on-dark);box-shadow:var(--shadow-sm)}.ff-btn-dark:hover{background-color:var(--color-dark-hover);box-shadow:var(--shadow-md)}.ff-btn-dark:active{background-color:var(--color-dark-active)}.ff-btn-black{background-color:var(--color-black);color:var(--color-text-on-black);box-shadow:var(--shadow-sm)}.ff-btn-black:hover{background-color:var(--color-black-hover);box-shadow:var(--shadow-md)}.ff-btn-black:active{background-color:var(--color-black-active)}.ff-btn-primary{background-color:var(--color-primary);color:var(--color-text-on-primary);box-shadow:0 4px 12px rgba(255,87,10,.18)}.ff-btn-primary:hover{background-color:var(--color-primary-hover);box-shadow:0 6px 16px rgba(255,87,10,.28)}.ff-btn-primary:active{background-color:var(--color-primary-active)}.ff-onboarding-shell{min-height:calc(100vh - 70px);padding:var(--space-12) var(--space-6);display:flex;align-items:center;justify-content:center}.ff-onboarding-panel{width:min(1080px,100%);display:grid;grid-template-columns:.9fr 1.1fr;grid-gap:var(--space-6);gap:var(--space-6);align-items:stretch}.ff-onboarding-card{background:var(--color-bg-card);border:1px solid var(--color-border-medium);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);padding:var(--space-8)}.ff-onboarding-intro{background:linear-gradient(180deg,rgba(255,239,230,.9),hsla(0,0%,100%,.96)),var(--color-bg-card);display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-10)}.ff-onboarding-intro h1{margin:var(--space-6) 0 var(--space-3);font-size:var(--font-size-4xl);line-height:var(--line-height-4xl)}.ff-onboarding-intro p,.ff-onboarding-result span{margin:0;color:var(--color-text-secondary);line-height:var(--line-height-base)}.ff-onboarding-route{display:grid;grid-gap:var(--space-3);gap:var(--space-3);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.ff-onboarding-actions,.ff-onboarding-chips button,.ff-onboarding-route span{display:flex;align-items:center}.ff-onboarding-route span{gap:var(--space-2)}.ff-onboarding-note,.ff-onboarding-section+.ff-onboarding-section{margin-top:var(--space-8)}.ff-onboarding-step{display:inline-flex;margin-bottom:var(--space-2);color:var(--color-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold)}.ff-onboarding-section h2{margin:0 0 var(--space-4);font-size:var(--font-size-xl)}.ff-onboarding-chips{display:flex;flex-wrap:wrap;gap:var(--space-3)}.ff-onboarding-chips button{gap:6px;height:38px;padding:0 var(--space-4);border-radius:var(--radius-full);border:1px solid var(--color-border-medium);background:var(--color-bg-card);color:var(--color-text-secondary);cursor:pointer}.ff-onboarding-chips button.is-selected{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary);font-weight:var(--font-weight-semibold)}.ff-onboarding-note{display:block}.ff-onboarding-note span{display:block;margin-bottom:var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.ff-onboarding-note textarea{width:100%;resize:vertical;border:1px solid var(--color-border-medium);border-radius:var(--radius-sm);padding:var(--space-4);color:var(--color-text-primary);background:var(--color-bg-page);outline:none}.ff-onboarding-note textarea:focus{border-color:var(--color-primary)}.ff-onboarding-error{margin:var(--space-4) 0 0;color:var(--color-error);font-size:var(--font-size-sm)}.ff-onboarding-result{margin-top:var(--space-4);padding:var(--space-4);border-radius:var(--radius-sm);background:var(--color-success-soft);color:var(--color-success)}.ff-onboarding-result span,.ff-onboarding-result strong{display:block}.ff-onboarding-actions{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-8)}@media (max-width:860px){.ff-onboarding-shell{align-items:flex-start;padding:var(--space-6) var(--space-4)}.ff-onboarding-panel{grid-template-columns:1fr}.ff-onboarding-card{padding:var(--space-6)}.ff-onboarding-intro h1{font-size:var(--font-size-3xl);line-height:var(--line-height-3xl)}.ff-onboarding-actions{justify-content:stretch;flex-direction:column-reverse}.ff-onboarding-actions .ff-btn{width:100%}}.ff-login-shell{min-height:calc(100vh - 70px);display:flex;align-items:center;justify-content:center;padding:var(--space-8) var(--space-4)}.ff-login-card{width:min(420px,100%);display:grid;grid-gap:var(--space-4);gap:var(--space-4);background:var(--color-bg-card);border:1px solid var(--color-border-medium);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);padding:var(--space-8)}.ff-login-card h1{margin:var(--space-2) 0 0;font-size:var(--font-size-3xl);line-height:var(--line-height-3xl)}.ff-login-card p{margin:0;color:var(--color-text-secondary);line-height:var(--line-height-base)}.ff-login-field{display:grid;grid-gap:var(--space-2);gap:var(--space-2)}.ff-login-field span{display:flex;align-items:center;gap:6px;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.ff-login-field input{height:44px;border:1px solid var(--color-border-medium);border-radius:var(--radius-sm);padding:0 var(--space-4);background:var(--color-bg-page);color:var(--color-text-primary);outline:none}.ff-login-field input:focus{border-color:var(--color-primary)}.ff-login-error{color:var(--color-error)!important;font-size:var(--font-size-sm)}.ff-btn-secondary{background-color:var(--color-secondary);color:var(--color-text-on-secondary);box-shadow:0 4px 12px rgba(255,179,0,.15)}.ff-btn-secondary:hover{background-color:var(--color-secondary-hover);box-shadow:0 6px 16px rgba(255,179,0,.25)}.ff-btn-secondary:active{background-color:var(--color-secondary-active)}.ff-btn-outline{background-color:var(--color-bg-card);color:var(--color-text-primary);border:1px solid var(--color-border-medium);border-radius:var(--radius-md);height:44px}.ff-btn-outline:hover{border-color:var(--color-text-primary);box-shadow:var(--shadow-sm)}.ff-btn-outline:active{background-color:var(--color-dark-soft)}.ff-card{border-radius:var(--radius-lg);padding:var(--space-8);box-shadow:var(--shadow-md);transition:transform var(--transition-normal),box-shadow var(--transition-normal),border-color var(--transition-normal),background-color var(--transition-normal);box-sizing:border-box;overflow:hidden}.ff-card-has-photo{padding-top:0}.ff-card-primary{background-color:var(--color-primary);color:var(--color-text-on-primary);border:1px solid var(--color-primary-hover)}.ff-card-primary h1,.ff-card-primary h2,.ff-card-primary h3,.ff-card-primary h4{color:var(--color-text-on-primary)!important}.ff-card-primary div,.ff-card-primary p,.ff-card-primary span{color:#ffefe6!important}.ff-card-secondary{background-color:var(--color-bg-muted);color:var(--color-text-primary);border:1px solid var(--color-border-medium)}.ff-card-secondary h1,.ff-card-secondary h2,.ff-card-secondary h3,.ff-card-secondary h4{color:var(--color-text-primary)!important}.ff-card-white{background-color:var(--color-bg-card);color:var(--color-text-primary);border:1px solid var(--color-border-light)}.ff-card-interactive{cursor:pointer}.ff-card-interactive:hover{transform:var(--scale-card-hover);box-shadow:var(--shadow-lg);border-color:var(--color-border-medium)}.ff-card-primary.ff-card-interactive:hover{box-shadow:0 20px 40px rgba(255,87,10,.25);border-color:var(--color-primary-light)}.ff-input-wrapper{display:flex;flex-direction:column;gap:var(--space-2)}.ff-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);letter-spacing:.05em;text-transform:uppercase}.ff-input{height:44px;padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border-medium);background-color:var(--color-bg-card);font-size:var(--font-size-sm);color:var(--color-text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);box-sizing:border-box;outline:none}.ff-input::placeholder{color:var(--color-text-muted)}.ff-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(255,87,10,.12)}.ff-input.is-error{border-color:var(--color-error);background-color:var(--color-error-soft)}.ff-error-text{font-size:var(--font-size-xs);color:var(--color-error);margin-top:2px}.ff-badge,.ff-error-text{font-weight:var(--font-weight-semibold)}.ff-badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:11px;border:1px solid transparent;white-space:nowrap}.ff-badge-primary{background:var(--color-primary-soft);color:var(--color-primary);border-color:rgba(255,87,10,.15)}.ff-badge-success{background:var(--color-success-soft);color:var(--color-success);border-color:rgba(46,125,50,.12)}.ff-badge-error{background:var(--color-error-soft);color:var(--color-error);border-color:rgba(211,47,47,.12)}.ff-badge-warning{background:var(--color-warning-soft);color:var(--color-warning);border-color:rgba(237,108,2,.12)}.ff-badge-info{background:var(--color-info-soft);color:var(--color-info);border-color:rgba(2,136,209,.12)}.panel{background:var(--color-bg-card);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-md)}.grid{display:grid;grid-template-columns:1.15fr 1fr;grid-gap:var(--space-6);gap:var(--space-6)}@media (max-width:960px){.grid{grid-template-columns:1fr}}.form-row{display:flex;flex-direction:column;gap:var(--space-2)}.form-row label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase}.form-row input{height:44px;padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border-medium);background-color:var(--color-bg-card);font-size:var(--font-size-sm);color:var(--color-text-primary);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-row input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(255,87,10,.12)}.form-row button[type=submit],.plan button{height:44px;border:none;border-radius:var(--radius-md);padding:0 var(--space-6);cursor:pointer;color:var(--color-text-on-primary);background:var(--color-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);transition:transform var(--transition-fast),background-color var(--transition-fast),box-shadow var(--transition-fast);box-shadow:0 4px 12px rgba(255,87,10,.18);width:100%}.form-row button[type=submit]:hover,.plan button:hover{background-color:var(--color-primary-hover);transform:var(--scale-hover);box-shadow:0 6px 16px rgba(255,87,10,.28)}.form-row button[type=submit]:active,.plan button:active{transform:var(--scale-active)}.form-row button[type=submit]:disabled,.plan button:disabled{background-color:var(--color-border-light)!important;color:var(--color-text-muted)!important;cursor:not-allowed;transform:none!important;box-shadow:none!important}.map-wrap{position:relative;height:320px;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border-light);background:var(--color-bg-muted)}.placeholder{height:100%;display:grid;place-items:center;color:var(--color-text-muted);font-size:var(--font-size-sm);padding:var(--space-6);text-align:center}.results{margin-top:var(--space-5);display:grid;grid-gap:var(--space-4);gap:var(--space-4)}.card{border:1px solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-4);background:var(--color-bg-card);box-shadow:var(--shadow-sm);transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.card h4{margin:0 0 var(--space-1) 0;font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.card-button{border:0;width:100%;color:inherit;background:transparent;text-align:left;cursor:pointer;padding:0;outline:none}.card:has(.card-button:focus-visible),.card:has(.card-button:hover){transform:var(--scale-card-hover);box-shadow:var(--shadow-md);border-color:var(--color-border-medium)}.meta{color:var(--color-text-secondary);line-height:var(--line-height-sm)}.address-line,.meta{margin-top:var(--space-2);font-size:var(--font-size-sm)}.address-line{background:var(--color-primary-soft);color:var(--color-primary);border:1px solid rgba(255,87,10,.15);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-weight:var(--font-weight-semibold)}.tag{display:inline-block;margin-right:var(--space-2);margin-top:var(--space-2);padding:2px var(--space-3);border-radius:var(--radius-full);background:var(--color-dark-soft);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.plan{margin-top:var(--space-5);border-top:1px dashed var(--color-border-medium);padding-top:var(--space-4)}.plan-step{padding:var(--space-3) 0;border-bottom:1px dashed var(--color-border-light);color:var(--color-text-primary)}.plan-step:last-child{border-bottom:0}.suggest-wrap{position:relative}.suggest-list{list-style:none;position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:30;background:var(--color-bg-card);border:1px solid var(--color-border-medium);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-height:220px;overflow:auto}.suggest-list,.suggest-row{margin:0;padding:0}.suggest-item{width:100%;text-align:left;border:0;border-bottom:1px solid var(--color-border-light);background:var(--color-bg-card);color:var(--color-text-primary);border-radius:0;padding:var(--space-3) var(--space-4);cursor:pointer;outline:none;transition:background-color var(--transition-fast)}.suggest-item-active{background-color:var(--color-primary-soft);color:var(--color-primary)}.suggest-item:last-child{border-bottom:0}.suggest-item strong{display:block;font-weight:var(--font-weight-bold)}.suggest-item span{display:block;margin-top:var(--space-1);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.feedback-actions{display:flex;gap:var(--space-3);margin-top:var(--space-3)}.btn-ghost{background:var(--color-bg-card);color:var(--color-dark);border:1px solid var(--color-border-medium);border-radius:var(--radius-md);font-weight:var(--font-weight-semibold);flex:1 1}.btn-ghost:hover{border-color:var(--color-text-primary);background-color:var(--color-dark-soft)}.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:var(--space-6);z-index:80;padding:var(--space-3) var(--space-6);background:var(--color-black);color:var(--color-text-on-black);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);box-shadow:var(--shadow-xl)}.detail-mask{position:fixed;inset:0;z-index:10000;background:hsla(0,0%,7%,.45);display:grid;place-items:center;padding:var(--space-4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.detail-modal{width:min(620px,100%);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:var(--space-6);position:relative}.detail-close,.detail-modal{background:var(--color-bg-card);border:1px solid var(--color-border-medium)}.detail-close{position:absolute;right:var(--space-4);top:var(--space-4);color:var(--color-text-secondary);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);font-weight:var(--font-weight-semibold);cursor:pointer;font-size:var(--font-size-xs);transition:all var(--transition-fast)}.detail-close:hover{border-color:var(--color-text-primary);color:var(--color-text-primary)}.detail-modal img{width:100%;height:240px;object-fit:cover;border-radius:var(--radius-md);margin-bottom:var(--space-4)}.detail-modal h3{margin:0 0 var(--space-2) 0;font-weight:var(--font-weight-bold);font-size:var(--font-size-xl);color:var(--color-text-primary)}.detail-modal p{margin:var(--space-2) 0;color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-sm)}.ff-play-btn{transition:transform var(--transition-fast)!important;cursor:pointer}.ff-play-btn:hover{transform:scale(1.1)!important}.bg-brand-gradient{background:var(--gradient-brand-primary);color:var(--color-text-on-primary)}.bg-brand-soft{background:var(--gradient-brand-soft)}.bg-brand-soft-orange{background-color:var(--color-primary-soft)}.bg-brand-soft-yellow{background-color:var(--color-secondary-soft)}.ff-stepper-card{background-color:var(--color-primary-soft);border:1px solid var(--color-border-medium);border-radius:var(--radius-lg);padding:var(--space-8);box-shadow:var(--shadow-md)}.ff-stepper-pulse{width:10px;height:10px;border-radius:var(--radius-full);background-color:var(--color-primary);display:inline-block;position:relative;box-shadow:0 0 8px var(--color-primary);animation:stepper-pulse-anim 1.6s ease-in-out infinite}@keyframes stepper-pulse-anim{0%,to{transform:scale(.9);box-shadow:0 0 4px var(--color-primary);background-color:var(--color-primary)}50%{transform:scale(1.25);box-shadow:0 0 16px var(--color-secondary);background-color:var(--color-secondary)}}.ff-stepper-check{color:var(--color-primary);font-weight:700;font-size:var(--font-size-sm);display:inline-block}.ff-stepper-dot-inactive{width:10px;height:10px;border-radius:var(--radius-full);background-color:var(--color-border-medium);display:inline-block}.ff-stepper-progress-track{width:100%;height:3px;background-color:rgba(88,87,87,.08);border-radius:var(--radius-full);overflow:hidden;margin-top:var(--space-6);position:relative}.ff-stepper-progress-bar{height:100%;background:var(--gradient-brand-primary);border-radius:var(--radius-full);transition:width .6s cubic-bezier(.2,.8,.2,1);width:0}.ff-detail-modal-mask{position:fixed;inset:0;background-color:hsla(0,0%,7%,.25);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10000;opacity:0;visibility:hidden;transition:opacity var(--transition-normal),visibility var(--transition-normal)}.ff-detail-modal-mask.is-open{opacity:1;visibility:visible}.ff-detail-modal{position:fixed;top:50%;left:50%;width:min(760px,calc(100vw - 32px));max-height:min(86vh,820px);background-color:var(--color-bg-page);border:1px solid var(--color-border-medium);border-radius:22px;box-shadow:var(--shadow-xl);z-index:10001;opacity:0;visibility:hidden;transform:translate(-50%,-46%) scale(.98);transition:opacity var(--transition-normal),visibility var(--transition-normal),transform var(--transition-normal);display:flex;flex-direction:column;overflow:hidden}.ff-detail-modal.is-open{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1)}.ff-detail-modal-header{padding:var(--space-6);border-bottom:1px solid var(--color-border-light);display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);flex:0 0 auto}.ff-detail-modal-body{padding:var(--space-6);overflow-y:auto;flex:1 1;display:flex;flex-direction:column;gap:var(--space-6)}.ff-detail-modal-body>*{flex-shrink:0}@media (max-width:640px){.ff-detail-modal{width:calc(100vw - 20px);max-height:90vh;border-radius:18px}.ff-detail-modal-body,.ff-detail-modal-header{padding:var(--space-4)}.ff-detail-modal-photo-carousel{max-height:320px}}.ff-search-hub{max-width:680px;margin:var(--space-8) auto;transition:all var(--transition-normal)}.ff-search-hub.is-compact{max-width:100%;margin:0 0 var(--space-6) 0}.ff-search-hub-wrapper{max-width:680px;margin:48px auto}.ff-search-header{text-align:center;margin-bottom:40px}.ff-search-header h1{font-size:32px;font-weight:800;color:var(--color-text-primary);margin:0 0 12px;letter-spacing:-.5px}.ff-search-header p{font-size:14px;color:var(--color-text-secondary);margin:0}.ff-capsule-container{position:relative;background:var(--color-bg-card);border:1.5px solid rgba(255,87,10,.45);border-radius:28px;padding:24px;box-shadow:var(--shadow-lg);transition:all var(--transition-normal)}.ff-capsule-container:focus-within,.ff-capsule-container:hover{box-shadow:0 0 16px rgba(255,87,10,.12),var(--shadow-xl);border-color:var(--color-primary)}.ff-textarea-input{width:100%;border:0!important;background:transparent!important;resize:none!important;outline:none!important;font-size:16px;color:var(--color-text-primary);line-height:1.6;padding:0!important;margin-bottom:12px;min-height:80px;box-shadow:none!important}.ff-textarea-input::placeholder{color:var(--color-text-muted)}.ff-divider{border-top:1px solid var(--color-border-light);margin:12px 0 20px}.ff-control-bar{display:flex;align-items:center;justify-content:space-between;gap:16px}@media (max-width:640px){.ff-control-bar{flex-direction:column;align-items:stretch}}.ff-location-box{display:flex;align-items:center;gap:8px;background-color:var(--color-bg-page);border:1px solid var(--color-border-medium);border-radius:14px;padding:8px 16px;flex:1 1;transition:all var(--transition-fast)}.ff-location-box:focus-within,.ff-location-box:hover{border-color:var(--color-primary);background-color:var(--color-bg-card);box-shadow:0 0 0 3px rgba(255,87,10,.08)}.ff-location-icon{width:16px;height:16px;color:var(--color-primary);flex-shrink:0}.ff-location-input{width:100%;border:0!important;background:transparent!important;outline:none!important;font-size:13px;font-weight:600;color:var(--color-text-primary);padding:0!important;box-shadow:none!important}.ff-location-input::placeholder{color:var(--color-text-muted)}.location-picker-root{position:relative;flex:1 1;min-width:0}.location-picker-panel{position:absolute;left:0;right:0;top:calc(100% + 10px);z-index:50;display:grid;grid-gap:14px;gap:14px;max-height:min(480px,calc(100vh - 220px));overflow:auto;padding:14px;background:hsla(0,0%,100%,.98);border:1px solid hsla(41,18%,80%,.9);border-radius:18px;box-shadow:0 24px 60px rgba(88,87,87,.16),0 4px 12px rgba(255,87,10,.06)}.location-picker-section{display:grid;grid-gap:10px;gap:10px}.location-picker-section+.location-picker-section{padding-top:14px;border-top:1px solid var(--color-border-light)}.location-picker-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.location-picker-title span{color:var(--color-text-primary);font-size:12px;font-weight:800}.location-picker-title small{color:var(--color-text-muted);font-size:11px;font-weight:600}.location-current-button{display:flex;align-items:center;gap:10px;width:100%;min-height:46px;padding:10px 12px;border:1px dashed rgba(255,87,10,.42);border-radius:14px;background:linear-gradient(180deg,#fffaf6,#fff5ec);color:var(--color-primary);cursor:pointer;font-size:13px;font-weight:800;text-align:left;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.location-current-button:hover{border-color:var(--color-primary);box-shadow:0 10px 24px rgba(255,87,10,.1);transform:translateY(-1px)}.location-current-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999px;background:var(--color-primary);color:var(--color-text-on-primary);font-size:14px;flex:0 0 auto}.location-shortcut-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.location-shortcut-card{min-height:58px;padding:9px 10px;border:1px solid var(--color-border-light);border-radius:12px;background:var(--color-bg-card);color:var(--color-text-primary);cursor:pointer;text-align:left;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast),background-color var(--transition-fast)}.location-shortcut-card:hover{background:var(--color-secondary-soft);border-color:rgba(255,179,0,.55);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.location-shortcut-card strong{display:block;color:var(--color-text-primary);font-size:12px;font-weight:800}.location-shortcut-card span{display:block;margin-top:3px;color:var(--color-text-secondary);font-size:10px;font-weight:600;line-height:1.35}.location-suggestion-list{display:grid;grid-gap:6px;gap:6px;list-style:none;margin:0;padding:0}.location-suggestion-row{margin:0;padding:0}.location-suggestion-item{display:flex;align-items:flex-start;gap:10px;width:100%;padding:10px;border:0;border-radius:12px;background:transparent;color:var(--color-text-primary);cursor:pointer;text-align:left;transition:background-color var(--transition-fast)}.location-suggestion-item:hover{background:var(--color-primary-soft)}.location-suggestion-pin{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-top:1px;border-radius:999px;background:var(--color-bg-page);color:var(--color-primary);font-size:12px;flex:0 0 auto}.location-suggestion-copy{min-width:0}.location-suggestion-copy strong{display:block;color:var(--color-text-primary);font-size:13px;font-weight:800}.location-suggestion-copy span{display:block;margin-top:2px;overflow:hidden;color:var(--color-text-secondary);font-size:11px;font-weight:600;line-height:1.45;text-overflow:ellipsis;white-space:nowrap}.location-suggestion-empty{padding:14px 10px;border-radius:12px;background:var(--color-bg-page);color:var(--color-text-muted);font-size:12px;font-weight:600;text-align:center}@media (max-width:640px){.location-picker-panel{max-height:420px}.location-picker-title{align-items:flex-start;flex-direction:column;gap:2px}.location-shortcut-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.ff-pill-wrapper{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;margin-top:24px;padding:0 8px}.ff-pill-btn{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 16px;border-radius:999px;border:1px solid var(--color-border-medium);background:var(--color-bg-card);color:var(--color-text-secondary);font-size:12px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.ff-pill-btn:hover{color:var(--color-primary);border-color:var(--color-primary-light);background:var(--color-primary-soft);transform:translateY(-1px)}.ff-compact-bar{background:var(--color-bg-card);border:1px solid var(--color-border-medium);border-radius:20px;padding:16px 20px;display:flex;justify-content:space-between;align-items:center;gap:16px;opacity:.9;box-shadow:var(--shadow-sm)}@media (max-width:640px){.ff-compact-bar{flex-direction:column;align-items:flex-start}}.ff-compact-info{flex:1 1;min-width:0;width:100%}.ff-compact-loc{font-size:12px;font-weight:700;color:var(--color-primary);display:flex;align-items:center;gap:4px;margin-bottom:4px}.ff-compact-query{font-size:14px;font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}.ff-conversation-thread{display:grid;grid-gap:10px;gap:10px;padding:4px 0}.ff-conversation-message{display:grid;grid-template-columns:42px minmax(0,1fr);grid-gap:10px;gap:10px;align-items:start;padding:12px 14px;border:1px solid var(--color-border-light);border-radius:14px;background:var(--color-bg-card)}.ff-conversation-message.is-user{background:var(--color-primary-soft);border-color:rgba(255,87,10,.12)}.ff-conversation-role{color:var(--color-primary);font-size:11px;font-weight:800;letter-spacing:.04em}.ff-conversation-message p{margin:0;color:var(--color-text-primary);line-height:1.7;white-space:pre-wrap}.ff-experience-page{height:100vh;background:var(--color-bg-page);padding:70px 0 0}.ff-experience-frame{width:100%;max-width:none;margin:0}.ff-experience-layout{display:grid;grid-template-columns:310px minmax(0,1fr);grid-gap:0;gap:0;height:calc(100vh - 70px);min-height:0;align-items:stretch;transition:grid-template-columns var(--transition-normal)}.ff-experience-layout.is-sidebar-collapsed{grid-template-columns:64px minmax(0,1fr)}.ff-experience-main{min-width:0;min-height:0;position:relative;overflow-y:auto;background:hsla(0,0%,100%,.34)}.ff-experience-main.is-chat-mode{overflow:hidden}.ff-experience-main.is-chat-mode>.ff-decision-content{height:100%}.ff-session-sidebar{position:relative;height:calc(100vh - 70px);display:flex;flex-direction:column;gap:14px;min-height:calc(100vh - 70px);padding:26px 16px;border-right:1px solid rgba(75,58,45,.1);background:hsla(34,33%,96%,.82);transition:padding var(--transition-normal)}.ff-session-brand{display:flex;align-items:center;gap:8px;padding:4px 8px 8px;color:var(--color-text-primary);font-weight:800;font-size:15px}.ff-session-brand svg{color:var(--color-primary)}.ff-session-collapse-toggle{position:absolute;z-index:1;top:18px;right:-14px;display:grid;width:28px;height:28px;place-items:center;border:1px solid rgba(75,58,45,.14);border-radius:50%;color:var(--color-text-secondary);background:var(--color-bg-card);box-shadow:var(--shadow-sm);cursor:pointer}.ff-session-collapse-toggle:hover{color:var(--color-primary);border-color:rgba(255,87,10,.3)}.ff-session-new{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:1px solid rgba(255,87,10,.28);border-radius:12px;color:var(--color-primary);background:hsla(0,0%,100%,.8);font:inherit;font-size:13px;font-weight:700;cursor:pointer}.ff-session-new:hover{background:var(--color-primary-soft)}.ff-session-heading{padding:6px 8px 0;color:var(--color-text-muted);font-size:11px;font-weight:700}.ff-session-list{display:grid;flex:1 1;align-content:start;grid-auto-rows:min-content;grid-gap:4px;gap:4px;overflow-y:auto;min-height:0}.ff-session-item{display:flex;align-items:center;gap:8px;min-width:0;padding:10px 9px;border:0;border-radius:10px;color:var(--color-text-secondary);background:transparent;font:inherit;font-size:12px;text-align:left;cursor:pointer}.ff-session-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff-session-item.is-active,.ff-session-item:hover{color:var(--color-text-primary);background:hsla(32,26%,87%,.8)}.ff-session-item.is-active{font-weight:700}.ff-session-empty{padding:8px;line-height:1.6}.ff-session-empty,.ff-session-footer{color:var(--color-text-muted);font-size:11px}.ff-session-footer{display:flex;align-items:center;gap:7px;margin-top:auto;padding:14px 8px 2px;border-top:1px solid rgba(75,58,45,.08)}.ff-session-mobile-toggle{display:none}.ff-experience-layout.is-sidebar-collapsed .ff-session-sidebar{align-items:center;padding:26px 10px}.ff-experience-layout.is-sidebar-collapsed .ff-session-brand{padding-inline:0}.ff-experience-layout.is-sidebar-collapsed .ff-session-brand span,.ff-experience-layout.is-sidebar-collapsed .ff-session-empty,.ff-experience-layout.is-sidebar-collapsed .ff-session-footer,.ff-experience-layout.is-sidebar-collapsed .ff-session-heading,.ff-experience-layout.is-sidebar-collapsed .ff-session-item span,.ff-experience-layout.is-sidebar-collapsed .ff-session-new-label{display:none}.ff-experience-layout.is-sidebar-collapsed .ff-session-new{width:42px;justify-content:center;padding:10px 0}.ff-experience-layout.is-sidebar-collapsed .ff-session-list{width:100%}.ff-experience-layout.is-sidebar-collapsed .ff-session-item{justify-content:center;padding-inline:0}.ff-chat-shell{width:min(920px,calc(100% - 64px));height:100%;margin:0 auto;display:grid;grid-template-rows:minmax(0,1fr) auto;grid-gap:16px;gap:16px;padding:8px 0 16px}.ff-chat-scroll{display:grid;min-height:0;grid-gap:22px;gap:22px;overflow-y:auto;overscroll-behavior:contain;padding:0 0 28px}.ff-legacy-result-view{display:none!important}.ff-chat-context{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px;border:1px solid rgba(255,87,10,.14);border-radius:22px;background:hsla(0,0%,100%,.88);box-shadow:0 8px 30px rgba(255,87,10,.06)}.ff-chat-context>div:first-child{min-width:0;display:grid;grid-gap:6px;gap:6px}.ff-chat-context strong{overflow:hidden;color:var(--color-text-primary);font-size:15px;text-overflow:ellipsis;white-space:nowrap}.ff-chat-composer-footer span,.ff-chat-eyebrow,.ff-chat-location{display:inline-flex;align-items:center;gap:6px;color:var(--color-primary);font-size:11px;font-weight:700}.ff-chat-location{flex:0 0 auto;color:var(--color-text-secondary);font-weight:600}.ff-chat-location span{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff-chat-location button{border:0;padding:0;color:var(--color-primary);background:transparent;cursor:pointer;font:inherit}.ff-chat-messages{display:grid;grid-gap:22px;gap:22px;min-height:0;padding:10px 4px}.ff-chat-message{display:flex;align-items:flex-start;gap:10px;animation:ff-chat-in .28s ease both}.ff-chat-message.is-user{flex-direction:row-reverse}.ff-chat-avatar{display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;border-radius:10px;color:var(--color-primary);background:var(--color-primary-soft);font-size:11px;font-weight:800}.ff-chat-message.is-user .ff-chat-avatar{color:#fff;background:var(--color-primary)}.ff-chat-bubble{max-width:min(620px,84%);padding:13px 16px;border:1px solid rgba(255,87,10,.08);border-radius:4px 18px 18px 18px;background:#fff;box-shadow:0 5px 22px rgba(88,87,87,.05)}.ff-chat-message.is-user .ff-chat-bubble{border-color:rgba(255,87,10,.16);border-radius:18px 4px 18px 18px;background:var(--color-primary-soft)}.ff-chat-role{display:block;margin-bottom:5px;color:var(--color-primary);font-size:10px;font-weight:800;letter-spacing:.08em}.ff-chat-bubble p{margin:0;color:var(--color-text-primary);font-size:15px;line-height:1.8;white-space:pre-wrap}.ff-chat-cursor{display:inline-block;width:2px;height:18px;vertical-align:-3px;background:var(--color-primary);animation:ff-chat-blink .8s steps(2,jump-none) infinite}.ff-chat-status{display:flex;align-items:center;gap:9px;padding-left:40px;color:var(--color-text-muted);font-size:12px}.ff-chat-dots{display:inline-flex;gap:3px}.ff-chat-dots i{width:5px;height:5px;border-radius:50%;background:var(--color-primary-light);animation:ff-chat-dot 1s ease-in-out infinite}.ff-chat-dots i:nth-child(2){animation-delay:.15s}.ff-chat-dots i:nth-child(3){animation-delay:.3s}.ff-chat-results{display:grid;grid-gap:12px;gap:12px;padding:4px 0}.ff-chat-results-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:4px 2px}.ff-chat-results-heading>div{display:grid;grid-gap:5px;gap:5px}.ff-chat-results-heading strong{color:var(--color-text-primary);font-size:15px}.ff-chat-results-heading>span{color:var(--color-text-muted);font-size:11px;font-weight:700}.ff-chat-place-list{display:grid;grid-gap:10px;gap:10px}.ff-chat-place{display:grid;grid-template-columns:38px minmax(0,1fr) auto;grid-gap:12px;gap:12px;width:100%;padding:15px 16px;border:1px solid rgba(255,87,10,.1);border-radius:18px;color:inherit;text-align:left;background:hsla(0,0%,100%,.92);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.ff-chat-place:focus-visible,.ff-chat-place:hover{border-color:rgba(255,87,10,.32);box-shadow:0 8px 24px rgba(255,87,10,.08);outline:none;transform:translateY(-2px)}.ff-chat-place.is-featured{border-color:rgba(255,87,10,.3);background:var(--color-primary-soft)}.ff-chat-place-index{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;color:var(--color-primary);background:rgba(255,87,10,.1);font-size:12px;font-weight:800}.ff-chat-place-copy{display:grid;min-width:0;grid-gap:4px;gap:4px}.ff-chat-place-copy small,.ff-chat-place-kicker{color:var(--color-primary);font-size:10px;font-weight:800}.ff-chat-place-copy strong{overflow:hidden;color:var(--color-text-primary);font-size:15px;text-overflow:ellipsis;white-space:nowrap}.ff-chat-place-copy>span:not(.ff-chat-place-kicker){display:-webkit-box;overflow:hidden;color:var(--color-text-secondary);font-size:12px;line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:2}.ff-chat-place-copy small{color:var(--color-text-muted);font-weight:600}.ff-chat-place-arrow{align-self:center;color:var(--color-primary);font-size:11px;font-weight:800;white-space:nowrap}.ff-chat-place-arrow span{margin-left:4px;font-size:16px}.ff-chat-composer{position:relative;z-index:1;width:100%;overflow:hidden;border:1px solid rgba(255,87,10,.24);border-radius:20px;background:#fff;box-shadow:0 10px 34px rgba(255,87,10,.08)}.ff-chat-composer textarea{display:block;width:100%;max-height:180px;min-height:76px;resize:none;border:0;outline:0;padding:18px 20px 10px;color:var(--color-text-primary);background:transparent;font:inherit;line-height:1.6}.ff-chat-composer textarea::placeholder{color:var(--color-text-muted)}.ff-chat-composer-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px 12px 20px}.ff-chat-composer-footer span{color:var(--color-text-muted);font-weight:600}.ff-chat-composer-footer .ff-btn{height:36px;padding:0 16px}.ff-chat-location-alert{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 15px;border:1px solid rgba(255,179,0,.3);border-radius:14px;color:var(--color-text-secondary);background:var(--color-secondary-soft);font-size:12px}.ff-chat-location-alert span{display:inline-flex;align-items:center;gap:7px}.ff-chat-location-alert .ff-btn{height:30px;padding:0 11px;font-size:11px}@keyframes ff-chat-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes ff-chat-blink{50%{opacity:0}}@keyframes ff-chat-dot{0%,60%,to{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}@media (max-width:640px){.ff-experience-page{height:auto;min-height:100vh}.ff-experience-layout{display:block;height:auto;min-height:auto}.ff-experience-layout.is-sidebar-collapsed{display:block}.ff-session-sidebar{position:fixed;z-index:10010;inset:0 auto 0 0;width:min(82vw,280px);height:auto;min-height:100vh;transform:translateX(-105%);transition:transform .2s ease;box-shadow:14px 0 35px rgba(40,30,20,.12)}.ff-experience-layout.is-sidebar-open .ff-session-sidebar{transform:translateX(0)}.ff-session-collapse-toggle{display:none}.ff-experience-layout.is-sidebar-collapsed .ff-session-sidebar{align-items:stretch;padding:26px 16px}.ff-experience-layout.is-sidebar-collapsed .ff-session-brand{padding-inline:8px}.ff-experience-layout.is-sidebar-collapsed .ff-session-brand span,.ff-experience-layout.is-sidebar-collapsed .ff-session-empty,.ff-experience-layout.is-sidebar-collapsed .ff-session-footer,.ff-experience-layout.is-sidebar-collapsed .ff-session-heading,.ff-experience-layout.is-sidebar-collapsed .ff-session-item span,.ff-experience-layout.is-sidebar-collapsed .ff-session-new-label{display:initial}.ff-experience-layout.is-sidebar-collapsed .ff-session-new{width:100%;justify-content:flex-start;padding:10px 12px}.ff-experience-layout.is-sidebar-collapsed .ff-session-item{justify-content:flex-start;padding-inline:9px}.ff-session-mobile-toggle{display:inline-flex;position:absolute;z-index:2;top:8px;left:8px;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid rgba(75,58,45,.12);border-radius:10px;color:var(--color-text-secondary);background:hsla(0,0%,100%,.88)}.ff-chat-context{align-items:flex-start;flex-direction:column;padding:16px}.ff-experience-main.is-chat-mode{overflow:visible}.ff-chat-shell{width:calc(100% - 28px);height:auto;padding-top:48px}.ff-chat-scroll{overflow:visible}.ff-chat-composer{position:static;width:auto}.ff-chat-location{width:100%}.ff-chat-location span{flex:1 1;max-width:none}.ff-chat-bubble{max-width:88%}.ff-chat-place{grid-template-columns:32px minmax(0,1fr);padding:13px}.ff-chat-place-index{width:28px;height:28px}.ff-chat-place-arrow{display:none}.ff-chat-message{gap:8px}.ff-chat-bubble{max-width:calc(100% - 40px);padding:12px 14px}.ff-chat-bubble p{font-size:14px;line-height:1.7}.ff-chat-status{padding-left:36px}.ff-chat-composer{position:-webkit-sticky;position:sticky;bottom:calc(8px + env(safe-area-inset-bottom));width:calc(100% + 8px);margin-left:-4px;border-radius:16px}.ff-chat-composer textarea{min-height:64px;padding:14px 15px 8px}.ff-chat-composer-footer{align-items:stretch;flex-direction:column;gap:8px;padding:6px 10px calc(10px + env(safe-area-inset-bottom))}.ff-chat-composer-footer .ff-btn{width:100%;height:42px}.ff-chat-composer-footer span{justify-content:center}.ff-experience-layout.is-sidebar-open:after{content:"";position:fixed;z-index:10009;inset:0;background:rgba(24,18,14,.28)}}@media (max-width:860px){.ff-home-hero-grid{grid-template-columns:1fr!important}.hero-visual-wrapper{height:320px!important}}@media (max-width:640px){.ff-navbar{padding-inline:16px!important}.ff-navbar>div:first-child{min-width:0;gap:6px!important;font-size:16px!important}.ff-navbar>div:first-child>span:last-child{display:none}.ff-navbar>div:last-child .ff-btn{height:40px!important;padding-inline:12px!important}.ff-home-hero-grid{gap:28px!important;padding-inline:16px!important}.hero-visual-wrapper{height:280px!important;border-radius:18px!important}.ff-search-hub-wrapper{margin:28px 16px}.ff-search-header{margin-bottom:28px}.ff-search-header h1{font-size:28px;line-height:1.25}.ff-search-header p{line-height:1.7}.ff-capsule-container{padding:16px;border-radius:22px}.ff-textarea-input{min-height:96px}.ff-control-bar{gap:10px}.ff-control-bar>.ff-btn{width:100%;height:44px!important}.ff-pill-wrapper{justify-content:flex-start;gap:8px;margin-top:18px;padding-inline:0}.ff-pill-btn{min-height:40px;height:auto;padding:9px 12px}.ff-detail-modal-footer{flex-direction:column;align-items:stretch}.ff-detail-modal-footer .ff-btn{width:100%}}.ff-system-action-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid rgba(255,179,0,.35);border-radius:12px;background:var(--color-secondary-soft);color:var(--color-text-secondary);font-size:12px}.ff-system-action-row .ff-btn{height:32px;padding:0 12px;font-size:11px;flex:0 0 auto}.ff-diagnostic-panel-compact{margin-top:4px}.ff-stepper-title-box{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.ff-stepper-flow{display:flex;flex-direction:column;gap:20px;position:relative;padding-left:16px;margin-left:8px}.ff-stepper-flow:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:2px;background-color:rgba(255,87,10,.1)}.ff-stepper-step{justify-content:space-between;transition:all var(--transition-normal)}.ff-step-left,.ff-stepper-step{display:flex;align-items:center}.ff-step-left{gap:12px}.ff-step-dot-wrapper{width:20px;display:flex;justify-content:center;align-items:center;position:relative;z-index:2}.ff-step-label{font-size:14px;color:var(--color-text-secondary)}.ff-step-label.is-active{font-weight:700;color:var(--color-text-primary)}.ff-step-right{font-size:12px;color:var(--color-text-muted)}.ff-step-right .is-completed{color:var(--color-primary);font-weight:700}.ff-step-right .is-active{color:var(--color-primary-light);font-weight:600}.ff-notice-bar{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--color-secondary-soft);border:1px solid rgba(255,179,0,.25);border-radius:20px;margin-bottom:32px;box-shadow:var(--shadow-sm)}@media (max-width:640px){.ff-notice-bar{flex-direction:column;gap:8px;align-items:flex-start}}.ff-notice-info{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text-primary)}.ff-notice-info strong{color:var(--color-black)}.ff-notice-info span{color:var(--color-text-secondary)}.ff-solution-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,360px));justify-content:center;grid-gap:18px;gap:18px;margin-bottom:32px}.ff-card-photo-strip{width:calc(100% + var(--space-16));margin:0 calc(var(--space-8) * -1) var(--space-6);height:190px;background:var(--color-dark-soft);overflow-x:auto;overflow-y:hidden;display:flex;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.ff-card-photo-strip img{display:block;width:100%;min-width:100%;height:100%;object-fit:cover;scroll-snap-align:start}.ff-detail-modal-photo-carousel{position:relative;width:100%;aspect-ratio:4/3;height:auto;max-height:480px;border-radius:var(--radius-lg);background:transparent;overflow:hidden;box-shadow:var(--shadow-md)}.ff-photo-stage{padding:0;border:0;cursor:zoom-in}.ff-photo-stage,.ff-photo-stage img{display:block;width:100%;height:100%;background:transparent}.ff-photo-stage img{object-fit:contain}.ff-lightbox-nav,.ff-photo-nav{display:grid;place-items:center;border:0;color:#fff;background:hsla(0,0%,7%,.62);cursor:pointer;opacity:0;transition:opacity var(--transition-fast),background var(--transition-fast),transform var(--transition-fast)}.ff-detail-modal-photo-carousel:focus-within .ff-photo-nav,.ff-detail-modal-photo-carousel:hover .ff-photo-nav{opacity:1}.ff-lightbox-nav:hover,.ff-photo-nav:hover{background:var(--color-primary)}.ff-photo-nav{position:absolute;z-index:2;top:50%;width:38px;height:52px;transform:translateY(-50%)}.ff-photo-nav-prev{left:12px;border-radius:12px 8px 8px 12px}.ff-photo-nav-next{right:12px;border-radius:8px 12px 12px 8px}.ff-photo-counter{position:absolute;right:14px;bottom:12px;z-index:2;padding:4px 8px;border-radius:999px;color:#fff;background:hsla(0,0%,7%,.58);font-size:11px;font-weight:700}.ff-lightbox-nav{position:absolute;top:50%;z-index:2;width:52px;height:64px;border-radius:14px;opacity:.86;transform:translateY(-50%)}.ff-lightbox-nav-prev{left:24px}.ff-lightbox-nav-next{right:24px}.ff-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.ff-card-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;display:block}.ff-card-badge.is-primary{color:var(--color-primary-soft)}.ff-card-badge.is-white{color:var(--color-primary)}.ff-card-title{font-size:20px;font-weight:800;margin:4px 0 0;line-height:1.3;min-height:52px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ff-card-title.is-primary{color:#fff}.ff-card-title.is-white{color:var(--color-text-primary)}.ff-card-confidence{font-size:24px;font-weight:700;font-family:monospace}.ff-card-confidence.is-primary{color:var(--color-secondary)}.ff-card-confidence.is-white{color:var(--color-primary)}.ff-card-desc{font-size:14px;line-height:1.6;margin-bottom:24px;min-height:68px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.ff-card-desc.is-primary{color:var(--color-primary-soft)}.ff-card-desc.is-white{color:var(--color-text-secondary)}.ff-card-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.ff-card-tag{display:inline-block;max-width:100%;word-break:break-all;line-height:1.4;font-size:11px;font-weight:600;padding:6px 12px;border-radius:6px;vertical-align:top}.ff-card-tag.is-primary{background:hsla(0,0%,100%,.15);color:#fff}.ff-card-tag.is-white{background:var(--color-primary-soft);color:var(--color-primary);border:1px solid rgba(255,87,10,.08)}.ff-card-footer{border-top:1px solid;padding-top:16px;display:flex;align-items:center;justify-content:space-between}.ff-card-footer-text{font-size:12px}.ff-card-footer-text.is-primary{color:var(--color-primary-soft)}.ff-card-footer-text.is-white{color:var(--color-text-muted)}.ff-card-cta{font-size:12px;font-weight:700}.ff-card-cta.is-primary{color:var(--color-secondary)}.ff-card-cta.is-white{color:var(--color-primary)}.ff-detail-modal-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border-light);background-color:var(--color-bg-page);display:flex;gap:12px;align-items:center}@media (max-width:640px){.ff-detail-modal-footer{padding:var(--space-3) var(--space-4)}}.ff-memory-strip{display:flex;align-items:center;justify-content:space-between;gap:16px}@media (max-width:640px){.ff-memory-strip{flex-direction:column;align-items:stretch}}.ff-diagnostic-panel{margin-top:32px}.ff-diagnostic-summary{cursor:pointer;font-size:12px;color:var(--color-text-secondary);font-weight:600;margin-bottom:8px}.ff-diagnostic-body{background:var(--color-dark-soft);border:1px solid var(--color-border-light);border-radius:8px;padding:12px;font-size:12px;color:var(--color-text-primary)}.ff-diagnostic-event-summary,.ff-diagnostic-grid-head{display:grid;grid-template-columns:minmax(128px,.9fr) minmax(210px,2fr) minmax(96px,.75fr) 44px;align-items:center;grid-column-gap:12px;column-gap:12px}.ff-diagnostic-grid-head{padding:0 8px 8px;color:var(--color-text-muted);font-size:11px;font-weight:700}.ff-diagnostic-events{border-top:1px solid rgba(88,87,87,.1)}.ff-diagnostic-event-card{border-bottom:1px solid rgba(88,87,87,.08)}.ff-diagnostic-event-card:last-child{border-bottom:0}.ff-diagnostic-event-summary{cursor:pointer;min-height:44px;padding:8px;list-style:none}.ff-diagnostic-event-summary::-webkit-details-marker{display:none}.ff-diagnostic-event-card[open]>.ff-diagnostic-event-summary{background:hsla(0,0%,100%,.52)}.ff-diagnostic-stage{display:inline-flex;align-items:center;gap:7px;font-weight:700}.ff-diagnostic-result{color:var(--color-text-secondary)}.ff-diagnostic-status{color:#176b48;font-weight:700}.ff-diagnostic-error,.ff-diagnostic-status.is-error{color:#b42318}.ff-diagnostic-duration{color:var(--color-text-muted);font-family:monospace;text-align:right}.ff-diagnostic-detail-body{padding:4px 8px 12px 28px}.ff-diagnostic-meta{display:flex;flex-wrap:wrap;gap:6px;margin:3px 0 8px}.ff-diagnostic-meta span{padding:2px 6px;border:1px solid var(--color-border-light);background:hsla(0,0%,100%,.7);color:var(--color-text-secondary);font-family:monospace;font-size:10px}.ff-diagnostic-details-list{display:grid;grid-gap:5px;gap:5px;margin:0;padding-left:18px;color:var(--color-text-secondary);line-height:1.55}.ff-diagnostic-details-list li{white-space:pre-wrap;word-break:break-word}.ff-diagnostic-raw{margin:10px 0 0;color:var(--color-text-muted)}.ff-diagnostic-raw summary{cursor:pointer;font-weight:700;font-size:11px}.ff-diagnostic-event-body{display:grid;grid-gap:10px;gap:10px;padding:8px 0 0;color:var(--color-text-secondary);font-family:monospace;font-size:11px}.ff-diagnostic-event-body pre{max-height:260px;margin:6px 0 0;padding:10px;overflow:auto;white-space:pre-wrap;word-break:break-word;background:hsla(0,0%,100%,.72);border:1px solid var(--color-border-light);border-radius:8px;color:var(--color-text-primary)}@media (max-width:640px){.ff-diagnostic-grid-head{display:none}.ff-diagnostic-event-summary{grid-template-columns:minmax(0,1fr) auto;row-gap:4px}.ff-diagnostic-result{grid-column:1/-1;font-size:11px}.ff-diagnostic-status{grid-column:1;font-size:11px}.ff-diagnostic-duration{grid-column:2;grid-row:1}.ff-diagnostic-detail-body{padding-left:8px}}.suggest-group{padding:12px;display:flex;flex-direction:column;gap:8px}.suggest-group-title{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--color-text-muted);letter-spacing:.05em;margin-bottom:4px}.suggest-action-btn{width:100%;text-align:left;border:1px dashed var(--color-border-medium);background:var(--color-bg-page);padding:10px 14px;border-radius:10px;font-size:12px;font-weight:600;color:var(--color-primary);cursor:pointer;transition:all var(--transition-fast)}.suggest-action-btn:hover{background:var(--color-primary-soft);border-color:var(--color-primary-light);transform:translateY(-1px)}.suggest-quick-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.suggest-pill-item{border:1px solid var(--color-border-light);background:var(--color-bg-card);padding:6px 12px;border-radius:8px;font-size:11px;font-weight:600;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.suggest-pill-item:hover{background:var(--color-secondary-soft);border-color:var(--color-secondary);color:var(--color-text-primary);transform:translateY(-1px)}.suggest-empty{padding:16px;text-align:center;font-size:12px;color:var(--color-text-muted)}.ff-bento-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--space-6);gap:var(--space-6)}@media (max-width:1024px){.ff-bento-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.ff-bento-grid{grid-template-columns:1fr}}.ff-bento-card{position:relative;overflow:hidden;background:#fff;border:1px solid rgba(255,87,10,.05);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-md);transition:all var(--transition-normal);display:flex;flex-direction:column;justify-content:space-between;min-height:180px}.ff-bento-span-2{grid-column:span 2}@media (max-width:1024px){.ff-bento-span-2{grid-column:span 2}}@media (max-width:640px){.ff-bento-span-2{grid-column:span 1}}.ff-bento-card:hover{transform:translateY(-6px);border-color:rgba(255,87,10,.2);box-shadow:var(--shadow-lg),var(--shadow-aura)}.ff-card-glass{background:hsla(0,0%,100%,.85);border:1px solid rgba(255,87,10,.05);box-shadow:var(--shadow-md)}.ff-spotlight-wrapper{position:relative;border-radius:var(--radius-full);padding:4px;background:#fff;border:1px solid rgba(255,87,10,.15);box-shadow:0 4px 20px -2px rgba(88,87,87,.03),0 2px 6px -1px rgba(255,87,10,.01);transition:all var(--transition-normal)}.ff-spotlight-wrapper:focus-within{border-color:var(--color-primary);box-shadow:0 8px 24px -4px rgba(255,87,10,.08),var(--shadow-aura)}.ff-btn-shimmer{position:relative;overflow:hidden}.ff-btn-shimmer:after{content:"";position:absolute;top:0;left:-200%;width:100%;height:100%;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.25) 50%,transparent);transition:none}.ff-btn-shimmer:hover:after{left:200%;transition:left .8s ease-in-out}.ff-play-btn-frosted{position:relative;z-index:5;width:70px;height:70px;border-radius:50%;background:hsla(0,0%,100%,.2);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid hsla(0,0%,100%,.3);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.ff-play-btn-frosted:hover{transform:scale(1.1);background:hsla(0,0%,100%,.35);border-color:hsla(0,0%,100%,.6);box-shadow:0 0 20px hsla(0,0%,100%,.3)}.ff-pulse-ring-double{border-radius:50%;border:1px solid hsla(0,0%,100%,.15)}.ff-pulse-ring-double,.ff-pulse-ring-double-delayed{position:absolute;inset:-15px;animation:pulse-ring-wave 2.5s cubic-bezier(.215,.61,.355,1) infinite;pointer-events:none}.ff-pulse-ring-double-delayed{border-radius:50%;border:1px solid hsla(0,0%,100%,.08);animation-delay:1.2s}@keyframes pulse-ring-wave{0%{transform:scale(.65);opacity:1}80%,to{transform:scale(1.4);opacity:0}}.recipe-route-container{position:relative;padding-left:var(--space-8)}.recipe-route-container:before{content:"";position:absolute;left:19px;top:14px;bottom:14px;width:2px;background:linear-gradient(to bottom,var(--color-primary) 0,var(--color-secondary) 100%);opacity:.65}.recipe-route-step{position:relative;padding-bottom:var(--space-5)}.recipe-route-step:last-child{padding-bottom:0}.recipe-route-dot{position:absolute;left:-21px;top:6px;width:8px;height:8px;border-radius:50%;background:var(--color-primary);border:2px solid #fff;box-shadow:0 0 0 2px var(--color-primary-light);z-index:2}.recipe-route-dot-secondary{box-shadow:0 0 0 2px var(--color-secondary-hover);background:var(--color-secondary)}.recipe-route-step:hover .recipe-route-dot{transform:scale(1.2);background:#fff;border-color:var(--color-primary);box-shadow:0 0 8px var(--color-primary)}.ff-card-interactive-indicator{transition:all var(--transition-normal)}.ff-card-interactive-indicator .indicator-arrow{opacity:0;transform:translateX(-4px);transition:all var(--transition-fast);color:var(--color-primary)}.ff-card-interactive-indicator:hover{border-color:rgba(255,87,10,.3)!important;box-shadow:var(--shadow-lg);transform:translateY(-4px)}.ff-card-interactive-indicator:hover .indicator-arrow{opacity:1;transform:translateX(0)}.ff-spotlight-input::placeholder{color:rgba(45,45,46,.45)!important}.ff-gradient-text{background:linear-gradient(135deg,#ffb300,#ff570a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:inline-block}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(rgba(255,87,10,.015) 1px,transparent 0),linear-gradient(90deg,rgba(255,87,10,.015) 1px,transparent 0);background-size:50px 50px;pointer-events:none;z-index:-1}