@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=DM+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-vehicle:#fbde04;--color-territory:#f25e0d;--color-entry-point:#fb1f8b;--color-asset:#383838;--color-bg:#fff;--color-text:#1a1a1a;--color-text-light:#666;--color-text-muted:#999;--color-border:#e5e5e5;--color-surface:#f8f8f8;--font-heading:"Space Grotesk", sans-serif;--font-body:"DM Sans", sans-serif;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:40px;--space-2xl:64px;--card-width:240px;--card-height:340px;--card-radius:16px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 8px 24px #0000001f;--transition-fast:.15s ease;--transition-normal:.3s ease;--transition-slow:.5s ease}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);min-height:100vh;line-height:1.6}#root{flex-direction:column;min-height:100vh;display:flex}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;line-height:1.2}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1.25rem}a{color:inherit;text-decoration:none}button{font-family:var(--font-body);cursor:pointer;background:0 0;border:none;font-size:1rem}img{max-width:100%;display:block}ul,ol{list-style:none}.container{max-width:1200px;padding:0 var(--space-lg);margin:0 auto}.btn{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-sm);font-family:var(--font-heading);transition:all var(--transition-fast);white-space:nowrap;font-size:.95rem;font-weight:600;display:inline-flex}.btn-primary{background:var(--color-text);color:var(--color-bg)}.btn-primary:hover{box-shadow:var(--shadow-md);background:#333;transform:translateY(-1px)}.btn-outline{border:2px solid var(--color-border);color:var(--color-text);background:0 0}.btn-outline:hover{border-color:var(--color-text);transform:translateY(-1px)}.btn-sm{padding:var(--space-xs) var(--space-md);font-size:.85rem}.header{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border);background:var(--color-bg);z-index:100;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.header-logo{height:52px}.header-nav{align-items:center;gap:var(--space-lg);display:flex}.header-nav a{font-family:var(--font-heading);color:var(--color-text-light);transition:color var(--transition-fast);font-size:.9rem;font-weight:600;position:relative}.header-nav a:hover,.header-nav a.active{color:var(--color-text)}.header-nav a.active:after{content:"";background:var(--color-text);border-radius:1px;height:2px;position:absolute;bottom:-4px;left:0;right:0}.header-auth{align-items:center;gap:var(--space-md);display:flex}.header-user{color:var(--color-text-light);font-size:.85rem}.page{padding:var(--space-xl) 0;flex:1}.page-header{margin-bottom:var(--space-xl)}.page-header h1{margin-bottom:var(--space-sm)}.page-header p{color:var(--color-text-light);max-width:600px;font-size:1.1rem}.browse-page{padding-bottom:var(--space-2xl)}.browse-controls{justify-content:space-between;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.footer{padding:var(--space-lg);border-top:1px solid var(--color-border);text-align:center;color:var(--color-text-muted);font-size:.85rem}.auth-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl);margin-top:var(--space-xl)}.auth-form{gap:var(--space-md);flex-direction:column;display:flex}.form-group{gap:var(--space-xs);flex-direction:column;display:flex}.form-group label{font-family:var(--font-heading);color:var(--color-text);font-size:.85rem;font-weight:600}.form-group input,.form-group textarea{padding:var(--space-sm) var(--space-md);border:2px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-body);transition:border-color var(--transition-fast);outline:none;font-size:.95rem}.form-group input:focus,.form-group textarea:focus{border-color:var(--color-text)}.auth-error{padding:var(--space-sm) var(--space-md);color:#dc2626;border-radius:var(--radius-sm);background:#fef2f2;font-size:.85rem}@media (width<=768px){.header{padding:var(--space-sm) var(--space-md);gap:var(--space-xs);flex-wrap:wrap}.header-logo{height:42px}.header-nav{justify-content:center;gap:var(--space-lg);width:100%;padding-top:var(--space-xs);border-top:1px solid var(--color-border);order:3}.header-nav a{font-size:.85rem}.header-auth{margin-left:auto}.header-user{display:none}.page{padding:var(--space-lg) 0}h1{font-size:1.75rem}h2{font-size:1.5rem}.landing-deck-grid{max-width:260px;grid-template-columns:1fr!important;margin-left:auto!important;margin-right:auto!important}.landing-deck-grid>div{width:100%!important}}.card-container{width:var(--card-width);height:var(--card-height);perspective:1000px;cursor:pointer}.card-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.4,0,.2,1);position:relative}.card-container.flipped .card-inner{transform:rotateY(180deg)}.card-front,.card-back{backface-visibility:hidden;border-radius:var(--card-radius);box-shadow:var(--shadow-md);flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}.card-back{transform:rotateY(180deg)}.card-front,.card-back{background:var(--color-bg);border-top:6px solid var(--deck-color,var(--color-text))}.card-deck-label{padding:var(--space-sm) var(--space-md);font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-light);background:color-mix(in srgb, var(--deck-color) 8%, white);font-size:.7rem;font-weight:600}.card-front-body{padding:var(--space-lg);text-align:center;flex:1;justify-content:center;align-items:center;display:flex}.card-front-body h3{color:var(--color-text);font-size:1.35rem;line-height:1.3}.card-back-body{padding:var(--space-lg);gap:var(--space-md);flex-direction:column;flex:1;display:flex}.card-back-body h4{color:var(--color-text);font-size:1.1rem}.card-back-body p{color:var(--color-text-light);font-size:.9rem;line-height:1.6}.card-flip-hint{padding:var(--space-sm) var(--space-md);text-align:center;color:var(--color-text-muted);font-size:.75rem}.card-container:hover .card-inner{box-shadow:0 0 0 3px color-mix(in srgb, var(--deck-color) 30%, transparent);border-radius:var(--card-radius)}.card-container.selectable:hover{transition:transform var(--transition-fast);transform:translateY(-4px)}.card-container.selected{outline:3px solid var(--deck-color);outline-offset:3px;border-radius:var(--card-radius)}.card-grid{gap:var(--space-lg);padding:var(--space-lg) 0;flex-wrap:wrap;justify-content:center;display:flex}.card-carousel{align-items:center;gap:var(--space-lg);padding:var(--space-xl) 0;flex-direction:column;display:flex}.card-carousel-viewport{align-items:center;gap:var(--space-xl);display:flex;position:relative}.card-carousel-nav{background:var(--color-surface);border:2px solid var(--color-border);width:48px;height:48px;color:var(--color-text);transition:all var(--transition-fast);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.25rem;display:flex}.card-carousel-nav:hover{background:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}.card-carousel-nav:disabled{opacity:.3;cursor:not-allowed}.card-carousel-nav:disabled:hover{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.card-carousel-dots{gap:var(--space-sm);display:flex}.card-carousel-dot{background:var(--color-border);width:10px;height:10px;transition:all var(--transition-fast);cursor:pointer;border:none;border-radius:50%}.card-carousel-dot.active{background:var(--deck-color,var(--color-text));transform:scale(1.2)}.deck-viewer{position:relative}.deck-viewer-toggle{background:var(--color-surface);border-radius:var(--radius-sm);margin-bottom:var(--space-lg);gap:2px;width:fit-content;padding:2px;display:flex}.deck-viewer-toggle button{padding:var(--space-xs) var(--space-md);color:var(--color-text-light);transition:all var(--transition-fast);border-radius:6px;font-size:.85rem;font-weight:500}.deck-viewer-toggle button.active{background:var(--color-bg);color:var(--color-text);box-shadow:var(--shadow-sm)}.deck-nav{gap:var(--space-xs);padding:var(--space-md) 0;-webkit-overflow-scrolling:touch;display:flex;overflow-x:auto}.deck-nav-tab{padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-sm);font-family:var(--font-heading);white-space:nowrap;transition:all var(--transition-fast);color:var(--color-text-light);border:2px solid #0000;font-size:.9rem;font-weight:600}.deck-nav-tab:hover{color:var(--color-text);background:color-mix(in srgb, var(--tab-color) 10%, white)}.deck-nav-tab.active{color:var(--color-text);border-color:var(--tab-color);background:color-mix(in srgb, var(--tab-color) 10%, white)}@media (width<=768px){:root{--card-width:200px;--card-height:280px}.card-grid{gap:var(--space-md)}}@media (width<=480px){:root{--card-width:260px;--card-height:360px}.card-grid{flex-direction:column;align-items:center}}.recipe-builder{max-width:800px}.recipe-name-input{margin-bottom:var(--space-xl)}.recipe-name-input label{font-family:var(--font-heading);margin-bottom:var(--space-xs);font-size:.9rem;font-weight:600;display:block}.recipe-name-input input{width:100%;padding:var(--space-sm) var(--space-md);border:2px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-body);transition:border-color var(--transition-fast);outline:none;font-size:1.1rem}.recipe-name-input input:focus{border-color:var(--color-text)}.recipe-slots{gap:var(--space-md);margin-bottom:var(--space-xl);flex-direction:column;display:flex}.recipe-slot{border:2px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast);overflow:hidden}.recipe-slot:hover{border-color:color-mix(in srgb, var(--deck-color) 50%, var(--color-border))}.recipe-slot-header{align-items:center;gap:var(--space-md);padding:var(--space-md);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex}.recipe-slot-color{border-radius:3px;flex-shrink:0;width:6px;height:40px}.recipe-slot-info{flex:1}.recipe-slot-info h3{margin-bottom:2px;font-size:1.05rem}.recipe-slot-info p{color:var(--color-text-light);font-size:.8rem}.recipe-slot-count{align-items:center;gap:var(--space-sm);display:flex}.recipe-slot-badge{background:var(--deck-color);color:var(--color-text);width:24px;height:24px;font-family:var(--font-heading);border-radius:50%;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:flex}.recipe-slot-toggle{color:var(--color-text-muted);font-size:.75rem}.recipe-slot-selected{padding:0 var(--space-md) var(--space-md);gap:var(--space-sm);flex-direction:column;display:flex}.recipe-selected-card{background:var(--color-surface);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md)}.recipe-selected-card-header{margin-bottom:var(--space-xs);justify-content:space-between;align-items:center;display:flex}.recipe-selected-card-name{font-family:var(--font-heading);font-size:.9rem;font-weight:600}.recipe-selected-card-remove{width:24px;height:24px;color:var(--color-text-muted);transition:all var(--transition-fast);border-radius:50%;justify-content:center;align-items:center;font-size:1.1rem;display:flex}.recipe-selected-card-remove:hover{color:#dc2626;background:#fee}.recipe-card-notes{width:100%;padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);font-family:var(--font-body);resize:vertical;border-radius:4px;outline:none;font-size:.85rem}.recipe-card-notes:focus{border-color:var(--color-text-light)}.recipe-slot-picker{padding:0 var(--space-md) var(--space-md);border-top:1px solid var(--color-border);margin-top:var(--space-sm);padding-top:var(--space-md)}.recipe-slot-picker-grid{gap:var(--space-sm);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.recipe-pick-card{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:2px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);font-size:.85rem;font-weight:500;display:flex}.recipe-pick-card:hover{border-color:var(--deck-color);background:color-mix(in srgb, var(--deck-color) 5%, white)}.recipe-pick-card.selected{border-color:var(--deck-color);background:color-mix(in srgb, var(--deck-color) 10%, white)}.recipe-pick-card-check{border:2px solid var(--color-border);width:22px;height:22px;transition:all var(--transition-fast);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:flex}.recipe-pick-card.selected .recipe-pick-card-check{background:var(--deck-color);border-color:var(--deck-color);color:var(--color-text)}.recipe-builder-footer{padding:var(--space-lg) 0;border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.recipe-summary-count{color:var(--color-text-light);font-size:.9rem}.recipe-list{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.recipe-list-item{border:2px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-lg);cursor:pointer;transition:all var(--transition-fast)}.recipe-list-item:hover{border-color:var(--color-text-light);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.recipe-list-item-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:start;display:flex}.recipe-list-item-header h3{font-size:1.15rem}.recipe-list-item-delete{width:28px;height:28px;color:var(--color-text-muted);transition:all var(--transition-fast);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.2rem;display:flex}.recipe-list-item-delete:hover{color:#dc2626;background:#fee}.recipe-list-item-cards{gap:var(--space-xs);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.recipe-list-item-tag{border:1.5px solid;border-radius:20px;padding:2px 10px;font-size:.75rem;font-weight:600}.recipe-list-item-date{color:var(--color-text-muted);margin-bottom:var(--space-md);font-size:.8rem}.recipe-list-item-actions{gap:var(--space-sm);display:flex}.recipe-empty{text-align:center;padding:var(--space-2xl);color:var(--color-text-light)}@media (width<=768px){.recipe-slot-picker-grid,.recipe-list{grid-template-columns:1fr}}.recipe-summary{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-lg);margin-bottom:var(--space-xl)}.recipe-summary h2{margin-bottom:var(--space-sm)}.recipe-summary-notes{color:var(--color-text-light);margin-bottom:var(--space-md);font-size:.9rem}.recipe-summary-slots{gap:var(--space-sm);flex-direction:column;display:flex}.recipe-summary-slot{align-items:start;gap:var(--space-md);display:flex}.recipe-summary-slot-color{border-radius:2px;flex-shrink:0;width:4px;min-height:20px;margin-top:2px}.recipe-summary-slot-label{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-light);margin-right:var(--space-sm);font-size:.8rem;font-weight:600}.recipe-summary-slot-cards{font-size:.95rem;font-weight:500}.recipe-summary-slot-note{color:var(--color-text-light);margin-top:2px;font-size:.8rem;font-style:italic;display:block}.generate-panel{max-width:800px}.generate-buttons{gap:var(--space-md);margin-bottom:var(--space-xl);flex-wrap:wrap;display:flex}.generate-btn{padding:var(--space-md) var(--space-xl);font-size:1rem}.generate-not-configured{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-xl)}.generate-not-configured h3{margin-bottom:var(--space-sm)}.generate-not-configured p{color:var(--color-text-light);margin-bottom:var(--space-md)}.generate-not-configured code{background:var(--color-text);color:var(--color-bg);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:.85rem;display:block}.generate-spinner{text-align:center;padding:var(--space-xl)}.generate-spinner-icon{font-size:3rem;animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.generate-spinner p{color:var(--color-text-light);margin-top:var(--space-md);font-style:italic}.generate-error{border-radius:var(--radius-sm);padding:var(--space-md);justify-content:space-between;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg);background:#fef2f2;border:1px solid #fecaca;display:flex}.generate-error p{color:#dc2626;font-size:.9rem}.material-output{border:2px solid var(--color-border);border-radius:var(--radius-md);margin-top:var(--space-lg);overflow:hidden}.material-output-header{padding:var(--space-md) var(--space-lg);background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.material-output-header h3{font-size:1rem}.material-output-actions{gap:var(--space-sm);display:flex}.material-delete-btn:hover{color:#dc2626;border-color:#dc2626}.material-output-content{padding:var(--space-lg);line-height:1.7}.material-output-content h1{margin-bottom:var(--space-md);font-size:1.75rem}.material-output-content h2{margin-top:var(--space-lg);margin-bottom:var(--space-sm);font-size:1.35rem}.material-output-content h3{margin-top:var(--space-lg);margin-bottom:var(--space-sm);font-size:1.15rem}.material-output-content p{margin-bottom:var(--space-md)}.material-output-content ul,.material-output-content ol{padding-left:var(--space-lg);margin-bottom:var(--space-md)}.material-output-content li{margin-bottom:var(--space-xs);list-style:outside}.material-output-content ol li{list-style:decimal}.material-output-content strong{font-weight:600}.material-output-content em{font-style:italic}.material-output-content hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-lg) 0}@media (width<=768px){.generate-buttons{flex-direction:column}.generate-btn{width:100%}}
