/* Nhanh Mua primitives and reusable components. Values originate in design-system/tokens.json. */
:root{--ink:var(--nm-color-text);--muted:var(--nm-color-muted);--blue:var(--nm-color-primary);--orange:var(--nm-color-accent);--line:var(--nm-color-border);--paper:var(--nm-color-surface);--soft:var(--nm-color-surface-alt);--radius:var(--nm-radius-card);--text-color:var(--nm-color-text)}
html{font-size:var(--nm-font-base)}
.nm-stack>*+*{margin-block-start:var(--nm-space-4)}
.nm-cluster{display:flex;align-items:center;gap:var(--nm-space-3);flex-wrap:wrap}
.nm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:var(--nm-grid-gap)}
.nm-panel{padding:var(--nm-space-6);border:var(--nm-border-width) solid var(--nm-color-border);border-radius:var(--nm-radius-card);background:var(--nm-color-surface)}
.nm-muted{color:var(--nm-color-muted)}
.nm-button,.button,.wp-element-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--nm-space-3);min-height:var(--nm-target-min);padding:var(--nm-space-3) var(--nm-space-5);border:var(--nm-border-width) solid var(--nm-color-primary);border-radius:var(--nm-radius-control);background:var(--nm-color-primary);color:var(--nm-color-on-primary);font:var(--nm-weight-bold) var(--nm-font-sm)/var(--nm-leading-tight) var(--nm-font-family);text-decoration:none;cursor:pointer;transition:background var(--nm-duration-fast) var(--nm-ease),box-shadow var(--nm-duration-fast) var(--nm-ease)}
.nm-button:hover,.button:hover,.wp-element-button:hover{background:var(--nm-color-primary-hover);border-color:var(--nm-color-primary-hover);color:var(--nm-color-on-primary)}
.nm-button--secondary{background:var(--nm-color-surface);color:var(--nm-color-primary)}
.nm-button--secondary:hover{background:var(--nm-color-tint);color:var(--nm-color-primary-hover)}
.nm-button--ghost{background:transparent;border-color:transparent;color:var(--nm-color-primary)}
.nm-button--ghost:hover{background:var(--nm-color-tint);border-color:transparent;color:var(--nm-color-primary-hover)}
.nm-button--danger{background:var(--nm-color-danger);border-color:var(--nm-color-danger)}
.nm-button--danger:hover{background:var(--nm-color-danger);border-color:var(--nm-color-danger);box-shadow:var(--nm-shadow-card)}
.nm-button:disabled,.nm-button[aria-disabled=true]{background:var(--nm-color-disabled-bg);border-color:var(--nm-color-border);color:var(--nm-color-disabled-text);cursor:not-allowed;transform:none;box-shadow:none}
.nm-button[aria-busy=true]{cursor:progress}.nm-button--icon{width:var(--nm-target-min);padding:var(--nm-space-2)}
.nm-link{color:var(--nm-color-primary);text-decoration:underline;text-underline-offset:3px}
.nm-field{display:grid;gap:var(--nm-space-2);margin-bottom:var(--nm-space-5)}
.nm-label{font-size:var(--nm-font-sm);font-weight:var(--nm-weight-bold)}
.nm-input,.nm-select,.nm-textarea{display:block;width:100%;min-height:var(--nm-target-min);padding:var(--nm-space-3);border:var(--nm-border-width) solid var(--nm-color-border-strong);border-radius:var(--nm-radius-control);background:var(--nm-color-surface);color:var(--nm-color-text);font:inherit}
.nm-input::placeholder,.nm-textarea::placeholder{color:var(--nm-color-muted);opacity:1}
.nm-input[aria-invalid=true],.nm-textarea[aria-invalid=true]{border-color:var(--nm-color-danger);border-width:2px}
.nm-help,.nm-error{font-size:var(--nm-font-sm);line-height:var(--nm-leading-tight);margin:0}.nm-help{color:var(--nm-color-muted)}.nm-error{color:var(--nm-color-danger)}
.nm-input:disabled{background:var(--nm-color-disabled-bg);color:var(--nm-color-disabled-text);cursor:not-allowed}
.nm-check{display:flex;gap:var(--nm-space-3);align-items:center;min-height:var(--nm-target-min);font-size:var(--nm-font-sm)}
.nm-check input{width:var(--nm-icon-md);height:var(--nm-icon-md);accent-color:var(--nm-color-primary);flex-shrink:0}
.nm-badge{display:inline-flex;align-items:center;gap:var(--nm-space-1);border-radius:var(--nm-radius-pill);padding:var(--nm-space-1) var(--nm-space-3);background:var(--nm-color-tint);color:var(--nm-color-primary);font-size:var(--nm-font-xs);font-weight:var(--nm-weight-bold);line-height:var(--nm-leading-tight)}
.nm-badge--success,.nm-alert--success{background:var(--nm-color-success-bg);color:var(--nm-color-success)}
.nm-badge--warning,.nm-alert--warning{background:var(--nm-color-warning-bg);color:var(--nm-color-warning)}
.nm-badge--danger,.nm-alert--danger{background:var(--nm-color-danger-bg);color:var(--nm-color-danger)}
.nm-alert{padding:var(--nm-space-4) var(--nm-space-5);border:var(--nm-border-width) solid currentColor;border-radius:var(--nm-radius-control);font-size:var(--nm-font-sm)}
.nm-alert--info{background:var(--nm-color-info-bg);color:var(--nm-color-info)}
.nm-alert p:last-child{margin-bottom:0}
.nm-tabs{display:flex;gap:var(--nm-space-2);flex-wrap:wrap}.nm-tabs a,.nm-tabs button{display:inline-flex;align-items:center;min-height:var(--nm-target-min);border:var(--nm-border-width) solid var(--nm-color-border-strong);border-radius:var(--nm-radius-control);padding:var(--nm-space-2) var(--nm-space-5);background:var(--nm-color-surface);color:var(--nm-color-primary);font:inherit;text-decoration:none}
.nm-tabs [aria-current=page]{background:var(--nm-color-primary);border-color:var(--nm-color-primary);color:var(--nm-color-on-primary)}
.nm-accordion{border-block-end:var(--nm-border-width) solid var(--nm-color-border);padding-block:var(--nm-space-3)}
.nm-accordion summary{min-height:var(--nm-target-min);padding-block:var(--nm-space-3);font-weight:var(--nm-weight-bold);cursor:pointer}
.nm-accordion p{color:var(--nm-color-muted)}
.nm-table-wrap{overflow-x:auto}.nm-table{width:100%;border-collapse:collapse;font-size:var(--nm-font-sm)}
.nm-table caption{text-align:left;padding-block:var(--nm-space-3);font-weight:var(--nm-weight-bold)}
.nm-table th,.nm-table td{border-bottom:var(--nm-border-width) solid var(--nm-color-border);padding:var(--nm-space-3);text-align:left}.nm-table th{background:var(--nm-color-surface-alt)}
.nm-empty{text-align:center;padding:var(--nm-space-12) var(--nm-space-6);border:1px dashed var(--nm-color-border-strong);border-radius:var(--nm-radius-card);background:var(--nm-color-surface-alt)}
.nm-empty h3{margin:0 0 var(--nm-space-3)}.nm-empty p{color:var(--nm-color-muted)}
.nm-skeleton{height:1rem;background:var(--nm-color-border);border-radius:var(--nm-radius-sm);animation:nm-pulse 1.6s ease-in-out infinite}
.nm-skeleton--image{height:auto;aspect-ratio:var(--nm-ratio-card)}
.nm-skeleton--short{max-width:65%}
.nm-spinner{width:var(--nm-icon-md);height:var(--nm-icon-md);display:inline-block;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:nm-spin .8s linear infinite}
.nm-dialog{width:min(34rem,calc(100% - var(--nm-space-8)));padding:var(--nm-space-8);border:1px solid var(--nm-color-border);border-radius:var(--nm-radius-card);background:var(--nm-color-surface);color:var(--nm-color-text);box-shadow:var(--nm-shadow-dialog)}
.nm-dialog::backdrop{background:var(--nm-color-backdrop)}
.nm-dialog h2{margin-top:0;font-size:var(--nm-font-2xl)}
.nm-price{font-size:var(--nm-font-xl);font-weight:var(--nm-weight-heavy);color:var(--nm-color-accent)}
.nm-rating{font-size:var(--nm-font-sm);color:var(--nm-color-muted)}
:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{outline:var(--nm-focus-width) solid var(--nm-color-focus);outline-offset:var(--nm-focus-offset)}
@keyframes nm-pulse{50%{opacity:.45}}@keyframes nm-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media(forced-colors:active){.nm-button,.nm-badge,.nm-alert{border:1px solid ButtonText}.nm-skeleton{border:1px solid CanvasText}.nm-input[aria-invalid=true]{outline:2px dashed Mark}}
