/* Lavender 2027 · Unified Design Foundation v1.0
   Additive & opt-in: no existing portal selectors are overridden.
   Portal layouts will be migrated incrementally to lvds-* classes. */
:root {
  --lvds-primary: #7555d9;
  --lvds-primary-hover: #6444ca;
  --lvds-primary-soft: #f1edff;
  --lvds-primary-border: #e4dafa;
  --lvds-accent: #14998f;
  --lvds-accent-soft: #eaf9f5;
  --lvds-info: #3270ce;
  --lvds-info-soft: #eaf2ff;
  --lvds-warning: #b77917;
  --lvds-warning-soft: #fff7e5;
  --lvds-danger: #cc4867;
  --lvds-danger-soft: #fff0f3;
  --lvds-success: #20876b;
  --lvds-success-soft: #eaf8f2;
  --lvds-ink: #24213a;
  --lvds-muted: #736f88;
  --lvds-subtle: #9995ac;
  --lvds-line: #e9e6f0;
  --lvds-canvas: #f6f5fa;
  --lvds-surface: #fff;
  --lvds-sidebar: #fff;
  --lvds-sidebar-hover: #f4f0ff;
  --lvds-shadow-sm: 0 2px 10px rgba(53, 42, 97, .035);
  --lvds-shadow: 0 12px 36px rgba(54, 39, 112, .08);
  --lvds-radius-sm: 10px;
  --lvds-radius: 16px;
  --lvds-radius-lg: 22px;
  --lvds-focus: 0 0 0 3px rgba(117, 85, 217, .22);
  --lvds-font: 'Segoe UI', Tahoma, Arial, system-ui, sans-serif;
  --lvds-ease: 180ms ease;
}
[data-lvds-theme="dark"] {
  color-scheme: dark;
  --lvds-primary: #ae97ff;
  --lvds-primary-hover: #c2b2ff;
  --lvds-primary-soft: #32274e;
  --lvds-primary-border: #4a3a6a;
  --lvds-accent: #5bcebe;
  --lvds-accent-soft: #173d40;
  --lvds-info: #8fb9ff;
  --lvds-info-soft: #1b344f;
  --lvds-warning: #e8bb62;
  --lvds-warning-soft: #44351a;
  --lvds-danger: #ff89a0;
  --lvds-danger-soft: #482936;
  --lvds-success: #6edab1;
  --lvds-success-soft: #183e36;
  --lvds-ink: #f4f1fb;
  --lvds-muted: #b9b2ca;
  --lvds-subtle: #8c84a3;
  --lvds-line: #3a334c;
  --lvds-canvas: #171525;
  --lvds-surface: #211e31;
  --lvds-sidebar: #1e1a2e;
  --lvds-sidebar-hover: #302745;
  --lvds-shadow-sm: 0 2px 10px rgba(0,0,0,.12);
  --lvds-shadow: 0 16px 44px rgba(0,0,0,.24);
  --lvds-focus: 0 0 0 3px rgba(174, 151, 255, .28);
}
/* All non-token rules are opt-in and scoped to .lvds-app. */
.lvds-app,
.lvds-app * { box-sizing: border-box; }
.lvds-app {
  font-family: var(--lvds-font);
  color-scheme: light;
  background: var(--lvds-canvas);
  color: var(--lvds-ink);
  font-size: 14px;
  line-height: 1.65;
  min-height: 100vh;
  transition: color var(--lvds-ease), background var(--lvds-ease);
}
.lvds-app button,.lvds-app input,.lvds-app select { font: inherit; }
.lvds-app button { cursor: pointer; }
.lvds-app button:focus-visible,.lvds-app a:focus-visible,.lvds-app input:focus-visible,
.lvds-app select:focus-visible { outline: none; box-shadow: var(--lvds-focus); }
.lvds-app a { color: inherit; text-decoration: none; }
.lvds-shell { display: grid; grid-template-columns: 246px minmax(0,1fr); min-height: 100vh; }
.lvds-sidebar { position: sticky; top: 0; height: 100vh; padding: 26px 15px 18px; background: var(--lvds-sidebar); border-inline-end: 1px solid var(--lvds-line); display: flex; flex-direction: column; z-index: 10; }
.lvds-brand { display: flex; align-items: center; gap: 11px; padding: 4px 13px 28px; }
.lvds-brand-mark { width: 41px; height: 41px; flex: 0 0 41px; border-radius: 14px; background: linear-gradient(145deg,#b9a5ff,#7555d9 72%); display: grid; place-items: center; color: white; font-weight: 900; font-size: 24px; box-shadow: 0 6px 14px rgba(117,85,217,.22); }
.lvds-brand-label { font-size: 22px; font-weight: 800; letter-spacing: -.75px; line-height: 1.1; }
.lvds-brand-subtitle { color: var(--lvds-muted); font-size: 10px; letter-spacing: .4px; font-weight: 600; }
.lvds-nav-label { font-size: 11px; font-weight: 800; color: var(--lvds-subtle); padding: 17px 13px 8px; }
.lvds-nav { display: flex; flex-direction: column; gap: 3px; }
.lvds-nav-item { display: flex; align-items: center; gap: 12px; border-radius: 11px; min-height: 42px; padding: 9px 14px; color: var(--lvds-muted); font-weight: 650; background: transparent; border: 0; text-align: start; width: 100%; transition: background var(--lvds-ease), color var(--lvds-ease); }
.lvds-nav-item:hover { background: var(--lvds-sidebar-hover); color: var(--lvds-primary); }
.lvds-nav-item[aria-current="page"],.lvds-nav-item.is-active { color: var(--lvds-primary); background: var(--lvds-primary-soft); }
.lvds-nav-item svg { width: 18px; height: 18px; flex: 0 0 18px; }
.lvds-nav-count { margin-inline-start: auto; color: var(--lvds-primary); background: var(--lvds-primary-soft); border-radius: 7px; padding: 0 7px; font-size: 11px; }
.lvds-side-bottom { margin-top: auto; border-top: 1px solid var(--lvds-line); padding: 18px 8px 0; }
.lvds-user { display: flex; align-items: center; gap: 10px; }
.lvds-avatar { width: 36px; height: 36px; border-radius: 12px; display: grid; place-items: center; font-weight: 800; color: var(--lvds-primary); background: var(--lvds-primary-soft); }
.lvds-user-name { font-weight: 800; font-size: 12px; }
.lvds-user-role { color: var(--lvds-muted); font-size: 11px; }
.lvds-workspace { min-width: 0; }
.lvds-topbar { background: var(--lvds-surface); min-height: 77px; border-bottom: 1px solid var(--lvds-line); display: flex; align-items: center; justify-content: space-between; padding: 14px 34px; gap: 18px; }
.lvds-breadcrumb { color: var(--lvds-muted); font-size: 12px; }
.lvds-breadcrumb strong { color: var(--lvds-ink); }
.lvds-top-actions { display: flex; align-items: center; gap: 10px; }
.lvds-main { margin: 0 auto; padding: 30px 34px 60px; max-width: 1590px; }
.lvds-page-header { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 25px; }
.lvds-kicker { color: var(--lvds-primary); font-weight: 800; font-size: 11px; letter-spacing: .25px; margin: 0 0 3px; }
.lvds-title { margin: 0; font-size: clamp(21px, 2.1vw, 29px); letter-spacing: -.8px; line-height: 1.35; font-weight: 830; }
.lvds-desc { color: var(--lvds-muted); margin: 7px 0 0; font-size: 13px; }
.lvds-btn { border: 1px solid transparent; border-radius: var(--lvds-radius-sm); min-height: 39px; padding: 9px 15px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 740; transition: background var(--lvds-ease),transform var(--lvds-ease),border var(--lvds-ease); white-space: nowrap; }
.lvds-btn svg { width: 16px; height: 16px; }
.lvds-btn:active { transform: translateY(1px); }
.lvds-btn-primary { background: var(--lvds-primary); color: white; }
.lvds-btn-primary:hover { background: var(--lvds-primary-hover); }
[data-lvds-theme="dark"] .lvds-btn-primary { color:#1b1529; }
.lvds-btn-outline { border-color: var(--lvds-line); background: var(--lvds-surface); color: var(--lvds-ink); }
.lvds-btn-outline:hover { border-color: var(--lvds-primary-border); color: var(--lvds-primary); }
.lvds-btn-soft { background: var(--lvds-primary-soft); color: var(--lvds-primary); }
.lvds-btn-soft:hover { background: var(--lvds-primary-border); }
.lvds-btn-plain { color: var(--lvds-muted); background: transparent; padding: 8px 11px; }
.lvds-icon-btn { width: 39px; height: 39px; padding: 0; border-radius: 12px; display: grid; place-items: center; border: 1px solid var(--lvds-line); background: var(--lvds-surface); color: var(--lvds-muted); }
.lvds-icon-btn svg { width: 18px; height: 18px; }
.lvds-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.lvds-card { min-width:0; background:var(--lvds-surface); border:1px solid var(--lvds-line); border-radius:var(--lvds-radius); box-shadow:var(--lvds-shadow-sm); }
.lvds-stat { padding: 19px 20px 20px; }
.lvds-stat-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.lvds-stat-name { color:var(--lvds-muted); font-size:12px; font-weight:700; }
.lvds-stat-icon { display:grid; place-items:center; width:38px;height:38px;border-radius:12px;background:var(--lvds-primary-soft);color:var(--lvds-primary); }
.lvds-stat-icon svg { width:19px;height:19px; }
.lvds-stat-icon.green { background:var(--lvds-accent-soft);color:var(--lvds-accent); }
.lvds-stat-icon.amber { background:var(--lvds-warning-soft);color:var(--lvds-warning); }
.lvds-stat-icon.blue { background:var(--lvds-info-soft);color:var(--lvds-info); }
.lvds-stat-value { font-size: 27px; font-weight: 830; letter-spacing: -.7px; line-height: 1.35; margin-top:12px; font-variant-numeric: tabular-nums; }
.lvds-stat-foot { color: var(--lvds-muted); font-size:11px; margin-top:4px; }
.lvds-positive { color: var(--lvds-success); font-weight:800; }
.lvds-negative { color: var(--lvds-danger); font-weight:800; }
.lvds-section-row { display:flex; align-items:center; justify-content:space-between; gap:12px; margin: 28px 0 14px; }
.lvds-section-title {font-weight:800;font-size:17px; margin:0; }
.lvds-section-hint {color:var(--lvds-muted); font-size:12px; }
.lvds-columns { display:grid; grid-template-columns: minmax(0,1.5fr) minmax(280px,.8fr); gap:18px; }
.lvds-panel { padding: 20px; }
.lvds-panel-title { margin:0; font-weight:800; font-size:15px; }
.lvds-panel-subtitle { margin:2px 0 20px; color:var(--lvds-muted);font-size:12px; }
.lvds-toolbar {display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:16px;}
.lvds-search {display:flex;align-items:center;gap:8px; min-height:39px; padding:0 11px; border:1px solid var(--lvds-line);border-radius:10px;background:var(--lvds-surface);color:var(--lvds-muted);min-width:220px;}
.lvds-search svg {width:17px;height:17px;}
.lvds-search input {border:0;outline:none;background:transparent;color:var(--lvds-ink);width:100%;min-width:0;font-size:12px;}
.lvds-search input::placeholder{color:var(--lvds-subtle);}
.lvds-table-wrap{width:100%;overflow-x:auto;}
.lvds-table{width:100%;border-collapse:collapse;text-align:start;min-width:580px;}
.lvds-table th{background:var(--lvds-canvas);font-weight:750;font-size:11px;color:var(--lvds-muted);padding:12px 13px;text-align:start;white-space:nowrap;}
.lvds-table td{padding:14px 13px;border-bottom:1px solid var(--lvds-line);font-size:12px;vertical-align:middle;}
.lvds-table tr:last-child td {border-bottom:0;}
.lvds-table .lvds-strong {font-weight:780;color:var(--lvds-ink);}
.lvds-table .lvds-secondary {font-size:11px;color:var(--lvds-muted);}
.lvds-badge {display:inline-flex;align-items:center;gap:5px;min-height:24px; padding:3px 10px;border-radius:8px;background:var(--lvds-primary-soft);color:var(--lvds-primary);font-weight:750;font-size:11px;white-space:nowrap;}
.lvds-badge.success {background:var(--lvds-success-soft);color:var(--lvds-success);}
.lvds-badge.warning {background:var(--lvds-warning-soft);color:var(--lvds-warning);}
.lvds-badge.danger {background:var(--lvds-danger-soft);color:var(--lvds-danger);}
.lvds-badge.info {background:var(--lvds-info-soft);color:var(--lvds-info);}
.lvds-progress-track {height:9px;border-radius:100px;background:var(--lvds-canvas);overflow:hidden;margin:9px 0 17px;}
.lvds-progress-fill {height:100%;background:linear-gradient(90deg,var(--lvds-primary),#bea7ff);border-radius:inherit;}
.lvds-mini-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;font-size:12px;}
.lvds-mini-row strong{font-size:12px;}
.lvds-caption {color:var(--lvds-muted);font-size:11px;}
.lvds-divider {height:1px;background:var(--lvds-line);margin:19px 0;}
.lvds-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.lvds-swatch{display:flex;align-items:center;gap:8px;color:var(--lvds-muted);font-size:11px;}
.lvds-swatch span {width:21px;height:21px;border-radius:7px;display:inline-block;flex:0 0 auto;}
.lvds-portal-switch {display:flex; align-items:center; gap:5px;flex-wrap:wrap;background:var(--lvds-surface);border:1px solid var(--lvds-line);border-radius:13px;padding:5px;}
.lvds-switch-btn {border:0;border-radius:9px;padding:8px 12px;color:var(--lvds-muted);background:transparent;font-size:12px;font-weight:800;min-width:75px;}
.lvds-switch-btn[aria-pressed="true"] {background:var(--lvds-primary-soft);color:var(--lvds-primary);}
.lvds-preview-banner { display:flex; align-items:center; justify-content:center; gap:6px; font-size:11px; font-weight:700; padding:9px 14px; text-align:center; background:#302149; color:#fff; }
.lvds-preview-banner strong {color:#e8dcff;}
.lvds-menu-toggle {display:none;}
.lvds-mobile-overlay{display:none;}
.lvds-bottom-note{color:var(--lvds-muted);text-align:center;font-size:11px;padding:25px 0 0;}
@media(max-width:1170px){
 .lvds-stats{grid-template-columns:repeat(2,minmax(0,1fr));}
 .lvds-columns{grid-template-columns:1fr;}
}
@media(max-width:850px){
 .lvds-shell{grid-template-columns:1fr;}
 .lvds-sidebar{position:fixed;inset:0 0 0 auto;width:min(285px,85vw);height:100vh;transform:translateX(110%);transition:transform var(--lvds-ease);box-shadow:var(--lvds-shadow);}
 [dir="ltr"] .lvds-sidebar{inset:0 auto 0 0;transform:translateX(-110%);}
 .lvds-app.lvds-sidebar-open .lvds-sidebar{transform:translateX(0);}
 .lvds-app.lvds-sidebar-open .lvds-mobile-overlay{display:block;position:fixed;inset:0;background:rgba(20,14,40,.45);z-index:9;border:0;}
 .lvds-menu-toggle{display:grid;}
 .lvds-topbar{padding:12px 19px;min-height:68px;}
 .lvds-main{padding:23px 18px 35px;}
}
@media(max-width:520px){
 .lvds-page-header {align-items:flex-start;flex-direction:column;}
 .lvds-page-header>.lvds-btn{width:100%;}
 .lvds-stats{gap:10px;}
 .lvds-stat{padding:14px;}
 .lvds-stat-value{font-size:22px;}
 .lvds-columns{gap:12px;}
 .lvds-panel{padding:14px;}
 .lvds-top-actions{gap:5px;}
 .lvds-portal-switch{gap:2px;}
 .lvds-switch-btn{min-width:60px;padding:7px 8px;font-size:11px;}
 .lvds-title{font-size:22px;}
}
@media(prefers-reduced-motion:reduce){.lvds-app *, .lvds-app *::before, .lvds-app *::after{transition:none!important;animation:none!important;}}
