/* Napi Vitamin Core Design System v1.1 — core.ui/v1 / core.design-tokens/v1 */
:root{
  --nv-space-1:4px;--nv-space-2:8px;--nv-space-3:12px;--nv-space-4:16px;--nv-space-5:20px;--nv-space-6:24px;--nv-space-8:32px;
  --nv-radius-sm:9px;--nv-radius-md:12px;--nv-radius-lg:16px;--nv-radius-xl:20px;
  --nv-border:#e1e8e3;--nv-surface:#fff;--nv-surface-soft:#f7faf8;--nv-surface-muted:#eef3ef;
  --nv-text:#1f2822;--nv-text-muted:#68736c;--nv-green:#2ABD40;--nv-green-dark:#209a32;--nv-green-soft:#effaf1;
  --nv-red:#c62828;--nv-red-soft:#fff0f0;--nv-amber:#9a6816;--nv-amber-soft:#fff7df;--nv-blue:#245a9b;--nv-blue-soft:#edf4ff;
  --nv-focus:0 0 0 3px rgba(42,189,64,.18);--nv-shadow-sm:0 3px 14px rgba(25,45,30,.05);--nv-shadow-md:0 12px 34px rgba(19,42,25,.10);
  --nv-topbar-height:72px;--nv-sidebar-width:270px;--nv-control-sm:34px;--nv-control-md:42px;--nv-control-lg:48px;
  --nv-motion-fast:120ms;--nv-motion-normal:160ms;--nv-motion-slow:220ms;
  --nv-font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  /* Legacy Core aliasok: a régi Core shell is ugyanazokat a globális tokeneket örökli. */
  --nv:var(--nv-green);--nv-dark:var(--nv-green-dark);--bg:#f6f8f7;--card:var(--nv-surface);--text:var(--nv-text);--muted:var(--nv-text-muted);--line:var(--nv-border);--danger:var(--nv-red);--sidebar:var(--nv-sidebar-width);--shadow:var(--nv-shadow-md);
}

