body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}body{background-color:#fafafa;color:#222;font-family:Lato,sans-serif}h1,h2,h3,h4,h5,h6{font-family:Playfair Display,serif;font-weight:400}.app{margin:0 auto;max-width:1100px;padding:0 24px 60px}.header{border-bottom:1px solid #e8e8e8;margin-bottom:40px;padding:48px 0 32px}.header__main{align-items:flex-end;display:flex;gap:16px;justify-content:space-between}.header__title{color:#111;font-family:Playfair Display,serif;font-size:2.2rem;font-weight:500;letter-spacing:-.5px}.header__subtitle{color:#999;font-family:Lato,sans-serif;font-size:.95rem;font-weight:300;letter-spacing:.04em;margin-top:6px}.header__auth{align-items:center;display:flex;flex-shrink:0;gap:12px;padding-bottom:4px}.header__user{color:#555;font-size:.875rem;font-style:italic}.header__auth-btn{background:none;border:1px solid #ddd;border-radius:6px;color:#555;cursor:pointer;font-family:Lato,sans-serif;font-size:.875rem;padding:6px 14px;transition:border-color .15s,color .15s}.header__auth-btn:hover{border-color:#aaa;color:#222}.category-page{padding:32px 0 48px}.search-bar{align-items:center;background:#0000000f;border:none;border-radius:12px;display:flex;margin-bottom:28px;padding:0 14px;transition:background .2s ease}.search-bar:focus-within{background:#00000017}.search-bar__input{background:#0000;border:none;color:#222;flex:1 1;font-family:Lato,sans-serif;font-size:1rem;outline:none;padding:12px 0}.search-bar__input::placeholder{color:#00000059}.search-bar__clear{align-items:center;background:#00000026;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:.7rem;height:18px;justify-content:center;line-height:1;padding:0;transition:background .15s ease;width:18px}.search-bar__clear:hover{background:#00000040}.search-results__header{color:#888;font-family:Lato,sans-serif;font-size:.9rem;margin:0 0 20px}.search-results__grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(3,1fr)}@media (max-width:700px){.search-results__grid{gap:14px;grid-template-columns:repeat(2,1fr)}}@media (max-width:420px){.search-results__grid{grid-template-columns:1fr}}.category-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(3,1fr)}@media (max-width:700px){.category-grid{gap:14px;grid-template-columns:repeat(2,1fr)}}@media (max-width:420px){.category-grid{grid-template-columns:1fr}}.category-tile{border:1px solid #e8e8e8;border-radius:12px;cursor:pointer;overflow:hidden;transition:box-shadow .2s ease,transform .2s ease}.category-tile:hover{box-shadow:0 6px 24px #0000001f;transform:translateY(-3px)}.category-tile:focus{outline:2px solid #888;outline-offset:2px}.category-tile__image{align-items:center;background:#f0ede8;display:flex;height:200px;justify-content:center;position:relative}.category-tile__image img{display:block;height:100%;object-fit:cover;width:100%}.category-tile__overlay{background:linear-gradient(180deg,#0000 40%,#0000008c);inset:0;position:absolute}.category-tile__emoji{font-size:3.5rem;opacity:.6;position:relative;z-index:1}.category-tile__text{bottom:0;display:flex;flex-direction:column;gap:2px;left:0;padding:14px 16px;position:absolute;right:0;z-index:2}.category-tile__image:not(:has(img)) .category-tile__overlay{display:none}.category-tile__image:not(:has(img)) .category-tile__text{background:#fff;border-top:1px solid #e8e8e8;padding:14px 16px 16px;position:relative}.category-tile__image:not(:has(img)) .category-tile__name{color:#111}.category-tile__image:not(:has(img)) .category-tile__count{color:#999}.category-tile__name{color:#fff;font-family:Playfair Display,serif;font-size:1.2rem;font-weight:400}.category-tile__count{color:#fffc;font-size:.78rem;letter-spacing:.02em}.recipe-card{background:#fff;border:1px solid #e8e8e8;border-radius:10px;cursor:pointer;overflow:hidden;transition:box-shadow .2s ease}.recipe-card:hover{box-shadow:0 4px 20px #0000001a;transform:translateY(-2px);transition:box-shadow .2s ease,transform .2s ease}.recipe-card__image-placeholder{align-items:center;background-color:#f0ede8;display:flex;height:180px;justify-content:center;position:relative}.recipe-card__image-placeholder img{height:100%;object-fit:cover;width:100%}.recipe-card__no-image{font-size:2.5rem;opacity:.4}.recipe-card__difficulty{border-radius:12px;font-size:.7rem;letter-spacing:.06em;padding:3px 10px;position:absolute;right:10px;text-transform:uppercase;top:10px}.recipe-card__difficulty--easy{background:#eef4ee;color:#4a7c4a}.recipe-card__difficulty--medium{background:#fdf4e7;color:#8a6a20}.recipe-card__difficulty--hard{background:#fdeaea;color:#8a3030}.recipe-card__body{padding:16px 18px 20px}.recipe-card__category{color:#bbb;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.recipe-card__title{color:#111;font-size:1.1rem;font-weight:400;line-height:1.4;margin-top:6px}.recipe-card__time{color:#aaa;display:inline-block;font-size:.78rem;margin-top:10px}.category-recipe-list{padding:28px 0 48px}.category-recipe-list__header{display:flex;flex-direction:column;gap:10px;margin-bottom:28px}.category-recipe-list__back{background:none;border:none;color:#888;cursor:pointer;font-size:.85rem;letter-spacing:.02em;padding:0;width:-webkit-fit-content;width:fit-content}.category-recipe-list__back:hover{color:#333}.category-recipe-list__title{color:#111;font-family:Playfair Display,serif;font-size:1.7rem;font-weight:400;margin:0}.category-recipe-list__grid{grid-gap:28px;display:grid;gap:28px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.category-recipe-list__empty{color:#999;font-style:italic;margin-top:32px}.recipe-page{margin:0 auto;max-width:900px;padding-bottom:80px}.recipe-page__loading{color:#999;font-style:italic;padding:60px 0}.recipe-page__back{background:none;border:none;color:#777;cursor:pointer;display:inline-block;font-family:inherit;font-size:.9rem;letter-spacing:.02em;margin:24px 0 28px;padding:0}.recipe-page__back:hover{color:#111}.recipe-page__hero{border-radius:12px;height:400px;margin-bottom:36px;overflow:hidden;position:relative;width:100%}.recipe-page__hero img{height:100%;object-fit:cover;width:100%}.recipe-page__source-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;border-radius:6px;bottom:14px;color:#ffffffeb;font-size:.75rem;letter-spacing:.02em;padding:5px 11px;position:absolute;right:14px}.recipe-page__source-overlay a,.recipe-page__source-overlay span{color:#ffffffeb;text-decoration:none}.recipe-page__source-overlay a:hover{text-decoration:underline}.recipe-page__header{margin-bottom:32px}.recipe-page__title-row{align-items:flex-start;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:14px}.recipe-page__title-actions{align-items:center;display:flex;flex-shrink:0;flex-wrap:wrap;gap:10px}.recipe-page__edit-btn{background:none;border:1px solid #d0d0d0;border-radius:8px;color:#666;cursor:pointer;font-family:Lato,sans-serif;font-size:.82rem;font-weight:600;padding:7px 14px;transition:border-color .15s,color .15s,background .15s;white-space:nowrap}.recipe-page__edit-btn:hover{background:#f0f7f4;border-color:#2d6a4f;color:#2d6a4f}.recipe-page__delete-btn{background:none;border:1px solid #d0d0d0;border-radius:8px;color:#999;cursor:pointer;font-family:Lato,sans-serif;font-size:.82rem;font-weight:600;padding:7px 14px;transition:border-color .15s,color .15s,background .15s;white-space:nowrap}.recipe-page__delete-btn:hover{background:#fdecea;border-color:#c0392b;color:#c0392b}.recipe-page__delete-confirm{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.recipe-page__delete-confirm span{color:#c0392b;font-size:.85rem;font-weight:600;white-space:nowrap}.recipe-page__delete-confirm-yes{background:#c0392b;border:none;border-radius:7px;color:#fff;cursor:pointer;font-family:Lato,sans-serif;font-size:.82rem;font-weight:700;padding:6px 14px;transition:background .15s,opacity .15s;white-space:nowrap}.recipe-page__delete-confirm-yes:hover:not(:disabled){background:#a93226}.recipe-page__delete-confirm-yes:disabled{cursor:not-allowed;opacity:.5}.recipe-page__delete-confirm-no{background:#f0f0f0;border:none;border-radius:7px;color:#444;cursor:pointer;font-family:Lato,sans-serif;font-size:.82rem;font-weight:600;padding:6px 14px;transition:background .15s;white-space:nowrap}.recipe-page__delete-confirm-no:hover:not(:disabled){background:#e4e4e4}.recipe-page__title{color:#111;font-size:2.2rem;font-weight:400;line-height:1.2}.recipe-page__description{color:#666;font-size:1rem;font-style:italic;line-height:1.75;margin-bottom:16px}.recipe-page__tags{display:flex;flex-wrap:wrap;gap:8px}.tag{border-radius:20px;display:inline-block;font-size:.75rem;letter-spacing:.05em;padding:4px 13px;text-transform:uppercase}.tag--cuisine{background:#f0ede8;color:#7a6652}.tag--dietary,.tag--easy{background:#eef4ee;color:#4a7c4a}.tag--medium{background:#fdf4e7;color:#8a6a20}.tag--hard{background:#fdeaea;color:#8a3030}.recipe-page__unit-toggle{border:1px solid #e0e0e0;border-radius:7px;display:flex;flex-shrink:0;overflow:hidden}.recipe-page__unit-toggle button{background:#fff;border:none;color:#888;cursor:pointer;font-family:inherit;font-size:.85rem;padding:8px 16px;transition:background .15s,color .15s}.recipe-page__unit-toggle button.active{background:#111;color:#fff}.recipe-page__stats{border:1px solid #e8e8e8;border-radius:10px;display:flex;margin-bottom:52px;overflow:hidden}.stat{border-right:1px solid #e8e8e8;flex:1 1;padding:18px 16px;text-align:center}.stat:last-child{border-right:none}.stat__label{color:#aaa;display:block;font-size:.7rem;letter-spacing:.09em;margin-bottom:5px;text-transform:uppercase}.stat__value{color:#111;font-size:1.05rem}.stat__scaler{align-items:center;display:flex;gap:14px;justify-content:center}.stat__scaler span{color:#111;font-size:1.05rem;min-width:20px;text-align:center}.stat__scaler button{align-items:center;background:#f2f2f2;border:none;border-radius:50%;color:#333;cursor:pointer;display:flex;font-size:1.1rem;height:28px;justify-content:center;line-height:1;width:28px}.stat__scaler button:hover{background:#e0e0e0}.recipe-page__body{grid-gap:52px;align-items:start;display:grid;gap:52px;grid-template-columns:280px 1fr;margin-bottom:52px}@media (max-width:680px){.recipe-page__body{gap:36px;grid-template-columns:1fr}}.recipe-page__section h2{border-bottom:1px solid #e8e8e8;color:#111;font-size:1.1rem;font-weight:400;letter-spacing:.03em;margin-bottom:20px;padding-bottom:10px}.recipe-page__scale-note{color:#aaa;font-size:.8rem;font-style:italic;margin:-12px 0 14px}.recipe-page__ingredients ul{list-style:none}.recipe-page__ingredients li{border-bottom:1px solid #f2f2f2;display:flex;font-size:.92rem;gap:12px;line-height:1.5;padding:10px 0}.ingredient__amount{color:#111;flex-shrink:0;font-weight:500;min-width:72px}.ingredient__name{color:#333}.ingredient__notes{color:#aaa;font-style:italic}.recipe-page__steps ol{counter-reset:steps;list-style:none}.recipe-page__steps li{counter-increment:steps;padding:0 0 32px 52px;position:relative}.recipe-page__steps li:before{align-items:center;background:#111;border-radius:50%;color:#fff;content:counter(steps);display:flex;font-family:Lato,sans-serif;font-size:.8rem;height:30px;justify-content:center;left:0;position:absolute;top:2px;width:30px}.recipe-page__steps li:after{background:#ebebeb;bottom:0;content:"";left:14px;position:absolute;top:34px;width:1px}.recipe-page__steps li:last-child:after{display:none}.recipe-page__steps li p{color:#333;font-size:.93rem;line-height:1.75;margin-bottom:8px;padding-top:4px}.step__time{background:#f5f5f5;border-radius:12px;color:#999;display:inline-block;font-size:.78rem;margin-top:2px;padding:3px 11px}.recipe-page__nutrition{background:#fafafa;border:1px solid #e8e8e8;border-radius:10px;margin-bottom:36px;padding:26px 28px}.recipe-page__nutrition h2{align-items:baseline;display:flex;font-size:1.05rem;font-weight:400;gap:8px;margin-bottom:20px}.nutrition__per{color:#bbb;font-size:.78rem;font-style:italic}.nutrition__grid{display:flex;flex-wrap:wrap}.nutrition__item{border-right:1px solid #ebebeb;flex:1 1;min-width:80px;padding:10px 8px;text-align:center}.nutrition__item:last-child{border-right:none}.nutrition__value{color:#111;display:block;font-size:1.15rem;margin-bottom:3px}.nutrition__label{color:#bbb;font-size:.7rem;letter-spacing:.07em;text-transform:uppercase}.recipe-page__extra{margin-bottom:28px}.recipe-page__extra h2{border-bottom:1px solid #f0f0f0;color:#111;font-size:1rem;font-weight:400;margin-bottom:12px;padding-bottom:8px}.recipe-page__extra p{color:#555;font-size:.92rem;line-height:1.7}.recipe-page__equipment{display:flex;flex-wrap:wrap;gap:8px;list-style:none}.recipe-page__equipment li{background:#f5f5f5;border-radius:20px;color:#666;font-size:.85rem;padding:5px 14px}.recipe-page__tips{margin-bottom:32px}.recipe-page__tips h2{border-bottom:1px solid #f0f0f0;color:#111;font-size:1rem;font-weight:400;margin-bottom:16px;padding-bottom:8px}.tips-list{display:flex;flex-direction:column;gap:12px;list-style:none}.tips-list__item{align-items:flex-start;background:#fef9e7;border:1px solid #f9e4a0;border-radius:10px;color:#555;display:flex;font-size:.92rem;gap:12px;line-height:1.6;padding:12px 16px}.tips-list__icon{flex-shrink:0;font-size:1rem;margin-top:1px}.recipe-page__tips--empty{display:flex;flex-direction:column;gap:12px}.tips-generate-btn{align-self:flex-start;background:#2d6a4f;border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:Lato,sans-serif;font-size:.9rem;font-weight:700;padding:10px 20px;transition:background .15s,opacity .15s}.tips-generate-btn:hover:not(:disabled){background:#1e4d38}.tips-generate-btn:disabled{cursor:not-allowed;opacity:.6}.tips-error{color:#c0392b;font-size:.875rem}.recipe-page__source{border-top:1px solid #f2f2f2;color:#ccc;font-size:.82rem;margin-top:48px;padding-top:20px}.recipe-page__source a{color:#bbb}.import-overlay{background:#0000001f;inset:0;position:fixed;z-index:300}.import-panel{animation:panel-expand .32s cubic-bezier(.34,1.42,.64,1) forwards;background:#fff;border-radius:16px;bottom:104px;box-shadow:0 24px 60px #0000002e,0 6px 18px #0000001a;display:flex;flex-direction:column;max-height:80vh;overflow:hidden;position:fixed;right:32px;transform-origin:bottom right;width:420px;z-index:301}@keyframes panel-expand{0%{opacity:0;transform:scale(.04)}to{opacity:1;transform:scale(1)}}@media (max-width:600px){.import-overlay{background:#0000004d}.import-panel{animation:panel-slide-up .28s cubic-bezier(.22,1,.36,1) forwards;border-radius:16px 16px 0 0;bottom:0;left:0;max-height:92vh;position:fixed;right:0;transform-origin:bottom center;width:100%}@keyframes panel-slide-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}}.import-panel__header{align-items:center;border-bottom:1px solid #ececec;display:flex;flex-shrink:0;justify-content:space-between;padding:20px 24px 16px}.import-panel__title{color:#222;font-family:Playfair Display,serif;font-size:1.25rem;font-weight:400}.import-panel__close{background:none;border:none;border-radius:6px;color:#888;cursor:pointer;font-size:26px;line-height:1;padding:2px 6px;transition:color .15s,background .15s}.import-panel__close:hover{background:#f0f0f0;color:#222}.import-panel__body{flex:1 1;overflow-y:auto;padding:24px}.import-choose{display:flex;flex-direction:column;gap:12px}.import-option{align-items:center;background:#fafafa;border:1px solid #e0e0e0;border-radius:12px;cursor:pointer;display:flex;gap:16px;padding:20px;text-align:left;transition:border-color .15s,background .15s,box-shadow .15s;width:100%}.import-option:hover:not(:disabled){background:#faf5f0;border-color:#b5845e;box-shadow:0 2px 12px #b5845e1a}.import-option--disabled{cursor:not-allowed;opacity:.5}.import-option__icon{flex-shrink:0;font-size:28px}.import-option__label{color:#222;font-family:Playfair Display,serif;font-size:1.05rem;margin-bottom:4px}.import-option__desc{color:#666;font-size:.875rem;line-height:1.4}.import-url-form{display:flex;flex-direction:column;gap:16px}.import-url-form__hint{color:#555;font-size:.9rem;line-height:1.5}.import-url-form__actions{display:flex;gap:10px;justify-content:flex-end}.import-loading{align-items:center;color:#444;display:flex;flex-direction:column;font-size:1rem;gap:16px;padding:48px 24px}.import-loading__spinner{animation:spin .8s linear infinite;border:3px solid #e0e0e0;border-radius:50%;border-top-color:#b5845e;height:40px;width:40px}@keyframes spin{to{transform:rotate(1turn)}}.import-loading__sub{color:#888;font-size:.85rem}.form-input,.form-select,.form-textarea{-webkit-appearance:none;appearance:none;background:#fff;border:1px solid #d8d8d8;border-radius:7px;color:#222;font-family:Lato,sans-serif;font-size:.9rem;padding:8px 10px;transition:border-color .15s;width:100%}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:#b5845e;outline:none}.form-textarea{min-height:64px;resize:vertical}.form-label{color:#555;display:block;font-size:.78rem;font-weight:700;letter-spacing:.04em;margin-bottom:5px;text-transform:uppercase}.form-group{display:flex;flex:1 1;flex-direction:column}.form-group--narrow{flex-basis:calc(25% - 12px);flex-grow:0;flex-shrink:0;min-width:100px}.form-row{display:flex;gap:12px;margin-top:12px}.form-row,.form-row--wrap{flex-wrap:wrap}.form-section{border-bottom:1px solid #ececec;margin-bottom:32px;padding-bottom:32px}.form-section:last-of-type{border-bottom:none}.form-section__title{color:#333;font-family:Playfair Display,serif;font-size:1.05rem;font-weight:400;margin-bottom:16px}.form-section__sub{color:#888;font-family:Lato,sans-serif;font-size:.8rem;font-weight:400}.ingredients-list__header{border-bottom:1px solid #ececec;color:#888;font-size:.72rem;font-weight:700;letter-spacing:.04em;padding:0 0 6px;text-transform:uppercase}.ingredient-row,.ingredients-list__header{grid-gap:6px;display:grid;gap:6px;grid-template-columns:70px 80px 1fr 1fr 28px;margin-bottom:6px}.ingredient-row{align-items:center}@media (max-width:580px){.ingredients-list__header{display:none}.ingredient-row{grid-template-columns:60px 70px 1fr 28px;grid-template-rows:auto auto}.ingredient-row .form-input:nth-child(4){grid-column:1/-2}}.step-row{grid-gap:8px;align-items:start;display:grid;gap:8px;grid-template-columns:28px 1fr 80px 28px;margin-bottom:10px}.step-row__number{color:#aaa;font-family:Playfair Display,serif;font-size:1.1rem;padding-top:8px;text-align:center}.step-row__instruction{min-height:64px}.step-row__duration{align-items:center;display:flex;gap:4px}.step-row__duration-label{color:#888;font-size:.75rem;white-space:nowrap}@media (max-width:500px){.step-row{grid-template-columns:24px 1fr 28px}.step-row__duration{display:none}}.row-delete-btn{background:none;border:none;border-radius:4px;color:#bbb;cursor:pointer;font-size:18px;line-height:1;padding:4px;transition:color .15s,background .15s}.row-delete-btn:hover{background:#fdecea;color:#c0392b}.tag-editor{display:flex;flex-direction:column;gap:8px}.tag-editor__chips{display:flex;flex-wrap:wrap;gap:6px}.tag-chip{align-items:center;background:#f4ede6;border:1px solid #dfc9b4;border-radius:20px;color:#b5845e;display:inline-flex;font-size:.8rem;gap:4px;padding:3px 10px}.tag-chip__remove{background:none;border:none;color:#b5845e;cursor:pointer;font-size:14px;line-height:1;margin-left:2px;opacity:.6;padding:0}.tag-chip__remove:hover{opacity:1}.tag-chip--add{background:none;border:1px dashed #ccc;color:#888;cursor:pointer;transition:color .15s,border-color .15s}.tag-chip--add:hover{border-color:#b5845e;color:#b5845e}.tag-editor__input{border:1px solid #d8d8d8;border-radius:7px;color:#222;font-family:Lato,sans-serif;font-size:.85rem;padding:6px 10px}.tag-editor__input:focus{border-color:#b5845e;outline:none}.pantry-notice{background:#fef9e7;border:1px solid #f9e4a0;border-radius:8px;color:#6b5500;font-size:.875rem;line-height:1.5;margin-bottom:24px;padding:12px 16px}.image-preview{border:1px solid #e8e8e8;border-radius:8px;margin-top:10px;max-height:220px;max-width:100%;object-fit:cover}.preview-form__actions{border-top:1px solid #ececec;display:flex;gap:10px;justify-content:flex-end;margin-top:8px;padding-top:8px}.import-paste-textarea{font-size:.875rem;line-height:1.6;min-height:200px}.import-file-zone{background:#fafafa;border:2px dashed #d0d0d0;border-radius:12px;cursor:pointer;padding:32px 24px;text-align:center;transition:border-color .15s,background .15s}.import-file-zone--selected,.import-file-zone:hover{background:#faf5f0;border-color:#b5845e}.import-file-zone__prompt{align-items:center;color:#666;display:flex;flex-direction:column;font-size:.9rem;gap:8px}.import-file-zone__icon{font-size:32px;line-height:1}.import-file-zone__hint{color:#999;font-size:.78rem}.import-file-zone__selected{align-items:center;color:#b5845e;display:flex;font-size:.9rem;font-weight:600;gap:10px;justify-content:center}.import-file-zone__name{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-file-zone__size{color:#888;font-weight:400;white-space:nowrap}.import-error{background:#fdecea;border:1px solid #f5c6c2;border-radius:7px;color:#c0392b;font-size:.875rem;padding:10px 14px}.btn{border:none;border-radius:8px;cursor:pointer;font-family:Lato,sans-serif;font-size:.9rem;font-weight:700;padding:10px 22px;transition:background .15s,opacity .15s}.btn:disabled{cursor:not-allowed;opacity:.5}.btn--primary{background:#b5845e;color:#fff}.btn--primary:hover:not(:disabled){background:#966846}.btn--ghost{background:#f0f0f0;color:#444}.btn--ghost:hover:not(:disabled){background:#e4e4e4}.btn--add-row{background:none;border:1px dashed #dfc9b4;border-radius:7px;color:#b5845e;font-size:.85rem;font-weight:600;margin-top:8px;padding:7px 14px}.btn--add-row:hover{background:#faf5f0;border-color:#b5845e}.image-upload{display:flex;flex-direction:column;gap:6px;margin-top:8px}.image-upload__btn{align-items:center;align-self:flex-start;background:none;border:1px solid #d0d0d0;border-radius:7px;color:#555;cursor:pointer;display:inline-flex;font-family:Lato,sans-serif;font-size:.85rem;font-weight:600;gap:7px;padding:7px 14px;transition:border-color .15s,color .15s,background .15s}.image-upload__btn:hover:not(:disabled){background:#f0f7f4;border-color:#2d6a4f;color:#2d6a4f}.image-upload__btn:disabled{cursor:not-allowed;opacity:.5}.image-upload__spinner{animation:img-upload-spin .7s linear infinite;border:2px solid #ccc;border-radius:50%;border-top-color:#2d6a4f;flex-shrink:0;height:14px;width:14px}@keyframes img-upload-spin{to{transform:rotate(1turn)}}.image-upload__error{color:#c0392b;font-size:.8rem}.login-page{display:flex;justify-content:center;padding:80px 24px}.login-box{background:#fff;border:1px solid #e8e8e8;border-radius:12px;max-width:400px;padding:48px 40px;text-align:center;width:100%}.login-box__title{color:#111;font-size:1.5rem;font-weight:400;margin-bottom:8px}.login-box__subtitle{color:#888;font-size:.95rem;font-style:italic;margin-bottom:32px}.login-form{display:flex;flex-direction:column;gap:12px;text-align:left}.login-form__label{color:#555;font-size:.85rem}.login-form__input{border:1px solid #ddd;border-radius:6px;color:#222;font-family:Lato,sans-serif;font-size:1rem;outline:none;padding:10px 14px;transition:border-color .15s}.login-form__input:focus{border-color:#aaa}.login-form__error{color:#c0392b;font-size:.875rem}.login-form__submit{background:#222;border:none;border-radius:6px;color:#fff;cursor:pointer;font-family:Lato,sans-serif;font-size:.95rem;margin-top:4px;padding:11px 0;transition:background .15s}.login-form__submit:hover:not(:disabled){background:#444}.login-form__submit:disabled{cursor:default;opacity:.5}.login-sent__icon{font-size:2.5rem;margin-bottom:16px}.login-sent__title{color:#111;font-size:1.4rem;font-weight:400;margin-bottom:12px}.login-sent__text{color:#555;font-size:.95rem;line-height:1.6;margin-bottom:32px}.login-back{background:none;border:none;color:#888;cursor:pointer;display:inline-block;font-family:Lato,sans-serif;font-size:.875rem;margin-top:24px;padding:0;text-decoration:underline}.login-back:hover{color:#444}.floating-add-btn{align-items:center;background-color:#3a3a3a;border:none;border-radius:50%;bottom:32px;box-shadow:0 4px 16px #00000038;color:#fff;cursor:pointer;display:flex;height:56px;justify-content:center;position:fixed;right:32px;transition:background-color .18s ease,transform .18s ease,box-shadow .18s ease;width:56px;z-index:200}.floating-add-btn:hover{background-color:#1a1a1a;box-shadow:0 6px 22px #00000047;transform:scale(1.08)}.floating-add-btn:active{transform:scale(.96)}.floating-add-btn__icon{font-family:Lato,sans-serif;font-size:28px;font-weight:300;line-height:1;margin-top:-1px}@media (max-width:600px){.floating-add-btn{bottom:20px;height:52px;right:20px;width:52px}}
/*# sourceMappingURL=main.b5c02348.css.map*/