:root {
  --ink: #18302c;
  --muted: #70817d;
  --paper: #f4f7f3;
  --panel: #ffffff;
  --line: #e0e8e2;
  --nav: #10231f;
  --mint: #45bfa3;
  --mint-deep: #258d75;
  --mint-soft: #e4f6f0;
  --gold: #e3a742;
  --gold-soft: #fff4df;
  --blue: #5c8de8;
  --blue-soft: #edf2ff;
  --red: #d85d62;
  --red-soft: #fff0f0;
  --shadow: 0 16px 50px rgba(23, 54, 47, .08);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Inter, "Segoe UI", Arial, sans-serif; min-height: 100vh; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
.hidden { display: none !important; }

.sidebar { position: fixed; inset: 0 auto 0 0; width: min(286px,88vw); background: var(--nav); color: #fff; padding: 28px 18px 20px; display: flex; flex-direction: column; z-index: 32; transform: translateX(-105%); transition: transform .22s ease; box-shadow: none; }
.sidebar.open { transform: translateX(0); box-shadow: 18px 0 55px rgba(4,22,18,.28); }
.brand { display: flex; gap: 12px; align-items: center; padding: 0 10px 28px; font-weight: 750; font-size: 17px; letter-spacing: -.3px; }
.brand small { color: #8fb9ad; font-size: 10px; letter-spacing: 1px; margin-left: 4px; }
.brand-mark { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: var(--mint); color: #0b2c24; font-weight: 900; }
.sidebar-close { margin-left: auto; width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.13); border-radius: 8px; background: rgba(255,255,255,.07); color: #fff; cursor: pointer; font-size: 20px; }
.sidebar-close:hover { background: rgba(255,255,255,.13); }
.sidebar-overlay { position: fixed; inset: 0; z-index: 31; background: rgba(6,24,20,.44); backdrop-filter: blur(2px); opacity: 0; pointer-events: none; transition: opacity .2s ease; }
.sidebar-overlay.open { opacity: 1; pointer-events: auto; }
body.sidebar-open { overflow: hidden; }
nav { display: grid; gap: 6px; }
.nav-item { width: 100%; border: 0; background: transparent; color: #a9bbb6; padding: 11px 14px; display: flex; align-items: center; gap: 12px; border-radius: 10px; cursor: pointer; text-align: left; font-size: 13px; }
.nav-icon { width: 20px; text-align: center; font-size: 18px; }
.nav-item:hover, .nav-item.active { color: #fff; background: rgba(107, 221, 191, .12); }
.nav-item.active { box-shadow: inset 3px 0 var(--mint); }
.sidebar-foot { margin-top: auto; border-top: 1px solid rgba(255,255,255,.09); padding: 20px 8px 0; display: grid; grid-template-columns: 36px minmax(0,1fr) auto; align-items: center; gap: 10px; }
.avatar { width: 36px; height: 36px; display: grid; place-items: center; background: #2d4e46; border-radius: 50%; font-size: 12px; }
.sidebar-foot strong, .sidebar-foot small { display: block; }.sidebar-foot strong { font-size: 13px; }.sidebar-foot small { color: #80958f; margin-top: 2px; font-size: 11px; }
.sidebar-logout { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.13); border-radius: 8px; background: rgba(255,255,255,.06); color: #bcd0ca; cursor: pointer; font-size: 15px; }
.sidebar-logout:hover { background: rgba(255,255,255,.13); color: #fff; }

.main-shell { margin-left: 0; min-height: 100vh; }
.topbar { min-height: 92px; background: rgba(255,255,255,.88); border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 38px; backdrop-filter: blur(12px); position: sticky; top: 0; z-index: 10; }
.eyebrow { margin: 0 0 5px; color: #899994; font-size: 10px; font-weight: 800; letter-spacing: 1.35px; }.topbar > div:first-of-type { flex: 1; }.topbar h1 { margin: 0; font-size: 23px; letter-spacing: -.7px; }.top-actions { display: flex; align-items: center; gap: 11px; }.sync-status { display: inline-flex; align-items: center; gap: 7px; color: var(--muted); font-size: 11px; }.sync-status i { width: 7px; height: 7px; border-radius: 50%; background: var(--mint); box-shadow: 0 0 0 4px var(--mint-soft); }.mobile-menu { flex: 0 0 auto; display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 10px; background: #fff; color: var(--ink); font-size: 20px; cursor: pointer; transition: border-color .15s ease,background .15s ease; }.mobile-menu:hover { border-color: #acd7cc; background: var(--mint-soft); }.mobile-menu:focus-visible { outline: 3px solid var(--mint-soft); border-color: var(--mint-deep); }
.primary-button, .secondary-button, .ghost-button, .danger-button { border-radius: 9px; padding: 10px 14px; border: 1px solid var(--line); cursor: pointer; font-weight: 700; font-size: 12px; transition: transform .16s ease, box-shadow .16s ease; }.primary-button { background: var(--mint); border-color: var(--mint); color: #0b2d25; }.secondary-button { background: var(--nav); border-color: var(--nav); color: #fff; }.ghost-button { background: #fff; }.danger-button { color: #b94348; background: var(--red-soft); border-color: #f3cdcf; }.primary-button:hover, .secondary-button:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(32,83,71,.18); }

.content { padding: 30px 28px 50px; max-width: 1900px; margin: auto; }.loading-card { padding: 50px; text-align: center; color: var(--muted); background: #fff; border: 1px solid var(--line); border-radius: 16px; }
.section-heading, .panel-head, .toolbar, .inline-between { display: flex; align-items: center; justify-content: space-between; gap: 16px; }.section-heading { margin-bottom: 20px; }.section-heading h2, .panel h3 { margin: 0; letter-spacing: -.4px; }.section-heading h2 { font-size: 20px; }.section-heading p, .panel-head p, .helper-text { color: var(--muted); margin: 5px 0 0; font-size: 12px; line-height: 1.55; }.status { background: #eef8f2; color: #3c7662; padding: 8px 11px; border-radius: 20px; font-size: 11px; font-weight: 700; }.status i, .legend i { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--mint); margin-right: 6px; }

.kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; }.kpi, .panel { background: var(--panel); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow); }.kpi { padding: 19px; min-height: 132px; }.kpi.featured { background: var(--nav); color: #fff; border-color: var(--nav); }.kpi-label { color: var(--muted); font-size: 11px; display: flex; justify-content: space-between; align-items: center; }.featured .kpi-label { color: #a8bab5; }.kpi-badge { min-width: 28px; height: 28px; border: 1px solid var(--line); border-radius: 8px; display: grid; place-items: center; color: var(--mint-deep); font-weight: 800; padding: 0 6px; }.featured .kpi-badge { border-color: #38514a; color: var(--mint); }.kpi strong { display: block; font-size: 28px; margin-top: 11px; letter-spacing: -1px; }.kpi p { margin: 8px 0 0; color: var(--muted); font-size: 11px; }.featured p { color: #a8bab5; }.kpi em { color: #3eb18f; font-style: normal; font-weight: 800; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(290px, .8fr); gap: 15px; margin-top: 15px; }.panel { padding: 21px; }.panel h3 { font-size: 15px; }.legend { color: var(--muted); font-size: 11px; }
.chart { height: 268px; margin-top: 13px; position: relative; }.chart svg { width: 100%; height: 215px; overflow: visible; }.grid-line { stroke: #e8ede9; stroke-width: 1; }.area-line { fill: none; stroke: var(--mint); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }.area-fill { fill: url(#revenueArea); }.chart-dot { fill: #fff; stroke: var(--mint); stroke-width: 3; }.chart-labels { display: flex; justify-content: space-between; color: var(--muted); font-size: 10px; padding: 0 8px; }.chart-labels b { display: block; color: var(--ink); font-size: 11px; margin-top: 3px; }.chart-empty { display: grid; place-items: center; height: 220px; color: var(--muted); font-size: 12px; }
.quick-actions { display: grid; margin-top: 12px; }.quick-action { width: 100%; border: 0; background: transparent; border-top: 1px solid var(--line); padding: 14px 0; display: flex; align-items: center; gap: 12px; text-align: left; cursor: pointer; }.quick-action:hover b { color: var(--mint-deep); }.quick-action > span:nth-child(2) { flex: 1; }.quick-action b, .quick-action small { display: block; }.quick-action b { font-size: 12px; }.quick-action small { color: var(--muted); margin-top: 4px; font-size: 10px; }.quick-action > i { color: #93a19e; font-size: 20px; font-style: normal; }.action-icon { width: 35px; height: 35px; border-radius: 9px; display: grid; place-items: center; font-size: 17px; }.mint { background: var(--mint-soft); color: var(--mint-deep); }.gold { background: var(--gold-soft); color: #bd7c15; }.blue { background: var(--blue-soft); color: #527ac6; }
.products-panel { margin-top: 15px; }.text-button { background: transparent; border: 0; color: var(--mint-deep); font-size: 12px; font-weight: 800; cursor: pointer; }.product-list { margin-top: 10px; }.product-row { display: grid; grid-template-columns: 42px minmax(0,1fr) 90px 110px; gap: 12px; align-items: center; border-top: 1px solid var(--line); padding: 13px 0; }.rank { width: 31px; height: 31px; background: #eef5f1; border-radius: 8px; display: grid; place-items: center; color: #548078; font-size: 11px; font-weight: 800; }.truncate { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.product-name { font-size: 12px; font-weight: 650; }.product-row small, .subtext { display: block; color: var(--muted); font-size: 10px; margin-top: 3px; }.number-cell { text-align: right; font-size: 12px; font-weight: 750; }

.toolbar { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 12px; margin-bottom: 14px; flex-wrap: wrap; }.search-box { position: relative; flex: 1; min-width: 220px; }.search-box span { position: absolute; left: 12px; top: 9px; color: #91a09c; }.search-box input, .field input, .field select, .field textarea, .toolbar select { width: 100%; border: 1px solid var(--line); background: #fbfcfb; border-radius: 8px; padding: 9px 11px; color: var(--ink); outline: none; font-size: 12px; }.search-box input { padding-left: 34px; }.toolbar select { width: auto; min-width: 145px; }.search-box input:focus, .field input:focus, .field select:focus, .field textarea:focus, .toolbar select:focus { border-color: var(--mint); box-shadow: 0 0 0 3px var(--mint-soft); }
.table-panel { padding: 0; overflow: hidden; }.table-scroll { overflow-x: auto; }.data-table { width: 100%; border-collapse: collapse; min-width: 860px; }.data-table th { background: #f8faf8; color: #788a85; font-size: 10px; letter-spacing: .45px; text-transform: uppercase; text-align: left; padding: 12px 15px; border-bottom: 1px solid var(--line); white-space: nowrap; }.data-table td { padding: 13px 15px; border-bottom: 1px solid #edf1ee; font-size: 11px; vertical-align: middle; }.data-table tr:last-child td { border-bottom: 0; }.data-table tbody tr:hover { background: #fbfdfb; }.clickable-row { cursor: pointer; }.cell-title { font-weight: 700; max-width: 310px; }.cell-sub { color: var(--muted); font-size: 10px; margin-top: 3px; }.amount { font-weight: 800; text-align: right; white-space: nowrap; }.badge { display: inline-flex; align-items: center; gap: 5px; padding: 5px 8px; border-radius: 20px; font-size: 10px; font-weight: 700; white-space: nowrap; }.badge.success { color: #267c67; background: var(--mint-soft); }.badge.warning { color: #a56d17; background: var(--gold-soft); }.badge.neutral { color: #667873; background: #eef2ef; }.badge.danger { color: #b74349; background: var(--red-soft); }.table-footer { display: flex; justify-content: space-between; align-items: center; gap: 15px; border-top: 1px solid var(--line); padding: 12px 15px; color: var(--muted); font-size: 10px; }.pagination { display: flex; gap: 6px; }.pagination button { width: 29px; height: 29px; border: 1px solid var(--line); border-radius: 7px; background: #fff; cursor: pointer; }.pagination button.active { background: var(--nav); color: #fff; border-color: var(--nav); }
.empty-state { padding: 55px 22px; text-align: center; color: var(--muted); }.empty-state strong { color: var(--ink); display: block; margin-bottom: 6px; }

.report-tabs { display: flex; gap: 7px; flex-wrap: wrap; margin-bottom: 15px; }.report-tab { border: 1px solid var(--line); background: #fff; padding: 8px 13px; border-radius: 20px; font-size: 11px; font-weight: 700; cursor: pointer; }.report-tab.active { background: var(--nav); border-color: var(--nav); color: #fff; }.report-bars { display: grid; gap: 13px; margin-top: 18px; }.report-bar-head { display: flex; justify-content: space-between; gap: 20px; font-size: 11px; margin-bottom: 6px; }.bar-track { height: 8px; background: #edf1ee; border-radius: 9px; overflow: hidden; }.bar-fill { height: 100%; background: linear-gradient(90deg, var(--mint), #7dd7c1); border-radius: inherit; }.notice { background: #fff9ec; border: 1px solid #f2dfb9; color: #835e25; padding: 12px 14px; border-radius: 10px; font-size: 11px; line-height: 1.5; margin-bottom: 14px; }
.report-heading-actions,.pivot-preview-controls { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.report-sheet-view .content { padding-bottom: 104px; }
.report-sheet-view .toast-wrap { bottom: 72px; }
.report-sheet-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 24; min-height: 56px; display: flex; align-items: center; gap: 9px; padding: 7px 20px; border-top: 1px solid #cfdad6; background: rgba(248,250,248,.97); box-shadow: 0 -8px 28px rgba(16,35,31,.09); backdrop-filter: blur(12px); }
.report-sheet-add { flex: 0 0 auto; width: 36px; height: 36px; border: 1px solid #cbd8d3; background: #fff; color: var(--mint-deep); border-radius: 7px; font-size: 20px; font-weight: 800; cursor: pointer; }
.report-sheet-add:hover { border-color: var(--mint-deep); background: var(--mint-soft); }
.report-sheet-tabs { flex: 1; min-width: 0; display: flex; align-items: stretch; gap: 4px; overflow-x: auto; scrollbar-width: thin; padding: 2px 0; }
.report-sheet-tab { flex: 0 0 auto; display: flex; align-items: center; min-width: 108px; min-height: 36px; border: 1px solid #d4dfdb; background: #eef2ef; }
.report-sheet-tab.active { border-color: #7ecbb9; background: #fff; box-shadow: inset 0 3px 0 var(--mint); }
.report-sheet-name { min-width: 92px; max-width: 190px; flex: 1; border: 0; background: transparent; color: #586a65; padding: 9px 12px; font-size: 10px; font-weight: 750; text-align: left; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; }
.report-sheet-tab.active .report-sheet-name { color: var(--ink); }
.report-sheet-actions { display: flex; align-items: center; padding-right: 5px; }
.report-sheet-actions button { width: 24px; height: 24px; display: grid; place-items: center; border: 0; background: transparent; color: #71827d; font-size: 11px; cursor: pointer; }
.report-sheet-actions button:hover { background: var(--mint-soft); color: var(--mint-deep); }
.report-sheet-actions button:disabled { opacity: .35; cursor: not-allowed; }
.report-sheet-help { flex: 0 0 auto; min-width: 168px; display: grid; justify-items: end; gap: 2px; }
.report-sheet-help > span { color: var(--muted); font-size: 8px; }
.report-autosave-status { font-size: 9px; color: #397c69; }
.report-autosave-status.pending { color: #a36c18; }.report-autosave-status.saving { color: #356b8b; }.report-autosave-status.error { color: var(--red); }
.pivot-workspace { display: grid; grid-template-columns: 270px minmax(0,1fr); gap: 15px; align-items: start; }
.pivot-fields { position: sticky; top: 112px; max-height: calc(100vh - 145px); overflow: auto; }
.pivot-field-list { display: grid; gap: 7px; margin-top: 14px; }
.pivot-field { display: grid; grid-template-columns: 18px minmax(0,1fr) auto; align-items: center; gap: 7px; width: 100%; border: 1px solid var(--line); background: #fbfcfb; border-radius: 9px; padding: 9px; cursor: grab; text-align: left; }
.pivot-field:hover { border-color: #aad8cc; background: #f3fbf8; }.pivot-field.used { border-color: #b8ded4; background: #f0faf7; }.pivot-field > span { color: #9caaa6; }.pivot-field b { font-size: 10px; }.pivot-field small { color: var(--muted); font-size: 8px; text-transform: uppercase; }
.pivot-main { min-width: 0; display: grid; gap: 15px; }.pivot-zones { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 15px; }
.pivot-zone { min-height: 116px; border: 1.5px dashed #cad8d3; background: #f8faf8; border-radius: 11px; padding: 12px; display: grid; grid-template-columns: 34px minmax(0,1fr); gap: 9px; align-content: start; transition: border-color .15s ease,background .15s ease,transform .15s ease; }.pivot-zone.drag-over { border-color: var(--mint-deep); background: #edf9f5; transform: translateY(-1px); }.pivot-zone-icon { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 8px; color: var(--mint-deep); background: var(--mint-soft); font-weight: 900; }.pivot-zone strong,.pivot-zone small { display: block; }.pivot-zone strong { font-size: 11px; }.pivot-zone small { color: var(--muted); font-size: 9px; margin-top: 3px; }.pivot-zone-items { grid-column: 1/-1; display: grid; gap: 6px; min-height: 29px; }.pivot-drop-copy { color: #91a09c; font-size: 9px; align-self: center; text-align: center; padding: 7px; }
.pivot-chip { display: flex; align-items: center; gap: 7px; background: var(--nav); color: #fff; border-radius: 8px; padding: 7px 9px; font-size: 10px; font-weight: 750; cursor: grab; }.pivot-chip.value { background: #e4f6f0; color: var(--mint-deep); }.pivot-chip > span { flex: 1; min-width: 0; }.pivot-chip > span small { color: #b8ccc6; display: inline; margin-left: 4px; }.pivot-chip.value > span small { color: #4c8d7d; }.pivot-chip select { max-width: 122px; border: 1px solid rgba(255,255,255,.2); border-radius: 6px; padding: 4px 6px; background: rgba(255,255,255,.1); color: inherit; font-size: 9px; }.pivot-chip.value select { background: #fff; border-color: #c6e2da; }.pivot-chip button { flex: 0 0 auto; border: 0; background: transparent; color: inherit; cursor: pointer; font-size: 15px; line-height: 1; }.pivot-inline-control { display: flex; justify-content: flex-end; margin-top: 10px; }.pivot-inline-control label { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 10px; font-weight: 700; }.pivot-inline-control select,.pivot-preview-controls select { border: 1px solid var(--line); border-radius: 7px; background: #fff; padding: 7px 9px; color: var(--ink); font-size: 10px; }
.pivot-chip-wrap { position: relative; min-width: 0; }.pivot-chip .pivot-member-toggle { width: 25px; height: 24px; display: grid; place-items: center; border-left: 1px solid rgba(255,255,255,.18); font-size: 12px; }.pivot-chip .pivot-member-toggle:hover,.pivot-chip .pivot-member-toggle[aria-expanded="true"] { background: rgba(255,255,255,.12); }.pivot-zone:has(.pivot-member-filter) { position: relative; z-index: 25; }.pivot-member-filter { position: absolute; top: calc(100% + 5px); left: 0; z-index: 30; width: min(360px,calc(100vw - 80px)); border: 1px solid #bcd5ce; background: #fff; color: var(--ink); padding: 10px; box-shadow: 0 18px 45px rgba(16,35,31,.2); cursor: default; }.pivot-zone:nth-child(even) .pivot-member-filter { left: auto; right: 0; }.member-filter-title { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-bottom: 6px; }.member-filter-title strong,.member-filter-title small { display: block; }.member-filter-title strong { font-size: 11px; }.member-filter-title small { color: var(--muted); font-size: 8px; margin-top: 3px; }.member-filter-title > button { width: 26px; height: 26px; border: 0; background: transparent; color: #8e575a; font-size: 17px; cursor: pointer; }.member-filter-title > button:hover { background: var(--red-soft); }.member-filter-loading { color: var(--muted); padding: 18px 8px; text-align: center; font-size: 9px; }.pivot-member-filter .filter-check-list { max-height: 280px; grid-template-columns: 1fr; gap: 2px; }.pivot-member-filter .slicer-more { margin-bottom: 0; }
.pivot-slicers { box-shadow: none; }.quick-slicer-grid,.custom-slicer-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 14px; }.custom-slicer-grid { margin-top: 10px; }.slicer-card { min-width: 0; border: 1px solid var(--line); background: #fafcfb; border-radius: 10px; padding: 11px; }.slicer-head { display: flex; align-items: center; justify-content: space-between; gap: 9px; }.slicer-head strong,.slicer-head small { display: block; }.slicer-head strong { font-size: 10px; }.slicer-head small { color: var(--muted); font-size: 8px; margin-top: 3px; }.slicer-head > button { border: 0; background: transparent; color: var(--mint-deep); font-size: 9px; font-weight: 800; cursor: pointer; }.range-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; margin-top: 10px; }.range-grid label { color: var(--muted); font-size: 8px; font-weight: 750; }.range-grid input,.slicer-search input { width: 100%; border: 1px solid var(--line); border-radius: 7px; padding: 7px 8px; background: #fff; color: var(--ink); font-size: 9px; margin-top: 4px; }.segment-control { display: inline-flex; border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 2px; margin-top: 10px; }.segment-control button { border: 0; background: transparent; border-radius: 6px; padding: 6px 10px; color: var(--muted); cursor: pointer; font-size: 9px; font-weight: 750; }.segment-control button.active { background: var(--nav); color: #fff; }.slicer-search { position: relative; margin-top: 9px; }.slicer-search span { position: absolute; left: 8px; top: 10px; color: #91a09c; font-size: 10px; }.slicer-search input { padding-left: 24px; margin: 0; }.slicer-options { max-height: 158px; overflow: auto; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px; margin-top: 8px; padding-right: 2px; }.slicer-option { min-width: 0; display: flex; justify-content: space-between; gap: 6px; border: 1px solid var(--line); border-radius: 7px; background: #fff; padding: 6px 7px; color: var(--ink); cursor: pointer; font-size: 8px; text-align: left; }.slicer-option span { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }.slicer-option small { color: var(--muted); }.slicer-option.active { border-color: var(--mint-deep); background: var(--mint-soft); color: var(--mint-deep); font-weight: 800; }.slicer-more { color: var(--muted); font-size: 8px; margin: 7px 0 0; }.pivot-empty-inline { color: var(--muted); text-align: center; border: 1px dashed var(--line); border-radius: 9px; padding: 13px; margin-top: 10px; font-size: 9px; }
.slicer-actions { flex: 0 0 auto; display: flex; align-items: center; gap: 3px; }.slicer-actions button { border: 0; background: transparent; color: var(--mint-deep); min-width: 25px; height: 25px; padding: 0 5px; font-size: 9px; font-weight: 800; cursor: pointer; }.slicer-actions button:hover { background: #e9f4f0; }.slicer-actions .slicer-remove { color: #8e575a; font-size: 16px; line-height: 1; }.slicer-actions .slicer-remove:hover { color: #a63c42; background: var(--red-soft); }
.pivot-add-controls { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; margin-top: 13px; padding: 8px 10px; border: 1px dashed #cbd8d3; background: #f8faf8; }.pivot-add-controls > span { color: var(--muted); font-size: 9px; font-weight: 750; margin-right: 2px; }.pivot-add-controls button { border: 1px solid #bddbd3; background: #fff; color: var(--mint-deep); padding: 6px 9px; border-radius: 6px; font-size: 9px; font-weight: 800; cursor: pointer; }.pivot-add-controls button:hover { background: var(--mint-soft); border-color: var(--mint-deep); }
.slicer-panel-actions { display: flex; align-items: end; justify-content: flex-end; gap: 12px; flex-wrap: wrap; }.add-filter-field { display: grid; gap: 4px; }.add-filter-field > span { color: var(--muted); font-size: 8px; font-weight: 750; }.add-filter-field select { min-width: 180px; border: 1px solid #bcd7d0; background: #fff; color: var(--ink); border-radius: 7px; padding: 8px 30px 8px 9px; font-size: 10px; font-weight: 700; cursor: pointer; }.add-filter-field select:focus { outline: 3px solid var(--mint-soft); border-color: var(--mint-deep); }.add-filter-field select:disabled { opacity: .55; cursor: not-allowed; }
.compact-filter-card { position: relative; overflow: visible; }.filter-value-dropdown { position: relative; margin-top: 10px; }.filter-value-dropdown[open] { z-index: 15; }.filter-value-dropdown summary { min-height: 36px; display: flex; align-items: center; justify-content: space-between; gap: 10px; border: 1px solid #cfdad6; background: #fff; color: var(--ink); border-radius: 7px; padding: 8px 10px; font-size: 10px; font-weight: 750; cursor: pointer; list-style: none; }.filter-value-dropdown summary::-webkit-details-marker { display: none; }.filter-value-dropdown summary b { color: var(--mint-deep); font-size: 12px; transition: transform .15s ease; }.filter-value-dropdown[open] summary { border-color: var(--mint-deep); box-shadow: 0 0 0 3px var(--mint-soft); }.filter-value-dropdown[open] summary b { transform: rotate(180deg); }.filter-dropdown-panel { position: absolute; top: calc(100% + 5px); left: 0; right: 0; z-index: 16; border: 1px solid #bfd6cf; background: #fff; padding: 10px; box-shadow: 0 16px 38px rgba(16,35,31,.16); }.filter-dropdown-actions { display: flex; align-items: center; justify-content: flex-end; gap: 6px; }.filter-dropdown-actions button { border: 0; background: transparent; color: var(--mint-deep); padding: 5px 7px; font-size: 9px; font-weight: 800; cursor: pointer; }.filter-dropdown-actions button:hover { background: var(--mint-soft); }.filter-value-dropdown .filter-check-list { max-height: 270px; grid-template-columns: 1fr; gap: 2px; margin-top: 7px; }.filter-check-option { min-width: 0; display: grid; grid-template-columns: 18px minmax(0,1fr) auto; align-items: center; gap: 7px; padding: 6px 7px; color: var(--ink); font-size: 9px; cursor: pointer; }.filter-check-option:hover { background: #f1f8f5; }.filter-check-option input { width: 14px; height: 14px; margin: 0; accent-color: var(--mint-deep); }.filter-check-option span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.filter-check-option small { color: var(--muted); font-size: 8px; }
.pivot-preview { padding: 0; overflow: hidden; }.pivot-preview-head { padding: 17px 20px; border-bottom: 1px solid var(--line); align-items: flex-start; }.pivot-preview-controls { justify-content: flex-end; }.view-switch { margin: 0; }.pivot-preview .loading-card { margin: 15px; padding: 65px 20px; border-style: dashed; box-shadow: none; }.pivot-limit-note { margin: 12px 15px 0; }
.live-report-filterbar { position: relative; z-index: 12; display: grid; grid-template-columns: minmax(260px,1fr) minmax(280px,380px) auto; align-items: end; gap: 9px; padding: 11px 18px; border-bottom: 1px solid var(--line); background: #fbfcfb; }.live-report-filterbar.has-filter { background: #f2fbf7; box-shadow: inset 3px 0 0 var(--mint); }.live-report-filterbar:has(.live-report-multiselect[open]) { z-index: 25; }.live-report-search { display: grid; gap: 4px; min-width: 0; color: var(--muted); font-size: 8px; font-weight: 800; }.live-report-search .search-box { width: 100%; min-width: 0; }.live-report-search .search-box input { background: #fff; }.live-report-multiselect { position: relative; min-width: 0; }.live-report-multiselect summary { min-height: 36px; display: flex; align-items: center; justify-content: space-between; gap: 10px; border: 1px solid #cfdad6; border-radius: 8px; background: #fff; padding: 8px 10px; color: var(--ink); font-size: 9px; cursor: pointer; list-style: none; }.live-report-multiselect summary::-webkit-details-marker { display: none; }.live-report-multiselect summary span { font-weight: 850; }.live-report-multiselect summary b { overflow: hidden; color: var(--mint-deep); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }.live-report-multiselect[open] summary { border-color: var(--mint-deep); box-shadow: 0 0 0 3px var(--mint-soft); }.live-filter-dropdown { right: 0; left: auto; width: min(430px,calc(100vw - 90px)); }.live-filter-options { max-height: 300px; grid-template-columns: 1fr; gap: 2px; }.live-report-filterbar > .ghost-button { min-height: 36px; }
.pivot-table-scroll { max-height: min(72vh,760px); overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }.pivot-table { min-width: 940px; table-layout: fixed; }.pivot-table th { position: relative; overflow: visible; }.pivot-table thead .pivot-column-headings th { position: sticky; top: 0; z-index: 7; height: 54px; background: #f8faf8; box-shadow: inset 0 -1px 0 var(--line); }.pivot-table thead .pivot-grand-top th { position: sticky; top: 54px; z-index: 6; padding: 9px 10px; border-bottom: 2px solid #acd8cd; color: var(--ink); font-size: 10px; text-align: right; text-transform: none; letter-spacing: 0; white-space: nowrap; }.pivot-table thead .pivot-grand-top .pivot-grand-top-label { background: #edf8f4; color: var(--mint-deep); text-align: left; }.pivot-table th small { display: block; color: #9aa8a4; font-size: 8px; margin-top: 3px; text-transform: none; letter-spacing: 0; }.pivot-header-copy { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; padding-right: 7px; }.resizable-pivot-header.is-sortable .pivot-header-copy { padding-right: 32px; }.pivot-header-sort { position: absolute; z-index: 4; top: 50%; right: 10px; width: 22px; height: 22px; padding: 0; transform: translateY(-50%); border: 1px solid transparent; border-radius: 6px; background: transparent; color: #81938d; cursor: pointer; font-size: 12px; font-weight: 900; line-height: 20px; }.pivot-header-sort:hover { border-color: #bcd7d0; background: #fff; color: var(--mint-deep); }.pivot-header-sort.active { border-color: #9bd6c6; background: var(--mint-soft); color: var(--mint-deep); }.pivot-header-sort:focus-visible { outline: 3px solid var(--mint-soft); outline-offset: 1px; }.column-resizer { position: absolute; z-index: 3; top: 0; right: -5px; width: 10px; height: 100%; cursor: col-resize; touch-action: none; outline: none; }.column-resizer::after { content: ""; position: absolute; top: 18%; bottom: 18%; left: 4px; width: 2px; border-radius: 2px; background: #c8d6d1; opacity: 0; transition: opacity .15s ease,background .15s ease; }.resizable-pivot-header:hover .column-resizer::after,.column-resizer:hover::after,.column-resizer:focus-visible::after { opacity: 1; background: var(--mint); }.column-resizer:focus-visible { box-shadow: inset 0 0 0 2px var(--mint); }.resizing-columns,.resizing-columns * { cursor: col-resize !important; user-select: none !important; }.compact-button { padding: 7px 9px; font-size: 10px; }.pivot-table td { padding: 8px 10px; overflow: hidden; text-overflow: ellipsis; }.pivot-row-label { min-width: 0; font-weight: 700; white-space: nowrap; }.pivot-value-cell { width: 100%; border: 0; background: transparent; padding: 4px; color: var(--ink); font-weight: 750; font-size: 10px; text-align: right; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.pivot-value-cell:hover { color: var(--mint-deep); text-decoration: underline; }.pivot-total,.pivot-grand,.pivot-total-head { background: #edf8f4 !important; font-weight: 850; }.pivot-grand { color: var(--mint-deep); }.pivot-settlement-cell,.pivot-settlement-total,.pivot-settlement-deduction,.pivot-settlement-final { font-weight: 850; }.pivot-settlement-total { background: #edf8f4 !important; }.pivot-settlement-deduction { background: #fff7e8 !important; color: #8a611b !important; }.pivot-settlement-final { background: #e1f5ee !important; color: #08745b !important; font-weight: 900 !important; }.pivot-grand-row td { border-top: 2px solid #bfded5; background: #f5fbf9; font-weight: 850; }.pivot-chart { display: grid; gap: 12px; padding: 22px; }.pivot-chart-row { display: grid; grid-template-columns: minmax(120px,220px) minmax(120px,1fr) 120px; align-items: center; gap: 12px; }.pivot-chart-label { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 10px; font-weight: 700; }.pivot-chart-track { height: 13px; border-radius: 10px; background: #edf1ee; overflow: hidden; }.pivot-chart-track span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--mint),#75d4bd); }.pivot-chart-row > strong { text-align: right; font-size: 10px; }
@media (max-width: 1180px) { .pivot-workspace { grid-template-columns: 230px minmax(0,1fr); }.quick-slicer-grid,.custom-slicer-grid { grid-template-columns: 1fr; } }
@media (max-width: 980px) { .pivot-workspace { grid-template-columns: 1fr; }.pivot-fields { position: static; max-height: none; }.pivot-field-list { grid-template-columns: repeat(3,minmax(0,1fr)); }.quick-slicer-grid,.custom-slicer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 900px) { .live-report-filterbar { grid-template-columns: minmax(0,1fr) minmax(260px,1fr); }.live-report-filterbar > .ghost-button { grid-column: 1 / -1; justify-self: start; } }
@media (max-width: 700px) { .pivot-zones,.pivot-field-list,.quick-slicer-grid,.custom-slicer-grid { grid-template-columns: 1fr; }.pivot-preview-head { display: grid; }.pivot-preview-controls { justify-content: flex-start; }.live-report-filterbar { grid-template-columns: 1fr; }.live-report-filterbar > .ghost-button { grid-column: auto; width: 100%; }.live-filter-dropdown { right: 0; left: 0; width: auto; }.pivot-chart-row { grid-template-columns: minmax(90px,1fr) 1.4fr; }.pivot-chart-row > strong { grid-column: 2; }.range-grid { grid-template-columns: 1fr; }.pivot-zone:nth-child(even) .pivot-member-filter { left: 0; right: auto; } }
@media (max-width: 700px) { .pivot-slicers > .panel-head { align-items: stretch; flex-direction: column; }.slicer-panel-actions { justify-content: space-between; }.add-filter-field { flex: 1; }.add-filter-field select { width: 100%; min-width: 0; } }
@media (max-width: 700px) { .report-sheet-bar { padding-inline: 10px; }.report-sheet-help { min-width: auto; }.report-sheet-help > span { display: none; }.report-sheet-tab { min-width: 96px; }.report-sheet-name { min-width: 80px; max-width: 145px; } }
@media (max-width: 480px) { .report-sheet-help { display: none; }.report-sheet-actions button { width: 22px; }.report-sheet-view .content { padding-bottom: 96px; } }

.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }.field.full { grid-column: 1 / -1; }.field label { display: block; font-size: 11px; font-weight: 750; margin-bottom: 6px; }.field textarea { min-height: 82px; resize: vertical; }.form-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 18px; }.mapping-summary { background: #f5f8f6; border-radius: 10px; padding: 12px; margin-bottom: 15px; font-size: 11px; line-height: 1.5; }.mapping-summary strong { display: block; margin-bottom: 3px; }

.modal-backdrop, .drawer-backdrop { position: fixed; inset: 0; background: rgba(6, 24, 20, .48); backdrop-filter: blur(3px); z-index: 40; }.modal-backdrop { display: grid; place-items: center; padding: 20px; }.modal { background: #fff; width: min(590px, 100%); max-height: min(760px, 92vh); overflow: auto; border-radius: 16px; box-shadow: 0 30px 90px rgba(0,0,0,.25); }.modal-head { display: flex; justify-content: space-between; align-items: flex-start; padding: 22px 24px 14px; border-bottom: 1px solid var(--line); }.modal h2 { margin: 0; font-size: 19px; }.modal-body { padding: 22px 24px 24px; }.icon-button { border: 1px solid var(--line); background: #fff; width: 34px; height: 34px; border-radius: 9px; cursor: pointer; font-size: 20px; display: grid; place-items: center; }
.modal:has(.drill-table) { width: min(1120px,96vw); }.drill-summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 13px; }.drill-summary strong { font-size: 16px; }.drill-summary span { color: var(--muted); font-size: 10px; }.drill-table { min-width: 980px; }
.drawer { position: fixed; right: 0; top: 0; bottom: 0; width: min(560px, 94vw); background: #fff; z-index: 50; box-shadow: -20px 0 60px rgba(0,0,0,.15); transform: translateX(105%); transition: transform .25s ease; overflow-y: auto; }.drawer.open { transform: translateX(0); }.drawer-head { background: var(--nav); color: #fff; padding: 25px; }.drawer-head .icon-button { float: right; background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.13); color: #fff; }.drawer-head h2 { margin: 15px 0 5px; }.drawer-head p { margin: 0; color: #9fb5af; font-size: 11px; }.student-metrics { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-top: 20px; }.student-metrics div { background: rgba(255,255,255,.08); border-radius: 9px; padding: 10px; }.student-metrics strong, .student-metrics span { display: block; }.student-metrics strong { font-size: 17px; }.student-metrics span { color: #9fb5af; font-size: 9px; margin-top: 3px; }.drawer-body { padding: 22px 25px; }.purchase-card { border: 1px solid var(--line); border-radius: 11px; padding: 13px; margin-bottom: 9px; }.purchase-card .inline-between { align-items: flex-start; }.purchase-card strong { font-size: 11px; line-height: 1.45; }.purchase-card p { color: var(--muted); font-size: 10px; margin: 6px 0 0; }.purchase-card .amount { color: var(--mint-deep); }
.toast-wrap { position: fixed; right: 20px; bottom: 20px; z-index: 70; display: grid; gap: 8px; }.toast { min-width: 280px; max-width: 390px; background: var(--nav); color: #fff; border-radius: 11px; padding: 13px 15px; box-shadow: 0 15px 45px rgba(0,0,0,.25); font-size: 11px; animation: toast-in .22s ease; }.toast.error { background: #8d3338; }.toast strong { display: block; margin-bottom: 3px; }.toast span { color: #b9ccc7; }.toast.error span { color: #f5cdcf; }@keyframes toast-in { from { transform: translateY(12px); opacity: 0; } }
.import-result { text-align: center; }.result-icon { width: 58px; height: 58px; margin: 0 auto 12px; border-radius: 50%; display: grid; place-items: center; background: var(--mint-soft); color: var(--mint-deep); font-size: 25px; }.result-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-top: 17px; }.result-grid div { background: #f5f8f6; border-radius: 9px; padding: 10px; }.result-grid strong, .result-grid span { display: block; }.result-grid span { font-size: 9px; color: var(--muted); margin-top: 3px; }

.quality-hero { display: grid; grid-template-columns: 230px minmax(0,1fr); gap: 15px; margin-bottom: 15px; }.score-card { background: var(--nav); color: #fff; display: grid; place-items: center; text-align: center; min-height: 245px; }.score-ring { --score: 0; width: 132px; height: 132px; border-radius: 50%; display: grid; place-items: center; background: conic-gradient(var(--mint) calc(var(--score) * 1%), #29423c 0); position: relative; }.score-ring::before { content: ""; position: absolute; inset: 10px; border-radius: 50%; background: var(--nav); }.score-ring div { position: relative; z-index: 1; }.score-ring strong { display: block; font-size: 35px; letter-spacing: -1px; }.score-ring span { display: block; color: #9fb5af; font-size: 9px; margin-top: 2px; }.score-card h3 { margin: 12px 0 3px; }.score-card p { color: #9fb5af; margin: 0; font-size: 10px; }.quality-categories { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }.quality-card { border: 1px solid var(--line); background: #fff; border-radius: 11px; padding: 13px; display: grid; grid-template-columns: 36px minmax(0,1fr) auto; align-items: center; gap: 10px; }.quality-icon { width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; font-weight: 800; }.quality-icon.critical { background: var(--red-soft); color: var(--red); }.quality-icon.warning { background: var(--gold-soft); color: #a66d18; }.quality-icon.info { background: var(--blue-soft); color: var(--blue); }.quality-card strong, .quality-card small { display: block; }.quality-card strong { font-size: 11px; }.quality-card small { color: var(--muted); font-size: 9px; line-height: 1.45; margin-top: 3px; }.quality-count { font-size: 17px; font-weight: 800; }.cleaning-layout { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(280px,.65fr); gap: 15px; margin-bottom: 15px; }.rule-list { display: grid; gap: 9px; margin-top: 14px; }.rule-option { display: grid; grid-template-columns: 22px minmax(0,1fr) auto; gap: 10px; align-items: start; border: 1px solid var(--line); border-radius: 10px; padding: 11px; cursor: pointer; }.rule-option:hover { border-color: #b9d9d0; background: #fbfdfc; }.rule-option input { width: 16px; height: 16px; accent-color: var(--mint-deep); margin-top: 2px; }.rule-option strong, .rule-option small { display: block; }.rule-option strong { font-size: 11px; }.rule-option small { color: var(--muted); font-size: 9px; line-height: 1.45; margin-top: 3px; }.rule-option .badge { align-self: center; }.cleaning-actions { display: flex; gap: 8px; margin-top: 14px; flex-wrap: wrap; }.run-history { display: grid; gap: 9px; margin-top: 13px; }.run-card { border-left: 3px solid var(--mint); background: #f7faf8; border-radius: 0 9px 9px 0; padding: 10px 11px; }.run-card strong, .run-card span { display: block; }.run-card strong { font-size: 10px; }.run-card span { color: var(--muted); font-size: 9px; line-height: 1.5; margin-top: 3px; }.issue-preview { max-width: 270px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }.quality-note { display: flex; gap: 9px; align-items: flex-start; color: var(--muted); font-size: 10px; line-height: 1.5; margin-top: 12px; }.quality-note b { color: var(--ink); }

@media (max-width: 1080px) { .kpi-grid { grid-template-columns: repeat(2,1fr); }.dashboard-grid { grid-template-columns: 1fr; } }
@media (max-width: 780px) {
  .topbar { padding: 15px 18px; min-height: 78px; }.topbar h1 { font-size: 18px; }.sync-status { display: none; }.content { padding: 22px 17px 42px; }.section-heading { align-items: flex-start; }.status { display: none; }.form-grid { grid-template-columns: 1fr; }.field.full { grid-column: auto; }.quality-hero, .cleaning-layout { grid-template-columns: 1fr; }
}
@media (max-width: 560px) { .kpi-grid { grid-template-columns: 1fr; }.primary-button { padding-inline: 11px; }.top-actions .primary-button { font-size: 0; }.top-actions .primary-button::after { content: "↻ Latest"; font-size: 11px; }.product-row { grid-template-columns: 35px minmax(0,1fr) 90px; }.product-row > :nth-child(3) { display: none; }.toolbar { align-items: stretch; }.toolbar select { width: 100%; }.student-metrics { grid-template-columns: 1fr 1fr; }.result-grid, .quality-categories { grid-template-columns: 1fr; } }

.danger-zone { margin-top: 15px; border-color: #f0c9cb; box-shadow: none; background: #fffafa; }
.danger-zone .panel-head { align-items: center; }
.danger-zone h3 { color: #a63c42; }
.danger-zone p { max-width: 720px; }
.delete-summary { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; margin: 15px 0; }
.delete-summary div { background: var(--red-soft); border-radius: 9px; padding: 10px; }
.delete-summary strong, .delete-summary span { display: block; }
.delete-summary strong { color: #a63c42; font-size: 17px; }
.delete-summary span { color: #95686a; font-size: 9px; margin-top: 3px; }
.confirmation-copy { background: var(--red-soft); color: #8d3c41; border: 1px solid #f0c9cb; border-radius: 9px; padding: 11px; font-size: 10px; line-height: 1.5; margin-bottom: 14px; }
.confirmation-copy code { background: #fff; border: 1px solid #e8bfc1; padding: 2px 5px; border-radius: 4px; font-weight: 800; }
@media (max-width: 560px) { .delete-summary { grid-template-columns: 1fr; } }

.sheet-setup-grid { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(300px,.7fr); gap: 15px; margin-bottom: 15px; }
.master-setup-grid { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(290px,.65fr); gap: 15px; margin-bottom: 15px; }
.master-status-card { background: var(--ink); color: #fff; border-color: var(--ink); }
.master-status-card .panel-head p, .master-status-card .connection-list span { color: #9fb5af; }
.master-preview-stack { display: grid; gap: 15px; }
.master-source-fields { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin-top: 15px; }
.master-source-fields > span { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 9px 10px; border: 1px solid #cfe7df; border-radius: 9px; background: #f6fbf9; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; font-weight: 700; }
.master-source-fields b { flex: 0 0 auto; display: grid; place-items: center; width: 23px; height: 23px; border-radius: 6px; background: var(--mint-soft); color: var(--mint-deep); font-size: 8px; }
.master-mapping-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin: 16px 0; }
.master-map-field { display: grid; grid-template-columns: minmax(130px,.65fr) minmax(150px,1fr); align-items: center; gap: 12px; min-width: 0; padding: 10px 11px; border: 1px solid var(--line); border-radius: 10px; background: #fbfcfb; }
.master-map-field span, .master-map-field strong, .master-map-field small { display: block; min-width: 0; }
.master-map-field strong { font-size: 10px; }
.master-map-field small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.master-map-field select { min-width: 0; width: 100%; border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 9px; color: var(--ink); font-size: 10px; }
.master-current-schema { max-width: 980px; }
.master-mapping-summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 15px; }
.master-summary-row { display: grid; grid-template-columns: minmax(95px,.7fr) auto minmax(120px,1fr); align-items: center; gap: 8px; padding: 10px; border: 1px solid var(--line); border-radius: 9px; background: #f8faf9; font-size: 10px; }
.master-summary-row > b { color: var(--mint-deep); }
.master-summary-row > strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.master-empty { padding: 44px 24px; text-align: center; border-style: dashed; box-shadow: none; }
.master-empty p { max-width: 600px; margin: 7px auto 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.master-steps { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 20px; flex-wrap: wrap; }
.master-steps span { display: inline-flex; align-items: center; gap: 7px; color: var(--muted); font-size: 10px; font-weight: 700; }
.master-steps b { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--mint-soft); color: var(--mint-deep); font-size: 9px; }
.master-sample-table { min-width: 1350px; }
.centered-actions { justify-content: center; }
.sheet-connect-form { margin-top: 17px; }
.connection-card { background: linear-gradient(145deg, #10231f, #1d3a33); color: #fff; border-color: #1d3a33; }
.connection-card .panel-head p, .connection-card .connection-list span { color: #9fb5af; }
.connection-dot { width: 11px; height: 11px; border-radius: 50%; background: #6a7c77; box-shadow: 0 0 0 5px rgba(255,255,255,.06); }
.connection-dot.live { background: var(--mint); box-shadow: 0 0 0 5px rgba(107,221,191,.12); }
.connection-list { display: grid; margin-top: 13px; }
.connection-list > div { display: flex; justify-content: space-between; gap: 18px; padding: 10px 0; border-top: 1px solid rgba(255,255,255,.09); font-size: 10px; }
.connection-list strong { text-align: right; font-size: 10px; }
.break-text { word-break: break-all; }
.last-sync-note { background: rgba(107,221,191,.09); color: #bde5d8; padding: 10px; border-radius: 8px; font-size: 9px; margin-top: 8px; }
.connection-card .sheet-latest-button { width: 100%; margin-top: 10px; }
.latest-sync-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-bottom: 14px; }
.latest-sync-summary > div { min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 9px; background: #f5f8f6; }
.latest-sync-summary span, .latest-sync-summary strong { display: block; }
.latest-sync-summary span { margin-bottom: 5px; color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .55px; }
.latest-sync-summary strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.latest-sync-copy { background: #fffaf0; border-color: #f2d5a3; color: #805716; }
.last-sync-note .invalid-link { display: block; border: 0; background: transparent; color: var(--mint); font-weight: 800; font-size: 9px; padding: 7px 0 0; cursor: pointer; }
.rejected-panel { margin-top: 15px; scroll-margin-top: 110px; }
.rejected-rows-table { min-width: 1120px; }
.invalid-review-head-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; flex-wrap: wrap; }
.row-decision-actions { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.reject-text { color: #a43c42; }
.invalid-review-summary { display: grid; grid-template-columns: 1.4fr .6fr 1fr; gap: 8px; margin-bottom: 14px; }
.invalid-review-summary > div { min-width: 0; padding: 11px 12px; border: 1px solid var(--line); border-radius: 9px; background: #f5f8f6; }
.invalid-review-summary span, .invalid-review-summary strong { display: block; }
.invalid-review-summary span { margin-bottom: 5px; color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .55px; }
.invalid-review-summary strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }
.invalid-review-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; }
.invalid-review-grid .review-field-wide { grid-column: 1 / -1; }
.invalid-review-actions { align-items: center; }
.invalid-review-actions .action-spacer { flex: 1; }
.subtle-danger { padding: 9px 12px; }
.invalid-history-panel { margin-top: 15px; }
.invalid-history-list { display: grid; margin-top: 13px; }
.invalid-history-row { display: grid; grid-template-columns: 74px minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 11px 0; border-top: 1px solid var(--line); }
.invalid-history-row strong, .invalid-history-row small { display: block; }
.invalid-history-row strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }
.invalid-history-row small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.invalid-history-row > b { font-size: 10px; }
.sheet-empty { text-align: center; padding: 48px 24px; box-shadow: none; border-style: dashed; }
.sheet-empty-icon { display: grid; place-items: center; margin: 0 auto 12px; width: 48px; height: 48px; border-radius: 13px; background: var(--mint-soft); color: var(--mint-deep); font-size: 20px; font-weight: 900; }
.sheet-empty p { color: var(--muted); font-size: 11px; line-height: 1.6; max-width: 520px; margin: 7px auto 0; }
.sheet-preview-stack { display: grid; gap: 15px; }
.sheet-schema-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 9px; margin-top: 16px; }
.schema-field { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 8px; min-height: 54px; border: 1px solid #cfe7df; border-radius: 10px; padding: 9px 10px; background: #f6fbf9; }
.schema-field > span { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 7px; background: var(--mint-soft); color: var(--mint-deep); font-size: 8px; font-weight: 900; }
.schema-field strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; font-size: 10px; }
.schema-field small { grid-column: 2; color: var(--mint-deep); font-size: 8px; font-weight: 800; text-transform: uppercase; letter-spacing: .45px; }
.schema-field.missing { border-color: #f2d5a3; background: #fffaf0; }
.schema-field.missing > span { background: #f8e8c9; color: #9a681b; }
.schema-field.missing small { color: #9a681b; }
.sheet-sample-table { min-width: 1500px; }
.sheet-table-head { padding: 17px 20px 12px; }
.sync-run-card { display: grid; grid-template-columns: minmax(220px,.7fr) minmax(0,1.3fr); gap: 22px; align-items: end; }
.sync-run-card > div > p { color: var(--muted); font-size: 10px; line-height: 1.55; margin: 6px 0 0; }
.sync-controls { display: grid; grid-template-columns: 1fr 1.25fr auto; gap: 9px; align-items: end; }
.sync-controls .primary-button { white-space: nowrap; min-height: 37px; }
.primary-button:disabled, .secondary-button:disabled, .ghost-button:disabled, .danger-button:disabled { opacity: .55; cursor: not-allowed; transform: none; box-shadow: none; }

@media (max-width: 1180px) { .sheet-schema-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }.sync-run-card { grid-template-columns: 1fr; }.master-source-fields { grid-template-columns: repeat(3,minmax(0,1fr)); }.master-mapping-grid { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .sheet-setup-grid, .master-setup-grid { grid-template-columns: 1fr; }.sync-controls { grid-template-columns: 1fr; }.master-source-fields { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 620px) { .sheet-schema-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 560px) { .latest-sync-summary, .invalid-review-summary, .invalid-review-grid, .master-mapping-summary { grid-template-columns: 1fr; }.invalid-review-grid .review-field-wide { grid-column: auto; }.invalid-review-actions { align-items: stretch; }.invalid-review-actions .action-spacer { display: none; }.invalid-history-row { grid-template-columns: 70px minmax(0,1fr); }.invalid-history-row > b { grid-column: 2; }.master-source-fields { grid-template-columns: 1fr; }.master-map-field { grid-template-columns: 1fr; }.master-steps { align-items: flex-start; flex-direction: column; } }

.catalog-master-section { margin-top: 26px; scroll-margin-top: 112px; }
.catalog-section-heading { align-items: flex-end; }
.catalog-section-heading h2 { margin: 0; }
.catalog-section-heading > div > p:last-child { margin: 6px 0 0; color: var(--muted); font-size: 11px; }
.catalog-master-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; }
.catalog-master-card { min-width: 0; }
.catalog-inline-form { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 9px; margin-top: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.catalog-inline-form.batch-form { grid-template-columns: minmax(0,1fr) minmax(0,1fr) auto; }
.catalog-inline-form .primary-button { min-height: 37px; white-space: nowrap; }
.catalog-list { display: grid; max-height: 330px; overflow: auto; margin-top: 6px; }
.catalog-list-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-width: 0; padding: 12px 2px; border-bottom: 1px solid var(--line); }
.catalog-list-row:last-child { border-bottom: 0; }
.catalog-list-row > div:first-child { min-width: 0; }
.catalog-list-row strong, .catalog-list-row small { display: block; }
.catalog-list-row strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.catalog-list-row small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.catalog-row-actions { display: flex; align-items: center; gap: 9px; flex: 0 0 auto; }
.compact-empty { padding: 25px 10px; }
.coupon-master-card { margin-top: 15px; }
.coupon-bulk-toolbar { display: grid; grid-template-columns: minmax(250px,1fr) auto auto; align-items: center; gap: 10px; margin-top: 15px; padding: 10px; border: 1px solid var(--line); border-radius: 12px; background: #f7faf8; }
.coupon-bulk-toolbar.has-selection { border-color: #8ad4c0; background: #f2fbf7; box-shadow: 0 7px 22px rgba(49,158,128,.1); }
.coupon-filter-controls { display: grid; grid-template-columns: minmax(180px,1fr) minmax(155px,190px); align-items: center; gap: 8px; min-width: 0; }
.coupon-search-box { min-width: 0; background: #fff; }
.coupon-status-filter { width: 100%; min-width: 0; border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 9px 28px 9px 10px; color: var(--ink); outline: none; font-size: 10px; font-weight: 700; }
.coupon-status-filter:focus { border-color: var(--mint); box-shadow: 0 0 0 3px var(--mint-soft); }
.coupon-bulk-selection { display: flex; align-items: center; gap: 9px; white-space: nowrap; }
.coupon-bulk-selection label { display: inline-flex; align-items: center; gap: 6px; color: var(--ink); font-size: 9px; font-weight: 750; cursor: pointer; }
.coupon-bulk-selection input, .coupon-select-cell > input { width: 16px; height: 16px; accent-color: var(--mint-deep); cursor: pointer; }
.coupon-bulk-selection > strong { padding: 6px 9px; border-radius: 18px; background: var(--mint-soft); color: var(--mint-deep); font-size: 9px; }
.coupon-select-blanks { color: var(--mint-deep); font-weight: 850; }
.coupon-bulk-apply { margin: 0; background: #fff; }
.coupon-master-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 18px; max-height: 430px; overflow: auto; margin-top: 14px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.coupon-master-row { display: grid; grid-template-columns: minmax(0,1fr) minmax(180px,230px); align-items: center; gap: 14px; min-width: 0; padding: 11px 2px; border-bottom: 1px solid var(--line); }
.coupon-master-row.hidden { display: none; }
.coupon-master-row.bulk-selected { padding-left: 8px; padding-right: 8px; background: #f0faf6; box-shadow: inset 3px 0 0 var(--mint); }
.coupon-select-cell { display: grid; grid-template-columns: 18px minmax(0,1fr); align-items: center; gap: 9px; min-width: 0; cursor: pointer; }
.coupon-select-cell > span { min-width: 0; }
.coupon-master-row strong, .coupon-master-row small { display: block; }
.coupon-master-row strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.coupon-master-row small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.coupon-master-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 12px; color: var(--muted); font-size: 9px; }
.coupon-report-table { min-width: 1120px; }
.coupon-report-table th:nth-child(1) { min-width: 170px; }
.coupon-report-table th:nth-child(2) { min-width: 220px; }
.coupon-report-table .coupon-faculty-select { min-width: 190px; }
.catalog-mapping-callout { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 15px; background: linear-gradient(135deg,#f5fbf8,#eef8f4); border-color: #cce6dd; box-shadow: none; }
.catalog-mapping-callout > div { display: flex; align-items: center; gap: 13px; min-width: 0; }
.catalog-mapping-callout h3 { margin: 0; }
.catalog-mapping-callout p { margin: 5px 0 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.catalog-callout-icon { display: grid; place-items: center; flex: 0 0 auto; width: 42px; height: 42px; border-radius: 11px; background: var(--mint-soft); color: var(--mint-deep); font-size: 20px; font-weight: 900; }
.product-heading-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; flex-wrap: wrap; }
.catalog-product-notice { margin-bottom: 14px; }
.bulk-assignment-bar { position: sticky; top: 92px; z-index: 8; display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 14px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.97); box-shadow: 0 8px 25px rgba(19,54,46,.08); backdrop-filter: blur(10px); }
.bulk-assignment-bar.has-selection { border-color: #8ad4c0; box-shadow: 0 8px 28px rgba(49,158,128,.14); }
.bulk-selection-summary, .bulk-assignment-actions, .bulk-assignment-control { display: flex; align-items: center; }
.bulk-selection-summary { gap: 12px; flex-wrap: wrap; }
.bulk-selection-summary label { display: inline-flex; align-items: center; gap: 7px; color: var(--ink); font-size: 10px; font-weight: 750; cursor: pointer; white-space: nowrap; }
.bulk-selection-summary strong { padding: 6px 9px; border-radius: 18px; background: var(--mint-soft); color: var(--mint-deep); font-size: 10px; white-space: nowrap; }
.bulk-selection-summary input, .product-select-cell > input { width: 16px; height: 16px; accent-color: var(--mint-deep); cursor: pointer; }
.bulk-assignment-actions { justify-content: flex-end; gap: 9px; flex-wrap: wrap; }
.bulk-assignment-control { display: flex; align-items: center; gap: 6px; padding: 5px; border: 1px solid var(--line); border-radius: 10px; background: #f7faf8; }
.bulk-assignment-control select { min-width: 155px; border: 0; background: transparent; padding: 6px 26px 6px 7px; color: var(--ink); outline: none; font-size: 10px; }
.bulk-assignment-control button { padding: 8px 10px; white-space: nowrap; }
.product-mapping-table { min-width: 1260px; }
.product-mapping-table th:nth-child(1) { min-width: 330px; }
.product-mapping-table th:nth-child(2) { min-width: 190px; }
.product-mapping-table th:nth-child(3) { min-width: 230px; }
.product-map-name { white-space: normal; line-height: 1.4; }
.product-select-cell { display: grid; grid-template-columns: 18px minmax(0,1fr); align-items: start; gap: 10px; cursor: pointer; }
.product-select-cell > span, .product-select-cell .cell-title, .product-select-cell .cell-sub { display: block; }
.product-mapping-table tr.bulk-selected td { background: #f2fbf7; }
.product-mapping-table tr.bulk-selected td:first-child { box-shadow: inset 4px 0 0 var(--mint); }
.product-map-select { width: 100%; min-width: 170px; border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 9px 30px 9px 10px; color: var(--ink); outline: none; font-size: 10px; }
.product-map-select:focus { border-color: var(--mint); box-shadow: 0 0 0 3px var(--mint-soft); }
.product-map-select:disabled { opacity: .6; cursor: wait; }
.product-map-select.is-assigned { border-color: #6bc9b0; background: #e9f8f3; color: #176b56; box-shadow: inset 3px 0 0 #39ad8f; font-weight: 800; }
.product-map-select.is-assigned:focus { border-color: #299978; box-shadow: inset 3px 0 0 #299978,0 0 0 3px var(--mint-soft); }
.product-map-select.is-saving { border-color: #e5b75f; background: #fff8e8; color: #8d6114; box-shadow: inset 3px 0 0 #d99b2c; }
.product-mapping-table tr.mapping-complete .cell-sub { color: #23866d; font-weight: 800; }
.product-mapping-table tr.mapping-partial .cell-sub { color: #a87219; font-weight: 800; }
.product-batch-cell { display: grid; gap: 5px; }
.product-batch-cell small { color: var(--mint-deep); font-size: 9px; font-weight: 700; }
.pivot-field.master-field { border-color: #d7c99b; background: #fffaf0; }
.pivot-field.master-field:hover, .pivot-field.master-field.used { border-color: #c7aa52; background: #fff6dc; }
.pivot-field.master-field small { color: #8a6a12; font-weight: 900; }
.pivot-row-label > span { display: block; overflow: hidden; text-overflow: ellipsis; }
.coupon-faculty-note { display: block; overflow: hidden; margin-top: 3px; color: var(--mint-deep); font-size: 8px; font-weight: 800; text-overflow: ellipsis; }

@media (max-width: 1100px) {
  .catalog-master-grid, .coupon-master-list { grid-template-columns: 1fr; }
  .coupon-bulk-toolbar { grid-template-columns: 1fr 1fr; align-items: stretch; }
  .coupon-filter-controls { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
  .catalog-section-heading, .catalog-mapping-callout { align-items: stretch; flex-direction: column; }
  .catalog-mapping-callout > button { width: 100%; }
  .catalog-inline-form, .catalog-inline-form.batch-form { grid-template-columns: 1fr; }
  .coupon-bulk-toolbar { grid-template-columns: 1fr; align-items: stretch; }
  .coupon-filter-controls { grid-column: auto; grid-template-columns: 1fr; }
  .coupon-bulk-selection { flex-wrap: wrap; }
  .coupon-bulk-apply { width: 100%; }
  .coupon-bulk-apply select { min-width: 0; flex: 1; }
  .coupon-master-row { grid-template-columns: 1fr; }
  .coupon-master-footer { align-items: flex-start; flex-direction: column; }
  .product-heading-actions { justify-content: flex-start; }
  .bulk-assignment-bar { top: 78px; align-items: stretch; flex-direction: column; }
  .bulk-assignment-actions, .bulk-assignment-control { width: 100%; }
  .bulk-assignment-control select { min-width: 0; flex: 1; }
}

/* Secure admin login */
body.login-page { background: #ecf2ee; overflow-x: hidden; }
.login-shell { width: min(1080px, calc(100% - 32px)); min-height: min(720px, calc(100vh - 48px)); margin: 24px auto; display: grid; grid-template-columns: minmax(340px,.9fr) minmax(420px,1.1fr); overflow: hidden; border: 1px solid rgba(20,64,54,.12); border-radius: 24px; background: #fff; box-shadow: 0 28px 90px rgba(15,49,41,.16); }
.login-brand-panel { position: relative; min-height: 650px; padding: 44px; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; background: var(--nav); color: #fff; }
.login-brand-panel::after { content: ""; position: absolute; right: -140px; bottom: -170px; width: 420px; height: 420px; border: 72px solid rgba(69,191,163,.10); border-radius: 50%; pointer-events: none; }
.login-brand { position: relative; z-index: 1; display: flex; align-items: center; gap: 12px; font-size: 18px; font-weight: 800; }
.login-brand small { margin-left: 5px; color: #8fb9ad; font-size: 10px; letter-spacing: 1.2px; }
.login-brand-copy { position: relative; z-index: 1; max-width: 420px; }
.login-brand-copy .eyebrow { color: #73d8c0; }
.login-brand-copy h1 { margin: 13px 0 18px; font-size: clamp(34px,4vw,50px); line-height: 1.04; letter-spacing: -2.1px; }
.login-brand-copy > p:last-child { max-width: 390px; margin: 0; color: #a9bdb7; font-size: 14px; line-height: 1.7; }
.login-security-note { position: relative; z-index: 1; display: flex; align-items: center; gap: 12px; }
.login-security-note > span { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid rgba(107,221,191,.28); border-radius: 50%; background: rgba(107,221,191,.12); color: #70d6bd; font-weight: 900; }
.login-security-note strong,.login-security-note small { display: block; }
.login-security-note strong { font-size: 12px; }
.login-security-note small { margin-top: 4px; color: #819a93; font-size: 10px; }
.login-form-panel { padding: 55px; display: grid; place-items: center; }
.login-card { width: min(100%, 430px); }
.login-card h2 { margin: 7px 0 0; font-size: 31px; letter-spacing: -1.2px; }
.login-helper { margin: 9px 0 28px; color: var(--muted); font-size: 13px; line-height: 1.55; }
.login-field { display: grid; gap: 8px; margin-top: 17px; color: var(--ink); font-size: 12px; font-weight: 800; }
.login-field > input,.password-input { width: 100%; min-height: 47px; border: 1px solid #d9e3dd; border-radius: 10px; background: #fbfcfb; }
.login-field > input { padding: 0 14px; outline: none; }
.password-input { display: grid; grid-template-columns: 1fr auto; align-items: center; overflow: hidden; }
.password-input input { min-width: 0; height: 45px; padding: 0 14px; border: 0; outline: none; background: transparent; }
.password-input button { height: 33px; margin-right: 7px; padding: 0 9px; border: 0; border-radius: 7px; background: var(--mint-soft); color: var(--mint-deep); cursor: pointer; font-size: 10px; font-weight: 850; }
.login-field > input:focus,.password-input:focus-within { border-color: var(--mint); box-shadow: 0 0 0 4px var(--mint-soft); }
.login-submit { width: 100%; min-height: 48px; margin-top: 24px; font-size: 13px; }
.login-alert { margin-bottom: 18px; padding: 11px 13px; border: 1px solid #efc9cc; border-radius: 9px; background: var(--red-soft); color: #a23e44; font-size: 11px; line-height: 1.5; }
.login-alert.success { border-color: #bde1d7; background: var(--mint-soft); color: #20745f; }
.login-alert.warning { border-color: #efd8a8; background: var(--gold-soft); color: #8d641d; }
.login-config-help { margin: -4px 0 18px; padding: 14px; border: 1px solid #d9e3dd; border-radius: 10px; background: #f7faf8; color: var(--ink); font-size: 11px; line-height: 1.5; }
.login-config-help > strong { display: block; margin-bottom: 5px; font-size: 12px; }
.login-config-help p { margin: 7px 0; color: var(--muted); }
.login-config-help dl { margin: 10px 0; display: grid; gap: 7px; }
.login-config-help dl div { padding: 8px 9px; border: 1px solid #e1e9e5; border-radius: 7px; background: #fff; }
.login-config-help dt { color: var(--mint-deep); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 10px; font-weight: 900; }
.login-config-help dd { margin: 2px 0 0; color: var(--muted); }
.login-config-help button { min-height: 35px; margin-top: 3px; padding: 0 12px; border: 1px solid #bde1d7; border-radius: 8px; background: var(--mint-soft); color: var(--mint-deep); cursor: pointer; font-size: 10px; font-weight: 850; }
.login-config-help button:disabled { cursor: wait; opacity: .65; }
.login-footnote { margin: 18px 0 0; color: #94a29e; font-size: 10px; line-height: 1.55; text-align: center; }
@media (max-width: 820px) {
  .login-shell { grid-template-columns: 1fr; }
  .login-brand-panel { min-height: auto; padding: 28px; gap: 44px; }
  .login-brand-copy h1 { font-size: 34px; }
  .login-form-panel { padding: 42px 28px; }
}
@media (max-width: 480px) {
  .login-shell { width: 100%; min-height: 100vh; margin: 0; border: 0; border-radius: 0; }
  .login-brand-panel { padding: 24px; }
  .login-brand-copy { display: none; }
  .login-form-panel { padding: 38px 22px; }
}
