:root{--bg:#f4f7fb;--card:#fff;--ink:#172033;--muted:#64748b;--line:#dbe5f2;--navy:#173b66;--blue:#2d73c9;--teal:#009688;--green:#1f9d55;--orange:#ee8a28;--red:#cf4f4f;--shadow:0 10px 30px rgba(31,58,91,.10)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:linear-gradient(180deg,#edf4fb 0%,var(--bg) 48%,#f8fafc 100%);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft JhengHei","Noto Sans TC",Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{max-width:1120px;margin:0 auto;padding:18px 14px 92px}.topbar{position:sticky;top:0;z-index:20;margin:-18px -14px 14px;padding:14px 14px 10px;background:rgba(244,247,251,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(220,230,244,.9)}.hero{background:linear-gradient(135deg,#173b66,#2566a9);color:white;border-radius:26px;padding:18px 18px 16px;box-shadow:var(--shadow);overflow:hidden;position:relative}.hero:after{content:"";position:absolute;right:-60px;top:-80px;width:230px;height:230px;border-radius:999px;background:rgba(255,255,255,.13)}.hero h1{margin:0;font-size:clamp(25px,5.5vw,42px);line-height:1.15;position:relative;z-index:1}.hero p{margin:8px 0 0;color:#d9ecff;font-size:clamp(14px,3.4vw,18px);position:relative;z-index:1}.navrow{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-top:12px}.tabs{display:flex;gap:7px;overflow:auto;padding-bottom:2px}.tab{min-width:60px;border:0;border-radius:999px;background:#e8eef7;color:#34506e;padding:9px 12px;font-weight:900;text-decoration:none;text-align:center}.tab.active{background:var(--navy);color:white}.actions{display:flex;gap:8px}.iconbtn{border:1px solid var(--line);background:white;border-radius:999px;padding:9px 12px;color:var(--navy);font-weight:800;box-shadow:0 3px 12px rgba(31,58,91,.06)}.grid{display:grid;grid-template-columns:1.1fr .9fr;gap:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:16px;margin-bottom:14px}.card h2{font-size:22px;margin:0 0 12px;color:var(--navy)}.card h3{font-size:18px;margin:14px 0 9px;color:var(--navy)}.phasehead{display:flex;align-items:center;justify-content:space-between;gap:12px}.badge{background:#eaf3ff;color:var(--blue);border-radius:999px;padding:7px 11px;font-weight:900}.bigphase{width:76px;height:76px;border-radius:22px;background:linear-gradient(135deg,#316ebc,#6aa2e5);color:white;display:grid;place-items:center;font-size:30px;font-weight:900;box-shadow:0 12px 20px rgba(45,115,201,.22)}.targets{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.metric{border:1px solid var(--line);border-left:8px solid var(--blue);border-radius:16px;padding:10px;background:#fbfdff}.metric:nth-child(2){border-left-color:var(--teal)}.metric:nth-child(3){border-left-color:var(--orange)}.metric:nth-child(4){border-left-color:var(--green)}.metric small{display:block;color:var(--muted)}.metric b{font-size:22px}.notice{border-radius:16px;padding:12px 14px;background:#fff6dd;border:1px solid #f1d68e;color:#604514;line-height:1.55}.danger{background:#fff1f1;border-color:#f5c3c3;color:#8b2424}.ok{background:#eef9f2;border-color:#bfe8ce;color:#155c31}.meals{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.meal{border:1px solid var(--line);border-radius:18px;background:#fff;padding:13px 13px 12px;border-left:8px solid var(--blue);min-height:150px}.meal.teal{border-left-color:var(--teal)}.meal.orange{border-left-color:var(--orange)}.meal.green{border-left-color:var(--green)}.meal .time{font-weight:900;color:var(--blue);font-size:20px}.meal.teal .time{color:var(--teal)}.meal.orange .time{color:var(--orange)}.meal.green .time{color:var(--green)}.meal .name{font-weight:800;margin:2px 0 8px}.meal ul{margin:0;padding-left:20px;line-height:1.6;color:#2a3548}.formgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:5px}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:14px;padding:11px 10px;background:#fbfdff;color:var(--ink)}.btn{border:0;border-radius:15px;padding:12px 13px;background:var(--navy);color:white;font-weight:900}.btn.secondary{background:#eef3fa;color:var(--navy);border:1px solid var(--line)}.btn.red{background:var(--red)}.btn.green{background:var(--green)}.btnrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.btnrow .btn{flex:1;min-width:120px}.bars .baritem{margin:11px 0}.barlabel{display:flex;align-items:center;justify-content:space-between;color:#2b3850;font-size:14px}.track{height:16px;background:#e5edf6;border-radius:999px;overflow:hidden;margin-top:6px}.fill{height:100%;border-radius:999px;background:var(--blue);width:0}.fill.teal{background:var(--teal)}.fill.orange{background:var(--orange)}.fill.green{background:var(--green)}canvas{width:100%;height:260px;background:#fbfdff;border:1px solid var(--line);border-radius:18px}.summarylist{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.summaryitem{background:#f6f9fc;border:1px solid var(--line);border-radius:14px;padding:10px}.summaryitem b{display:block;font-size:20px;color:var(--navy)}.bottomnav{position:fixed;left:0;right:0;bottom:0;z-index:30;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:10px 12px calc(10px + env(safe-area-inset-bottom));display:flex;gap:10px;justify-content:center}.bottomnav button{max-width:260px;flex:1}.phase-table{width:100%;border-collapse:collapse}.phase-table th,.phase-table td{padding:11px;border-bottom:1px solid var(--line);text-align:left}.phase-table th{color:var(--navy);background:#f6f9fc}.phase-table tr:last-child td{border-bottom:0}.pill{display:inline-block;border-radius:999px;background:#eef3fa;color:#274966;padding:5px 10px;font-weight:800;margin:2px}.print-only{display:none}@media (max-width:880px){.grid{grid-template-columns:1fr}.targets{grid-template-columns:repeat(2,1fr)}.meals{grid-template-columns:1fr}.formgrid{grid-template-columns:repeat(2,1fr)}}@media (max-width:440px){.shell{padding-left:10px;padding-right:10px}.targets,.formgrid,.summarylist{grid-template-columns:1fr}.hero{border-radius:20px}.card{padding:13px}.bigphase{width:58px;height:58px;font-size:24px}.actions{display:none}}@media print{body{background:white}.topbar,.bottomnav,.hideprint{display:none!important}.shell{padding:0;max-width:none}.grid{grid-template-columns:1fr}.card{box-shadow:none;break-inside:avoid}.print-only{display:block}}
