*{box-sizing:border-box}body{margin:0;background:#f3f7fa;color:#101820;font:15px/1.45 Inter,system-ui,Arial}.shell{display:flex;min-height:100vh}.sidebar{width:272px;flex:0 0 272px;position:sticky;top:0;height:100vh;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#2a7656 #003526;padding:22px 14px 15px;color:#fff;background:linear-gradient(160deg,#002c22,#00432e 60%,#001e18);display:flex;flex-direction:column}.brand{display:block;text-align:center;color:#fff;font-size:39px;font-weight:900;letter-spacing:-2px}.brand span{display:inline-block;color:#003d28;background:linear-gradient(135deg,#b3ffc3,#13d45e);border-radius:11px;padding:0 8px;margin-left:3px}.brand-sub{text-align:center;color:#d5e9df;}.rating-mark{text-align:center;padding:9px 0 17px;border-bottom:1px solid #ffffff24;margin-bottom:14px}.stars{font-size:22px;letter-spacing:3px;color:#ffd33d}.rating-mark small{display:block;color:#bcd2c7}.rating-mark b{font-size:27px}.sidebar nav{display:grid;gap:5px;flex:0 0 auto}.side-foot{flex:0 0 auto}.sidebar nav a{display:flex;align-items:center;gap:14px;padding:12px 13px;border-radius:12px;color:#e3eee8;font-weight:650}.sidebar nav a i{width:24px;text-align:center;font-style:normal;font-size:23px}.sidebar nav a.active,.sidebar nav a:hover{background:linear-gradient(100deg,#12c35b,#078c48);color:#fff;box-shadow:0 6px 16px #00a84a35}.side-foot{margin-top:auto}.org,.profile{display:flex;align-items:center;gap:10px;padding:13px 8px;border-top:1px solid #ffffff24}.org>span,.profile>span{width:39px;height:39px;border-radius:50%;display:grid;place-items:center;background:#07864b;font-size:21px}.profile>span{background:#e5ecef;color:#657a82}.org b,.profile b{display:block}.org small,.profile small{display:block;color:#bfd2c9;font-size:12px}.profile a{margin-left:auto;color:white}main{min-width:0;flex:1;padding:25px 27px 38px}.head{display:flex;align-items:center;justify-content:space-between;margin-bottom:21px}.head small{color:#627688}.head h1{font-size:30px;letter-spacing:-.8px;margin:0;font-weight:850}.head p{margin:1px 0;color:#506477}.mobile{display:none}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:17px}.metric{background:#fff;border:1px solid #e1e9ee;border-radius:17px;padding:17px;display:flex;align-items:center;gap:13px;box-shadow:0 5px 15px #1c35420a}.bubble{width:58px;height:58px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;font-size:26px;background:#e7f9ed;color:#0da64a}.bubble.y{background:#fff5ce;color:#d9a400}.bubble.r{background:#ffeded;color:#e23a3a}.bubble.n{background:#edf2f5;color:#435a68}.metric strong{display:block;font-size:29px;line-height:1.1}.metric span{display:block;color:#526578}.metric em{font-style:normal;font-weight:800;color:#0a9f45}.metric em.y{color:#d99e00}.metric em.r{color:#e23a3a}.analytics{display:grid;grid-template-columns:1.45fr 1fr;gap:16px;margin-bottom:17px}.panel{background:#fff;border:1px solid #e0e8ed;border-radius:17px;padding:18px;box-shadow:0 5px 15px #1c35420a;min-width:0}.ptitle{font-size:18px;font-weight:800;margin:0 0 14px}.ptitle i{font-style:normal;color:#0b9c48;margin-right:8px;font-size:22px}.chart{height:240px}.donut-wrap{min-height:240px;display:flex;align-items:center;justify-content:space-around;gap:12px}.donut{width:178px;height:178px;border-radius:50%;display:grid;place-items:center;position:relative;flex:0 0 auto}.donut:before{content:"";position:absolute;inset:15px;background:#fff;border-radius:50%}.donut div{position:relative;text-align:center}.donut b{display:block;font-size:27px}.donut small{color:#637586}.legend{display:grid;gap:13px;min-width:130px}.legend span{display:flex;align-items:center;gap:8px;white-space:nowrap}.legend b{margin-left:auto}.dot{width:11px;height:11px;border-radius:50%;display:inline-block}.lower{display:grid;grid-template-columns:1.05fr 1.05fr 1.12fr 1fr;gap:14px}.row{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid #edf1f3;font-size:13px}.row:last-child{border:0}.round{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#eaf9ef;color:#0b9d47;flex:0 0 auto}.time{margin-left:auto;color:#65798b;white-space:nowrap}.link{display:flex;justify-content:center;align-items:center;padding:10px;margin-top:10px;border:1px solid #d9e4e9;border-radius:10px;color:#087f3e;font-weight:750}.muted{color:#71818d}.tablebox{overflow:auto}table{border-collapse:collapse;width:100%;min-width:620px}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid #e9eef1}th{font-size:12px;color:#71818d}td{font-size:14px}.formpanel{margin-bottom:16px}.formgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:end}.field label{display:block;font-size:13px;font-weight:700;margin:0 0 6px;color:#536779}.field input,.field select{width:100%;padding:11px 12px;border:1px solid #dbe4e9;border-radius:10px;background:#fff;font:inherit}.btn{display:inline-flex;justify-content:center;align-items:center;padding:10px 15px;border:0;border-radius:10px;background:linear-gradient(100deg,#13bd5b,#078b48);color:#fff;font-weight:750;cursor:pointer}.btn.alt{background:#edf4f0;color:#17623b}.btn.red{background:#fff0ef;color:#b93b32}.btn.sm{padding:7px 10px;font-size:12px}.actions{display:flex;gap:6px;flex-wrap:wrap}.status{display:inline-flex;align-items:center;gap:6px;border-radius:20px;padding:5px 9px;background:#eaf9ef;color:#087e3c;font-size:12px;font-weight:750;white-space:nowrap}.status:before{content:"";width:7px;height:7px;border-radius:50%;background:#13b956}.status.off{background:#edf1f4;color:#687a85}.status.off:before{background:#9aa8b1}.status.warn{background:#fff5d9;color:#a77a00}.status.warn:before{background:#e8ad00}.notice{background:#effbf3;border:1px solid #bde8c9;padding:13px;border-radius:11px;margin-bottom:15px}.token{font-family:monospace;word-break:break-all;padding:10px;background:#f5f8f9;border-radius:8px}.filters{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-bottom:15px}.filters .field{min-width:150px}.alert{background:#fff0ef;color:#a93630;padding:12px;border-radius:9px;margin-bottom:14px}.store-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.store-kpis div{padding:14px;border-bottom:1px solid #e4ebef}.store-kpis b{display:block;font-size:25px}.login{min-height:100vh;display:grid;place-items:center;background:#f1f7f4}.loginbox{width:min(420px,calc(100% - 28px));background:#fff;padding:32px;border:1px solid #e0e9ed;border-radius:20px;box-shadow:0 18px 50px #173b2b18}.loginbox h1{text-align:center}.loginbox .brand{color:#111}.loginbox .field{margin:13px 0}.loginbox .btn{width:100%}@media(max-width:1180px){.metrics{grid-template-columns:repeat(2,1fr)}.lower{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.sidebar{position:fixed;z-index:100;left:-285px;top:0;bottom:0;transition:left .2s;height:100dvh;max-height:100dvh;overflow-y:auto}.open .sidebar{left:0}main{padding:16px 12px}.head h1{font-size:23px}.mobile{display:block;border:1px solid #dce6ea;background:white;border-radius:9px;padding:8px 11px}.analytics{grid-template-columns:1fr}.lower{grid-template-columns:1fr}.metrics{gap:8px}.metric{padding:11px;gap:8px}.bubble{width:42px;height:42px;font-size:19px}.metric strong{font-size:21px}.metric span{font-size:11px}.metric em{font-size:13px}.panel{padding:14px}.donut-wrap{flex-wrap:wrap}.formgrid,.store-kpis{grid-template-columns:1fr}}
/* Vote R finishing pass */
html{scroll-behavior:smooth}body{min-width:320px}.sidebar{isolation:isolate}.sidebar nav a{min-height:48px;text-decoration:none;white-space:nowrap}.sidebar nav a:focus-visible,.btn:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid #9cf2b9;outline-offset:2px}.side-foot{/*background:linear-gradient(180deg,transparent,#00251d 28%)*/}main{overflow-x:hidden}a{color:#087f43;text-decoration:none}a:hover{color:#045d30}.panel a:not(.btn):not(.link){font-weight:650}.panel a:not(.btn):not(.link):hover{text-decoration:underline}button,.btn{font-family:inherit;text-decoration:none;transition:filter .15s ease,transform .15s ease,box-shadow .15s ease}button:hover,.btn:hover{filter:brightness(.97);box-shadow:0 4px 12px #087c3a1c}button:active,.btn:active{transform:translateY(1px)}.btn.alt:hover{background:#e2f1e8;color:#075b31}.btn.red:hover{background:#ffe4e1;color:#982d27}input,select,textarea{color:#14232b;font:inherit}input::placeholder{color:#9aa7af}input:focus,select:focus,textarea:focus{outline:0;border-color:#14b85a!important;box-shadow:0 0 0 3px #14b85a1c}.field{min-width:0}.field input,.field select{min-width:0}.formgrid{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))}.formpanel .btn,.filters .btn{min-height:42px}.tablebox{max-width:100%;border-radius:10px}table{font-variant-numeric:tabular-nums}tbody tr:hover{background:#f7fbf8}th{white-space:nowrap}td form{margin:0}td .btn{white-space:nowrap}.status{white-space:nowrap}.notice a{font-weight:750;text-decoration:underline}.ptitle{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.empty-state{padding:28px;text-align:center;color:#778791}.loginbox .brand{display:block;color:#101820;text-align:center}.loginbox .brand span{color:#003d28}.loginbox .btn{min-height:45px}.loginbox .field input{width:100%;min-height:44px}.side-foot .org,.side-foot .profile{min-width:0}.side-foot .org div,.side-foot .profile div{min-width:0;overflow-wrap:anywhere}@media(max-height:720px) and (min-width:761px){.sidebar{padding-top:14px;padding-bottom:10px}.brand{font-size:34px}.brand-sub{margin:2px 0 7px}.rating-mark{padding:5px 0 9px;margin-bottom:8px}.stars{font-size:18px}.rating-mark b{font-size:23px}.sidebar nav{gap:2px}.sidebar nav a{min-height:41px;padding:8px 12px}.sidebar nav a i{font-size:20px}.org,.profile{padding:9px 7px}}@media(max-width:760px){.sidebar{box-shadow:12px 0 35px #001e1840}body.open:after{content:"";position:fixed;inset:0;background:#071d1680;z-index:90}.sidebar nav a{min-height:48px}main{width:100%;min-width:0}.formgrid{grid-template-columns:1fr}.tablebox{overflow-x:auto;-webkit-overflow-scrolling:touch}}

/* User management: password editor */
.user-actions{display:flex;align-items:flex-start;gap:7px;flex-wrap:wrap;min-width:210px}
.password-editor{position:relative;min-width:150px}
.password-editor summary{display:inline-flex;align-items:center;cursor:pointer;list-style:none}
.password-editor summary::-webkit-details-marker{display:none}
.password-form{display:grid;gap:8px;min-width:230px;margin-top:9px;padding:13px;background:#f7fbf8;border:1px solid #dce9e1;border-radius:12px}
.password-form label{font-size:12px;font-weight:700;color:#52645a}
.password-form input{width:100%;min-width:0;min-height:38px;padding:8px 10px;border:1px solid #d7e2dc;border-radius:8px;background:#fff}
.password-form .btn{justify-content:center}
@media(max-width:760px){.user-actions{min-width:0}.password-form{min-width:min(260px,75vw)}}

/* Device activation details */
.device-created{border-color:#b9e8ca;background:#fbfffc}
.device-credentials{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin:16px 0}
.device-credentials>div{min-width:0;padding:13px;border:1px solid #dce9e1;border-radius:10px;background:#fff}
.device-credentials span{display:block;color:#64756b;font-size:12px;font-weight:700;margin-bottom:6px}
.device-credentials strong{overflow-wrap:anywhere}
.device-credentials code{display:block;overflow-wrap:anywhere;font-size:13px;color:#075b31}
.device-url{grid-column:1/-1}
.device-url input{width:100%;min-width:0;padding:10px;border:1px solid #d7e2dc;border-radius:8px;background:#f8fbf9}
.device-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}
@media(max-width:650px){.device-credentials{grid-template-columns:1fr}.device-url{grid-column:auto}}


/* Mobile responsive refinement — Vote R */
@media (max-width: 760px) {
  html, body { width:100%; max-width:100%; overflow-x:hidden; }
  .shell { display:block; width:100%; min-height:100vh; }
  main { width:100%; max-width:100%; padding:14px 12px 28px; }
  .head { gap:10px; align-items:flex-start; }
  .head h1 { font-size:23px; line-height:1.2; overflow-wrap:anywhere; }
  .head p { font-size:13px; }
  .metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
  .metric { min-width:0; padding:12px 10px; border-radius:14px; }
  .metric > div:last-child { min-width:0; }
  .metric strong { font-size:clamp(18px,5vw,23px); }
  .metric span { line-height:1.25; }
  .analytics, .lower { grid-template-columns:minmax(0,1fr); gap:12px; }
  .panel { min-width:0; padding:14px; border-radius:15px; }
  .ptitle { font-size:16px; line-height:1.3; }
  .chart { height:210px; }
  .donut-wrap { min-height:0; padding:8px 0; justify-content:center; }
  .donut { width:150px; height:150px; }
  .legend { min-width:0; width:100%; max-width:250px; }
  .filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
  .filters .field { min-width:0; }
  .filters .btn { grid-column:1/-1; width:100%; }
  .formgrid { grid-template-columns:minmax(0,1fr); }
  .formgrid .btn { width:100%; min-height:46px; }
  .device-credentials { grid-template-columns:minmax(0,1fr); }
  .device-url { grid-column:auto; }
  .device-actions { display:grid; grid-template-columns:1fr; }
  .device-actions .btn { width:100%; min-height:42px; }
  .device-created { padding:14px; }
  .device-created .ptitle { display:block; }
  .tablebox.devices-tablebox { overflow:visible; }
  .devices-table, .devices-table tbody { display:block; width:100%; min-width:0; }
  .devices-table thead { display:none; }
  .devices-table tbody { display:grid; gap:11px; }
  .devices-table tbody tr {
    display:block;
    min-width:0;
    padding:12px 13px;
    border:1px solid #e1eae5;
    border-radius:14px;
    background:#fff;
    box-shadow:0 4px 14px rgba(16,40,28,.055);
  }
  .devices-table tbody tr:hover { background:#fff; }
  .devices-table td {
    display:grid;
    grid-template-columns:minmax(105px, .8fr) minmax(0,1.2fr);
    align-items:start;
    gap:10px;
    width:100%;
    min-width:0;
    padding:8px 0;
    border-bottom:1px solid #edf2ef;
    font-size:13px;
    overflow-wrap:anywhere;
  }
  .devices-table td:last-child { border-bottom:0; }
  .devices-table td::before {
    content:attr(data-label);
    color:#73847b;
    font-size:11px;
    line-height:1.4;
    font-weight:750;
    text-transform:uppercase;
    letter-spacing:.035em;
  }
  .devices-table td[data-label="Планшет"] b { font-size:15px; }
  .devices-table td[data-label="Планшет"] small { display:inline-block; margin-top:3px; color:#71818d; }
  .devices-table .device-actions-cell { display:block; padding-top:11px; }
  .devices-table .device-actions-cell::before { display:block; margin-bottom:8px; }
  .devices-table .device-link-actions { width:100%; }
  .devices-table .device-link-actions .btn { width:100%; min-height:42px; white-space:normal; line-height:1.3; }
  .status { justify-self:start; }
  .tablebox:not(.devices-tablebox) { overflow-x:auto; }
}
@media (max-width: 380px) {
  main { padding-left:9px; padding-right:9px; }
  .metrics { grid-template-columns:1fr; }
  .devices-table td { grid-template-columns:94px minmax(0,1fr); gap:7px; }
  .metric { padding:11px; }
  .bubble { width:38px; height:38px; }
}
@media (min-width: 761px) and (max-width: 1050px) {
  main { padding:20px 18px 30px; }
  .analytics { grid-template-columns:minmax(0,1fr); }
  .lower { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .devices-tablebox { overflow-x:auto; }
}


/* Shops page — responsive cards on phones */
.shop-success {
  background:#effbf3;
  border:1px solid #bde8c9;
  color:#17623b;
}
.shops-tablebox { max-width:100%; }
.shops-table { width:100%; }
.shop-name-cell a {
  color:#123c2b;
  font-weight:800;
  text-decoration:none;
}
.shop-name-cell a:hover { color:#078b48; }
.shop-name-cell small {
  display:inline-block;
  margin-top:4px;
  overflow-wrap:anywhere;
}
.shop-number { font-size:15px; font-variant-numeric:tabular-nums; }
.shop-rating { color:#078b48; font-size:15px; }
.shop-action-cell form { margin:0; }
.shop-action-cell .btn { min-height:36px; }

@media (max-width:760px) {
  .shops-tablebox { overflow:visible; }
  .shops-table, .shops-table tbody { display:block; width:100%; min-width:0; }
  .shops-table thead { display:none; }
  .shops-table tbody { display:grid; gap:11px; }
  .shops-table tbody tr {
    display:block;
    min-width:0;
    padding:12px 13px;
    border:1px solid #e1eae5;
    border-radius:14px;
    background:#fff;
    box-shadow:0 4px 14px rgba(16,40,28,.055);
  }
  .shops-table tbody tr:hover { background:#fff; }
  .shops-table td {
    display:grid;
    grid-template-columns:minmax(105px,.8fr) minmax(0,1.2fr);
    align-items:center;
    gap:10px;
    width:100%;
    min-width:0;
    padding:8px 0;
    border-bottom:1px solid #edf2ef;
    font-size:13px;
    overflow-wrap:anywhere;
  }
  .shops-table td::before {
    content:attr(data-label);
    color:#73847b;
    font-size:11px;
    line-height:1.4;
    font-weight:750;
    text-transform:uppercase;
    letter-spacing:.035em;
  }
  .shops-table .shop-name-cell {
    align-items:start;
  }
  .shops-table .shop-name-cell a { font-size:15px; }
  .shops-table .shop-name-cell small { font-size:12px; }
  .shops-table .shop-action-cell {
    display:block;
    padding-top:11px;
    border-bottom:0;
  }
  .shops-table .shop-action-cell::before {
    display:block;
    margin-bottom:8px;
  }
  .shops-table .shop-action-cell form,
  .shops-table .shop-action-cell .btn {
    width:100%;
  }
  .shops-table .shop-action-cell .btn {
    min-height:43px;
    white-space:normal;
  }
  .shops-table .status { justify-self:start; }
}
@media (max-width:380px) {
  .shops-table td {
    grid-template-columns:94px minmax(0,1fr);
    gap:7px;
  }
}

tr.vote-bad {
    background: #fff1f2 !important;
}

tr.vote-bad td {
    border-bottom: 1px solid #fecaca;
}

tr.vote-bad:hover {
    background: #ffe4e6 !important;
}

/* RateGo logo — original selected right-hand concept, artwork kept unchanged */
.sidebar .brand{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  
  border-radius:14px;
  line-height:0;
  letter-spacing:normal;
}
.sidebar .brand img{
  display:block;
  width:min(100%,205px);
  height:auto;
  object-fit:contain;
}
.loginbox .brand.login-brand{
  display:flex;
  justify-content:center;
  align-items:center;
  width:100%;
  margin:0 auto 14px;
  padding:0;
  background:transparent;
  line-height:0;
}
.loginbox .brand.login-brand img{
  display:block;
  width:min(100%,220px);
  height:auto;
  object-fit:contain;
}


/* RateGo brand artwork: balanced sizing on phones and compact screens */
@media (max-width:760px) {
  .sidebar .brand {
    max-width: 188px;
    margin: 0 auto 8px;
    padding: 4px;
    border-radius: 12px;
  }
  .sidebar .brand img {
    width: 100%;
    max-width: 180px;
    max-height: 138px;
    object-fit: contain;
  }
  .sidebar .brand-sub { display:none; }
  .loginbox .brand.login-brand { max-width: 205px; margin-bottom: 10px; }
  .loginbox .brand.login-brand img { width:100%; max-width:195px; max-height:155px; object-fit:contain; }
}
@media (max-width:380px) {
  .sidebar .brand { max-width:164px; }
  .sidebar .brand img { max-height:122px; }
  .loginbox .brand.login-brand { max-width:180px; }
  .loginbox .brand.login-brand img { max-width:170px; max-height:138px; }
}
