:root {
  --ms-bg: #f4f7f9;
  --ms-surface: #ffffff;
  --ms-surface-2: #f7f9fa;
  --ms-text: #17232d;
  --ms-muted: #667782;
  --ms-line: #dbe3e7;
  --ms-navy: #092b49;
  --ms-teal: #078b8b;
  --ms-teal-soft: #e8f6f4;
  --ms-warn: #a86412;
  --ms-warn-soft: #fff4df;
  --ms-good: #237646;
  --ms-good-soft: #eaf6ee;
  --ms-danger: #a13b3b;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  background: var(--ms-bg);
  color: var(--ms-text);
  line-height: 1.5;
}

.ms-auth-page { min-height:100vh; display:grid; grid-template-columns:minmax(430px,1.05fr) minmax(430px,.95fr); background:#f6f9fb; }
.ms-auth-visual { position:relative; isolation:isolate; display:flex; flex-direction:column; min-height:100vh; overflow:hidden; padding:40px clamp(42px,5vw,78px); color:#fff; background:linear-gradient(145deg,#061d35 0%,#082e4d 48%,#06495b 100%); }
.ms-auth-visual::before { content:""; position:absolute; z-index:-1; inset:0; opacity:.18; background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px); background-size:54px 54px; mask-image:linear-gradient(to bottom,transparent 8%,#000 55%,transparent); }
.ms-auth-visual::after { content:""; position:absolute; z-index:-1; width:440px; height:440px; right:-160px; bottom:-170px; border:1px solid rgba(96,231,218,.22); border-radius:50%; box-shadow:0 0 0 70px rgba(77,210,202,.025),0 0 0 140px rgba(77,210,202,.02); }
.ms-auth-glow { position:absolute; z-index:-1; border-radius:50%; filter:blur(1px); }
.ms-auth-glow.is-one { width:380px; height:380px; top:16%; right:-100px; background:radial-gradient(circle,rgba(39,205,198,.23),transparent 68%); }
.ms-auth-glow.is-two { width:300px; height:300px; bottom:3%; left:-150px; background:radial-gradient(circle,rgba(46,133,218,.22),transparent 68%); }
.ms-auth-brand, .ms-auth-mobile-brand { display:flex; align-items:center; gap:12px; font-size:21px; letter-spacing:-.02em; }
.ms-auth-logo { position:relative; display:block; width:36px; height:32px; }
.ms-auth-logo i { position:absolute; top:4px; width:13px; height:24px; border-radius:5px 5px 8px 8px; transform:skewY(-34deg); background:linear-gradient(180deg,#36d9cf,#0f93d6); box-shadow:0 7px 18px rgba(21,196,204,.24); }
.ms-auth-logo i:nth-child(1) { left:0; }
.ms-auth-logo i:nth-child(2) { left:11px; top:8px; height:17px; transform:skewY(34deg); background:linear-gradient(180deg,#5ce2d2,#21b4bf); }
.ms-auth-logo i:nth-child(3) { right:0; transform:skewY(34deg); background:linear-gradient(180deg,#30cfc7,#1188cd); }
.ms-auth-message { width:min(610px,100%); margin:auto 0; padding:70px 0; }
.ms-auth-eyebrow, .ms-auth-secure { display:inline-flex; align-items:center; gap:8px; color:#76ddd5; font-size:11px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.ms-auth-eyebrow i, .ms-auth-secure i { width:7px; height:7px; border-radius:50%; background:#50d4c8; box-shadow:0 0 0 5px rgba(80,212,200,.12); }
.ms-auth-message h1 { margin:22px 0 18px; max-width:610px; font-size:clamp(40px,4.5vw,68px); line-height:1.04; letter-spacing:-.055em; }
.ms-auth-message > p { max-width:520px; margin:0; color:#b9ccda; font-size:16px; line-height:1.7; }
.ms-auth-benefits { display:flex; flex-wrap:wrap; gap:14px 24px; margin-top:48px; }
.ms-auth-benefits span { display:flex; align-items:center; gap:9px; color:#d7e6ed; font-size:11px; }
.ms-auth-benefits b { color:#63d9d0; font-size:9px; letter-spacing:.08em; }
.ms-auth-visual-footer { display:flex; align-items:center; gap:11px; color:#8eabbc; font-size:10px; letter-spacing:.04em; }
.ms-auth-visual-footer i { width:28px; height:1px; background:#4b7185; }
.ms-auth-panel { display:flex; flex-direction:column; min-height:100vh; padding:38px clamp(42px,7vw,110px) 28px; background:radial-gradient(circle at 100% 0,rgba(25,159,168,.07),transparent 32%),#f8fafb; }
.ms-auth-form { width:min(430px,100%); margin:auto; }
.ms-auth-mobile-brand { display:none; margin-bottom:45px; color:#0a304d; }
.ms-auth-secure { color:#26898d; letter-spacing:.04em; }
.ms-auth-secure i { width:6px; height:6px; background:#35aa8a; box-shadow:0 0 0 4px rgba(53,170,138,.1); }
.ms-auth-form h2 { margin:18px 0 7px; color:#10253a; font-size:36px; line-height:1.15; letter-spacing:-.04em; }
.ms-auth-subtitle { margin:0 0 34px; color:#6e7e8e; font-size:13px; }
.ms-auth-field { display:grid; gap:7px; margin-bottom:18px; }
.ms-auth-field > span:first-child { color:#405367; font-size:11px; font-weight:700; }
.ms-auth-input-wrap { position:relative; display:flex; align-items:center; }
.ms-auth-input-wrap > svg { position:absolute; left:15px; width:18px; height:18px; fill:none; stroke:#78909e; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; pointer-events:none; }
.ms-auth-input-wrap input { width:100%; height:52px; padding:0 48px 0 46px; border:1px solid #d4dee5; border-radius:11px; outline:none; color:#15283b; background:#fff; font:500 13px/1.4 inherit; box-shadow:0 3px 12px rgba(16,53,73,.035); transition:border-color .18s,box-shadow .18s,transform .18s; }
.ms-auth-input-wrap input::placeholder { color:#a0adb7; }
.ms-auth-input-wrap input:focus { border-color:#25999d; box-shadow:0 0 0 4px rgba(37,153,157,.11),0 8px 24px rgba(17,77,95,.07); }
.ms-auth-password-toggle { position:absolute; right:9px; display:grid; place-items:center; width:36px; height:36px; padding:0; border:0; border-radius:8px; color:#738693; background:transparent; cursor:pointer; }
.ms-auth-password-toggle:hover { color:#137d85; background:#eef7f7; }
.ms-auth-password-toggle svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.6; }
.ms-auth-submit { display:flex; justify-content:center; align-items:center; gap:11px; width:100%; height:52px; margin-top:26px; border:0; border-radius:11px; color:#fff; background:linear-gradient(105deg,#087e8a,#079ba0); font:700 13px/1 inherit; cursor:pointer; box-shadow:0 12px 26px rgba(5,135,143,.22); transition:transform .16s,box-shadow .16s,filter .16s; }
.ms-auth-submit:hover { transform:translateY(-1px); filter:brightness(1.04); box-shadow:0 15px 30px rgba(5,135,143,.28); }
.ms-auth-submit:active { transform:translateY(0); }
.ms-auth-submit svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; transition:transform .16s; }
.ms-auth-submit:hover svg { transform:translateX(3px); }
.ms-auth-help { margin:22px 0 0; color:#8996a1; font-size:10px; text-align:center; }
.ms-auth-panel footer { margin-top:auto; padding-top:35px; color:#9ba6ae; font-size:9px; text-align:center; }
@media (max-width:900px) { .ms-auth-page { grid-template-columns:1fr; } .ms-auth-visual { display:none; } .ms-auth-panel { padding:32px 24px 22px; } .ms-auth-mobile-brand { display:flex; } }
@media (max-width:480px) { .ms-auth-form h2 { font-size:31px; } .ms-auth-panel { padding-inline:18px; } .ms-auth-input-wrap input,.ms-auth-submit { height:50px; } }

.flash-messages {
  position: fixed;
  top: 16px;
  right: 16px;
  z-index: 100;
  display: grid;
  gap: 8px;
}

.flash {
  padding: 12px 16px;
  border-radius: 9px;
  background: var(--ms-surface);
  border: 1px solid var(--ms-line);
  box-shadow: 0 8px 24px rgba(20, 45, 60, 0.12);
}

.flash-danger { border-left: 4px solid var(--ms-danger); }
.flash-info { border-left: 4px solid var(--ms-teal); }
.flash-success { border-left: 4px solid var(--ms-good); }

.ms-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 218px minmax(0, 1fr);
}

.ms-sidebar {
  background: var(--ms-navy);
  color: #f5fbfd;
  padding: 22px 16px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.ms-sidebar { box-shadow: 8px 0 26px rgba(9,43,73,.08); }

.ms-brand { display: flex; align-items: center; gap: 10px; font-weight: 700; letter-spacing: .02em; }
.ms-brand-mark { width: 34px; height: 34px; border-radius: 10px; background: #35b6b2; display: grid; place-items: center; color: #0f3243; }

.ms-nav { display: grid; gap: 6px; }
.ms-nav-button {
  width: 100%; border: 0; background: transparent; color: #d9e7ed; text-align: left;
  padding: 11px 12px; border-radius: 9px; display: flex; align-items: center; gap: 10px; cursor: pointer;
  text-decoration: none;
}
.ms-nav-button:hover { background: rgba(255,255,255,.08); }
.ms-nav-button[aria-selected="true"] { background: #f5fbfd; color: #173b53; font-weight: 600; }
.ms-sidebar-note { margin-top: auto; color: #b9cbd3; font-size: 12px; line-height: 1.45; padding: 12px; border-top: 1px solid rgba(255,255,255,.14); }

.ms-main { min-width: 0; }
.ms-topbar {
  height: 72px; padding: 0 28px; background: var(--ms-surface); border-bottom: 1px solid var(--ms-line);
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.ms-breadcrumb { color: var(--ms-muted); font-size: 13px; }
.ms-user { display: flex; align-items: center; gap: 10px; }
.ms-avatar { width: 36px; height: 36px; border-radius: 50%; background: var(--ms-teal-soft); color: var(--ms-teal); display: grid; place-items: center; font-weight: 700; }
.ms-user-meta { line-height: 1.2; }
.ms-user-meta small { display: block; color: var(--ms-muted); margin-top: 3px; }

.ms-page { display: none; padding: 26px 28px 32px; }
.ms-page.is-active { display: block; }
.ms-page-head h1 { letter-spacing:-.025em; }
.ms-page-head { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; margin-bottom: 22px; }
.ms-page-head h1 { font-size: 26px; margin: 0; }
.ms-subtitle { color: var(--ms-muted); margin-top: 6px; }

.ms-action {
  border: 1px solid var(--ms-line); background: var(--ms-surface); color: var(--ms-text); border-radius: 9px;
  padding: 9px 13px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; cursor: pointer;
  text-decoration: none;
}
.ms-action:hover { border-color: var(--ms-teal); }
.ms-action-primary { background: var(--ms-teal); color: #ffffff; border-color: var(--ms-teal); font-weight: 600; }
.ms-action-quiet { background: transparent; }
.ms-action-danger { color: var(--ms-danger); border-color: var(--ms-danger); }

.ms-toolbar { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 16px; align-items: flex-end; }
.ms-field { display: grid; gap: 6px; min-width: 0; }
.ms-field label { color: var(--ms-muted); font-size: 12px; font-weight: 600; }
.ms-input, .ms-select, .ms-textarea {
  width: 100%; border: 1px solid var(--ms-line); border-radius: 9px; background: var(--ms-surface); color: var(--ms-text); padding: 10px 11px;
  font: inherit;
}
.ms-input:focus, .ms-select:focus, .ms-textarea:focus { outline: 2px solid var(--ms-teal); outline-offset: 1px; }
.ms-search { flex: 1 1 230px; }
.ms-filter { flex: 0 1 170px; }

.ms-surface {
  background: var(--ms-surface); border: 1px solid var(--ms-line); border-radius: 12px; overflow: hidden;
}
.ms-form-section { padding: 20px; margin-bottom: 14px; }
.ms-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.ms-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.ms-placement-parameters { display:grid; gap:14px; }
.ms-campaign-field { max-width:none; }
.ms-date-range { display:grid; grid-template-columns:minmax(180px,1fr) auto minmax(180px,1fr); gap:10px; align-items:end; padding:12px; border:1px solid var(--ms-line); border-radius:9px; background:var(--ms-surface-2); }
.ms-date-range-label { grid-column:1/-1; color:var(--ms-muted); font-size:12px; font-weight:650; }
.ms-date-separator { align-self:end; padding:0 2px 10px; color:var(--ms-muted); }
.ms-profile-contact-note { margin:12px 0 0; padding:9px 11px; border-radius:8px; background:var(--ms-teal-soft); color:var(--ms-muted); font-size:12px; }

.ms-table-wrap { overflow-x: auto; }
.ms-table-wrap table { width: 100%; border-collapse: collapse; min-width: 720px; }
.ms-table-wrap th { color: var(--ms-muted); background: var(--ms-surface-2); text-align: left; font-size: 12px; font-weight: 600; padding: 11px 13px; }
.ms-table-wrap td { padding: 13px; border-top: 1px solid var(--ms-line); vertical-align: middle; }
.ms-table-wrap tbody tr { cursor: pointer; }
.ms-table-wrap tbody tr:hover { background: var(--ms-teal-soft); }
.ms-code { font-weight: 700; color: var(--ms-teal); }

.ms-status {
  display: inline-flex; align-items: center; gap: 6px; padding: 5px 8px; border-radius: 999px;
  font-size: 12px; font-weight: 600; white-space: nowrap;
}
.ms-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.ms-status-draft { color: var(--ms-muted); background: var(--ms-surface-2); }
.ms-status-submitted, .ms-status-resubmitted { color: var(--ms-warn); background: var(--ms-warn-soft); }
.ms-status-in_progress, .ms-status-under_review, .ms-status-needs_revision { color: var(--ms-warn); background: var(--ms-warn-soft); }
.ms-status-approved, .ms-status-scheduled { color: var(--ms-good); background: var(--ms-good-soft); }
.ms-status-on_air { color: var(--ms-teal); background: var(--ms-teal-soft); }
.ms-status-completed { color: var(--ms-muted); background: var(--ms-surface-2); }
.ms-status-rejected, .ms-status-cancelled { color: var(--ms-danger); background: #fff0f0; }

.ms-form-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 18px; align-items: start; }

.ms-screen-section { overflow:visible; }
.ms-section-title { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:14px; }
.ms-section-title h2 { margin-bottom:2px; }
.ms-selected-total { color:var(--ms-teal); white-space:nowrap; padding-top:4px; }
.ms-city-tabs { display:flex; gap:6px; padding:5px; background:var(--ms-surface-2); border:1px solid var(--ms-line); border-radius:10px; margin-bottom:12px; }
.ms-city-tab { flex:1; border:0; background:transparent; padding:10px 14px; border-radius:7px; color:var(--ms-muted); font:inherit; font-weight:650; cursor:pointer; }
.ms-city-tab.is-active { color:var(--ms-navy); background:var(--ms-surface); box-shadow:0 1px 5px rgba(9,43,73,.10); }
.ms-city-count { display:inline-grid; place-items:center; min-width:22px; height:22px; padding:0 6px; margin-left:5px; border-radius:11px; background:#e6eef2; color:var(--ms-navy); font-size:11px; }
.ms-city-tab.is-active .ms-city-count { background:var(--ms-teal-soft); color:var(--ms-teal); }
.ms-screen-toolbar { display:flex; gap:8px; margin-bottom:12px; align-items:center; }
.ms-screen-toolbar .ms-input { flex:1; }
.ms-screen-picker, .ms-screen-city { display:grid; gap:10px; }
.ms-screen-city.is-hidden { display:none; }
.ms-screen-complex { border:1px solid var(--ms-line); border-radius:10px; background:var(--ms-surface-2); overflow:visible; }
.ms-screen-complex-head { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:11px 13px; border-bottom:1px solid var(--ms-line); background:var(--ms-surface); border-radius:10px 10px 0 0; }
.ms-screen-complex-head > div { display:flex; align-items:center; gap:8px; }
.ms-complex-count { padding:2px 7px; border-radius:10px; background:var(--ms-surface-2); color:var(--ms-muted); font-size:11px; }
.ms-link-button { border:0; padding:3px 5px; background:transparent; color:var(--ms-teal); font:inherit; font-size:12px; cursor:pointer; }
.ms-link-button:hover { text-decoration:underline; }
.ms-screen-tiles { display:grid; grid-template-columns:repeat(auto-fit,minmax(185px,1fr)); gap:9px; padding:10px; }
.ms-screen-row {
  position:relative; display:flex; gap:9px; min-height:92px; padding:11px; border:1px solid var(--ms-line); border-radius:9px;
  background:var(--ms-surface); cursor:pointer; transition:border-color .15s, box-shadow .15s, background .15s;
}
.ms-screen-row:hover { border-color:#9fc7c7; box-shadow:0 3px 12px rgba(9,43,73,.07); }
.ms-screen-row.is-selected { border-color:var(--ms-teal); background:#f5fcfb; box-shadow:inset 0 0 0 1px var(--ms-teal); }
.ms-screen-row > input[type="checkbox"] { position:absolute; opacity:0; pointer-events:none; }
.ms-tile-check { flex:0 0 21px; width:21px; height:21px; border:1px solid #b8c6cc; border-radius:5px; color:transparent; display:grid; place-items:center; font-size:13px; font-weight:800; background:white; }
.ms-screen-row.is-selected .ms-tile-check { color:white; background:var(--ms-teal); border-color:var(--ms-teal); }
.ms-tile-body { min-width:0; display:grid; align-content:start; gap:3px; flex:1; }
.ms-tile-top { display:flex; align-items:center; justify-content:flex-start; gap:12px; }
.ms-tile-top b { color:var(--ms-navy); font-size:15px; }
.ms-tile-top > span { color:var(--ms-teal); font-size:11px; white-space:nowrap; }
.ms-tile-body > small { color:var(--ms-muted); font-size:10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ms-screen-name {
  color: var(--ms-text); font-weight: 650; position: relative; cursor: help;
  width: fit-content; border: 0; border-bottom: 1px dotted currentColor;
  background: transparent; padding: 0; text-align: left;
}
.ms-screen-photo {
  display: none; position: absolute; z-index: 20; left: 0; bottom: calc(100% + 9px); width: 250px;
  background: var(--ms-surface); color: var(--ms-text); border: 1px solid var(--ms-line); border-radius: 11px;
  padding: 10px; box-shadow: 0 12px 30px rgba(20,45,60,.12);
}
.ms-screen-name:hover .ms-screen-photo,
.ms-screen-name:focus .ms-screen-photo { display: block; }
.ms-photo-demo { height: 118px; border-radius: 8px; background: linear-gradient(145deg, #b9c7cc, #eef2f3); position: relative; overflow: hidden; margin-bottom: 8px; }
.ms-photo-demo::before { content: ""; position: absolute; width: 112px; height: 70px; left: 67px; top: 25px; background: linear-gradient(135deg, #17435e, #2bb2ad); border: 7px solid #38464d; box-shadow: 0 13px 18px rgba(0,0,0,.22); }

.ms-file-map { margin-top: 12px; display: grid; gap: 8px; }
.ms-file-row {
  display: grid; grid-template-columns: 124px 1fr auto; align-items: center; gap: 10px;
  padding: 10px 12px; background: var(--ms-surface-2); border-radius: 9px;
}
.ms-file-ok { color: var(--ms-good); font-weight: 600; }
.ms-file-status-warning { color:var(--ms-warn); }
.ms-file-status-pending { color:var(--ms-muted); }
.ms-material-validation-message { margin:8px 0; padding:8px 10px; border-radius:7px; font-size:11px; }
.ms-material-validation-message.is-warning { color:var(--ms-warn); background:var(--ms-warn-soft); border:1px solid #e6c47a; }
.ms-material-validation-message.is-pending { color:var(--ms-muted); background:var(--ms-surface-2); border:1px solid var(--ms-line); }

.ms-summary { padding: 18px; position: sticky; top: 16px; }
.ms-summary dl { margin: 0; display: grid; gap: 12px; }
.ms-summary dt { color: var(--ms-muted); font-size: 12px; }
.ms-summary dd { margin: 3px 0 0; font-weight: 600; }
.ms-summary-actions { display: grid; gap: 9px; margin-top: 18px; }
.ms-resolution-banner { border-top:1px solid var(--ms-line); margin-top:16px; padding-top:12px; max-height:260px; overflow:auto; font-size:12px; }
.ms-resolution-banner summary { cursor:pointer; font-weight:700; margin-bottom:8px; }
.ms-resolution-item { display:grid; grid-template-columns:minmax(90px,1fr) auto; gap:1px 8px; padding:8px 0; border-bottom:1px solid var(--ms-line); }
.ms-resolution-item b { color:var(--ms-navy); }
.ms-resolution-item span { text-align:right; color:var(--ms-teal); font-weight:650; }
.ms-resolution-item small { grid-column:1/-1; color:var(--ms-muted); }
.ms-inline-form { display:inline; margin:0; }
.ms-inline-map { display:flex; gap:6px; min-width:320px; }
.ms-notification { display:flex; align-items:center; gap:12px; padding:12px; border-bottom:1px solid var(--ms-line); }
.ms-notification.is-unread { background:var(--ms-teal-soft); }
.ms-notification form { margin-left:auto; }
.ms-placement { display:inline-block; border-radius:5px; padding:2px 6px; font-size:11px; font-weight:700; }
.ms-placement-commercial { background:#e8f1ff; color:#24599a; }
.ms-placement-internal { background:#e7f7ef; color:#18714b; }

.ms-detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 18px; }
.ms-detail-block { padding: 18px; margin-bottom: 14px; }
.ms-detail-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px 22px; }
.ms-detail-item small { display: block; color: var(--ms-muted); margin-bottom: 4px; }
.ms-media-preview { display: grid; grid-template-columns: 150px 1fr; gap: 14px; align-items: center; }
.ms-video-frame { height: 92px; border-radius: 9px; background: linear-gradient(135deg, #15394e, #2a7e85); color: white; display: grid; place-items: center; }

.ms-checklist { display: grid; gap: 10px; }
.ms-check { display: flex; gap: 9px; align-items: flex-start; padding-bottom: 10px; border-bottom: 1px solid var(--ms-line); }
.ms-check:last-child { border-bottom: 0; }
.ms-check-mark { color: var(--ms-good); }
.ms-history { display: grid; gap: 0; }
.ms-history-row { position: relative; padding: 0 0 18px 24px; }
.ms-history-row::before { content: ""; position: absolute; left: 6px; top: 6px; bottom: 0; width: 1px; background: var(--ms-line); }
.ms-history-row::after { content: ""; position: absolute; left: 2px; top: 5px; width: 9px; height: 9px; border-radius: 50%; background: var(--ms-teal); }
.ms-history-row:last-child::before { display: none; }
.ms-history-row small { color: var(--ms-muted); }
.ms-operator-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 14px; }

.ms-radio-group { display: flex; gap: 16px; }
.ms-radio { display: flex; align-items: center; gap: 6px; cursor: pointer; }
.ms-placement-choice { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.ms-placement-choice .ms-radio { position:relative; border:1px solid var(--ms-line); border-radius:9px; padding:14px; min-height:74px; gap:12px; background:var(--ms-surface); }
.ms-placement-choice .ms-radio:has(input:checked) { border-color:var(--ms-teal); box-shadow:inset 0 0 0 1px var(--ms-teal); background:#f6fcfb; }
.ms-placement-choice input { position:absolute; opacity:0; }
.ms-choice-icon { display:grid; place-items:center; width:38px; height:38px; border-radius:9px; background:var(--ms-teal-soft); color:var(--ms-teal); font-weight:800; }
.ms-placement-choice strong, .ms-placement-choice small { display:block; }
.ms-placement-choice small { color:var(--ms-muted); font-size:11px; margin-top:2px; }

.material-row {
  border: 1px solid var(--ms-line); border-radius: 9px; padding: 12px; margin-bottom: 10px;
  background: var(--ms-surface-2);
}
.material-row h4 { margin: 0 0 10px; font-size: 14px; }
.ms-auto-metadata { min-height:42px; display:flex; align-items:center; padding:9px 11px; border:1px solid #cce4e2; border-radius:9px; background:var(--ms-teal-soft); color:var(--ms-teal); font-size:12px; font-weight:600; }
.ms-material-warning { margin-top:7px; padding:9px 11px; border:1px solid #e6c47a; border-radius:8px; background:var(--ms-warn-soft); color:var(--ms-warn); font-size:11px; line-height:1.4; }
.ms-dropzone { position:relative; min-height:112px; display:grid; grid-template-columns:42px 1fr; align-items:center; gap:4px 12px; padding:16px; border:2px dashed #b8cbd2; border-radius:11px; background:var(--ms-surface); cursor:pointer; transition:border-color .15s, background .15s, box-shadow .15s; }
.ms-dropzone:hover, .ms-dropzone:focus-visible { border-color:var(--ms-teal); background:#f6fcfb; outline:0; box-shadow:0 0 0 3px rgba(7,139,139,.12); }
.ms-dropzone.is-dragging { border-color:var(--ms-teal); background:var(--ms-teal-soft); box-shadow:inset 0 0 0 1px var(--ms-teal); }
.ms-dropzone.has-file { border-style:solid; border-color:#8bc7b0; background:var(--ms-good-soft); }
.ms-dropzone.is-error { border-style:solid; border-color:#df9b91; background:#fff3f1; }
.ms-dropzone-input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.ms-dropzone-icon { grid-row:1/3; width:42px; height:42px; display:grid; place-items:center; border-radius:10px; background:var(--ms-teal-soft); color:var(--ms-teal); font-size:24px; font-weight:800; }
.ms-dropzone-copy { min-width:0; }
.ms-dropzone-copy strong, .ms-dropzone-copy small { display:block; }
.ms-dropzone-copy strong { color:var(--ms-navy); font-size:13px; }
.ms-dropzone-copy small { margin-top:3px; color:var(--ms-muted); font-size:10px; }
.ms-dropzone-status { grid-column:2; color:var(--ms-muted); font-size:10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ms-dropzone.has-file .ms-dropzone-status { color:var(--ms-good); font-weight:650; }
.ms-dropzone.is-error .ms-dropzone-status { color:var(--ms-danger); font-weight:650; white-space:normal; }

.text-muted { color: var(--ms-muted); }
.text-center { text-align: center; }

.ms-kpi-grid { grid-template-columns:repeat(5,minmax(150px,1fr)); }
.viz-stat { min-height:112px; position:relative; overflow:hidden; }
.viz-stat::after { content:""; position:absolute; width:54px; height:54px; border-radius:50%; right:-12px; bottom:-18px; background:var(--ms-teal-soft); }
.viz-stat.is-alert { border-color:#e5b1a7; background:#fff9f7; }
.viz-stat.is-alert .viz-stat-value { color:var(--ms-danger); }
.ms-ops-layout { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(300px,.75fr); gap:16px; margin-top:18px; }
.ms-ops-queue, .ms-ops-inspector { padding:18px; }
.ms-panel-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:14px; }
.ms-panel-head h2 { margin:0; }
.ms-ops-queue table { min-width:760px; }
.ms-ops-queue tr { cursor:default; }
.ms-ops-queue .ms-ops-queue-row { cursor:pointer; }
.ms-ops-queue .ms-ops-queue-row:focus-visible { outline:2px solid var(--ms-teal); outline-offset:-2px; }
.ms-ops-queue form { margin:0; }
.ms-ops-inspector { position:sticky; top:16px; align-self:start; }
.ms-validation-list { display:grid; gap:10px; margin:18px 0; border-top:1px solid var(--ms-line); border-bottom:1px solid var(--ms-line); padding:14px 0; }
.is-ok { color:var(--ms-good); font-weight:800; margin-right:6px; }
.is-bad { color:var(--ms-danger); font-weight:800; margin-right:6px; }
.ms-calendar-legend { display:flex; align-items:center; gap:18px; margin:0 0 12px; font-size:12px; color:var(--ms-muted); }
.ms-calendar-legend span { display:flex; align-items:center; gap:6px; }
.ms-calendar-legend i { width:10px; height:10px; border-radius:3px; }
.ms-calendar-legend .is-commercial { background:#2867bd; }
.ms-calendar-legend .is-internal { background:#199a62; }
.ms-calendar-legend .is-limit { background:#dc8428; }
.ms-calendar-scale { margin-left:auto; border:1px solid var(--ms-line); border-radius:8px; overflow:hidden; gap:0 !important; }
.ms-calendar-scale a { color:var(--ms-text); padding:6px 10px; text-decoration:none; border-right:1px solid var(--ms-line); background:var(--ms-surface); }
.ms-calendar-scale a:last-child { border-right:0; }

@media (max-width: 760px) {
  .ms-shell { grid-template-columns: 1fr; }
  .ms-sidebar { display: none; }
  .ms-form-layout, .ms-detail-grid { grid-template-columns: 1fr; }
  .ms-grid-2, .ms-grid-3, .ms-detail-list { grid-template-columns: 1fr; }
  .ms-screen-toolbar { flex-wrap:wrap; }
  .ms-screen-toolbar .ms-input { flex-basis:100%; order:-1; }
  .ms-screen-tiles { grid-template-columns:1fr; }
  .ms-city-tabs { flex-direction:column; }
  .ms-placement-choice { grid-template-columns:1fr; }
  .ms-date-range { grid-template-columns:1fr; }
  .ms-date-range-label { grid-column:1; }
  .ms-date-separator { display:none; }
  .ms-summary { position: static; }
  .ms-ops-layout { grid-template-columns:1fr; }
  .ms-kpi-grid { grid-template-columns:1fr 1fr; }
}

.ms-calendar-table { width: 100%; border-collapse: collapse; min-width: 1200px; }
.ms-calendar-table th { background: var(--ms-surface-2); padding: 8px 4px; font-size: 11px; border: 1px solid var(--ms-line); white-space: nowrap; }
.ms-calendar-table thead th { position:sticky; top:0; z-index:3; }
.ms-calendar-table th:first-child, .ms-calendar-table td:first-child { position:sticky; left:0; z-index:2; background:var(--ms-surface); }
.ms-calendar-table thead th:first-child { z-index:4; background:var(--ms-surface-2); }
.ms-calendar-table td { border: 1px solid var(--ms-line); padding: 4px; vertical-align: top; min-width: 48px; }
.ms-calendar-screen { white-space: nowrap; }
.ms-calendar-screen small { display: block; color: var(--ms-muted); }
.ms-today { background: var(--ms-teal-soft); }
.ms-weekend { background:#faf6f0 !important; }
.is-over-limit { color:var(--ms-danger); background:#fff0f0; border:1px solid var(--ms-danger); border-radius:4px; padding:2px; }
.ms-calendar-load { font-size: 11px; color: var(--ms-muted); margin-bottom: 4px; }
.ms-calendar-bar { display: block; font-size: 10px; padding: 2px 4px; border-radius: 4px; margin-bottom: 2px; text-decoration: none; white-space: nowrap; }
.ms-calendar-bar:hover { opacity: 0.9; }
.ms-addreality-load { color:#5f4b8b; font-weight:700; border-top:1px dashed #b8acd3; margin-top:4px; padding-top:3px; }
.ms-addreality-bar { background:#ece7f7; color:#4d3878; border-left:3px solid #7658ad; }

/* Операционный центр */
.ms-ops-page { padding:18px 20px 26px; }
.ms-ops-page-head { align-items:center; margin-bottom:14px; }
.ms-ops-page-head h1 { font-size:29px; }
.ms-live-indicator { display:inline-flex; align-items:center; gap:7px; padding:7px 10px; border:1px solid var(--ms-line); border-radius:8px; background:var(--ms-surface); color:var(--ms-muted); font-size:12px; }
.ms-live-indicator i { width:8px; height:8px; border-radius:50%; background:#30a864; box-shadow:0 0 0 4px #eaf6ee; }
.ms-ops-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.ms-ops-kpi { min-width:0; display:flex; align-items:center; gap:13px; min-height:88px; padding:13px 15px; border:1px solid var(--ms-line); border-radius:11px; background:var(--ms-surface); color:var(--ms-text); text-decoration:none; box-shadow:0 2px 7px rgba(9,43,73,.025); }
.ms-ops-kpi:hover { border-color:#b8d2d8; box-shadow:0 5px 16px rgba(9,43,73,.07); }
.ms-ops-kpi > span:last-child { min-width:0; display:grid; grid-template-columns:1fr auto; align-items:baseline; column-gap:8px; flex:1; }
.ms-ops-kpi small { color:var(--ms-muted); font-size:12px; font-weight:650; }
.ms-ops-kpi strong { grid-row:1/3; grid-column:2; font-size:27px; line-height:1; color:var(--ms-navy); }
.ms-ops-kpi em { grid-column:1; color:var(--ms-muted); font-size:11px; font-style:normal; margin-top:4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ms-ops-kpi.is-alert { border-color:#efc8bd; background:#fffafa; }
.ms-ops-kpi.is-alert strong { color:#d34f38; }
.ms-kpi-icon { width:42px; height:42px; flex:0 0 42px; display:grid; place-items:center; border-radius:11px; font-size:21px; font-weight:750; }
.ms-kpi-icon svg { width:25px; height:25px; }
.ms-kpi-icon.is-new { color:#0796ae; background:#e5f7fa; }
.ms-kpi-icon.is-work { color:#2677cf; background:#eaf2fd; }
.ms-kpi-icon.is-air { color:#28994e; background:#e9f8ed; }
.ms-kpi-icon.is-limit { color:#d8533b; background:#fff0ed; }

.ms-ops-workbench { display:grid; grid-template-columns:minmax(520px,.95fr) minmax(620px,1.15fr); gap:10px; margin-top:10px; align-items:stretch; }
.ms-ops-queue, .ms-ops-inspector { min-width:0; padding:0; }
.ms-ops-inspector { position:static; align-self:stretch; }
.ms-ops-workbench .ms-panel-head, .ms-dashboard-calendar > .ms-panel-head, .ms-ops-side-stack .ms-panel-head { margin:0; padding:13px 14px; border-bottom:1px solid var(--ms-line); align-items:center; }
.ms-panel-head h2 { font-size:16px; }
.ms-panel-head .ms-subtitle { margin:2px 0 0; font-size:11px; }
.ms-panel-count { display:inline-grid; min-width:22px; height:22px; padding:0 6px; place-items:center; margin-left:4px; border-radius:11px; background:#e7f2ff; color:#2772bb; font-size:11px; vertical-align:2px; }
.ms-action-sm { padding:6px 9px; border-radius:7px; font-size:11px; white-space:nowrap; }
.ms-ops-table { min-width:710px !important; font-size:11px; }
.ms-ops-table th { padding:9px 10px; font-size:10px; }
.ms-ops-table td { padding:9px 10px; }
.ms-ops-table tr.is-current { background:#eef8ff; box-shadow:inset 3px 0 #168dc0; }
.ms-ops-table tr.is-current:hover { background:#e8f5fc; }
.ms-ops-table a { text-decoration:none; }
.ms-row-title { display:block; max-width:150px; color:var(--ms-text); font-weight:600; line-height:1.25; }
.ms-nowrap { white-space:nowrap; }
.ms-ops-table form { margin:0; }
.ms-empty-state { display:flex; justify-content:center; align-items:center; gap:5px; min-height:84px; padding:18px; color:var(--ms-muted); text-align:center; }
.ms-empty-state.is-warning { min-height:auto; justify-content:flex-start; margin:10px 0; border-radius:8px; background:var(--ms-warn-soft); color:var(--ms-warn); }
.ms-empty-state.is-compact { min-height:62px; font-size:12px; }

.ms-inspector-head > div:last-child { display:flex; align-items:center; gap:9px; }
.ms-inspector-head small { color:var(--ms-muted); }
.ms-close-link { color:var(--ms-muted); text-decoration:none; font-size:22px; line-height:1; padding:3px; }
.ms-inspector-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(220px,.75fr); min-height:360px; }
.ms-inspector-content { min-width:0; padding:13px 14px; }
.ms-campaign-line { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.ms-campaign-line small { color:var(--ms-muted); font-size:10px; }
.ms-campaign-line h3 { margin:2px 0 0; font-size:15px; }
.ms-material-preview { display:grid; grid-template-columns:minmax(150px,.85fr) minmax(150px,1fr); gap:12px; margin-top:12px; padding-bottom:12px; border-bottom:1px solid var(--ms-line); }
.ms-material-visual { position:relative; min-height:112px; display:grid; place-items:center; border-radius:8px; color:#fff; background:linear-gradient(135deg,#143d5c,#16909a); overflow:hidden; }
.ms-material-visual::before { content:""; position:absolute; inset:0; background:linear-gradient(120deg,transparent,rgba(255,255,255,.12)); pointer-events:none; }
.ms-material-visual > span { position:relative; width:38px; height:38px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.6); border-radius:50%; }
.ms-material-visual > small { position:absolute; right:7px; bottom:6px; color:#fff; background:rgba(0,0,0,.45); border-radius:4px; padding:2px 5px; }
.ms-inline-media, .ms-image-open, .ms-image-open img { display:block; width:100%; height:100%; }
.ms-video-player { position:relative; width:100%; height:100%; }
.ms-video-start { position:absolute; z-index:2; left:50%; top:50%; transform:translate(-50%,-50%); width:46px; height:46px; display:grid; place-items:center; padding:0 0 0 3px; border:1px solid rgba(255,255,255,.8); border-radius:50%; color:#fff; background:rgba(8,43,61,.72); font-size:18px; cursor:pointer; }
.ms-video-start:hover { background:rgba(8,43,61,.9); transform:translate(-50%,-50%) scale(1.05); }
.ms-video-start[hidden] { display:none; }
.ms-video-start.is-error { color:#fff; background:#a64532; }
.ms-inline-media { min-height:112px; max-height:260px; object-fit:contain; background:#102f45; }
.ms-image-open { min-height:112px; cursor:zoom-in; }
.ms-image-open img { min-height:112px; max-height:260px; object-fit:contain; }
.ms-embedded-preview { height:auto; min-height:92px; overflow:hidden; }
.ms-embedded-preview .ms-inline-media, .ms-embedded-preview .ms-image-open, .ms-embedded-preview .ms-image-open img { min-height:92px; }
.ms-material-preview > div:last-child { min-width:0; }
.ms-material-preview > div:last-child > strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ms-material-preview dl { display:grid; gap:6px; margin:10px 0 0; }
.ms-material-preview dl div { display:flex; justify-content:space-between; gap:8px; font-size:10px; }
.ms-material-preview dt { color:var(--ms-muted); }
.ms-material-preview dd { margin:0; font-weight:650; }
.ms-selected-screens { margin-top:11px; }
.ms-subhead { display:flex; justify-content:space-between; gap:8px; margin-bottom:5px; font-size:12px; }
.ms-subhead > span { min-width:20px; height:20px; display:grid; place-items:center; border-radius:10px; background:#e7f2ff; color:#2677cf; font-size:10px; }
.ms-selected-screens > div:not(.ms-subhead) { display:flex; justify-content:space-between; gap:12px; padding:4px 0; font-size:10px; }
.ms-selected-screens > div:not(.ms-subhead) small { color:var(--ms-muted); text-align:right; }
.ms-validation-panel { padding:13px 14px; border-left:1px solid var(--ms-line); background:#fbfcfd; }
.ms-validation-panel h3 { margin:0 0 12px; font-size:13px; }
.ms-validation-panel .ms-validation-list { list-style:none; display:grid; gap:0; margin:0; padding:0; border:0; }
.ms-validation-panel .ms-validation-list li { display:grid; grid-template-columns:20px 1fr auto; gap:6px; align-items:center; padding:7px 0; border-bottom:1px solid #edf1f3; font-size:10px; font-weight:400; margin:0; }
.ms-validation-panel .ms-validation-list li i { width:17px; height:17px; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; font-style:normal; font-size:10px; }
.ms-validation-panel .ms-validation-list li b { font-size:9px; }
.ms-validation-panel .ms-validation-list .is-ok { color:var(--ms-good); }
.ms-validation-panel .ms-validation-list .is-ok span { color:var(--ms-text); }
.ms-validation-panel .ms-validation-list .is-bad { color:var(--ms-danger); }
.ms-validation-panel .ms-validation-list .is-bad span { color:var(--ms-text); }
.ms-validation-panel .ms-validation-list .is-warn { color:var(--ms-warn); }
.ms-validation-panel .ms-validation-list .is-warn span { color:var(--ms-text); }
.ms-validation-alert { margin-top:12px; padding:9px; border:1px solid #e4a79e; border-radius:8px; background:#fff6f4; color:var(--ms-danger); font-size:10px; }
.ms-validation-alert p { margin:4px 0 0; color:#73534d; }
.ms-validation-alert.is-warning { border-color:#e6c47a; background:var(--ms-warn-soft); color:var(--ms-warn); }
.ms-validation-alert.is-warning p { color:#765820; }
.ms-inspector-actions { display:flex; gap:8px; align-items:center; padding:10px 14px; border-top:1px solid var(--ms-line); }
.ms-inspector-actions form { margin:0; }
.ms-inspector-empty { min-height:410px; flex-direction:column; }

.ms-ops-lower { display:grid; grid-template-columns:minmax(760px,1fr) 330px; gap:10px; margin-top:10px; align-items:start; }
.ms-dashboard-calendar { min-width:0; }
.ms-calendar-summary { display:flex; align-items:center; gap:12px; color:var(--ms-muted); font-size:10px; }
.ms-calendar-summary > span { display:flex; align-items:center; gap:4px; white-space:nowrap; }
.ms-calendar-summary i { width:7px; height:7px; border-radius:50%; }
.ms-calendar-summary .is-commercial { background:#3da264; }
.ms-calendar-summary .is-internal { background:#3688d0; }
.ms-calendar-summary strong { color:#087d9b; font-size:12px; white-space:nowrap; }
.ms-dashboard-calendar-scroll { overflow:auto; max-height:390px; }
.ms-dashboard-calendar table { width:100%; min-width:940px; border-collapse:separate; border-spacing:0; font-size:10px; }
.ms-dashboard-calendar th, .ms-dashboard-calendar td { border-right:1px solid var(--ms-line); border-bottom:1px solid var(--ms-line); padding:6px; text-align:center; }
.ms-dashboard-calendar th { position:sticky; top:0; z-index:3; background:var(--ms-surface-2); color:var(--ms-muted); font-weight:600; }
.ms-dashboard-calendar th:first-child, .ms-dashboard-calendar td:first-child { position:sticky; left:0; z-index:2; width:195px; min-width:195px; text-align:left; background:var(--ms-surface); }
.ms-dashboard-calendar th:first-child { z-index:4; background:var(--ms-surface-2); }
.ms-dashboard-calendar th small { display:block; font-size:9px; }
.ms-dashboard-calendar tbody td:first-child strong, .ms-dashboard-calendar tbody td:first-child small { display:block; }
.ms-dashboard-calendar tbody td:first-child small { color:var(--ms-muted); margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ms-dashboard-calendar .is-today { background:#f0fbfb; box-shadow:inset 2px 0 #22a9b0; }
.ms-dashboard-calendar .is-weekend { background:#fffaf5; }
.ms-dashboard-calendar-cell { display:block; min-height:39px; padding:5px 6px; border:1px solid transparent; border-radius:5px; text-align:left; text-decoration:none; }
.ms-dashboard-calendar-cell strong, .ms-dashboard-calendar-cell span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ms-dashboard-calendar-cell strong { color:inherit; font-size:9px; }
.ms-dashboard-calendar-cell span { margin-top:2px; opacity:.82; font-size:9px; }
.ms-dashboard-calendar-cell.is-commercial { color:#256b40; background:#e9f7ed; border-color:#addbbd; }
.ms-dashboard-calendar-cell.is-internal { color:#245f97; background:#e9f3fc; border-color:#b4d4ef; }
.ms-dashboard-calendar-cell.is-mixed { color:#715a13; background:#fff7da; border-color:#e9d58f; }
.ms-dashboard-calendar-cell.is-over-limit { color:#a64532; background:#fff0ed; border-color:#e9afa3; }
.ms-calendar-empty { color:#bcc7cc; }

.ms-calendar-page-surface { padding:16px; }
.ms-content-calendar { min-width:0; }
.ms-content-calendar-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:12px; }
.ms-content-calendar-head h2 { margin:0; font-size:18px; }
.ms-content-calendar-head p { margin:3px 0 0; color:var(--ms-muted); font-size:11px; }
.ms-content-calendar-head .ms-calendar-legend { margin:2px 0 0; }
.ms-calendar-control-form { display:grid; grid-template-columns:repeat(4,minmax(130px,1fr)) auto; gap:9px; align-items:end; margin-bottom:12px; }
.ms-calendar-control-form > label, .ms-calendar-date-range label { display:grid; gap:4px; color:var(--ms-muted); font-size:10px; }
.ms-calendar-control-form select, .ms-calendar-control-form input { min-width:0; height:35px; padding:7px 9px; border:1px solid var(--ms-line); border-radius:7px; background:var(--ms-surface); color:var(--ms-text); font:inherit; font-size:11px; }
.ms-calendar-presets { display:flex; border:1px solid var(--ms-line); border-radius:7px; overflow:hidden; }
.ms-calendar-presets button { height:35px; padding:0 11px; border:0; border-right:1px solid var(--ms-line); background:var(--ms-surface); color:var(--ms-text); white-space:nowrap; cursor:pointer; }
.ms-calendar-presets button:last-child { border-right:0; }
.ms-calendar-presets button:hover { background:#eef9fa; color:var(--ms-teal); }
.ms-calendar-date-range { grid-column:1 / -1; display:flex; align-items:end; gap:7px; width:max-content; }
.ms-calendar-date-range b { padding-bottom:9px; color:var(--ms-muted); }
.ms-calendar-date-range input { width:155px; }
.ms-timeline-scroll { overflow:auto; max-height:520px; border:1px solid var(--ms-line); border-radius:9px; }
.ms-timeline-inner { min-width:calc(220px + var(--timeline-width)); background:var(--ms-surface); }
.ms-timeline-header, .ms-timeline-row { display:grid; grid-template-columns:220px minmax(var(--timeline-width),1fr); }
.ms-timeline-header { position:sticky; top:0; z-index:8; border-bottom:1px solid var(--ms-line); background:var(--ms-surface-2); }
.ms-timeline-corner { position:sticky; left:0; z-index:10; padding:10px 12px; border-right:1px solid var(--ms-line); background:var(--ms-surface-2); font-size:11px; font-weight:700; }
.ms-timeline-days, .ms-timeline-day-background, .ms-timeline-placement, .ms-timeline-material-row { display:grid; grid-template-columns:repeat(var(--timeline-days),minmax(52px,1fr)); }
.ms-timeline-days > div { padding:6px 2px; border-right:1px solid var(--ms-line); text-align:center; }
.ms-timeline-days strong, .ms-timeline-days small { display:block; }
.ms-timeline-days small { margin-top:2px; color:var(--ms-muted); font-size:9px; }
.ms-timeline-days .is-weekend { color:#b94b3d; background:#fff8f5; }
.ms-timeline-days .is-today { color:var(--ms-teal); box-shadow:inset 2px 0 var(--ms-teal); }
.ms-timeline-row { border-bottom:1px solid var(--ms-line); }
.ms-timeline-row:last-child { border-bottom:0; }
.ms-timeline-screen { position:sticky; left:0; z-index:6; display:grid; align-content:start; gap:2px; padding:9px 12px; border-right:1px solid var(--ms-line); background:var(--ms-surface); }
.ms-timeline-screen strong { font-size:11px; }
.ms-timeline-screen small, .ms-timeline-screen em { overflow:hidden; color:var(--ms-muted); font-size:9px; font-style:normal; text-overflow:ellipsis; white-space:nowrap; }
.ms-timeline-screen-toggle { width:100%; border:0; color:var(--ms-text); text-align:left; cursor:pointer; }
.ms-timeline-screen-toggle:hover { background:#f4fbfb; }
.ms-timeline-screen-toggle:focus-visible { outline:2px solid var(--ms-teal); outline-offset:-2px; }
.ms-screen-toggle-main { display:flex; align-items:flex-start; gap:7px; min-width:0; }
.ms-screen-toggle-main > i { flex:0 0 auto; color:var(--ms-teal); font-size:19px; font-style:normal; line-height:1; transition:transform .15s; }
.ms-screen-toggle-main > span { display:grid; min-width:0; gap:2px; }
.ms-timeline-screen-toggle[aria-expanded="true"] .ms-screen-toggle-main > i { transform:rotate(90deg); }
.ms-screen-current-load { display:block; margin:5px 0 0 26px; color:var(--ms-muted); font-size:9px; }
.ms-screen-current-load b { color:var(--ms-teal); }
.ms-timeline-track { position:relative; display:grid; align-content:start; gap:4px; min-height:55px; padding:7px 0; }
.ms-timeline-day-background { position:absolute; z-index:0; inset:0; pointer-events:none; }
.ms-timeline-day-background i { border-right:1px solid #edf1f3; }
.ms-timeline-day-background .is-weekend { background:#fffaf7; }
.ms-timeline-day-background .is-today { box-shadow:inset 2px 0 rgba(34,169,176,.72); }
.ms-timeline-placement { position:relative; z-index:2; outline:none; }
.ms-timeline-aggregate, .ms-timeline-material-bar { min-width:0; padding:5px 8px; border:1px solid currentColor; border-radius:5px; text-decoration:none; overflow:hidden; }
.ms-timeline-aggregate { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.ms-timeline-aggregate strong, .ms-timeline-material-bar strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ms-timeline-aggregate strong { font-size:10px; }
.ms-timeline-aggregate small { flex:0 0 auto; font-size:9px; opacity:.82; }
.ms-timeline-aggregate.ms-placement-commercial, .ms-timeline-material-bar.ms-placement-commercial { color:#275fa1; background:#e9f2ff; border-color:#87b2e8; }
.ms-timeline-aggregate.ms-placement-internal, .ms-timeline-material-bar.ms-placement-internal { color:#237448; background:#e8f7ed; border-color:#91cea8; }
.ms-timeline-aggregate.is-clipped-start, .ms-timeline-material-bar.is-clipped-start { border-left-style:dashed; border-radius:0 5px 5px 0; }
.ms-timeline-aggregate.is-clipped-end, .ms-timeline-material-bar.is-clipped-end { border-right:5px double currentColor; border-radius:5px 0 0 5px; }
.ms-timeline-materials { display:none; grid-column:1 / -1; margin-top:3px; padding:6px; border:1px solid #b8d3e9; border-radius:6px; background:rgba(255,255,255,.97); box-shadow:0 8px 20px rgba(17,53,73,.12); }
.ms-timeline-placement:hover .ms-timeline-materials, .ms-timeline-placement:focus-within .ms-timeline-materials, .ms-timeline-placement:focus .ms-timeline-materials { display:grid; gap:4px; }
.ms-timeline-expanded-title { padding:0 3px 3px; color:var(--ms-muted); font-size:9px; font-weight:650; }
.ms-timeline-material-row { min-height:27px; }
.ms-timeline-material-bar { display:flex; align-items:center; justify-content:space-between; gap:8px; padding-top:4px; padding-bottom:4px; }
.ms-timeline-content-link { cursor:pointer; transition:filter .15s ease,transform .15s ease,box-shadow .15s ease; }
.ms-timeline-content-link:hover { filter:saturate(1.15) brightness(.96); box-shadow:0 2px 7px rgba(22,45,70,.24); transform:translateY(-1px); }
.ms-timeline-content-link:focus-visible { outline:3px solid rgba(24,119,190,.32); outline-offset:2px; }
.ms-timeline-material-bar strong { font-size:9px; }
.ms-timeline-material-bar small { flex:0 0 auto; font-size:8px; opacity:.82; }
.ms-timeline-empty { position:relative; z-index:1; align-self:center; padding-left:10px; color:#aab6bc; font-size:10px; }
.ms-timeline-screen-details[hidden] { display:none; }
.ms-timeline-screen-details { border-top:1px solid #d9e7ed; background:#f8fbfc; box-shadow:inset 3px 0 var(--ms-teal); }
.ms-timeline-material-detail { display:grid; grid-template-columns:220px minmax(var(--timeline-width),1fr); border-bottom:1px solid var(--ms-line); }
.ms-timeline-material-detail:last-child { border-bottom:0; }
.ms-timeline-material-meta { position:sticky; left:0; z-index:5; display:grid; align-content:center; gap:3px; min-width:0; padding:7px 12px 7px 31px; border-right:1px solid var(--ms-line); background:#f8fbfc; }
.ms-timeline-material-meta strong { overflow:hidden; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.ms-timeline-material-meta small { color:var(--ms-muted); font-size:9px; }
.ms-timeline-material-meta .ms-placement { justify-self:start; margin-top:2px; font-size:8px; }
.ms-timeline-material-track { position:relative; display:grid; grid-template-columns:repeat(var(--timeline-days),minmax(52px,1fr)); align-items:center; min-height:54px; }
.ms-timeline-material-track .ms-timeline-material-bar { position:relative; z-index:2; margin:6px 0; }
.ms-dashboard-calendar .ms-content-calendar { padding:13px 14px; }
.ms-dashboard-calendar .ms-timeline-scroll { max-height:430px; }

/* Operational center and calendar — approved visual direction */
.ms-sidebar-user { margin-top:auto; display:grid; grid-template-columns:34px 1fr auto; gap:9px; align-items:center; padding:13px 4px 0; border-top:1px solid rgba(255,255,255,.12); color:#fff; text-decoration:none; }
.ms-sidebar-user .ms-avatar { width:34px; height:34px; border:1px solid rgba(255,255,255,.24); background:rgba(255,255,255,.12); color:#fff; font-size:10px; }
.ms-sidebar-user strong, .ms-sidebar-user small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ms-sidebar-user strong { font-size:11px; }
.ms-sidebar-user small { margin-top:2px; color:#c6d7df; font-size:9px; }
.ms-sidebar-user i { color:#b8cbd4; font-style:normal; }

.ms-ops-page { font-family:Inter,"Segoe UI",Arial,sans-serif; }
.ms-ops-page-head { margin-bottom:16px; }
.ms-ops-page-head h1 { color:#0a1830; font-size:30px; font-weight:760; line-height:1.12; }
.ms-ops-page-head .ms-subtitle { margin:3px 0 0; color:#6d7a91; font-size:14px; }
.ms-ops-kpis.is-operator { grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.ms-ops-kpis.is-operator .ms-ops-kpi { min-height:108px; justify-content:flex-start; padding:18px 20px; border-color:#d9e0e8; border-radius:8px; box-shadow:0 2px 8px rgba(21,43,73,.025); }
.ms-ops-kpis.is-operator .ms-ops-kpi > .ms-kpi-content { display:block; min-width:0; flex:1 1 auto; }
.ms-ops-kpis.is-operator .ms-ops-kpi small { display:block; color:#101827; font-size:14px; font-weight:600; }
.ms-ops-kpis.is-operator .ms-ops-kpi strong { display:block; margin-top:4px; color:#09162d; font-size:31px; font-weight:680; line-height:1; }
.ms-ops-kpis.is-operator .ms-kpi-icon { order:0; width:45px; min-width:45px; max-width:45px; height:45px; flex:0 0 45px; border-radius:50%; font-size:24px; font-weight:500; }
.ms-kpi-icon.is-revision { color:#da861d; background:#fff2df; }
.ms-ops-kpis.is-operator .ms-kpi-new strong { color:#176fd1; }
.ms-ops-kpis.is-operator .ms-kpi-work strong { color:#176fd1; }
.ms-ops-kpis.is-operator .ms-kpi-revision strong { color:#e48712; }
.ms-ops-kpis.is-operator .ms-kpi-approved strong { color:#1d9a54; }
.ms-ops-kpis.is-operator .ms-kpi-limit strong { color:#e44b4b; }
.ms-ops-kpi.ms-kpi-limit.is-alert { border-color:#f0c1c1; background:#fffafa; }

.ms-content-checker { margin-top:14px; padding:0; overflow:hidden; border-radius:9px; }
.ms-content-checker-head { display:flex; justify-content:space-between; align-items:center; gap:15px; padding:16px 20px; border-bottom:1px solid #dce3ea; }
.ms-content-checker-head h2 { margin:0; color:#111a2a; font-size:19px; }
.ms-content-checker-head p { margin:3px 0 0; color:#748096; font-size:11px; }
.ms-content-checker-head > span { padding:5px 9px; border:1px solid #96bdf1; border-radius:6px; background:#f1f7ff; color:#176fd1; font-size:10px; white-space:nowrap; }
.ms-content-checker-grid { display:grid; grid-template-columns:minmax(330px,.72fr) minmax(520px,1.28fr); gap:16px; padding:16px 20px 12px; }
.ms-checker-upload-column { min-width:0; }
.ms-checker-dropzone { min-height:244px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:22px; border:1.5px dashed #9eb1c7; border-radius:9px; background:#fbfdff; color:#176fd1; text-align:center; cursor:pointer; transition:.15s ease; }
.ms-checker-dropzone:hover, .ms-checker-dropzone.is-dragging { border-color:#176fd1; background:#f3f8ff; box-shadow:inset 0 0 0 2px rgba(23,111,209,.08); }
.ms-checker-dropzone.is-error { border-color:#df4b46; background:#fff8f7; color:#c94641; }
.ms-checker-dropzone input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.ms-checker-dropzone svg { width:55px; height:55px; margin-bottom:10px; }
.ms-checker-dropzone strong { color:#17243a; font-size:17px; }
.ms-checker-dropzone small { margin:5px 0 13px; color:#758299; font-size:12px; }
.ms-checker-dropzone .ms-action { pointer-events:none; }
.ms-checker-dropzone em { margin-top:12px; color:#748096; font-size:10px; font-style:normal; }
.ms-checker-files { display:grid; gap:7px; margin-top:10px; }
.ms-checker-empty { padding:12px; border:1px solid #e1e7ed; border-radius:7px; color:#8390a2; font-size:11px; text-align:center; }
.ms-checker-file { display:grid; grid-template-columns:30px minmax(0,1fr) auto; gap:9px; align-items:center; padding:8px 10px; border:1px solid #dce3ea; border-radius:7px; background:#fff; cursor:pointer; }
.ms-checker-file:hover, .ms-checker-file.is-active { border-color:#83b1eb; background:#f5f9ff; }
.ms-checker-file > i { width:29px; height:29px; display:grid; place-items:center; border-radius:7px; background:#ebf3ff; color:#2979d6; font-style:normal; font-weight:700; }
.ms-checker-file.is-image > i { color:#229453; background:#eaf8ef; }
.ms-checker-file strong, .ms-checker-file small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ms-checker-file strong { color:#17243a; font-size:11px; }
.ms-checker-file small { margin-top:2px; color:#79869a; font-size:9px; }
.ms-checker-file button { width:26px; height:26px; border:0; background:transparent; color:#718096; font-size:18px; cursor:pointer; }
.ms-checker-result { min-width:0; min-height:318px; padding:18px; border:1px solid #dce3ea; border-radius:9px; background:#fff; }
.ms-checker-result-empty { height:100%; min-height:280px; display:flex; flex-direction:column; align-items:center; justify-content:center; color:#8490a2; }
.ms-checker-result-empty strong { color:#17243a; font-size:17px; }
.ms-checker-result-empty span { margin-top:5px; font-size:11px; }
.ms-checker-result-title { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:15px; }
.ms-checker-result-title h3 { margin:0; color:#111a2a; font-size:17px; }
.ms-checker-format-state { padding:4px 8px; border-radius:12px; background:#e8f7ed; color:#237448; font-size:10px; font-weight:700; }
.ms-checker-format-state.is-bad { background:#fff0ed; color:#c94641; }
.ms-checker-metadata { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding-bottom:15px; border-bottom:1px solid #dce3ea; }
.ms-checker-metadata div { padding:0 14px; border-right:1px solid #e5e9ee; }
.ms-checker-metadata div:first-child { padding-left:0; }
.ms-checker-metadata div:last-child { border-right:0; }
.ms-checker-metadata small, .ms-checker-metadata strong { display:block; }
.ms-checker-metadata small { color:#748096; font-size:10px; }
.ms-checker-metadata strong { margin-top:5px; color:#101827; font-size:14px; }
.ms-checker-screen-title { margin:15px 0 9px; color:#111a2a; font-size:14px; }
.ms-checker-screen-list { display:grid; gap:7px; }
.ms-checker-screen { position:relative; display:grid; grid-template-columns:31px minmax(0,1fr) auto; gap:9px; align-items:center; padding:9px 11px; border:1px solid #dce3ea; border-radius:7px; cursor:pointer; transition:.12s ease; }
.ms-checker-screen > input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.ms-checker-screen > i { width:27px; height:27px; display:grid; place-items:center; border:1px solid currentColor; border-radius:6px; background:#fff; font-style:normal; font-size:15px; }
.ms-checker-screen strong { font-size:11px; }
.ms-checker-screen small { display:block; margin-top:2px; color:#748096; font-size:9px; }
.ms-checker-screen b { font-size:10px; }
.ms-checker-screen.is-exact { border-color:#65c78a; background:#f2fbf5; color:#188647; }
.ms-checker-screen.is-close { border-color:#efb45e; background:#fff9ef; color:#d67609; }
.ms-checker-screen.is-bad { color:#788493; background:#fafbfc; }
.ms-checker-screen:hover { box-shadow:0 3px 10px rgba(20,54,85,.1); transform:translateY(-1px); }
.ms-checker-screen.is-selected { box-shadow:inset 0 0 0 2px currentColor; }
.ms-checker-screen.is-exact.is-selected > i { color:#fff; background:#188647; }
.ms-checker-screen.is-close.is-selected > i { color:#fff; background:#d67609; }
.ms-checker-no-match { padding:14px; border:1px solid #ead0cd; border-radius:7px; background:#fff8f7; color:#b34942; font-size:11px; }
.ms-checker-actions { display:flex; justify-content:flex-end; align-items:center; gap:8px; padding:0 20px 16px; }
.ms-checker-actions [data-checker-message] { margin-right:auto; color:#6f7e91; font-size:10px; }
.ms-checker-actions button:disabled { opacity:.5; cursor:not-allowed; }
.ms-ops-workbench.is-operator { grid-template-columns:1fr; margin-top:14px; }
.ms-ops-workbench.is-operator .ms-ops-queue { border-radius:8px; }
.ms-ops-workbench.is-operator .ms-panel-head { min-height:50px; padding:12px 14px; }
.ms-ops-workbench.is-operator .ms-panel-head h2 { color:#111a2a; font-size:15px; }
.ms-ops-all-link { color:#1672cf; font-size:11px; text-decoration:none; white-space:nowrap; }
.ms-ops-workbench.is-operator .ms-ops-table { min-width:900px !important; font-size:11px; }
.ms-ops-workbench.is-operator .ms-ops-table th { padding:8px 14px; color:#52617a; background:#fafbfd; font-size:10px; font-weight:550; }
.ms-ops-workbench.is-operator .ms-ops-table td { padding:9px 14px; }
.ms-ops-workbench.is-operator .ms-ops-table tr { cursor:default; }
.ms-ops-workbench.is-operator .ms-row-title { max-width:240px; font-weight:500; }
.ms-ops-lower.is-operator { display:block; margin-top:14px; }
.ms-ops-lower.is-operator .ms-dashboard-calendar { border-radius:8px; }
.ms-ops-lower.is-operator .ms-dashboard-calendar .ms-content-calendar { padding:13px 12px 12px; }
.ms-ops-lower.is-operator .ms-dashboard-calendar .ms-timeline-scroll { max-height:520px; }

.ms-calendar-title-line { display:flex; align-items:center; gap:7px; min-height:22px; }
.ms-calendar-title-line h2 { color:#111a2a; font-size:16px; font-weight:700; }
.ms-calendar-title-line p { margin:0; color:#748096; font-size:10px; }
.ms-calendar-info { width:15px; height:15px; display:grid; place-items:center; border:1px solid #9aa9b8; border-radius:50%; color:#7b8a9c; font-family:Georgia,serif; font-size:9px; font-weight:700; }
.ms-calendar-control-form { position:relative; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:9px 28px; align-items:start; margin:0 0 9px; }
.ms-calendar-filters { display:grid; grid-template-columns:repeat(4,minmax(130px,1fr)); gap:10px; }
.ms-calendar-filters label { display:grid; gap:3px; color:#728096; font-size:9px; }
.ms-calendar-control-form select, .ms-calendar-control-form input { min-width:0; height:35px; padding:6px 9px; border:1px solid #d7dfe8; border-radius:6px; background:#fff; color:#1e2a40; font:inherit; font-size:11px; }
.ms-calendar-actions { display:grid; grid-template-columns:auto auto; gap:8px; justify-items:end; align-items:start; }
.ms-calendar-presets { display:flex; height:35px; border:1px solid #d7dfe8; border-radius:6px; overflow:hidden; }
.ms-calendar-presets button { height:33px; padding:0 16px; border:0; border-right:1px solid #d7dfe8; background:#fff; color:#344158; font:inherit; font-size:10px; white-space:nowrap; cursor:pointer; }
.ms-calendar-presets button:last-child { border-right:0; }
.ms-calendar-presets button:hover, .ms-calendar-presets button.is-active { color:#087d8f; background:#eef9fa; }
.ms-calendar-custom-trigger { height:35px; padding:0 13px; border:1px solid #22a3ad; border-radius:6px; background:#fff; color:#087f91; font:inherit; font-size:10px; white-space:nowrap; cursor:pointer; }
.ms-calendar-custom-trigger span, .ms-calendar-range-chip span { margin-right:7px; color:#0797aa; }
.ms-calendar-legend { grid-column:1/-1; display:flex; justify-content:flex-end; gap:24px; color:#334157; font-size:10px; }
.ms-calendar-legend span { display:flex; align-items:center; gap:7px; white-space:nowrap; }
.ms-calendar-legend i { width:11px; height:11px; border-radius:2px; }
.ms-calendar-legend .is-commercial { background:#2578df; }
.ms-calendar-legend .is-internal { background:#2f9b5f; }
.ms-calendar-legend .is-addreality { background:#7a4bd3; }
.ms-calendar-legend .is-limit { background:#df3f3f; }
.ms-calendar-range-line { grid-column:1/-1; position:relative; display:flex; align-items:center; }
.ms-calendar-range-chip { height:34px; padding:0 10px; border:1px solid #dde4eb; border-radius:6px; background:#f8fafc; color:#17243a; font:inherit; font-size:11px; font-weight:560; cursor:pointer; }
.ms-calendar-date-popover { position:absolute; z-index:30; left:0; top:40px; display:flex; align-items:end; gap:7px; padding:10px; border:1px solid #d8e0e7; border-radius:8px; background:#fff; box-shadow:0 10px 28px rgba(18,42,65,.15); }
.ms-calendar-date-popover[hidden] { display:none; }
.ms-calendar-date-popover label { display:grid; gap:3px; color:#748096; font-size:9px; }
.ms-calendar-date-popover b { padding-bottom:8px; color:#748096; }

.ms-timeline-scroll { max-height:520px; border:1px solid #d8e0e7; border-radius:0 0 7px 7px; }
.ms-timeline-inner { min-width:calc(190px + var(--timeline-width)); background:#fff; }
.ms-timeline-header { grid-template-columns:190px minmax(var(--timeline-width),1fr); background:#fafbfd; }
.ms-timeline-corner { display:grid; grid-template-columns:190px; padding:0; background:#fafbfd; }
.ms-timeline-corner span { display:flex; align-items:center; min-height:43px; padding:8px 10px; border-right:1px solid #dde4eb; color:#17243a; font-size:10px; font-weight:650; }
.ms-timeline-days > div { position:relative; min-height:43px; padding:6px 2px 4px; border-right:1px solid #e0e6ec; color:#1c2940; }
.ms-timeline-days strong { font-size:10px; font-weight:650; }
.ms-timeline-days small { margin-top:0; color:#6f7e91; font-size:9px; }
.ms-timeline-days .is-weekend { color:#db3636; background:#fffafa; }
.ms-timeline-days .is-weekend small { color:#db3636; }
.ms-timeline-days .is-today { color:#158895; background:#f1fbfb; box-shadow:inset 1px 0 #159aa6; }
.ms-timeline-days .is-today { padding-top:16px; }
.ms-timeline-days .is-today::after { content:"Сегодня"; position:absolute; left:50%; top:0; transform:translateX(-50%); padding:1px 5px; border-radius:0 0 3px 3px; background:#188d94; color:#fff; font-size:8px; font-weight:600; }
.ms-timeline-row { grid-template-columns:190px minmax(var(--timeline-width),1fr); min-height:49px; border-bottom:1px solid #dce3ea; }
.ms-timeline-screen { position:sticky; left:0; z-index:7; display:flex; align-items:flex-start; justify-content:space-between; gap:8px; padding:8px 10px; border:0; border-right:1px solid #dce3ea; background:#fff; color:#17243a; text-align:left; cursor:pointer; }
.ms-timeline-screen > span { display:grid; min-width:0; }
.ms-timeline-screen strong { overflow:hidden; font-size:10px; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.ms-timeline-screen small { overflow:hidden; margin-top:2px; color:#32415a; font-size:9px; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.ms-timeline-screen > i { color:#42617b; font-style:normal; transition:transform .15s; }
.ms-timeline-screen-toggle:hover { background:#f4fbfb; }
.ms-timeline-screen-toggle[aria-expanded="true"] > i { transform:rotate(180deg); }
.ms-timeline-track { min-height:49px; gap:3px; padding:5px 0; }
.ms-timeline-day-background i { border-right:1px solid #e7ebef; }
.ms-timeline-day-background .is-weekend { background:#fffafa; }
.ms-timeline-day-background .is-today { background:#f2fbfb; box-shadow:inset 1px 0 rgba(22,151,160,.9); }
.ms-timeline-aggregate, .ms-timeline-material-bar { min-height:25px; padding:3px 9px; border-radius:4px; box-shadow:inset 0 1px rgba(255,255,255,.45); }
.ms-timeline-aggregate strong { font-size:10px; font-weight:580; }
.ms-timeline-aggregate small { padding:1px 6px; border-radius:9px; background:rgba(255,255,255,.55); font-size:8px; }
.ms-timeline-screen-group:not(:has(.ms-timeline-screen-toggle[aria-expanded="true"])) .ms-timeline-expand-state { display:none; }
.ms-timeline-aggregate.ms-placement-commercial, .ms-timeline-material-bar.ms-placement-commercial { color:#083f86; background:linear-gradient(180deg,#82b9ff,#62a3f4); border-color:#176fd1; }
.ms-timeline-aggregate.ms-placement-internal, .ms-timeline-material-bar.ms-placement-internal { color:#0c5130; background:linear-gradient(180deg,#78ce99,#58b97d); border-color:#238653; }
.ms-timeline-aggregate.ms-placement-addreality, .ms-timeline-material-bar.ms-placement-addreality { color:#32156b; background:linear-gradient(180deg,#b99af2,#9c72e5); border-color:#7040c6; }
.ms-timeline-aggregate.ms-placement-mixed { color:#463276; background:linear-gradient(180deg,#b8a1ec,#9b7edc); border-color:#7655bd; }
.ms-timeline-broadcast strong { font-weight:680; }
.ms-timeline-screen-details { border:0; background:#f9fbfd; box-shadow:inset 2px 0 #7facdf; }
.ms-timeline-material-detail { display:grid; grid-template-columns:190px minmax(var(--timeline-width),1fr); min-height:31px; border-bottom:1px solid #e5e9ed; }
.ms-timeline-detail-spacer { position:sticky; left:0; z-index:5; border-right:1px solid #dce3ea; background:#f9fbfd; }
.ms-timeline-material-line { position:relative; display:grid; grid-template-columns:repeat(var(--timeline-days),minmax(62px,1fr)); align-items:center; min-width:var(--timeline-width); min-height:31px; }
.ms-timeline-material-meta { position:relative; z-index:3; justify-self:end; display:flex; align-items:center; gap:8px; min-width:0; padding:4px 8px; border:0; background:rgba(249,251,253,.94); }
.ms-timeline-material-meta.is-overlaid { justify-self:start; margin-left:8px; border-radius:3px; }
.ms-timeline-material-meta strong { max-width:112px; color:#25344b; font-size:9px; font-weight:550; }
.ms-timeline-material-meta small { flex:0 0 auto; color:#40506a; font-size:9px; }
.ms-timeline-material-line > .ms-timeline-material-bar { position:relative; z-index:2; min-height:20px; margin:4px 0; padding:2px 7px; }
.ms-timeline-material-bar strong { font-size:8px; font-weight:550; }
.ms-timeline-empty { font-size:9px; }
.ms-timeline-screen-group:nth-child(even) .ms-timeline-row,
.ms-timeline-screen-group:nth-child(even) .ms-timeline-screen,
.ms-timeline-screen-group:nth-child(even) .ms-timeline-track { background-color:#f3f7fa; }
.ms-timeline-screen-group:nth-child(even) .ms-timeline-screen-details,
.ms-timeline-screen-group:nth-child(even) .ms-timeline-detail-spacer,
.ms-timeline-screen-group:nth-child(even) .ms-timeline-material-meta { background-color:#edf3f7; }
.ms-timeline-screen-group:nth-child(odd) .ms-timeline-row,
.ms-timeline-screen-group:nth-child(odd) .ms-timeline-screen,
.ms-timeline-screen-group:nth-child(odd) .ms-timeline-track { background-color:#ffffff; }

.ms-broadcast-page { font-family:Inter,"Segoe UI",Arial,sans-serif; }
.ms-sync-badge { padding:7px 11px; border:1px solid #d9e2e8; border-radius:7px; background:#fff; color:#526178; font-size:11px; }
.ms-broadcast-filters { display:grid; grid-template-columns:minmax(220px,1.2fr) repeat(4,minmax(150px,.7fr)) auto; gap:10px; align-items:end; margin-bottom:14px; padding:13px; border:1px solid #d9e1e7; border-radius:8px; background:#fff; }
.ms-broadcast-filters label { display:grid; gap:4px; color:#65738a; font-size:10px; }
.ms-broadcast-filters input, .ms-broadcast-filters select, .ms-broadcast-type-form select { height:36px; padding:6px 9px; border:1px solid #d5dee6; border-radius:6px; background:#fff; color:#17243a; font:inherit; }
.ms-broadcast-table { min-width:1050px; }
.ms-sort-link { display:inline-flex; align-items:center; gap:5px; color:inherit; text-decoration:none; white-space:nowrap; }
.ms-sort-link span { color:#9aa7b8; font-size:11px; }
.ms-sort-link:hover, .ms-sort-link.is-active { color:var(--ms-teal); }
.ms-sort-link.is-active span { color:var(--ms-teal); }
.ms-sort-link:focus-visible { outline:2px solid rgba(44,145,154,.32); outline-offset:3px; border-radius:2px; }
.ms-broadcast-table td { vertical-align:middle; }
.ms-broadcast-table td > strong, .ms-broadcast-table td > small { display:block; }
.ms-broadcast-table td > small { margin-top:3px; color:var(--ms-muted); font-size:10px; }
.ms-broadcast-name { color:#132a4b; font-weight:700; text-decoration:none; }
.ms-broadcast-name:hover, .ms-content-count:hover { color:var(--ms-teal); text-decoration:underline; }
.ms-content-count { color:#2570bb; font-size:11px; font-weight:650; text-decoration:none; white-space:nowrap; }
.ms-broadcast-row td:first-child { border-left:4px solid #8b66d8; }
.ms-broadcast-row-commercial td { background:rgba(79,145,229,.075); }
.ms-broadcast-row-commercial td:first-child { border-left-color:#176fd1; }
.ms-broadcast-row-internal td { background:rgba(59,165,101,.075); }
.ms-broadcast-row-internal td:first-child { border-left-color:#238653; }
.ms-broadcast-status { display:inline-flex; padding:4px 8px; border-radius:999px; background:#edf1f5; color:#536176; font-size:10px; font-weight:650; }
.ms-sync-badge small { display:block; margin-top:2px; color:#748196; font-size:8px; font-weight:500; }
.ms-broadcast-status.is-active { background:#e5f5eb; color:#1d7647; }
.ms-broadcast-status.is-planned { background:#e7f0ff; color:#245eaa; }
.ms-broadcast-status.is-paused { background:#fff1d9; color:#a2660d; }
.ms-broadcast-type-form { display:flex; gap:7px; align-items:center; }
.ms-save-state { min-width:72px; color:#397b51; font-size:11px; }
.ms-save-state.is-error { color:#a23b32; }
.ms-broadcast-type-form select { min-width:150px; height:32px; }
.ms-broadcast-type-form select.is-commercial { border-color:#5595de; background:#e5f0ff; color:#164e92; }
.ms-broadcast-type-form select.is-internal { border-color:#63b381; background:#e4f5ea; color:#17643c; }
.ms-broadcast-type-form select.is-addreality { border-color:#9a7bd7; background:#f0eafd; color:#56348d; }
.ms-pagination { display:flex; justify-content:flex-end; align-items:center; gap:9px; margin-top:12px; color:var(--ms-muted); font-size:11px; }
@media (max-width:1100px) { .ms-broadcast-filters { grid-template-columns:1fr 1fr; } }

.ms-cycle-panel { margin:0 0 14px; border:1px solid #d8e1e8; border-radius:8px; background:#fff; overflow:hidden; }
.ms-cycle-panel summary { display:flex; justify-content:space-between; align-items:center; padding:12px 14px; cursor:pointer; list-style:none; }
.ms-cycle-panel summary::-webkit-details-marker { display:none; }
.ms-cycle-panel summary > span:first-child { display:grid; gap:2px; }
.ms-cycle-panel summary strong { color:#111d31; font-size:15px; }
.ms-cycle-panel summary small, .ms-cycle-note { color:#748196; font-size:10px; }
.ms-cycle-panel summary > span:last-child { color:var(--ms-teal); font-size:11px; font-weight:700; }
.ms-cycle-grid { display:grid; grid-template-columns:repeat(3,minmax(260px,1fr)); gap:10px; padding:0 12px 12px; }
.ms-cycle-card { padding:11px; border:1px solid #dce4ea; border-radius:7px; background:#fafcfd; color:inherit; text-decoration:none; transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease; }
.ms-cycle-card:hover { border-color:#40949a; box-shadow:0 5px 16px rgba(20,78,84,.13); transform:translateY(-1px); }
.ms-cycle-card.is-over-limit { border-color:#e15a50; background:#fff3f1; box-shadow:inset 4px 0 0 #d9473c; }
.ms-cycle-card.is-over-limit .ms-cycle-card-head > span { color:#b52f27; }
.ms-cycle-card:focus-visible { outline:3px solid rgba(44,145,154,.28); outline-offset:2px; border-color:#2c919a; }
.ms-cycle-card-head { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.ms-cycle-card-head div { display:grid; gap:2px; min-width:0; }
.ms-cycle-card-head strong { overflow:hidden; color:#15243b; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.ms-cycle-card-head small { color:#748196; font-size:9px; }
.ms-cycle-card-head > span { color:#0d283d; font-size:15px; font-weight:750; white-space:nowrap; }
.ms-cycle-meta { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0; color:#5d6b80; font-size:9px; }
.ms-cycle-meta span { padding:2px 6px; border-radius:999px; background:#edf2f5; }
.ms-cycle-meta .is-warning { background:#fff0d9; color:#a3650a; }
.ms-cycle-breakdown { display:grid; gap:4px; }
.ms-cycle-breakdown span { display:grid; grid-template-columns:8px 1fr auto; align-items:center; gap:6px; font-size:9px; }
.ms-cycle-breakdown i { width:8px; height:8px; border-radius:2px; }
.ms-cycle-breakdown b { font-weight:560; }
.ms-cycle-breakdown em { color:#22324a; font-style:normal; font-weight:700; }
.ms-cycle-breakdown .is-commercial i { background:#2578df; }
.ms-cycle-breakdown .is-internal i { background:#2f9b5f; }
.ms-cycle-breakdown .is-unclassified i { background:#7a4bd3; }
.ms-cycle-note { margin:0; padding:9px 13px; border-top:1px solid #e3e8ec; background:#f8fafb; }

.ms-back-link { display:inline-block; margin-bottom:5px; color:#1d7b94; font-size:11px; text-decoration:none; }
.ms-broadcast-detail-grid { display:grid; grid-template-columns:1.4fr .8fr; gap:13px; }
.ms-broadcast-summary, .ms-broadcast-classification { padding:15px; }
.ms-broadcast-summary h2, .ms-broadcast-classification h2 { margin-bottom:11px; font-size:15px; }
.ms-broadcast-summary dl { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:0; }
.ms-broadcast-summary dl div { display:grid; gap:3px; }
.ms-broadcast-summary dt { color:#748196; font-size:9px; }
.ms-broadcast-summary dd { margin:0; color:#17243a; font-size:11px; font-weight:650; }
.ms-screen-chip-list { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
.ms-screen-chip-list span { padding:4px 7px; border-radius:5px; background:#eef3f6; color:#425269; font-size:9px; }
.ms-broadcast-classification { border-left:5px solid #7a4bd3; }
.ms-broadcast-classification-commercial { border-left-color:#176fd1; background:#f4f8ff; }
.ms-broadcast-classification-internal { border-left-color:#238653; background:#f2fbf5; }
.ms-broadcast-classification > small { display:block; margin-top:9px; color:#748196; font-size:9px; }
.ms-broadcast-content-section { margin-top:14px; }
.ms-section-head { display:flex; justify-content:space-between; align-items:end; margin-bottom:10px; }
.ms-section-head h2 { font-size:18px; }
.ms-section-head p { margin:2px 0 0; color:#748196; font-size:10px; }
.ms-section-head > span { color:var(--ms-teal); font-size:13px; font-weight:750; }
.ms-remote-content-grid { display:grid; grid-template-columns:repeat(3,minmax(240px,1fr)); gap:12px; }
.ms-remote-content-card { overflow:hidden; border:1px solid #d9e2e8; border-radius:8px; background:#fff; }
.ms-remote-preview { display:grid; place-items:center; min-height:165px; background:#16283a; color:#cad5dc; font-size:10px; }
.ms-remote-preview video, .ms-remote-preview img { display:block; width:100%; height:190px; object-fit:contain; background:#101a24; }
.ms-remote-preview audio { width:90%; }
.ms-remote-content-info { display:grid; gap:6px; padding:10px; }
.ms-remote-content-info strong { overflow:hidden; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.ms-remote-content-info small { color:#748196; font-size:9px; }
.ms-remote-content-info .ms-action { justify-self:start; }
@media (max-width:1200px) { .ms-cycle-grid, .ms-remote-content-grid { grid-template-columns:repeat(2,minmax(240px,1fr)); } }
@media (max-width:760px) { .ms-cycle-grid, .ms-remote-content-grid, .ms-broadcast-detail-grid { grid-template-columns:1fr; } }

.ms-addreality-name-card { display:grid; gap:10px; border-left:4px solid #7654cf; }
.ms-copy-value { display:flex; align-items:center; gap:10px; }
.ms-copy-value code, .ms-name-convention code { padding:8px 10px; border-radius:6px; background:#f1edfb; color:#4e328d; font:650 12px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace; }
.ms-broadcast-application-link { display:flex; justify-content:space-between; align-items:center; gap:18px; margin-top:13px; padding:14px 16px; }
.ms-broadcast-application-link h2 { margin:0 0 3px; font-size:14px; }
.ms-broadcast-application-link p { margin:0; color:#748196; font-size:10px; }
.ms-linked-application { display:grid; gap:3px; min-width:280px; padding:9px 12px; border:1px solid #70aa88; border-radius:7px; background:#edf9f2; color:#175f38; text-decoration:none; }
.ms-linked-application span { font-size:9px; }
.ms-linked-application strong { font-size:11px; }
.ms-match-status, .ms-broadcast-match-pending, .ms-broadcast-application-number { display:inline-flex; width:max-content; margin-top:5px; padding:3px 6px; border-radius:999px; font-size:9px; font-weight:700; text-decoration:none; }
.ms-match-status.is-pending, .ms-broadcast-match-pending { background:#fff0d4; color:#9b610b; }
.ms-match-status.is-unmatched { background:#edf1f5; color:#647187; }
.ms-broadcast-application-number { background:#e8f5ed; color:#226d42; }
.ms-integration-kpis { display:grid; grid-template-columns:repeat(4,minmax(180px,1fr)); gap:12px; margin-bottom:12px; }
.ms-integration-kpis article { display:grid; gap:5px; padding:14px; }
.ms-integration-kpis article small, .ms-integration-kpis article span { color:#748196; font-size:9px; }
.ms-integration-kpis article strong { color:#17243a; font-size:17px; }
.ms-integration-kpis article strong.is-success { color:#247447; }
.ms-integration-kpis article strong.is-failed { color:#aa3e34; }
.ms-sync-current { display:flex; gap:9px; align-items:center; margin:0 0 12px; padding:10px 13px; border:1px solid #dce4ea; border-radius:7px; background:#fff; }
.ms-sync-current strong, .ms-sync-current small { display:block; }
.ms-sync-current small { margin-top:2px; color:#748196; font-size:9px; }
.ms-sync-dot { width:9px; height:9px; border-radius:50%; background:#789; }
.ms-sync-current.is-running .ms-sync-dot, .ms-sync-current.is-queued .ms-sync-dot { background:#d99a24; box-shadow:0 0 0 4px #fff0d4; }
.ms-sync-current.is-success .ms-sync-dot { background:#3b9b64; }
.ms-sync-current.is-failed .ms-sync-dot { background:#d55349; }
.ms-match-panel { margin-bottom:12px; padding:15px; }
.ms-match-kpis { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
.ms-match-kpis span { display:flex; align-items:baseline; gap:5px; padding:6px 9px; border-radius:6px; background:#eef3f6; color:#526176; font-size:9px; }
.ms-match-kpis strong { color:#17243a; font-size:14px; }
.ms-match-kpis .is-warning { background:#fff1d9; color:#9a620e; }
.ms-name-convention { margin-bottom:12px; color:#66758a; font-size:10px; }
.ms-match-table, .ms-sync-history { width:100%; border-collapse:collapse; }
.ms-match-table th, .ms-match-table td, .ms-sync-history th, .ms-sync-history td { padding:9px; border-bottom:1px solid #e0e6eb; text-align:left; vertical-align:middle; font-size:10px; }
.ms-match-table td:first-child a { display:block; color:#1d7190; font-weight:700; text-decoration:none; }
.ms-match-table td:first-child small { color:#7c899b; }
.ms-match-form { display:flex; gap:7px; align-items:center; }
.ms-match-form .ms-input { min-width:150px; height:32px; }
.ms-sync-history code { display:block; max-width:460px; overflow-wrap:anywhere; white-space:normal; font-size:8px; }
.ms-sync-error { color:#a43a32; }
.ms-run-status { display:inline-flex; padding:3px 6px; border-radius:999px; background:#edf1f5; font-size:9px; font-weight:700; }
.ms-run-status.is-success { background:#e7f6ec; color:#247447; }
.ms-run-status.is-running, .ms-run-status.is-queued, .ms-run-status.is-partial { background:#fff1d9; color:#98600d; }
.ms-run-status.is-failed { background:#fdeae8; color:#a43b33; }
@media (max-width:1050px) { .ms-integration-kpis { grid-template-columns:1fr 1fr; } }
@media (max-width:700px) { .ms-integration-kpis { grid-template-columns:1fr; } .ms-broadcast-application-link, .ms-copy-value, .ms-match-form { align-items:stretch; flex-direction:column; } }

.ms-ops-side-stack { display:grid; gap:10px; }
.ms-ops-side-stack h2 { margin:0; }
.ms-ops-side-stack .ms-panel-head a { color:var(--ms-teal); text-decoration:none; font-size:10px; }
.ms-alert-row { display:grid; grid-template-columns:24px 1fr; gap:8px; align-items:start; padding:11px 12px; border-bottom:1px solid var(--ms-line); color:var(--ms-text); text-decoration:none; }
.ms-alert-row > i { width:20px; height:20px; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; font-style:normal; font-weight:800; font-size:11px; }
.ms-alert-row strong, .ms-alert-row small { display:block; }
.ms-alert-row strong { font-size:11px; }
.ms-alert-row small { color:var(--ms-muted); font-size:9px; margin-top:3px; line-height:1.35; }
.ms-alert-row.is-danger { color:var(--ms-danger); border-left:3px solid var(--ms-danger); }
.ms-alert-row.is-warning { color:var(--ms-warn); border-left:3px solid #d39b2a; }
.ms-activity-row { display:grid; grid-template-columns:32px 1fr auto; gap:8px; align-items:center; padding:10px 12px; border-bottom:1px solid var(--ms-line); color:var(--ms-text); text-decoration:none; }
.ms-activity-row .ms-avatar { width:29px; height:29px; font-size:9px; }
.ms-activity-row strong, .ms-activity-row small { display:block; }
.ms-activity-row strong { font-size:10px; }
.ms-activity-row small, .ms-activity-row time { color:var(--ms-muted); font-size:9px; }
.ms-customer-actions { margin-top:18px; }
.ms-customer-actions .viz-row { margin-top:12px; }

@media (max-width: 1400px) {
  .ms-ops-workbench { grid-template-columns:minmax(480px,.9fr) minmax(560px,1.1fr); }
  .ms-ops-lower { grid-template-columns:minmax(680px,1fr) 290px; }
  .ms-inspector-grid { grid-template-columns:minmax(0,1fr) 210px; }
}

@media (max-width: 1180px) {
  .ms-ops-kpis { grid-template-columns:1fr 1fr; }
  .ms-ops-kpis.is-operator { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ms-content-checker-grid { grid-template-columns:1fr; }
  .ms-ops-workbench, .ms-ops-lower { grid-template-columns:1fr; }
  .ms-ops-side-stack { grid-template-columns:1fr 1fr; }
}

@media (max-width: 760px) {
  .ms-ops-page { padding:15px; }
  .ms-ops-page-head { align-items:flex-start; }
  .ms-live-indicator { display:none; }
  .ms-ops-kpis { grid-template-columns:1fr; }
  .ms-ops-kpis.is-operator { grid-template-columns:1fr; }
  .ms-content-checker-head, .ms-checker-actions { align-items:flex-start; flex-direction:column; }
  .ms-content-checker-grid { padding:12px; }
  .ms-checker-metadata { grid-template-columns:1fr; gap:8px; }
  .ms-checker-metadata div { padding:0; border:0; }
  .ms-inspector-grid, .ms-ops-side-stack { grid-template-columns:1fr; }
  .ms-validation-panel { border-left:0; border-top:1px solid var(--ms-line); }
  .ms-calendar-summary { flex-wrap:wrap; justify-content:flex-end; }
  .ms-material-preview { grid-template-columns:1fr; }
}

/* Demo compatibility: keep the original desktop layout; wrap account actions on phones. */
@media (max-width: 760px) {
  .ms-topbar { height:auto; min-height:72px; flex-wrap:wrap; padding:14px 16px; }
  .ms-user { flex-wrap:wrap; max-width:100%; min-width:0; }
  .ms-user-meta { overflow-wrap:anywhere; }
}