/* Common page shell */
.nv-page{display:grid;gap:var(--nv-space-5)}
.nv-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--nv-space-5);flex-wrap:wrap}
.nv-page-title{margin:0;font-size:clamp(24px,2.2vw,34px);line-height:1.15;font-weight:850;letter-spacing:-.02em}
.nv-page-subtitle{margin:7px 0 0;color:var(--nv-text-muted);line-height:1.55;max-width:900px}
.nv-page-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.nv-section{display:grid;gap:14px}
.nv-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.nv-section-title{margin:0;font-size:18px;font-weight:800}
.nv-section-description{margin:5px 0 0;color:var(--nv-text-muted);line-height:1.5}
.nv-card,.card{background:var(--nv-surface);border:1px solid var(--nv-border);border-radius:var(--nv-radius-lg);box-shadow:var(--nv-shadow-sm)}
.nv-card{padding:20px}
.nv-card--flat{box-shadow:none}
.nv-card--soft{background:var(--nv-surface-soft)}
.nv-card--danger{border-color:#f2caca;background:#fffafa}
.nv-divider{height:1px;background:var(--nv-border);border:0;margin:4px 0}

/* Unified button hierarchy */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border:1px solid transparent;border-radius:var(--nv-radius-md);padding:10px 15px;font:inherit;font-weight:750;line-height:1.15;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .08s ease;text-decoration:none;white-space:nowrap}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn:focus-visible{outline:none;box-shadow:var(--nv-focus)}
.btn-primary{background:var(--nv-green);border-color:var(--nv-green);color:#fff}.btn-primary:hover{background:var(--nv-green-dark);border-color:var(--nv-green-dark)}
.btn-secondary{background:var(--nv-surface-muted);border-color:var(--nv-surface-muted);color:var(--nv-text)}.btn-secondary:hover{background:#e5ece7;border-color:#e5ece7}
.btn-outline{background:#fff;border-color:#cfd9d2;color:var(--nv-text)}.btn-outline:hover{border-color:#aebdb2;background:#f9fbfa}
.btn-ghost{background:transparent;border-color:transparent;color:var(--nv-text)}.btn-ghost:hover{background:var(--nv-surface-muted)}
.btn-danger{background:var(--nv-red-soft);border-color:#f0cccc;color:var(--nv-red)}.btn-danger:hover{background:#ffe5e5;border-color:#e7b6b6}
.btn-small,.btn-sm{min-height:34px;padding:7px 10px;border-radius:10px;font-size:13px}
.btn-lg{min-height:48px;padding:13px 18px}
.btn-icon{width:42px;padding:0;flex:0 0 42px}
.btn[disabled],.btn.is-disabled,.btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed;pointer-events:none;transform:none}
.btn.is-loading{position:relative;pointer-events:none;opacity:.75}
.btn.is-loading::after{content:"";width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:nv-spin .7s linear infinite}
@keyframes nv-spin{to{transform:rotate(360deg)}}

/* Forms and toolbars */
.nv-form-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}
.nv-field{grid-column:span 12;display:grid;gap:7px}.nv-field--6{grid-column:span 6}.nv-field--4{grid-column:span 4}.nv-field--3{grid-column:span 3}
.nv-field label{font-weight:700;font-size:13px}.nv-field-help{color:var(--nv-text-muted);font-size:12px;line-height:1.45}
.nv-field input,.nv-field select,.nv-field textarea,.nv-control{width:100%;min-height:42px;padding:10px 12px;border:1px solid #ccd5ce;border-radius:var(--nv-radius-md);background:#fff;color:var(--nv-text);font:inherit;outline:none}
.nv-field textarea{min-height:100px;resize:vertical}
.nv-field input:focus,.nv-field select:focus,.nv-field textarea:focus,.nv-control:focus{border-color:var(--nv-green);box-shadow:var(--nv-focus)}
.nv-form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:4px}
.nv-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--nv-border);border-radius:var(--nv-radius-lg);background:var(--nv-surface-soft)}
.nv-toolbar__group{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

/* Badges / states */
.nv-badge{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800;line-height:1}
.nv-badge--success{background:var(--nv-green-soft);color:#187b2b}.nv-badge--info{background:var(--nv-blue-soft);color:var(--nv-blue)}.nv-badge--warning{background:var(--nv-amber-soft);color:var(--nv-amber)}.nv-badge--danger{background:var(--nv-red-soft);color:#a91d1d}.nv-badge--neutral{background:var(--nv-surface-muted);color:#56625b}
.nv-badge-dot{width:7px;height:7px;border-radius:999px;background:currentColor}

/* Active filters */
.nv-active-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0}
.nv-active-filters__label{font-size:12px;font-weight:800;color:var(--nv-text-muted);text-transform:uppercase;letter-spacing:.04em}
.nv-filter-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 9px;border-radius:999px;background:var(--nv-green-soft);color:#176d28;font-size:12px;border:1px solid #d8efdd}
.nv-filter-chip:hover{background:#e6f7e9}
.nv-filter-clear{font-size:12px;font-weight:750;color:var(--nv-text-muted);text-decoration:underline;text-underline-offset:2px}

/* Core DataTable / ListTable v1 */
.nv-list-table{border:1px solid var(--nv-border);border-radius:var(--nv-radius-lg);background:var(--nv-surface);overflow:hidden;box-shadow:var(--nv-shadow-sm)}
.nv-list-table__header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:16px 18px;border-bottom:1px solid var(--nv-border)}
.nv-list-table__title{margin:0;font-size:17px;font-weight:820}.nv-list-table__description{margin:4px 0 0;color:var(--nv-text-muted);font-size:13px;line-height:1.45}
.nv-list-table__filters{padding:14px 18px;background:var(--nv-surface-soft);border-bottom:1px solid var(--nv-border)}
.nv-list-table__scroll{position:relative;overflow:auto;max-height:min(72vh,760px);overscroll-behavior:contain;background:#fff}
.nv-list-table__scroll--unbounded{max-height:none}
.nv-data-table{width:100%;border-collapse:separate;border-spacing:0;min-width:100%;font-size:14px}.nv-data-table--wide,.nv-data-table[data-nv-wide]{min-width:var(--nv-table-min-width,720px)}.nv-data-table--compact th,.nv-data-table--compact td{padding:9px 10px}
.nv-data-table th,.nv-data-table td{padding:12px 14px;border-bottom:1px solid var(--nv-border);text-align:left;vertical-align:middle;white-space:nowrap;background:#fff}
.nv-data-table tbody tr:last-child td{border-bottom:0}.nv-data-table tbody tr:hover td{background:#fbfdfb}
.nv-data-table thead th{position:sticky;top:0;z-index:4;background:#f7faf8;color:var(--nv-text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.045em;font-weight:820;box-shadow:0 1px 0 var(--nv-border)}
.nv-data-table .nv-cell-wrap{white-space:normal;min-width:220px;line-height:1.45}
.nv-data-table .nv-cell-actions{text-align:right}
.nv-data-table .nv-cell-number{text-align:right;font-variant-numeric:tabular-nums}
.nv-table-sort{display:inline-flex;align-items:center;gap:6px;color:inherit;font:inherit;font-weight:inherit}.nv-table-sort:hover,.nv-table-sort.is-active{color:#187b2b}
.nv-table-sort[data-nv-sort-state="ascending"],.nv-table-sort[data-nv-sort-state="descending"]{color:#187b2b}
.nv-data-table th.nv-sticky-column,.nv-data-table td.nv-sticky-column{position:sticky;left:var(--nv-sticky-left,0px);z-index:3;background:#fff;box-shadow:1px 0 0 var(--nv-border)}
.nv-data-table thead th.nv-sticky-column{z-index:6;background:#f7faf8}
.nv-data-table tbody tr:hover td.nv-sticky-column{background:#fbfdfb}
.nv-table-empty{display:grid;place-items:center;gap:7px;min-height:160px;padding:28px;text-align:center;color:var(--nv-text-muted)}
.nv-table-empty strong{color:var(--nv-text);font-size:15px}
.nv-table-empty__icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:var(--nv-surface-muted);font-size:19px}
/* Compact / summary table: kisebb összesítők, bontások, KPI-listák. Nem teljes DataTable. */
.nv-compact-table-wrap{width:100%;min-width:0;overflow-x:auto;border:1px solid var(--nv-border);border-radius:var(--nv-radius-md);background:#fff}
.nv-compact-table{width:100%;border-collapse:collapse;table-layout:auto;font-size:13px}
.nv-compact-table th,.nv-compact-table td{padding:10px 12px;border-bottom:1px solid var(--nv-border);text-align:left;vertical-align:top;white-space:normal;overflow-wrap:anywhere}
.nv-compact-table th{background:var(--nv-surface-soft);color:var(--nv-text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em;font-weight:820}
.nv-compact-table tbody tr:last-child td{border-bottom:0}.nv-compact-table tbody tr:hover td{background:#fbfdfb}
.nv-compact-table .nv-cell-number{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.nv-compact-table .nv-cell-actions{text-align:right;white-space:nowrap}

.nv-table-footer{display:grid;grid-template-columns:minmax(120px,1fr) auto minmax(0,2fr);align-items:center;gap:14px;padding:13px 16px;border-top:1px solid var(--nv-border);background:#fff}
.nv-table-range{font-size:13px;color:var(--nv-text-muted);font-variant-numeric:tabular-nums}
.nv-table-page-size{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--nv-text-muted);white-space:nowrap}.nv-table-page-size select{min-height:34px;padding:6px 28px 6px 9px;border:1px solid #ccd5ce;border-radius:9px;background:#fff;color:var(--nv-text);font:inherit;font-weight:700}
.nv-pagination{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}
.nv-pagination__page,.nv-pagination__prev,.nv-pagination__next,.nv-pagination__ellipsis{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 9px;border-radius:9px;border:1px solid transparent;font-size:12px;font-weight:750}
.nv-pagination a{border-color:#dde5df;background:#fff}.nv-pagination a:hover{border-color:#b8c7bc;background:#f7faf8}
.nv-pagination__page.is-active{background:var(--nv-green);border-color:var(--nv-green);color:#fff}
.nv-pagination .is-disabled{opacity:.38}.nv-pagination__ellipsis{min-width:24px;padding:0;color:var(--nv-text-muted)}

/* Core Sortable / Draggable Card List v1 */
.nv-sortable-list{display:grid;gap:10px;position:relative}
.nv-sortable-item{display:flex;align-items:center;gap:12px;min-height:62px;padding:12px 14px;border:1px solid var(--nv-border);border-radius:var(--nv-radius-md);background:#fff;box-shadow:0 2px 8px rgba(25,45,30,.035);transition:border-color .15s ease,box-shadow .15s ease,opacity .15s ease,background .15s ease}
.nv-sortable-item:hover{border-color:#cbd7ce}
.nv-sortable-item__content{min-width:0;flex:1}.nv-sortable-item__title{display:block;font-weight:800}.nv-sortable-item__meta{display:block;margin-top:3px;color:var(--nv-text-muted);font-size:12px;line-height:1.4}
.nv-drag-handle{display:inline-grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border:1px solid #dce4de;border-radius:10px;background:#f8faf9;color:#68736c;cursor:grab;touch-action:none;user-select:none;font:inherit;font-size:18px;line-height:1}
.nv-drag-handle::before{content:"⋮⋮";letter-spacing:-3px;transform:rotate(90deg)}
.nv-drag-handle:hover{background:#eef4ef;color:#31543a;border-color:#c7d5ca}.nv-drag-handle:active,.nv-drag-handle[aria-pressed="true"]{cursor:grabbing;background:#e8f7eb;color:#187b2b;border-color:#b6dfbd}
.nv-drag-handle:focus-visible{outline:none;box-shadow:var(--nv-focus)}
.nv-sortable-item.is-disabled,.nv-sortable-item[data-nv-sort-disabled]{background:#f6f8f7;color:#758078}.nv-sortable-item.is-disabled .nv-drag-handle,.nv-sortable-item[data-nv-sort-disabled] .nv-drag-handle{opacity:.42;cursor:not-allowed}
.nv-sortable-item.is-anchor,.nv-sortable-item[data-nv-sort-anchor]{background:#f7faf8;border-style:dashed}.nv-sortable-item.is-anchor::after,.nv-sortable-item[data-nv-sort-anchor]::after{content:"Rögzített";font-size:11px;font-weight:800;color:#66736b;background:#eaf0ec;border-radius:999px;padding:5px 8px}
.nv-sortable-item.is-drag-origin{display:none}
.nv-sortable-placeholder{border:2px dashed #9fd6a9;border-radius:var(--nv-radius-md);background:#effaf1;box-shadow:inset 0 0 0 3px rgba(42,189,64,.05)}
.nv-sortable-floating{position:fixed!important;z-index:9999!important;margin:0!important;pointer-events:none!important;box-shadow:0 18px 45px rgba(20,45,28,.20)!important;border-color:#9fd6a9!important;background:#fff!important;transform:rotate(.15deg);opacity:.98}
.nv-sortable-list.is-sorting{user-select:none}.nv-sortable-list.is-sorting .nv-sortable-item:not(.is-drag-origin){transition:transform .12s ease}
.nv-sortable-live{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Design System reference helpers */
.nv-design-token-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.nv-design-token{border:1px solid var(--nv-border);border-radius:12px;padding:12px;background:#fff}.nv-design-token small{display:block;color:var(--nv-text-muted);margin-bottom:5px}
.nv-design-demo-row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}

@media(max-width:900px){
  :root{--nv-topbar-height:64px}
  .nv-form-grid{grid-template-columns:1fr}.nv-field--6,.nv-field--4,.nv-field--3{grid-column:1}
  .nv-list-table__scroll{max-height:68vh}
  .nv-table-footer{grid-template-columns:1fr auto}.nv-pagination{grid-column:1/-1;justify-content:flex-start}.nv-table-range{align-self:center}
  .nv-design-token-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .nv-page-header,.nv-section-header{display:grid;grid-template-columns:1fr}.nv-page-actions,.nv-page-actions .btn{width:100%}
  .nv-toolbar{align-items:stretch}.nv-toolbar__group{width:100%}.nv-toolbar__group>*{max-width:100%}
  .nv-list-table__header,.nv-list-table__filters{padding:12px}.nv-list-table__scroll{max-height:64vh}
  .nv-table-footer{display:flex;align-items:flex-start;flex-direction:column}.nv-pagination{justify-content:flex-start;width:100%}.nv-pagination__prev,.nv-pagination__next{flex:1}
  .nv-design-token-grid{grid-template-columns:1fr}
  .nv-sortable-item{padding:10px}.nv-drag-handle{width:42px;height:42px;flex-basis:42px}
}

@media(prefers-reduced-motion:reduce){.btn,.nv-sortable-item{transition:none}.nv-sortable-floating{transform:none}.btn.is-loading::after{animation-duration:1.4s}}


/* --------------------------------------------------------------------------
   Core UI Platform v1.1 — navigation, page layout, states and microinteractions
   -------------------------------------------------------------------------- */
html,body{font-family:var(--nv-font)}
.nv-icon{display:inline-block;vertical-align:-.14em;flex:0 0 auto;fill:currentColor}
.nv-nav{gap:4px}.nv-nav-divider{height:1px;background:var(--nv-border);margin:8px 4px}
.nv-nav-item{min-height:44px;padding:10px 11px!important;border-radius:var(--nv-radius-md)!important;color:var(--nv-text-muted);font-weight:720;transition:background var(--nv-motion-normal) ease,color var(--nv-motion-normal) ease,transform var(--nv-motion-fast) ease}
.nv-nav-item__main{display:flex;align-items:center;gap:10px;min-width:0}.nv-nav-item__main>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nv-nav-item:hover{background:var(--nv-green-soft)!important;color:#187b2b!important;transform:translateX(1px)}
.nv-nav-item.active{background:var(--nv-green-soft)!important;color:#187b2b!important;box-shadow:inset 3px 0 0 var(--nv-green)}
.nv-nav-item:focus-visible,.nv-nav-subitem:focus-visible,.settings-nav a:focus-visible{outline:none;box-shadow:var(--nv-focus)}
.nv-nav-module-group{display:grid;gap:3px}.nv-nav-submenu{display:grid;gap:2px;margin:0 0 5px 21px;padding:4px 0 4px 10px;border-left:1px solid #dfe8e1}
.nv-nav-subitem{display:flex!important;justify-content:flex-start!important;align-items:center!important;gap:8px!important;min-height:36px!important;padding:7px 9px!important;border-radius:10px!important;color:var(--nv-text-muted);font-size:13px;font-weight:680;transition:background var(--nv-motion-normal) ease,color var(--nv-motion-normal) ease}
.nv-nav-subitem:hover,.nv-nav-subitem.active{background:#f3f8f4!important;color:#187b2b!important}.nv-nav-subitem.active{font-weight:800}
.nv-nav-empty{padding:10px 11px;font-size:13px}.nv-userbox-action{margin-top:9px}.nv-userbox-action a{font-weight:700;color:#31543a}.nv-userbox-action a:hover{color:#187b2b}
.nv-topbar-title,.nv-topbar-actions{display:flex;align-items:center;gap:12px}.nv-icon-link{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:11px;border:1px solid transparent}.nv-icon-link:hover{background:var(--nv-surface-muted);border-color:var(--nv-border)}
.nv-settings-nav a{display:flex;align-items:center;gap:9px}.nv-settings-nav a.active{box-shadow:inset 3px 0 0 var(--nv-green)}

/* Breadcrumb / tabs */
.nv-breadcrumbs{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 8px;color:var(--nv-text-muted);font-size:12px;font-weight:650}.nv-breadcrumbs a:hover{color:#187b2b}.nv-breadcrumbs__sep{opacity:.55}
.nv-tabs{display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:4px;border-radius:var(--nv-radius-md);background:var(--nv-surface-muted);width:max-content;max-width:100%}
.nv-tab{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:8px 11px;border-radius:9px;color:var(--nv-text-muted);font-size:13px;font-weight:760;transition:background var(--nv-motion-normal) ease,color var(--nv-motion-normal) ease,box-shadow var(--nv-motion-normal) ease}.nv-tab:hover{color:#187b2b}.nv-tab.is-active{background:#fff;color:#187b2b;box-shadow:0 1px 5px rgba(20,40,25,.07)}.nv-tab.is-disabled{opacity:.45;pointer-events:none}

/* Component states */
.nv-empty-state{min-height:180px;display:grid;place-items:center;align-content:center;gap:9px;text-align:center;padding:26px;color:var(--nv-text-muted);border:1px dashed #d7e1da;border-radius:var(--nv-radius-lg);background:var(--nv-surface-soft)}
.nv-empty-state>.nv-icon{width:44px;height:44px;padding:10px;border-radius:14px;background:var(--nv-surface-muted);color:#4b5d51}.nv-empty-state strong{font-size:15px;color:var(--nv-text)}.nv-empty-state p{margin:0;max-width:520px;line-height:1.5}.nv-empty-state__actions{margin-top:4px}
.nv-skeleton{display:grid;gap:10px;padding:8px 0}.nv-skeleton__line{display:block;width:var(--nv-skeleton-width,90%);height:14px;border-radius:999px;background:linear-gradient(90deg,#edf2ee 20%,#f8faf9 45%,#edf2ee 70%);background-size:220% 100%;animation:nv-skeleton 1.25s ease-in-out infinite}.nv-skeleton__line:first-child{height:20px;max-width:55%}@keyframes nv-skeleton{0%{background-position:100% 0}100%{background-position:-100% 0}}
.nv-component-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.nv-component-grid .nv-card h3{margin-top:0}.nv-nav-preview{max-width:330px;border:1px solid var(--nv-border);border-radius:var(--nv-radius-lg);padding:8px;background:#fff}

/* Dropdown */
.nv-dropdown{position:relative;display:inline-block}.nv-dropdown__menu{position:absolute;top:calc(100% + 6px);right:0;z-index:70;display:none;min-width:190px;padding:6px;background:#fff;border:1px solid var(--nv-border);border-radius:var(--nv-radius-md);box-shadow:var(--nv-shadow-md)}.nv-dropdown.is-open .nv-dropdown__menu{display:grid}.nv-dropdown__menu a,.nv-dropdown__menu button{display:flex;width:100%;align-items:center;min-height:38px;padding:8px 10px;border:0;border-radius:9px;background:transparent;color:var(--nv-text);font:inherit;font-size:13px;font-weight:680;text-align:left;cursor:pointer}.nv-dropdown__menu a:hover,.nv-dropdown__menu button:hover{background:var(--nv-surface-muted)}

/* Tooltip */
[data-nv-tooltip]{position:relative}.nv-tooltip{position:fixed;z-index:1000;max-width:280px;padding:7px 9px;border-radius:8px;background:#17201a;color:#fff;font-size:12px;line-height:1.35;box-shadow:var(--nv-shadow-md);pointer-events:none;opacity:0;transform:translateY(3px);transition:opacity var(--nv-motion-fast) ease,transform var(--nv-motion-fast) ease}.nv-tooltip.is-visible{opacity:1;transform:translateY(0)}

/* Modal */
.nv-modal{position:fixed;inset:0;z-index:500;display:none;place-items:center;padding:20px}.nv-modal.is-open{display:grid}.nv-modal__backdrop{position:absolute;inset:0;background:rgba(14,24,17,.48);backdrop-filter:blur(2px)}.nv-modal__dialog{position:relative;width:min(100%,620px);max-height:min(86vh,800px);overflow:auto;background:#fff;border:1px solid var(--nv-border);border-radius:var(--nv-radius-xl);box-shadow:0 24px 70px rgba(13,31,19,.24)}.nv-modal__header,.nv-modal__footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px}.nv-modal__header{border-bottom:1px solid var(--nv-border)}.nv-modal__header h3{margin:0}.nv-modal__header p{margin:4px 0 0}.nv-modal__body{padding:18px;line-height:1.55}.nv-modal__footer{justify-content:flex-end;border-top:1px solid var(--nv-border);background:var(--nv-surface-soft)}body.nv-modal-open{overflow:hidden}

/* Toast system */
.nv-toast-stack{position:fixed;right:18px;bottom:18px;z-index:900;display:grid;gap:8px;width:min(380px,calc(100vw - 36px))}.nv-toast{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid #2c3d31;border-radius:var(--nv-radius-md);background:#17201a;color:#fff;box-shadow:var(--nv-shadow-md);animation:nv-toast-in var(--nv-motion-normal) ease}.nv-toast--success{background:#145c26;border-color:#1d7a34}.nv-toast--warning{background:#6d4a0e;border-color:#8b6117}.nv-toast--danger{background:#8e1e1e;border-color:#ad2a2a}@keyframes nv-toast-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}

/* Unified alert states */
.nv-alert{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--nv-border);border-radius:var(--nv-radius-md);background:#fff;font-size:13px;line-height:1.45}.nv-alert--success{background:var(--nv-green-soft);border-color:#d3edd8;color:#176527}.nv-alert--warning{background:var(--nv-amber-soft);border-color:#f0dfaa;color:#74500e}.nv-alert--danger{background:var(--nv-red-soft);border-color:#f0cccc;color:#9b1c1c}.nv-alert--info{background:var(--nv-blue-soft);border-color:#d4e2f4;color:#214f85}

/* Inputs / choice controls */
.nv-choice{display:flex;align-items:flex-start;gap:9px;min-height:42px;padding:9px 10px;border:1px solid var(--nv-border);border-radius:var(--nv-radius-md);background:#fff}.nv-choice:hover{border-color:#c9d5cc}.nv-choice input{margin-top:3px;accent-color:var(--nv-green)}

/* Navigation hierarchy / permission chips used by component lab and modules */
.nv-permission-note{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:var(--nv-radius-md);background:var(--nv-surface-soft);color:var(--nv-text-muted);font-size:12px}

@media(max-width:900px){
  .nv-component-grid{grid-template-columns:1fr}.nv-nav-submenu{margin-left:16px}.nv-tabs{width:100%;overflow:auto;flex-wrap:nowrap}.nv-tab{flex:0 0 auto}
}
@media(max-width:560px){
  .nv-topbar-actions{gap:6px}.nv-topbar-actions .pill{display:none}.nv-modal{padding:10px}.nv-modal__dialog{border-radius:16px}.nv-modal__footer{flex-direction:column-reverse}.nv-modal__footer .btn{width:100%}.nv-toast-stack{right:10px;bottom:10px;width:calc(100vw - 20px)}
}
@media(prefers-reduced-motion:reduce){.nv-skeleton__line{animation:none}.nv-toast{animation:none}.nv-nav-item,.nv-nav-subitem,.nv-tab,.nv-tooltip{transition:none}}
