:root{--background:#fff;--foreground:#000;--accent:#c60000;--muted:#0006;--border:#0000001f;--success:#0f8a3b;--failure:#c60000;--surface:#fff;--surface-elevated:#fff;--focus-ring:#c600004d;--accent-soft:#c600000f;--accent-selected:#c600001a;--shadow-soft:0 24px 80px #00000014}*{box-sizing:border-box}html{background:var(--background);color:var(--foreground);font-family:var(--font-dm-sans,"DM Sans"), Arial, sans-serif}body{background:var(--background);min-height:100dvh;color:var(--foreground);font-family:var(--font-dm-sans,"DM Sans"), Arial, sans-serif;text-rendering:optimizelegibility;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled,input:disabled{cursor:not-allowed}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.root-loading,.calendar-page{place-items:center;min-height:100dvh;padding:1rem;display:grid}.calendar-shell{border:1px solid var(--border);background:var(--surface);width:min(100%,64rem);box-shadow:var(--shadow-soft);border-radius:.75rem;padding:1.25rem}.calendar-header{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:1rem;margin-bottom:1.5rem;display:grid}.calendar-header-side{align-items:center;gap:.75rem;min-width:0;display:flex}.calendar-header-side-end{justify-content:flex-end}.calendar-header h2{color:var(--foreground);letter-spacing:0;margin:0;font-size:1.125rem;font-weight:700;line-height:1.2}.calendar-nav-button{border:1px solid var(--border);background:var(--surface);width:2.5rem;height:2.5rem;color:var(--foreground);border-radius:999px;place-items:center;transition:background-color .14s,transform .14s;display:inline-grid}.calendar-nav-button:hover{background:var(--accent-soft)}.calendar-nav-button:active{transform:scale(.96)}.calendar-months{gap:1.75rem;display:grid}.calendar-months[data-mode=dual_month]{grid-template-columns:repeat(2,minmax(0,1fr))}.month-panel{min-width:0}.weekday-row,.month-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.weekday-row{color:var(--foreground);text-align:center;margin-bottom:.5rem;font-size:.875rem;font-weight:600}.month-grid{gap:.375rem}.calendar-cell{aspect-ratio:1;min-width:0}.calendar-date{width:100%;height:100%;color:var(--foreground);text-align:center;background:0 0;border:0;border-radius:999px;place-items:center;font-weight:600;line-height:1;transition:background-color .14s,color .14s,transform .14s;display:grid}.calendar-date:hover{background:var(--accent-soft)}.calendar-date:active{transform:scale(.96)}.calendar-date.is-muted{color:var(--muted)}.calendar-date.is-today{box-shadow:inset 0 0 0 1px var(--accent)}.calendar-date.is-selected{background:var(--accent-selected);box-shadow:inset 0 0 0 2px var(--accent)}.calendar-date.is-red,.calendar-date.is-green{color:var(--surface)}.calendar-date.is-red{background:var(--failure)}.calendar-date.is-green{background:var(--success)}.calendar-date-number{line-height:1}.status-chooser{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;margin-top:1.5rem;padding-top:1rem;display:flex}.status-chooser p{margin:0}.status-actions{align-items:center;gap:.75rem;display:flex}.status-button{border:1px solid var(--border);width:3rem;height:3rem;color:var(--surface);border-radius:999px;padding:0;font-weight:700;transition:opacity .14s,transform .14s}.status-button:hover{opacity:.9}.status-button:active{transform:scale(.94)}.status-button:disabled{opacity:.45}.status-red{background:var(--failure)}.status-green{background:var(--success)}.status-message{color:var(--accent);font-weight:700}.calendar-message{color:var(--muted);margin:0 0 1rem;font-weight:700}.auth-page{background:var(--background);place-items:center;min-height:100dvh;padding:1rem;display:grid}.auth-container{border:1px solid var(--border);background:var(--surface);border-radius:1.5rem;grid-template-columns:minmax(0,1fr);width:min(100%,68rem);min-height:min(44rem,100dvh - 2rem);display:grid;overflow:hidden}.auth-branding{min-height:20rem;padding:1.25rem;display:grid}.auth-logo{color:var(--foreground);align-self:start;align-items:center;gap:.625rem;font-size:1.25rem;font-weight:800;text-decoration:none;display:inline-flex}.auth-logo-icon{color:var(--accent);display:inline-grid}.auth-copy{align-self:center}.auth-copy h1{max-width:11ch;color:var(--foreground);letter-spacing:0;margin:0;font-size:2.5rem;font-weight:800;line-height:.95}.auth-copy p{color:var(--foreground);margin:1rem 0 0;font-size:1rem}.auth-footer{color:var(--muted);align-self:end;margin:0;font-size:.875rem}.auth-card{background:var(--surface-elevated);align-content:center;gap:1rem;padding:1.25rem;display:grid}.auth-form{gap:1rem;display:grid}.auth-field{color:var(--foreground);gap:.5rem;font-weight:700;display:grid}.auth-field input{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--foreground);border-radius:.75rem;padding:.875rem 1rem}.auth-field input::placeholder{color:var(--muted)}.auth-primary-button{background:var(--accent);width:100%;color:var(--surface);border:0;border-radius:.75rem;padding:.875rem 1rem;font-weight:800;transition:opacity .14s,transform .14s}.auth-primary-button:hover{opacity:.92}.auth-primary-button:active{transform:scale(.98)}.auth-primary-button:disabled{opacity:.5}.auth-error{color:var(--accent);margin:0;font-weight:700}.auth-card-footer{color:var(--foreground);justify-content:space-between;align-items:center;gap:.75rem;font-size:.9375rem;display:flex}.auth-link-button{color:var(--accent);background:0 0;border:0;padding:0;font-weight:800}@media (min-width:48rem){.calendar-shell{padding:2rem}.calendar-months{gap:3rem}.calendar-header h2{font-size:1.25rem}.auth-container{grid-template-columns:minmax(0,1fr) minmax(20rem,24rem);padding:1rem}.auth-branding{padding:2.5rem}.auth-copy h1{font-size:4.5rem}.auth-copy p{font-size:1.25rem}.auth-card{width:100%;box-shadow:var(--shadow-soft);border-radius:1.25rem;justify-self:end;padding:2rem}}@media (max-width:48rem){.auth-page{align-items:stretch;padding:0}.auth-container{border-width:0;border-radius:0;min-height:100dvh}.auth-card{box-shadow:var(--shadow-soft);border-radius:1.5rem 1.5rem 0 0;align-content:start}.auth-card-footer{text-align:center;justify-content:center}.calendar-shell{width:100%;box-shadow:none;border-radius:.75rem;padding:1rem}.calendar-header{grid-template-columns:auto 1fr auto;gap:.75rem;display:grid}.calendar-header-side,.calendar-header-side-end{display:contents}.calendar-header h2{text-align:center}.calendar-header .calendar-header-side-end h2{display:none}.month-grid{gap:.25rem}.calendar-months[data-mode=dual_month]{grid-template-columns:1fr}.calendar-months[data-mode=dual_month] .month-panel:not(:first-child){display:none}.status-chooser{flex-direction:column;align-items:stretch}.status-actions{grid-template-columns:auto auto;display:grid}}@media (prefers-reduced-motion:reduce){.calendar-nav-button,.calendar-date,.auth-primary-button,.status-button{transition:none}.calendar-nav-button:active,.calendar-date:active,.auth-primary-button:active,.status-button:active{transform:none}}
