:root{--bg: #f6f6f8;--surface: #ffffff;--text: #17181c;--muted: #6c7078;--border: #e3e4e9;--accent: #2f6f4f;--accent-contrast: #ffffff;--danger: #b3261e;--radius: 14px;--shadow: 0 1px 3px rgba(0, 0, 0, .07)}@media (prefers-color-scheme: dark){:root{--bg: #14161b;--surface: #1e2128;--text: #eceef2;--muted: #9aa0aa;--border: #2c303a;--accent: #58b78a;--accent-contrast: #10231a;--danger: #f2b8b5;--shadow: 0 1px 3px rgba(0, 0, 0, .4)}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}.app{min-height:100dvh;display:flex;flex-direction:column}.app-header{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:calc(env(safe-area-inset-top) + 14px) 16px 10px;border-bottom:1px solid var(--border)}.app-logo{font-size:20px;font-weight:700;letter-spacing:-.02em}.app-main{flex:1;padding-bottom:calc(env(safe-area-inset-bottom) + 76px)}.page{max-width:760px;margin:0 auto;padding:14px 16px 24px;display:flex;flex-direction:column;gap:14px}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:10;display:flex;background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 6px;text-decoration:none;color:var(--muted);font-size:11px}.tab-active{color:var(--accent);font-weight:600}.tab-icon{font-size:20px;line-height:1}.search,.text-input{width:100%;padding:11px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:16px}.search:focus,.text-input:focus{outline:2px solid var(--accent);outline-offset:-1px}textarea.text-input{resize:vertical;font-family:inherit}.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:14px;cursor:pointer}.chip-active{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);font-weight:600}.chip-static{cursor:default}.chip-count{font-size:12px;opacity:.75}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;text-decoration:none;color:inherit;box-shadow:var(--shadow);display:flex;flex-direction:column}.card-image{width:100%;aspect-ratio:4 / 3;object-fit:cover;background:var(--border)}.card-body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:3px}.card-title{font-weight:600;font-size:15px;line-height:1.25}.card-meta{font-size:12px;color:var(--muted)}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.list-item{display:flex;align-items:center;gap:12px;padding:13px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;color:inherit;box-shadow:var(--shadow)}.list-main{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}.list-title{font-weight:600;font-size:15px}.list-meta{font-size:13px;color:var(--muted)}.list-badge{flex:0 0 auto;font-size:12px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);padding:4px 9px;border-radius:999px;font-weight:600}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow)}.panel-title{margin:0;font-size:17px}.panel-hint{margin:0;font-size:14px;color:var(--muted);line-height:1.4}.file-button{display:inline-block;text-align:center;padding:12px;border:1px dashed var(--border);border-radius:var(--radius);color:var(--accent);font-weight:600;cursor:pointer}.file-button input{display:none}.preview{width:100%;max-height:260px;object-fit:contain;border-radius:var(--radius);background:var(--bg)}.primary,.secondary,.danger{padding:12px 16px;border-radius:var(--radius);font-size:15px;font-weight:600;border:1px solid transparent;cursor:pointer}.primary{background:var(--accent);color:var(--accent-contrast)}.primary:disabled{opacity:.5;cursor:not-allowed}.secondary{background:var(--surface);border-color:var(--border);color:var(--text)}.danger{background:transparent;border-color:var(--danger);color:var(--danger)}.button-row{display:flex;gap:10px;flex-wrap:wrap}.detail-image{width:100%;max-height:320px;object-fit:cover;border-radius:var(--radius);background:var(--border)}.detail-title{margin:0;font-size:24px;line-height:1.2}.detail-description{margin:0;line-height:1.5;color:var(--text)}.detail-section{display:flex;flex-direction:column;gap:9px}.section-title{margin:0;font-size:14px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.facts{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:15px}.facts dt{color:var(--muted)}.facts dd{margin:0;font-weight:600}.fact-row{display:flex;gap:8px;flex-wrap:wrap}.badge{font-size:13px;background:var(--surface);border:1px solid var(--border);padding:5px 11px;border-radius:999px}.badge-link{color:var(--accent);font-weight:600;text-decoration:none}.ingredients,.steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:7px;line-height:1.45}.edit-form{display:flex;flex-direction:column;gap:10px}.spinner-wrap{display:flex;flex-direction:column;align-items:center;gap:10px;padding:36px 0}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.spinner-message{font-size:14px;color:var(--muted)}.empty{text-align:center;padding:44px 16px;color:var(--muted)}.empty-title{margin:0 0 6px;font-weight:600;color:var(--text)}.empty-hint{margin:0;font-size:14px;line-height:1.5}.error{margin:0;padding:11px 14px;border-radius:var(--radius);background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger);font-size:14px;line-height:1.4;overflow-wrap:anywhere}.muted{margin:0;font-size:13px;color:var(--muted);line-height:1.5}
