:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#24312c;background:#f5f7f4;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;line-height:1.5}button,input,select,textarea{font:inherit}button,input,select,textarea,a{outline-offset:3px}:focus-visible{outline:3px solid #346a57}h1,h2,p{margin-top:0}h1{font-size:clamp(1.75rem,4vw,2.5rem);margin-bottom:.25rem}h2{font-size:1.15rem}label{display:block;font-weight:650;margin:.85rem 0 .35rem}.required:after{content:" *";color:#8b2525}input,select,textarea{width:100%;min-height:48px;border:1px solid #aebbb4;border-radius:8px;background:#fff;padding:.65rem .75rem}textarea{resize:vertical}button{min-height:48px;border:0;border-radius:8px;padding:.65rem 1rem;color:#fff;background:#346a57;cursor:pointer;font-weight:700}button:hover{background:#285444}button:disabled{opacity:.55;cursor:not-allowed}button.secondary{color:#294d40;background:#e5eee9}button.secondary:hover{background:#d4e3da}button.danger{background:#a83d3d}button.danger:hover{background:#872e2e}.button-link{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.65rem 1rem;color:#fff;background:#346a57;border-radius:8px;font-weight:700;text-decoration:none}.button-link:hover{background:#285444}.topbar{min-height:64px;display:flex;align-items:center;justify-content:space-between;padding:.75rem clamp(1rem,3vw,2rem);color:#fff;background:#203c33}.brand{color:#fff;font-size:1.2rem;font-weight:800;text-decoration:none}.shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:calc(100dvh - 64px)}nav{padding:1rem;background:#eaf0ec}nav a{display:block;min-height:44px;padding:.7rem .8rem;margin-bottom:.2rem;color:#29463c;text-decoration:none;border-radius:7px}nav a:hover,nav a.active{color:#fff;background:#346a57}.shell main{width:100%;max-width:1280px;padding:clamp(1rem,3vw,2rem)}.login-page{min-height:100vh;display:grid;place-items:center;padding:1rem;background:linear-gradient(140deg,#dfece5,#f8f4ed)}.login-card{width:min(100%,430px)}.login-card form button[type=submit]{margin-top:.8rem}.card{padding:clamp(1rem,2vw,1.5rem);border:1px solid #dce3df;border-radius:12px;background:#fff;box-shadow:0 3px 14px #1636280d}.page-header{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.eyebrow{margin-bottom:.2rem;color:#567065;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.split{display:grid;grid-template-columns:minmax(280px,420px) minmax(0,1fr);gap:1rem;align-items:start}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1rem}.check{display:flex;align-items:center;gap:.55rem}.check{min-height:48px;cursor:pointer}.check input{width:22px;min-height:22px}.actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.8rem}.list-row,.appointment{display:flex;justify-content:space-between;gap:1rem;padding:.9rem 0;border-top:1px solid #e0e6e2}.list-row span,.appointment span{display:block;margin-top:.2rem;color:#5d6f67}.appointment-main{display:grid;gap:.35rem}.appointment-meta{display:flex;flex-wrap:wrap;gap:.35rem .75rem}.badge{display:inline-flex!important;width:fit-content;align-items:center;min-height:28px;padding:.15rem .55rem;border-radius:999px;font-size:.82rem;font-weight:750;color:#294d40!important;background:#e5eee9}.badge--cancelled,.badge--no-show{color:#792828!important;background:#fdeaea}.badge--completed{color:#31554a!important;background:#dfebe5}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1rem}.stats strong{display:block;font-size:2rem;color:#346a57}.stats span{color:#5d6f67}.clean-list{padding-left:1.2rem}.clean-list li{margin:.7rem 0}.filters{display:flex;align-items:end;gap:.75rem;margin-bottom:1rem}.filters label{margin:0}.filters input{width:auto}.alert{padding:.75rem;border-radius:7px;background:#e7f1eb}.error{color:#8b2525}.alert.error{background:#fdeaea}.field-error{display:block;margin-top:.3rem;color:#8b2525}.empty-state{padding:1.5rem 1rem;text-align:center;color:#5d6f67;background:#f8faf8;border-radius:8px}.status{padding:1rem}.settings-form{max-width:850px}.snackbar{position:fixed;z-index:20;top:1rem;right:1rem;display:flex;align-items:center;gap:1rem;width:min(390px,calc(100vw - 2rem));padding:.8rem .85rem .8rem 1rem;color:#fff;background:#203c33;border-radius:10px;box-shadow:0 8px 30px #13251f3d}.snackbar--error{background:#852f2f}.snackbar--info{background:#31566b}.snackbar button{min-width:44px;padding:.25rem;color:#fff;background:transparent;font-size:1.45rem}.dialog-backdrop{position:fixed;z-index:30;inset:0;display:grid;place-items:center;padding:1rem;background:#10221cb3}.dialog-panel{width:min(100%,480px);max-height:calc(100dvh - 2rem);overflow:auto;padding:1.25rem;background:#fff;border-radius:12px;box-shadow:0 18px 55px #0005}.dialog-panel h2{font-size:1.35rem}.dialog-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:.6rem;margin-top:1.25rem}@media(max-width:760px){.shell{display:block}nav{display:flex;gap:.35rem;overflow-x:auto;position:sticky;top:0;z-index:2;padding:.65rem;scrollbar-width:thin}nav a{flex:0 0 auto;margin:0}.split,.stats{grid-template-columns:1fr}.page-header,.list-row,.appointment{align-items:stretch;flex-direction:column}.appointment{padding:1rem;margin-top:.75rem;border:1px solid #dce3df;border-radius:10px;background:#fff}.appointment .actions{display:grid;grid-template-columns:1fr 1fr}.appointment .actions .danger{grid-column:1 / -1}.appointment .actions button{width:100%}}@media(max-width:480px){.topbar{align-items:center}.brand{font-size:1.05rem}.topbar button{padding-inline:.7rem}.shell main{padding:1rem .75rem 2rem}.form-grid{grid-template-columns:1fr}.filters{align-items:stretch;flex-direction:column}.filters input{width:100%}.page-header>button{width:100%}.actions>button{flex:1 1 100%}.dialog-actions{flex-direction:column-reverse}.dialog-actions button{width:100%}.snackbar{top:auto;right:.75rem;bottom:.75rem;width:calc(100vw - 1.5rem)}}
