:root{--purple:#7B2CFF;--purple2:#4B00B5;--teal:#00D6C9;--ink:#202027;--muted:#6e6e78;--bg:#f4f5f8;--card:#fff;--line:#dedee7;--danger:#b73528;--shadow:0 12px 30px rgba(0,0,0,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif}button,input,select,textarea{font:inherit}.shell{max-width:1180px;margin:auto;padding:16px}.top{background:linear-gradient(135deg,var(--purple),var(--purple2));color:#fff;border-radius:20px;padding:18px 22px;display:flex;justify-content:space-between;align-items:center;gap:15px;box-shadow:var(--shadow)}.brand{font-weight:900;font-size:24px}.brand small{display:block;font-size:13px;font-weight:500;opacity:.8;margin-top:4px}.card{background:var(--card);border:1px solid #ededf2;border-radius:18px;padding:20px;margin-top:16px;box-shadow:var(--shadow)}.hero{text-align:center;padding:28px}.hero h1{margin:0 0 8px;font-size:32px}.muted,.hint{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}.c12{grid-column:span 12}.c8{grid-column:span 8}.c6{grid-column:span 6}.c4{grid-column:span 4}.c3{grid-column:span 3}.c2{grid-column:span 2}label{font-size:13px;font-weight:800;display:block;margin:0 0 6px}input,select,textarea{width:100%;min-height:46px;border:1px solid var(--line);border-radius:12px;padding:11px 12px;background:#fff;outline:none}textarea{min-height:90px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(0,214,201,.18)}.btn{border:0;border-radius:12px;padding:12px 16px;font-weight:900;cursor:pointer}.primary{background:var(--teal);color:#fff}.purple{background:var(--purple);color:#fff}.ghost{background:#ececf3}.danger{background:#ffe6e2;color:#942c22}.small{padding:8px 10px;font-size:12px}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{border:2px solid var(--line);border-radius:999px;padding:9px 12px;font-weight:800;background:#fff;cursor:pointer}.chip input{display:none}.chip:has(input:checked){border-color:var(--teal);background:#E2FFFC;color:#007F78}.section h2{margin:0 0 14px;font-size:20px}.actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.notice{padding:12px;border-radius:12px;background:#E5FFFB;color:#007F78;font-weight:800;margin-top:12px}.warn{background:#fff2ed;color:#952b1f}.hidden{display:none!important}.tabs{display:flex;gap:8px;flex-wrap:wrap}.tab.active{background:var(--purple);color:#fff}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.jobs{display:grid;gap:10px}.job{border:1px solid var(--line);border-radius:14px;padding:14px;display:grid;grid-template-columns:1.1fr 1fr 1.4fr auto;gap:12px;align-items:center}.sub{font-size:12px;color:var(--muted);margin-top:4px}.badge{display:inline-block;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:900;background:#eeeef4}.status-Requested{background:#fff2d6;color:#8d5b00}.status-Confirmed{background:#D7FFF8;color:#007F78}.status-Arrived{background:#F0E6FF;color:#7B2CFF}.status-In\ Progress{background:#e2efff;color:#1d5d9e}.status-Ready{background:#e9f8ec;color:#17683e}.status-Completed{background:#e9e9ec;color:#555}.status-Cancelled,.status-No-show{background:#ffe6e2;color:#942c22}.week{overflow:auto}.weekgrid{display:grid;grid-template-columns:70px repeat(14,minmax(92px,1fr));min-width:1370px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}.head,.time,.slot{border-right:1px solid #eeeef3;border-bottom:1px solid #eeeef3}.head{padding:8px 4px;text-align:center;font-size:11px;font-weight:900;background:#f1f1f6;position:sticky;top:0;z-index:3}.time{padding:4px 7px;font-size:11px;color:var(--muted);background:#fafafd}.slot{min-height:24px;position:relative}.closed{background:#ececf1}.booking{position:absolute;inset:2px;z-index:2;border-radius:7px;background:#DFFFFA;border-left:4px solid var(--teal);padding:4px;font-size:10px;overflow:hidden}.booking.align{background:#F1E8FF;border-left-color:var(--purple)}.login{max-width:430px;margin:80px auto}.split{display:grid;grid-template-columns:1fr 1fr;gap:12px}.kpi{background:#f7f7fb;border-radius:12px;padding:12px}.kpi b{font-size:24px;display:block;margin-top:4px}.footer{text-align:center;color:var(--muted);font-size:12px;padding:22px 0}.suggest{position:relative}.suggestions{position:absolute;left:0;right:0;top:100%;z-index:20;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);max-height:220px;overflow:auto}.suggestions button{width:100%;text-align:left;border:0;background:#fff;padding:10px;border-bottom:1px solid #eeeef3}.suggestions button:hover{background:#ECFFFD}.radio-row{display:flex;gap:12px;flex-wrap:wrap}.radio-row label{font-weight:700}.radio-row input{width:auto;min-height:auto}.booking-choice{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fafafd}.success{max-width:650px;margin:40px auto;text-align:center}.success h1{color:#007F78}@media(max-width:800px){.c8,.c6,.c4,.c3,.c2{grid-column:span 12}.job{grid-template-columns:1fr}.top{align-items:flex-start;flex-direction:column}.hero h1{font-size:27px}}
