:root{--bg:#F8F4F0;--main:#B76E79;--main2:#D8A7B1;--text:#1F1F1F;--card:#fff;--border:#E6DED8;--green:#24a148;--red:#d9534f;--blue:#4A90E2;--orange:#F5A623;--muted:#756c66}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}.app{min-height:100vh;padding-bottom:82px}.top{position:sticky;top:0;z-index:10;background:rgba(248,244,240,.96);backdrop-filter:blur(10px);display:flex;gap:12px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border)}.logo{width:48px;height:48px;border-radius:16px;background:var(--main);color:white;display:grid;place-items:center;font-size:28px;font-weight:800}.top h1{font-size:22px;margin:0}.top p{margin:2px 0 0;color:var(--muted)}.wrap{max-width:1100px;margin:0 auto;padding:16px}.notice{background:#fff7e6;border:1px solid #ffe0a6;border-radius:16px;padding:12px 14px;margin:0 0 12px}.tabs{display:flex;gap:8px;overflow:auto;padding:6px 0 14px}.tabs button,.bottom button,button{border:0;border-radius:14px;background:var(--main);color:white;padding:12px 14px;font-weight:700;cursor:pointer}.tabs button{white-space:nowrap;background:white;color:var(--text);border:1px solid var(--border)}.tabs button.active,.bottom button.active{background:var(--main);color:white}.ghost{background:white!important;color:var(--main)!important;border:1px solid var(--border)!important}.danger{background:var(--red)!important}.small{padding:8px 10px;font-size:13px}.bottom{position:fixed;left:0;right:0;bottom:0;z-index:20;background:white;border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(5,1fr);gap:6px;padding:8px}.bottom button{font-size:12px;padding:10px 6px;background:#f4eeea;color:#333}.card{background:var(--card);border:1px solid var(--border);border-radius:22px;padding:16px;margin-bottom:14px;box-shadow:0 8px 26px rgba(80,60,50,.06)}h2{margin:0 0 14px;font-size:22px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.split{display:grid;grid-template-columns:1fr 1fr;gap:14px}.metric{font-size:34px;font-weight:900}.muted{color:var(--muted);font-size:14px}.form{display:grid;gap:10px}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:14px;padding:13px 12px;font:inherit;background:white}textarea{min-height:86px}.twoCols{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.threeCols{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.list{display:grid;gap:10px}.item{border:1px solid var(--border);border-radius:16px;padding:12px;background:#fff}.row{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}.badge{border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800}.badge.warn{background:#fff1cc;color:#7a4a00}.badge.blue{background:#e6f1ff;color:#1b5c9e}.badge.ok{background:#e7f7ec;color:#16723a}.badge.danger{background:#ffe9e9;color:#a62020}.slotPanel{background:#fff;border:2px solid var(--main2);border-radius:20px;padding:14px;margin:12px 0}.slotLegend{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.legend{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.dot{width:13px;height:13px;border-radius:50%;display:inline-block}.dot.free{background:var(--green)}.dot.busy{background:var(--red)}.dot.nofit{background:#9b948f}.dot.sel{background:var(--main)}.slotGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px;margin-top:10px}.slot{min-height:68px;border-radius:18px;padding:10px 8px;border:2px solid transparent;color:white;font-weight:900;text-align:center;box-shadow:0 7px 16px rgba(0,0,0,.08)}.slot.free{background:linear-gradient(180deg,#2cc25f,#198d3d)}.slot.busy{background:linear-gradient(180deg,#e55d5d,#b63333);opacity:.75}.slot.nofit{background:linear-gradient(180deg,#b9b1ab,#8f8680);opacity:.65;color:white}.slot.selected{background:linear-gradient(180deg,#c78691,#9b4e59);border-color:#5d202a;transform:scale(1.03)}.slot small{font-weight:600;opacity:.95}.chosen{background:#eef9f1;border:1px solid #c8edcf;border-radius:14px;padding:10px;margin:8px 0;color:#146c2e;font-weight:800}.serviceTable{width:100%;border-collapse:separate;border-spacing:0 8px}.serviceTable td{background:#fff;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:10px}.serviceTable td:first-child{border-left:1px solid var(--border);border-radius:14px 0 0 14px}.serviceTable td:last-child{border-right:1px solid var(--border);border-radius:0 14px 14px 0}@media(max-width:760px){.grid,.split,.twoCols,.threeCols{grid-template-columns:1fr}.wrap{padding:12px}.slotGrid{grid-template-columns:repeat(3,1fr)}.top h1{font-size:19px}.card{border-radius:18px;padding:13px}}@media(max-width:390px){.slotGrid{grid-template-columns:repeat(2,1fr)}}
.roleScreen{min-height:100vh;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at top,#fff,#F8F4F0)}.roleBox{max-width:720px;width:100%;text-align:center}.roleGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.roleCard{background:#fff;border:1px solid var(--border);border-radius:24px;padding:22px;text-align:left;box-shadow:0 12px 30px rgba(80,60,50,.08)}.roleCard button{width:100%;margin-top:12px}.pill{display:inline-block;border-radius:999px;background:#f4eeea;padding:7px 10px;color:var(--muted);font-size:13px;font-weight:800}.adminHint{background:#f7edf0;border:1px solid #ead0d6;border-radius:16px;padding:10px;margin-bottom:12px}.stepTitle{display:flex;align-items:center;gap:8px;margin:12px 0 8px}.stepNum{width:28px;height:28px;border-radius:50%;background:var(--main);color:#fff;display:grid;place-items:center;font-weight:900}.simpleTabs{display:flex;gap:8px;overflow:auto;margin-bottom:12px}.simpleTabs button{white-space:nowrap;background:white;color:var(--text);border:1px solid var(--border)}.simpleTabs button.active{background:var(--main);color:#fff}.clientSummary{background:#fff;border:1px solid var(--border);border-radius:18px;padding:12px;margin-bottom:12px}.compactList .item{padding:10px}.topActions{margin-left:auto;display:flex;gap:8px;align-items:center}.mini{font-size:12px;padding:7px 9px}@media(max-width:700px){.roleGrid{grid-template-columns:1fr}.topActions{margin-left:0}.top{align-items:flex-start}.slotGrid{grid-template-columns:repeat(2,1fr)}}
.hidden{display:none!important}
.newClientBox{border:1px dashed var(--border);border-radius:16px;padding:12px;background:#fff7f8;display:grid;gap:10px}
.newClientBox:before{content:'Datos del nuevo cliente';font-weight:800;color:var(--main)}
.narrow{max-width:520px;margin:0 auto}.alert{border:2px solid #f0c0ca}.small{font-size:12px}.chatClient{width:100%;margin:5px 0;text-align:left;background:#fff;border:1px solid var(--border);color:var(--text)}.chatClient.active{background:var(--main);color:#fff}.chatBox{min-height:160px;max-height:360px;overflow:auto;background:#fbf7f4;border:1px solid var(--border);border-radius:16px;padding:10px}.bubble{max-width:85%;background:#fff;border:1px solid var(--border);border-radius:14px;padding:10px;margin:8px 0}.bubble.me{margin-left:auto;background:#f3d7de}.bubble p{margin:4px 0}.bubble small{color:#777}.appt{border:1px solid var(--border);border-radius:16px;background:#fff;margin:10px 0;padding:12px;display:flex;gap:12px;justify-content:space-between;align-items:center}.row.wrap{flex-wrap:wrap}.client,.service{display:flex;justify-content:space-between;gap:10px;align-items:center;border-bottom:1px solid var(--border);padding:10px 0}.clientSummary{background:#fff;border:1px solid var(--border);border-radius:18px;padding:14px;margin-bottom:14px}.hidden{display:none!important}.newClientBox{padding:10px;border:1px dashed var(--main);border-radius:14px;background:#fff7f9}.topActions{margin-left:auto}.mini{padding:8px 10px;font-size:13px}.metric{font-size:42px;font-weight:800;color:var(--main)}
.calendarBar{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:end;margin-bottom:10px}.stickyForm{position:sticky;top:84px}.service .row{justify-content:flex-end}.service p{margin:4px 0;color:var(--muted)}@media(max-width:760px){.calendarBar{grid-template-columns:1fr}.stickyForm{position:static}}
