:root{
  color-scheme:light;
  --ink:#2e302b;
  --muted:#73756d;
  --paper:#fffdf8;
  --cream:#f4ede2;
  --line:#ddd3c4;
  --moss:#61745a;
  --moss-dark:#465540;
  --peach:#e6c8a5;
  --danger:#9b5047;
  --shadow:0 12px 34px rgba(70,55,37,.10);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:linear-gradient(180deg,#efe5d7 0,#f8f4ed 42%,#f4ede2 100%);color:var(--ink);min-height:100vh}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.loading-screen,.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px}
.bean-mark{font-size:4rem;filter:drop-shadow(0 8px 16px rgba(0,0,0,.08))}
.login-card{width:min(100%,430px);background:rgba(255,253,248,.96);border:1px solid var(--line);border-radius:28px;padding:30px;box-shadow:var(--shadow)}
.login-card h1{margin:.25rem 0;font-size:2rem}.login-card p{color:var(--muted)}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.74rem;font-weight:800;color:var(--moss)!important}
.stack{display:grid;gap:14px}.stack label,.form-grid label{display:grid;gap:6px;font-weight:700;font-size:.92rem}
input,select,textarea{width:100%;border:1px solid var(--line);border-radius:13px;background:white;color:var(--ink);padding:12px 13px;min-height:44px}
textarea{min-height:90px;resize:vertical}
button{border:0;border-radius:13px;background:var(--moss);color:white;padding:12px 15px;font-weight:800;min-height:44px}
button:hover{background:var(--moss-dark)}button.secondary{background:#ece5db;color:var(--ink)}button.quiet{background:transparent;color:var(--moss);padding:8px 0}button.danger{background:var(--danger)}
.error,.status.error{color:var(--danger)}.status.success{color:var(--moss-dark)}.muted{color:var(--muted)}
.portal-shell{width:min(100%,900px);margin:0 auto;padding:env(safe-area-inset-top) 16px calc(32px + env(safe-area-inset-bottom))}
.portal-header{position:sticky;top:0;z-index:5;background:rgba(244,237,226,.94);backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid rgba(221,211,196,.8)}
.portal-brand{display:flex;align-items:center;gap:10px}.portal-brand .icon{font-size:2rem}.portal-brand strong{display:block;font-size:1.15rem}.portal-brand small{display:block;color:var(--muted)}
.header-actions{display:flex;gap:8px}.header-actions button{min-height:36px;padding:8px 10px;font-size:.82rem}
.hero{padding:24px 0 14px}.hero h1{font-size:clamp(2.2rem,9vw,4.4rem);margin:0;letter-spacing:-.04em}.hero p{margin:.35rem 0;color:var(--muted)}
.card{background:rgba(255,253,248,.97);border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:0 6px 24px rgba(70,55,37,.06);margin:14px 0}.card h2,.card h3{margin-top:0}
.action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.action-grid button{background:#ede5da;color:var(--ink);padding:12px 8px}.action-grid button:hover{background:#e1d6c7}
.bean-photo{width:100%;max-height:430px;object-fit:cover;border-radius:18px;border:1px solid var(--line);display:block}.photo-empty{padding:36px;text-align:center;border:1px dashed var(--line);border-radius:18px;color:var(--muted)}
.care-list,.history-list,.status-list{display:grid;gap:9px}.care-row,.history-row,.status-row{border:1px solid var(--line);border-radius:15px;padding:12px;background:#fff}.care-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.care-row small,.history-row small,.status-row small{display:block;color:var(--muted);margin-top:3px}.care-row button{flex:0 0 auto}
.last-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.last-grid article{background:#f5efe7;border-radius:15px;padding:12px}.last-grid span{display:block;font-size:.85rem;color:var(--muted);margin-top:4px}
.med-list{display:grid;gap:9px}.med-row{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:8px;align-items:center;border-bottom:1px solid var(--line);padding:9px 0;font-size:.9rem}.med-row:last-child{border-bottom:0}.quick-meds{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.quick-meds button{background:#eee5d8;color:var(--ink)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}.section-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.section-head h2{margin:0}.section-head button{background:transparent;color:var(--ink);padding:4px;font-size:1.5rem;min-height:auto}
.modal-backdrop{position:fixed;inset:0;background:rgba(35,31,26,.45);display:grid;place-items:end center;z-index:20;padding-top:30px}.modal-card{width:min(100%,640px);max-height:92vh;overflow:auto;background:var(--paper);border-radius:24px 24px 0 0;padding:20px 18px calc(22px + env(safe-area-inset-bottom));box-shadow:0 -20px 60px rgba(0,0,0,.18)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.form-grid .full,.form-grid fieldset,.form-grid button,.form-grid .status{grid-column:1/-1}fieldset{border:1px solid var(--line);border-radius:15px;padding:12px}legend{font-weight:800}.checks{display:grid;grid-template-columns:1fr 1fr;gap:7px}.checks label{display:flex;align-items:center;gap:8px;font-weight:600}.checks input{width:auto;min-height:auto}
.portal-footer{text-align:center;color:var(--muted);font-size:.8rem;padding:24px 0}.portal-footer strong{color:var(--moss)}
@media(max-width:680px){.action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.last-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col,.form-grid{grid-template-columns:1fr}.form-grid>*{grid-column:1!important}.med-row{grid-template-columns:1fr}.med-row span{font-size:.82rem}.header-actions .email{display:none}.card{padding:15px}.portal-shell{padding-left:12px;padding-right:12px}}
