:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#101514;--color-surface:#171e1c;--color-surface-raised:#202825;--color-border:#34413d;--color-text:#f2f5f3;--color-muted:#a9b5b1;--color-accent:#2e7d63;--color-accent-hover:#399878;--color-warning:#e0b84b;--color-danger:#e05a5a;--shadow-raised:0 18px 60px #00000047;--radius-small:.25rem;--radius-medium:.4rem;--radius-large:.65rem}*{box-sizing:border-box}html{background:var(--color-bg);min-width:320px;color:var(--color-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{background:radial-gradient(circle at 85% -10%, #2e7d632e, transparent 32rem), var(--color-bg);min-height:100vh;margin:0}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:#74cbb0}:focus-visible{outline:3px solid var(--color-warning);outline-offset:3px}h1,h2,p{margin-top:0}h1{letter-spacing:-.035em;max-width:22ch;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,5vw,3.7rem);font-weight:500;line-height:1.04}h2{font-size:1.15rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.muted,.field-hint{color:var(--color-muted)}.eyebrow{color:#82b9a7;letter-spacing:.15em;text-transform:uppercase;margin-bottom:.65rem;font-size:.75rem;font-weight:750}.app-header{z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#101514e0;border-bottom:1px solid #ffffff14;position:sticky;top:0}.app-header__inner{grid-template-columns:minmax(13rem,1fr) auto minmax(10rem,1fr) auto;align-items:center;gap:1rem;width:min(1180px,100% - 2rem);min-height:4.7rem;margin:0 auto;display:grid}.global-error{color:#ffb0b0;text-align:center;background:#e05a5a26;margin:0;padding:.75rem 1rem}.brand{color:var(--color-text);justify-self:start;align-items:center;gap:.75rem;text-decoration:none;display:inline-flex}.brand__mark{color:#94d7c2;background:#2e7d632e;border:1px solid #4ba989;border-radius:50%;place-items:center;width:2.35rem;height:2.35rem;font-family:Georgia,serif;font-size:1.25rem;display:grid}.brand__mark--large{width:3.4rem;height:3.4rem;margin-bottom:1.5rem;font-size:1.8rem}.brand strong{display:block}nav{justify-content:center;gap:.25rem;display:flex}nav a{border-radius:var(--radius-small);color:var(--color-muted);padding:.6rem .75rem;font-size:.9rem;font-weight:650;text-decoration:none}nav a:hover,nav a.active{background:var(--color-surface-raised);color:var(--color-text)}.sync-pill{color:var(--color-muted);justify-self:end;align-items:center;gap:.5rem;font-size:.8rem;text-decoration:none;display:flex}.sync-pill span{background:var(--color-accent);color:#fff;border-radius:50%;place-items:center;width:1.25rem;height:1.25rem;font-size:.72rem;display:grid}.sync-pill--error span,.sync-pill--authentication-required span,.sync-pill--incomplete span,.sync-pill--offline span{background:var(--color-warning);color:#101512}.update-prompt{color:#f5dda0;background:#332d17;border-bottom:1px solid #e0b84b80;justify-content:center;align-items:center;gap:.8rem;padding:.7rem 1rem;display:flex}.page-shell{width:min(1120px,100% - 2rem);margin:0 auto;padding:clamp(1.25rem,3vw,2rem) 0 6rem}.page-heading{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2rem;display:flex}.page-heading h1{margin-bottom:.65rem}.page-heading--compact{margin-bottom:1.25rem}.button{border-radius:var(--radius-small);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;min-height:2.75rem;padding:.7rem 1rem;font-weight:720;line-height:1;text-decoration:none;display:inline-flex}.button:disabled{cursor:not-allowed;opacity:.4}.button--primary{background:var(--color-accent);color:#fff;border-color:#3d9678;box-shadow:0 8px 22px #2e7d6338}.button--primary:hover{background:var(--color-accent-hover)}.button--secondary,.button--quiet{border-color:var(--color-border);background:var(--color-surface-raised);color:var(--color-text)}.button--quiet{background:0 0}.button--danger,.button--danger-quiet{border-color:var(--color-danger);background:var(--color-danger);color:#190707}.button--danger-quiet{color:#ff9898;background:0 0}.button--wide{width:100%}.button--compact{min-height:2.5rem;padding:.6rem .85rem;font-size:.875rem}.button--icon{width:2.75rem;min-width:2.75rem;padding:0}.button--icon-compact{width:2.5rem;min-width:2.5rem;min-height:2.5rem}.action-icon{width:1.25rem;height:1.25rem}.library-toolbar{border:1px solid var(--color-border);border-radius:var(--radius-medium);background:var(--color-surface);margin-bottom:2rem;padding:.8rem}.library-toolbar--complete{grid-template-columns:minmax(14rem,1fr) auto;align-items:end;gap:.8rem;display:grid}.library-toolbar--complete>label{gap:.35rem;display:grid}.library-toolbar select{border:1px solid var(--color-border);border-radius:var(--radius-small);background:var(--color-surface-raised);min-height:2.8rem;color:var(--color-text);padding:.55rem .7rem}.library-filters{border:1px solid var(--color-border);border-radius:var(--radius-small);grid-column:1/-1;align-items:end;gap:1rem;padding:.8rem;display:flex}.library-filters>label{gap:.35rem;display:grid}.tag-filter-list{flex-wrap:wrap;gap:.4rem .8rem;display:flex}.tag-filter-list label{align-items:center;gap:.35rem;display:flex}.filter-summary{color:var(--color-muted);align-items:center;gap:.7rem;margin-left:auto;font-size:.82rem;display:flex}.filter-summary button{border:1px solid var(--color-border);border-radius:var(--radius-small);min-height:2.4rem;color:var(--color-text);background:0 0}.filter-summary button:disabled{opacity:.45}.search-status{color:var(--color-muted);grid-column:1/-1;font-size:.78rem}.search-field input{border:1px solid var(--color-border);width:100%;min-height:3rem;color:var(--color-text);background:#111715;padding:.8rem 1rem;font-size:1rem}.recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.recipe-card{border:1px solid var(--color-border);border-radius:var(--radius-medium);background:linear-gradient(145deg, var(--color-surface-raised), var(--color-surface));min-height:12rem;color:var(--color-text);flex-direction:column;padding:1.35rem;text-decoration:none;transition:transform .16s,border-color .16s;display:flex}.recipe-card__image{border-radius:var(--radius-medium) var(--radius-medium) 0 0;object-fit:cover;width:calc(100% + 2.7rem);height:9rem;margin:-1.35rem -1.35rem 1rem}.recipe-card:hover{border-color:#4c7668;transform:translateY(-2px)}.recipe-card h2{margin-top:1rem;font-family:Georgia,serif;font-size:1.5rem;font-weight:500}.recipe-card__dish{color:#82b9a7;text-transform:uppercase;font-size:.72rem;font-weight:750}.tag-badge-list{flex-wrap:wrap;gap:.35rem;padding:0;list-style:none;display:flex}.recipe-card__tags{margin:.8rem 0 0}.tag-badge{border-radius:var(--radius-small);color:#94d7c2;background:#2e7d631f;border:1px solid #2e7d6399;padding:.35rem .6rem;font-size:.75rem;font-weight:650;line-height:1.2}.recipe-card__meta{color:var(--color-muted);margin-top:auto;padding-top:1rem;font-size:.8rem}.empty-state{border-radius:var(--radius-large);text-align:center;border:1px dashed #41514c;align-content:center;place-items:center;min-height:20rem;padding:3rem 1.5rem;display:grid}.empty-state h1,.empty-state h2{max-width:28rem}.empty-state p{max-width:32rem;color:var(--color-muted)}.login-page{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.login-card{border:1px solid var(--color-border);border-radius:var(--radius-large);width:min(30rem,100%);box-shadow:var(--shadow-raised);background:#171e1cf0;padding:clamp(2rem,7vw,3.5rem)}.login-card h1{font-size:clamp(2.1rem,7vw,3rem)}.login-card form,.form-card{gap:.65rem;display:grid}.login-card form{margin-top:2rem}label{color:#d7dedb;font-size:.86rem;font-weight:700}input,textarea,select{border:1px solid var(--color-border);border-radius:var(--radius-small);width:100%;color:var(--color-text);background:#111715;padding:.78rem .85rem}textarea{resize:vertical}.login-card input{margin-bottom:.65rem}.editor-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:1rem;display:grid}.editor-column{align-content:start;gap:1rem;min-width:0;display:grid}.form-card{border:1px solid var(--color-border);border-radius:var(--radius-medium);background:var(--color-surface);padding:clamp(1.2rem,3vw,1.6rem)}.form-card h2{margin-bottom:.5rem}.form-card__heading{justify-content:space-between;display:flex}.field-hint{font-size:.78rem}.source-editor-list{gap:.75rem;display:grid}.source-editor{border:1px solid var(--color-border);border-radius:var(--radius-small);background:#131917;padding:1rem}.source-editor legend{color:#82b9a7;text-transform:uppercase;padding:0 .35rem;font-size:.75rem;font-weight:800}.source-editor label{gap:.5rem;display:grid}.image-source-editor{gap:.7rem;display:grid}.image-source-preview{border-radius:var(--radius-small);object-fit:contain;width:min(12rem,100%);max-height:10rem}.source-editor__actions,.source-add-actions,.dialog__actions{flex-wrap:wrap;gap:.5rem;margin-top:.8rem;display:flex}.source-editor__actions .button{min-height:2.5rem;padding:0}.duplicate-warning,.error-summary{border-radius:var(--radius-small);color:#f3d783;background:#e0b84b1a;border:1px solid #e0b84b8c;padding:.9rem 1rem;font-size:.88rem}.error-summary{color:#ffb0b0;background:#e05a5a1a;border-color:#e05a5aa6;margin-bottom:1rem}.error-summary ul{margin-bottom:0}.field-error,.sync-error{color:#ffb0b0}.save-bar{z-index:10;border:1px solid var(--color-border);border-radius:var(--radius-medium);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#171e1ceb;justify-content:flex-end;gap:.6rem;margin-top:1rem;padding:.8rem;display:flex;position:sticky;bottom:.75rem;box-shadow:0 12px 40px #00000059}.recipe-detail{width:min(1040px,100%);margin:0 auto}.back-link{color:var(--color-muted);margin-bottom:1.5rem;text-decoration:none;display:inline-block}.recipe-detail__header{justify-content:space-between;align-items:end;gap:1rem;margin-bottom:clamp(2rem,5vw,3.5rem);display:flex}.recipe-detail__header h1{margin-bottom:0;font-size:clamp(2.25rem,4vw,3.25rem)}.recipe-detail__tags{margin:.85rem 0 0}.recipe-detail__actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.recipe-detail__layout{grid-template-columns:minmax(0,2.1fr) minmax(16rem,.9fr);align-items:start;gap:clamp(2rem,5vw,3.75rem);display:grid}.recipe-detail__main,.recipe-detail__aside{min-width:0}.recipe-detail__aside{align-content:start;gap:2.25rem;display:grid}.recipe-detail__section>h2{border-bottom:1px solid var(--color-border);margin-bottom:1.25rem;padding-bottom:.7rem}.recipe-notes{border-top:2px solid var(--color-accent);border-radius:var(--radius-small);background:#171e1cb8;padding:1.1rem 1.2rem 1.2rem}.recipe-notes>h2{border-bottom:0;margin-bottom:.85rem;padding-bottom:0}.recipe-notes__body>:last-child,.source-markdown>:last-child{margin-bottom:0}.offline-explanation{border-radius:var(--radius-small);background:#2e7d631f;border:1px solid #2e7d6399;align-items:center;gap:.7rem;margin:1rem 0;padding:.8rem 1rem;display:flex}.external-link-unavailable{gap:.35rem;display:grid}.external-link-unavailable code{overflow-wrap:anywhere;color:var(--color-muted)}.sync-diagnostics{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.sync-diagnostics>section{border:1px solid var(--color-border);border-radius:var(--radius-medium);background:var(--color-surface);padding:1.2rem}.sync-diagnostics dl div{border-bottom:1px solid var(--color-border);justify-content:space-between;gap:1rem;padding:.45rem 0;display:flex}.sync-diagnostics dt{color:var(--color-muted)}.sync-diagnostics dd{overflow-wrap:anywhere;text-align:right;margin:0}.cooking-history ul,.tag-management-list,.trash-list{gap:.75rem;padding:0;list-style:none;display:grid}.cooking-history ul{margin-bottom:0}.recipe-detail__aside .cooking-history__edit-fields{grid-template-columns:1fr}.cooking-history li,.tag-management-list li,.trash-list li{border:1px solid var(--color-border);border-radius:var(--radius-small);background:var(--color-surface);padding:1rem}.cooking-history__edit-form{gap:1rem;display:grid}.cooking-history__edit-fields{grid-template-columns:minmax(10rem,.4fr) minmax(14rem,1fr);align-items:end;gap:1rem;display:grid}.cooking-history__edit-fields label{gap:.45rem;display:grid}.cooking-history__edit-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;padding-top:.25rem;display:flex}.cooking-history__summary{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:1rem;display:grid}.cooking-history__content{min-width:0}.cooking-history__actions{justify-content:flex-end;gap:.5rem;display:flex}.tag-create,.tag-management-list li,.trash-list li,.tag-assignment-list{flex-wrap:wrap;align-items:center;gap:.7rem;display:flex}.tag-chip{cursor:pointer;display:inline-flex;position:relative}.tag-chip__input{opacity:0;pointer-events:none;border:0;width:1px;height:1px;padding:0;position:absolute}.tag-chip__label{border:1px solid var(--color-border);border-radius:var(--radius-small);min-height:2.75rem;color:var(--color-muted);background:#111715;align-items:center;padding:.65rem .85rem;transition:border-color .14s,background-color .14s,color .14s;display:inline-flex}.tag-chip:hover .tag-chip__label{color:var(--color-text);border-color:#4c7668}.tag-chip__input:checked+.tag-chip__label{background:var(--color-accent);color:#fff;border-color:#4ba989}.tag-chip__input:focus-visible+.tag-chip__label{outline:3px solid var(--color-warning);outline-offset:3px}.tag-create{align-items:end;margin-bottom:1rem}.tag-create label,.tag-rename-form label{flex:1;gap:.3rem;display:grid}.tag-management-list__name{flex:14rem}.tag-management-list__count{color:var(--color-muted);white-space:nowrap}.tag-management-list__actions{justify-content:flex-end;align-items:center;gap:.5rem;margin-left:auto;display:flex}.tag-rename-form{flex-wrap:wrap;align-items:center;gap:.7rem;width:100%;display:flex}.trash-list h2{flex:14rem;margin:0}.offline-explanation{color:#f3d783;background:#e0b84b1a;border-color:#e0b84b8c}.recipe-image-button{border:1px solid var(--color-border);border-radius:var(--radius-medium);background:var(--color-surface);cursor:zoom-in;width:100%;min-height:10rem;padding:0;display:block;overflow:hidden}.recipe-image-button img{object-fit:contain;width:100%;height:100%;max-height:24rem;display:block}.prose{line-height:1.7}.source-list{gap:1.5rem;margin:0;padding-left:0;list-style:none;display:grid}.source-list>li{border-bottom:1px solid var(--color-border);background:0 0;padding:0 0 1.5rem}.source-list>li:last-child{border-bottom:0;padding-bottom:0}.source-markdown{line-height:1.7}.source-markdown h1{font-size:clamp(1.75rem,4vw,2rem);line-height:1.15}.source-markdown h2{font-size:1.35rem}.source-list a{align-items:center;gap:.35rem;min-height:2.75rem;display:inline-flex}.dialog-backdrop{z-index:100;background:#000000b3;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.dialog{border:1px solid var(--color-border);border-radius:var(--radius-medium);background:var(--color-surface-raised);width:min(28rem,100%);box-shadow:var(--shadow-raised);padding:1.5rem}.dialog__actions{justify-content:flex-end}.dialog__error{border-radius:var(--radius-small);color:#ffb0b0;background:#e05a5a1a;border:1px solid #e05a5aa6;margin-bottom:0;padding:.75rem .85rem}.image-viewer-backdrop{padding:0}.image-viewer{background:#090d0c;grid-template-rows:auto 1fr auto;width:100vw;height:100vh;display:grid}.image-viewer__toolbar,.image-viewer__navigation{z-index:1;background:#0f1513f0;justify-content:center;align-items:center;gap:.65rem;padding:.75rem;display:flex}.image-viewer__toolbar button,.image-viewer__navigation button{border:1px solid var(--color-border);border-radius:var(--radius-small);background:var(--color-surface-raised);min-height:2.5rem;color:var(--color-text);padding:.5rem .8rem}.image-viewer__canvas{place-items:center;display:grid;overflow:auto}.image-viewer__image{object-fit:contain;transform-origin:50%;max-width:92vw;max-height:76vh}@media (width<=760px){.app-header__inner{grid-template-columns:1fr auto auto;padding:.65rem 0}.app-header nav{grid-area:2/1/auto/-1;justify-content:flex-start;overflow-x:auto}.sync-pill{grid-area:1/2}.header-logout{grid-area:1/3}.page-heading,.recipe-detail__header{flex-direction:column;align-items:stretch}.recipe-grid,.editor-grid,.recipe-detail__layout,.sync-diagnostics,.cooking-history__edit-fields{grid-template-columns:1fr}.recipe-detail__actions{justify-content:flex-start}.recipe-detail__aside{gap:2rem}.recipe-detail__aside .cooking-history__edit-fields{grid-template-columns:1fr}.update-prompt{flex-direction:column;align-items:stretch}.library-toolbar--complete{grid-template-columns:1fr}.library-filters{flex-direction:column;grid-column:1;align-items:stretch}.filter-summary{flex-direction:column;align-items:stretch;margin-left:0}.save-bar{border-radius:0;margin-left:-1rem;margin-right:-1rem;bottom:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
