*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #080B14;--color-bg-elevated: #0D1120;--color-surface: #111827;--color-surface-hover: #1A2234;--color-surface-active: #1E293B;--color-border: rgba(96, 165, 250, .08);--color-border-hover: rgba(96, 165, 250, .18);--color-text: #F1F5F9;--color-text-secondary: #94A3B8;--color-text-muted: #64748B;--color-primary: #60A5FA;--color-primary-dim: rgba(96, 165, 250, .15);--color-primary-glow: rgba(96, 165, 250, .25);--color-success: #34D399;--color-success-dim: rgba(52, 211, 153, .15);--color-warning: #FBBF24;--color-warning-dim: rgba(251, 191, 36, .15);--color-danger: #EF4444;--color-danger-dim: rgba(239, 68, 68, .15);--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;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs: .75rem;--font-size-sm: .8125rem;--font-size-base: .9375rem;--font-size-lg: 1.125rem;--font-size-xl: 1.375rem;--font-size-2xl: 1.75rem;--font-size-3xl: 2.25rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-normal: 1.5;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--shadow-glow: 0 0 20px var(--color-primary-dim);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--glass-bg: rgba(17, 24, 39, .7);--glass-blur: 16px;--glass-border: rgba(96, 165, 250, .1);--max-width: 1280px;--header-height: 64px}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-bg);min-height:100vh;overflow-x:hidden}body:before{content:"";position:fixed;top:-200px;left:50%;transform:translate(-50%);width:800px;height:600px;background:radial-gradient(ellipse at center,rgba(96,165,250,.05) 0%,rgba(96,165,250,.02) 40%,transparent 70%);pointer-events:none;z-index:0}#root{position:relative;z-index:1}a{color:var(--color-primary);text-decoration:none}button{font-family:var(--font-family)}.header{position:sticky;top:0;z-index:100;background:#080b14e0;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--color-border);height:var(--header-height)}.header__inner{max-width:var(--max-width);margin:0 auto;padding:0 var(--space-6);height:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.header__brand{display:flex;align-items:center;gap:var(--space-3);cursor:pointer}.header__logo{font-size:1.5rem;line-height:1}.header__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);letter-spacing:-.02em;background:linear-gradient(135deg,var(--color-primary),#93C5FD);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header__breadcrumb{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-muted)}.header__breadcrumb-sep{color:var(--color-text-muted);opacity:.4}.header__breadcrumb-link{color:var(--color-text-secondary);cursor:pointer;transition:color var(--transition-fast)}.header__breadcrumb-link:hover{color:var(--color-primary)}.header__breadcrumb-current{color:var(--color-text);font-weight:var(--font-weight-medium)}.header__actions{display:flex;align-items:center;gap:var(--space-3)}.header__save-indicator{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:var(--color-bg-elevated);border:1px solid var(--color-border)}.header__save-indicator--saving{color:var(--color-warning);border-color:#fbbf2433}.header__save-indicator--saved{color:var(--color-success);border-color:#34d39933}.main{max-width:var(--max-width);margin:0 auto;padding:var(--space-6)}.store-list{padding-top:var(--space-4)}.store-list__header{margin-bottom:var(--space-8)}.store-list__title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);letter-spacing:-.03em;line-height:var(--line-height-tight);margin-bottom:var(--space-2)}.store-list__subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary)}.store-list__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-5)}.store-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-6);cursor:pointer;transition:all var(--transition-normal);display:flex;flex-direction:column;gap:var(--space-3);position:relative;overflow:hidden}.store-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-primary),transparent);opacity:0;transition:opacity var(--transition-normal)}.store-card:hover{border-color:var(--color-border-hover);transform:translateY(-4px);box-shadow:var(--shadow-lg),var(--shadow-glow)}.store-card:hover:before{opacity:1}.store-card__icon{font-size:2rem;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-primary-dim);border-radius:var(--radius-md)}.store-card__name{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.store-card__meta{display:flex;gap:var(--space-4);font-size:var(--font-size-xs);color:var(--color-text-muted)}.store-card__meta-item{display:flex;align-items:center;gap:var(--space-1)}.store-card__actions{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.store-card--create{border-style:dashed;border-color:var(--color-border-hover);align-items:center;justify-content:center;text-align:center;min-height:200px}.store-card--create:hover{border-color:var(--color-primary);background:var(--color-primary-dim)}.store-card--create .store-card__icon{background:var(--color-surface);font-size:1.5rem}.create-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.create-modal__content{background:var(--color-surface);border:1px solid var(--color-border-hover);border-radius:var(--radius-lg);padding:var(--space-8);width:100%;max-width:480px;display:flex;flex-direction:column;gap:var(--space-5);animation:modalSlideUp .3s cubic-bezier(.4,0,.2,1)}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.create-modal__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.create-modal__field{display:flex;flex-direction:column;gap:var(--space-2)}.create-modal__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.create-modal__input{padding:var(--space-3) var(--space-4);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-family:var(--font-family);font-size:var(--font-size-base);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.create-modal__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-dim)}.create-modal__input::placeholder{color:var(--color-text-muted)}.create-modal__row{display:flex;gap:var(--space-4)}.create-modal__row .create-modal__field{flex:1}.create-modal__actions{display:flex;gap:var(--space-3);justify-content:flex-end;padding-top:var(--space-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-elevated);color:var(--color-text-secondary);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:hover{border-color:var(--color-border-hover);background:var(--color-surface);color:var(--color-text)}.btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:#0a0d14;font-weight:var(--font-weight-semibold)}.btn--primary:hover{background:#78b8ff;border-color:#78b8ff;color:#0a0d14;box-shadow:var(--shadow-glow)}.btn--success{background:var(--color-success);border-color:var(--color-success);color:#0a0d14;font-weight:var(--font-weight-semibold)}.btn--success:hover{background:#5fe8b0;border-color:#5fe8b0;color:#0a0d14}.btn--danger{color:var(--color-danger);border-color:var(--color-danger-dim)}.btn--danger:hover{background:var(--color-danger-dim);border-color:var(--color-danger)}.btn--ghost{background:transparent;border-color:transparent}.btn--ghost:hover{background:var(--color-surface)}.btn--lg{padding:var(--space-3) var(--space-6);font-size:var(--font-size-base);border-radius:var(--radius-lg)}.btn--full{width:100%}.btn--icon{width:36px;height:36px;padding:0}.btn:disabled{opacity:.4;cursor:not-allowed}.editor{display:grid;grid-template-columns:1fr 280px;gap:var(--space-5);padding-top:var(--space-4)}.editor__canvas-area{display:flex;flex-direction:column;gap:var(--space-4)}.editor__toolbar{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);flex-wrap:wrap}.editor__toolbar-group{display:flex;align-items:center;gap:var(--space-1)}.editor__toolbar-sep{width:1px;height:24px;background:var(--color-border);margin:0 var(--space-2)}.editor__tool-btn{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-family:var(--font-family);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.editor__tool-btn:hover{background:var(--color-surface);color:var(--color-text)}.editor__tool-btn--active{background:var(--color-primary-dim);border-color:var(--color-primary);color:var(--color-primary)}.editor__grid-wrapper{position:relative;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:auto;flex:1;min-height:500px}.editor__grid{display:inline-grid;gap:1px;padding:var(--space-3);background:#60a5fa08;min-width:100%}.editor__cell{width:28px;height:28px;border:1px solid rgba(96,165,250,.06);border-radius:3px;cursor:crosshair;transition:background-color .08s ease,border-color .08s ease,transform .1s ease;position:relative}.editor__cell:hover{border-color:#60a5fa4d;transform:scale(1.08);z-index:2}.editor__cell--entrance{background:#34d39966;border-color:#34d3994d}.editor__cell--checkout{background:#fbbf2466;border-color:#fbbf244d}.editor__cell--shelf{background:#94a3b840;border-color:#94a3b826}.editor__cell--wall{background:#1e293be6;border-color:#1e293b80}.editor__cell--walkway{background:#94a3b814}.editor__cell--zone{opacity:.9}.editor__cell-zone-dot{position:absolute;bottom:2px;right:2px;width:6px;height:6px;border-radius:50%}.editor__sidebar{display:flex;flex-direction:column;gap:var(--space-4)}.panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);overflow:hidden}.panel__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.panel__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);display:flex;align-items:center;gap:var(--space-2)}.panel__body{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.zone-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);font-size:var(--font-size-sm)}.zone-item:hover{background:var(--color-surface)}.zone-item--active{background:var(--color-primary-dim)}.zone-item__color{width:12px;height:12px;border-radius:3px;flex-shrink:0}.zone-item__name{flex:1;color:var(--color-text-secondary)}.zone-item--active .zone-item__name{color:var(--color-text);font-weight:var(--font-weight-medium)}.zone-item__count{font-size:var(--font-size-xs);color:var(--color-text-muted)}.shopping-view{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6);padding-top:var(--space-4)}.shopping-list{display:flex;flex-direction:column;gap:var(--space-4)}.shopping-list__input-row{display:flex;gap:var(--space-3)}.shopping-list__input{flex:1;padding:var(--space-3) var(--space-4);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-family:var(--font-family);font-size:var(--font-size-base);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.shopping-list__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-dim)}.shopping-list__input::placeholder{color:var(--color-text-muted)}.shopping-list__category-select{padding:var(--space-2) var(--space-3);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-family:var(--font-family);font-size:var(--font-size-sm);cursor:pointer;outline:none;min-width:140px}.shopping-list__category-select option{background:var(--color-surface);color:var(--color-text)}.shopping-list__items{display:flex;flex-direction:column;gap:var(--space-2)}.shopping-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);transition:all var(--transition-fast);animation:itemSlideIn .25s cubic-bezier(.4,0,.2,1)}@keyframes itemSlideIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.shopping-item:hover{border-color:var(--color-border-hover);background:var(--color-surface)}.shopping-item--checked{opacity:.5}.shopping-item--checked .shopping-item__name{text-decoration:line-through;color:var(--color-text-muted)}.shopping-item__checkbox{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border:2px solid var(--color-border-hover);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative}.shopping-item__checkbox:checked{background:var(--color-success);border-color:var(--color-success)}.shopping-item__checkbox:checked:after{content:"✓";color:#0a0d14;font-size:.75rem;font-weight:700;position:absolute}.shopping-item__name{flex:1;font-size:var(--font-size-base);color:var(--color-text)}.shopping-item__category{font-size:var(--font-size-xs);padding:2px var(--space-2);border-radius:var(--radius-full);font-weight:var(--font-weight-medium);white-space:nowrap}.shopping-item__remove{background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:var(--font-size-sm);padding:var(--space-1);border-radius:var(--radius-sm);transition:all var(--transition-fast);opacity:0}.shopping-item:hover .shopping-item__remove{opacity:1}.shopping-item__remove:hover{color:var(--color-danger);background:var(--color-danger-dim)}.shopping-list__route-area{padding-top:var(--space-4);border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--space-3)}.shopping-list__stats{display:flex;gap:var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.shopping-list__stats strong{color:var(--color-text)}.route-view{display:flex;flex-direction:column;gap:var(--space-4)}.route-view__grid-wrapper{position:relative;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:auto;min-height:400px}.route-view__grid{display:inline-grid;gap:1px;padding:var(--space-3)}.route-view__cell{width:24px;height:24px;border:1px solid rgba(96,165,250,.04);border-radius:2px;position:relative}.route-view__path-overlay{position:absolute;top:0;left:0;pointer-events:none;z-index:5}.route-view__path-line{fill:none;stroke:var(--color-primary);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:.7;filter:drop-shadow(0 0 6px rgba(96,165,250,.4))}@keyframes pathDraw{0%{stroke-dashoffset:var(--path-length)}to{stroke-dashoffset:0}}.route-view__path-line--animated{stroke-dasharray:var(--path-length);animation:pathDraw 2s ease-out forwards}.route-view__waypoint{position:absolute;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.625rem;font-weight:var(--font-weight-bold);color:#0a0d14;z-index:10;box-shadow:0 2px 8px #0006;transform:translate(-50%,-50%)}.route-view__waypoint--entrance{background:var(--color-success)}.route-view__waypoint--checkout{background:var(--color-warning)}.route-view__waypoint--stop{background:var(--color-primary)}.route-stops{display:flex;flex-direction:column;gap:var(--space-2)}.route-stop{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);transition:all var(--transition-fast)}.route-stop:hover{border-color:var(--color-border-hover)}.route-stop__number{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:#0a0d14;flex-shrink:0}.route-stop__info{flex:1}.route-stop__category{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.route-stop__items{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:2px}.route-stop--start,.route-stop--end{border-color:#34d39926;background:#34d3990d}.nav-mode{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:var(--color-bg);display:flex;flex-direction:column;animation:fadeIn .3s ease-out}.nav-mode__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);flex-shrink:0}.nav-mode__progress{display:flex;align-items:center;gap:var(--space-3)}.nav-mode__progress-bar{width:200px;height:6px;background:var(--color-surface);border-radius:var(--radius-full);overflow:hidden}.nav-mode__progress-fill{height:100%;background:linear-gradient(90deg,var(--color-primary),var(--color-success));border-radius:var(--radius-full);transition:width var(--transition-normal)}.nav-mode__progress-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.nav-mode__body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);gap:var(--space-8)}.nav-mode__instruction{text-align:center;max-width:500px}.nav-mode__direction{font-size:var(--font-size-sm);color:var(--color-primary);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-3)}.nav-mode__category-name{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);letter-spacing:-.02em;margin-bottom:var(--space-4)}.nav-mode__items-list{font-size:var(--font-size-lg);color:var(--color-text-secondary);line-height:1.8}.nav-mode__minimap{width:250px;height:250px;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;position:relative}.nav-mode__minimap-grid{width:100%;height:100%}.nav-mode__controls{display:flex;gap:var(--space-4);padding:var(--space-6);border-top:1px solid var(--color-border);flex-shrink:0}.nav-mode__controls .btn{flex:1;padding:var(--space-4) var(--space-6);font-size:var(--font-size-lg)}.zone-legend{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-3)}.zone-legend__item{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);background:var(--color-bg-elevated);border:1px solid var(--color-border);cursor:pointer;transition:all var(--transition-fast)}.zone-legend__item:hover{border-color:var(--color-border-hover);color:var(--color-text)}.zone-legend__item--active{border-color:currentColor}.zone-legend__dot{width:8px;height:8px;border-radius:50%}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-16) var(--space-6);text-align:center;gap:var(--space-4)}.empty-state__icon{font-size:4rem;opacity:.5;animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.empty-state__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text)}.empty-state__description{font-size:var(--font-size-base);color:var(--color-text-muted);max-width:400px}.footer{max-width:var(--max-width);margin:0 auto;padding:var(--space-8) var(--space-6);text-align:center;font-size:var(--font-size-xs);color:var(--color-text-muted);border-top:1px solid var(--color-border)}.spinner{width:24px;height:24px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-16);gap:var(--space-4)}.loading-state__text{font-size:var(--font-size-sm);color:var(--color-text-muted)}@media(max-width:768px){.editor,.shopping-view,.store-list__grid{grid-template-columns:1fr}.header__breadcrumb{display:none}.editor__cell{width:22px;height:22px}.route-view__cell{width:18px;height:18px}.nav-mode__minimap{width:180px;height:180px}.nav-mode__category-name{font-size:var(--font-size-2xl)}}@media(max-width:480px){.main{padding:var(--space-4)}.editor__cell{width:18px;height:18px}.create-modal__content{margin:var(--space-4)}}
