:root{--tasca:#04958d;--tasca-dark:#08766f;--tasca-soft:#e9f4f3;--tasca-yellow:#f8ea0a;--ink:#0e0f0f;--muted:#687583;--bg:#f3f7f6;--line:#dce8e6;--danger:#a62929}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;background:var(--bg);color:#1b2533}a{color:var(--tasca-dark)}
aside{position:fixed;inset:0 auto 0 0;width:235px;background:var(--ink);color:#fff;padding:24px 16px;overflow:auto;border-right:5px solid var(--tasca-yellow)}.brand{font-size:28px;font-weight:900;letter-spacing:2px;margin-bottom:25px;color:var(--tasca-yellow)}.brand small{display:block;font-size:11px;font-weight:700;letter-spacing:1px;color:#fff;opacity:.75}.brand.big{font-size:44px;color:var(--tasca);text-align:center}.with-sidebar{margin-left:235px;min-height:100vh;padding:0 28px 40px}nav a{display:block;color:#e9f4f3;text-decoration:none;padding:11px 12px;border-radius:8px;margin:3px 0;border-left:3px solid transparent}nav a:hover{background:var(--tasca);color:#fff;border-left-color:var(--tasca-yellow)}header{padding:22px 0 14px}header h1{margin:0;font-size:26px;color:var(--ink)}header span{font-size:13px;color:var(--muted)}
.panel,.card,.login-card,.notice{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 4px 18px rgba(4,149,141,.06)}.panel{padding:20px;margin:0 0 20px}.panel h2{margin-top:0;color:var(--ink)}.panel h2:after{content:"";display:block;width:44px;height:4px;background:var(--tasca-yellow);border-radius:99px;margin-top:7px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px}.card{padding:18px;border-top:4px solid var(--tasca)}.card b,.card span{display:block;color:var(--muted)}.card strong{display:block;font-size:25px;margin:8px 0;color:var(--ink)}
.grid-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:end}.inline{display:flex;gap:12px;align-items:end;flex-wrap:wrap}label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;color:#37434e}input,select,button{font:inherit;border:1px solid #c8d8d5;border-radius:9px;padding:10px 11px;background:#fff}input:focus,select:focus{outline:3px solid rgba(4,149,141,.14);border-color:var(--tasca)}button,.btn-link{background:var(--tasca);color:#fff;border-color:var(--tasca);cursor:pointer;font-weight:800}button:hover,.btn-link:hover{background:var(--tasca-dark)}.secondary-btn{background:var(--ink);border-color:var(--ink)}.edit-btn{padding:7px 12px;background:var(--tasca);border-color:var(--tasca);white-space:nowrap}.check-field{display:flex;align-items:center;gap:7px;min-height:42px}.check-field input{width:auto}
table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:11px 9px;text-align:left;border-bottom:1px solid #edf2f1}th{color:#5a6967;font-size:12px;text-transform:uppercase;background:#fbfdfc}.flash{background:var(--tasca-soft);border:1px solid #b7ddd9;padding:12px 14px;border-radius:10px;margin-bottom:18px;border-left:5px solid var(--tasca)}.notice{padding:15px;background:#fffdec;border-color:#e9df7c}.notice.subtle{margin-top:18px;background:var(--tasca-soft);border-color:#cbe5e2}.error-notice{background:#fff2f2;border-color:#e9bcbc;color:#742020}.login-main{min-height:100vh;display:grid;place-items:center}.login-card{width:min(420px,92vw);padding:32px;border-top:6px solid var(--tasca)}.login-card form{display:grid;gap:15px}.table-wrap{overflow:auto}
.public-main{min-height:100vh;padding:28px;background:linear-gradient(180deg,#eff8f7 0,#f7f9f8 260px)}.public-shell{max-width:1180px;margin:auto}.public-shell.narrow{max-width:780px}.public-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.public-top>div:first-child{display:flex;flex-direction:column}.logo{font-size:34px;letter-spacing:3px;color:var(--tasca);font-weight:950;position:relative;width:max-content}.logo:after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:5px;background:var(--tasca-yellow);border-radius:99px}.portal-grid{display:grid;grid-template-columns:1fr 2fr;gap:18px}.stack{display:grid;gap:12px}.section-head{display:flex;justify-content:space-between;gap:20px;align-items:end;flex-wrap:wrap}.section-head h2{margin-bottom:4px}.section-head p{margin:0;color:var(--muted)}.schedule-wrap{overflow:auto}.schedule th{text-align:center;min-width:145px}.schedule th:first-child{min-width:85px}.schedule th small{display:block;font-weight:500;text-transform:none;margin-top:4px}.schedule td{text-align:center}.slot{display:block;width:100%;padding:10px;border-radius:9px;font-size:12px;font-weight:850;border:0;text-decoration:none}.slot.free{background:var(--tasca-soft);color:var(--tasca-dark);border:1px solid #c9e9e5}.slot.free:hover{background:var(--tasca);color:#fff}.slot.busy{background:#f1f3f3;color:#89939f}.disabled-slot{opacity:.72;cursor:not-allowed}.booking{padding:8px;border-radius:8px;background:var(--tasca-soft);color:var(--tasca-dark)}.booking.pending{background:#fff8c8;color:#655e00}.booking small{display:block;margin-top:3px}.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0 25px}.summary div{background:#f6faf9;padding:14px;border-radius:10px;border-bottom:3px solid var(--tasca-yellow)}.summary span,.summary b{display:block}.summary span{font-size:12px;color:var(--muted)}.summary b{margin-top:5px}.success{padding:14px;border-radius:10px;background:var(--tasca-soft);color:var(--tasca-dark);margin-top:15px;border-left:5px solid var(--tasca)}.empty{padding:25px;text-align:center;color:var(--muted)}.btn-link{display:inline-block;padding:10px 12px;border-radius:9px;text-decoration:none}.actions{display:flex;gap:10px;flex-wrap:wrap}.hours-grid{display:grid;gap:8px;margin:12px 0 22px}.hour-row{display:grid;grid-template-columns:160px 130px 30px 130px;align-items:center;gap:8px}.check{flex-direction:row;align-items:center}.check input{width:auto}.panel h3{margin-top:26px}.admin-schedule td{min-width:140px}.duration-options{display:grid;gap:12px}.duration-card{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:16px;border:1px solid var(--line);border-left:6px solid var(--tasca);padding:15px;border-radius:12px;background:#fff}.duration-card strong,.duration-card span{display:block}.duration-card strong{font-size:18px;color:var(--ink)}.duration-card span{color:var(--muted);margin-top:3px}.duration-card>b{font-size:18px;color:var(--tasca-dark)}.checkout-loading{padding:28px;text-align:center;color:var(--muted);background:#fafcfc;border:1px dashed #c7d8d5;border-radius:12px;margin:10px 0}.report-cards .card b{color:var(--tasca-dark)}
@media(max-width:900px){aside{position:static;width:100%;border-right:0;border-bottom:5px solid var(--tasca-yellow)}.with-sidebar{margin:0;padding:15px}.cards{grid-template-columns:1fr 1fr}.grid-form{grid-template-columns:1fr 1fr}}
@media(max-width:800px){.portal-grid{grid-template-columns:1fr}.summary{grid-template-columns:1fr 1fr}.public-main{padding:14px}.hour-row{grid-template-columns:1fr 1fr}.hour-row span{display:none}.duration-card{grid-template-columns:1fr auto}.duration-card button{grid-column:1/-1}}
@media(max-width:600px){.cards,.grid-form{grid-template-columns:1fr}th,td{white-space:nowrap}.public-top{align-items:flex-start}.logo{font-size:30px}.summary{grid-template-columns:1fr 1fr}.panel{padding:16px}.schedule th{min-width:125px}}
@media print{aside,header,.no-print,.flash{display:none!important}.with-sidebar{margin:0;padding:0}.panel{box-shadow:none;border-color:#ddd;break-inside:avoid}body{background:#fff}}
