:root{
  --ink:#141b26;
  --ink-2:#273449;
  --paper:#f3f6fa;
  --surface:#ffffff;
  --line:#dce4ee;
  --muted:#68778d;
  --blue:#2567a6;
  --blue-soft:#e9f2fb;
  --gold:#8a294b;
  --gold-soft:#f7eaf0;
  --green:#147d72;
  --green-soft:#e3f3f0;
  --warning:#976b00;
  --warning-bar:#e0ad25;
  --warning-soft:#fff2bd;
  --red:#b54158;
  --red-soft:#fae9ed;
  --shadow:0 18px 52px rgba(21,38,61,.10);
}

body{background:linear-gradient(180deg,#f7f9fc 0,#f1f5f9 100%)}

.login-shell{
  min-height:100vh;
  padding:32px;
  background:
    radial-gradient(circle at 9% 8%,rgba(82,142,198,.28),transparent 30%),
    radial-gradient(circle at 88% 88%,rgba(138,41,75,.22),transparent 32%),
    linear-gradient(145deg,#0d1724 0%,#172a41 55%,#102234 100%);
}
.login-frame{
  width:min(1120px,100%);
  min-height:min(720px,calc(100vh - 64px));
  display:grid;
  grid-template-columns:minmax(0,1.18fr) minmax(390px,.82fr);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.22);
  border-radius:32px;
  background:#fff;
  box-shadow:0 36px 110px rgba(2,10,22,.42);
}
.login-showcase{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  min-height:620px;
  padding:52px;
  color:#fff;
  background:
    radial-gradient(circle at 76% 23%,rgba(111,173,225,.43),transparent 29%),
    linear-gradient(150deg,#173b61 0%,#245f96 48%,#17283d 100%);
}
.login-showcase::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  opacity:.18;
  background-image:linear-gradient(rgba(255,255,255,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.16) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:linear-gradient(to bottom right,#000,transparent 78%);
}
.login-showcase::after{
  content:"";
  position:absolute;
  width:310px;
  height:310px;
  right:-110px;
  bottom:-120px;
  z-index:-1;
  border-radius:50%;
  background:#8a294b;
  box-shadow:0 0 110px rgba(138,41,75,.65);
}
.brand--showcase{font-size:1.28rem;color:#fff}
.brand--showcase .brand-mark{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.32);backdrop-filter:blur(10px)}
.login-story{position:relative;z-index:2;max-width:510px;margin:auto 0 0;padding-bottom:34px}
.login-kicker{margin:0 0 16px;color:#bcd8f0;font-size:.78rem;font-weight:800;letter-spacing:.17em;text-transform:uppercase}
.login-story h2{max-width:480px;margin:0;font-size:clamp(2.6rem,5vw,4.45rem);line-height:.98;letter-spacing:-.055em}
.login-story p:last-child{max-width:460px;margin:26px 0 0;color:#d8e6f3;font-size:1.02rem;line-height:1.7}
.login-footnote{position:relative;z-index:2;display:flex;gap:10px;align-items:center;color:#b9cee1;font-size:.78rem}
.login-footnote::before{content:"";width:32px;height:1px;background:#b9cee1}
.optic-scene{position:absolute;inset:80px 24px auto auto;width:330px;height:330px;opacity:.94}
.optic-lens{position:absolute;inset:38px;border:1px solid rgba(255,255,255,.66);border-radius:50%;background:radial-gradient(circle at 36% 32%,rgba(255,255,255,.50),rgba(90,164,221,.12) 35%,rgba(7,25,43,.2) 67%,rgba(255,255,255,.08));box-shadow:inset 0 0 38px rgba(255,255,255,.25),0 30px 60px rgba(3,18,31,.28)}
.optic-lens::before{content:"";position:absolute;inset:28px;border:1px solid rgba(255,255,255,.28);border-radius:50%}
.optic-lens::after{content:"";position:absolute;width:86px;height:18px;right:5px;bottom:42px;border-radius:100%;background:rgba(255,255,255,.55);filter:blur(9px);transform:rotate(-34deg)}
.optic-orbit{position:absolute;inset:5px;border:1px solid rgba(255,255,255,.20);border-radius:50%;transform:rotate(-18deg)}
.optic-orbit::before,.optic-orbit::after{content:"";position:absolute;border-radius:50%;background:#fff;box-shadow:0 0 22px rgba(255,255,255,.9)}
.optic-orbit::before{width:9px;height:9px;left:36px;top:54px}
.optic-orbit::after{width:6px;height:6px;right:18px;bottom:92px;background:#d8a6b8}

.login-card{
  width:auto;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:64px 58px;
  border-radius:0;
  box-shadow:none;
  background:#fff;
}
.brand--login{display:none}
.login-card .eyebrow{color:#7d3150}
.login-card h1{margin:.45rem 0 .65rem;font-size:2.35rem;letter-spacing:-.04em}
.login-copy{margin-bottom:34px}
.login-form{gap:20px}
.login-form label{color:#344156}
.login-form input{min-height:52px;border-color:#d8e1ec;background:#fbfcfe}
.login-form input:hover{border-color:#adc1d5}
.login-form input:focus{border-color:#2567a6;box-shadow:0 0 0 4px rgba(37,103,166,.12);background:#fff}
.login-form .button{min-height:52px;margin-top:6px}

.brand-mark{background:#2d6da7;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
.sidebar{background:linear-gradient(180deg,#121a26 0%,#1b2a3d 100%)}
.sidebar-caption{color:#879bb5}
.nav-item span{color:#8bb9df}
.nav-item:hover,.nav-item.is-active{background:#233750}
.nav-item.is-active{box-shadow:inset 3px 0 #8a294b}
.eyebrow{color:#2a659d}
.button--primary{background:linear-gradient(135deg,#2b6fab,#205b92);box-shadow:0 7px 18px rgba(37,103,166,.2)}
.button--primary:hover{background:linear-gradient(135deg,#337ab8,#24649e)}
.button--secondary{background:#263549}
.button--secondary:hover{background:#32445b}
.button--ghost{background:#edf2f7}
.data-banner{border-color:#ccdfef;background:#eef6fc;color:#385d7a}
.summary-card--accent{background:linear-gradient(145deg,#17283d,#244f78);border-color:#244f78}
.delta{background:var(--green-soft);color:var(--green)}
.delta.is-low{background:var(--red-soft);color:var(--red)}
.panel--dark{background:linear-gradient(145deg,#142033,#21374f);border-color:#21374f}
.funnel-step{background:rgba(255,255,255,.055);border-left-color:#9fbdd8}
.segmented button.is-active{border-color:#235f96;background:#235f96}
.bar span{background:linear-gradient(90deg,#245f96,#4d86b7)}
.bar span.is-low{background:linear-gradient(90deg,#8a294b,#b24b6c)}
.data-table tr.money-row td:first-child{border-left-color:#8a294b}
.inline-plan-button{display:inline-grid;justify-items:end;gap:3px;min-width:92px;padding:6px 8px;border:1px dashed #9eb6ca;border-radius:8px;background:#f1f7fb;color:var(--blue);text-align:right}
.inline-plan-button:hover{border-style:solid;background:#e6f1f8}
.inline-plan-button strong{font-size:.86rem}
.inline-plan-button small{font-size:.65rem;font-weight:700;color:#70849a}
.inline-plan-form{display:flex;align-items:center;justify-content:flex-end;gap:5px}
.inline-plan-form input{width:118px;padding:8px 9px;border:1px solid var(--blue);border-radius:7px;background:#fff;outline:none;text-align:right;font-weight:750}
.inline-plan-form input:focus{box-shadow:0 0 0 3px rgba(37,103,166,.12)}
.inline-plan-form button{width:30px;height:32px;padding:0;border:0;border-radius:7px;background:var(--blue);color:#fff;font-weight:850}
.inline-plan-form button[data-plan-cancel]{background:#e9eef4;color:#53657a}
.access-intro{max-width:700px;margin:0;line-height:1.6}
.access-table{min-width:920px}
.access-table th:last-child,.access-table td:last-child{text-align:right}
.access-status{display:inline-flex;padding:5px 9px;border-radius:99px;font-size:.72rem;font-weight:800}
.access-status.is-active{background:var(--green-soft);color:var(--green)}
.access-status.is-disabled{background:#edf1f5;color:var(--muted)}
.access-actions{display:flex;justify-content:flex-end;gap:12px}
.text-action{padding:4px 0;border:0;background:transparent;color:var(--blue);font-size:.78rem;font-weight:750}
.text-action.is-danger{color:var(--red)}
.access-dialog{padding:0;border:0;border-radius:18px;width:min(600px,94vw);box-shadow:0 30px 90px rgba(0,0,0,.3)}
.access-dialog::backdrop{background:rgba(10,20,34,.62)}
.access-form-fields{display:grid;gap:17px;padding:24px 28px}
.access-form-fields label,.credentials-card label{display:grid;gap:7px;color:#344156;font-size:.82rem;font-weight:750}
.access-form-fields input,.access-form-fields select{min-height:46px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fff}
.access-form-fields input:focus,.access-form-fields select:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,103,166,.12)}
.credentials-card{display:grid;gap:17px;padding:24px 28px}
.credentials-card code{padding:12px;border:1px solid #cfe0ef;border-radius:9px;background:#f1f7fb;color:var(--ink);font-size:.93rem;overflow-wrap:anywhere;user-select:all}
.plan-table input{border-color:#abc4dc;background:#edf5fb}
.plan-table input:focus{outline:2px solid #3577ad;background:#fff}
.status-pill--warning{background:#f3e8ee;color:#7c2948}
.pulse{background:var(--green);box-shadow:0 0 0 4px rgba(20,125,114,.13)}

.brand-mark--optic{
  position:relative;
  display:block;
  flex:0 0 38px;
  width:38px;
  height:29px;
  border:0;
  border-radius:0;
  background:transparent;
  color:#4d8fc4;
  box-shadow:none;
  transform:rotate(-13deg);
}
.brand-mark--optic::before,.brand-mark--optic::after{
  content:"";
  position:absolute;
  border:2px solid currentColor;
  border-radius:50%;
}
.brand-mark--optic::before{inset:5px 2px;transform:rotate(-18deg)}
.brand-mark--optic::after{inset:7px -1px;border-width:1.5px;opacity:.72;transform:rotate(38deg)}
.brand-mark--optic i{position:absolute;left:17px;top:12px;width:5px;height:5px;border-radius:50%;background:currentColor;box-shadow:-9px 0 0 currentColor,9px 0 0 currentColor}
.sidebar .brand-mark--optic{color:#9ec4e3}
.brand--showcase .brand-mark--optic{color:#fff;background:transparent;border:0;box-shadow:none}
.brand--login .brand-mark--optic{color:var(--blue)}

.summary-card{min-height:176px;padding:22px 23px}
.summary-card>strong{font-size:clamp(1.55rem,2.2vw,2rem)}
.summary-meta--stacked{display:grid;gap:7px;align-items:start;line-height:1.5}
.summary-meta--stacked span{display:block}
.summary-meta--stacked b:not(.delta){font-weight:750}
.metric-negative{color:var(--red)!important}
.metric-positive{color:var(--green)!important}
.summary-card--accent .metric-negative{color:#ffb5c3!important}
.summary-card--accent .metric-positive{color:#a9e2d9!important}
.summary-month-plan{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:13px;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);font-size:.74rem;font-weight:750}
.summary-month-plan b{color:var(--ink);font-size:.9rem}
.summary-statuses{display:flex;align-items:center;gap:13px;flex-wrap:wrap}
.summary-statuses>span{display:flex;align-items:center;gap:7px}
.summary-statuses small{color:inherit;font-size:.7rem;font-weight:700}
.summary-month-progress b{color:var(--ink);font-size:.82rem}
.summary-card--accent .summary-month-plan{border-color:rgba(255,255,255,.16);color:#b7c7d8}
.summary-card--accent .summary-month-plan b,.summary-card--accent .summary-month-progress b{color:#fff}
.delta.is-warning{background:var(--warning-soft);color:var(--warning)}
.delta.is-success{background:var(--green-soft);color:var(--green)}
.delta.is-neutral{background:#edf1f5;color:var(--muted)}
.summary-card--accent .delta.is-low{background:rgba(181,65,88,.24);color:#ffb5c3}
.summary-card--accent .delta.is-warning{background:rgba(224,173,37,.2);color:#f5cf62}
.summary-card--accent .delta.is-success{background:rgba(20,125,114,.24);color:#a9e2d9}

.overview-focus-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(310px,.75fr);gap:18px;margin-bottom:18px}
.overview-chart-panel,.attention-panel{min-height:355px}
.panel-subtitle{margin:6px 0 0;color:var(--muted);font-size:.78rem;line-height:1.5}
.chart-legend{display:flex;gap:15px;color:var(--muted);font-size:.73rem}
.chart-legend span{display:flex;align-items:center;gap:7px}
.chart-legend i{display:block;width:18px;height:3px;border-radius:3px;background:var(--blue)}
.chart-legend i.is-plan{height:0;border-top:2px dashed #93a2b6;background:transparent}
.overview-chart{min-height:245px;padding:12px 18px 0}
.revenue-chart-svg{display:block;width:100%;height:244px;overflow:visible}
.chart-grid-line{stroke:#e9eef4;stroke-width:1}
.chart-axis-label{fill:#78869a;font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:11px}
.chart-area{fill:url(#revenueArea)}
.chart-fact-line{fill:none;stroke:var(--blue);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.chart-plan-line{fill:none;stroke:#93a2b6;stroke-width:2;stroke-dasharray:7 6;stroke-linecap:round}
.chart-point{fill:#fff;stroke:var(--blue);stroke-width:2}
.chart-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 24px;border-top:1px solid var(--line);color:var(--muted);font-size:.76rem}
.chart-summary span{white-space:nowrap}
.chart-summary strong{margin-left:6px;color:var(--ink);font-size:.9rem}

.attention-list{padding:2px 23px 13px}
.attention-item{padding:18px 0;border-bottom:1px solid var(--line)}
.attention-item:last-child{border-bottom:0}
.attention-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.attention-head>strong{font-size:.9rem}
.attention-value{font-size:.77rem;font-weight:800;white-space:nowrap}
.attention-value.is-negative{color:var(--red)}
.attention-value.is-positive{color:var(--green)}
.attention-item p{margin:8px 0 0;color:var(--muted);font-size:.78rem;line-height:1.55}
.overview-link{border:0;background:transparent;padding:0;color:var(--blue);font-size:.84rem;font-weight:750;text-align:left}
.overview-link:hover{text-decoration:underline}
.overview-link span{font-size:.75rem}

.salon-overview-panel{margin-top:0}
.panel-heading--media{min-height:98px;background:linear-gradient(90deg,#fff 0%,#fff 72%,#eef5fb 100%)}
.salon-photo-pair{display:flex;align-items:center;padding-right:7px}
.salon-photo-pair img{width:88px;height:58px;object-fit:cover;border:4px solid #fff;border-radius:13px;box-shadow:0 8px 20px rgba(21,38,61,.13)}
.salon-photo-pair img+img{margin-left:-22px;transform:translateY(9px)}
.overview-table{width:100%;min-width:1040px;border-collapse:collapse;font-variant-numeric:tabular-nums}
.overview-table th,.overview-table td{padding:15px 16px;border-bottom:1px solid #edf1f5;text-align:right;white-space:nowrap}
.overview-table th{background:#f8fafc;color:var(--muted);font-size:.71rem;font-weight:750;letter-spacing:.02em}
.overview-table th:first-child,.overview-table td:first-child{text-align:left;padding-left:24px}
.overview-table tbody tr:last-child td{border-bottom:0}
.overview-table tbody tr:hover td{background:#f8fbfe}
.overview-table td{font-size:.82rem}
.overview-salon-name{color:var(--ink);font-size:.84rem}
.overview-salon-name:hover{color:var(--blue)}
.overview-progress{display:flex;align-items:center;justify-content:flex-end;gap:9px}
.overview-progress progress{width:62px;height:6px;border:0;border-radius:99px;overflow:hidden;background:#e8edf3}
.overview-progress progress::-webkit-progress-bar{background:#e8edf3}
.overview-progress progress::-webkit-progress-value{background:linear-gradient(90deg,#24659e,#4d8dbc);border-radius:99px}
.overview-progress progress.is-low::-webkit-progress-value{background:linear-gradient(90deg,#8a294b,#bd5777)}
.overview-progress progress.is-warning::-webkit-progress-value{background:linear-gradient(90deg,#d19a12,#e7b936)}
.overview-progress progress.is-success::-webkit-progress-value{background:linear-gradient(90deg,#147d72,#35a394)}
.overview-progress progress::-moz-progress-bar{background:#3277ad;border-radius:99px}
.overview-progress progress.is-low::-moz-progress-bar{background:#a93555}
.overview-progress progress.is-warning::-moz-progress-bar{background:var(--warning-bar)}
.overview-progress progress.is-success::-moz-progress-bar{background:var(--green)}
.performance-text.is-low{color:var(--red)!important}
.performance-text.is-warning{color:var(--warning)!important}
.performance-text.is-success{color:var(--green)!important}
.performance-text.is-neutral{color:var(--muted)!important}
.completion.is-warning{background:var(--warning-soft);color:var(--warning)}
.completion.is-success{background:var(--green-soft);color:var(--green)}
.overview-arrow{border:0;background:transparent;color:#728399;font-size:1rem}
.overview-online-row td{border-top:5px solid #edf2f7;background:#f8fbfd}
.overview-online-row:hover td{background:#f1f7fb!important}
.overview-row-caption{display:block;margin-top:4px;color:var(--muted);font-size:.68rem;font-weight:600}
.headline-metric{display:flex;align-items:center;justify-content:flex-end;gap:20px;max-width:760px}
.headline-main{padding-right:20px;border-right:1px solid var(--line)}
.headline-main strong{font-size:1.35rem}
.headline-details{display:grid;grid-template-columns:repeat(2,minmax(140px,1fr));gap:5px 18px;text-align:left;color:var(--muted);font-size:.72rem}
.headline-details span{white-space:nowrap}
.headline-details b{margin-left:4px;color:var(--ink);font-size:.78rem}

@media(max-width:900px){
  .login-shell{padding:18px}
  .login-frame{grid-template-columns:1fr;min-height:auto}
  .login-showcase{min-height:330px;padding:34px}
  .login-story{margin-top:auto;padding:56px 0 10px}
  .login-story h2{font-size:clamp(2.3rem,9vw,3.4rem);max-width:560px}
  .login-story p:last-child{display:none}
  .optic-scene{width:250px;height:250px;right:-20px;top:30px;opacity:.63}
  .login-footnote{display:none}
  .login-card{padding:44px 34px}
  .overview-focus-grid{grid-template-columns:1fr}
  .headline-metric{align-items:flex-end;flex-direction:column;gap:8px}
  .headline-main{padding-right:0;border-right:0}
}

@media(max-width:560px){
  .login-shell{padding:0;background:#fff}
  .login-frame{min-height:100vh;border:0;border-radius:0}
  .login-showcase{min-height:245px;padding:26px}
  .login-story{padding:35px 0 0}
  .login-story h2{font-size:2.25rem;max-width:340px}
  .optic-scene{width:190px;height:190px;right:-45px;top:24px}
  .login-card{padding:38px 26px 52px}
  .login-card h1{font-size:2rem}
  .summary-card{min-height:0}
  .panel-heading--media{align-items:flex-start}
  .salon-photo-pair img{width:66px;height:50px}
  .chart-summary{align-items:flex-start;flex-direction:column;gap:8px}
  .chart-legend{display:none}
}

/* Mobile workspace: wide management tables become readable metric cards. */
.sidebar-backdrop{display:none}

@media(max-width:760px){
  html,body{max-width:100%;overflow-x:hidden}
  body.sidebar-open{overflow:hidden}
  button,a,input,select,textarea{touch-action:manipulation}
  input,select,textarea{font-size:16px}
  .app-shell,.workspace{width:100%;min-width:0}
  .workspace{overflow:hidden}

  .sidebar{z-index:40;padding-top:max(28px,env(safe-area-inset-top));box-shadow:18px 0 48px rgba(8,20,36,.28)}
  .sidebar-backdrop{position:fixed;inset:0;z-index:35;display:block;border:0;background:rgba(8,20,36,.55);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s,visibility .2s}
  body.sidebar-open .sidebar-backdrop{opacity:1;visibility:visible;pointer-events:auto}
  .topbar{min-height:0;padding:14px 16px 13px;gap:11px;align-items:center}
  .menu-button{flex:0 0 42px;width:42px;height:42px}
  .topbar>div:not(.topbar-actions){min-width:0;flex:1}
  .topbar .eyebrow{margin-bottom:4px;font-size:.62rem;letter-spacing:.12em}
  .topbar h1{font-size:1.35rem;line-height:1.1}
  .topbar-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%}
  .topbar-actions[hidden]{display:none}
  .topbar-actions>.month-control{width:100%;min-width:0;max-width:100%;overflow:hidden}
  .month-control input,.month-control select{display:block;box-sizing:border-box;width:100%!important;min-width:0!important;max-width:100%!important;height:50px;min-height:50px;padding-inline:14px;border-radius:10px;text-align:left;overflow:hidden}
  .month-control input[type="date"],.month-control input[type="month"]{-webkit-appearance:none;appearance:none}
  .month-control input::-webkit-date-and-time-value{min-width:0;text-align:left}
  .topbar-actions[data-period-mode="custom"]{grid-template-columns:1fr}
  .topbar-actions[data-period-mode="custom"]>*{grid-column:1!important}
  .topbar-actions>.button{grid-column:1/-1;width:100%;height:50px;min-height:50px}
  .data-banner,.global-error{margin:14px 14px 0;padding:11px 13px;font-size:.76rem;line-height:1.45}
  .view{padding:14px 14px calc(32px + env(safe-area-inset-bottom))}
  .panel{border-radius:14px}
  .panel-heading{align-items:flex-start;flex-direction:column;padding:18px;gap:12px}
  .panel-heading h2{font-size:1.08rem}
  .panel-heading--media{min-height:0}
  .salon-photo-pair{display:none}
  .summary-grid{gap:12px;margin-bottom:14px}
  .summary-card{padding:18px;min-height:0}
  .summary-month-plan{margin-top:12px}
  .summary-statuses{align-items:flex-start;flex-direction:column;gap:9px}
  .overview-focus-grid{gap:14px;margin-bottom:14px}
  .overview-chart-panel,.attention-panel{min-height:0}
  .overview-chart{min-height:180px;padding-inline:7px}
  .revenue-chart-svg{height:180px}
  .chart-summary{padding:13px 18px}
  .attention-list{padding-inline:18px}

  .view-toolbar{width:100%;gap:12px}
  .view-toolbar>.muted,.competitions-toolbar>div{margin:0;line-height:1.5}
  .segmented{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:8px}
  .segmented button{height:50px;min-height:50px;padding:8px 9px;white-space:normal;line-height:1.25}
  #rnpScope{grid-template-columns:repeat(2,minmax(0,1fr))}
  .toolbar-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;align-items:end}
  .toolbar-actions>*{width:100%;min-width:0;max-width:100%;overflow:hidden}
  .toolbar-actions .select-control,.toolbar-actions select{box-sizing:border-box;width:100%!important;min-width:0!important;max-width:100%!important}
  .toolbar-actions .select-control select,.toolbar-actions .button{height:50px;min-height:50px;white-space:normal}
  .competitions-toolbar .button,.access-intro+.button{width:100%}

  .headline-metric{width:100%;max-width:none;align-items:stretch;text-align:left}
  .headline-main{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
  .headline-main strong{font-size:1.25rem}
  .headline-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 12px}
  .headline-details span{white-space:normal}
  .headline-details b{display:block;margin:3px 0 0}

  .table-scroll{overflow:visible;width:100%}
  #rnpTable,.overview-table,#teamTable,.competition-table,.access-table,.plan-table{display:block;width:100%;min-width:0}
  #rnpTable thead,.overview-table thead,#teamTable thead,.competition-table thead,.access-table thead,.plan-table thead{display:none}
  #rnpTable tbody,.overview-table tbody,#teamTable tbody,.competition-table tbody,.access-table tbody,.plan-table tbody{display:grid;gap:12px;width:100%}
  #rnpTable tr,.overview-table tr,#teamTable tr,.competition-table tr,.access-table tr,.plan-table tr{position:relative;display:grid;width:100%;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden;box-shadow:0 5px 16px rgba(21,38,61,.045)}
  #rnpTable td,.overview-table td,#teamTable td,.competition-table td,.access-table td,.plan-table td{position:relative;min-width:0;padding:10px 14px;border:0;border-bottom:1px solid #edf1f5;background:#fff;white-space:normal;text-align:right!important;font-size:.84rem}
  #rnpTable td:last-child,.overview-table td:last-child,#teamTable td:last-child,.competition-table td:last-child,.access-table td:last-child,.plan-table td:last-child{border-bottom:0}
  #rnpTable td:not(:first-child),.overview-table td:not(:first-child),.access-table td:not(:first-child){display:flex;align-items:center;justify-content:space-between;gap:14px}
  #rnpTable td:not(:first-child)::before,.overview-table td:not(:first-child)::before,.access-table td:not(:first-child)::before,.plan-table td:not(:first-child)::before{color:var(--muted);font-size:.7rem;font-weight:750;text-align:left}
  #rnpTable td:first-child,.overview-table td:first-child,.access-table td:first-child,.plan-table td:first-child{padding:13px 14px;background:#f7f9fc;text-align:left!important}
  #rnpTable tr.group-start td{border-top:0}
  #rnpTable tr.key-row{border-color:#b9cede}
  #rnpTable tr.key-row td:first-child{background:#edf5fb}
  #rnpTable tr.money-row td:first-child{border-left:0}
  #rnpTable td:nth-child(2)::before{content:"План месяца"}
  #rnpTable td:nth-child(3)::before{content:"Норма на дату"}
  #rnpTable td:nth-child(4)::before{content:"Факт"}
  #rnpTable td:nth-child(5)::before{content:"Отклонение"}
  #rnpTable td:nth-child(6)::before{content:"Выполнение"}
  .metric-definition{margin-top:5px;line-height:1.45}
  .inline-plan-button{min-width:0}
  .inline-plan-form{margin-left:auto;flex-wrap:wrap}
  .inline-plan-form input{width:104px}

  .overview-table tbody{padding:0 12px 12px}
  .overview-table tr{grid-template-columns:repeat(2,minmax(0,1fr))}
  .overview-table td{display:block!important;text-align:left!important}
  .overview-table td:first-child{grid-column:1/-1;padding:15px 14px}
  .overview-table td:not(:first-child)::before{display:block;margin-bottom:5px}
  .overview-table td:nth-child(2)::before{content:"Выручка"}
  .overview-table td:nth-child(3)::before{content:"План на дату"}
  .overview-table td:nth-child(4)::before{content:"Выполнение"}
  .overview-table td:nth-child(5)::before{content:"Заказы"}
  .overview-table td:nth-child(6)::before{content:"Средний чек"}
  .overview-table td:nth-child(7)::before{content:"Посещения"}
  .overview-table td:nth-child(8)::before{content:"Лид → заказ"}
  .overview-table td:nth-child(9){position:absolute;top:8px;right:8px;padding:0;border:0;background:transparent}
  .overview-progress{align-items:flex-start;flex-direction:column;justify-content:flex-start;gap:6px}
  .overview-progress progress{width:100%}
  .overview-online-row td{border-top:0}

  #teamTable tbody{padding:0 12px 12px}
  #teamTable tr{grid-template-columns:repeat(2,minmax(0,1fr))}
  #teamTable td{display:block;text-align:left!important}
  #teamTable td::before{display:block;margin-bottom:5px;color:var(--muted);font-size:.68rem;font-weight:750;line-height:1.3}
  #teamTable td:first-child{grid-column:1/-1;padding:15px 14px;background:#f7f9fc}
  #teamTable td:nth-child(2)::before{content:"Салон"}
  #teamTable[data-role="consultant"] td:nth-child(3)::before{content:"Заказы"}
  #teamTable[data-role="consultant"] td:nth-child(4)::before{content:"Сумма заказов"}
  #teamTable[data-role="consultant"] td:nth-child(5)::before{content:"Средний чек заказа"}
  #teamTable[data-role="consultant"] td:nth-child(6)::before{content:"Средняя оправа"}
  #teamTable[data-role="consultant"] td:nth-child(7)::before{content:"Средняя пара линз"}
  #teamTable[data-role="consultant"] td:nth-child(8)::before{content:"Прочие продажи"}
  #teamTable[data-role="consultant"] td:nth-child(9)::before{content:"Общая выручка"}
  #teamTable[data-role="consultant"] td:nth-child(10)::before{content:"Вклад в выручку"}
  #teamTable[data-role="consultant"] td:nth-child(11)::before{content:"Конверсия в заказ"}
  #teamTable[data-role="optometrist"] td:nth-child(3)::before{content:"Проверки зрения"}
  #teamTable[data-role="optometrist"] td:nth-child(4)::before{content:"Заказы после проверки"}
  #teamTable[data-role="optometrist"] td:nth-child(5)::before{content:"Конверсия в заказ"}
  #teamTable[data-role="optometrist"] td:nth-child(6)::before{content:"Количество линз"}
  #teamTable[data-role="optometrist"] td:nth-child(7)::before{content:"Выручка линз"}
  #teamTable[data-role="optometrist"] td:nth-child(8)::before{content:"Средний чек линз"}
  #teamTable[data-role="optometrist"] td:nth-child(9)::before{content:"Конверсия в проверку"}
  #teamTable[data-role="optometrist"] td:nth-child(10)::before{content:"Средний чек по салону"}
  #teamTable .team-kpi-cell{background:#edf5fb}
  #teamTable .empty-state{grid-column:1/-1}
  .panel-note{padding:15px 18px;line-height:1.5}

  .competition-header{flex-direction:column;padding:19px 18px}
  .competition-header .button{width:100%}
  .competition-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .competition-summary>div{padding:14px 16px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
  .competition-summary>div:nth-child(2n){border-right:0}
  .competition-rule,.competition-warning{margin:14px 16px}
  .competition-table tbody{padding:0 12px 12px}
  .competition-table tr{grid-template-columns:repeat(2,minmax(0,1fr))}
  .competition-table td{display:block;text-align:left!important}
  .competition-table td::before{display:block;margin-bottom:5px;color:var(--muted);font-size:.68rem;font-weight:750}
  .competition-table td:nth-child(1)::before{content:"Место"}
  .competition-table td:nth-child(2){grid-column:1/-1;grid-row:1;background:#f7f9fc}
  .competition-table td:nth-child(2)::before{content:"Сотрудник"}
  .competition-table td:nth-child(3)::before{content:"Салон"}
  .competition-table td:nth-child(4)::before{content:"Результат"}
  .competition-table td:nth-child(5)::before{content:"Сумма"}
  .competition-table td:nth-child(6)::before{content:"Средний чек"}
  .competition-table td:nth-child(7)::before{content:"Результат достигнут"}
  .competition-table td:nth-child(8)::before{content:"Приз сейчас"}
  .competition-winner td,.competition-winner.place-1 td{background:#fff}
  .competition-winner.place-1 td:nth-child(2){background:#edf5fb}

  .access-table tbody{padding:0 12px 12px}
  .access-table td:nth-child(2)::before{content:"Логин"}
  .access-table td:nth-child(3)::before{content:"Роль"}
  .access-table td:nth-child(4)::before{content:"Статус"}
  .access-table td:nth-child(5)::before{content:"Последняя активность"}
  .access-table td:nth-child(6)::before{content:"Действия"}
  .access-actions{margin-left:auto;flex-wrap:wrap}

  .plan-dialog,.staff-dialog,.access-dialog,.competition-dialog{inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border-radius:0}
  .plan-dialog .dialog-card,.access-dialog .dialog-card,.competition-dialog .dialog-card{display:flex;height:100dvh;min-height:100dvh;flex-direction:column;overflow:hidden}
  .dialog-heading{flex:0 0 auto;padding:18px 16px 14px;gap:12px;background:#fff}
  .dialog-heading h2{font-size:1.35rem}
  .dialog-heading p:not(.eyebrow){line-height:1.45}
  .dialog-actions{position:relative;z-index:2;flex:0 0 auto;display:grid;grid-template-columns:1fr 1fr;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:#fff}
  .dialog-actions .button{width:100%;min-height:44px}
  .dialog-card>.form-error{flex:0 0 auto;margin:8px 16px}
  .plan-editor,.staff-editor,.access-form-fields,.credentials-card,.competition-form-fields{flex:1;min-height:0;max-height:none;overflow:auto;padding:14px 16px}
  .plan-editor .table-scroll{overflow:visible}
  .plan-table tbody{gap:14px}
  .plan-table tr{grid-template-columns:repeat(2,minmax(0,1fr));padding-bottom:4px}
  .plan-table td{display:block;text-align:left!important}
  .plan-table td:first-child{grid-column:1/-1}
  .plan-table td:not(:first-child)::before{display:block;margin-bottom:6px}
  .plan-table td:nth-child(2)::before{content:"Лиды"}
  .plan-table td:nth-child(3)::before{content:"Лид → проверка, %"}
  .plan-table td:nth-child(4)::before{content:"Проверка → заказ, %"}
  .plan-table td:nth-child(5)::before{content:"Заказы без проверки"}
  .plan-table td:nth-child(6)::before{content:"Средний чек заказа"}
  .plan-table td:nth-child(7)::before{content:"Прочая выручка"}
  .plan-table input{width:100%;min-width:0;text-align:left}
  .plan-table tr[data-online] td:nth-child(2){grid-column:1/-1}
  .plan-table tr[data-online] td:nth-child(2)::before{content:none}
  .staff-controls{flex:0 0 auto;padding:14px 16px 0}
  .staff-controls input{width:100%}
  .competition-form-fields{grid-template-columns:1fr}
  .competition-participant-list{grid-template-columns:1fr}
  .competition-rule-note{flex:0 0 auto;margin:0 16px 12px}
  .credentials-card code{font-size:.82rem}

  .toast{left:14px;right:14px;bottom:calc(14px + env(safe-area-inset-bottom));width:auto;max-width:none;text-align:center}
}

@media(max-width:380px){
  .topbar,.view{padding-left:12px;padding-right:12px}
  .data-banner,.global-error{margin-left:12px;margin-right:12px}
  .headline-details,#teamTable tr,.competition-table tr,.overview-table tr,.plan-table tr{grid-template-columns:1fr 1fr}
  .login-showcase{min-height:205px;padding:22px 20px}
  .login-story{padding-top:22px}
  .login-story h2{font-size:1.8rem;max-width:270px}
  .login-card{padding:28px 20px calc(32px + env(safe-area-inset-bottom))}
  .login-card h1{font-size:1.7rem}
  .login-copy{margin-bottom:24px}
}
