@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@500;700&family=Sora:wght@400;500;600;700&display=swap";:root{--bg:#f6efe5;--bg-accent:#ead9c1;--card:#fffcf7e0;--card-solid:#fffaf3;--card-soft:#fff7eeeb;--border:#70522e24;--text:#27190d;--muted:#7f6247;--accent:#b4542b;--accent-strong:#8e3817;--accent-soft:#b4542b24;--accent-blue:#255b87;--accent-green:#2e7d5a;--accent-amber:#d27d1f;--accent-red:#c14b39;--glow:#c46e293d;--shadow:0 24px 60px #40291224;--shadow-soft:0 10px 30px #5d391814;font-family:Aptos,Segoe UI Variable,Trebuchet MS,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 15% 0%, #ffdab0b3, transparent 34%), radial-gradient(circle at 88% 12%, #ffc09185, transparent 28%), linear-gradient(135deg, #ffffff42, transparent 40%), var(--bg);color:var(--text);min-height:100vh;margin:0;font-family:inherit}.app{flex-direction:column;gap:2rem;min-height:100vh;padding:2.5rem clamp(1.5rem,4vw,4rem);display:flex;position:relative}.app:before{content:"";pointer-events:none;background:radial-gradient(circle at 70% 15%,#ffb15129,#0000 40%),radial-gradient(circle at 10% 65%,#c5562b1f,#0000 44%),linear-gradient(#ffffff3d,#0000 28%);position:absolute;inset:0}.app:after{content:"";pointer-events:none;opacity:.65;border:1px solid #ffffff59;border-radius:32px;position:absolute;inset:1.25rem}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:2rem;display:flex}.header-actions{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.notif-wrapper{position:relative}.notif-button{cursor:pointer;box-shadow:var(--shadow-soft);background:linear-gradient(145deg,#fff9f1eb,#ffefddeb);border:1px solid #8f40201f;border-radius:16px;padding:.65rem .85rem;transition:transform .2s,box-shadow .2s,border-color .2s,background .2s;position:relative}.notif-button:hover{background:linear-gradient(145deg,#fffcf7fa,#ffe3c6f0);border-color:#b4542b52;transform:translateY(-2px);box-shadow:0 16px 36px #85431a29}.notif-icon{font-size:1.1rem}.notif-badge{background:var(--accent-red);color:#fff;border:2px solid var(--card);border-radius:999px;padding:.1rem .45rem;font-size:.7rem;font-weight:700;position:absolute;top:-6px;right:-6px}.notif-menu{border:1px solid var(--border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:10;background:#fffbf6f5;border-radius:20px;gap:.6rem;width:min(320px,80vw);padding:.9rem;display:grid;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 26px 54px #3923122e}.notif-menu h4{margin:0;font-size:.95rem}.notif-menu p{color:var(--muted);margin:0;font-size:.85rem}.notif-item{border:1px solid var(--border);background:linear-gradient(135deg,#fff4e8eb,#fffaf4eb);border-radius:12px;gap:.2rem;padding:.5rem .6rem;font-size:.85rem;display:grid}.notif-item strong{font-size:.9rem}.login-card{max-width:560px}.login-screen .content-card{margin-top:1rem}.app-eyebrow{text-transform:uppercase;letter-spacing:.28em;color:var(--accent-strong);margin:0 0 .75rem;font-size:.75rem;font-weight:700}.app-header h1{letter-spacing:-.03em;margin:0 0 .75rem;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,4vw,3.4rem);line-height:.94}.app-subtitle{color:var(--muted);max-width:520px;margin:0}.health-label{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:0;font-size:.75rem}.user-pill{box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(135deg,#fff8eff2,#ffe6cddb);border:1px solid #b4542b2e;border-radius:22px;align-items:center;gap:1.25rem;padding:.85rem 1.1rem;display:flex}.user-pill strong{display:block}.logout-button{color:var(--accent-strong);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:linear-gradient(135deg,#fffcf8f5,#ffead6e6);border:1px solid #8e381729;border-radius:14px;padding:.7rem 1rem;font-size:.8rem;font-weight:700;transition:transform .2s,box-shadow .2s,border-color .2s,background .2s;box-shadow:0 14px 28px #5d39181f}.logout-button:hover{background:linear-gradient(135deg,#fffaf4,#ffe0c4f5);border-color:#b4542b57;transform:translateY(-2px);box-shadow:0 18px 34px #5d391829}.logout-button:active{transform:translateY(1px)scale(.99)}.role-pill{text-transform:uppercase;letter-spacing:.14em;color:var(--accent-strong);background:#ffffffc7;border:1px solid #b4542b47;border-radius:999px;align-items:center;gap:.35rem;margin-top:.3rem;padding:.25rem .55rem;font-size:.7rem;display:inline-flex}.tabs{width:fit-content;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fff8f0d6;border:1px solid #8f56291f;border-radius:999px;gap:.5rem;padding:.45rem;display:inline-flex}.tab{color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;padding:.65rem 1.25rem;font-weight:600;transition:transform .2s,background .2s,color .2s,box-shadow .2s,border-color .2s}.tab:hover{color:var(--text);background:#ffffffb3;transform:translateY(-1px)}.tab.active{color:var(--accent-strong);background:linear-gradient(135deg,#b4542b2e,#ffc47842);border-color:#b4542b59;box-shadow:inset 0 1px #fff9,0 10px 20px #b4542b1f}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;display:grid}.summary-empty{background:var(--card);border:1px dashed var(--border);color:var(--muted);border-radius:16px;grid-column:1/-1;padding:1.5rem}.summary-card{border:1px solid var(--border);box-shadow:var(--shadow-soft);background:linear-gradient(#fffbf6fa,#fff5ebf0);border-radius:22px;padding:1.25rem 1rem 1.1rem;transition:transform .24s,box-shadow .24s,border-color .24s;animation:.6s both floatIn;position:relative;overflow:hidden}.summary-card-button{cursor:pointer;text-align:left}.summary-card-button:hover{border-color:#b4542b40;transform:translateY(-4px)scale(1.01);box-shadow:0 24px 48px #5d391829}.summary-card:before{content:"";background:linear-gradient(90deg, var(--accent), transparent 70%);height:2px;position:absolute;inset:0 0 auto}.summary-card.blue:before{background:linear-gradient(90deg, var(--accent-blue), transparent 70%)}.summary-card.green:before{background:linear-gradient(90deg, var(--accent-green), transparent 70%)}.summary-card.amber:before{background:linear-gradient(90deg, var(--accent-amber), transparent 70%)}.summary-card.red:before{background:linear-gradient(90deg, var(--accent-red), transparent 70%)}.summary-value{font-size:1.75rem;font-weight:700}.summary-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:.35rem;font-size:.8rem}.content-card{border:1px solid var(--border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(#fffbf6f0,#fff7eee0);border-radius:28px;padding:2rem;position:relative;overflow:visible}.content-card:before{content:"";pointer-events:none;background:radial-gradient(circle,#ffcd9242,#0000 68%);width:180px;height:180px;position:absolute;inset:0 auto auto 0}.content-card h2{margin-top:0}.content-card ul{color:var(--muted);margin:1rem 0 0;padding-left:1.25rem}.insight-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-top:1.5rem;display:grid}.insight-grid>div{border:1px solid var(--border);background:linear-gradient(#fff7eee6,#fffcf8e6);border-radius:20px;padding:1rem 1.25rem;box-shadow:inset 0 1px #fff9}.section-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.5rem;display:flex}.action-panel{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.action-panel input,.action-panel select,.log-filters input,.log-filters select,.table-row select{color:var(--text);background:linear-gradient(#fffffff5,#fff6eef5);border:1px solid #a2673e47;border-radius:14px;padding:.72rem .95rem;font-size:.84rem;line-height:1.2;transition:border-color .2s,box-shadow .2s,transform .2s,background-color .2s;box-shadow:inset 0 1px #ffffffbf,0 8px 18px #79491f14}.action-panel input,.log-filters input{min-width:min(320px,100%)}.action-panel select,.log-filters select,.table-row select,.form select{padding-right:.95rem}.action-panel input::placeholder,.log-filters input::placeholder{color:#6c523fd1}.action-panel input:hover,.action-panel select:hover,.log-filters input:hover,.log-filters select:hover,.table-row select:hover{border-color:#b4542b61;box-shadow:inset 0 1px #ffffffd1,0 12px 24px #79491f1f}.break-button{letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border:1px solid #0000;border-radius:14px;padding:.72rem 1.05rem;font-size:.82rem;font-weight:700;transition:transform .2s,box-shadow .2s,filter .2s,border-color .2s;position:relative;overflow:hidden}.break-button:before{content:"";pointer-events:none;background:linear-gradient(120deg,#ffffff47,#0000 58%);position:absolute;inset:0}.break-button:hover{filter:saturate(1.04);transform:translateY(-2px)}.break-button:active{transform:translateY(1px)scale(.99)}.break-start{color:#fff9f2;background:linear-gradient(135deg,#b86a1f,#e2a33e);border-color:#85480ea3;box-shadow:0 16px 28px #b86a1f47}.break-start:hover{box-shadow:0 20px 34px #b86a1f57}.break-end{color:#fffaf7;background:linear-gradient(135deg,#8e3817,#cf6b3f);border-color:#70280ead;box-shadow:0 16px 28px #8e381747}.break-end:hover{box-shadow:0 20px 34px #8e381757}.action-panel .primary{background:linear-gradient(135deg, var(--accent-strong), var(--accent));color:#fff;letter-spacing:.03em;text-transform:uppercase;cursor:pointer;border:1px solid #712c12b3;border-radius:14px;padding:.7rem 1rem;font-size:.86rem;font-weight:600;transition:transform .2s,box-shadow .2s,filter .2s;box-shadow:0 16px 26px #b4542b47}.action-panel .primary:hover{filter:saturate(1.06);transform:translateY(-2px);box-shadow:0 20px 34px #b4542b57}.action-panel .primary:active,.form button:active,.ghost:active,.row-actions button:active,.notif-button:active,.tab:active,.action-trigger:active{transform:translateY(1px)scale(.99)}.chip{border:1px solid var(--border);background:var(--card);color:var(--muted);cursor:pointer;border-radius:999px;padding:.35rem .85rem;font-weight:600}.chip.active{background:var(--accent-soft);color:var(--accent);border-color:#2a7c6d66}.form{border:1px solid var(--border);background:linear-gradient(#fff8f0e6,#fffcf8e6);border-radius:20px;min-width:min(420px,100%);padding:1rem 1.25rem;box-shadow:inset 0 1px #ffffff8c}.form h3{margin:0 0 .75rem}.form-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;display:grid}.form input,.form select{border:1px solid var(--border);color:var(--text);background:#ffffffeb;border-radius:12px;padding:.6rem .75rem;font-size:.95rem;transition:border-color .2s,box-shadow .2s,transform .2s}.form textarea{border:1px solid var(--border);color:var(--text);resize:vertical;background:#ffffffeb;border-radius:12px;grid-column:1/-1;min-height:120px;padding:.7rem .8rem;font-family:inherit;font-size:.95rem}.recipe-textarea{width:100%}.recipe-health{border-radius:999px;align-items:center;padding:.18rem .48rem;font-size:.74rem;font-weight:700;display:inline-flex}.recipe-health-good{color:#1f6b49;background:#378d5f29}.recipe-health-warn{color:#a35f1f;background:#d27d1f2b}.recipe-health-bad{color:#a53d30;background:#c14b3929}.recipe-health-neutral{color:#66564a;background:#52483e1f}.recipe-modal{width:min(1080px,100%);max-height:92vh;overflow-y:auto}.recipe-form{min-width:100%}.recipe-form-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.recipe-panel{border:1px solid var(--border);background:#fffdf9d6;border-radius:16px;gap:.75rem;padding:.9rem 1rem;display:grid}.recipe-panel h4{margin:0;font-size:.92rem}.recipe-panel-full{grid-column:1/-1}.recipe-modal-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.65rem;display:grid}.recipe-modal-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.recipe-modal-grid label{color:var(--muted);gap:.32rem;font-size:.8rem;display:grid}.recipe-media-row{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.ingredients-add-row{align-items:end}.ingredients-add-row button{height:fit-content}.recipe-insights{background:linear-gradient(145deg,#fff6ebe6,#fffcf5eb)}.recipe-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.6rem;display:grid}.recipe-kpi-grid article{background:#ffffffbf;border:1px solid #a2673e33;border-radius:12px;gap:.2rem;padding:.62rem .72rem;display:grid}.recipe-kpi-grid strong{font-size:.96rem}.recipe-kpi-grid span{color:var(--muted);font-size:.76rem}.recipe-file-field{grid-column:1/-1}.recipe-image-preview{border:1px solid var(--border);background:var(--card);border-radius:12px;grid-column:1/-1;padding:.6rem}.recipe-image-preview img{object-fit:cover;border-radius:10px;width:100%;max-height:220px;display:block}.recipe-text-block{white-space:pre-wrap;line-height:1.5}.form input:focus,.form select:focus,.form textarea:focus,.table-row select:focus,.log-filters select:focus,.log-filters input:focus{border-color:#b4542b73;outline:none;box-shadow:0 0 0 4px #b4542b1f}.form button{background:linear-gradient(135deg, var(--accent-strong), var(--accent));color:#fff;cursor:pointer;border:1px solid #712c12b3;border-radius:12px;padding:.55rem .95rem;font-size:.85rem;font-weight:600;transition:transform .2s,box-shadow .2s,filter .2s;box-shadow:0 14px 24px #b4542b3d}.form button:hover{filter:saturate(1.05);transform:translateY(-2px);box-shadow:0 18px 30px #b4542b47}.form button.ghost,.row-actions .ghost{color:var(--accent);border:1px solid var(--border);background:0 0}.ghost{color:var(--accent-strong);cursor:pointer;background:linear-gradient(#ffffffb8,#fff3e5d1);border:1px solid #b4542b29;border-radius:12px;padding:.45rem .75rem;font-size:.76rem;font-weight:600;transition:transform .2s,border-color .2s,background .2s,box-shadow .2s;box-shadow:0 10px 20px #5d391814}.ghost:hover{color:var(--accent-strong);background:linear-gradient(#fff9f2fa,#ffe9d3f5);border-color:#b4542b5c;transform:translateY(-2px);box-shadow:0 14px 26px #5d39181f}.row-actions .danger{color:#b94939;background:0 0;border:1px solid #cc5b4a59}.row-actions button{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:#ffffffb8;border-radius:10px;padding:.38rem .7rem;font-size:.75rem;font-weight:600;transition:transform .2s,background .2s,border-color .2s,color .2s}.row-actions button:hover{color:var(--text);background:#fff8f0;transform:translateY(-1px)}.row-actions .ghost:hover{background:var(--accent-soft);color:var(--accent);border-color:#2a7c6d66}.row-actions .danger:hover{color:#b94939;background:#f7e6e3;border-color:#cc5b4a73}.checkbox{color:var(--muted);align-items:center;gap:.5rem;font-size:.9rem;display:inline-flex}.table{gap:.75rem;margin-top:1rem;display:grid;position:relative;overflow:auto visible}.table-scroll{position:relative;overflow:auto visible}.table-scroll .table{overflow:visible}.table-legend{border:1px dashed var(--border);background:var(--card-soft);color:var(--muted);letter-spacing:.02em;text-transform:uppercase;border-radius:10px;flex-wrap:wrap;gap:.4rem .5rem;padding:.4rem .6rem;font-size:.7rem;display:none}.table-legend span{background:#eef2f7;border-radius:999px;padding:.2rem .45rem}.table-row{border:1px solid var(--border);min-width:620px;box-shadow:var(--shadow-soft);background:linear-gradient(#fff8f0eb,#fffcf8eb);border-radius:16px;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;padding:.85rem 1rem;transition:transform .2s,border-color .2s,box-shadow .2s;display:grid}.table-row:not(.header):not(.filters):hover{border-color:#b4542b38;transform:translateY(-2px);box-shadow:0 18px 32px #5d39181a}.table-row.four{grid-template-columns:repeat(4,minmax(0,1fr))}.table-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}.table-row.five{grid-template-columns:repeat(5,minmax(0,1fr))}.table-row.six{grid-template-columns:repeat(6,minmax(0,1fr))}.table-row.seven{grid-template-columns:repeat(7,minmax(0,1fr))}.table-row.eight{grid-template-columns:repeat(8,minmax(0,1fr))}.table-row.nine{grid-template-columns:repeat(9,minmax(0,1fr))}.table-row.header{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:0 0;border:none;font-size:.75rem}.table-row.header span:before{content:none}.table-row.filters{background:#fffaf594;border-color:#a2673e29;border-radius:14px;padding-top:.65rem;padding-bottom:.65rem;box-shadow:inset 0 1px #ffffff80}.table-row.filters span{min-width:0}.table-row select{min-width:120px}.table-filter-input{width:100%;min-width:0;color:var(--text);background:#1612220f;border:1px solid #a2673e38;border-radius:10px;padding:.38rem .55rem;font-size:.74rem;line-height:1.2;transition:border-color .2s,box-shadow .2s,background-color .2s;box-shadow:inset 0 1px #ffffffa6}.table-filter-input::placeholder{color:#6c523fc7;text-transform:none;letter-spacing:normal}.table-filter-input:hover{background:#ffffffd1;border-color:#b4542b57}.table-filter-input:focus{background:#ffffffeb;border-color:#b4542b7a;outline:none;box-shadow:0 0 0 4px #b4542b1a}.sort-header{width:100%;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:.45rem;padding:0;display:inline-flex}.sort-header:hover{color:#8f4a22}.sort-header:focus-visible{color:#8f4a22;border-radius:8px;outline:none;box-shadow:0 0 0 3px #b4542b29}.sort-header-label{min-width:0}.sort-arrow{color:#8f4a22;background:#b4542b14;border-radius:999px;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;font-size:.72rem;line-height:1;transition:background-color .2s,transform .2s;display:inline-flex}.sort-header:hover .sort-arrow,.sort-header:focus-visible .sort-arrow{background:#b4542b29;transform:translateY(-1px)}.row-actions{flex-wrap:wrap;gap:.5rem;display:flex}.binding-summary{width:100%;color:var(--muted);background:#fff7eec7;border:1px dashed #b4542b47;border-radius:12px;margin-top:.5rem;padding:.65rem .8rem;font-size:.8rem;line-height:1.45;display:block}.copyable-meta{flex-wrap:wrap;align-items:center;gap:.45rem;display:inline-flex}.copyable-meta strong{color:var(--text);font-size:.8rem;font-weight:600}.ghost.compact{letter-spacing:.04em;text-transform:uppercase;box-shadow:none;padding:.25rem .55rem;font-size:.68rem}.action-picker{z-index:20;position:relative}.action-trigger{border:1px solid var(--border);color:var(--text);text-align:left;cursor:pointer;background:linear-gradient(#ffffffd6,#fff2e6e0);border-radius:12px;min-width:150px;padding:.35rem .75rem;font-size:.78rem;font-weight:600;transition:transform .2s,border-color .2s,background-color .2s,box-shadow .2s;position:relative}.action-trigger:after{content:"";border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);width:6px;height:6px;position:absolute;top:50%;right:.65rem;transform:translateY(-50%)rotate(45deg)}.action-trigger:hover{background-color:#fff8f1;border-color:#b4542b59;transform:translateY(-1px);box-shadow:0 12px 22px #5d391814}.action-menu{border:1px solid var(--border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:1000;background:#fffbf6f7;border-radius:16px;gap:.2rem;min-width:180px;padding:.4rem;display:grid;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 22px 44px #2d261c2e}.action-option{text-align:left;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.45rem .6rem;font-size:.8rem;font-weight:600;transition:all .2s}.action-option:hover{background:var(--accent-soft);color:var(--accent)}.row-actions .action-exec{background:linear-gradient(135deg, var(--accent-strong), var(--accent));color:#fff;cursor:pointer;border:1px solid #712c12b3;border-radius:8px;padding:.3rem .6rem;font-size:.75rem;font-weight:600;transition:all .2s}.row-actions .action-exec:hover{background:linear-gradient(135deg, var(--accent-strong), var(--accent));border-color:#712c12b3}.row-actions .delete-icon{color:#b94939;cursor:pointer;background:0 0;border:1px solid #cc5b4a59;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:.85rem;font-weight:700;transition:all .2s;display:inline-flex}.row-actions .delete-icon:hover{background:#f7e6e3;border-color:#cc5b4a73}.log-filters{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;margin:1rem 0 .5rem;display:grid}.log-filters select,.log-filters input{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:12px;padding:.6rem .75rem;font-size:.95rem}.report-cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-top:1rem;display:grid}.report-toolbar{flex-wrap:wrap;justify-content:space-between;gap:.75rem;margin-top:.75rem;display:flex}.report-card-head{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.report-card-head h3{margin:0}.report-kpis{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.8rem;margin-top:1rem;display:grid}.report-kpi-card{border:1px solid var(--border);box-shadow:var(--shadow-soft);background:linear-gradient(#fffaf3f5,#fffffff0);border-radius:16px;padding:.9rem 1rem}.report-kpi-alert{background:linear-gradient(#fff5f2f5,#fffcfaf0);border-color:#cc5b4a4d}.report-kpi-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.72rem}.report-kpi-value{color:var(--text);margin:.35rem 0 0;font-size:1.22rem;font-weight:700}.report-cards>div{border:1px solid var(--border);box-shadow:var(--shadow-soft);background:linear-gradient(#fff9f1f0,#fffdf9eb);border-radius:20px;padding:1rem 1.25rem}.report-cards ul{color:var(--muted);margin:.75rem 0 0;padding-left:1.25rem}.report-list{color:var(--text);gap:.5rem;margin:.75rem 0 0;padding:0;list-style:none;display:grid}.report-list li{background:var(--card);border:1px solid var(--border);border-radius:12px;justify-content:space-between;gap:1rem;padding:.5rem .75rem;font-size:.92rem;display:flex}.report-list-chart-item{gap:.45rem;display:grid}.report-list-main{justify-content:space-between;gap:.75rem;font-size:.86rem;display:flex}.report-bar-track{background:#a0897538;border-radius:999px;width:100%;height:8px;overflow:hidden}.report-bar-fill{border-radius:999px;height:100%}.report-bar-fill.consumption{background:linear-gradient(90deg,#2f7d5f,#65b88f)}.report-bar-fill.wastage{background:linear-gradient(90deg,#bb5340,#de8a72)}.report-daily-chart{border:1px solid var(--border);background:linear-gradient(#fffdf9f5,#fff7eeeb);border-radius:14px;grid-template-columns:repeat(30,minmax(0,1fr));align-items:end;gap:.18rem;min-height:140px;margin-top:.4rem;padding:.6rem .3rem .2rem;display:grid}.report-day-group{justify-content:center;display:flex}.report-day-bars{justify-content:center;align-items:end;gap:2px;width:100%;height:120px;display:flex}.report-day-bar{border-radius:5px 5px 2px 2px;width:45%;min-height:4px;display:inline-block}.report-day-bar.consumption{background:linear-gradient(#72c5a0,#2f7d5f)}.report-day-bar.wastage{background:linear-gradient(#e3a28f,#bb5340)}.report-legend-inline{color:var(--muted);gap:.85rem;margin-top:.55rem;font-size:.78rem;display:inline-flex}.report-legend-inline .dot{border-radius:999px;width:10px;height:10px;margin-right:.35rem;display:inline-block}.report-legend-inline .dot.consumption{background:#2f7d5f}.report-legend-inline .dot.wastage{background:#bb5340}.subsection{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:start;gap:1.5rem;margin-top:2rem;display:grid}.subsection ul{color:var(--muted);margin:.75rem 0 0;padding-left:1.25rem}.status-message{color:var(--accent-strong);margin:0;font-weight:600}.time-chip{color:var(--accent-strong);letter-spacing:.03em;background:linear-gradient(120deg,#ffdfb79e,#fff4e5e0);border:1px solid #b4542b38;border-radius:999px;align-items:center;gap:.75rem;margin:0 auto;padding:.7rem 1rem;font-size:.85rem;font-weight:600;display:inline-flex;box-shadow:0 16px 34px #b4542b2e}.time-chip strong{color:var(--text);font-size:1.05rem}.chip{color:var(--muted);cursor:pointer;background:linear-gradient(#fffc,#fff4e6d6);border:1px solid #b4542b29;border-radius:999px;padding:.45rem .95rem;font-weight:700;transition:transform .2s,border-color .2s,background .2s,color .2s}.chip:hover{color:var(--text);border-color:#b4542b4d;transform:translateY(-1px)}.chip.active{color:var(--accent-strong);background:linear-gradient(135deg,#b4542b24,#ffc47838);border-color:#b4542b5c}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.modal-overlay{z-index:20;background:#23140a66;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal{border:1px solid var(--border);width:min(640px,100%);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffbf6f5;border-radius:26px;padding:1.5rem}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}@keyframes floatIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (width<=640px){.app{padding:2rem 1.25rem}.tabs{border-radius:18px;flex-wrap:wrap;justify-content:flex-start;width:100%}.tab{padding:.4rem .75rem;font-size:.8rem}.summary-grid{grid-template-columns:1fr}.action-panel,.header-actions{width:100%}.user-pill{justify-content:space-between;width:100%}.logout-button{justify-content:center;min-width:110px}.table{margin-top:.75rem}.table-legend{display:none}.table-row{gap:.5rem;min-width:0;padding:1rem;display:block}.logs-table .table-row{background:var(--card-solid);border-color:#efe6dc;box-shadow:0 10px 24px #2b241b14}.table-row>span{word-break:break-word;border-bottom:1px dashed var(--border);flex-direction:column;align-items:flex-start;padding:.5rem 0;display:flex}.table-row>span:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.08em;color:#8b7d6dbf;margin-bottom:.1rem;font-size:.6rem;display:block}.table-row>span.card-title{color:var(--text);font-size:1rem;font-weight:700}.table-row>span:last-child{border-bottom:none;padding-bottom:0}.content-card{padding:1.5rem}.checkin-card h2{font-size:1.1rem}.checkin-card .action-panel{flex-direction:column;align-items:stretch}.checkin-card .action-panel button{justify-content:center;width:100%}.checkin-card .time-chip{justify-content:space-between;width:100%}.checkin-card .latest-log{color:var(--muted);font-size:.85rem}.checkin-card .latest-log h3{color:var(--text);margin:0 0 .35rem;font-size:.95rem}.report-cards{grid-template-columns:1fr}.report-cards>div{background:#fff9f3f5;border-radius:18px;padding:1rem}.report-list li{border-radius:14px;flex-direction:row;justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem .75rem;font-size:.7rem}.report-list li span:last-child{color:var(--muted);white-space:nowrap;font-size:.65rem}.table-row.header{display:none}.row-actions{flex-wrap:wrap;justify-content:flex-start;gap:.5rem;margin-top:.25rem;display:flex}.recipe-form-layout,.recipe-modal-grid.two{grid-template-columns:1fr}}body{margin:0}button{font-family:inherit}*{scrollbar-color:#5f8cff99 #0a101acc;scrollbar-width:thin}
