:root{--bg:#f4f6fb;--card:#fff;--ink:#1c2333;--mut:#6b7488;--line:#e3e7f0;--pri:#a8326e;--good:#2b8a3e;--bad:#c92a2a}*{box-sizing:border-box}body{margin:0;font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink)}.app{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.side{background:#18214d;color:#fff;padding:18px 12px;position:sticky;top:0;height:100vh}.brand{padding:4px 10px 18px}.brand b{display:block;font-size:17px}.brand small{opacity:.7}nav{display:flex;flex-direction:column;gap:4px}nav button{display:flex;gap:10px;align-items:center;background:none;border:0;color:#cfd6f5;padding:10px 12px;border-radius:8px;font:inherit;cursor:pointer;text-align:left}nav button i{width:18px;font-style:normal;text-align:center}nav button:hover{background:#26316b}nav button.on{background:var(--pri);color:#fff}main{padding:22px 26px;max-width:1100px;width:100%}h1{margin:0 0 16px;font-size:22px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:16px}.card-h{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}.card-h h3,h3,h4{margin:0 0 8px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.stat span{display:block;color:var(--mut);font-size:12px}.stat b{font-size:20px}.stat.good b{color:var(--good)}.stat.bad b{color:var(--bad)}.bar{height:12px;background:#e8ecf7;border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;background:var(--pri)}table{width:100%;border-collapse:collapse;margin:6px 0 12px}th,td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}th{font-size:12px;color:var(--mut);text-transform:uppercase;letter-spacing:.03em}tr.tot td{font-weight:700;background:#f7f9fe}input,select{font:inherit;padding:8px 10px;border:1px solid #cbd2e1;border-radius:8px;background:#fff;max-width:100%}input.num{width:110px;text-align:right}td input:not(.num){width:100%}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.field span{font-size:12px;color:var(--mut)}.field input,.field select{width:100%}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 14px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px}.toolbar input{flex:1;min-width:200px}.btn{background:var(--pri);color:#fff;border:0;border-radius:8px;padding:9px 16px;font:inherit;font-weight:600;cursor:pointer}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.ghost{background:#fff;color:var(--pri);border:1px solid var(--pri)}.btn.danger,.danger{color:var(--bad);border-color:var(--bad)}.link{background:none;border:0;color:var(--pri);cursor:pointer;font:inherit;padding:2px 6px;text-decoration:none}.link.danger{color:var(--bad)}.empty{padding:22px;text-align:center;color:var(--mut)}.muted{color:var(--mut);font-size:12px}.pick{list-style:none;margin:-4px 0 10px;padding:0;border:1px solid var(--line);border-radius:8px}.pick button{width:100%;text-align:left;background:none;border:0;padding:9px 12px;font:inherit;cursor:pointer}.pick button:hover{background:#f1f4fc}.who{background:#eef2ff;border-radius:8px;padding:9px 12px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#141a3280;display:flex;align-items:center;justify-content:center;padding:16px;z-index:10;overflow:auto}.dialog,.receipt{background:#fff;border-radius:14px;padding:20px;width:min(560px,100%)}.actions{display:flex;gap:10px;margin-top:10px}.receipt-body{border:2px dashed #aab3cf;padding:16px;border-radius:10px}.receipt-body h2{margin:0;text-align:center}.receipt-body p{text-align:center;margin:2px 0 8px}.receipt-body h4{text-align:center;letter-spacing:.2em;margin:8px 0}.row2{display:flex;justify-content:space-between;gap:10px;margin:3px 0;flex-wrap:wrap}.sign{text-align:right!important;margin-top:36px!important}@media (max-width:760px){.app{grid-template-columns:1fr}.side{position:static;height:auto}nav{flex-direction:row;flex-wrap:wrap}main{padding:14px}.me{position:static;margin-top:10px;flex-direction:row;gap:14px}}@media print{body{background:#fff}.no-print{display:none!important}.app{display:block}main{padding:0}.card,.stat{border:0}.modal{position:static;background:none;padding:0}.receipt{box-shadow:none;padding:0}}.boot{display:grid;place-items:center;height:100vh;color:var(--mut)}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:16px}.login{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px;width:min(380px,100%)}.login h2{margin:0 0 2px}.login .btn{width:100%;margin-top:6px}.err{color:var(--bad);margin:4px 0}.me{position:absolute;bottom:16px;left:12px;right:12px;font-size:12px;color:#cfd6f5;display:flex;flex-direction:column;gap:2px}.me .link{color:#fff;text-align:left;padding:0}tr.off td{opacity:.55}input:disabled{background:#f1f3f8}.tabs{display:flex;gap:4px;background:#eef1f8;border-radius:10px;padding:4px;margin:10px 0 6px}.tabs button{flex:1;border:0;background:none;padding:8px 6px;border-radius:8px;font:inherit;cursor:pointer;color:var(--mut)}.tabs button.on{background:#fff;color:var(--pri);font-weight:700;box-shadow:0 1px 3px #0000001f}.seg{display:inline-flex;gap:4px}.seg button{width:38px;height:32px;border:1px solid #cbd2e1;background:#fff;border-radius:8px;font:inherit;font-weight:700;cursor:pointer}.seg .sP.on{background:#2b8a3e;color:#fff;border-color:#2b8a3e}.seg .sA.on{background:#c92a2a;color:#fff;border-color:#c92a2a}.seg .sL.on{background:#e8890c;color:#fff;border-color:#e8890c}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:6px;max-width:560px}.calh{font-size:11px;color:var(--mut);text-align:center}.cald{border:1px solid var(--line);border-radius:8px;padding:6px 4px;min-height:46px;text-align:center;background:#fafbfe}.cald small{display:block;font-weight:700;font-size:11px}.cald.P{background:#d3f9d8;border-color:#8ce99a}.cald.A{background:#ffe3e3;border-color:#ffa8a8}.cald.L{background:#ffe8cc;border-color:#ffc078}.legend .dot{display:inline-block;width:11px;height:11px;border-radius:3px;margin:0 4px 0 12px;vertical-align:middle}.dot.P{background:#8ce99a}.dot.A{background:#ffa8a8}.dot.L{background:#ffc078}tr.low td{background:#fff5f5;color:#a61e1e}.sec{margin:18px 0 8px}code{background:#eef1f8;padding:1px 6px;border-radius:5px}.dialog.wide{width:min(760px,100%)}@media print{.dialog.wide{box-shadow:none;width:100%}}.note{border-bottom:1px solid var(--line);padding:10px 0}.note:last-child{border:0}.note-h{display:flex;justify-content:space-between;gap:8px}textarea{width:100%;font:inherit;padding:8px;border:1px solid var(--line);border-radius:8px}@media print{.side,.nav,.toolbar,.btn,.link{display:none!important}}.good{color:var(--good);font-weight:600}.bad{color:var(--bad)}.badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:99px;background:#e9ecef}.badge.open{background:#ffe3e3;color:#a61e1e}.badge.in_progress{background:#fff3bf;color:#8a6100}.badge.resolved{background:#d3f9d8;color:#1b6e2a}.badge.rejected{background:#e9ecef;color:#555}.reply{background:#eef6ff;border-radius:8px;padding:8px 10px;margin:6px 0}.langbar{position:fixed;top:10px;right:14px;z-index:5}@media (max-width:760px){.me{position:static!important;margin-top:10px;flex-direction:row;gap:14px;flex-wrap:wrap}}.badge.booked{background:#fff3bf;color:#8a6100}.badge.confirmed{background:#d0ebff;color:#1864ab}.badge.completed{background:#d3f9d8;color:#1b6e2a}.badge.cancelled{background:#ffe3e3;color:#a61e1e}.badge.no_show{background:#e9ecef;color:#555}.side{background:#3a1030}nav button{color:#f3d3e6}nav button:hover{background:#561a47}tr.click{cursor:pointer}tr.click:hover td{background:#fbeef5}.dim{opacity:.55}.r{text-align:right}.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0}.chip{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line);border-radius:99px;padding:5px 11px;cursor:pointer;background:#fff;font-size:13px}.chip input{display:none}.chip.on{background:#fbeef5;border-color:var(--pri);color:var(--pri);font-weight:600}.x{border:0;background:none;cursor:pointer;color:inherit;font-size:16px;padding:0}.chk{display:flex;gap:8px;align-items:center;margin:10px 0}.chk input{width:auto}.btn.sm{padding:4px 10px;font-size:12px}.btn.big{width:100%;padding:13px;font-size:16px}.btn.danger,.link.danger{color:var(--bad)}.actions.wrap{flex-wrap:wrap}.actions{display:flex;gap:8px;align-items:center;margin-top:12px}.staff-row{padding:10px 0;border-bottom:1px solid var(--line)}.staff-row:last-child{border:0}.note-h{display:flex;justify-content:space-between;align-items:center;gap:8px}.toolbar{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;margin-bottom:12px}.toolbar .field{margin:0}.sum{background:#fbeef5;border-radius:8px;padding:8px 12px;margin:10px 0}.slots{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.slot{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 12px;cursor:pointer;font:inherit}.slot.on{background:var(--pri);border-color:var(--pri);color:#fff}.ok{color:var(--good)}.cal-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px;max-height:72vh}.cal2{display:grid;min-width:max-content}.cal-h{position:sticky;top:0;z-index:3;background:#fbeef5;padding:8px;border-bottom:1px solid var(--line);border-left:1px solid var(--line);display:flex;flex-direction:column}.cal-h small{color:var(--mut)}.cal-axis{position:relative;background:#fff}.cal-axis span{position:absolute;right:6px;font-size:11px;color:var(--mut);transform:translateY(-50%)}.cal-col{position:relative;border-left:1px solid var(--line);background:#fff;cursor:copy}.cal-col.off{background:repeating-linear-gradient(45deg,#f1f3f5,#f1f3f5 8px,#e9ecef 8px,#e9ecef 16px);cursor:default}.hl{position:absolute;left:0;right:0;border-top:1px solid #f0f0f0;pointer-events:none}.offtxt{position:absolute;top:8px;left:0;right:0;text-align:center;color:var(--mut);font-weight:700}.blk{position:absolute;left:3px;right:3px;border-radius:6px;padding:2px 6px;font-size:12px;overflow:hidden;cursor:pointer;border:1px solid rgba(0,0,0,.12);box-shadow:0 1px 2px #0000001a}.blk small{display:block;color:#555;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pub{max-width:640px;margin:0 auto;padding:14px 14px 40px;background:var(--bg);min-height:100vh}.pub-head{display:flex;justify-content:space-between;gap:10px;background:linear-gradient(135deg,#a8326e,#6b1f4a);color:#fff;border-radius:14px;padding:18px;margin-bottom:14px}.pub-head h1{color:#fff;margin:0 0 4px}.pub-head p{margin:2px 0}.pub-head a,.pub-head .link,.pub-head .muted{color:#ffe3f1}.pub-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:12px}.pub-card.ok{border-color:var(--good)}.cat{margin:12px 0 6px;color:var(--mut);text-transform:uppercase;font-size:12px;letter-spacing:.5px}.svc-grid{display:grid;gap:8px}.svc{display:flex;gap:10px;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer}.svc input{display:none}.svc span{display:flex;flex-direction:column}.svc small{color:var(--mut)}.svc em{font-style:normal;font-weight:700}.svc.on{border-color:var(--pri);background:#fbeef5}.ticket{border:2px dashed var(--pri);border-radius:12px;padding:14px;text-align:center;background:#fff8fc}.code{font-size:30px;font-weight:800;letter-spacing:4px;color:var(--pri)}.pub-foot{text-align:center;margin-top:20px}.pub-foot a{color:var(--mut)}.langbar{text-align:right;padding:10px 16px}@media (max-width:760px){.toolbar{align-items:stretch}.cal-wrap{max-height:none}.blk{font-size:11px}}.cal-axis span:first-child{transform:none}
