@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=Space+Grotesk:wght@500;700&display=swap";:root{--ink-900:#1f2b22;--ink-700:#3f5143;--paper:#f4f8f3;--panel:#fff;--line:#d6e2d4;--brand:#1c7c54;--brand-strong:#106245;--danger:#b33232;--success:#1e744f;--info:#235f87;--muted-bg:#edf4eb;--shadow:0 14px 36px #16301f17;color:var(--ink-900);background:radial-gradient(circle at top left, #e2f0e7 0%, var(--paper) 43%), linear-gradient(180deg, #f8fbf6 0%, #f1f6ef 100%);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Manrope,Trebuchet MS,Gill Sans,sans-serif;font-weight:500;line-height:1.45}*{box-sizing:border-box}body{margin:0}#root{min-height:100svh}.app-shell{max-width:1050px;margin:0 auto;padding:2.5rem 1rem 3rem}.page-header{margin-bottom:1.5rem;animation:.4s ease-out fadeSlide}.header-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.account-info{color:var(--ink-700);white-space:nowrap;align-items:center;gap:.6rem;font-size:.85rem;display:flex}.link-button{color:var(--brand-strong);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;font-weight:700;text-decoration:underline}.login-panel{text-align:center;max-width:420px;margin:3rem auto 0}.login-panel button{color:#fff;background:linear-gradient(92deg, var(--brand) 0%, #1a7a50 100%);cursor:pointer;border:none;border-radius:10px;margin-top:1rem;padding:.72rem 1.4rem;font-size:.94rem;font-weight:700}.eyebrow{color:var(--brand-strong);letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:.82rem;font-weight:700}h1{margin:.35rem 0 .45rem;font-family:Space Grotesk,Trebuchet MS,sans-serif;font-size:clamp(1.7rem,3.1vw,2.6rem);line-height:1.15}.subhead{color:var(--ink-700);max-width:60ch;margin:.5rem 0 0}.panel{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;margin-bottom:1.2rem;padding:1.25rem;animation:.45s ease-out fadeSlide}.panel-title-row{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}h2{margin:0;font-family:Space Grotesk,Trebuchet MS,sans-serif;font-size:1.1rem}.form-grid{grid-template-columns:repeat(2,minmax(220px,1fr));gap:.9rem 1rem;display:grid}.filter-grid{grid-template-columns:repeat(3,minmax(180px,1fr));gap:.8rem;margin-bottom:1rem;display:grid}.filter-grid label{flex-direction:column;gap:.35rem;font-size:.9rem;display:flex}.filter-grid input,.filter-grid select{border:1px solid var(--line);width:100%;font:inherit;background:#fff;border-radius:10px;padding:.62rem .7rem}.filter-grid button{color:#fff;background:linear-gradient(92deg, var(--brand) 0%, #1a7a50 100%);cursor:pointer;border:none;border-radius:10px;align-self:end;padding:.72rem 1rem;font-size:.9rem;font-weight:700}.filter-grid button:disabled{cursor:not-allowed;opacity:.68}.form-grid label{flex-direction:column;gap:.38rem;font-size:.92rem;display:flex}.form-grid input,.form-grid select{border:1px solid var(--line);width:100%;font:inherit;background:#fff;border-radius:10px;padding:.62rem .7rem}.day-checkbox input{width:auto}.form-grid input:focus,.form-grid select:focus{border-color:#72b28f;outline:2px solid #83bf9f}.form-grid button{color:#fff;background:linear-gradient(92deg, var(--brand) 0%, #1a7a50 100%);cursor:pointer;border:none;border-radius:10px;grid-column:1/-1;padding:.72rem 1rem;font-size:.94rem;font-weight:700;transition:transform .16s,filter .16s}.form-grid button:hover:enabled{filter:brightness(1.02);transform:translateY(-1px)}.form-grid button:disabled{cursor:not-allowed;opacity:.68}.field-error{color:var(--danger);font-size:.82rem}.day-picker{border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:.6rem;padding:.6rem .7rem .75rem;display:flex}.day-picker legend{padding:0 .3rem;font-size:.85rem;font-weight:700}.day-checkbox{flex-direction:row;align-items:center;gap:.3rem;width:auto;font-size:.85rem;display:flex}.schedule-info{color:var(--ink-700);background:#eefbf3;border:1px solid #9edabb;border-radius:10px;grid-column:1/-1;padding:.75rem .9rem;font-size:.85rem}.schedule-info p{margin:0 0 .5rem}.schedule-info p:last-child{margin-bottom:0}.schedule-info-title,.schedule-info-subtitle{color:var(--ink-900,#16281f);font-weight:700}.schedule-info ul{margin:0 0 .5rem;padding-left:1.2rem}.schedule-info li{margin-bottom:.2rem}.alert{border:1px solid #0000;border-radius:10px;margin-bottom:.9rem;padding:.72rem .82rem;font-size:.92rem}.alert-success{color:var(--success);background:#e8f8ef;border-color:#9edabb}.alert-error{color:var(--danger);background:#fff2f2;border-color:#f2b9b9}.alert-info{color:var(--info);background:#edf6fc;border-color:#b8dbf1}.loading-inline,.loading-block{color:var(--ink-700);align-items:center;gap:.45rem;font-size:.9rem;display:inline-flex}.loading-block{padding:1.2rem 0}.spinner{border:2px solid #9fd6ba;border-top-color:var(--brand-strong);border-radius:999px;width:.9rem;height:.9rem;animation:.8s linear infinite spin}.empty-state{background:var(--muted-bg);color:var(--ink-700);border-radius:10px;padding:1rem}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:1200px}th,td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:.75rem;font-size:.9rem}th{color:#2a4537;background:#f4faf2;font-weight:700}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeSlide{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=720px){.app-shell{padding-top:1.25rem}.form-grid,.filter-grid{grid-template-columns:1fr}.panel-title-row{flex-direction:column;align-items:flex-start}}
