:root{--font-family: "Outfit", "Inter", system-ui, Avenir, Helvetica, Arial, sans-serif;--line-height: 1.6;--font-weight: 400;--color-scheme: light dark;--color-primary: #E07856;--color-primary-hover: #C96644;--color-accent: #E07856;--color-accent-hover: #C96644;--color-bg-primary: #FAF8F5;--color-bg-secondary: #FFFFFF;--color-bg-card: #FFFFFF;--color-text-primary: #2D2A26;--color-text-secondary: #8B8680;--color-border: #E8E4DF;--radius-sm: 12px;--radius-md: 16px;--radius-lg: 24px;--radius-xl: 32px;--radius-pill: 100px;--shadow-sm: 0 2px 8px rgba(45, 42, 38, .04);--shadow-md: 0 4px 16px rgba(45, 42, 38, .08);--shadow-lg: 0 8px 24px rgba(45, 42, 38, .12);--color-check-bg: #FFE8E0;--color-check-active: #E07856}@media(prefers-color-scheme:dark){:root{--color-bg-primary: #1a1816;--color-text-primary: #fdfaf6;--color-bg-secondary: #24211f;--color-border: #332f2c}}body{margin:0;min-width:320px;min-height:100vh;font-family:var(--font-family);background-color:var(--color-bg-primary);color:var(--color-text-primary);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-weight:700;letter-spacing:-.02em}p{margin:0}*{box-sizing:border-box}.tile{display:flex;flex-direction:column;padding:1.5rem;background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;text-decoration:none;color:inherit;height:100%;transition:all .2s ease;position:relative;overflow:hidden}.tile:hover,.tile:focus-visible{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--color-accent);outline:none}.tile-disabled{cursor:not-allowed;opacity:.5}.tile-disabled:hover,.tile-disabled:focus-visible{transform:none;box-shadow:none;border-color:var(--color-border)}.tile-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;gap:1rem}.tile-title{font-size:1.25rem;font-weight:600;line-height:1.3}.tile-description{font-size:.95rem;color:var(--color-text-primary);opacity:.8;line-height:1.6;flex-grow:1}.tile-footer{display:flex;justify-content:space-between;align-items:center;margin-top:1.5rem;height:24px}.status-badge{font-size:.7rem;text-transform:uppercase;padding:.25rem .5rem;border-radius:var(--radius-md);font-weight:700;letter-spacing:.05em;display:inline-block}.status-active{background-color:var(--color-status-active-bg);color:var(--color-status-active-text)}.status-experimental{background-color:var(--color-status-experimental-bg);color:var(--color-status-experimental-text)}.status-wip{background-color:var(--color-status-wip-bg);color:var(--color-status-wip-text)}.tile-icon-wrapper{color:var(--color-accent);opacity:0;transform:translate(-10px);transition:all .2s ease}.tile:hover .tile-icon-wrapper{opacity:1;transform:translate(0)}.tile-disabled .tile-icon-wrapper{opacity:0;transform:translate(-10px)}.dashboard-container{max-width:1200px;margin:0 auto;padding:3rem 2rem}.dashboard-header{margin-bottom:4rem;text-align:center;display:flex;flex-direction:column;gap:1.5rem;align-items:center}.dashboard-header h1{font-size:2.5rem;margin-bottom:.75rem;color:var(--color-text-primary);letter-spacing:-.02em}.dashboard-header p{color:var(--color-text-primary);opacity:.6;font-size:1.1rem;max-width:600px;margin:0 auto}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:2rem}.dashboard-warning{margin-bottom:2rem;padding:1rem 1.25rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-status-wip-bg);color:var(--color-status-wip-text)}.dashboard-auth{display:inline-flex;flex-direction:column;gap:.5rem;align-items:center;padding:1rem 1.5rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-secondary);box-shadow:var(--shadow-sm)}.dashboard-auth-label{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary)}.dashboard-auth-username{font-size:1.05rem}.dashboard-auth-subtext{font-size:.9rem;color:var(--color-text-primary);opacity:.8}.dashboard-auth button{border:none;padding:.55rem 1.2rem;border-radius:var(--radius-pill);background:var(--color-primary);color:#fff;font-weight:600;cursor:pointer}.dashboard-auth button:disabled{opacity:.7;cursor:not-allowed}@media(max-width:640px){.dashboard-container{padding:1.5rem 1rem}.dashboard-header{margin-bottom:2.5rem;text-align:left;align-items:flex-start}.dashboard-header h1{font-size:2rem}.dashboard-header p{margin:0}.dashboard-grid{grid-template-columns:1fr;gap:1rem}}.eten-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-bottom:1.5rem;padding:.35rem;background:var(--color-bg-card);border-radius:var(--radius-pill);border:1px solid var(--color-border);box-shadow:var(--shadow-md);overflow:hidden}.eten-nav-item{min-width:0;padding:.65rem 1rem;text-decoration:none;color:var(--color-text-secondary);border-radius:var(--radius-pill);transition:all .3s ease;font-weight:600;font-size:.9rem;white-space:nowrap;display:flex;align-items:center;justify-content:center;gap:.5rem;border:2px solid transparent}.nav-icon-image{width:20px;height:20px;flex:0 0 20px;object-fit:contain}.nav-icon-svg{width:20px;height:20px;color:currentColor;flex:0 0 20px}.eten-nav-item:hover{color:var(--color-primary);background:rgba(var(--color-primary-rgb),.08)}.eten-nav-item.active{color:var(--color-primary-foreground);background:var(--color-primary);border-color:var(--color-primary);box-shadow:0 6px 16px rgba(var(--color-primary-rgb),.25)}@media(min-width:768px){.eten-nav{gap:.75rem;padding:.5rem}.eten-nav-item{padding:.8rem 1.6rem;font-size:.95rem}.nav-icon-svg{width:22px;height:22px}}@media(max-width:480px){.eten-nav{gap:.25rem}.eten-nav-item{padding:.55rem .7rem;font-size:.8rem}}@media(max-width:360px){.eten-nav{gap:.2rem}.eten-nav-item{padding:.5rem .6rem;font-size:.78rem}}.shopping-container{padding:0}.shopping-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;color:var(--color-text-primary)}.shopping-header h2{margin:0;font-size:1.35rem;font-weight:700}.shopping-header-icon{width:32px;height:32px;border-radius:50%;background:var(--color-bg-secondary);border:1px solid var(--color-border);display:inline-flex;align-items:center;justify-content:center;color:var(--color-primary)}.shopping-header-icon img{width:20px;height:20px;display:block}.add-item-wrapper{position:relative;margin-bottom:1.25rem}.add-item-form{display:flex;gap:0;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-pill);box-shadow:var(--shadow-md);overflow:hidden;padding:.2rem .4rem}.item-input-shell{position:relative;display:flex;align-items:center;flex:1}.item-input{flex:1;padding:.7rem 3.25rem .7rem 1rem;border:none;background:transparent;font-size:.95rem;color:var(--color-text-primary);min-width:0}.item-input::placeholder{color:var(--color-text-secondary)}.item-input:focus{outline:none}.add-btn{width:40px;height:40px;border-radius:50%;background:var(--color-primary);color:var(--color-primary-foreground);border:none;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;box-shadow:0 4px 12px rgba(var(--color-primary-rgb),.22);flex-shrink:0;position:absolute;right:.3rem;top:50%;transform:translateY(-50%)}.add-btn:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-50%) scale(1.05)}.add-btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none;transform:translateY(-50%)}.suggestions-dropdown{position:absolute;top:calc(100% + .5rem);left:0;right:0;background:var(--color-bg-card);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);max-height:280px;overflow-y:auto;z-index:100}.suggestion-section-header{padding:.6rem 1rem .4rem;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);background:var(--color-bg-secondary)}.suggestion-divider{height:1px;background:var(--color-border)}.suggestion-item{padding:.75rem 1rem;cursor:pointer;transition:background .2s;display:flex;flex-direction:column;align-items:stretch;gap:.35rem}.suggestion-item.recipe{background:linear-gradient(90deg,rgba(var(--color-primary-rgb),.12) 0%,transparent 100%)}.suggestion-item.recipe:hover{background:linear-gradient(90deg,rgba(var(--color-primary-rgb),.2) 0%,var(--color-check-bg) 100%)}.suggestion-main-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.suggestion-tags{display:flex;flex-wrap:wrap;gap:.35rem}.suggestion-tag{padding:.2rem .55rem;border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-bg-secondary);font-size:.7rem;font-weight:600}.suggestion-tag.more{color:var(--color-text-secondary);background:transparent;border-style:dashed}.ing-name{font-weight:500;color:var(--color-text-primary)}.ing-cat{font-size:.85rem;color:var(--color-text-secondary)}.shopping-list{display:flex;flex-direction:column;gap:.5rem}.shopping-item{background:var(--color-bg-card);padding:.85rem 1rem;border-radius:var(--radius-lg);display:flex;align-items:center;gap:.75rem;box-shadow:var(--shadow-sm);border:1px solid var(--color-border);transition:all .2s}.shopping-item.checked{opacity:.6}.shopping-item.checked .item-name{text-decoration:line-through;color:var(--color-text-secondary)}.checkbox{width:30px;height:30px;border-radius:50%;border:2px solid var(--color-border);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all .2s}.shopping-item.checked .checkbox{background:var(--color-check-bg);border-color:var(--color-primary)}.checkbox span,.checkbox svg{font-size:1rem;color:var(--color-primary)}.item-details{flex:1;cursor:pointer}.item-name{font-size:.95rem;font-weight:500;color:var(--color-text-primary)}.item-qty{font-size:.875rem;color:var(--color-text-secondary);margin-left:.5rem}.edit-icon-btn{background:none;border:none;font-size:1.1rem;cursor:pointer;padding:.35rem;opacity:.4;transition:all .2s;color:var(--color-text-secondary);display:inline-flex;align-items:center;justify-content:center}.edit-icon-btn:hover{opacity:1}.shopping-item.editing{background:var(--color-check-bg)}.edit-qty-wrapper{display:flex;align-items:center;gap:.5rem;background:var(--color-bg-secondary);padding:.35rem .6rem;border-radius:var(--radius-pill);border:2px solid var(--color-border)}.edit-qty-wrapper button{width:28px;height:28px;border-radius:50%;border:none;background:var(--color-primary);color:var(--color-primary-foreground);cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center}.edit-qty-wrapper span{min-width:24px;text-align:center;font-weight:600}.save-btn{background:var(--color-primary);color:var(--color-primary-foreground);border:none;padding:.55rem 1rem;border-radius:var(--radius-pill);font-weight:600;cursor:pointer;transition:all .2s}.save-btn:hover{background:var(--color-primary-hover)}.checked-section{margin-top:1.5rem}.checked-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding:0 .5rem}.checked-header h3{font-size:.875rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);font-weight:700}.clear-btn{background:none;border:none;color:var(--color-text-secondary);font-size:.875rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:var(--radius-pill);transition:all .2s}.clear-btn:hover{background:var(--color-check-bg);color:var(--color-primary)}.clear-btn svg{color:currentColor}.checked-list{display:flex;flex-direction:column;gap:.5rem}.empty-state{text-align:center;padding:3rem 1rem;color:var(--color-text-secondary);font-style:italic}.loading,.error{text-align:center;padding:2rem;color:var(--color-text-secondary)}.recipe-form-overlay{position:fixed;inset:0;background:#0a1414b3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;justify-content:center;align-items:center;padding:1rem;z-index:2000;overflow-y:auto}.recipe-form-card{position:relative;background:linear-gradient(145deg,var(--color-form-gradient-start) 0%,var(--color-form-gradient-end) 100%);width:100%;max-width:600px;border-radius:var(--radius-xl);box-shadow:0 20px 60px #2d2a2633;display:flex;flex-direction:column;max-height:95vh;animation:slideUp .3s ease-out;color:var(--color-text-primary);overflow:hidden}.recipe-form-card:before{content:"";position:absolute;top:-30px;right:-30px;width:300px;height:300px;background:radial-gradient(circle at 70% 30%,rgba(var(--color-primary-rgb),.16),transparent 55%),radial-gradient(circle at 30% 70%,rgba(var(--color-accent-rgb),.12),transparent 60%);opacity:.6;pointer-events:none;z-index:0}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.form-header{position:relative;z-index:1;padding:1.5rem 2rem;border-bottom:2px solid var(--color-border);display:flex;justify-content:space-between;align-items:center}.header-actions{display:flex;align-items:center;gap:.75rem}.edit-toggle-btn{background:var(--color-bg-secondary);color:var(--color-primary);border:2px solid var(--color-primary);padding:.5rem 1rem;border-radius:var(--radius-pill);font-weight:600;cursor:pointer;font-size:.875rem;transition:all .2s}.edit-toggle-btn:hover{background:var(--color-primary);color:var(--color-primary-foreground);transform:translateY(-1px)}.form-header h3{margin:0;font-size:1.75rem;font-weight:800;color:var(--color-text-primary)}.close-btn{background:none;border:none;font-size:2rem;color:var(--color-text-secondary);opacity:.6;cursor:pointer;line-height:1;transition:all .2s;padding:.25rem}.close-btn:hover{opacity:1;transform:rotate(90deg)}form{position:relative;z-index:1;padding:2rem;overflow-y:auto;display:flex;flex-direction:column;gap:1.75rem}.form-group-row{display:flex;gap:1.5rem}.flex-2{flex:2}.flex-1{flex:1}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:700;font-size:.85rem;color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.05em;opacity:.7}.form-group input,.form-group textarea{padding:.875rem 1rem;border-radius:var(--radius-md);border:2px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:.95rem;transition:all .2s;font-family:inherit}.form-group input:focus,.form-group textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.2);outline:none}.ingredient-add-box{display:flex;gap:.75rem;align-items:center;flex-wrap:nowrap;margin-bottom:1rem;background:var(--color-bg-secondary);padding:1rem;border-radius:var(--radius-lg);border:2px dashed var(--color-border)}.search-container{flex:3;position:relative;min-width:0}.amount-input{flex:1.5;min-width:0}.ingredient-add-btn{width:48px;height:48px;background:var(--color-primary);color:var(--color-primary-foreground);border:none;border-radius:50%;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.ingredient-add-btn:hover{background:var(--color-primary-hover);transform:scale(1.05)}.ingredient-tags{display:flex;flex-wrap:wrap;gap:.75rem;min-height:40px}.ingredient-tag{background:var(--color-bg-secondary);border:2px solid var(--color-border);padding:.625rem 1rem;border-radius:var(--radius-pill);display:flex;align-items:center;gap:.75rem;box-shadow:var(--shadow-sm);transition:all .2s}.ingredient-tag:hover{border-color:var(--color-primary)}.tag-amount{font-size:.85rem;font-weight:700;color:var(--color-primary);background:var(--color-check-bg);padding:3px 10px;border-radius:var(--radius-pill)}.tag-name{font-weight:500;font-size:.95rem}.category-input-row{display:flex;gap:.75rem;align-items:center;flex-wrap:nowrap}.category-input{flex:1;min-width:0}.category-add-btn{padding:.6rem 1rem;border-radius:var(--radius-pill);border:2px solid var(--color-primary);background:transparent;color:var(--color-primary);font-weight:600;cursor:pointer;transition:all .2s;flex-shrink:0}.category-add-btn:hover{background:var(--color-primary);color:var(--color-primary-foreground)}.category-tags{display:flex;flex-wrap:wrap;gap:.5rem;min-height:32px}.category-tag{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .75rem;border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-bg-secondary);font-size:.85rem;font-weight:600}.category-tag.read-only{padding:.35rem .65rem}.category-remove{border:none;background:none;color:var(--color-text-secondary);cursor:pointer;font-size:.85rem;opacity:.7;padding:0}.category-remove:hover{opacity:1;color:#ef4444}.view-text.instructions{white-space:pre-wrap;line-height:1.7;background:var(--color-bg-secondary);font-size:1rem}.tag-remove{background:none;border:none;color:var(--color-text-secondary);opacity:.5;font-size:1.2rem;cursor:pointer;padding:0;margin-left:.25rem;transition:all .2s}.tag-remove:hover{opacity:1;color:#ef4444}.tag-wrapper{position:relative}.tag-edit-popover{position:absolute;top:100%;left:0;margin-top:.5rem;background:var(--color-bg-secondary);border:2px solid var(--color-primary);border-radius:var(--radius-lg);padding:1rem;box-shadow:var(--shadow-lg);z-index:10;min-width:300px;display:flex;flex-direction:column;gap:.75rem}.tag-edit-popover input{padding:.75rem;border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:.95rem;background:var(--color-bg-card);color:var(--color-text-primary)}.edit-catalog{display:flex;flex-direction:column;gap:.5rem;font-size:.85rem}.popover-actions{display:flex;gap:.5rem}.popover-actions button{flex:1;padding:.75rem;border-radius:var(--radius-pill);border:none;font-weight:600;cursor:pointer;transition:all .2s}.popover-actions button:first-child{background:var(--color-primary);color:var(--color-primary-foreground)}.popover-actions button:last-child{background:var(--color-bg-secondary);color:var(--color-text-primary);border:2px solid var(--color-border)}.suggestions-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--color-bg-card);border:2px solid var(--color-border);border-radius:var(--radius-md);margin-top:4px;z-index:10;box-shadow:var(--shadow-lg);overflow:hidden;max-height:200px;overflow-y:auto}.suggestion-item{padding:.875rem;cursor:pointer;transition:background .2s;font-size:.95rem;color:var(--color-text-primary)}.suggestion-item:hover{background:var(--color-check-bg)}.suggestion-item.new{color:var(--color-primary);font-weight:600;border-top:1px solid var(--color-border)}.empty-hint{color:var(--color-text-secondary);font-style:italic;font-size:.9rem}.photo-upload{display:flex;flex-direction:column;gap:.75rem}.photo-help{color:var(--color-text-secondary);font-size:.85rem}.photo-preview{width:100%;max-height:220px;object-fit:cover;border-radius:var(--radius-lg);border:2px solid var(--color-border);box-shadow:var(--shadow-sm)}.personal-sections{display:grid;grid-template-columns:1fr;gap:1.5rem;margin-top:1rem}.personal-column{background:var(--color-bg-card);padding:1.5rem;border-radius:var(--radius-lg);border:2px solid var(--color-border)}.avatar-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.avatar-circle{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;background:var(--color-check-bg);border:2px solid var(--color-primary)}.avatar-header label{font-weight:700;font-size:1rem;margin:0;text-transform:none;opacity:1}.field-group{display:flex;flex-direction:column;gap:.75rem}.review-toggle{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--color-text-secondary)}.review-off-hint{color:var(--color-text-secondary);font-style:italic;margin:0}.rating-row{display:flex;align-items:center;gap:1rem}.rating-row input[type=range]{flex:1}.rating-val{font-weight:700;color:var(--color-primary);min-width:60px}.stars{font-size:1.25rem}.view-text.notes{background:var(--color-bg-secondary);padding:.875rem;border-radius:var(--radius-md);border:2px solid var(--color-border);min-height:60px;font-size:.9rem;line-height:1.6}.form-actions{display:flex;gap:1rem;padding-top:1rem;border-top:2px solid var(--color-border)}.view-actions{display:flex;padding-top:1rem;border-top:2px solid var(--color-border)}.primary-btn,.secondary-btn{flex:1;padding:1rem;border-radius:var(--radius-pill);font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s;border:none}.primary-btn{background:var(--color-primary);color:var(--color-primary-foreground);box-shadow:0 6px 16px rgba(var(--color-primary-rgb),.25)}.primary-btn:hover{background:var(--color-primary-hover);transform:translateY(-2px);box-shadow:0 8px 20px rgba(var(--color-primary-rgb),.35)}.secondary-btn{background:var(--color-bg-secondary);color:var(--color-text-primary);border:2px solid var(--color-border)}.secondary-btn:hover{background:var(--color-bg-primary)}.view-text{background:var(--color-bg-secondary);padding:.875rem;border-radius:var(--radius-md);border:2px solid var(--color-border);min-height:45px}.view-text.name{font-weight:600;font-size:1.1rem}@media(min-width:768px){.recipe-form-card{max-width:900px}.recipe-form-card:before{width:400px;height:400px}.form-header h3{font-size:2rem}.personal-sections{grid-template-columns:1fr 1fr}.form-group-row,.ingredient-add-box{flex-direction:row}}@media(min-width:1024px){.recipe-form-overlay{padding:2rem}.recipe-form-card{max-height:90vh}}.recepten-page{padding:0}.recepten-header{margin-bottom:2rem}.header-top{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.header-top h2{margin:0;font-size:1.75rem;font-weight:800;color:var(--color-text-primary)}.add-recipe-btn{background:var(--color-primary);color:var(--color-primary-foreground);border:none;padding:1rem 1.5rem;border-radius:var(--radius-pill);font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .2s;font-size:1rem;box-shadow:0 6px 16px rgba(var(--color-primary-rgb),.25);width:100%;max-width:100%}.add-recipe-btn span{font-size:1.25rem}.add-recipe-btn:hover{background:var(--color-primary-hover);transform:translateY(-2px);box-shadow:0 6px 20px rgba(var(--color-primary-rgb),.35)}.search-bar input{width:100%;padding:1rem 1.25rem;border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-bg-card);color:var(--color-text-primary);font-size:1rem;box-shadow:var(--shadow-md);transition:all .2s}.search-bar input:focus{outline:none;box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.2),var(--shadow-md)}.recipe-grid{display:grid;grid-template-columns:1fr;gap:1rem}.recipe-card{background:var(--color-bg-card);padding:1.5rem;border-radius:var(--radius-lg);border:none;border:1px solid var(--color-border);display:flex;flex-direction:column;gap:.75rem;transition:all .2s;box-shadow:var(--shadow-sm);color:var(--color-text-primary);min-height:360px}.recipe-media-placeholder{width:100%;height:140px;border-radius:var(--radius-md);background:radial-gradient(circle at top,rgba(var(--color-primary-rgb),.35),rgba(var(--color-bg-primary-rgb),.2)),linear-gradient(135deg,rgba(var(--color-bg-secondary-rgb),.8),rgba(var(--color-bg-primary-rgb),1));border:1px solid rgba(var(--color-primary-rgb),.25);display:flex;align-items:center;justify-content:center;color:var(--color-primary)}.recipe-media-image{width:100%;height:140px;border-radius:var(--radius-md);object-fit:cover;border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.recipe-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.recipe-card h3{margin:0;font-size:1.25rem;font-weight:700;color:var(--color-text-primary)}.recipe-tags{display:flex;flex-wrap:wrap;gap:.4rem}.recipe-tag{padding:.3rem .65rem;border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-bg-secondary);font-size:.75rem;font-weight:600}.recipe-tag.more{color:var(--color-text-secondary);background:transparent;border-style:dashed}.rating{font-size:1rem;letter-spacing:1px}.ingredient-count{font-size:.875rem;color:var(--color-text-secondary)}.view-btn{margin-top:auto;padding:.75rem;border-radius:var(--radius-pill);background:var(--color-bg-secondary);color:var(--color-text-primary);border:2px solid var(--color-border);font-weight:600;cursor:pointer;transition:all .2s}.view-btn:hover{background:var(--color-primary);color:var(--color-primary-foreground);border-color:var(--color-primary)}.no-results{grid-column:1 / -1;text-align:center;padding:3rem 1rem;color:var(--color-text-secondary);font-style:italic}.recipe-ratings-row{display:flex;flex-direction:column;gap:.4rem}.mini-rating{display:flex;align-items:center;gap:.5rem;font-size:.875rem}.notes-previews{display:flex;flex-direction:column;gap:.5rem;background:var(--color-bg-secondary);padding:.875rem;border-radius:var(--radius-md);font-size:.85rem;border:1px solid var(--color-border)}.note-snippet strong{color:var(--color-primary)}.loading{text-align:center;padding:3rem 1rem;color:var(--color-text-secondary)}@media(min-width:768px){.header-top{flex-direction:row;justify-content:space-between;align-items:center}.header-top h2{font-size:2rem}.add-recipe-btn{padding:.875rem 1.5rem;width:auto}.recipe-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem}}@media(min-width:1024px){.recipe-grid{grid-template-columns:repeat(3,1fr)}}.week-page{display:flex;flex-direction:column;gap:1rem}.confetti-container{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:2500}.confetti-piece{position:absolute;top:-20px;width:10px;height:14px;border-radius:2px;animation-name:confetti-fall;animation-timing-function:ease-out;animation-fill-mode:forwards}@keyframes confetti-fall{0%{transform:translateY(-20px) rotate(0);opacity:1}to{transform:translateY(110vh) rotate(360deg);opacity:0}}.week-title{margin:0;font-size:1.35rem;font-weight:700;color:var(--color-text-primary)}.today-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1.1rem;display:flex;flex-direction:column;gap:.6rem;text-align:center;align-items:center}.today-card h3{margin:0;font-size:1.2rem;font-weight:700;color:var(--color-text-primary)}.today-card p{margin:0;color:var(--color-text-secondary);font-size:.9rem}.today-actions{display:flex;flex-direction:column;gap:.6rem;width:100%;align-items:center}.random-btn{margin-top:.5rem;padding:.6rem 1rem;border-radius:var(--radius-pill);border:2px solid var(--color-primary);background:transparent;color:var(--color-primary);font-weight:600;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:.5rem}.random-btn:hover{background:var(--color-primary);color:var(--color-primary-foreground)}.today-view-btn{padding:.6rem 1rem;border-radius:var(--radius-pill);border:2px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text-primary);font-weight:600;cursor:pointer;transition:all .2s}.today-view-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.week-section h3{margin:0 0 .75rem;font-size:1rem;font-weight:700;color:var(--color-text-primary)}.week-list{display:flex;flex-direction:column;gap:.5rem}.week-row{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:.6rem;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:.75rem 1rem;box-shadow:var(--shadow-sm)}.week-row.is-today{border-color:var(--color-primary);box-shadow:0 10px 24px rgba(var(--color-primary-rgb),.2)}.week-day{font-weight:700;color:var(--color-text-primary)}.week-status{color:var(--color-text-secondary);font-size:.9rem;text-align:center;border:none;background:none;padding:0;width:100%;font:inherit}.week-status.clickable{cursor:pointer}.week-status.clickable:hover{color:var(--color-primary)}.week-status:disabled{cursor:default}.week-action{color:var(--color-text-secondary);font-weight:700;display:flex;justify-content:flex-end;gap:.4rem}.week-add-btn{width:30px;height:30px;border-radius:50%;border:none;background:var(--color-primary);color:var(--color-primary-foreground);font-size:1rem;cursor:pointer;box-shadow:0 6px 16px rgba(var(--color-primary-rgb),.25);transition:all .2s;display:inline-flex;align-items:center;justify-content:center}.week-add-btn:hover{background:var(--color-primary-hover);transform:scale(1.05)}.week-remove-btn{width:28px;height:28px;border-radius:50%;border:2px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:.8rem;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;justify-content:center}.week-remove-btn:hover{background:var(--color-primary);color:var(--color-primary-foreground);border-color:var(--color-primary)}.week-picker-overlay{position:fixed;inset:0;background:#0a1414b3;display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:2100}.week-picker-card{width:100%;max-width:520px;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.picker-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.picker-close{background:none;border:none;font-size:1.4rem;color:var(--color-text-secondary);cursor:pointer}.picker-search{display:flex;flex-direction:column;gap:.75rem}.picker-search input{padding:.75rem 1rem;border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text-primary)}.picker-new{padding:.6rem 1rem;border-radius:var(--radius-pill);border:2px solid var(--color-primary);background:transparent;color:var(--color-primary);font-weight:600;cursor:pointer}.picker-new:hover{background:var(--color-primary);color:var(--color-primary-foreground)}.picker-results{display:flex;flex-direction:column;gap:.5rem;max-height:320px;overflow-y:auto}.picker-result{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text-primary);cursor:pointer;transition:all .2s;text-align:left}.picker-result:hover{border-color:var(--color-primary);box-shadow:0 6px 12px rgba(var(--color-primary-rgb),.15)}.picker-meta{font-size:.8rem;color:var(--color-text-secondary)}.picker-empty{color:var(--color-text-secondary);text-align:center;padding:1rem 0;margin:0}@media(min-width:768px){.today-card{padding:1.5rem}.today-actions{flex-direction:row;justify-content:center;width:auto}.week-row{padding:.9rem 1.2rem}.picker-search{flex-direction:row;align-items:center}.picker-search input{flex:1}}.nominaties-module-container{min-height:100vh;padding:2.5rem 6vw 4rem;background:radial-gradient(circle at top,#fff6e8,#f6eee1 35%,#f3e4d2);color:#2b1d10}.nominaties-header{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:2.5rem}.nominaties-kicker{text-transform:uppercase;letter-spacing:.18em;font-size:.7rem;margin:0 0 .5rem;color:#7a5a3f}.nominaties-header h1{margin:0;font-size:clamp(2.4rem,4vw,3.4rem)}.nominaties-subtitle{margin:0;max-width:320px;color:#6b4d35}@media(max-width:800px){.nominaties-header{flex-direction:column;align-items:flex-start}}.nominaties-page{display:grid;gap:2rem}.nominaties-form-card{background:#fffaf2;padding:1.75rem;border-radius:20px;border:1px solid #ebdbc8;box-shadow:0 18px 40px #654b3414}.nominaties-form-card h2{margin-top:0}.nominaties-form-card form{display:grid;gap:1rem}.nominaties-form-card label{display:grid;gap:.4rem;font-weight:600;color:#4a3321}.nominaties-form-card input[type=text],.nominaties-form-card select,.nominaties-form-card textarea{padding:.65rem .75rem;border-radius:12px;border:1px solid #dec7b2;background:#fff;font-size:.95rem}.nominaties-form-card button{justify-self:start;padding:.7rem 1.4rem;border:none;border-radius:999px;background:#7c4f2c;color:#fff;font-weight:600;cursor:pointer}.nominaties-form-card button:disabled{opacity:.6;cursor:not-allowed}.nominaties-error{margin:0;color:#9a2f1f;font-weight:600}.nominaties-list-header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.nominaties-grid{display:grid;gap:1.5rem}.nominatie-card{display:grid;grid-template-columns:minmax(180px,260px) 1fr;gap:1.5rem;padding:1.5rem;background:#fff;border-radius:24px;border:1px solid #e6d4bf;box-shadow:0 14px 30px #583c2414}.nominatie-card img{width:100%;height:100%;object-fit:cover;border-radius:18px}.nominatie-content h3{margin:0 0 .5rem;font-size:1.4rem}.nominatie-description{margin:.75rem 0 0}.nominatie-meta{margin:.75rem 0;color:#6f4c33}.nominatie-badge{display:inline-block;padding:.3rem .75rem;border-radius:999px;background:#f2d7b8;color:#6a3f1f;font-weight:600;font-size:.8rem}.nominatie-votes{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-top:1rem}.nominatie-votes button{border:1px solid #c9a686;background:#fef6ec;border-radius:999px;padding:.5rem 1rem;cursor:pointer;font-weight:600}.nominatie-votes button.active{background:#7c4f2c;color:#fff;border-color:#7c4f2c}.nominatie-votes button:disabled{opacity:.6;cursor:not-allowed}.nominatie-total{color:#6f4c33;font-weight:600}.nominaties-empty{color:#6f4c33}@media(max-width:900px){.nominatie-card{grid-template-columns:1fr}}.backlog-module{min-height:100vh;background:linear-gradient(180deg,#f8f1e6,#fdfbf7 45%,#f7efe4);position:relative;color:#2f241a}.backlog-module:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at top,rgba(255,232,199,.6),transparent 60%),repeating-linear-gradient(0deg,rgba(232,206,176,.2),rgba(232,206,176,.2) 1px,transparent 1px,transparent 16px);pointer-events:none;opacity:.6}.backlog-header{position:relative;padding:2.5rem 1.5rem 3rem;overflow:hidden}.backlog-header:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,#ffd6a5b3,#fff0);opacity:.9;pointer-events:none}.backlog-header-content{position:relative;max-width:1200px;margin:0 auto;z-index:1}.backlog-back{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:999px;background:#2f241a;color:#fff7ed;text-decoration:none;font-weight:700;box-shadow:0 10px 18px #2f241a2e}.backlog-kicker{text-transform:uppercase;font-size:.8rem;letter-spacing:.18em;margin:1.5rem 0 .5rem;color:#8b6f53}.backlog-header h1{font-size:clamp(2.2rem,4vw,3.6rem);margin-bottom:.6rem}.backlog-subtitle{max-width:520px;color:#5d4a39;font-size:1rem}@media(max-width:600px){.backlog-header{padding:2rem 1.25rem 2.5rem}}.backlog-page{display:flex;flex-direction:column;gap:2.5rem;padding:0 1.5rem 3rem;max-width:1200px;margin:0 auto}.backlog-intro{display:grid;gap:2rem}.backlog-intro-card{background:linear-gradient(145deg,#fff6e9,#fff);border-radius:28px;padding:2rem;border:1px solid rgba(199,160,120,.3);box-shadow:0 18px 40px #604c3814;position:relative;overflow:hidden}.backlog-intro-card:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,#e3ba8224,#e3ba8224 8px,#fff0 8px 16px);opacity:.4;pointer-events:none}.backlog-intro-card h2{font-size:2rem;margin-bottom:.75rem;position:relative;z-index:1}.backlog-intro-card p{color:#4c3e30;max-width:520px;position:relative;z-index:1}.backlog-status{display:flex;flex-wrap:wrap;gap:1.5rem;margin-top:1.5rem;position:relative;z-index:1}.backlog-status div{display:flex;flex-direction:column;gap:.3rem}.status-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#8d7a68}.status-value{font-weight:700;font-size:1rem}.backlog-form{background:#fff;border-radius:24px;padding:2rem;border:1px solid rgba(169,135,98,.2);box-shadow:0 12px 30px #604c380f;display:grid;gap:1.25rem}.backlog-form-header h3{margin-bottom:.4rem}.backlog-form-header p{color:#6f5c4d}.backlog-form-field{display:grid;gap:.5rem}.backlog-form-field label,.field-label{font-weight:600;color:#3f3124}.backlog-form-field input,.backlog-form-field textarea{font:inherit;border-radius:14px;border:1px solid rgba(121,95,72,.2);padding:.75rem .9rem;background:#fff8ef;color:#2c241c;transition:border-color .2s ease}.backlog-form-field input:focus,.backlog-form-field textarea:focus{outline:none;border-color:#d58a4b}.type-options{display:flex;gap:.6rem;flex-wrap:wrap}.type-option{border:1px solid rgba(121,95,72,.2);background:#fff4e7;color:#4a3727;padding:.5rem 1rem;border-radius:999px;cursor:pointer;transition:all .2s ease}.type-option.active,.type-option:hover{border-color:#c6712f;background:#ffe0c3}.backlog-form-error{color:#a9442f;background:#ffe7e0;padding:.6rem .75rem;border-radius:12px;font-weight:600}.backlog-submit{border:none;background:#d8742d;color:#fffaf3;padding:.85rem 1.4rem;border-radius:999px;font-weight:700;cursor:pointer;align-self:flex-start;box-shadow:0 10px 20px #d8742d38;transition:transform .2s ease,box-shadow .2s ease}.backlog-submit:hover{transform:translateY(-2px);box-shadow:0 16px 26px #d8742d42}.backlog-board{display:grid;gap:2rem}.backlog-column{background:#fdfaf7;border-radius:26px;padding:1.75rem;border:1px solid rgba(165,137,104,.2);position:relative;overflow:hidden;box-shadow:0 18px 40px #604c380f}.backlog-column.construction{background:#fff4e0}.backlog-column.construction:before{content:"";position:absolute;left:0;right:0;top:0;height:18px;background:repeating-linear-gradient(45deg,#f3c87c,#f3c87c 10px,#ffe1a8 10px 20px)}.column-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.column-kicker{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:#a07a55}.column-count{background:#2f241a;color:#fff7ed;padding:.2rem .75rem;border-radius:999px;font-weight:700}.column-body{display:grid;gap:1.2rem}.empty-state{padding:1rem;border-radius:16px;background:#ffffffb3;border:1px dashed rgba(152,120,90,.4);color:#7f6a57;font-weight:600}.backlog-item{background:#fff;border-radius:20px;padding:1.25rem 1.25rem 1.4rem;border:1px solid rgba(143,114,87,.2);display:grid;gap:.75rem;position:relative;animation:rise .5s ease both;animation-delay:calc(var(--stagger) * .05s)}.backlog-item.item--backlog{box-shadow:0 10px 24px #5a46340f}.backlog-item.item--backlog:after{content:"";position:absolute;inset:6px 6px auto auto;width:18px;height:18px;border-radius:4px;background:#ffe7c4;box-shadow:-4px 4px #00000014}.backlog-item.item--construction{border:2px solid rgba(214,132,52,.4);background:#fffdf9}.backlog-item-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.item-tag{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:.2rem .6rem;border-radius:999px;background:#f2ebe4;color:#5a4636}.item-tag[data-type=feature]{background:#ffe9cc;color:#7a3e0f}.item-tag[data-type=bug]{background:#ffe2dc;color:#8a3421}.item-tag[data-type=idee]{background:#e9f1ff;color:#2f4b6f}.item-epic{font-size:.8rem;font-weight:600;color:#6c5644}.backlog-item-title{font-size:1.15rem}.backlog-item-description{color:#5a4a3c}.item-progress{display:grid;gap:.6rem}.item-progress-bar{height:8px;background:#efe4d7;border-radius:999px;overflow:hidden}.item-progress-bar span{display:block;height:100%;background:linear-gradient(90deg,#d8742d,#f2b56d)}.item-progress-meta{display:flex;justify-content:space-between;font-size:.85rem;color:#6c5644;font-weight:600}.item-progress input[type=range]{width:100%}.item-actions{display:grid;gap:.6rem}.action-button{border:1px solid rgba(121,95,72,.2);background:#fff8ef;color:#4b3b2e;padding:.6rem .9rem;border-radius:14px;font-weight:600;display:flex;align-items:center;gap:.5rem;justify-content:center;cursor:pointer;transition:all .2s ease}.action-button:hover{border-color:#d07438;background:#fff1df}.vote-button.active{background:#ffe0c3;border-color:#d07438}.vote-count{font-weight:800;background:#2f241a;color:#fff7ed;padding:.15rem .5rem;border-radius:999px;min-width:32px;text-align:center}.move-button{background:#d8742d;color:#fffaf3;border-color:#d8742d}.move-button:hover{background:#c56a28}.breakdown-button[disabled]{cursor:not-allowed;opacity:.7}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(min-width:900px){.backlog-intro{grid-template-columns:1.2fr 1fr;align-items:start}.backlog-board{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.backlog-page{padding:0 1rem 2.5rem}.backlog-intro-card,.backlog-form,.backlog-column{padding:1.5rem}}.require-admin{max-width:720px;margin:4rem auto;padding:2rem;background:var(--color-bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--color-border);text-align:center}.require-admin h2{margin-bottom:.75rem}.require-admin p{color:var(--color-text-primary);opacity:.75;margin-bottom:1.5rem}.require-admin-link{color:var(--color-accent);text-decoration:none;font-weight:600}.admin-page{padding:2rem 3rem 3rem;max-width:1100px;margin:0 auto}.admin-header{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:2rem}.admin-header-actions{display:flex;align-items:center;gap:1rem}.admin-module-select{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:600;color:var(--color-text-primary)}.admin-module-select select{padding:.35rem .6rem;border-radius:6px;border:1px solid var(--color-border);background:var(--color-bg)}.admin-back{color:var(--color-accent);text-decoration:none;font-weight:600}.admin-header h1{margin-bottom:.5rem}.admin-header p{color:var(--color-text-primary);opacity:.75}.admin-alert{background:#fff4e5;border:1px solid #f7c676;color:#8a4b02;padding:1rem 1.5rem;border-radius:var(--radius-md);margin-bottom:1.5rem}.admin-status{padding:1.5rem;background:var(--color-bg-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border)}.admin-table-wrapper{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow-x:auto}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{text-align:left;padding:1rem;border-bottom:1px solid var(--color-border)}.admin-table th{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em}.admin-user-name{font-weight:600}.admin-user-meta{font-size:.85rem;opacity:.7}.admin-table select{padding:.35rem .5rem;border-radius:6px;border:1px solid var(--color-border);background:var(--color-bg)}.admin-table input{width:100%;padding:.35rem .5rem;border-radius:6px;border:1px solid var(--color-border);background:var(--color-bg)}.admin-save{background:var(--color-accent);border:1px solid var(--color-accent);color:#fff;padding:.4rem .9rem;border-radius:6px;margin-right:.5rem}.admin-delete{background:#ffe8e8;border:1px solid #f4a0a0;color:#9c1c1c;padding:.4rem .8rem;border-radius:6px}.admin-eten-header{background:linear-gradient(135deg,#e6f3f7,#f2fbf8);color:#235061}.admin-eten-cell{background:#f7fcfb;border-left:2px solid #d5edf0;min-width:240px}.admin-eten-summary ul{list-style:none;margin:0;padding:0}.admin-eten-summary li{display:flex;justify-content:space-between;gap:.5rem;font-size:.9rem;margin-bottom:.35rem}.admin-eten-meta{font-size:.8rem;opacity:.7;margin-left:.5rem}.admin-eten-toggle{margin-top:.5rem;background:#e5f5f0;border:1px solid #b7ddd4;color:#1e4c41;padding:.35rem .7rem;border-radius:6px;font-size:.85rem}.admin-eten-search{margin-top:.75rem;display:grid;gap:.5rem}.admin-eten-search input{margin-top:.25rem}.admin-eten-results{display:grid;gap:.5rem}.admin-eten-result{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.4rem .6rem;border-radius:6px;background:#eef8f3;border:1px solid #d2ebe1}.admin-eten-result button{background:#d8efe7;border:1px solid #b7ddd4;color:#1e4c41;padding:.3rem .6rem;border-radius:6px}.admin-eten-error{color:#9c1c1c;font-size:.85rem}@media(max-width:720px){.admin-page{padding:1.5rem}.admin-header{flex-direction:column;align-items:flex-start}.admin-header-actions{width:100%;justify-content:space-between}}.require-user{max-width:720px;margin:4rem auto;padding:2rem;background:var(--color-bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--color-border);text-align:center}.require-user h2{margin-bottom:.75rem}.require-user p{color:var(--color-text-primary);opacity:.75;margin-bottom:1.5rem}.require-user-link{color:var(--color-accent);text-decoration:none;font-weight:600}.require-user-form{display:grid;gap:1rem;text-align:left}.require-user-field{display:grid;gap:.35rem;font-size:.9rem;color:var(--color-text-primary)}.require-user-field input{padding:.6rem .75rem;border-radius:8px;border:1px solid var(--color-border);background:var(--color-bg);color:inherit}.require-user-error{background:#ffe8e8;border:1px solid #f4a0a0;color:#9c1c1c;padding:.75rem 1rem;border-radius:8px;text-align:center}.require-user-submit{justify-self:center;padding:.65rem 1.5rem;border-radius:999px;border:none;background:var(--color-accent);color:#fff;font-weight:600;cursor:pointer}.auth-guard{min-height:60vh;display:flex;align-items:center;justify-content:center;padding:2rem}.auth-guard-card{max-width:520px;padding:2rem 2.5rem;border-radius:var(--radius-lg);background:var(--color-bg-secondary);border:1px solid var(--color-border);text-align:center;box-shadow:var(--shadow-sm)}.auth-guard-card h2{margin-bottom:.75rem}.auth-guard-card p{color:var(--color-text-secondary)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:3rem 1.5rem;background:radial-gradient(circle at top,rgba(224,120,86,.12),transparent 55%)}.login-card{width:min(520px,100%);padding:2.5rem 2.75rem;border-radius:var(--radius-lg);background:var(--color-bg-secondary);border:1px solid var(--color-border);box-shadow:var(--shadow-md)}.login-header{margin-bottom:2rem}.login-header h1{font-size:2rem;margin-bottom:.75rem}.login-header p{color:var(--color-text-secondary)}.login-eyebrow{display:inline-block;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent);font-weight:600;margin-bottom:.5rem}.login-steps{display:grid;gap:1.5rem}.login-form{display:grid;gap:1rem;margin-bottom:1.5rem}.login-form label{font-weight:600}.login-form input{padding:.85rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);font-size:1rem}.login-form button{padding:.9rem 1rem;border-radius:var(--radius-pill);border:none;background:var(--color-primary);color:#fff;font-weight:600;cursor:pointer;transition:background .2s ease}.login-form button:disabled{cursor:not-allowed;opacity:.7}.login-form button:hover:enabled{background:var(--color-primary-hover)}.login-step{font-weight:600;color:var(--color-text-secondary)}.login-step-hint{margin:0;color:var(--color-text-secondary);font-size:.95rem}.login-message{padding:.85rem 1rem;border-radius:var(--radius-sm);font-weight:500}.login-message.success{background:#1db9541f;color:#1b6d3b}.login-message.info{background:#e078561f;color:var(--color-text-primary)}.login-message.error{background:#dc35451f;color:#9f1b2d}.auth-callback{min-height:60vh;display:flex;align-items:center;justify-content:center;padding:2rem}.auth-callback-card{max-width:520px;padding:2rem 2.5rem;border-radius:var(--radius-lg);background:var(--color-bg-secondary);border:1px solid var(--color-border);text-align:center;box-shadow:var(--shadow-sm)}.auth-callback-card h2{margin-bottom:.75rem}.auth-callback-card p{color:var(--color-text-secondary)}
