:root{--green:#4a9d3f;--green-dark:#35772f;--green-soft:#eef8ec;--border:#d9dfd7;--text:#243024;--muted:#6f786f;--danger:#c84c4c;--bg:#f6f8f5;--white:#fff}*{box-sizing:border-box}body{color:var(--text);background:var(--bg);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Kaku Gothic ProN,Yu Gothic,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.login-wrap{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:var(--white);border:1px solid var(--border);border-radius:18px;width:min(420px,100%);padding:32px;box-shadow:0 12px 30px #14281414}.brand{text-align:center;margin-bottom:28px}.brand-icon{margin-bottom:10px;font-size:42px}.brand h1{margin:0 0 8px;font-size:24px}.brand p{color:var(--muted);margin:0;font-size:14px}.auth-switch{text-align:center;color:var(--muted);margin:20px 0 0;font-size:14px}.auth-switch a{color:var(--green-dark);font-weight:600}.field{gap:8px;margin-bottom:18px;display:grid}.field label{font-size:14px;font-weight:600}.field input,.field select{border:1px solid var(--border);background:var(--white);border-radius:10px;width:100%;padding:12px 14px}.primary{color:#fff;background:var(--green);border:0;border-radius:10px;padding:12px 16px;font-weight:700}.primary:hover{background:var(--green-dark)}.primary:disabled{opacity:.6;cursor:not-allowed}.secondary{border:1px solid var(--border);background:var(--white);color:var(--text);border-radius:10px;padding:10px 14px}.danger{color:var(--danger);background:#fff5f5;border:1px solid #efb0b0;border-radius:8px;padding:7px 10px}.app{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--white);border-right:1px solid var(--border);padding:20px 14px}.sidebar-header{justify-content:space-between;align-items:center;margin:0 0 20px;padding:0 10px;display:flex}.sidebar h2{margin:0;font-size:18px}.hamburger-button{border:1px solid var(--border);background:var(--white);border-radius:8px;flex-direction:column;justify-content:center;gap:4px;width:34px;height:34px;padding:0;display:none}.hamburger-button span{background:var(--text);border-radius:2px;height:2px;display:block}.nav{gap:6px;display:grid}.nav a,.nav button{text-align:left;width:100%;color:var(--text);background:0 0;border:0;border-radius:10px;padding:11px 12px;text-decoration:none;display:block}.nav a.active,.nav button.active{background:var(--green-soft);color:var(--green-dark);font-weight:700}.main{min-width:0}.topbar{background:var(--white);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;height:64px;padding:0 24px;display:flex}.topbar strong{font-size:16px}.content{padding:24px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.page-header h1{margin:0;font-size:26px}.toolbar{flex-wrap:wrap;gap:8px;display:flex}.week-grid{grid-template-columns:repeat(7,minmax(150px,1fr));gap:10px;padding-bottom:6px;display:grid;overflow-x:auto}.day-card{background:var(--white);border:1px solid var(--border);border-radius:14px;flex-direction:column;min-height:280px;padding:14px;display:flex}.day-title{border-bottom:1px solid var(--border);margin-bottom:10px;padding-bottom:10px;font-weight:700}.menu-list{gap:8px;margin-bottom:12px;display:grid}.menu-chip{background:var(--green-soft);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:14px;display:flex}.menu-chip button{color:var(--danger);background:0 0;border:0;padding:0;font-size:13px}.add-menu-btn{border:1px dashed var(--green);color:var(--green-dark);background:#fff;border-radius:9px;margin-top:auto;padding:9px}.table-wrap{background:var(--white);border:1px solid var(--border);border-radius:14px;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:680px}th,td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:12px 14px}th{background:#f2f5f1;font-size:14px}tr:last-child td{border-bottom:0}.badge{background:var(--green-soft);color:var(--green-dark);border-radius:999px;align-items:center;padding:4px 9px;font-size:12px;display:inline-flex}.badge.off{color:#6d747c;background:#eef0f2}.form-card{background:var(--white);border:1px solid var(--border);border-radius:14px;max-width:920px;padding:20px}.section-title{border-top:1px solid var(--border);margin:26px 0 14px;padding-top:18px;font-size:15px}.field-grid{grid-template-columns:repeat(3,1fr);gap:0 16px;display:grid}.recipe-row{grid-template-columns:2fr 1fr 1fr auto;align-items:center;gap:10px;margin-bottom:10px;display:grid}.recipe-row input,.recipe-row select,.filter-row input,.filter-row select{border:1px solid var(--border);background:#fff;border-radius:9px;width:100%;padding:10px 12px}.recipe-row-unit{color:var(--muted);text-align:center}.searchable-combobox{position:relative}.searchable-combobox input{border:1px solid var(--border);background:#fff;border-radius:9px;width:100%;padding:10px 12px}.searchable-combobox-list{z-index:10;background:var(--white);border:1px solid var(--border);border-radius:9px;max-height:220px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 20px #1428141f}.searchable-combobox-list li{cursor:pointer;border-radius:6px;padding:8px 10px}.searchable-combobox-list li.active{background:var(--green-soft)}.searchable-combobox-empty{color:var(--muted);cursor:default!important}.filter-row{gap:10px;margin-bottom:14px;display:flex}.filter-row input{flex:auto;min-width:180px}.filter-row select{flex:0 0 220px}.notice{color:#7b5a11;background:#fff7e5;border:1px solid #f0d18d;border-radius:10px;margin-top:16px;padding:12px 14px;font-size:14px}.notice.error{color:#a33a3a;background:#fff0f0;border-color:#f0b0b0}.modal-backdrop{z-index:20;background:#00000061;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--white);border-radius:16px;width:min(480px,100%);padding:22px;box-shadow:0 18px 50px #0003}.modal h3{margin-top:0}.modal .searchable-combobox{margin:16px 0 22px}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.empty{color:var(--muted);font-size:14px}.nutrition-chart{background:var(--white);border:1px solid var(--border);border-radius:14px;margin-top:24px;padding:20px}.nutrition-chart .section-title{border-top:0;margin-top:0;padding-top:0}.nutrition-bar-list{gap:10px;display:grid}.nutrition-bar-row{grid-template-columns:110px 1fr 48px;align-items:center;gap:10px;display:grid}.nutrition-bar-label{color:var(--muted);font-size:13px}.nutrition-bar-track{background:var(--green-soft);border-radius:999px;height:12px;position:relative;overflow:hidden}.nutrition-bar-fill{background:var(--green);border-radius:999px;height:100%}.nutrition-bar-fill.is-full{background:var(--green-dark)}.nutrition-bar-target-mark{background:var(--green-dark);opacity:.6;width:2px;position:absolute;top:0;bottom:0}.nutrition-bar-percent{text-align:right;font-size:13px;font-weight:700}@media (width<=640px){.nutrition-bar-row{grid-template-columns:90px 1fr 40px}}@media (width<=767px){.hamburger-button{display:flex}.nav{display:none}.nav.open{flex-direction:column;display:flex}}@media (width<=900px){.app{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--border);padding:10px}.week-grid{grid-template-columns:1fr;overflow:visible}.day-card{min-height:auto}.filter-row{grid-template-columns:1fr}.field-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.topbar{padding:0 14px}.content{padding:16px}.page-header h1{font-size:22px}.recipe-row{border-bottom:1px solid var(--border);grid-template-columns:1fr;padding-bottom:12px}.field-grid{grid-template-columns:1fr}}
