:root{--color-brand-primary:#1d9e75;--color-brand-primary-dark:#0f6e56;--color-brand-primary-soft:#e1f5ee;--color-pet-purple:#534ab7;--color-pet-purple-light:#afa9ec;--color-pet-purple-soft:#eeedfe;--color-pet-purple-deep:#26215c;--color-pet-mint:#9fe1cb;--color-accent-amber:#ba7517;--color-accent-amber-soft:#faeeda;--color-accent-amber-text:#633806;--color-accent-blue:#185fa5;--color-accent-blue-soft:#e6f1fb;--color-accent-coral-soft:#faece7;--color-accent-coral-deep:#712b13;--color-neutral-text:#1f1f1d;--color-neutral-text-secondary:#5f5e5a;--color-neutral-text-muted:#8a8985;--color-neutral-border:#e3e2de;--color-neutral-surface:#f5f4f0;--color-neutral-white:#fff;--color-chart-bar:#5dcaa5;--font-kid:Nunito;--font-adult:Inter;--type-title-size:18px;--type-title-weight:600;--type-body-large-size:15px;--type-body-large-weight:400;--type-body-size:14px;--type-body-weight:400;--type-body-small-size:13px;--type-body-small-weight:400;--type-label-size:12px;--type-label-weight:500;--type-label-small-size:11px;--type-label-small-weight:500;--type-kpi-size:20px;--type-kpi-weight:500;--radius-card:12px;--radius-segment:10px;--size-segment-height:40px;--size-touch-target:44px;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--layout-mobile-width:350px;--status-en-curso-bg:#e1f5ee;--status-en-curso-fg:#0f6e56;--status-enviado-bg:#faeeda;--status-enviado-fg:#633806;--status-revisado-bg:#f5f4f0;--status-revisado-fg:#5f5e5a;--status-sin-diario-bg:#f5f4f0;--status-sin-diario-fg:#8a8985;--night-dry-bg:#e1f5ee;--night-dry-fg:#0f6e56;--night-wet-bg:#faece7;--night-wet-fg:#712b13;--night-empty-bg:#f5f4f0;--night-empty-fg:#8a8985}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-adult), system-ui, sans-serif;font-size:var(--type-body-size);color:var(--color-neutral-text);background:var(--color-neutral-surface);margin:0}:focus-visible{outline:3px solid var(--color-brand-primary-dark);outline-offset:2px}.page-heading{font-size:var(--type-title-size);font-weight:var(--type-title-weight);margin:0 0 var(--space-lg)}.page-heading:focus{outline:none}.skip-link{left:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-neutral-white);z-index:10;position:absolute;top:-100px}.skip-link:focus{top:var(--space-sm)}.shell-header{align-items:center;gap:var(--space-lg);padding:var(--space-md) var(--space-xl);background:var(--color-neutral-white);border-bottom:1px solid var(--color-neutral-border);flex-wrap:wrap;display:flex}.brand{font-weight:var(--type-title-weight);margin-right:auto}.shell-main{max-width:1100px;padding:var(--space-xl);margin:0 auto}a{color:var(--color-brand-primary-dark)}a[aria-current=page]{font-weight:600}.card{background:var(--color-neutral-white);border:1px solid var(--color-neutral-border);border-radius:var(--radius-card);padding:var(--space-xl)}.login{max-width:420px;margin:var(--space-xl) auto;padding:0 var(--space-lg)}.form{gap:var(--space-lg);flex-direction:column;display:flex}.form-field{gap:var(--space-xs);flex-direction:column;display:flex}.form-field label,legend{font-size:var(--type-label-size);font-weight:var(--type-label-weight);color:var(--color-neutral-text-secondary)}input,select,textarea{min-height:var(--size-touch-target);padding:var(--space-sm) var(--space-md);font:inherit;border:1px solid var(--color-neutral-text-secondary);border-radius:var(--radius-segment);background:var(--color-neutral-white)}input[aria-invalid=true]{border-color:var(--color-accent-coral-deep)}.form-hint{font-size:var(--type-body-small-size);color:var(--color-neutral-text-secondary);margin:0}.form-error,.alert{color:var(--color-accent-coral-deep);background:var(--color-accent-coral-soft);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-segment);margin:0}.notice{margin:0 0 var(--space-lg);color:var(--color-brand-primary-dark);background:var(--color-brand-primary-soft);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-segment)}.button{min-height:var(--size-touch-target);min-width:var(--size-touch-target);padding:0 var(--space-lg);font:inherit;font-weight:var(--type-label-weight);color:var(--color-neutral-text);background:var(--color-neutral-white);border:1px solid var(--color-neutral-text-secondary);border-radius:var(--radius-segment);cursor:pointer;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.button-primary{color:var(--color-neutral-white);background:var(--color-brand-primary-dark);border-color:var(--color-brand-primary-dark)}.button:disabled{opacity:.6;cursor:not-allowed}.state-view{align-items:flex-start;gap:var(--space-lg);flex-direction:column;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.page-header{justify-content:space-between;align-items:baseline;gap:var(--space-lg);flex-wrap:wrap;display:flex}.chip{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-segment);font-size:var(--type-label-size);font-weight:var(--type-label-weight);display:inline-block}.chip-en-curso{color:var(--status-en-curso-fg);background:var(--status-en-curso-bg)}.chip-enviado{color:var(--status-enviado-fg);background:var(--status-enviado-bg)}.chip-revisado{color:var(--status-revisado-fg);background:var(--status-revisado-bg);border:1px solid var(--color-neutral-border)}.chip-sin-diario,.chip-neutral{color:var(--color-neutral-text-secondary);background:var(--status-sin-diario-bg);border:1px solid var(--color-neutral-border)}.patient-table{border-collapse:collapse;background:var(--color-neutral-white);border-radius:var(--radius-card);width:100%}.patient-table th,.patient-table td{padding:var(--space-md) var(--space-lg);text-align:left;border-bottom:1px solid var(--color-neutral-border)}.patient-table thead th{font-size:var(--type-label-size);color:var(--color-neutral-text-secondary)}@media (width<=640px){.patient-table thead{clip:rect(0 0 0 0);position:absolute}.patient-table,.patient-table tbody,.patient-table tr,.patient-table th,.patient-table td{display:block}.patient-table tr{margin-bottom:var(--space-lg);border:1px solid var(--color-neutral-border);border-radius:var(--radius-card)}.patient-table td:before{content:attr(data-label) ": ";color:var(--color-neutral-text-secondary)}}.breadcrumb{gap:var(--space-sm);margin:0 0 var(--space-lg);color:var(--color-neutral-text-secondary);flex-wrap:wrap;padding:0;list-style:none;display:flex}.breadcrumb li+li:before{content:"›";margin-right:var(--space-sm)}.diary-detail{gap:var(--space-lg);flex-direction:column;display:flex}.diary-detail h2{font-size:var(--type-body-large-size);margin-top:0}.chart{width:100%}.table-scroll{max-width:100%;overflow-x:auto}.events-table{border-collapse:collapse;width:100%}.events-table th,.events-table td{padding:var(--space-sm) var(--space-md);text-align:left;border-bottom:1px solid var(--color-neutral-border)}.nights{gap:var(--space-md);flex-wrap:wrap;padding:0;list-style:none;display:flex}.night-dry{color:var(--night-dry-fg);background:var(--night-dry-bg)}.night-wet{color:var(--night-wet-fg);background:var(--night-wet-bg)}.night-empty{color:var(--color-neutral-text-secondary);background:var(--night-empty-bg);border:1px solid var(--color-neutral-border)}.choices{gap:var(--space-sm);border:0;flex-direction:column;padding:0;display:flex}.choice{align-items:center;gap:var(--space-md);min-height:var(--size-touch-target);display:flex}.choice input{width:20px;height:20px;min-height:auto}.form-actions{gap:var(--space-md);flex-wrap:wrap;justify-content:flex-end;display:flex}.invite-code{padding:var(--space-lg);background:var(--color-neutral-surface);border-radius:var(--radius-segment);overflow-wrap:anywhere}.invite-code code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--type-kpi-size);letter-spacing:.08em;-webkit-user-select:all;user-select:all}.confirm{gap:var(--space-md);margin-top:var(--space-lg);flex-wrap:wrap;display:flex}.fictional-banner{padding:var(--space-xs) var(--space-lg);text-align:center;background:var(--color-neutral-surface);border-bottom:1px solid var(--color-neutral-border);font-size:var(--type-label-size);font-weight:var(--type-label-weight)}.fictional-banner p{margin:0}
