/* UI from SMK Tool Next UI prototype */
.next-layout{position:relative;max-width:1230px;margin:0 auto;display:grid;grid-template-columns:292px minmax(0,1fr);align-items:start;gap:24px;padding:40px 28px 72px}
.next-side,.next-main{background:linear-gradient(150deg,#1b2437cc,#0f1728e8);border:1px solid var(--line);box-shadow:var(--shadow);backdrop-filter:blur(22px)}
.next-side{border-radius:30px;padding:26px;position:sticky;top:26px;min-height:652px;display:flex;flex-direction:column}
.next-brand{display:flex;align-items:center;gap:12px}
.next-logo{display:grid;place-items:center;width:49px;height:49px;border-radius:16px;background:linear-gradient(135deg,#466ae9,#9068f2);box-shadow:0 12px 28px #6865f455;color:white}
.next-logo svg{width:26px;height:26px}
.next-brandtitle{font-weight:800;font-size:20px;letter-spacing:-.85px}
.next-brandtitle small{font-size:11px;color:var(--muted);display:block;letter-spacing:2.1px;font-weight:700;margin-top:4px}
.next-concept{margin:27px 0 0;display:inline-flex;align-self:start;gap:8px;align-items:center;font-size:10px;letter-spacing:1.8px;font-weight:800;color:#bfd0ff;background:#6878ff1c;border:1px solid #778bff40;border-radius:999px;padding:9px 12px}
.next-point{height:6px;width:6px;border-radius:50%;background:#75f5ca;box-shadow:0 0 0 4px #75f5ca1e}
.next-side h2{font-size:27px;line-height:1.18;letter-spacing:-.95px;margin-top:18px}
.next-sub{font-size:13px;color:var(--muted);line-height:1.65;margin-top:12px}
.next-steps{position:relative;display:grid;gap:10px;margin-top:34px}
.next-step{display:flex;align-items:center;gap:13px;text-align:left;background:transparent;border:1px solid transparent;border-radius:17px;padding:14px 12px;color:#8c9ab3;transition:.2s}
.next-step.active{border-color:#7f90ff50;background:#6c7cf020;color:white}
.next-step.passed{color:#c6d3ea}
.next-stepnum{height:36px;min-width:36px;display:grid;place-items:center;border-radius:12px;background:#212d45;border:1px solid #33415e;font-weight:800;font-size:12px}
.next-step.active .next-stepnum{background:linear-gradient(135deg,#5279ec,#9471f3);border-color:#8b9df5}
.next-step.passed .next-stepnum{background:#1b4b45;border-color:#2f897d;color:#87f0cd}
.next-step b{display:block;font-size:14px;font-weight:700}
.next-step small{display:block;font-size:11px;margin-top:4px;color:inherit;opacity:.7}
.next-bottom-side{margin-top:auto;padding-top:24px}
.next-summary-side{padding:17px;border:1px solid var(--line);background:#0b1424a8;border-radius:19px}
.next-side-label{color:#92a3be;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:1.8px}
.next-sumtitle{font-weight:750;font-size:15px;margin-top:10px;overflow-wrap:anywhere}
.next-sumsub{font-size:12px;color:var(--muted);margin-top:7px}
.next-sidenote{display:flex;align-items:center;gap:7px;margin:14px 2px 0;color:#7f8da7;font-size:11px}
.next-sidenote svg{width:14px;height:14px}
.next-main{border-radius:30px;padding:30px 32px 27px;min-height:652px;overflow:hidden}
.next-mainhead{display:flex;justify-content:space-between;align-items:center;gap:12px}
.next-overline{font-size:11px;letter-spacing:2px;font-weight:800;text-transform:uppercase;color:#a3b6ef}
.next-pill{border:1px solid #53648166;background:#111e32;border-radius:999px;padding:9px 13px;font-size:11px;color:#b8c7de;white-space:nowrap}
.next-line-progress{height:4px;border-radius:999px;background:#222f46;margin-top:19px;overflow:hidden}
.next-progressfill{height:100%;width:33.333%;border-radius:999px;background:linear-gradient(90deg,#5b9cff,#af86ff);box-shadow:0 0 15px #6899ff99;transition:width .35s ease}
.next-panel{animation:panelIn .28s ease both}
@keyframes  panelIn{from{opacity:0;transform:translateY(9px)}
to{opacity:1;transform:translateY(0)}}
.next-hero{display:flex;justify-content:space-between;gap:22px;align-items:flex-start;margin:27px 0 24px}
.next-hero h1{font-size:clamp(30px,3.8vw,42px);letter-spacing:-1.55px;line-height:1.1;font-weight:820}
.next-hero p{font-size:14px;line-height:1.65;color:var(--muted);margin-top:11px;max-width:510px}
.next-visual{width:78px;height:78px;flex:0 0 78px;border-radius:25px;display:grid;place-items:center;background:radial-gradient(circle at 30% 20%,#987fff6b,#394f9a25 67%);border:1px solid #818be845;box-shadow:0 14px 55px #6c5fe928}
.next-visual svg{width:36px;height:36px;color:#d5d1ff;stroke-width:1.45}
.next-meta-row{display:flex;gap:9px;flex-wrap:wrap;margin:-4px 0 19px}
.next-meta{display:flex;align-items:center;gap:7px;border:1px solid var(--line);background:#1823389c;padding:7px 11px;color:#b3c1d6;border-radius:999px;font-size:11px}
.next-meta svg{height:14px;width:14px}
.next-search{display:flex;align-items:center;position:relative;height:55px;background:#0a1325c9;border:1px solid #62709b50;border-radius:17px;transition:border-color .2s}
.next-search:focus-within{border-color:#8097fd}
.next-search svg{margin-left:17px;color:#8ea4cf}
.next-search input{height:100%;width:100%;border:0;outline:0;background:transparent;color:white;padding:0 14px;font-size:14px;min-width:0}
.next-search input::placeholder{color:#73829b}
.next-clear{border:0;color:#a5b6ce;background:transparent;padding:12px 16px}
.next-routes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-top:15px}
.next-route{border:1px solid #8292b326;background:linear-gradient(140deg,#26334d99,#171f33cf);color:white;min-width:0;padding:16px 14px 15px;text-align:left;border-radius:18px;min-height:118px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .2s,border-color .2s,background .2s,box-shadow .2s}
.next-route:hover{transform:translateY(-2px);border-color:#849bff8a;background:linear-gradient(140deg,#324a83b8,#252643de);box-shadow:0 11px 26px #07091b6e}
.next-route:active{transform:scale(.98)}
.next-route-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.next-route-n{font-size:23px;font-weight:850;letter-spacing:-.85px}
.next-route-top svg{width:16px;height:16px;color:#8a9fc9}
.next-route-tt{font-size:11px;color:#98aac6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.next-route-bot{color:#c4d1e5;font-size:11px;margin-top:7px}
.next-allroute{display:flex;align-items:center;gap:12px;width:100%;margin-top:11px;min-height:64px;border-radius:18px;padding:14px 19px;background:linear-gradient(105deg,#334d9f55,#8652a54a);border:1px solid #9481e875;color:white;text-align:left;transition:.2s}
.next-allroute:hover{background:linear-gradient(110deg,#446ad090,#926bc088);transform:translateY(-1px)}
.next-allroute .next-all-icon{height:37px;width:37px;display:grid;place-items:center;background:#879cfa25;border-radius:11px}
.next-allroute b{font-size:13px}
.next-allroute small{display:block;color:#b6c5e0;font-size:11px;margin-top:4px}
.next-allroute .next-arr{margin-left:auto}
.next-footactions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:21px;border-top:1px solid var(--line);padding-top:17px}
.next-foot-btn{display:flex;justify-content:center;align-items:center;gap:9px;min-height:44px;border-radius:13px;background:transparent;color:#a5b5cc;border:1px solid #5a66852b;font-size:12px;font-weight:650}
.next-foot-btn:hover{background:#2d3954aa;color:white;border-color:#7185b867}
.next-foot-btn svg{width:16px;height:16px}
.next-back{display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;color:#a8bbdf;padding:9px 3px 9px 0;font-size:13px;font-weight:650}
.next-back svg{width:17px}
.next-context{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:4px 0 20px}
.next-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid #8492b744;background:#131d32b3;border-radius:12px;padding:10px 12px;color:#cbd9ec;font-size:12px}
.next-chip strong{color:white}
.next-chip svg{width:15px;height:15px;color:#9cafdd}
.next-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:247px;border-radius:24px;background:radial-gradient(circle at 45% 0%,#6079f929,transparent 62%),#0d1628a9;border:1.5px dashed #7d94cd7f;padding:25px;cursor:pointer;transition:background .2s,border-color .2s,transform .2s}
.next-dropzone:hover,.next-dropzone.drag{border-color:#bac6ff;background:#324a9045;transform:translateY(-1px)}
.next-uploadico{height:61px;width:61px;border-radius:19px;background:linear-gradient(135deg,#4966c850,#7a57d547);border:1px solid #a9a7ff4a;display:grid;place-items:center;font-size:29px;margin-bottom:18px}
.next-dropzone h3{font-size:18px;letter-spacing:-.4px}
.next-dropzone p{color:#98a8c1;font-size:12px;margin-top:9px;line-height:1.6}
.next-browse{display:inline-flex;gap:7px;align-items:center;background:#334f9f4a;border:1px solid #8da4ff7d;color:#dfe7ff;font-size:12px;font-weight:750;border-radius:11px;padding:11px 16px;margin-top:18px}
.next-file-card{display:flex;align-items:center;gap:13px;margin-top:13px;background:#11382f8a;border:1px solid #54be9990;border-radius:16px;padding:13px 14px}
.next-file-ico{width:39px;height:42px;display:grid;place-items:center;border-radius:12px;background:#4fdab027;color:#91f2d0}
.next-file-body{min-width:0;flex:1}
.next-file-body b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.next-file-body span{display:block;font-size:11px;color:#99cbbb;margin-top:4px}
.next-remove{background:#ffffff0c;color:#acdbc9;border:1px solid #71c8aa45;border-radius:10px;padding:8px 11px;font-size:12px}
.next-tip{display:flex;align-items:flex-start;gap:11px;padding:15px;margin-top:17px;border:1px solid var(--line);border-radius:15px;background:#17223893}
.next-tip svg{width:18px;height:18px;min-width:18px;color:#9dacdf}
.next-tip p{font-size:12px;line-height:1.6;color:#a2b3ce}
.next-actions{display:flex;align-items:center;gap:10px;margin-top:24px}
.next-primary{min-height:53px;flex:1;border:0;border-radius:15px;background:linear-gradient(105deg,#507be9,#8c6bec);box-shadow:0 10px 26px #5b66dd45;font-size:14px;color:white;font-weight:780;padding:10px 20px}
.next-primary:not(:disabled):hover{filter:brightness(1.12)}
.next-secondary{min-height:53px;border:1px solid #63769964;border-radius:15px;background:#1a2840;color:#d9e5ff;font-weight:720;font-size:13px;padding:10px 22px}
.next-empty{padding:19px;text-align:center;color:#a9bbd3;font-size:13px;border:1px dashed var(--line);border-radius:13px;margin-top:13px}
.next-done{background:linear-gradient(135deg,#20355d99,#26364fa1);border:1px solid #6c8dc455;border-radius:24px;padding:25px}
.next-doneicon{font-size:42px;margin-bottom:13px}
.next-done h3{font-size:24px;letter-spacing:-.6px}
.next-done p{margin-top:10px;color:#a1b6d6;font-size:13px;line-height:1.7}
.next-done strong{color:#ecf2ff}
.next-x{border:1px solid #56637c68;background:#1d2b45;color:#d0def1;border-radius:10px;width:34px;height:34px;font-size:22px}
@media (max-width:1010px){.next-layout{grid-template-columns:248px minmax(0,1fr);gap:16px;padding:20px}
.next-side{padding:20px}
.next-main{padding:25px}
.next-routes{grid-template-columns:repeat(3,minmax(0,1fr))}
.next-route{min-height:104px}}
@media (max-width:1100px){.next-layout{display:block;padding:14px 13px 28px}
.next-side{position:static;min-height:0;padding:18px 18px 13px;border-radius:23px;margin-bottom:12px}
.next-side h2,.next-side>.next-sub,.next-side .next-concept,.next-bottom-side,.next-sidenote{display:none}
.next-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:19px}
.next-step{flex-direction:column;gap:8px;justify-content:center;text-align:center;border-radius:12px;padding:9px 2px}
.next-stepnum{height:30px;min-width:30px;border-radius:9px}
.next-step b{font-size:11px}
.next-step small{display:none}
.next-brandtitle{font-size:18px}
.next-logo{width:39px;height:39px;border-radius:13px}
.next-main{border-radius:22px;min-height:0;padding:21px 17px 19px}
.next-hero{margin:25px 0 23px}
.next-hero h1{font-size:32px}
.next-hero p{font-size:12px}
.next-visual{width:55px;height:55px;flex:0 0 55px;border-radius:18px}
.next-visual svg{height:26px;width:26px}
.next-routes{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.next-route{min-height:108px;padding:14px}
.next-route-n{font-size:22px}
.next-route-tt{font-size:10px}
.next-meta-row{margin-bottom:15px}
.next-footactions{margin-top:20px}
.next-foot-btn{font-size:11px;padding:6px}
.next-dropzone{min-height:252px;padding:22px 14px}
.next-actions{flex-direction:column}
.next-actions>*{width:100%;flex:auto}
.next-chip{font-size:11px}}
@media (max-width:360px){.next-layout{padding:8px}
.next-main{padding:18px 12px}
.next-route{padding:11px}
.next-route-n{font-size:20px}
.next-hero h1{font-size:28px}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* SMK Tool Next UI: адаптер для существующих элементов расчёта.
   Стили изолированы; диалоги, печать, радио и игра оставлены оригинальными. */
body {
    background: #010409;
}

body .bg {
    opacity: 1;
}
.app.next-ui-app {width:100%;max-width:1280px;min-height:0;padding:0;display:block;}
.next-ui-app .next-layout{padding-top:40px;}
.next-ui-app .next-brand .next-logo {flex-shrink:0}
.next-ui-app .next-logo svg {width:25px;height:25px;color:white;fill:none;stroke:currentColor;stroke-width:1.8;}
.next-ui-app .next-side h2{font-size:27px;line-height:1.2;letter-spacing:-.9px;color:#f5f7ff;margin-top:18px;}
.next-ui-app .next-side .next-sub{font-size:13px;margin-top:12px;line-height:1.6;}
.next-ui-app .next-step{width:100%;font-family:inherit;cursor:pointer;}
.next-ui-app .next-quick-actions{display:flex;gap:9px;margin-top:15px;}
.next-ui-app #btnOpenRadio,.next-ui-app #btnOpenGame {position:static;left:auto;right:auto;top:auto;transform:none;width:auto;height:42px;flex:1;border-radius:12px;display:flex;gap:8px;align-items:center;justify-content:center;font-size:12px;color:#b9c9f1;box-shadow:none;z-index:1;}
.next-ui-app #btnOpenGame{color:#cdbaff;}
.next-ui-app #btnOpenRadio .svg-icon,.next-ui-app #btnOpenGame .svg-icon{width:18px!important;height:18px!important;}
.next-ui-app .next-sidenote{display:flex;align-items:center;gap:6px;margin-top:14px;}
.next-ui-app .next-sidenote .next-svg{width:14px;height:14px;}
#stepsContainer{opacity:1;transform:none;transition:none!important;}
#stepsContainer.show-steps{opacity:1;transform:none;}
#stepsContainer .next-mainhead-wrap {margin-bottom:0;padding:0;gap:0;}
#stepsContainer .next-mainhead {display:flex;justify-content:space-between;align-items:center;gap:10px;}
#stepsContainer #stepText{font-weight:800;font-size:11px;color:#a3b6ef;letter-spacing:2px;}
#stepsContainer #stepInstruction{display:inline-flex;gap:4px;justify-content:center;align-items:center;font-size:11px;letter-spacing:0;text-transform:none;color:#b8c7de;font-weight:500;}
#stepsContainer .next-line-progress{height:4px;margin-top:19px;background:#222f46;border-radius:999px;}
#stepsContainer #stepBar{background:linear-gradient(90deg,#5b9cff,#af86ff);box-shadow:0 0 15px #6899ff99;transition:width .35s ease;}
#stepsContainer .card.next-panel {background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border:0!important;padding:0!important;border-radius:0!important;transform:none;}
#stepsContainer .card.next-panel.show{opacity:1;}
#stepsContainer .next-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;margin:27px 0 24px;}
#stepsContainer .next-hero h1{font-size:clamp(30px,3.8vw,42px);line-height:1.1;font-weight:820;letter-spacing:-1.5px;color:#f5f7ff;margin:0;}
#stepsContainer .next-hero p{font-size:14px;color:#97a6c0;line-height:1.65;margin:11px 0 0;max-width:510px;}
#stepsContainer .next-meta-row{display:flex;gap:9px;flex-wrap:wrap;margin:-4px 0 19px;}
#stepsContainer .next-search {height:55px;padding:0;display:flex;gap:0;margin:0;border-radius:17px;}
#stepsContainer .next-search .next-svg{width:19px;height:19px;flex:0 0 19px;margin:0 0 0 17px;}
#stepsContainer .next-search input {background:transparent!important;box-shadow:none!important;border:0!important;outline:0!important;flex:1;min-width:0;width:100%;height:100%;padding:0 14px;margin:0;color:white;font-size:14px;}
#stepsContainer .next-search .next-clear{position:static;color:#a5b6ce;background:none;border:0;font-size:18px;padding:9px 17px;cursor:pointer;}
#stepsContainer #routeButtons.next-routes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-top:15px;padding:0;}
#stepsContainer #routeButtons .route-btn.next-route{opacity:1;position:relative;display:flex!important;flex-direction:column!important;justify-content:space-between!important;align-items:stretch!important;gap:0;text-align:left;min-width:0;width:100%;height:auto!important;min-height:118px!important;padding:16px 14px 15px!important;border:1px solid #8292b326!important;border-radius:18px!important;background:linear-gradient(140deg,#26334d99,#171f33cf)!important;box-shadow:none!important;backdrop-filter:none!important;transform:none;transition:transform .2s,border-color .2s,background .2s,box-shadow .2s!important;}
#stepsContainer #routeButtons .route-btn.next-route::before {display:none!important;}
#stepsContainer #routeButtons .route-btn.next-route:hover{transform:translateY(-2px)!important;border-color:#849bff8a!important;background:linear-gradient(140deg,#324a83b8,#252643de)!important;box-shadow:0 11px 26px #07091b6e!important;}
#stepsContainer #routeButtons .route-btn.next-route:active{transform:scale(.98)!important;}
#stepsContainer #routeButtons .route-btn.hidden-by-search{display:none!important;}
#stepsContainer .next-route .next-route-n{color:#edf2ff;font-size:23px;font-weight:850;letter-spacing:-.85px;-webkit-text-fill-color:initial;}
#stepsContainer .next-route .next-route-tt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#stepsContainer .next-allroute{width:100%;height:auto!important;min-height:64px!important;display:flex!important;align-items:center!important;flex-direction:row!important;justify-content:flex-start!important;gap:12px!important;border:1px solid #9481e875!important;background:linear-gradient(105deg,#334d9f55,#8652a54a)!important;box-shadow:none!important;padding:14px 19px!important;opacity:1;transform:none;margin-top:11px;white-space:normal;}
#stepsContainer .next-allroute::before{display:none!important;}
#stepsContainer .next-allroute:hover{background:linear-gradient(110deg,#446ad090,#926bc088)!important;transform:translateY(-1px)!important;}
#stepsContainer .next-allroute .next-all-icon{width:37px;height:37px;flex:0 0 37px;}
#stepsContainer .next-allroute b{font-size:13px;color:white;}
#stepsContainer .next-allroute small{display:block;color:#b6c5e0;font-size:11px;margin-top:4px;}
#stepsContainer .next-allroute > .next-svg{margin-left:auto;}
#stepsContainer #routeFooterActions.next-footactions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:21px;padding-top:17px;}
#stepsContainer #routeFooterActions .next-foot-btn{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;max-width:none!important;margin:0!important;padding:10px 7px!important;min-height:44px;font-weight:650;font-size:12px!important;letter-spacing:0!important;border-radius:13px!important;white-space:normal;text-align:center;box-shadow:none!important;color:#a5b5cc!important;border:1px solid #5a66852b!important;background:transparent!important;transform:none!important;transition:background .2s,color .2s,border-color .2s!important;}
#stepsContainer #routeFooterActions .next-foot-btn:hover{background:#2d3954aa!important;color:white!important;border-color:#7185b867!important;}
#stepsContainer #routeFooterActions .next-foot-btn .next-svg{width:16px;height:16px;flex-shrink:0;}
#stepsContainer #routeFooterActions .bug-hidden{visibility:hidden;pointer-events:none;opacity:0;}
#stepsContainer .next-back{display:inline-flex;align-items:center;gap:7px;position:static;margin:17px 0 0;padding:9px 3px 9px 0;border:0;background:none;color:#a8bbdf;font-size:13px;font-weight:650;}
#stepsContainer .next-back .next-svg{width:17px;height:17px;}
#stepsContainer .next-context{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:4px 0 20px;}
#stepsContainer .next-context .next-chip{display:inline-flex;align-items:center;gap:8px;}
#stepsContainer .next-dropzone{position:relative;width:100%;min-height:247px;margin:0;padding:25px;border:1.5px dashed #7d94cd7f;border-radius:24px;background:radial-gradient(circle at 45% 0%,#6079f929,transparent 62%),#0d1628a9;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:0;text-align:center;cursor:pointer;transition:background .2s,border-color .2s,transform .2s;}
#stepsContainer .next-dropzone:hover,#stepsContainer .next-dropzone.dragover{border-color:#bac6ff;background:#324a9045;transform:translateY(-1px);color:inherit;}
#stepsContainer .next-dropzone .next-uploadico{width:61px;height:61px;display:grid;place-items:center;margin:0 0 18px;border-radius:19px;background:linear-gradient(135deg,#4966c850,#7a57d547);border:1px solid #a9a7ff4a;animation:none;filter:none;}
#stepsContainer .next-dropzone .next-uploadico .svg-icon{width:34px;height:34px;}
#stepsContainer .next-dropzone .main-text{font-size:18px;color:#f5f7ff;letter-spacing:-.4px;}
#stepsContainer .next-dropzone .sub-text{margin-top:9px;padding:0;background:transparent;border:0;color:#98a8c1;line-height:1.65;font-weight:400;letter-spacing:0;font-size:12px;opacity:1;}
#stepsContainer .next-dropzone .sub-text-hidden{display:none;}
#stepsContainer .next-dropzone .next-browse{display:inline-flex;align-items:center;gap:7px;margin-top:18px;padding:11px 16px;color:#dfe7ff;border-radius:11px;background:#334f9f4a;border:1px solid #8da4ff7d;font-size:12px;font-weight:750;}
#stepsContainer .next-dropzone .next-browse .next-svg{width:14px;height:14px;}
#stepsContainer .next-dropzone .file-status{position:static;inset:auto;max-width:100%;width:100%;margin:14px 0 0;background:#11382f8a;border:1px solid #54be9990;border-radius:16px;padding:13px 14px;gap:13px;align-items:center;text-align:left;}
#stepsContainer .next-dropzone .file-status.active{display:flex;}
#stepsContainer .next-dropzone .file-status .file-name{display:block;flex:1;font-size:13px;font-weight:650;color:#e1f9f0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
#stepsContainer .next-dropzone .next-file-icon{background:#4fdab027;display:grid;place-items:center;width:39px;height:38px;border-radius:12px;color:#91f2d0;}
#stepsContainer .next-tip{display:flex;gap:11px;align-items:flex-start;margin-top:17px;padding:15px;border:1px solid rgba(190,201,255,.115);border-radius:15px;background:#17223893;}
#stepsContainer .next-tip p{font-size:12px;color:#a2b3ce;line-height:1.6;margin:0;}
#stepsContainer .next-tip .next-svg{width:18px;height:18px;flex-shrink:0;color:#9dacdf;}
#stepsContainer .next-actions{display:flex;align-items:center;gap:10px;margin-top:24px;}
#stepsContainer .next-actions .next-primary{flex:1;position:static;overflow:hidden;width:auto;min-height:53px;padding:10px 20px;border:0;border-radius:15px;background:linear-gradient(105deg,#507be9,#8c6bec);box-shadow:0 10px 26px #5b66dd45;font-size:14px;color:white;font-weight:780;cursor:pointer;transform:none;}
#stepsContainer .next-actions .next-primary:hover:not(:disabled){filter:brightness(1.12);}
#stepsContainer .next-actions .next-primary:disabled{opacity:.42;cursor:not-allowed;box-shadow:none;}
#stepsContainer .next-actions .next-secondary{min-height:53px;border:1px solid #63769964;border-radius:15px;background:#1a2840;color:#d9e5ff;font-weight:720;font-size:13px;padding:10px 22px;cursor:pointer;}
#result .next-result-title{margin:0;min-width:0;}
#result .next-result-title h1{font-size:36px;font-weight:800;letter-spacing:-1px;margin:8px 0;}
#result .next-result-title p{font-size:13px;color:#97a6c0;}

.next-ui-app button:focus-visible,.next-ui-app input:focus-visible,.next-ui-app .next-dropzone:focus-visible{outline:2px solid #a8bcff;outline-offset:3px;}
@media(max-width:1010px){#stepsContainer #routeButtons.next-routes{grid-template-columns:repeat(3,minmax(0,1fr))}#stepsContainer #routeButtons .route-btn.next-route{min-height:104px!important}}
@media(max-width:1100px){.app.next-ui-app .next-layout{padding:14px 13px 28px;}.next-ui-app .next-side h2,.next-ui-app .next-side .next-sub,.next-ui-app .next-concept,.next-ui-app .next-bottom-side{display:none;}.next-ui-app .next-main{min-height:0;}#stepsContainer #routeButtons.next-routes{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}#stepsContainer #routeButtons .route-btn.next-route{min-height:108px!important;padding:14px!important;align-items:stretch!important}#stepsContainer #routeButtons .next-route .next-route-n{font-size:22px}#stepsContainer .next-hero{margin:25px 0 23px}#stepsContainer .next-hero h1{font-size:32px}#stepsContainer .next-hero p{font-size:12px}#stepsContainer .next-dropzone{min-height:252px;padding:22px 14px}#stepsContainer .next-actions{flex-direction:column}#stepsContainer .next-actions>*{width:100%!important;flex:auto}#stepsContainer #routeFooterActions .next-foot-btn{font-size:11px!important;padding:6px!important}#stepsContainer .next-route .next-route-tt{font-size:10px}}
@media(max-width:360px){.app.next-ui-app .next-layout{padding:8px}#stepsContainer .next-hero h1{font-size:28px}#stepsContainer #routeButtons .route-btn.next-route{padding:11px!important}}
@media(prefers-reduced-motion:reduce){.next-ui-app *{animation:none!important;transition:none!important}}
.next-ui-app .next-svg{display:inline-block;width:19px;height:19px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}

/* Mobile quick access to radio and mini-game (retained from original SMK Tool) */
@media(max-width:1100px){
.next-ui-app .next-side{position:relative}
.next-ui-app .next-brand{padding-right:83px}
.next-ui-app .next-bottom-side{display:block!important;position:absolute;top:19px;right:18px;margin:0;padding:0}
.next-ui-app .next-bottom-side .next-summary-side,.next-ui-app .next-bottom-side .next-sidenote{display:none!important}
.next-ui-app .next-bottom-side .next-quick-actions{display:flex;gap:6px;margin:0}
.next-ui-app #btnOpenRadio,.next-ui-app #btnOpenGame{width:35px;height:35px;flex:0 0 35px;border-radius:11px;}
.next-ui-app .next-quick-actions button span{display:none}
}




/* ===========================================
   Next UI — финальная визуальная шлифовка
   =========================================== */

/* Фирменный инструмент с заставки, без дополнительного логотипа-маршрута. */
.next-ui-app .next-logo{
  width:52px;height:52px;flex:0 0 52px;
  background:radial-gradient(circle at 40% 35%,rgba(60,123,228,.20),rgba(131,90,241,.07) 70%);
  border:1px solid rgba(145,164,250,.30);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 12px 35px rgba(78,101,233,.16);
}
.next-ui-app .next-logo .next-brand-icon{
  width:34px!important;height:34px!important;
  overflow:visible;fill:none;stroke:none;
  filter:drop-shadow(0 0 9px rgba(100,169,255,.33));
}
.next-brandtitle .next-brand-version{
  display:block;cursor:pointer;letter-spacing:1.5px;
  color:#a4b6d5;font-weight:760;font-size:11px;
}
.next-brandtitle .next-brand-version:hover{color:#dfebff;}
.next-brandtitle .next-brand-version:focus-visible{outline:2px solid #96b1ff;outline-offset:3px;}
/* Единственная версия — под логотипом. Ссылка LH сохраняется. */
/* Telegram author link is now inside the brand instead of a detached footer. */

/* Компактный результат без второго номера маршрута и лишнего «Готово». */
.next-ui-app #result .next-result-head{
  display:flex;align-items:center;justify-content:flex-start;
  min-height:26px;margin:12px 0 17px;padding:0;
}
.next-ui-app #result .next-result-head .next-overline{font-size:11px;letter-spacing:2px;}
.next-ui-app #result{padding-bottom:0;}

/* Плавающая панель внизу, закреплённая относительно окна браузера. */
body #controlsWrap{
  position:fixed!important;inset:auto auto calc(20px + env(safe-area-inset-bottom, 0px)) 50%!important;
  transform:translateX(-50%)!important;
  z-index:9000;display:flex;align-items:center;justify-content:center;gap:8px;
  width:max-content;max-width:calc(100vw - 24px);min-width:0;
  padding:7px;margin:0;
  border:1px solid rgba(136,159,223,.30);
  border-radius:22px;
  background:linear-gradient(135deg,rgba(27,40,65,.95),rgba(12,20,37,.96));
  box-shadow:0 14px 48px rgba(2,6,19,.65),inset 0 1px 0 rgba(255,255,255,.08);
  -webkit-backdrop-filter:blur(22px) saturate(145%);
  backdrop-filter:blur(22px) saturate(145%);
  overflow:visible;
}
body #controlsWrap.fade-in-controls:not(.show){display:none!important;}
body #controlsWrap.fade-in-controls.show{opacity:1;pointer-events:auto;animation:nextFloatIn .26s ease both;}
@keyframes nextFloatIn{from{opacity:0;translate:0 12px;}to{opacity:1;translate:0 0;}}
body #controlsWrap .btn-reset,
body #controlsWrap .btn-save-png,
body #controlsWrap .btn-print{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-height:45px;min-width:112px;padding:11px 16px;
  border-radius:15px;box-shadow:none!important;
  font-family:inherit;font-size:12px;font-weight:750;line-height:1.2;white-space:nowrap;
  cursor:pointer;transition:background .2s,border-color .2s,filter .2s,transform .2s;
}
body #controlsWrap .btn-reset{color:#ffb5c9!important;background:rgba(221,91,133,.10)!important;border:1px solid rgba(255,149,178,.23)!important;}
body #controlsWrap .btn-save-png{color:#91f5d7!important;background:rgba(33,186,151,.14)!important;border:1px solid rgba(84,226,194,.30)!important;}
body #controlsWrap .btn-print{color:#bbd2ff!important;background:rgba(89,119,233,.16)!important;border:1px solid rgba(138,163,255,.30)!important;}
body #controlsWrap .btn-reset:hover{background:rgba(221,91,133,.22)!important;border-color:rgba(255,149,178,.53)!important;}
body #controlsWrap .btn-save-png:hover{background:rgba(33,186,151,.28)!important;border-color:rgba(84,226,194,.58)!important;}
body #controlsWrap .btn-print:hover{background:rgba(89,119,233,.30)!important;border-color:rgba(138,163,255,.60)!important;}
body #controlsWrap .svg-icon{width:17px;height:17px;opacity:1;flex-shrink:0;}

/* Общая визуальная система модальных окон (не затрагивает скрипты и события). */
.custom-alert-overlay,.about-modal,.admin-modal,#bug-modal.next-modal-backdrop{
  background:rgba(3,8,21,.79)!important;
  -webkit-backdrop-filter:blur(14px) saturate(130%);
  backdrop-filter:blur(14px) saturate(130%);
}
.custom-alert-overlay,.admin-modal{padding:14px;box-sizing:border-box;}
.custom-alert-overlay .custom-alert-card,
.custom-alert-overlay .custom-stats-card,
.about-modal .about-card,
#bug-modal .next-bug-card,
.admin-modal .admin-card{
  background:linear-gradient(146deg,rgba(27,39,64,.98) 0%,rgba(12,20,36,.98) 95%)!important;
  border:1px solid rgba(125,148,208,.26)!important;
  border-top-color:rgba(163,179,240,.30)!important;
  border-radius:25px;
  box-shadow:0 28px 78px rgba(0,3,17,.69),inset 0 1px 0 rgba(255,255,255,.06);
  color:#eaf1ff;
}
.custom-alert-overlay .custom-alert-card{width:min(100%,420px);max-width:420px;}
.custom-alert-overlay .custom-stats-card{width:min(100%,440px);max-width:440px;max-height:88dvh;}
.custom-alert-overlay .custom-alert-title{
  background:transparent;
  border-bottom:1px solid rgba(151,168,215,.16);
  color:#9bc8ff;text-shadow:none;letter-spacing:.15px;font-size:17px;
}
.custom-alert-overlay .custom-alert-text{color:#c6d5ec;font-weight:480;line-height:1.65;}
.custom-alert-overlay .custom-alert-btn,.custom-alert-overlay .radio-close-btn{
  min-height:45px;padding:12px 14px;
  border-radius:14px!important;
  background:rgba(48,72,117,.25)!important;
  border:1px solid rgba(145,162,219,.26)!important;
  color:#c7dafa!important;font-size:13px;font-weight:730;
  cursor:pointer;transition:background .2s,border-color .2s,filter .2s;
}
.custom-alert-overlay .custom-alert-btn:hover,.custom-alert-overlay .radio-close-btn:hover{
  background:rgba(69,102,167,.35)!important;
  border-color:rgba(146,182,255,.53)!important;
}
#statsModal .custom-stats-card{padding:23px 21px!important;}
#statsModal #statsModalTitle{margin-top:-23px!important;padding:19px 14px!important;}
#statsModal #statsModalBody{scrollbar-width:thin;scrollbar-color:#7197ed transparent;}
#statsModal .radio-close-btn{margin-top:14px;flex-shrink:0;}
#statsModal #btnTabMilk,#statsModal #btnTabEgg{min-height:39px;border-radius:11px!important;}
#missingItemsModal .custom-alert-card{max-height:90dvh;overflow-y:auto;}
/* «О проекте» — те же скругления, цветная шапка и марка из заставки. */
.about-modal .about-card{width:min(100%,700px);max-height:90dvh;}
.about-modal .about-modal-header{
  background:linear-gradient(90deg,rgba(77,111,225,.18),rgba(127,87,216,.10));
  border-bottom:1px solid rgba(146,164,219,.17);
}
.about-modal .about-brand-mark{
  color:#9fc7ff;background:rgba(76,104,211,.16);border-color:rgba(143,170,255,.28);
}
.about-modal .about-brand-mark .svg-icon{width:29px;height:29px;stroke:none;}
.about-modal .about-heading h2{color:#edf3ff;letter-spacing:-.4px;}
.about-modal .about-version-row,.about-modal .about-feature,.about-modal .about-tech-list{
  background:rgba(32,48,77,.38);border-color:rgba(141,160,216,.15);
}
.about-modal .about-section ul li{background:rgba(64,91,161,.12);border-color:rgba(124,156,234,.18);}
.about-modal .about-close-btn,.next-modal-close{
  display:grid;place-items:center;flex:0 0 35px;width:35px;height:35px;
  border:1px solid rgba(151,168,219,.22);border-radius:11px;
  background:rgba(123,147,212,.10);color:#c9d7f3;font-size:22px;line-height:1;
  cursor:pointer;
}
.about-modal .about-close-btn:hover,.next-modal-close:hover{background:rgba(146,170,232,.22);color:white;}
/* Окно Telegram — новые классы оформления, прежний функционал. */
#bug-modal.next-modal-backdrop{
  position:fixed;inset:0;z-index:999999;
  display:none;align-items:center;justify-content:center;
  padding:16px;box-sizing:border-box;
}
#bug-modal .next-bug-card{width:min(100%,460px);overflow:hidden;}
#bug-modal .next-bug-head{
  display:flex;align-items:center;gap:11px;
  padding:19px 20px;
  background:linear-gradient(95deg,rgba(73,112,224,.20),rgba(122,84,213,.11));
  border-bottom:1px solid rgba(150,170,235,.15);
  color:#a9d0ff;font-size:17px;font-weight:780;letter-spacing:-.3px;
}
#bug-modal .next-bug-icon{width:33px;height:33px;display:grid;place-items:center;flex:0 0 33px;
  border-radius:11px;color:#a8caff;background:rgba(90,129,222,.18);}
#bug-modal .next-bug-icon .next-svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
#bug-modal .next-modal-close{margin-left:auto;}
#bug-modal .next-bug-body{padding:22px 21px 21px;}
#bug-modal .next-bug-body p{color:#aebfd9;font-size:13px;line-height:1.55;margin:0 0 12px;}
#bug-modal #bug-text{
  width:100%;min-height:145px;max-height:42dvh;box-sizing:border-box;
  resize:vertical;padding:15px;margin:0 0 18px;
  font:inherit;font-size:14px;line-height:1.6;color:#ecf3ff;
  outline:none;border-radius:15px;
  background:rgba(7,15,29,.63);border:1px solid rgba(143,165,221,.24);
  transition:border-color .2s,box-shadow .2s;
}
#bug-modal #bug-text:focus{border-color:#839bff;box-shadow:0 0 0 3px rgba(115,130,241,.16);}
#bug-modal #bug-text::placeholder{color:#7588a7;}
#bug-modal .next-bug-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
#bug-modal .next-bug-actions button{
  min-width:0;min-height:48px;padding:11px 12px;border-radius:14px;
  border:1px solid rgba(139,160,218,.22);
  color:#c2d1e9;background:rgba(94,113,166,.10);
  font:inherit;font-size:13px;font-weight:750;cursor:pointer;
  transition:background .2s,border-color .2s;
}
#bug-modal .next-bug-actions button:first-child{
  color:#dbe7ff;background:linear-gradient(100deg,#3864bb9e,#6555bc9e);
  border-color:rgba(132,160,246,.47);
}
#bug-modal .next-bug-actions button:hover{background:rgba(94,113,166,.28);border-color:rgba(155,179,243,.50);}
#bug-modal .next-bug-actions button:first-child:hover{background:linear-gradient(100deg,#4877de,#7663dc);}
/* Админ-диалог также соответствует теме (красный акцент сигнализирует об опасности). */
.admin-modal .admin-card{max-height:89dvh;overflow-y:auto;}
.admin-modal .admin-title{letter-spacing:1.2px;text-shadow:none;}
.admin-modal .admin-btn{border-radius:13px;}

@media(max-width:1100px){
  .next-ui-app #result{padding-bottom:0;}
  .next-ui-app #result .next-result-head{margin-top:18px;}
  body #controlsWrap{bottom:calc(12px + env(safe-area-inset-bottom,0px))!important;}

  #bug-modal .next-bug-head{padding:16px;gap:8px;font-size:15px;}
  #bug-modal .next-bug-body{padding:18px 16px;}
  .custom-alert-overlay .custom-stats-card{max-height:92dvh;}
}
@media(max-width:360px){
 body #controlsWrap{gap:6px;padding:6px;}
 body #controlsWrap .btn-reset,
 body #controlsWrap .btn-print,
 body #controlsWrap .btn-save-png{padding:10px 11px;min-width:0;min-height:43px;font-size:11px;gap:6px;}
 body #controlsWrap .svg-icon{width:15px;height:15px;}
 #bug-modal .next-bug-actions{gap:7px;}
}
@media(prefers-reduced-motion:reduce){body #controlsWrap.fade-in-controls.show{animation:none;}}


/* Next UI: responsive layout + condensed result screen */
.next-ui-app .next-main{min-height:0;}
/* Toolbar is fixed to the viewport; keep scroll room OUTSIDE the result card. */
.next-ui-app .next-layout{padding-bottom:calc(118px + env(safe-area-inset-bottom, 0px));}
.next-ui-app #result .next-result-head{display:none;}
.next-ui-app #result{padding-bottom:0;}
.next-ui-app .next-side,.next-ui-app .next-main{box-sizing:border-box;min-width:0;}
.next-ui-app .next-brandtitle{min-width:0;}
.next-ui-app .next-brand-meta{display:flex;align-items:center;gap:9px;margin-top:4px;min-height:20px;}
.next-ui-app .next-brand-version{margin:0;flex-shrink:0;line-height:1.5;}
.next-ui-app .next-brand-separator{height:12px;width:1px;background:rgba(149,170,214,.3);flex-shrink:0;}
.next-ui-app .next-brand-author{position:static;display:inline-flex;margin:0;padding:2px 5px;line-height:1.2;letter-spacing:0;font-size:11px;font-weight:650;border-radius:7px;color:#95a9d5;background:rgba(105,130,190,.11);text-decoration:none;opacity:.88;flex-shrink:0;}
.next-ui-app .next-brand-author svg{height:12px;width:12px;flex-shrink:0;}
.next-ui-app .next-brand-author:hover{color:#a9daff;opacity:1;}
/* At 200% browser zoom the available CSS viewport is often 800–1000px.
   Use the stacked layout instead of squeezing sidebar and cards into two columns. */
@media(max-width:1100px){
  .app.next-ui-app .next-layout{display:block;padding:15px 16px calc(115px + env(safe-area-inset-bottom,0px));}
  .next-ui-app .next-side{position:relative;top:auto;width:auto;min-height:0;margin:0 0 14px;padding:18px 20px 14px;border-radius:23px;}
  .next-ui-app .next-side h2,.next-ui-app .next-side .next-sub{display:none;}
  .next-ui-app .next-main{width:auto;min-height:0;padding:22px 22px 26px;border-radius:23px;}
  .next-ui-app .next-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:17px;}
  .next-ui-app .next-step{width:100%;min-width:0;flex-direction:column;gap:8px;justify-content:center;text-align:center;padding:10px 5px;}
  .next-ui-app .next-step b{font-size:12px;}
  .next-ui-app .next-step small{display:none;}
  .next-ui-app .next-bottom-side{position:absolute;top:18px;right:20px;margin:0;padding:0;display:block!important;}
  .next-ui-app .next-brand{padding-right:100px;min-height:52px;}
  .next-ui-app .next-bottom-side .next-summary-side,.next-ui-app .next-bottom-side .next-sidenote{display:none!important;}
  .next-ui-app .next-bottom-side .next-quick-actions{display:flex;gap:8px;margin:0;}
  .next-ui-app #btnOpenRadio,.next-ui-app #btnOpenGame{width:39px;height:39px;min-width:39px;flex:0 0 39px;border-radius:12px;}
  .next-ui-app .next-quick-actions button span{display:none;}
  .next-ui-app #step1,.next-ui-app #step2,.next-ui-app #step3{clear:both;}
  .next-ui-app .next-main #stepsContainer{max-width:100%;}
}
@media (min-width:721px) and (max-width:1100px){
  #stepsContainer #routeButtons.next-routes{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(max-width:900px){
  /* Below desktop-zoom width, a result is a single readable column. */
  .next-ui-app #view-alphabetical,.next-ui-app #view-grouped{grid-template-columns:minmax(0,1fr);}
}
@media(max-width:720px){
  .app.next-ui-app .next-layout{padding:12px 12px calc(110px + env(safe-area-inset-bottom,0px));}
  .next-ui-app .next-side{padding:16px 16px 13px;margin-bottom:12px;}
  .next-ui-app .next-main{padding:20px 16px 22px;}
  .next-ui-app .next-bottom-side{top:17px;right:16px;}
  .next-ui-app .next-brand{padding-right:88px;}
  .next-ui-app #btnOpenRadio,.next-ui-app #btnOpenGame{width:35px;height:35px;min-width:35px;flex-basis:35px;}
  .next-ui-app .next-brand-meta{gap:7px;}
  .next-ui-app .next-brand-author{font-size:10px;padding:2px 4px;}
}
@media(max-width:360px){
  .app.next-ui-app .next-layout{padding:9px 9px calc(110px + env(safe-area-inset-bottom,0px));}
  .next-ui-app .next-side{padding:13px 12px 12px;}
  .next-ui-app .next-main{padding:18px 12px 20px;}
  .next-ui-app .next-brand{gap:8px;padding-right:83px;}
  .next-ui-app .next-logo{width:42px;height:42px;flex-basis:42px;}
  .next-ui-app .next-brandtitle{font-size:16px;}
  .next-ui-app .next-brand-version{font-size:10px;}
  .next-ui-app .next-bottom-side{top:16px;right:12px;}
  .next-ui-app #btnOpenRadio,.next-ui-app #btnOpenGame{width:32px;height:32px;min-width:32px;flex-basis:32px;}
  .next-ui-app .next-step{padding:9px 3px;}
}
/* Убираем дублирующий индикатор шагов сверху */
#stepsContainer .step-header-wrap.next-mainhead-wrap {
    display: none !important;
}
/* =========================================
   SMK TOOL — NEXT UI SPLASH
   ========================================= */

#splash {
    background:
        radial-gradient(ellipse at 50% 35%,
            rgba(63, 80, 160, 0.16),
            transparent 65%),
        #070b17;
    min-height: 100dvh;
}

/* Убираем старые тяжёлые эффекты */
#splash .splash-aura,
#splash .splash-particles,
#splash .splash-loader-shimmer {
    display: none;
}

/* Стеклянная карточка */
#splash .splash-container {
    width: min(380px, calc(100vw - 36px));
    padding: 38px 30px 30px;
    gap: 28px;

    background: linear-gradient(
        145deg,
        rgba(30, 42, 68, 0.88),
        rgba(13, 20, 37, 0.94)
    );

    border: 1px solid rgba(134, 154, 218, 0.22);
    border-radius: 28px;

    box-shadow:
        0 24px 75px rgba(0, 0, 0, 0.35),
        inset 0 1px rgba(255, 255, 255, 0.06);

    backdrop-filter: blur(22px);
    -webkit-backdrop-filter: blur(22px);
}

/* Логотип */
#splash .splash-logo {
    width: 100%;
    gap: 15px;
    animation: logoReveal .6s ease forwards;
}

/* Иконка в стиле Next UI */
#splash .logo-icon {
    width: 64px;
    height: 64px;
    flex-shrink: 0;
    padding: 13px;

    border-radius: 20px;
    border: 1px solid rgba(143, 160, 255, 0.5);

    background: linear-gradient(
        145deg,
        rgba(70, 106, 220, 0.28),
        rgba(142, 92, 230, 0.22)
    );

    box-shadow: 0 8px 30px rgba(95, 92, 230, 0.15);
    filter: none;
    animation: none;
}

/* Название */
#splash .logo-text {
    font-size: 27px;
    font-weight: 850;
    letter-spacing: -1px;
    text-shadow: none;
}

#splash .logo-text span {
    font-size: 27px;
    font-weight: 850;
    letter-spacing: -1px;
    text-transform: none;
    margin-left: 6px;
    background: none;
    color: #fff;
    -webkit-text-fill-color: #fff;
    filter: none;
}

/* Полоса загрузки */
#splash .splash-loader-wrap {
    width: 100%;
    height: 5px;
    border-radius: 999px;
    background: rgba(105, 127, 177, 0.18);
    margin-top: 5px;
}

/* Заполнение */
#splash .splash-loader-bar {
    background: linear-gradient(
        90deg,
        #5194ff,
        #8b7bff,
        #b084f5
    );
    border-radius: 999px;
    box-shadow: none;
    transition: width .3s ease;
}

/* Статус загрузки */
#splash .splash-loader-text {
    width: 100%;
    color: #9aaccb;
    font-size: 10px;
    letter-spacing: 1.4px;
    margin-top: -12px;
}

#splash .splash-percent {
    color: #b9a2ff;
    font-size: 12px;
    font-weight: 800;
}

/* Мобильная адаптация */
@media (max-width: 480px) {
    #splash .splash-container {
        padding: 28px 23px 25px;
        border-radius: 24px;
        gap: 24px;
    }

    #splash .logo-icon {
        width: 56px;
        height: 56px;
        padding: 11px;
        border-radius: 17px;
    }

    #splash .logo-text,
    #splash .logo-text span {
        font-size: 23px;
    }

    #splash .splash-loader-text {
        font-size: 9px;
        letter-spacing: 1px;
    }
}

@media (prefers-reduced-motion: reduce) {
    #splash .splash-logo,
    #splash .splash-loader-wrap,
    #splash .splash-loader-text {
        animation: none;
        opacity: 1;
    }

    #splash .splash-loader-bar {
        transition: none;
    }
}

/* =========================================
   SMK TOOL — DYNAMIC SPLASH
   ========================================= */

/* Живой фон */
#splash {
    isolation: isolate;
    background: #070b17;
}

#splash::before {
    content: "";
    position: absolute;
    inset: -30%;
    pointer-events: none;
    z-index: 0;
    background:
        radial-gradient(ellipse at 35% 40%,
            rgba(59,130,246,.17), transparent 45%),
        radial-gradient(ellipse at 70% 65%,
            rgba(168,85,247,.16), transparent 43%);
    animation: splashAtmosphere 9s ease-in-out infinite alternate;
}

/* Появление стеклянной карточки */
#splash .splash-container {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    animation: splashCardEnter .75s
        cubic-bezier(.16,1,.3,1) both;
}

/* Тонкая светящаяся рамка */
#splash .splash-container::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    border: 1px solid rgba(137,161,255,.22);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
    pointer-events: none;
}

/* Движущийся блик по стеклу */
#splash .splash-container::after {
    content: "";
    position: absolute;
    inset: -50%;
    background: linear-gradient(
        110deg,
        transparent 43%,
        rgba(165,183,255,.045) 50%,
        transparent 57%
    );
    transform: translateX(-80%);
    animation: splashGlassSweep 4.5s ease-in-out infinite;
    pointer-events: none;
}

#splash .splash-container > * {
    position: relative;
    z-index: 1;
}

/* Логотип появляется чуть позже карточки */
#splash .splash-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    animation: splashLogoEnter .7s .15s ease-out both;
}

/* Парящая иконка */
#splash .logo-icon {
    position: relative;
    isolation: isolate;
    overflow: visible;
    animation: splashIconFloat 3s ease-in-out infinite;
}

/* Внешнее вращающееся кольцо */
#splash .logo-icon::before {
    content: "";
    position: absolute;
    inset: -8px;
    border: 1.5px solid transparent;
    border-top-color: rgba(111,175,255,.85);
    border-right-color: rgba(167,121,255,.55);
    border-radius: 24px;
    animation: splashOrbit 6s linear infinite;
    pointer-events: none;
}

/* Мягкое пульсирующее свечение */
#splash .logo-icon::after {
    content: "";
    position: absolute;
    inset: -5px;
    border-radius: 24px;
    box-shadow: 0 0 24px rgba(106,108,255,.2);
    animation: splashEnergy 2.7s ease-in-out infinite;
    pointer-events: none;
}

#splash .logo-icon .svg-icon {
    position: relative;
    z-index: 2;
}

/* Название */
#splash .logo-text {
    animation: splashTextGlow 3.5s ease-in-out infinite;
}

/* Прогресс */
#splash .splash-loader-wrap {
    box-shadow: inset 0 1px 2px rgba(0,0,0,.2);
}

#splash .splash-loader-bar {
    position: relative;
    overflow: hidden;
    box-shadow: 0 0 12px rgba(139,109,255,.3);
    transition: width .35s ease-out;
}

/* Динамический блик внутри прогресса */
#splash .splash-loader-bar::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(255,255,255,.65),
        transparent
    );
    transform: translateX(-100%);
    animation: splashProgressSweep 1.6s linear infinite;
}

/* Подсветка процентов */
#splash .splash-percent {
    animation: splashPercentPulse 1.8s ease-in-out infinite;
}

/* =========================================
   ANIMATIONS
   ========================================= */

@keyframes splashCardEnter {
    from {
        opacity: 0;
        transform: translateY(22px) scale(.94);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes splashLogoEnter {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes splashAtmosphere {
    from { transform: translate(-3%,2%) scale(1); }
    to { transform: translate(3%,-3%) scale(1.12); }
}

@keyframes splashGlassSweep {
    0%, 20% { transform: translateX(-80%); }
    65%, 100% { transform: translateX(80%); }
}

@keyframes splashOrbit {
    to { transform: rotate(360deg); }
}

@keyframes splashIconFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-5px); }
}

@keyframes splashEnergy {
    0%, 100% {
        opacity: .4;
        box-shadow: 0 0 12px rgba(106,108,255,.2);
    }
    50% {
        opacity: 1;
        box-shadow: 0 0 28px rgba(106,108,255,.45);
    }
}

@keyframes splashProgressSweep {
    to { transform: translateX(100%); }
}

@keyframes splashTextGlow {
    0%, 100% {
        text-shadow: 0 0 0 transparent;
    }
    50% {
        text-shadow: 0 0 18px rgba(135,163,255,.3);
    }
}

@keyframes splashPercentPulse {
    0%, 100% { opacity: .75; }
    50% { opacity: 1; }
}

/* Экономим ресурсы при отключённых анимациях */
@media (prefers-reduced-motion: reduce) {
    #splash::before,
    #splash .splash-container,
    #splash .splash-container::after,
    #splash .splash-logo,
    #splash .logo-icon,
    #splash .logo-icon::before,
    #splash .logo-icon::after,
    #splash .logo-text,
    #splash .splash-loader-bar::after,
    #splash .splash-percent {
        animation: none !important;
    }

    #splash .splash-container,
    #splash .splash-logo {
        opacity: 1;
        transform: none;
    }
}
/* Выравнивание логотипа по левому краю */
#splash .splash-logo {
    justify-content: flex-start;
    margin: 0;
}
/* Splash: логотип по центру, текст под иконкой */
#splash .splash-logo {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin: 0 auto;
    text-align: center;
}

#splash .logo-text {
    font-size: 18px;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.3px;
    text-align: center;
}

#splash .logo-text span {
    font-size: 18px;
    font-weight: 700;
    margin-left: 7px;
    display: inline;
    color: #b6a5ff;
    -webkit-text-fill-color: #b6a5ff;
}
/* Отступ между иконкой и названием на сплэше */
#splash .splash-logo {
    gap: 22px;
}
/* Фиолетовый акцент названия SMK Tool */
.next-ui-app .next-brandtitle .next-brand-name .next-brand-accent {
    color: #b6a5ff;
    -webkit-text-fill-color: #b6a5ff;
    font-weight: 800;
    text-shadow: 0 0 18px rgba(168, 133, 255, 0.2);
}

/* =========================================
   SMK TOOL — SPLASH COMPLETION
   ========================================= */

/* Импульс логотипа при 100% */
#splash.splash-complete .logo-icon {
    animation: splashFinalIcon .75s ease-out both;
}

/* Яркая вспышка энергетического кольца */
#splash.splash-complete .logo-icon::before {
    animation: splashFinalRing .75s ease-out both;
}

/* Расширяющееся свечение */
#splash.splash-complete .logo-icon::after {
    animation: splashFinalGlow .75s ease-out both;
}

/* Подсветка названия */
#splash.splash-complete .logo-text {
    animation: splashFinalText .75s ease-out both;
}

/* Последняя вспышка прогресса */
#splash.splash-complete .splash-loader-bar {
    box-shadow:
        0 0 12px rgba(110, 160, 255, .7),
        0 0 25px rgba(170, 110, 255, .35);
}

/* Плавный уход заставки */
#splash.splash-exit {
    opacity: 0;
    pointer-events: none;
    transition: opacity .55s ease-in-out;
}

#splash.splash-exit .splash-container {
    animation: splashFinalExit .55s
        cubic-bezier(.4, 0, .2, 1) both;
}

/* =========================================
   KEYFRAMES
   ========================================= */

@keyframes splashFinalIcon {
    0% {
        transform: scale(1);
        filter: brightness(1);
    }
    45% {
        transform: scale(1.15);
        filter: brightness(1.4);
    }
    100% {
        transform: scale(1.05);
        filter: brightness(1.12);
    }
}

@keyframes splashFinalRing {
    0% {
        transform: rotate(0deg) scale(1);
        opacity: 1;
    }
    50% {
        transform: rotate(110deg) scale(1.28);
        opacity: 1;
        border-top-color: #a5c9ff;
        border-right-color: #d8b4fe;
    }
    100% {
        transform: rotate(160deg) scale(1.55);
        opacity: 0;
    }
}

@keyframes splashFinalGlow {
    0% {
        opacity: .5;
        box-shadow: 0 0 20px rgba(120, 110, 255, .3);
    }
    45% {
        opacity: 1;
        box-shadow:
            0 0 45px rgba(92, 155, 255, .8),
            0 0 85px rgba(168, 85, 247, .5);
    }
    100% {
        opacity: 0;
        box-shadow: 0 0 75px rgba(168, 85, 247, .2);
    }
}

@keyframes splashFinalText {
    0% {
        filter: brightness(1);
    }
    50% {
        filter: brightness(1.4);
        text-shadow: 0 0 22px rgba(166, 152, 255, .75);
    }
    100% {
        filter: brightness(1.1);
        text-shadow: 0 0 12px rgba(166, 152, 255, .25);
    }
}

@keyframes splashFinalExit {
    from {
        opacity: 1;
        transform: scale(1);
    }
    to {
        opacity: 0;
        transform: translateY(-12px) scale(1.05);
    }
}

@media (prefers-reduced-motion: reduce) {
    #splash.splash-complete .logo-icon,
    #splash.splash-complete .logo-icon::before,
    #splash.splash-complete .logo-icon::after,
    #splash.splash-complete .logo-text,
    #splash.splash-exit .splash-container {
        animation: none !important;
    }
}
/* ========================================
   SMK TOOL — SMART SEARCH CLEAR
   ======================================== */

/* Плавное появление крестика */
#stepsContainer .next-search .next-clear {
    opacity: 1;
    visibility: visible;

    transition:
        opacity .18s ease,
        visibility .18s ease;
}

/* Пустое поле — крестик скрыт */
#stepsContainer .next-search
#routeSearch:placeholder-shown + .next-clear {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

/* =========================================
   SMK TOOL — ADAPTIVE RESULTS
   ========================================= */

@media (min-width: 1101px) {

    /* Плавно расширяем всё приложение */
    .app.next-ui-app {
        transition: max-width .56s
            cubic-bezier(.22, 1, .36, 1);
    }

    .app.next-ui-app.smk-wide {
        max-width: 1540px;
    }

    /* Анимация сетки основного интерфейса */
    .app.next-ui-app .next-layout {
        transition:
            grid-template-columns .56s cubic-bezier(.22, 1, .36, 1),
            column-gap .56s cubic-bezier(.22, 1, .36, 1),
            max-width .56s cubic-bezier(.22, 1, .36, 1);
    }

    /* Основная панель занимает освободившееся место */
    .app.next-ui-app .next-layout.smk-wide {
        max-width: 1490px;
        grid-template-columns: 0px minmax(0, 1fr);
        column-gap: 0;
    }

    /*
       Сохраняем геометрию боковой панели,
       пока основная область расширяется.
       Это предотвращает дёрганье при прокрутке.
    */
    .app.next-ui-app .next-layout.smk-detached > .next-side {
        position: absolute;
        top: 40px;
        left: 28px;
        width: 292px;
        margin: 0;
    }

    /* Три колонки после расширения */
    .app.next-ui-app .next-layout.smk-three #view-alphabetical,
    .app.next-ui-app .next-layout.smk-three #view-grouped {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 20px;
    }

    .app.next-ui-app .next-layout.smk-three #view-grouped > div:not(.shop-card) {
        grid-column: 1 / -1;
    }

    /* Мягкое появление перестроенных карточек */
    .app.next-ui-app .next-layout.smk-three #view-alphabetical,
    .app.next-ui-app .next-layout.smk-three #view-grouped {
        animation: smkGridExpand .35s ease both;
    }
}

@media (prefers-reduced-motion: reduce) {
    .app.next-ui-app,
    .app.next-ui-app .next-layout,
    .app.next-ui-app .next-layout.smk-three #view-alphabetical,
    .app.next-ui-app .next-layout.smk-three #view-grouped {
        transition: none !important;
        animation: none !important;
    }
}

/* =========================================
   SMK TOOL — ADAPTIVE LAYOUT FIX
   ========================================= */

@media (min-width: 1101px) {

    /* Результаты всегда занимают вторую колонку */
    .app.next-ui-app
    .next-layout.smk-wide > .next-main {
        grid-column: 2 / 3;
        grid-row: 1;

        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    /* Три колонки карточек при расширении */
    .app.next-ui-app
    .next-layout.smk-three #view-alphabetical,
    .app.next-ui-app
    .next-layout.smk-three #view-grouped {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 18px;
    }
}

/* =========================================
   SMK TOOL — SMOOTH ADAPTIVE LAYOUT
   ========================================= */

@media (min-width: 1101px) {

    /* Главная панель ВСЕГДА во второй колонке */
    .app.next-ui-app .next-layout > .next-main {
        grid-column: 2;
        grid-row: 1;
        min-width: 0;
        width: 100%;
    }

    /* Более естественная скорость перехода */
    .app.next-ui-app,
    .app.next-ui-app .next-layout {
        transition-duration: .42s;
        transition-timing-function:
            cubic-bezier(.22, 1, .36, 1);
    }

    /* Убираем старое появление карточек */
    .app.next-ui-app
    .next-layout.smk-three #view-alphabetical,

    .app.next-ui-app
    .next-layout.smk-three #view-grouped {
        animation: none !important;
    }
}

/* =========================================
   SMK TOOL — ADAPTIVE RESULTS 2.0
   ========================================= */

@media (min-width: 1101px) {

    /* Геометрию переключает View Transitions */
    .app.next-ui-app,
    .app.next-ui-app .next-layout {
        transition: none !important;
    }

    /* Расширенный контейнер приложения */
    .app.next-ui-app.smk-wide {
        max-width: 1540px;
    }

    /* Освобождаем место боковой панели */
    .app.next-ui-app .next-layout.smk-wide {
        max-width: 1490px;
        grid-template-columns: 0px minmax(0, 1fr);
        column-gap: 0;
    }

    /* Основная панель всегда во второй колонке */
    .app.next-ui-app .next-layout > .next-main {
        grid-column: 2;
        grid-row: 1;
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    /* Боковая панель сохраняет исходное положение */
    .app.next-ui-app
    .next-layout.smk-detached > .next-side {
        position: absolute;
        top: 40px;
        left: 28px;
        width: 292px;
        margin: 0;
    }

    /* Три колонки результатов */
    .app.next-ui-app
    .next-layout.smk-three #view-alphabetical,
    .app.next-ui-app
    .next-layout.smk-three #view-grouped {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 18px;
        animation: none !important;
    }

    .app.next-ui-app
    .next-layout.smk-three
    #view-grouped > div:not(.shop-card) {
        grid-column: 1 / -1;
    }
}


/* =========================================
   SMK TOOL — OPTIMIZED TRANSITIONS
   ========================================= */

/* Плавное перемещение карточек */
::view-transition-group(*) {
    animation-duration: 320ms;
    animation-timing-function:
        cubic-bezier(.25, .8, .25, 1);
}

/* Основная страница переключается быстрее */
::view-transition-old(root),
::view-transition-new(root) {
    animation-duration: 150ms;
    animation-timing-function: ease-out;
}

/* Уменьшаем нагрузку для пользователей
   с отключёнными анимациями */
@media (prefers-reduced-motion: reduce) {
    ::view-transition-group(*),
    ::view-transition-old(root),
    ::view-transition-new(root) {
        animation-duration: 0.01ms !important;
    }
}



/* SMK Core shortcuts: name (5 taps) -> Admin; version (1 tap) -> Diagnostics. */
.next-ui-app .next-brand-name{display:inline-block;cursor:pointer;touch-action:manipulation;user-select:none;-webkit-user-select:none;}
.next-ui-app .next-brand-name:focus-visible{outline:2px solid #ad9cf6;outline-offset:3px;border-radius:4px;}
.next-ui-app button.next-brand-version{appearance:none;-webkit-appearance:none;border:0;background:none;padding:0;text-align:left;font-family:inherit;line-height:1.5;}
/* Номер версии без оформления кнопки */
.next-ui-app .next-brand-version {
    display: inline-block;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;

    width: auto;
    height: auto;

    color: #a4b6d5;
    font-size: 11px;
    font-weight: 760;
    letter-spacing: 1.5px;
    line-height: 1.5;

    cursor: pointer;
}
/* Плавный hover кнопки «Отправить» */
#bug-modal #send-bug {
    background: linear-gradient(100deg, #3864bb9e, #6555bc9e);
    filter: brightness(1);
    transition:
        filter 0.35s ease,
        border-color 0.35s ease,
        box-shadow 0.35s ease;
}

#bug-modal #send-bug:hover {
    background: linear-gradient(100deg, #3864bb9e, #6555bc9e);
    filter: brightness(1.25);
    border-color: rgba(170, 185, 255, 0.7);
    box-shadow: 0 4px 18px rgba(118, 99, 220, 0.22);
}

#bug-modal #send-bug:active {
    filter: brightness(1.1);
}