@font-face{font-family:Montserrat;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/montserrat-400-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/montserrat-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/montserrat-500-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/montserrat-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/montserrat-600-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/montserrat-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/montserrat-700-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/montserrat-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/montserrat-800-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/montserrat-800-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/playfair-display-600-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/playfair-display-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Display;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/playfair-display-700-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Playfair Display;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/playfair-display-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #B494F8;--lime: #DBFA40;--surface: #FFFFFF;--ink: #2A1F45;--ink-soft: #7C71A0;--line: #E9E1FB;--coral: #ed7c30;--coral-soft: #FCE3D2;--coral-ink: #A8531D;--sage: #DBFA40;--sage-soft: #F5FBD3;--sage-ink: #66760D;--blue: #8A7FB0;--blue-soft: #EFEAFB;--blue-ink: #4B3F70;--rose: #FB4645;--rose-soft: #FDE0DF;--rose-ink: #93221F;--teal: #9B7AE8;--teal-soft: #EDE5FE;--teal-ink: #4B3480;--radius: 18px;--radius-sm: 12px;--shadow: 0 2px 8px rgba(42,31,69,.1), 0 1px 2px rgba(42,31,69,.08)}*{box-sizing:border-box}html,body,#root{height:100%}html{touch-action:manipulation}body{margin:0;background:var(--bg);color:var(--lime);font-family:Montserrat,sans-serif}.mono{font-family:IBM Plex Mono,monospace}.card{background:var(--surface);color:var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px}.tag{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:5px 11px;border-radius:20px;margin-bottom:12px}.tag.coral{background:var(--coral-soft);color:var(--coral-ink)}.tag.sage{background:var(--sage-soft);color:var(--sage-ink)}.tag.rose{background:var(--rose-soft);color:var(--rose-ink)}.tag.teal{background:var(--teal-soft);color:var(--teal-ink)}.tag.blue{background:var(--blue-soft);color:var(--blue-ink)}button{font-family:inherit;cursor:pointer}.btn-primary{background:var(--coral);color:#fff;border:none;padding:10px 18px;border-radius:12px;font-weight:600;font-size:14px}.btn-ghost{background:transparent;border:1.5px dashed var(--line);color:var(--ink-soft);padding:9px 14px;border-radius:var(--radius-sm);font-size:13px}input,textarea,select{font-family:inherit;border:1.5px solid var(--line);border-radius:10px;padding:9px 12px;font-size:16px;color:var(--ink);width:100%}.app-shell{display:grid;grid-template-columns:80px 1fr;min-height:100vh}.navrail{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding-top:22px;background:var(--bg)}.navrail a{display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 6px;margin:0 10px;border-radius:14px;color:var(--lime);opacity:.55;text-decoration:none}.navrail a.active{background:var(--lime);color:var(--ink);opacity:1}.navrail svg{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.navrail .lbl{font-family:IBM Plex Mono;font-size:9px;text-transform:uppercase}.view{padding:28px 34px 60px 32px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 30px;position:relative;z-index:20;gap:10px}.brand{display:flex;align-items:center;gap:10px;flex-shrink:0}.brand-name{font-family:Playfair Display,serif;font-weight:700;font-size:26px}.date-switch{display:flex;align-items:center;gap:14px;font-weight:600;font-size:14.5px;position:relative}.date-switch .arrow{cursor:pointer;color:var(--lime);opacity:.7;font-size:15px;-webkit-user-select:none;user-select:none}.date-switch .today-pill{background:var(--rose);color:#fff;padding:5px 13px;border-radius:20px;font-size:12px;font-weight:700;cursor:pointer;letter-spacing:.03em}.date-switch .label-clickable{cursor:pointer;border-bottom:1.5px dotted var(--lime);opacity:.95;padding-bottom:1px}.cal-pop{position:absolute;top:38px;left:50%;transform:translate(-50%);background:var(--surface);color:var(--ink);border-radius:var(--radius);box-shadow:0 8px 24px #2e2c3d24;padding:16px;width:280px;z-index:30}.cal-pop .cal-head{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;margin-bottom:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);font-weight:600}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.cal-grid .dow{font-family:IBM Plex Mono;font-size:10px;color:var(--ink-soft);padding-bottom:4px}.cal-grid .day{font-family:IBM Plex Mono;font-size:12.5px;padding:7px 0;cursor:pointer;border-radius:10px}.cal-grid .day:hover{background:var(--line)}.cal-grid .day.today{background:var(--coral);color:#fff;font-weight:700}.cal-grid .day.selected{background:var(--teal);color:#fff;font-weight:700}.cal-grid .day.muted{color:var(--line)}.section-title{font-weight:700;font-size:19px;margin-bottom:4px}.section-sub{color:var(--lime);opacity:.65;font-size:13.5px;margin-bottom:20px}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.auth-card{width:100%;max-width:380px}.auth-card h1{font-family:Playfair Display,serif;font-size:30px;margin:0 0 4px}.auth-card p.sub{color:var(--ink-soft);font-size:13.5px;margin:0 0 20px}.field{margin-bottom:14px}.field label{display:block;font-size:12.5px;color:var(--ink-soft);margin-bottom:5px}.error-text{color:var(--rose-ink);font-size:13px;margin:8px 0}.switch-link{margin-top:16px;font-size:13px;color:var(--ink-soft);text-align:center}.switch-link button{background:none;border:none;color:var(--coral-ink);font-weight:600;padding:0}.task-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px dashed var(--line);font-size:14.5px}.task-row:last-child{border-bottom:none}.task-row .box{width:18px;height:18px;border-radius:6px;border:1.6px solid var(--ink-soft);flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:11px;color:#fff}.task-row.done .title{color:var(--ink-soft);text-decoration:line-through}.task-row.done .box{background:var(--sage);border-color:var(--sage)}.task-row .title{flex:1}.task-item{border-bottom:1px dashed var(--line)}.task-item:last-child{border-bottom:none}.attach-toggle{background:none;border:none;color:var(--ink-soft);cursor:pointer;padding:4px 6px;flex-shrink:0}.attach-chips{display:flex;gap:6px;flex-wrap:wrap;padding:0 0 8px 30px}.attach-chip{display:inline-flex;align-items:center;gap:5px;font-family:IBM Plex Mono;font-size:10.5px;background:var(--blue-soft);color:var(--blue-ink);padding:3px 9px;border-radius:20px;text-decoration:none;cursor:pointer;border:none}.attach-chip img{width:16px;height:16px;border-radius:4px;object-fit:cover}.attach-chip .x{opacity:.6}.attach-menu{display:flex;gap:6px;flex-wrap:wrap;padding:0 0 10px 30px}.attach-menu input{flex:1;min-width:140px}.empty-state{display:flex;flex-direction:column;align-items:center;gap:7px;padding:26px 20px;text-align:center;color:var(--ink-soft);font-size:12.5px}.today-grid{display:grid;grid-template-columns:300px 1fr;gap:22px;align-items:start}.meal-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.meal-card{display:block;width:100%;text-align:left;border:none;font-family:inherit;background:var(--sage-soft);border-radius:12px;padding:12px;cursor:pointer}.meal-card:hover{background:var(--sage)}.meal-form{display:flex;flex-direction:column;gap:6px;background:var(--sage-soft);border-radius:12px;padding:10px}.meal-form input{padding:6px 8px;font-size:16px}.meal-form .meal-form-actions{display:flex;gap:6px}.meal-form button{flex:1;font-size:11.5px;padding:6px;border-radius:8px}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}@media (max-width: 900px){.app-shell{grid-template-columns:1fr}.navrail{position:fixed;left:0;right:0;bottom:0;z-index:20;flex-direction:row;padding:8px 4px calc(8px + env(safe-area-inset-bottom,0px));box-shadow:0 -2px 10px #2a1f452e}.navrail a{flex:1;margin:0}.view{padding:18px 16px 90px}.topbar{padding:12px 16px;flex-wrap:wrap}.brand-name{font-size:21px}.date-switch{font-size:11.5px;gap:8px;order:3;width:100%;justify-content:center}.date-switch .today-pill{padding:4px 9px;font-size:10px}.cal-pop{left:auto;right:0;transform:none;width:260px}.today-grid,.meal-row,.stat-row{grid-template-columns:1fr}}
