:root{--bg: #12131a;--panel: #1b1d27;--panel-2: #22242f;--ink: #e8e9f0;--muted: #9a9cb0;--line: #2e3040;--accent: #8b7ff5;--accent-ink: #14151d;--teal: #37c2a8;--ok: #4cd97b;--warn: #ffb454;--danger: #ff6b6b;--money: #6fe3a5;font-size:15px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;background:var(--panel-2);color:var(--ink);border:1px solid var(--line);border-radius:8px}input::placeholder,textarea::placeholder{color:#6f7188}select option{background:var(--panel-2)}.login-wrap{min-height:100vh;display:grid;place-items:center;background:radial-gradient(60rem 30rem at 70% -10%,#232041 0%,var(--bg) 60%)}.login-box{background:var(--panel);padding:2.2rem 2.4rem;border-radius:16px;box-shadow:0 16px 50px #00000080;width:22rem;border:1px solid var(--line)}.login-box h1{margin:0 0 1.2rem;font-size:1.5rem;letter-spacing:.01em}.login-box label{display:block;font-size:.85rem;color:var(--muted);margin:.8rem 0 .25rem}.login-box input{width:100%;padding:.55rem .7rem}.login-box button{width:100%;margin-top:1.2rem;padding:.6rem;border:0;border-radius:8px;background:var(--accent);color:var(--accent-ink);font-weight:700}.login-err{color:var(--danger);font-size:.85rem;margin-top:.8rem}.topbar{background:var(--panel);border-bottom:1px solid var(--line);color:var(--ink);display:flex;align-items:center;gap:1.2rem;padding:0 1.2rem;height:54px;position:sticky;top:0;z-index:20}.topbar .brand{font-weight:800;letter-spacing:.03em}.topbar nav{display:flex;gap:.3rem}.topbar nav button{background:transparent;border:0;color:var(--muted);padding:.45rem .8rem;border-radius:8px;font-weight:500}.topbar nav button.active{background:var(--panel-2);color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent)}.topbar .spacer{flex:1}.topbar .who{font-size:.85rem;color:var(--muted)}.topbar .logout{background:transparent;border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:.3rem .7rem;font-size:.85rem}.page{padding:1.1rem 1.2rem;max-width:1500px;margin:0 auto}.cal-head{display:flex;align-items:center;gap:.7rem;margin-bottom:.9rem;flex-wrap:wrap}.cal-head h2{margin:0;font-size:1.1rem;min-width:14rem;font-weight:600}.cal-head button,.cal-head select{padding:.4rem .7rem;border:1px solid var(--line);background:var(--panel);border-radius:8px;color:var(--ink)}.view-toggle{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.view-toggle button{border:0!important;border-radius:0!important;background:var(--panel)}.view-toggle button.on{background:var(--accent);color:var(--accent-ink);font-weight:700}.cal-grid{display:grid;grid-template-columns:3.2rem repeat(var(--days),1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}.cal-col-head{background:var(--panel);padding:.45rem .3rem;text-align:center;font-size:.8rem;font-weight:600}.cal-col-head .d{color:var(--muted);font-weight:400}.cal-col-head.stylist{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.4);border-top:3px solid transparent}.cal-hour-label{background:var(--panel);font-size:.7rem;color:var(--muted);text-align:right;padding:2px 4px 0 0}.cal-day-col{position:relative;background:var(--panel)}.cal-day-col:hover{background:#1e2029}.appt{position:absolute;left:3px;right:3px;border-radius:7px;padding:3px 6px;font-size:.72rem;line-height:1.25;color:#fff;overflow:hidden;cursor:pointer;box-shadow:0 2px 6px #00000059;border-left:3px solid rgba(255,255,255,.55)}.appt .t{font-weight:700}.appt.cancelled{opacity:.4;text-decoration:line-through}.appt.st-completed{opacity:.68}.shift-block{position:absolute;left:0;right:0;background:repeating-linear-gradient(45deg,#262835,#262835 6px,#1e2029 6px,#1e2029 12px)}.shift-block .abs-label{position:sticky;top:0;font-size:.68rem;color:var(--muted);padding:2px 5px;display:block}.now-line{position:absolute;left:0;right:0;height:0;border-top:2px solid var(--danger);z-index:5;pointer-events:none}.now-line:before{content:"";position:absolute;left:-1px;top:-4px;width:7px;height:7px;border-radius:50%;background:var(--danger)}.legend{display:flex;gap:1rem;margin-top:.7rem;font-size:.78rem;color:var(--muted);flex-wrap:wrap}.legend .dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:.3rem;vertical-align:-1px}.cli-head{display:flex;gap:.7rem;margin-bottom:.9rem;align-items:center}.cli-head input{flex:0 1 24rem;padding:.5rem .8rem}.cli-head .count{color:var(--muted);font-size:.85rem}table.list{width:100%;border-collapse:collapse;background:var(--panel);border-radius:12px;overflow:hidden;border:1px solid var(--line)}table.list th{text-align:left;font-size:.73rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:.6rem .8rem;border-bottom:1px solid var(--line)}table.list td{padding:.55rem .8rem;border-bottom:1px solid var(--line);font-size:.88rem}table.list tr:hover td{background:var(--panel-2);cursor:pointer}.pager{display:flex;gap:.5rem;margin-top:.8rem;align-items:center}.pager button{padding:.35rem .7rem;border:1px solid var(--line);background:var(--panel);border-radius:8px;color:var(--ink)}.money{color:var(--money);font-weight:600;font-variant-numeric:tabular-nums}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#08090e8c;z-index:40;display:grid;place-items:stretch end}.modal{background:var(--panel);border-left:1px solid var(--line);width:min(27rem,96vw);height:100vh;overflow:auto;padding:1.3rem 1.5rem;box-shadow:-18px 0 50px #00000080;animation:slidein .18s ease-out}@keyframes slidein{0%{transform:translate(30px)}to{transform:none}}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(36rem,96vw);z-index:40;background:var(--panel);border-left:1px solid var(--line);box-shadow:-18px 0 50px #00000080;overflow:auto;padding:1.3rem 1.5rem}.modal h3,.drawer h3{margin:0 0 1rem;font-size:1.05rem}.frow{display:grid;grid-template-columns:7.5rem 1fr;gap:.6rem;align-items:center;margin-bottom:.6rem}.frow label{font-size:.8rem;color:var(--muted)}.frow input,.frow select,.frow textarea{padding:.45rem .6rem;width:100%}.btnrow{display:flex;gap:.6rem;margin-top:1.1rem;flex-wrap:wrap}.btn{padding:.5rem .9rem;border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:700}.btn.danger{color:var(--danger);border-color:#5b3030;background:#2a1d1f}.btn.ghost{border:0;background:transparent;color:var(--muted)}.hint{font-size:.78rem;color:var(--muted)}.conflict{background:#33261a;border:1px solid #5d452a;color:var(--warn);border-radius:8px;padding:.6rem .8rem;font-size:.83rem;margin-top:.8rem}.chip{display:inline-block;background:#2b2d44;color:#c9c3ff;border-radius:20px;padding:.12rem .6rem;font-size:.74rem;margin:0 .25rem .25rem 0;cursor:default}.hist{border-top:1px solid var(--line);margin-top:1rem;padding-top:.8rem}.hist-item{padding:.45rem 0;border-bottom:1px dashed var(--line);font-size:.84rem}.hist-item .when{color:var(--muted);font-size:.76rem}.stat-cards{display:flex;gap:.8rem;margin:.8rem 0;flex-wrap:wrap}.stat-card{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:.6rem .9rem}.stat-card .v{font-weight:700;font-size:1.05rem;color:var(--money)}.stat-card .l{font-size:.72rem;color:var(--muted)}.autocomplete{position:relative}.autocomplete input{width:100%;padding:.45rem .6rem}.autocomplete .options{position:absolute;top:100%;left:0;right:0;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;z-index:60;max-height:14rem;overflow:auto;box-shadow:0 12px 30px #00000080}.autocomplete .options div{padding:.45rem .7rem;font-size:.86rem;cursor:pointer}.autocomplete .options div:hover{background:#33364a}.toast{position:fixed;bottom:1.2rem;left:50%;transform:translate(-50%);z-index:80;background:var(--accent);color:var(--accent-ink);padding:.6rem 1.1rem;border-radius:10px;font-size:.88rem;font-weight:600}.avail-badge{font-size:.78rem;padding:.2rem .55rem;border-radius:14px;white-space:nowrap}.avail-badge.ok{background:#1c3527;color:var(--ok)}.avail-badge.warn{background:#33261a;color:var(--warn)}.avail-badge.bad{background:#3a2226;color:var(--danger)}.sec-h{margin:1.2rem 0 .5rem;font-size:.95rem}.pay-chip{display:inline-block;border-radius:5px;padding:.1rem .5rem;font-size:.72rem;font-weight:600;margin-right:.3rem}.pay-chip.card{background:#1f3350;color:#6db3ff}.pay-chip.cash{background:#1c3527;color:var(--ok)}.pay-chip.voucher{background:#33261a;color:var(--warn)}.pay-chip.transfer{background:#2b2d44;color:#c9c3ff}.pay-chip.credit{background:#16332f;color:var(--teal)}.money.neg{color:var(--danger)}.doc-link{color:var(--accent);text-decoration:none}.doc-link:hover{text-decoration:underline}.item-row{display:flex;gap:.45rem;align-items:center;margin-bottom:.4rem}.item-row .desc{flex:1;font-size:.86rem}.item-row input[type=number]{width:5.2rem;padding:.35rem .5rem}.item-row .x{color:var(--muted)}.pay-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem}.pay-cell{display:flex;flex-direction:column;gap:.2rem;font-size:.74rem;color:var(--muted)}.pay-cell input{padding:.35rem .5rem;width:100%}
