:root{--bg: #f3f5f6;--ink: #1c2430;--muted: #5c6773;--line: #e3e7eb;--card: #ffffff;--sidebar: #ffffff;--wine: #8e1d32;--wine-soft: #f8e8ec;--green: #1a7a45;--green-soft: #e7f6ee;--coral: #b42318;--gold: #8e1d32;--shadow: 0 16px 40px rgba(28, 36, 48, .06);color:var(--ink);background:var(--bg);font-family:Manrope,Segoe UI,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--green)}h1,h2,.stat strong,.total strong,.brand strong{font-family:Libre Baskerville,Georgia,serif;font-weight:400;letter-spacing:-.02em}h1{font-size:40px;line-height:1.1;margin:0}h2{font-size:22px;margin:0}button{cursor:pointer}p{line-height:1.5}.boot{min-height:100vh;display:grid;place-items:center;background:#fff}.boot img{width:148px;height:148px}.shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh}aside{background:var(--sidebar);color:var(--ink);padding:18px 14px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh;border-right:1px solid var(--line)}.brand{display:flex;gap:10px;align-items:center;padding:4px 8px 8px}.brand img{width:52px;height:52px;border-radius:50%;flex:none}.brand strong{display:block;font-size:18px;color:var(--wine);line-height:1.1}.brand small{color:var(--green);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:10px}aside nav{display:flex;flex-direction:column;gap:4px}.nav-item{display:contents}.nav-label{margin:16px 12px 2px;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}aside nav a{color:#3c4652;text-decoration:none;padding:10px 12px;border-radius:12px;font-weight:650}aside nav a:hover{background:#f6f7f8}aside nav a.active{background:var(--wine-soft);color:var(--wine)}.me{margin-top:auto;padding:14px;border-radius:16px;background:#f6f7f8;display:grid;gap:4px}.me span{color:var(--muted)}.me button{background:none;border:0;padding:0;text-align:left;width:fit-content;color:var(--wine);font-weight:700}main{padding:28px 32px 48px;min-width:0}.page-head{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:18px}.kicker{margin:0 0 6px;text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-weight:700;color:var(--wine)}.lede,.muted{color:var(--muted)}.page-actions,.date-nav,.row-actions,.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.btn{border:0;background:var(--wine);color:#fff;border-radius:999px;padding:11px 16px;font-weight:700}.btn.solid{background:var(--wine)}.btn.solid:hover{background:#741828}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn.danger{color:var(--coral);border-color:#f0c9c4}.btn.tiny{padding:6px 10px;font-size:13px}.btn.wide{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}aside .btn,aside .me button{background:none}.field{display:flex;flex-direction:column;gap:6px}.field span{font-size:13px;font-weight:700;color:#3c4652}.table th{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.field input,.field select,.field textarea,.restock input,.stack.tight input{background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px 12px;width:100%;max-width:100%}.restock input{width:72px;flex:none}form.panel{display:grid;gap:12px;align-content:start}.panel,.visit,.stat,.product-tile,.cell,.free-cell{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.panel{padding:16px}.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:16px;align-items:start}.stack{display:grid;gap:10px}.stack.tight{gap:8px;margin-top:10px}.alert,.success,.confirm{border-radius:14px;padding:12px 14px;margin-bottom:12px}.alert{background:#fde8e2;color:#7a2c1c}.success{background:var(--green-soft);color:#164836}.confirm{display:flex;gap:8px;align-items:center;background:var(--wine-soft)}.empty{padding:28px;text-align:center;color:var(--muted)}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:12px 8px;border-bottom:1px solid var(--line);vertical-align:top}.table td strong,.table td small,.visit small,.product-tile small,.cart-line small{display:block}.table td small,.visit small,.product-tile small{color:var(--muted);font-weight:500}.table tr.low td{background:#fff6f2}.day-panel{margin-bottom:16px}.day-chart{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:3px;height:132px;margin-top:12px}.day-chart button{display:grid;grid-template-rows:1fr 16px;align-items:end;justify-items:center;min-width:0;height:100%;padding:0;border:0;background:transparent}.day-chart .plot{display:flex;align-items:end;width:100%;height:100%}.day-chart .plot i{display:block;width:100%;max-width:14px;margin:0 auto;min-height:3px;border-radius:4px 4px 1px 1px;background:#e6ebf0}.day-chart button.has .plot i{background:var(--wine)}.day-chart button.on .plot i{box-shadow:0 0 0 2px #741828}.day-chart button.on.has .plot i{background:#741828}.day-chart button small{color:var(--muted);font-size:10px;line-height:16px}.day-focus{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:baseline;margin:12px 0 0;padding-top:12px;border-top:1px solid var(--line)}.day-focus b{margin-left:auto;font-variant-numeric:tabular-nums}.day-focus span{color:var(--muted)}.table-wrap{overflow-x:auto}.badge{display:inline-flex;margin-left:8px;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:800}.badge.scheduled{background:#e7eefc;color:#23407a}.badge.completed{background:var(--green-soft);color:var(--green)}.badge.cancelled{background:#eeeae4;color:#665e56}.badge.no_show{background:#f6efd8;color:var(--gold)}.badge.low{background:#fde8e2;color:var(--coral);margin-left:8px}.visit{display:grid;grid-template-columns:72px 1fr auto;gap:12px;align-items:center;padding:14px;box-shadow:none}.week-nav{display:grid;gap:10px;margin:0 0 18px}.week-bar{display:flex;gap:8px;align-items:stretch}.week-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;flex:1;min-width:0}.week-days button{border:1px solid var(--line);background:#fff;border-radius:14px;padding:8px 2px 6px;display:grid;justify-items:center;gap:1px}.week-days button small{color:var(--muted);font-size:12px;font-weight:700;text-transform:capitalize}.week-days button strong{font-family:Manrope,sans-serif;font-size:18px;letter-spacing:0}.week-days button em{font-style:normal;font-size:10px;font-weight:700;color:var(--green);min-height:12px}.week-days button.on{background:var(--wine);color:#fff;border-color:var(--wine)}.week-days button.on small,.week-days button.on em{color:#f6d5dc}.week-jump{max-width:220px}.week-bar>.btn{padding-inline:14px}.doctor-switch{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.doctor-switch button{border:1px solid var(--line);background:#fff;border-radius:16px;padding:10px 14px;text-align:left}.doctor-switch button strong,.doctor-switch button small{display:block}.doctor-switch button small{color:var(--muted);font-weight:650}.doctor-switch button.on{background:var(--wine);color:#fff;border-color:var(--wine)}.doctor-switch button.on small{color:#f6d5dc}.day-block{display:grid;gap:10px;margin-bottom:22px}.journal-bar{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.journal-bar button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px;font-weight:700}.journal-bar button b{margin-left:6px;font-variant-numeric:tabular-nums}.journal-bar button.on{background:var(--wine);color:#fff;border-color:var(--wine)}.journal{display:grid;gap:8px}.visit-card{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:4px 16px;align-items:center;padding:14px 16px;background:var(--card);border:1px solid var(--line);border-left-width:4px;border-radius:16px}.visit-card.completed{border-left-color:var(--green)}.visit-card.scheduled{border-left-color:#3d6cb5}.visit-card.cancelled{border-left-color:#c4bbb2}.visit-card.no_show{border-left-color:#c4a15a}.visit-card time{font-weight:800;font-size:18px;font-variant-numeric:tabular-nums}.visit-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.visit-card .badge{margin-left:0}.visit-card p{margin:3px 0 0;color:var(--muted)}.visit-card .complaint{color:var(--ink)}.visit-side{display:grid;justify-items:end;gap:4px;text-align:right}.visit-side b{font-variant-numeric:tabular-nums;white-space:nowrap}.visit-card .row-actions{grid-column:2;margin-top:8px}.time-chips{display:flex;flex-wrap:wrap;gap:8px}.time-chips a,.time-chips span{display:inline-flex;min-width:72px;justify-content:center;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px;text-decoration:none;color:var(--ink);font-weight:700}.time-chips a:hover{border-color:var(--wine);color:var(--wine)}.visit.free{border-style:dashed}.visit time,.board tbody th{font-variant-numeric:tabular-nums;color:var(--muted);font-weight:800}.board-wrap{overflow:auto}.board{width:100%;border-collapse:separate;border-spacing:8px}.board thead th{position:sticky;top:0;background:var(--bg);text-align:left;padding:8px}.board thead small,.section-label{display:block;color:var(--muted);font-weight:600}.cell,.free-cell{display:grid;gap:4px;min-height:92px;padding:10px;text-decoration:none;color:inherit;align-content:start}.free-cell{border-style:dashed;color:var(--muted);box-shadow:none}.cell.completed{background:#f3faf6}.cell.no_show{background:#fbf6ea}.cell em{color:var(--muted);font-style:normal;font-size:13px}.section-label{margin:0 0 8px}.login{min-height:100vh;display:flex;justify-content:center;align-items:flex-start;padding:28px 16px 40px;background:radial-gradient(circle at top,#f8e8ec 0,transparent 42%),var(--bg)}.login-card{width:min(460px,100%);background:#fff;border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow);padding:24px 24px 20px;display:grid;gap:16px}.login-logo{width:168px;height:168px;margin:0 auto;display:block}.login-copy{text-align:center}.login-copy p:last-child{margin:8px 0 0;color:var(--muted)}.login-card form{display:grid;gap:12px}.product-grid,.slots,.stats,.stats.secondary{display:grid;gap:8px}.pick{text-align:left;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px}.pick strong,.pick small{display:block}.pick small{color:var(--muted)}.segmented{display:flex;padding:4px;background:#eef1f3;border-radius:999px;margin-bottom:12px}.segmented button{flex:1;border:0;background:transparent;border-radius:999px;padding:8px 10px;font-weight:700}.segmented button.on,.slots button.on,.pick.on{background:var(--wine);color:#fff}.pick{display:flex;gap:8px;align-items:center;margin-bottom:8px}.pick input{accent-color:var(--green)}.pick-list{max-height:320px;overflow:auto}.slots{grid-template-columns:repeat(4,1fr)}.slots button{border:1px solid var(--line);background:#fff;border-radius:12px;padding:8px;text-align:left}.slots button small{display:block;color:var(--muted)}.slots button:disabled{opacity:.45}.fee{margin-top:0;font-weight:700}.shell:has(.pos-screen){height:100vh;overflow:hidden}.shell:has(.pos-screen) main{height:100vh;overflow:hidden;display:flex;flex-direction:column;padding-bottom:16px}.pos-screen{flex:1;min-height:0;display:flex;flex-direction:column}.pos-screen .page-head{margin-bottom:12px}.pos{flex:1;min-height:0;display:grid;grid-template-columns:1.2fr .8fr;gap:16px;align-items:stretch}.pos-catalog{min-height:0;display:flex;flex-direction:column;overflow:hidden}.pos-search{width:100%;flex:none;border:1px solid var(--line);background:#fff;border-radius:14px;padding:14px 16px;font-size:18px}.pos-list{list-style:none;padding:0 4px 8px 0;margin:12px 0 0;display:grid;gap:8px;align-content:start;overflow:auto;min-height:0}.pos-list li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px 14px}.pos-list li.off{opacity:.45}.pos-list strong,.pos-list small{display:block}.pos-list small{color:var(--muted);font-weight:600;margin-top:2px}.pos-list .warn{color:var(--coral)}.pos-list .price{font-weight:800;white-space:nowrap}.cart{position:relative;top:auto;min-height:0;height:100%;display:flex;flex-direction:column;gap:12px;overflow:hidden}.cart-lines{flex:1;min-height:0;overflow:auto}.pay-box{flex:none;display:grid;gap:10px;margin-top:auto;padding-top:12px;border-top:1px solid var(--line);background:#fff}.cart-line{display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:center;padding-bottom:10px;border-bottom:1px solid var(--line)}.cart-line b{justify-self:end}.cart-line .stepper{grid-column:1 / -1;justify-self:start}.stepper{display:flex;align-items:center;gap:8px}.stepper button{width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:#fff;font-weight:800}.stepper b{min-width:18px;text-align:center}.pay-box .total strong{font-size:36px}.total{display:flex;justify-content:space-between;align-items:baseline}.total strong{font-size:32px}.filters{margin-bottom:14px}.filters .field{min-width:160px}.stat.mini{padding:10px 14px;min-width:140px}.stat.mini span,.stats article span,.stats.secondary article span{color:var(--muted);font-size:13px;font-weight:700}.stat.mini strong{display:block;font-size:22px}.receipt header,.receipt li,.plain li,.doctor-card{display:flex;justify-content:space-between;gap:12px;align-items:center}.receipt header span,.receipt li span:nth-child(2){color:var(--muted)}.receipt ul,.plain,.moves{list-style:none;padding:0;margin:10px 0 0}.receipt li,.plain li{padding:8px 0;border-top:1px solid var(--line)}.doctor-card{align-items:start}.doctor-side{display:grid;justify-items:end;gap:8px}.doctor-side strong{font-family:Libre Baskerville,Georgia,serif;font-size:26px}.check{display:flex;gap:8px;align-items:center}.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px;align-items:end}.role-pick{grid-column:1 / -1;margin-bottom:0}.staff-list{margin-top:16px}.search-line{max-width:360px;margin-bottom:12px}.restock{display:flex;gap:6px;align-items:center}.restock input{width:72px}.moves{color:var(--muted);font-size:13px}.stats{grid-template-columns:repeat(4,1fr);margin-bottom:12px}.stats article,.stats.secondary article{padding:16px}.stats article strong{display:block;font-size:34px;line-height:1.1;margin:6px 0}.stats article small{color:var(--muted)}.stats.secondary{grid-template-columns:repeat(6,1fr);margin-bottom:16px}.stats.secondary b{display:block;margin-top:6px;font-size:20px}.bars{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;align-items:end;height:220px}.bar{display:flex;flex-direction:column;justify-content:end;height:100%;min-width:0}.stack-bar{display:flex;flex-direction:column;justify-content:end;min-height:0;border-radius:8px 8px 2px 2px;overflow:hidden}.stack-bar .consult{background:var(--wine)}.stack-bar .pharmacy{background:var(--green)}.bar small{text-align:center;color:var(--muted);font-size:10px;margin-top:4px;white-space:nowrap;height:14px;overflow:visible}.legend{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:13px}.legend i{width:12px;height:12px;border-radius:3px;display:inline-block}.legend i.consult{background:var(--wine)}.legend i.pharmacy{background:var(--green)}.period-bar{display:grid;gap:14px;margin-bottom:16px}.period-row{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.period-dates{display:grid;grid-template-columns:1fr 1fr;gap:12px;flex:1 1 320px;max-width:520px}.period-row .btn{margin-bottom:1px}.money-hero{padding:28px;margin-bottom:16px;border-radius:24px;background:linear-gradient(180deg,#f8e8ec,#fff 48%)}.money-hero .amount,.money-card .amount{font-family:Libre Baskerville,Georgia,serif;line-height:1.1;margin:4px 0 8px}.money-hero .amount{font-size:clamp(32px,6vw,48px);color:var(--wine);overflow-wrap:anywhere}.money-card .amount{font-size:32px}.money-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.money-card h2{margin-bottom:4px}.money-lines{display:grid;gap:0;margin:14px 0}.money-lines div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line)}.day-list{display:grid}.day-list.narrow-only{display:none}.day-row{display:grid;grid-template-columns:1fr auto;gap:8px 16px;align-items:start;padding:12px 0;border-top:1px solid var(--line)}.day-row p{margin:2px 0 0;color:var(--muted);font-size:14px}.day-row b{font-variant-numeric:tabular-nums;white-space:nowrap}.day-row.quiet{color:#8b949e}.day-row.quiet b{font-weight:600}@media(max-width:980px){.shell,.split,.pos,.form-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr 1fr}.form-grid .btn{grid-column:1 / -1}.stats,.stats.secondary{grid-template-columns:1fr 1fr}.shell>aside{position:sticky;top:0;z-index:30;height:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand me" "nav nav";gap:8px;padding:10px 12px 12px;background:#fff;border-right:0;border-bottom:1px solid var(--line)}.shell>aside .brand{grid-area:brand;padding:0;min-width:0}.shell>aside .brand img{width:42px;height:42px}.shell>aside .brand strong,.shell>aside .brand small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell>aside nav{grid-area:nav;flex-direction:row;flex-wrap:wrap;overflow:visible;gap:6px}.shell>aside nav a{white-space:nowrap;background:#f6f7f8;padding:8px 12px}.nav-item{display:contents}.nav-label{flex:1 0 100%;margin:8px 4px 0}.shell>aside nav a.active{background:var(--wine-soft)}.shell>aside .me{grid-area:me;margin:0;padding:0;background:transparent;display:flex;align-items:center;gap:10px;min-width:0}.shell>aside .me strong{max-width:34vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell>aside .me button{flex:none}.me span{display:none}h1{font-size:32px}main{padding:18px 16px 40px}.board{min-width:0}.slots{grid-template-columns:repeat(3,1fr)}.visit{grid-template-columns:64px 1fr}.page-head{flex-direction:column;align-items:stretch}.page-actions{width:100%}.money-pair{grid-template-columns:1fr;display:grid}.wide-only{display:none}.day-list.narrow-only{display:grid}.day-row>div,.day-row>strong{min-width:0}.filters{display:grid;grid-template-columns:1fr 1fr;align-items:end}.filters .field{min-width:0}.search-line{max-width:none}.doctor-card,.receipt header,.receipt li,.plain li,.confirm{flex-wrap:wrap}.receipt header>div{min-width:0}.doctor-side{justify-items:start}.week-days button strong{font-size:16px}.shell:has(.pos-screen),.shell:has(.pos-screen) main{height:auto;overflow:visible}.pos{display:flex;flex-direction:column}.pos-catalog,.pos-list{overflow:visible}.pos-list li{grid-template-columns:minmax(0,1fr) auto}.pos-list li>.btn,.pos-list li>.stepper{grid-column:1 / -1;justify-self:start}.cart{position:fixed;top:auto;left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));z-index:20;height:auto;max-height:min(42vh,340px);margin:0;overflow:auto;box-shadow:var(--shadow)}.cart-lines{max-height:16vh;flex:none}.cart:not(:has(.cart-line)) h2,.cart:not(:has(.cart-line)) .cart-lines{display:none}.pay-box{position:static;border:0;border-radius:0;box-shadow:none;padding:12px 0 0}.pos-screen{padding-bottom:min(46vh,360px)}.pos-screen:has(.cart:not(:has(.cart-line))){padding-bottom:200px}.table td{min-width:0;overflow-wrap:anywhere}.table-wrap{overflow:visible}.table thead{display:none}.table,.table tbody,.table tr,.table td{display:block;width:100%}.table tr{border:1px solid var(--line);border-radius:16px;padding:8px 12px 12px;margin:0 0 10px;background:#fff}.table tr.low{background:#fff6f2}.table tr.low td{background:transparent}.table td{display:flex;justify-content:space-between;align-items:center;gap:12px;border:0;padding:7px 0;text-align:right}.table td:first-child{display:block;text-align:left}.table td[data-label]:before{content:attr(data-label);color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;text-align:left;flex:none}.table td.cell-controls,.table td.row-actions{display:block;text-align:left}.table td.cell-controls:before{display:block;margin-bottom:6px}.table td[data-label=Остаток]{flex-wrap:wrap;justify-content:flex-end}.table td[data-label=Остаток]:before{margin-right:auto}.table td[data-label=Остаток] small{flex-basis:100%;text-align:right}.restock{flex-wrap:wrap}.table .btn.tiny{min-height:40px}}@media(max-width:640px){h1{font-size:28px}h2{font-size:20px}main{padding:14px 12px 28px}.login{padding:16px 12px 28px}.login-card{padding:16px;border-radius:22px}.login-logo{width:112px;height:112px}.money-hero{padding:18px}.money-card .amount{font-size:26px}.form-grid,.slots,.stats.secondary{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.slots{grid-template-columns:repeat(2,1fr)}.doctor-switch button{flex:1 1 100%}.visit-card{grid-template-columns:58px minmax(0,1fr);padding:12px}.visit-side{grid-column:2;display:flex;justify-content:space-between;align-items:center}.week-bar{gap:4px}.week-days{gap:3px}.week-days button{padding:6px 0 4px}.week-days button strong{font-size:15px}.week-days button small{font-size:10px}.week-days button em{font-size:0;line-height:0;min-height:8px}.week-days button em:not(:empty):after{content:"";display:block;width:6px;height:6px;margin:2px auto 0;border-radius:50%;background:var(--green)}.week-days button.on em:not(:empty):after{background:#fff}.week-bar>.btn{padding-inline:8px}.week-jump{max-width:none}.shell>aside .brand small{display:none}.field input,.field select,.field textarea,.pos-search{font-size:16px}.plain li{display:grid;grid-template-columns:1fr auto;align-items:center}.plain li>span{grid-column:1 / -1}.pos-list .price{font-size:14px}.pay-box .total strong{font-size:28px}}@media(max-width:420px){.period-dates,.filters,.stats,.stats.secondary{grid-template-columns:1fr}.period-dates{max-width:none}.period-row{display:grid}.period-row .btn{width:100%}}
