:root{--accent: #2f6f5e;--accent-dark: #245548;--accent-soft: #e8f2ef;--accent-line: #b6d5cc;--accent-text: #ffffff;--bg: #f5f6f7;--surface: #ffffff;--text: #16211f;--text-muted: #6b7280;--border: #e3e6e8;--danger: #c0392b;--danger-soft: #fdecea;--warn-soft: #fff6e5;--warn-line: #f0c98a;--ok-soft: #e9f7ef;--radius: 14px;--shadow: 0 1px 2px rgb(16 33 31 / 6%), 0 6px 20px rgb(16 33 31 / 6%);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;line-height:1.25}h1{font-size:1.5rem}h2{font-size:1.05rem}p{margin:0}a{color:var(--accent-dark)}code{background:#0000000d;border-radius:4px;padding:.1em .35em;font-size:.9em}.muted{color:var(--text-muted)}.text-danger{color:var(--danger);font-weight:600}.app-shell{display:flex;min-height:100%;flex-direction:column}.app-header{position:sticky;top:0;z-index:10;background:var(--accent);color:var(--accent-text);padding-top:env(safe-area-inset-top)}.app-header__inner{display:flex;max-width:960px;margin:0 auto;align-items:center;gap:16px;padding:12px 16px}.brand{display:flex;align-items:center;gap:8px;font-weight:700;margin-right:auto}.brand__mark{font-size:1.25rem}.brand__name{white-space:nowrap}.nav--top{display:none;gap:4px}.nav__link{color:inherit;text-decoration:none;padding:6px 12px;border-radius:999px;font-size:.92rem;opacity:.85}.nav__link:hover{background:#ffffff1f;opacity:1}.nav__link.active{background:#fff3;opacity:1;font-weight:600}.account{display:flex;align-items:center;gap:8px}.account__name{display:none;font-size:.9rem;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account__avatar{width:30px;height:30px;border-radius:50%;object-fit:cover;background:#ffffff40}.account__avatar--fallback{display:grid;place-items:center;font-weight:700;font-size:.85rem}.account__avatar--lg{width:52px;height:52px;background:var(--accent-soft);color:var(--accent-dark);font-size:1.2rem}.app-main{flex:1;width:100%;max-width:960px;margin:0 auto;padding:16px 16px calc(84px + env(safe-area-inset-bottom))}.nav--bottom{position:fixed;inset:auto 0 0;z-index:10;display:flex;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.nav__tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;font-size:.72rem;color:var(--text-muted);text-decoration:none}.nav__tab.active{color:var(--accent-dark);font-weight:600}.nav__icon{font-size:1.15rem;line-height:1}.page{display:flex;flex-direction:column;gap:16px}.page--narrow{max-width:620px}.page__head{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;justify-content:space-between}.page__sub{color:var(--text-muted);font-size:.92rem;margin-top:4px}.date-nav{display:flex;align-items:center;gap:6px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;display:flex;flex-direction:column;gap:12px}.card--danger{border-color:#f0c3bd}.empty{background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius);padding:32px 16px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--text-muted)}.hint{font-size:.84rem;color:var(--text-muted)}.alert{border-radius:10px;padding:10px 12px;font-size:.9rem;border:1px solid transparent}.alert--error{background:var(--danger-soft);border-color:#f2c2bb;color:#86271b}.alert--warn{background:var(--warn-soft);border-color:var(--warn-line);color:#7a5310}.alert--ok{background:var(--ok-soft);border-color:#b6ddc5;color:#1d6b3f}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:999px;padding:10px 16px;font:inherit;font-weight:600;font-size:.92rem;cursor:pointer;text-decoration:none;background:transparent;color:var(--text);transition:background .15s ease,opacity .15s ease}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--sm{padding:7px 12px;font-size:.85rem}.btn--primary{background:var(--accent);color:var(--accent-text)}.btn--primary:not(:disabled):hover{background:var(--accent-dark)}.btn--ghost{border-color:var(--border);background:var(--surface)}.btn--ghost:not(:disabled):hover{background:var(--accent-soft);border-color:var(--accent-line)}.btn--danger{background:var(--danger);color:#fff}.btn--danger-ghost{border-color:#eec3bd;color:var(--danger);background:var(--surface)}.btn--danger-ghost:not(:disabled):hover{background:var(--danger-soft)}.app-header .btn--ghost{background:#ffffff24;border-color:#ffffff4d;color:inherit}.app-header .btn--ghost:hover{background:#ffffff42;border-color:#ffffff73}.form{gap:14px}.field{display:flex;flex-direction:column;gap:6px;border:0;padding:0;margin:0;min-width:0}.field--inline{flex:1}.field__label{font-size:.85rem;font-weight:600;color:var(--text-muted);padding:0}.field-row{display:flex;flex-wrap:wrap;gap:14px}.field-row>.field{flex:1 1 180px}.input{width:100%;font:inherit;font-size:1rem;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);min-width:0}.input:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.input--date{width:auto;padding:7px 10px;font-size:.9rem}.input--unit{width:74px;flex:none}.input--color{width:64px;height:40px;padding:4px}.input-group{display:flex;gap:8px}textarea.input{resize:vertical}.checkbox{display:flex;align-items:center;gap:10px;font-size:.95rem}.checkbox input{width:18px;height:18px;accent-color:var(--accent)}.choice-row{display:flex;flex-wrap:wrap;gap:10px}.choice{flex:1 1 160px;display:flex;align-items:flex-start;gap:10px;border:1px solid var(--border);border-radius:12px;padding:10px 12px;cursor:pointer}.choice--active{border-color:var(--accent);background:var(--accent-soft)}.choice input{margin-top:3px;accent-color:var(--accent)}.choice span{display:flex;flex-direction:column}.choice small{color:var(--text-muted);font-size:.8rem}.form__actions,.confirm__actions,.restock__actions{display:flex;flex-wrap:wrap;gap:8px}.med-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.med{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--accent-line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center}.med--low{border-left-color:var(--danger);background:linear-gradient(0deg,var(--warn-soft),var(--warn-soft)) padding-box}.med__main{flex:1 1 260px;display:flex;flex-direction:column;gap:4px;min-width:0}.med__title{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.med__meta,.med__stock{font-size:.9rem;color:var(--text-muted)}.med__stock strong{color:var(--text)}.med__effect{font-size:.9rem;color:var(--accent-dark);font-weight:500}.med__effect--over{color:var(--text-muted);font-weight:400}.med__time{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:.85rem;color:var(--text-muted)}.input--time{width:auto;padding:5px 8px;font-size:.9rem}.duration{display:flex;flex:1;align-items:center;gap:8px;min-width:0}.duration span{font-size:.85rem;color:var(--text-muted)}.med__notes{font-size:.85rem;color:var(--text-muted);font-style:italic}.med__facts{display:flex;flex-wrap:wrap;gap:4px 20px;margin:6px 0 0}.med__facts div{min-width:78px}.med__facts dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.med__facts dd{margin:0;font-size:.92rem;font-weight:600}.med__actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.med__actions--manage{flex:1 1 100%;border-top:1px solid var(--border);padding-top:10px}.tag{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:3px 9px;white-space:nowrap}.tag--regular{background:var(--accent-soft);color:var(--accent-dark)}.tag--occasional{background:#eef0f2;color:#52606d}.tag--low{background:var(--danger-soft);color:#86271b}.stepper{display:flex;align-items:center;border:1px solid var(--border);border-radius:999px;overflow:hidden;background:var(--surface)}.stepper__btn{width:42px;height:42px;border:0;background:transparent;font-size:1.3rem;line-height:1;cursor:pointer;color:var(--accent-dark)}.stepper__btn:disabled{opacity:.35;cursor:not-allowed}.stepper__btn:not(:disabled):hover{background:var(--accent-soft)}.stepper__value{min-width:44px;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}.confirm,.restock{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;width:100%;font-size:.92rem}.account-row{display:flex;align-items:center;gap:14px}.account-row__name{font-weight:700}.check-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px 16px}.preset-row{display:flex;flex-wrap:wrap;gap:8px}.card__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.card__head h2{margin:0}.swatches{display:flex;flex-wrap:wrap;gap:10px}.swatch{width:40px;height:40px;border-radius:50%;border:2px solid transparent;box-shadow:inset 0 0 0 2px var(--surface);cursor:pointer;padding:0}.swatch--active{border-color:var(--text)}.login{min-height:100%;display:grid;place-items:center;padding:24px 16px;background:linear-gradient(160deg,var(--accent-soft),var(--bg) 60%)}.login__card{background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);padding:28px 24px;width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}.login__mark{font-size:2.4rem}.login__lede{color:var(--text-muted)}.login__points{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;text-align:left;align-self:stretch;font-size:.92rem}.login__points li:before{content:"✓";color:var(--accent);font-weight:700;margin-right:8px}.login__button{min-height:44px;display:grid;place-items:center}.login__footnote{font-size:.8rem;color:var(--text-muted)}.boot-screen{min-height:100%;display:grid;place-items:center;align-content:center;gap:14px;color:var(--text-muted)}.spinner{width:26px;height:26px;border-radius:50%;border:3px solid var(--accent-line);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:2.5s}}@media (min-width: 720px){h1{font-size:1.75rem}.nav--top{display:flex}.nav--bottom{display:none}.account__name{display:block}.app-main{padding:24px 16px 48px}.med__actions--manage{flex:0 0 auto;border-top:0;padding-top:0}}
