:root{--bg: #f6f7f5;--surface: #ffffff;--text: #1d2521;--muted: #66716b;--border: #dfe4e0;--primary: #2f7d4f;--primary-hover: #26673f;--primary-soft: #e6f2ea;--danger: #b3261e;--danger-soft: #fbeae9;--warning-soft: #fdf4e3;--warning-border: #f0d49a;--info-soft: #eaf1f8;--info-border: #bfd4ea;--radius: 10px;--shadow: 0 1px 2px rgba(16, 24, 20, .06);color-scheme:light;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.45;color:var(--text)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:1.6rem;margin:0}h2{font-size:1.1rem;margin:0}code{font-size:.85em;background:#eef1ee;padding:1px 4px;border-radius:4px}.muted{color:var(--muted)}.small{font-size:.85rem}.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.capitalize:first-letter{text-transform:uppercase}.text-danger{color:var(--danger)}.topbar{display:flex;align-items:center;gap:20px;padding:10px 24px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10;flex-wrap:wrap}.brand{font-weight:700;font-size:1.2rem;color:var(--text)}.nav{display:flex;gap:4px;flex-wrap:wrap;flex:1}.nav-link{padding:6px 10px;border-radius:8px;color:var(--muted)}.nav-link:hover{background:var(--bg);text-decoration:none;color:var(--text)}.nav-link.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.dev-user{font-size:.85rem;color:var(--muted);border:1px dashed var(--border);padding:4px 8px;border-radius:8px}.account{display:flex;align-items:center;gap:8px;min-width:0}.account-email{font-size:.85rem;color:var(--muted);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-page{width:100%;max-width:420px;margin:24px auto 0;display:flex;flex-direction:column;gap:16px}.content{max-width:1120px;margin:0 auto;padding:24px;display:flex;flex-direction:column;gap:16px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.page-header p{margin:4px 0 0}.page-actions,.button-row,.row-actions,.card-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.grid-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px 16px}.quick-links{display:flex;gap:20px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}.card-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:4px}.field label{font-weight:600;font-size:.9rem}.field-hint{font-size:.8rem;color:var(--muted)}.field-error{font-size:.82rem;color:var(--danger)}.field-invalid .input{border-color:var(--danger)}.input{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font:inherit;background:var(--surface);color:var(--text)}.input:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}.input:disabled{background:#f1f3f1;color:var(--muted)}.checks{border:1px solid var(--border);border-radius:8px;padding:10px 12px;display:flex;flex-wrap:wrap;gap:8px 18px}.checks legend{font-weight:600;font-size:.9rem;padding:0 4px}.checks label{display:flex;align-items:center;gap:6px}.toggle{display:flex;align-items:center;gap:6px;font-size:.9rem}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;border:1px solid transparent;font:inherit;font-weight:600;cursor:pointer;white-space:nowrap}.btn:hover{text-decoration:none}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg)}.btn-danger{background:var(--surface);color:var(--danger);border-color:#efc4c1}.btn-danger:hover:not(:disabled){background:var(--danger-soft)}.btn-ghost{background:transparent;color:var(--primary);padding:4px 8px}.alert{border-radius:8px;padding:10px 14px;border:1px solid;display:flex;flex-direction:column;gap:4px}.alert-info{background:var(--info-soft);border-color:var(--info-border)}.alert-success{background:var(--primary-soft);border-color:#b9dcc5}.alert-warning{background:var(--warning-soft);border-color:var(--warning-border)}.alert-error{background:var(--danger-soft);border-color:#efc4c1}.error-fields{margin:2px 0 0;padding-left:18px}.loading{display:flex;align-items:center;gap:10px;color:var(--muted);padding:24px 0}.spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;display:inline-block}.spinner-sm{width:12px;height:12px;border-color:#ffffff80;border-top-color:currentColor}@keyframes spin{to{transform:rotate(360deg)}}.empty{text-align:center;padding:32px 16px;display:flex;flex-direction:column;align-items:center;gap:8px}.empty-title{font-weight:600;font-size:1.05rem}.stats{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:flex-end}.stat-label{font-size:.8rem;color:var(--muted)}.stat-value{font-size:1.15rem;font-weight:600}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:top}.table th{font-size:.8rem;color:var(--muted);font-weight:600}.table td .input{min-width:90px}.row-muted td{color:var(--muted)}.badge{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.8rem;font-weight:600}.badge-ready{background:var(--primary-soft);color:var(--primary)}.badge-archived{background:#eceeec;color:var(--muted)}.badge-committed{background:var(--info-soft);color:#28527a}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border)}.tab{padding:8px 14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}.tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.tab:hover{text-decoration:none;color:var(--text)}.days{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.meals{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.meal{display:grid;grid-template-columns:80px 1fr;gap:8px}.meal-type{font-size:.8rem;color:var(--muted);font-weight:600;padding-top:2px}.issues{margin:8px 0 0;padding-left:18px}.instructions{white-space:pre-line;margin:0}.shopping{list-style:none;margin:0;padding:0}.shopping li{display:grid;grid-template-columns:minmax(0,1fr) auto 110px;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--border)}.shopping li:last-child{border-bottom:none}.shopping label{display:flex;align-items:center;gap:10px;cursor:pointer}.shopping input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary)}.shopping li.checked .shopping-name{text-decoration:line-through;color:var(--muted)}.plain{margin:0;padding-left:18px}.choices{border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin:0;display:flex;flex-direction:column;gap:8px;min-width:0}.choices legend{font-weight:600;font-size:.9rem;padding:0 4px}.choice{display:flex;align-items:flex-start;gap:8px;cursor:pointer}.choice input{margin-top:3px;accent-color:var(--primary);flex:none}.choice span{min-width:0;overflow-wrap:anywhere}.picker{display:flex;flex-direction:column;gap:6px}.chips{display:flex;flex-wrap:wrap;gap:6px;min-height:26px;align-items:center}.chip{background:var(--primary-soft);color:var(--primary);border-radius:999px;padding:2px 4px 2px 10px;font-size:.85rem;display:inline-flex;align-items:center;gap:2px}.chip button{border:none;background:none;color:inherit;cursor:pointer;font-size:1rem;line-height:1;padding:0 4px}.picker-list{list-style:none;margin:0;padding:4px;border:1px solid var(--border);border-radius:8px;max-height:220px;overflow-y:auto}.picker-list button{width:100%;text-align:left;border:none;background:none;padding:6px 8px;border-radius:6px;cursor:pointer;font:inherit}.picker-list button:hover:not(:disabled){background:var(--bg)}.picker-list button:disabled{color:var(--muted);cursor:not-allowed}@media(max-width:760px){.content{padding:16px}.topbar{padding:10px 16px;gap:8px;justify-content:space-between}.nav{order:3;flex:0 0 100%;flex-wrap:nowrap;overflow-x:auto}.nav-link{white-space:nowrap}.grid-2,.days{grid-template-columns:minmax(0,1fr)}.shopping li{grid-template-columns:minmax(0,1fr) auto}.shopping li .muted{grid-column:1 / -1;order:3;font-size:.8rem;padding-left:28px}}
