@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-italic-B5xAaiFk.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-italic-DzZdc28x.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-italic-DcOpz6Lw.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-italic-CILZdfAp.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-italic-K3WlGtc8.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-italic-0pjOp8NU.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-italic-DpCbqKDY.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-sans: "Inter Variable", Inter, ui-sans-serif, system-ui, sans-serif;font-family:var(--font-sans);color:var(--ink);background:var(--surface);font-synthesis:none;--ink: #202833;--muted: #667180;--cream: #ffffff;--green: #07547d;--green-dark: #222831;--line: #dfe4e8;--amber: #dc7e00;--danger: #aa473d;--shadow: none;--corp-blue: #07547d;--corp-blue-soft: #e8f1f6;--corp-red: #aa473d;--corp-red-soft: #f8e9e6;--corp-orange: #f59a12;--corp-orange-soft: #fff0d6;--corp-yellow: #dfad1c;--surface: #f4f6f7;--surface-raised: #ffffff;--sidebar: #222831}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;min-width:320px;min-height:100vh;min-height:100svh}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #17678f;outline-offset:2px}.app-shell{min-height:100vh;min-height:100svh;display:grid;grid-template-columns:248px minmax(0,1fr);background:var(--sidebar)}.sidebar{position:sticky;top:0;align-self:start;height:100vh;height:100svh;padding:28px 20px;display:flex;flex-direction:column;background:var(--sidebar);color:#f5f6f6;border-right:1px solid #303943}.brand{display:grid;gap:8px;padding:0 8px 30px;color:#f5f6f6;text-align:center}.brand small{color:#99a5ae;font-size:10px;letter-spacing:.09em;text-transform:uppercase}.brand-logo{display:block;color:inherit}.brand-logo svg{display:block;width:100%;height:auto}.brand-logo.large{width:min(220px,100%)}.sidebar nav{display:grid;gap:6px}.sidebar nav a{display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:10px;color:#bac3ca;text-decoration:none;font-size:14px}.sidebar nav a:hover{background:#2b333c;color:#fff}.sidebar nav a.active{background:#313c47;color:#fff;box-shadow:inset 3px 0 var(--corp-blue)}.sidebar nav a.active svg{color:#6bb0d1}.sidebar nav a svg{width:18px;height:18px;flex-shrink:0}.sidebar nav small{margin-left:auto;color:#99a5ae;font-size:9px;text-transform:uppercase}.session-card{margin-top:auto;padding:14px;display:grid;gap:5px;border:1px solid #3c4650;border-radius:14px;background:#ffffff0d;overflow-wrap:anywhere}.session-card strong{font-size:12px}.session-card small{color:#a9b4bc;font-size:11px}.role-badge{justify-self:start;padding:3px 7px;border-radius:999px;color:var(--corp-blue);background:var(--corp-blue-soft);font-size:9px;font-weight:700;text-transform:uppercase}.text-button{width:max-content;padding:6px 0 0;border:0;color:#efb82a;background:transparent;cursor:pointer;font-size:11px}.menu-toggle,.menu-backdrop{display:none}.main-content{min-width:0;background:var(--surface)}.overview-page,.trends-page,.restaurants-page,.recovery-page,.reviews-page,.recommendations-page,.placeholder-page{width:100%;min-width:0;max-width:1540px;margin:0 auto;padding:38px 42px 60px}.page-header{display:flex;justify-content:space-between;gap:28px;align-items:flex-end;margin-bottom:24px}.page-header h1,.placeholder-page h1{margin:4px 0 6px;color:#1c2530;font:600 clamp(32px,4vw,50px)/1.06 var(--font-sans)}.page-header p,.placeholder-page p{margin:0;color:var(--muted);font-size:14px}.eyebrow{color:var(--green);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.period-summary{min-width:230px;padding:15px 17px;display:grid;gap:2px;border-left:2px solid var(--corp-yellow)}.period-summary small,.period-summary span{color:var(--muted);font-size:10px}.period-summary strong{font-size:13px}.filter-bar{width:100%;min-width:0;margin-bottom:18px;padding:16px;display:grid;grid-template-columns:minmax(130px,.8fr) minmax(130px,.8fr) minmax(190px,1.15fr) repeat(3,minmax(130px,.7fr)) max-content;align-items:end;gap:12px;border:1px solid var(--line);border-radius:16px;background:var(--surface-raised);box-shadow:0 1px 2px #1d29370a}.filter-bar>label,.filter-select-control{min-width:0;display:grid;gap:6px;color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase}.filter-bar input[type=date],.filter-bar .feedback-id-filter input,.filter-bar select{width:100%;min-height:38px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;color:var(--ink);background:#fff;font-size:12px;text-transform:none}.filter-bar select[multiple]{height:38px}.filter-select{position:relative;width:100%;min-width:0;color:var(--ink);font-size:12px;font-weight:400;text-transform:none}.filter-select summary{width:100%;min-height:38px;padding:8px 30px 8px 10px;display:flex;align-items:center;overflow:hidden;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:pointer;list-style:none;white-space:nowrap;text-overflow:ellipsis}.filter-select summary::-webkit-details-marker{display:none}.filter-select summary:after{content:"";position:absolute;top:50%;right:13px;width:7px;height:7px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:translateY(-70%) rotate(45deg)}.filter-select[open] summary{border-color:#4384a7;box-shadow:0 0 0 2px #07547d1d}.filter-options{position:absolute;z-index:20;top:calc(100% + 6px);left:0;width:max(100%,220px);max-height:300px;padding:7px;display:grid;gap:2px;overflow-y:auto;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 14px 36px #1d29371a}.filter-options label{padding:8px;display:grid;grid-template-columns:16px minmax(0,1fr);align-items:start;gap:8px;border-radius:7px;cursor:pointer}.filter-options label:hover{background:var(--corp-blue-soft)}.filter-options input{margin:1px 0 0;accent-color:var(--green)}.filter-options span{line-height:1.35}.filter-options small{padding:8px;color:var(--muted);font-weight:400}.filter-bar>.primary-button{grid-column:-2 / -1}.primary-button,.secondary-button{min-height:39px;padding:9px 16px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:10px;text-decoration:none;cursor:pointer;font-size:12px;font-weight:700}.primary-button{border:1px solid var(--green);color:#fff;background:var(--green)}.primary-button:hover{background:#123247}.primary-button:disabled{opacity:.45;cursor:not-allowed}.primary-button.wide{width:100%;min-height:46px}.secondary-button{border:1px solid var(--line);color:var(--ink);background:#fff}.freshness-banner{min-height:52px;margin:14px 0 18px;padding:12px 16px;display:flex;align-items:center;gap:10px;border-radius:12px;font-size:12px}.freshness-banner small,.freshness-banner span{color:var(--muted)}.freshness-banner.fresh{border:1px solid #bbced9;background:var(--corp-blue-soft)}.freshness-banner.stale{border:1px solid #e2c08e;background:var(--corp-orange-soft)}.freshness-banner.empty{border:1px solid var(--line);background:#e8ecef}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--corp-blue);box-shadow:0 0 0 4px #07547d22}.metrics-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px}.metric-card{min-width:0;min-height:246px;padding:18px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;background:var(--cream);box-shadow:var(--shadow)}.metric-heading{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase}.sample{color:var(--muted);font-size:9px}.metric-value{margin:18px 0 20px;font:600 34px/1 var(--font-sans)}.comparison-row{display:grid;grid-template-columns:1fr 1fr;gap:7px}.comparison{padding:8px;display:grid;gap:2px;border-radius:8px;color:var(--muted);background:#eef1f3;font-size:8px}.comparison strong{color:var(--ink);font-size:11px}.comparison.up strong{color:#27674e}.comparison.down strong{color:var(--corp-red)}.comparison.unavailable{opacity:.7}.confidence{margin-top:13px;color:var(--muted);font-size:9px}.card-link{margin-top:auto;padding:12px 0 0;display:flex;justify-content:space-between;border:0;border-top:1px solid var(--line);color:var(--green);background:transparent;cursor:pointer;font-size:10px;font-weight:700}.error-panel,.empty-panel{margin:16px 0;padding:18px;display:flex;justify-content:space-between;align-items:center;gap:20px;border-radius:14px}.error-panel{border:1px solid #d5a69f;background:#f8e7e4}.empty-panel{border:1px solid var(--line);background:#e8ecef}.error-panel p,.empty-panel p{margin:4px 0 0;color:var(--muted);font-size:12px}.error-panel small{color:var(--muted)}.skeleton{position:relative;overflow:hidden;background:#e4e8eb}.skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);animation:shimmer 1.3s infinite}.banner-skeleton{height:52px;margin:14px 0 18px;border-radius:12px}.card-skeleton{border:0;box-shadow:none}@keyframes shimmer{to{transform:translate(100%)}}.refresh-notice{margin:14px 0 -6px;color:var(--muted);font-size:11px}.trends-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(420px,1fr);gap:16px}.trend-panel{min-width:0;padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--cream);box-shadow:var(--shadow)}.series-panel,.signals-panel{grid-column:1 / -1}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.panel-heading h2{margin:3px 0 0;font:600 24px/1.15 var(--font-sans)}.panel-note{margin:8px 0 16px;color:var(--muted);font-size:11px;line-height:1.5}.metric-switch{padding:3px;display:flex;border-radius:9px;background:#e8ecef}.metric-switch button{padding:7px 10px;border:0;border-radius:7px;color:var(--muted);background:transparent;cursor:pointer;font-size:10px;font-weight:700}.metric-switch button.active{color:#fff;background:var(--green)}.series-scroll,.heatmap-scroll{overflow-x:auto}.series-chart{width:100%;height:280px;display:block}.chart-grid-line{stroke:var(--line);stroke-width:1}.trend-line{fill:none;stroke:var(--green);stroke-linecap:round;stroke-linejoin:round;stroke-width:2.5}.trend-point{color:var(--green);cursor:pointer;outline:none}.trend-point circle{fill:var(--cream);stroke:currentColor;stroke-width:3;transition:r .15s ease}.trend-point:hover circle,.trend-point:focus circle{r:8px;fill:var(--corp-yellow)}.confidence-whisker{stroke:#98a8b3;stroke-width:5;stroke-linecap:round;opacity:.72}.chart-sample,.chart-date{fill:var(--muted);font-size:8px}.chart-date{font-size:9px}.sample-rule{padding:6px 9px;border-radius:999px;color:var(--corp-blue);background:var(--corp-blue-soft);font-size:9px;font-weight:700}.heatmap-grid{display:grid;grid-template-columns:34px repeat(5,minmax(62px,1fr));gap:5px;min-width:369px}.heatmap-axis{align-self:center;color:var(--muted);font-size:9px;text-align:center}.heatmap-axis.weekday{text-align:left}.heatmap-cell{min-height:58px;padding:8px 4px;display:grid;place-content:center;gap:3px;border:1px solid #07547d1f;border-radius:8px;color:var(--ink);text-align:center}.heatmap-cell b{font-size:11px}.heatmap-cell small{font-size:8px;opacity:.75}.heatmap-cell.level-1{background:var(--corp-blue-soft)}.heatmap-cell.level-2{background:#c5dce8}.heatmap-cell.level-3{background:#e9d798}.heatmap-cell.level-4{background:#dea171}.heatmap-cell.level-5{color:#fff;background:#a44d3f}.heatmap-cell.masked{border-style:dashed;color:var(--muted);background:repeating-linear-gradient(135deg,#eef1f3,#eef1f3 5px,#e4e8eb 5px 10px)}.signal-columns{display:grid;grid-template-columns:1fr 1fr;gap:22px}.signal-columns>div+div{padding-left:22px;border-left:1px solid var(--line)}.signal-columns h3{margin:18px 0 0;font-size:12px;text-transform:uppercase}.signal-list{margin:0;padding:0;display:grid;gap:7px;list-style:none}.signal-list button,.restaurant-change{width:100%;padding:11px 12px;display:grid;grid-template-columns:1.3fr .8fr 1fr;align-items:center;gap:12px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#fff;text-align:left;font-size:11px}.signal-list button{cursor:pointer}.signal-list button:hover{border-color:#6c9db7;background:var(--corp-blue-soft)}.signal-list span{display:flex;align-items:center;gap:8px}.signal-list small{color:var(--muted)}.signal-list .signal-confidence{color:var(--muted);font-size:9px}.direction-badge{padding:3px 6px;border-radius:999px;font-size:8px;font-weight:700}.direction-badge.improving{color:#27674e;background:#dcecdf}.direction-badge.worsening{color:var(--corp-red);background:var(--corp-red-soft)}.no-signals{padding:18px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);font-size:11px;text-align:center}.trends-footer-action{margin-top:16px;display:flex;justify-content:flex-end}.trend-skeleton{min-height:330px;box-shadow:none}.signals-skeleton{min-height:210px}.restaurant-ranking{min-width:0;padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--cream);box-shadow:var(--shadow)}.restaurant-table-scroll{margin-top:16px;overflow-x:auto}.restaurant-table{width:100%;min-width:0;border-collapse:collapse}.restaurant-table th,.restaurant-table td{padding:13px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.restaurant-table thead th{padding-top:7px;color:var(--muted);font-size:9px;font-weight:700;text-transform:uppercase}.restaurant-table thead button{padding:5px 0;border:0;color:inherit;background:transparent;cursor:pointer;font:inherit;text-transform:inherit}.restaurant-table tbody th a{display:grid;gap:4px;color:var(--ink);text-decoration:none}.restaurant-table tbody th a:hover strong{color:var(--green);text-decoration:underline}.restaurant-table tbody th small,.restaurant-table td small{display:block;margin-top:3px;color:var(--muted);font-size:9px;font-weight:400}.restaurant-table tbody td strong{font:600 16px/1 var(--font-sans)}.table-comparisons{display:flex;gap:13px}.table-comparisons>span{min-width:64px}.restaurant-table tbody tr.insufficient{background:repeating-linear-gradient(135deg,transparent,transparent 8px,#1d293709 8px,#1d293709 16px)}.positive{color:#27674e}.negative{color:var(--corp-red)}.table-action{padding:7px 9px;border:1px solid var(--line);border-radius:8px;color:var(--green);background:#fff;cursor:pointer;font-size:9px;font-weight:700;white-space:nowrap}.restaurant-skeleton{min-height:420px;border:0;box-shadow:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.back-link{display:inline-block;margin-bottom:18px;color:var(--green);font-size:11px;font-weight:700;text-decoration:none}.restaurant-recommendations-link{width:max-content;margin-top:14px;padding:9px 13px;display:inline-flex;align-items:center;gap:8px;border-radius:9px;color:#fff;background:var(--green);box-shadow:0 6px 16px #0b38511a;font-size:10px;font-weight:700;text-decoration:none}.restaurant-recommendations-link:hover{background:#123247}.restaurant-metrics{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:13px}.restaurant-metrics .metric-card{min-height:230px}.restaurant-detail-grid{margin-top:16px;display:grid;grid-template-columns:1fr 1fr;gap:16px}.restaurant-detail-grid .series-panel{grid-column:1 / -1}.sample-warning{margin:0 0 14px;padding:12px 16px;border:1px solid #e2c08e;border-radius:12px;color:#7d541f;background:var(--corp-orange-soft);font-size:11px}.distribution-list{margin-top:16px;display:grid;gap:9px}.distribution-list button{padding:3px 0;display:grid;grid-template-columns:38px minmax(90px,1fr) 92px;align-items:center;gap:10px;border:0;color:var(--ink);background:transparent;cursor:pointer;text-align:left}.distribution-list button>span{height:9px;overflow:hidden;border-radius:999px;background:#e8ecef}.distribution-list button i{height:100%;display:block;border-radius:inherit;background:var(--corp-blue)}.distribution-list small{color:var(--muted);text-align:right}.aspect-list{margin:16px 0 0;padding:0;display:grid;gap:7px;list-style:none}.aspect-list button{width:100%;padding:10px 12px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;border:1px solid var(--line);border-radius:9px;color:var(--ink);background:#fff;cursor:pointer;text-align:left}.aspect-list button>span:first-child{display:grid;gap:2px}.aspect-list small{color:var(--muted);font-size:9px}.attention-column{display:grid;gap:16px;align-content:start;align-self:start}.attention-panel{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.attention-panel h2{margin:3px 0 16px;font:600 24px/1.15 var(--font-sans)}.attention-panel p{margin:8px 0 0;color:var(--muted);font-size:11px}.attention-value{font:600 38px/1 var(--font-sans)}.insight-summary{margin:18px 0;padding:20px;border:1px solid #bbced9;border-radius:14px;background:#edf4f7;display:flex;justify-content:space-between;gap:24px}.network-summary{margin:0 0 18px;padding:14px 17px;border-left:3px solid var(--corp-blue);background:var(--corp-blue-soft)}.network-summary p{margin:5px 0 0}.insight-summary h2{margin:4px 0 8px;font:600 23px/1.15 var(--font-sans)}.insight-summary p{margin:0;max-width:720px;color:var(--muted)}.insight-summary dl{display:flex;gap:18px;margin:0}.insight-summary dl div{min-width:92px}.insight-summary dt{color:var(--muted);font-size:9px;text-transform:uppercase}.insight-summary dd{margin:4px 0 0;font-weight:700;font-size:12px}.evidence-list{margin-top:16px;display:grid;gap:9px}.evidence-list button{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff;text-align:left;display:grid;gap:7px;cursor:pointer}.evidence-list button>span{display:flex;justify-content:space-between;gap:8px}.evidence-list q{color:var(--muted);font-size:11px}.monitoring-groups{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.monitoring-groups>div{display:grid;gap:5px}.monitoring-groups span{position:relative;overflow:hidden;padding:5px 7px;border-radius:5px;font-size:10px;background:#eef1f3}.monitoring-groups i{position:absolute;inset:0 auto 0 0;background:var(--corp-blue-soft);opacity:.8}.monitoring-groups span{isolation:isolate}.monitoring-groups span:first-line{position:relative;z-index:1}.recovery-layout{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(440px,1.2fr);gap:16px}.recovery-hero,.episode-panel,.transition-panel{min-width:0;padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--cream);box-shadow:var(--shadow)}.recovery-hero{display:flex;flex-direction:column;background:linear-gradient(135deg,#123247,#07547d);color:#fff}.recovery-hero .eyebrow{color:var(--corp-yellow)}.recovery-hero h2{margin:5px 0 8px;font:600 27px/1.1 var(--font-sans)}.recovery-hero p{margin:0;color:#d3e5ee;font-size:11px;line-height:1.55}.recovery-rate{margin:34px 0 8px;font:600 58px/1 var(--font-sans)}.recovery-hero small{margin-top:auto;color:#d3e5ee;font-size:10px}.episode-grid{margin-top:20px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.episode-metric{min-height:132px;padding:15px;display:flex;flex-direction:column;border-radius:12px;background:#eef1f3}.episode-metric span{color:var(--muted);font-size:9px;font-weight:700;text-transform:uppercase}.episode-metric strong{margin:14px 0 8px;font:600 31px/1 var(--font-sans)}.episode-metric small{margin-top:auto;color:var(--muted);font-size:9px;line-height:1.35}.episode-metric.positive{background:#dcecdf}.episode-metric.positive strong{color:#27674e}.episode-metric.pending{background:var(--corp-orange-soft)}.episode-metric.pending strong{color:#955900}.transition-panel{grid-column:1 / -1}.transition-grid{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:10px}.transition-cell{padding:14px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:7px;border:1px solid var(--line);border-radius:11px;background:#fff}.transition-cell span{color:var(--muted);font-size:10px}.transition-cell b{color:var(--corp-yellow)}.transition-cell strong{grid-column:1 / -1;margin-top:8px;font:600 27px/1 var(--font-sans)}.recovery-skeleton{min-height:240px;border:0;box-shadow:none}.privacy-note{max-width:260px;padding:13px 16px;display:grid;gap:3px;border:1px solid #bbced9;border-radius:12px;background:var(--corp-blue-soft)}.privacy-note strong{color:var(--green);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.privacy-note span{color:var(--muted);font-size:10px;line-height:1.45}.token-filter-banner{margin-bottom:18px;padding:14px 16px;display:flex;align-items:center;gap:12px;border:1px solid #e2c08e;border-radius:12px;background:var(--corp-orange-soft);font-size:11px}.token-filter-banner span{color:var(--muted)}.reviews-list{display:grid;gap:11px}.review-card{padding:17px 18px;display:grid;gap:13px;border:1px solid var(--line);border-radius:14px;background:var(--cream);box-shadow:0 1px 3px #1d29370a}.review-card.requires-attention{border-left:4px solid #8e302c}.review-card header{display:flex;align-items:center;justify-content:space-between;gap:16px}.review-card header>div{display:flex;align-items:baseline;gap:12px}.review-card header strong{color:var(--ink);font:600 20px/1 var(--font-sans)}.review-card header span,.review-card footer{color:var(--muted);font-size:9px}.attention-badge{padding:4px 7px;border-radius:999px;color:#fff!important;background:#8e302c;font-weight:700;text-transform:uppercase}.review-text{margin:0;font-size:13px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}.review-text.unavailable{color:var(--muted);font-style:italic}.review-products{display:grid;gap:6px}.review-products>div{display:flex;flex-wrap:wrap;align-items:baseline;gap:7px;padding:7px 9px;border-radius:9px;background:#eef1f3;font-size:11px}.review-products span{color:var(--ink)}.review-products q{color:var(--muted);font-style:italic}.review-card footer{display:flex;flex-wrap:wrap;gap:6px}.review-card footer span{padding:4px 7px;border-radius:999px;background:#eef1f3}.cursor-pagination{margin-top:18px;display:flex;align-items:center;justify-content:center;gap:14px}.cursor-pagination span{min-width:72px;color:var(--muted);font-size:10px;text-align:center}.cursor-pagination button:disabled{opacity:.45;cursor:not-allowed}.review-skeleton{min-height:138px;box-shadow:none}.recommendations-page .page-header{align-items:center}.recommendations-page .page-header h1{margin:0;font:600 clamp(26px,2.6vw,34px)/1.1 var(--font-sans)}.report-controls{margin-bottom:18px;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px}.report-period-switch{width:max-content;padding:3px;display:flex;gap:3px;border-radius:9px;background:#e8ecef}.report-period-switch button{min-height:36px;padding:7px 14px;border:0;border-radius:7px;color:#687581;background:transparent;cursor:pointer;font-size:12px;font-weight:700}.report-period-switch button.active{color:#fff;background:var(--corp-blue)}.report-filters{display:flex;flex-wrap:nowrap;align-items:flex-end;gap:12px;min-width:0}.report-select{min-width:0;flex:1 1 12rem;max-width:22rem;display:grid;gap:6px;color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase}.report-select select{width:100%;min-width:0;max-width:100%;min-height:36px;padding:8px 32px 8px 12px;border:1px solid var(--line);border-radius:9px;color:#26313d;background:var(--cream) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='none' stroke='%23667180' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='m1 1 4 4 4-4'/%3E%3C/svg%3E") no-repeat right 12px center;appearance:none;font:600 12px/1.2 inherit;text-transform:none}.report-hero{padding:20px;display:grid;grid-template-columns:minmax(0,1fr) 180px;align-items:center;gap:22px;border-radius:16px;color:#fff;background:linear-gradient(135deg,#123247,#07547d);box-shadow:0 12px 28px #0b38511a}.report-hero h2{max-width:780px;margin:6px 0 8px;font:600 clamp(20px,2vw,28px)/1.12 var(--font-sans)}.report-hero p{max-width:820px;margin:0;color:#d3e5ee;font-size:12px;line-height:1.5}.report-status{padding:4px 8px;border-radius:999px;color:#264352;background:#e6eff3;font-size:10px;font-weight:700}.report-status.worse{color:#8d302c;background:#f9ded9}.report-impact{padding-left:20px;display:grid;gap:6px;border-left:1px solid #ffffff3b}.report-impact strong{color:#f3c743;font:600 42px/1 var(--font-sans)}.report-impact span{color:#d3e5ee;font-size:11px;line-height:1.45}.report-metrics{margin:14px 0 22px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.report-quality{margin:-8px 0 22px;display:grid;gap:8px}.report-quality-warnings{display:flex;flex-wrap:wrap;gap:6px}.report-quality-warnings span{padding:6px 9px;border-radius:8px;font-size:11px;font-weight:600}.report-quality .quality-warn{color:#7d541f;background:var(--corp-orange-soft)}.report-quality .quality-fail{color:#8d302c;background:var(--corp-red-soft)}.report-quality-details{color:var(--muted);font-size:11px;line-height:1.5}.report-quality-details summary{width:max-content;cursor:pointer;font-weight:600;color:var(--green)}.report-quality-details p{margin:6px 0 0}.report-metric{padding:14px 16px;display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:6px;border:1px solid var(--line);border-radius:14px;background:var(--surface-raised);box-shadow:0 1px 2px #1d29370a}.report-metric>span{color:var(--muted);font-size:11px;font-weight:600}.report-metric strong{color:#1d2731;font:600 20px/1 var(--font-sans)}.report-metric small{grid-column:1 / -1;color:var(--muted);font-size:11px}.report-metric small.positive{color:#27674e}.report-metric small.negative{color:var(--corp-red)}.recommendations-list{display:grid;gap:12px}.recommendations-list>.panel-heading{margin:8px 0 2px;align-items:center}.recommendations-list .sample-rule{padding:6px 9px;font-size:9px}.recommendation-card{padding:18px;display:grid;gap:12px;border:1px solid var(--line);border-left:5px solid #98a8b3;border-radius:16px;background:var(--surface-raised);box-shadow:0 1px 3px #1d29370a}.recommendation-card.priority-medium{border-left-color:var(--corp-orange)}.recommendation-card.priority-high{border-left-color:var(--corp-red)}.recommendation-card.priority-critical{border-left-color:#8e302c}.recommendation-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.recommendation-card header>div{display:flex;gap:12px;min-width:0}.recommendation-card header>strong{color:var(--corp-blue);font:600 20px/1 var(--font-sans);white-space:nowrap}.recommendation-rank{width:28px;height:28px;flex:0 0 auto;display:grid;place-content:center;border-radius:8px;color:var(--corp-blue);background:var(--corp-blue-soft);font-size:12px;font-weight:800}.recommendation-badges{display:flex;flex-wrap:wrap;gap:5px}.priority-badge,.signal-badge{padding:3px 7px;border-radius:999px;font-size:10px;font-weight:700}.priority-badge,.priority-badge.priority-medium{color:#955900;background:var(--corp-orange-soft)}.priority-badge.priority-high{color:#963a33;background:var(--corp-red-soft)}.priority-badge.priority-critical{color:#fff;background:#8e302c}.signal-badge{color:var(--muted);background:#eef1f3}.recommendation-card h3{margin:6px 0 0;font:600 18px/1.25 var(--font-sans)}.recommendation-finding{margin:0;font-size:13px;line-height:1.5}.recommendation-why{padding:12px 14px;border-radius:10px;background:#f1f4f6}.recommendation-why>span,.recommendation-action>span{display:block;color:var(--corp-blue);font-size:10px;font-weight:700}.recommendation-why p,.recommendation-action p{margin:5px 0 0;font-size:13px;line-height:1.5}.recommendation-alt,.recommendation-criterion{color:var(--ink)}.recommendation-alt span,.recommendation-criterion span{color:var(--muted);font-weight:700}.recommendation-action{padding:12px 14px;border:0;border-left:3px solid var(--corp-blue);border-radius:10px;background:#eef3f6}.recommendation-evidence{display:grid;gap:6px}.recommendation-evidence q{padding:9px 12px;border-left:3px solid #98a8b3;color:var(--ink);background:#f5f6f7;font-size:13px;line-height:1.5;font-style:italic}.recommendation-card footer{padding-top:12px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line)}.recommendation-card footer>div{display:flex;flex-wrap:wrap;gap:8px}.recommendation-card footer span{color:var(--muted);font-size:10px}.recommendation-actions{justify-content:flex-end}.take-action-form{display:flex;flex-wrap:wrap;align-items:end;gap:8px}.actions-page{display:grid;gap:22px}.action-group{display:grid;gap:12px}.action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.action-card{display:grid;gap:12px;padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff}.action-card header{display:flex;align-items:center;gap:8px}.action-card header a,.action-card header strong{color:var(--ink);font-size:14px;font-weight:750;text-decoration:none}.action-card p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}.action-card dl{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0}.action-card dl div{display:grid;gap:3px}.action-card dt{color:var(--muted);font-size:8px;font-weight:700;text-transform:uppercase}.action-card dd{margin:0;font-size:10px}.action-effect{display:flex;flex-wrap:wrap;gap:6px}.action-effect span{padding:5px 8px;border-radius:999px;background:var(--surface);font-size:9px}.priority-dot{width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:var(--muted)}.priority-dot.priority-high,.priority-dot.priority-critical{background:var(--danger)}.priority-dot.priority-medium{background:var(--corp-orange)}.primary-action{border-color:var(--green)!important;color:#fff!important;background:var(--green)!important}.take-into-work{justify-self:start;padding:9px 14px;border:1px solid var(--green);border-radius:8px;cursor:pointer}.take-action-form{padding:14px;border-radius:11px;background:var(--corp-blue-soft)}.take-action-form label{min-width:190px}.action-status-panel{padding:14px;display:grid;grid-template-columns:repeat(3,1fr) auto;align-items:center;gap:12px;border:1px solid #bbced9;border-radius:12px;background:#edf4f7}.action-status-panel>div{display:grid;gap:4px}.action-status-panel span{color:var(--green);font-size:8px;font-weight:800;text-transform:uppercase}.action-status-panel strong{font-size:11px}.action-status-panel small{color:var(--muted);font-size:9px}.text-action,.feedback-button{min-height:36px;padding:7px 12px;border:1px solid var(--line);border-radius:9px;color:var(--green);background:#fff;cursor:pointer;font-size:12px;font-weight:700}.text-action{border-color:transparent;background:transparent}.feedback-button.selected{border-color:#6c9db7;background:var(--corp-blue-soft)}.feedback-button.selected.negative-choice{border-color:#d2a29b;color:var(--corp-red);background:var(--corp-red-soft)}.inline-error{margin:0;color:var(--danger);font-size:12px}.improvements-panel{margin-top:18px;padding:16px;border:1px solid #bbced9;border-radius:14px;background:#edf4f7}.improvements-panel h2{margin:0 0 8px;font:600 18px/1.15 var(--font-sans)}.improvements-panel ul{margin:0;padding-left:18px;color:#365c70;font-size:13px;line-height:1.5}.report-hero-skeleton{background:#e4e8eb;box-shadow:none}.recommendation-skeleton{min-height:220px;border:0;box-shadow:none}.login-page,.full-loader{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 25% 15%,#07547d 0,transparent 32%),var(--sidebar)}.login-card{width:min(460px,100%);padding:38px;border-radius:24px;background:var(--cream);box-shadow:0 28px 90px #0000003d;text-align:center}.login-card .brand-logo{margin:0 auto;color:var(--green-dark)}.login-card h1{margin:18px 0 12px;font:600 38px/1.1 var(--font-sans)}.login-card p{margin:0 0 26px;color:var(--muted);font-size:13px;line-height:1.7}.login-error{margin-bottom:12px;padding:10px;border-radius:8px;color:#8d302c;background:var(--corp-red-soft);font-size:12px}.full-loader{align-content:center;justify-items:center;gap:12px;color:#fff;font-size:12px}.full-loader .brand-logo{color:#f5f6f6}.placeholder-page{min-height:80vh;display:grid;align-content:center;justify-items:start}.placeholder-page p{max-width:540px;margin-bottom:22px;line-height:1.7}@media(max-width:1500px){.filter-bar{grid-template-columns:repeat(3,minmax(0,1fr))}.filter-bar>.primary-button{min-height:38px;grid-column:auto}}@media(max-width:1180px){.overview-page,.trends-page,.restaurants-page,.recovery-page,.reviews-page,.recommendations-page,.placeholder-page{padding:28px 24px 52px}.metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.restaurant-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.recovery-layout{grid-template-columns:1fr}.transition-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trends-layout{grid-template-columns:1fr}.series-panel,.signals-panel{grid-column:auto}}@media(max-width:940px){.report-filters{width:100%}.report-select{max-width:none}}@media(max-width:900px){html,body{overflow-x:clip}.app-shell{display:block;background:transparent}.sidebar{position:sticky;z-index:30;top:0;width:100%;max-width:100%;height:auto;min-height:0;padding:12px 16px;display:grid;grid-template-columns:44px 1fr 44px;align-items:center}.brand{z-index:32;grid-column:2;justify-self:center;justify-items:center;min-width:0;padding:0;max-width:100%}.brand .brand-logo{width:min(168px,100%)}.brand .brand-logo svg{width:100%;height:auto}.brand small,.session-card{display:none}.menu-toggle{position:relative;z-index:33;grid-column:3;justify-self:end;width:44px;height:44px;padding:0;display:grid;place-content:center;gap:5px;border:1px solid rgba(255,255,255,.16);border-radius:11px;color:#fff;background:#ffffff12;cursor:pointer}.menu-toggle span{width:20px;height:2px;border-radius:999px;background:currentColor;transition:transform .18s ease,opacity .18s ease}.menu-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.sidebar nav{position:fixed;z-index:32;top:0;right:0;bottom:0;width:min(320px,calc(100% - 52px));padding:76px 14px 20px;display:grid;align-content:start;gap:3px;overflow-y:auto;border-left:1px solid #303943;background:var(--sidebar);box-shadow:-18px 0 36px #1d29373d;transform:translate(100%);visibility:hidden;transition:transform .22s ease,visibility 0s linear .22s}.sidebar nav.mobile-open{transform:translate(0);visibility:visible;transition-delay:0s}.sidebar nav a{padding:12px 13px}.sidebar nav a.active{box-shadow:inset 3px 0 var(--corp-blue)}.menu-backdrop{position:fixed;z-index:31;inset:0;width:100%;height:100%;padding:0;display:block;border:0;background:#121a218f;opacity:0;visibility:hidden;cursor:default;transition:opacity .22s ease,visibility 0s linear .22s}.menu-backdrop.mobile-open{opacity:1;visibility:visible;transition-delay:0s}.metrics-grid,.filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-bar>.primary-button{grid-column:1 / -1}.page-header{display:block}.period-summary{min-width:0;margin-top:16px}.report-controls{align-items:stretch;flex-direction:column}.report-filters{min-width:0;width:100%}.report-select{max-width:none}.report-period-switch{width:100%}.report-period-switch button{flex:1;padding:8px 10px}.recommendation-card header>div{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px 10px}.recommendation-card header>div>div{display:contents}.recommendation-card h3{grid-column:1 / -1;margin:0}}@media(max-width:760px){.overview-page,.trends-page,.restaurants-page,.recovery-page,.reviews-page,.recommendations-page,.placeholder-page{padding:26px 18px 44px}.report-hero{grid-template-columns:1fr;padding:16px}.report-impact{padding:14px 0 0;border-left:0;border-top:1px solid rgba(255,255,255,.22)}.report-impact strong{font-size:36px}.recommendation-card{padding:14px}.recommendation-card header>strong{white-space:normal}.report-metrics,.action-status-panel{grid-template-columns:1fr}.recommendation-card header{flex-direction:column}.recommendation-card footer{align-items:flex-start;flex-direction:column}.recommendation-actions{justify-content:flex-start}.page-header{display:block}.privacy-note{margin-top:18px}.period-summary{min-width:0;margin-top:18px}.filter-bar{min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.filter-bar>label,.filter-bar input:not([type=checkbox]){min-width:0;width:100%}.filter-bar .primary-button{grid-column:1 / -1}.metrics-grid{grid-template-columns:1fr 1fr}.signal-columns{grid-template-columns:1fr}.signal-columns>div+div{padding:0;border:0}.signal-list button,.restaurant-change,.restaurant-metrics,.restaurant-detail-grid,.recovery-layout,.episode-grid{grid-template-columns:1fr}.transition-grid{grid-template-columns:1fr 1fr}.transition-panel,.restaurant-detail-grid .series-panel{grid-column:auto}.token-filter-banner{align-items:flex-start;flex-direction:column}.restaurant-table-scroll{overflow:visible}.restaurant-table,.restaurant-table thead,.restaurant-table tbody{display:block;width:100%;min-width:0}.restaurant-table thead tr{display:flex;flex-wrap:wrap;gap:6px}.restaurant-table thead th{padding:0;border:0}.restaurant-table thead th:first-child,.restaurant-table thead th:last-child{display:none}.restaurant-table thead button{padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:10px;letter-spacing:0;text-transform:none}.restaurant-table tbody tr{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;margin-top:8px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}.restaurant-table tbody th,.restaurant-table tbody td{padding:0;border:0;min-width:0}.restaurant-table tbody th{grid-column:1 / -1}.restaurant-table tbody td:before{display:block;margin-bottom:2px;color:var(--muted);font-size:8px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.restaurant-table tbody td:nth-child(2):before{content:"Средняя оценка"}.restaurant-table tbody td:nth-child(3):before{content:"Доля негатива"}.restaurant-table tbody td:nth-child(4):before{content:"Изменение оценки"}.restaurant-table tbody td:nth-child(4),.restaurant-table tbody td:last-child{grid-column:1 / -1}.restaurant-table tbody td:nth-child(5):before{content:"Отзывы"}.restaurant-table tbody td:last-child:before{content:none}.table-comparisons>span{min-width:0}.table-action{width:100%}}@media(max-width:470px){.metrics-grid,.filter-bar{grid-template-columns:minmax(0,1fr)}.filter-bar .primary-button{grid-column:auto}.transition-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.skeleton:after{animation:none}.menu-toggle span,.sidebar nav,.menu-backdrop{transition:none}}
