/* Значения из resources/react-app/src/styles.css действующей Сахаптеки. */
@font-face{font-family:Montserrat;src:url('assets/regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Montserrat;src:url('assets/medium.woff2') format('woff2');font-weight:500 600;font-display:swap}
@font-face{font-family:Montserrat;src:url('assets/bold.woff2') format('woff2');font-weight:700 900;font-display:swap}
:root{color-scheme:light;--surface:#fff;--bg:#f7f8fa;--ink:#111827;--text:#2d3440;--muted:#6b7280;--line:rgba(17,24,39,.08);--orange:#ff9933;--green:#a4ba16;--green-soft:#f1f7cf;--blue:#1eaadb;--red:#b91c1c;font-family:Montserrat,Arial,sans-serif;color:var(--text);background:#edf0f3;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:0;color:inherit;background:none}button:disabled{cursor:default;opacity:.45}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:3px}button svg{flex:none}button{touch-action:manipulation}svg.icon{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}h1,h2,h3,p{margin:0}h2{font-size:24px;letter-spacing:-.6px;line-height:1.2;color:var(--ink)}h3{font-size:15px;line-height:1.4}p{font-size:13px;line-height:1.6}.muted{color:var(--muted)}.small{font-size:11px;line-height:1.5}.stage{max-width:1040px;margin:0 auto;padding:35px 28px;display:grid;grid-template-columns:300px 410px;gap:75px;align-items:start;justify-content:center}.brand{width:220px;max-height:58px;object-fit:contain;object-position:left}.scenarios{padding:12px 0 30px}.scenarios h1{font-size:22px;margin:24px 0 10px;color:var(--ink)}.intro{color:var(--muted);margin-bottom:24px;font-size:12px}.scenario{display:flex;align-items:center;gap:12px;width:100%;padding:11px 12px;text-align:left;border-radius:12px;margin:3px 0}.scenario:hover{background:#e2e6eb}.scenario.active{background:#fff;box-shadow:0 2px 8px #10182708}.scenario .num{font-size:11px;color:var(--muted);min-width:20px}.scenario strong{font-size:12px;display:block}.scenario small{font-size:10px;color:var(--muted);display:block;margin-top:4px;line-height:1.4}.reset{font-size:12px;text-decoration:underline;margin-top:22px;padding:8px 12px}.footnote{font-size:10px;color:var(--muted);margin:16px 12px 0}.cashier:not(:empty){margin:20px 0 0;padding:16px;background:#fff;border-radius:16px;border:1px solid var(--line)}.cashier h3{margin-bottom:8px}.cashier p{font-size:12px;margin-bottom:12px}.cashier .primary,.cashier .secondary{font-size:12px;min-height:40px}.phone-wrap{position:sticky;top:24px}.phone{position:relative;width:390px;height:816px;border:7px solid #242b35;border-radius:46px;background:var(--bg);overflow:hidden;box-shadow:0 24px 60px #24304420,0 0 0 2px #b8bdc4;display:flex;flex-direction:column}.statusbar{height:48px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 24px;font-family:Arial,sans-serif;font-size:14px;color:#171b20}.island{position:absolute;top:10px;left:50%;transform:translateX(-50%);width:106px;height:25px;border-radius:30px;background:#242b35}.location{display:flex;align-items:center;gap:7px;padding:12px 18px 14px;font-size:11px;font-weight:700;flex:none}.location svg{color:#439db5;width:19px;height:19px}.screen{padding:8px 18px 24px;overflow:auto;flex:1;scrollbar-width:none;outline:none}.screen::-webkit-scrollbar{display:none}.bottom-nav{height:76px;flex:none;border-top:1px solid var(--line);background:#fff;display:flex;justify-content:space-around;padding:8px 8px 21px;position:relative}.bottom-nav:after{content:'';width:118px;height:4px;border-radius:4px;background:#1c2430;position:absolute;bottom:7px;left:50%;transform:translateX(-50%)}.nav-item{font-size:9px;display:flex;flex:1;align-items:center;justify-content:center;gap:4px;flex-direction:column;color:#717884}.nav-item.active{color:#de7b1f;font-weight:700}.nav-item svg{width:23px;height:23px}.tabs{display:flex;background:#eef2f7;padding:4px;border-radius:14px;margin:18px 0;gap:3px}.tabs button{color:#4b5563;min-height:40px;border-radius:11px;flex:1;font-size:11px;font-weight:700;padding:4px 8px}.tabs button.active{background:var(--orange);color:#fff;box-shadow:0 4px 12px rgba(255,153,51,.24)}.card{border-radius:16px;background:var(--surface);padding:16px;border:1px solid var(--line);margin-bottom:12px}.balance-card{padding:20px}.card-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.card-top .icon{color:var(--blue)}.balance-label{font-size:12px;color:var(--muted)}.balance{font-size:44px;letter-spacing:-1.7px;font-weight:700;line-height:1.15;color:var(--ink);margin:10px 0 0;font-variant-numeric:tabular-nums}.balance span{font-size:16px;letter-spacing:0;font-weight:500}.caption{font-size:11px;color:var(--muted);margin:8px 0 16px}.primary,.secondary{width:100%;min-height:48px;border-radius:12px;font-size:13px;font-weight:700;padding:12px 14px;display:flex;justify-content:center;align-items:center;gap:9px}.primary{background:var(--green);color:#fff}.secondary{background:#eef2f7;margin-top:9px}.link{color:#1685b1;font-size:12px;padding:8px 0}.notice{padding:13px 14px;border-radius:12px;background:#fff4e8;font-size:11px;line-height:1.55;margin:12px 0}.notice.green{background:var(--green-soft);color:#47550e}.notice.blue{background:#eaf6fb;color:#265567}.notice.red{background:#fef2f2;color:#991b1b}.section-head{display:flex;justify-content:space-between;align-items:center;margin:20px 0 10px}.section-head h3{font-size:14px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);font-size:12px;text-align:left;width:100%;line-height:1.5}.row:last-child{border-bottom:0}.row strong{display:block;font-size:12px}.row small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.amount{white-space:nowrap;font-weight:700;font-size:14px}.positive{color:#5c7408}.negative{color:var(--text)}.chevron{color:#a0a7b1}.back{padding:8px 0 14px;font-size:12px;display:flex;align-items:center;gap:6px;color:#1685b1}.barcode-box{padding:28px 20px 20px;text-align:center;background:#fff;border-radius:16px;margin:20px 0;border:1px solid var(--line)}.barcode{width:100%;max-width:300px;height:auto;display:block;margin:22px auto 12px;shape-rendering:crispEdges}.card-id{font-size:15px;letter-spacing:3px;font-variant-numeric:tabular-nums}.card-holder{font-size:11px;color:var(--muted);margin-top:18px}.center{text-align:center}.state-icon{width:68px;height:68px;display:flex;align-items:center;justify-content:center;background:var(--green-soft);border-radius:50%;color:#6d8411;margin:24px auto 20px}.state-icon svg{width:32px;height:32px}.state-icon.warn{background:#fff1e6;color:#b76815}.state-icon.error{background:#fcebea;color:#b91c1c}.state-content{text-align:center;padding:12px 0}.state-content h2{font-size:23px;margin:0 0 14px}.state-content p{color:var(--muted);margin-bottom:24px}.state-content .primary{margin-top:24px}.tag{display:inline-flex;align-items:center;background:#eef2f7;border-radius:7px;padding:5px 7px;font-size:9px;font-weight:600;line-height:1.3}.tag.green{background:var(--green-soft);color:#586a0a}.tag.blue{background:#eaf6fb;color:#24708c}.purchase{width:100%;text-align:left;display:block}.purchase-title{font-size:13px;font-weight:700}.purchase .card-top{align-items:flex-start}.purchase .preview{font-size:11px;line-height:1.6;margin:13px 0;color:#59616c}.purchase .purchase-bottom{border-top:1px solid var(--line);padding-top:12px;display:flex;justify-content:space-between;align-items:center}.purchase .small{margin-top:5px}.filters{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}.filters button{font-size:10px;padding:8px 12px;border-radius:20px;background:#e9edf1}.filters button.active{background:#fff;box-shadow:inset 0 0 0 1px #aeb7c2}.details-title{margin-bottom:8px}.product{padding:13px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:10px}.product:last-child{border:0}.product strong{font-size:12px;line-height:1.5}.product p{font-size:10px;color:var(--muted);margin-top:4px}.product .price{font-size:12px;font-weight:700;white-space:nowrap}.summary-line{display:flex;justify-content:space-between;gap:14px;font-size:12px;margin:13px 0}.summary-line.total{padding-top:14px;border-top:1px solid var(--line);font-size:16px;font-weight:700}.profile-avatar{border-radius:50%;background:#e9f4f7;width:54px;height:54px;display:grid;place-items:center;color:#429fb6}.profile-name{font-weight:700;font-size:16px}.input-label{font-size:12px;font-weight:600;display:block;margin:18px 0 8px}input,select{width:100%;min-height:48px;padding:12px;border:1px solid #cdd4dc;border-radius:12px;background:#fff;color:var(--ink);font-size:15px}input[type=checkbox]{width:24px;height:24px;min-height:24px;margin:0;flex-shrink:0;accent-color:var(--green)}.check{display:flex;align-items:center;gap:10px;font-size:12px;margin:18px 0}.form-error{font-size:12px;color:var(--red);margin:12px 0}.search{display:flex;align-items:center;border:1px solid var(--line);background:#fff;border-radius:14px;padding:4px 10px;margin:18px 0}.search input{border:0;padding:10px;min-width:0;background:none}.search .icon{color:#7b838d}.choice{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.choice button{border:1px solid #dce0e5;border-radius:12px;font-size:11px;padding:12px 8px;line-height:1.6}.choice button strong{display:block;font-size:14px}.choice button.active{border-color:#ed8e2e;background:#fff4e8}.qty{display:flex;align-items:center;gap:15px;margin-top:10px;font-size:12px}.qty button{background:#eef2f7;width:30px;height:30px;border-radius:7px;font-size:20px}.sheet-backdrop{position:absolute;inset:0;background:#11182755;display:flex;align-items:flex-end;z-index:4}.sheet{width:100%;background:#fff;border-radius:24px 24px 0 0;padding:24px 20px 32px;max-height:94%;overflow:auto;box-shadow:0 -12px 40px #15202f20}.sheet h2{font-size:23px;line-height:1.25;margin:12px 0}.sheet .handle{width:40px;height:4px;background:#dce0e5;border-radius:4px;margin:-12px auto 22px}.sheet p{color:var(--muted)}.sheet .amount{font-size:38px;letter-spacing:-1px;margin:15px 0;display:block}.sheet .secondary{background:#f3f4f6}.push{background:#f4f6f9ed;backdrop-filter:blur(20px);margin:8px 12px;padding:16px;border-radius:20px;position:absolute;top:44px;left:0;right:0;z-index:5;box-shadow:0 8px 35px #18243130}.push-head{font-size:10px;display:flex;align-items:center;gap:8px;color:#64707f;margin-bottom:10px}.push h3{font-size:14px;margin-bottom:5px}.push p{font-size:12px}.push-actions{display:flex;gap:7px;border-top:1px solid #c8ced4;padding-top:10px;margin-top:12px}.push-actions button{flex:1;font-size:12px;font-weight:600;min-height:36px;color:#196c88}.mobile-scenarios{display:none}.rule{border-bottom:1px solid var(--line);padding:15px 0}.rule summary{font-size:12px;font-weight:700;cursor:pointer}.rule p{font-size:12px;color:var(--muted);margin-top:12px}.loading{height:100px;border-radius:16px;background:#e8edf1;margin:15px 0;animation:pulse 1.4s ease-in-out infinite alternate}.screen>h2{margin:7px 0 0}.badge-count{font-size:9px;background:#fff4e8;border-radius:10px;padding:1px 5px;color:#a25914}.scenario-mobile{padding-bottom:25px}.scenario-mobile .scenario{background:#fff}.empty{padding:28px 8px;text-align:center;color:var(--muted)}.empty h3{color:var(--text);margin:12px 0}.spinner{width:26px;height:26px;border:3px solid #e8edf1;border-top-color:var(--orange);border-radius:50%;animation:spin .9s linear infinite;margin:15px auto}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{to{opacity:.4}}@media(prefers-reduced-motion:reduce){*{animation:none!important}}
@media(min-width:601px){.phone{height:min(816px,calc(100dvh - 64px));min-height:560px}.scenarios{height:calc(100dvh - 64px);min-height:560px;display:flex;flex-direction:column;padding-top:4px}.scenarios .brand,.scenarios h1,.scenarios .intro,.cashier,.reset,.footnote{flex-shrink:0}.scenarios h1{margin-top:15px}.intro{margin-bottom:10px}#scenarios{overflow:auto;scrollbar-width:thin;min-height:120px}.cashier:not(:empty){margin:0 0 14px}.reset{margin-top:10px}.footnote{margin-top:8px}}
@media(max-width:820px) and (min-width:681px){.stage{grid-template-columns:220px 370px;gap:25px;padding:25px 15px}.phone{width:370px}.phone-wrap{top:20px}.scenarios h1{font-size:20px}.brand{width:190px}}
@media(min-width:601px) and (max-width:680px){.stage{grid-template-columns:1fr;padding:24px}.scenarios{display:none}.phone-wrap{justify-self:center}.mobile-scenarios{display:block;position:absolute;top:58px;right:16px;font-size:9px;padding:5px;color:#607080;text-decoration:underline}.location{padding-right:88px}}
@media(max-width:600px){body{background:var(--bg)}.stage{display:block;padding:0}.scenarios{display:none}.phone-wrap{position:static}.phone{width:100%;height:100dvh;min-height:550px;border:0;border-radius:0;box-shadow:none}.island{display:none}.statusbar{height:30px;padding:8px 20px 0;font-size:12px}.location{padding-right:88px}.mobile-scenarios{display:block;position:absolute;top:39px;right:16px;font-size:9px;padding:5px;color:#607080;text-decoration:underline}.screen{padding:8px 18px 25px}.bottom-nav{padding-bottom:max(16px,env(safe-area-inset-bottom));height:76px}.phone .brand{max-width:210px}.sheet{padding-bottom:max(24px,env(safe-area-inset-bottom))}}

/* Внешнее управление прототипом, отдельно от фирменных кнопок приложения. */
.additional-scenarios{margin-top:12px}
.additional-scenarios>summary{padding:12px;color:#6b7280;font-size:11px;cursor:pointer;list-style:none}
.additional-scenarios>summary::-webkit-details-marker{display:none}
.additional-scenarios>summary::after{content:' +';margin-left:4px}
.additional-scenarios[open]>summary::after{content:' −'}
.additional-scenarios>summary:hover{text-decoration:underline}
@media(max-width:680px){
  .mobile-scenarios{
    position:static;display:flex;flex-shrink:0;align-items:center;justify-content:space-between;
    min-height:44px;margin:6px 18px 8px;padding:10px 14px;border:1px solid #7c3aed;
    border-radius:10px;background:#5b21b6;color:#fff;text-decoration:none;
    font-size:13px;box-shadow:0 3px 10px #5b21b622;
    animation:scenario-beat 5.6s ease-in-out infinite;
  }
  .mobile-scenarios span{font-size:9px;letter-spacing:1px;text-transform:uppercase;color:#e9d5ff}
  .mobile-scenarios strong{font-size:13px}
  .mobile-scenarios[aria-expanded="true"]{animation:none}
  .mobile-scenarios:focus-visible{outline:3px solid #a78bfa;outline-offset:3px}
  .location{padding-right:18px}
}
/* Одно биение 0,6 с, затем 5 с без движения. */
@keyframes scenario-beat{
  0%,10.7142857143%,100%{transform:scale(1)}
  5.3571428571%{transform:scale(1.025)}
}
