:root{--red:#b51616;--red-dark:#7f0f0f;--green:#d8efc8;--green-border:#a8cf8f;--busy:#f2b2a8;--ink:#222;--paper:#fff;--gold:#c88b20;--line:#ddd}
*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#f6f3ee}a{color:var(--red-dark)}.hero{max-width:1500px;margin:20px auto 12px;background:var(--paper);border:1px solid #e1d9cc;border-radius:16px;padding:24px 30px;display:flex;justify-content:space-between;gap:30px;align-items:center;box-shadow:0 4px 18px #0000000c}.kicker{color:var(--gold);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.85rem}.hero h1{margin:5px 0;font-family:Georgia,serif;color:var(--red-dark);font-size:clamp(1.7rem,3vw,3rem)}.hero p{margin:0;font-size:1.05rem}.legend{display:flex;gap:18px;flex-wrap:wrap;font-weight:700}.dot{display:inline-block;width:16px;height:16px;border-radius:4px;vertical-align:-3px;margin-right:6px}.dot.available{background:#66ad3b}.dot.busy{background:#c92525}.container{max-width:1500px;margin:auto;padding:0 16px 30px}.notice,.success,.error{padding:13px 16px;border-radius:10px;margin:12px 0}.notice{background:#fff7e5;border:1px solid #e8d29b}.success{background:#e4f6df;border:1px solid #b6d9a8}.error{background:#ffe5e2;border:1px solid #e0aaa3}.calendar-wrap{overflow-x:auto;background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:0 4px 18px #0000000a}.calendar{display:grid;grid-template-columns:repeat(8,minmax(160px,1fr));min-width:1280px}.day{border-right:1px solid var(--line)}.day:last-child{border-right:0}.day>header{background:linear-gradient(135deg,var(--red-dark),var(--red));color:#fff;padding:13px;text-align:center;min-height:66px}.day>header span,.day>header strong{display:block}.day>header span{text-transform:capitalize;font-size:.92rem}.day>header strong{font-size:1.05rem;margin-top:3px}.slot{display:grid;grid-template-columns:82px 1fr;min-height:52px;border-bottom:1px solid #fff;align-items:stretch}.slot.available{background:var(--green)}.slot.busy{background:var(--busy)}.time{background:#fff;padding:9px 5px;font-size:.78rem;display:flex;align-items:center;justify-content:center;text-align:center}.slot-text{padding:9px 6px;font-weight:700;display:flex;align-items:center;justify-content:center;text-align:center;color:#000;overflow-wrap:anywhere}.content-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-top:18px}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:0 3px 12px #00000008}.card h2{margin:0 0 12px;color:var(--red-dark);font-family:Georgia,serif}.card p{line-height:1.55;margin:.5rem 0}.strong{font-weight:700}footer{max-width:1500px;margin:0 auto 30px;padding:12px 16px;color:#666;display:flex;justify-content:space-between}.adminbar{background:#231f20;color:#fff;padding:14px 22px;display:flex;justify-content:space-between;align-items:center}.adminbar nav{display:flex;gap:18px}.adminbar a{color:#fff}.admin-container{padding-top:18px}.admin-days{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.admin-day h2{font-size:1.1rem}.admin-slot{border-top:1px solid var(--line);padding:12px 0;display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:10px}.admin-time{display:flex;gap:8px}.admin-slot label{font-size:.8rem;font-weight:700}.admin-slot input,.admin-slot select{width:100%;padding:8px;border:1px solid #bbb;border-radius:7px;margin-top:4px;font:inherit}.save,button{background:var(--red);color:#fff;border:0;border-radius:9px;padding:12px 18px;font-weight:700;cursor:pointer}.save{margin-top:18px;font-size:1rem}.login{max-width:460px;margin:12vh auto;padding:16px}.login label{display:block;font-weight:700}.login input{display:block;width:100%;padding:11px;margin:7px 0 14px;border:1px solid #bbb;border-radius:8px}.small{font-size:.9rem}
@media(max-width:900px){.hero{display:block}.legend{margin-top:15px}.content-grid,.admin-days{grid-template-columns:1fr}.admin-slot{grid-template-columns:1fr}.admin-time{display:grid;grid-template-columns:1fr 1fr}}
@media print{body{background:#fff}.hero,.calendar-wrap,.card,.notice{box-shadow:none}.hero{margin:0 0 8px}.calendar{min-width:0}.slot{min-height:45px}.slot-text{font-size:10pt}.time{font-size:8pt}.content-grid{break-inside:avoid}.adminbar,.notice{display:none}.container{max-width:none;padding:0}.calendar-wrap{overflow:visible}.calendar{grid-template-columns:repeat(8,1fr)}footer{margin-bottom:0}}
