/* NBox Platform UI primitives. All rules are scoped to .nbox-ui / .nbox-* classes. */
.nbox-ui{box-sizing:border-box;color:var(--nbox-graphite);font-family:var(--nbox-font-ui);font-size:var(--nbox-body-size);line-height:var(--nbox-line-height-body);-webkit-font-smoothing:antialiased}
.nbox-ui *,.nbox-ui *::before,.nbox-ui *::after{box-sizing:border-box}
.nbox-ui a{color:var(--nbox-green)}
.nbox-container{width:min(calc(100% - (var(--nbox-page-padding-mobile) * 2)),var(--nbox-container-public));margin-inline:auto}
.nbox-container--customer{max-width:var(--nbox-container-customer)}
.nbox-section{padding-block:var(--nbox-section-space-mobile)}
.nbox-stack{display:flex;flex-direction:column;gap:var(--nbox-card-gap)}
.nbox-grid{display:grid;gap:var(--nbox-card-gap)}
.nbox-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.nbox-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.nbox-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.nbox-display-title,.nbox-section-title{font-family:var(--nbox-font-display);color:var(--nbox-green);font-weight:700;letter-spacing:-.02em;margin:0}
.nbox-display-title{font-size:var(--nbox-h1-mobile);line-height:1.08}.nbox-section-title{font-size:var(--nbox-h2-mobile);line-height:1.12}
.nbox-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:calc(var(--nbox-card-gap) * 1.2)}
.nbox-page-header__copy{max-width:760px}.nbox-page-header__description{margin:.5rem 0 0;color:color-mix(in srgb,var(--nbox-graphite) 72%,transparent)}
.nbox-card{background:var(--nbox-white);border:var(--nbox-border-width) solid var(--nbox-border);border-radius:var(--nbox-radius-card);padding:var(--nbox-card-padding);box-shadow:var(--nbox-shadow-soft)}
.nbox-card--soft{background:var(--nbox-bg-soft)}.nbox-card--cream{background:var(--nbox-cream)}.nbox-card--brand{background:var(--nbox-green);border-color:var(--nbox-green);color:var(--nbox-white);box-shadow:var(--nbox-shadow-card)}
.nbox-button{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--nbox-button-height);padding:0 22px;border-radius:var(--nbox-radius-button);border:var(--nbox-border-width) solid transparent;font:600 1rem/1 var(--nbox-font-ui);text-decoration:none;cursor:pointer;transition:background-color .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease}
.nbox-button:hover{transform:translateY(-1px)}.nbox-button:focus-visible{outline:3px solid color-mix(in srgb,var(--nbox-green) 20%,transparent);outline-offset:2px}.nbox-button:disabled,.nbox-button[aria-disabled=true]{cursor:not-allowed;transform:none;opacity:.55}
.nbox-button--primary{background:var(--nbox-green);border-color:var(--nbox-green);color:var(--nbox-white)}.nbox-button--primary:hover{background:var(--nbox-green-dark);border-color:var(--nbox-green-dark);color:var(--nbox-white)}
.nbox-button--secondary{background:var(--nbox-white);border-color:var(--nbox-green);color:var(--nbox-green)}.nbox-button--secondary:hover{background:var(--nbox-cream)}
.nbox-button--honey{background:var(--nbox-honey);border-color:var(--nbox-honey);color:var(--nbox-graphite)}
.nbox-button--ghost{background:transparent;color:var(--nbox-green)}.nbox-button--ghost:hover{background:color-mix(in srgb,var(--nbox-green) 6%,transparent)}
.nbox-button--danger{background:transparent;border-color:color-mix(in srgb,var(--nbox-danger) 35%,transparent);color:var(--nbox-danger)}
.nbox-field-ui{display:flex;flex-direction:column;gap:7px}.nbox-label{font-size:.875rem;font-weight:600;color:var(--nbox-graphite)}
.nbox-input,.nbox-select,.nbox-textarea{width:100%;border:var(--nbox-border-width) solid var(--nbox-border);border-radius:var(--nbox-radius-input);background:var(--nbox-white);color:var(--nbox-graphite);font:inherit;box-shadow:none;outline:none;transition:border-color .15s ease,box-shadow .15s ease}
.nbox-input,.nbox-select{height:var(--nbox-input-height);padding:0 16px}.nbox-textarea{min-height:120px;padding:14px 16px;resize:vertical}
.nbox-input:focus,.nbox-select:focus,.nbox-textarea:focus{border-color:var(--nbox-green);box-shadow:0 0 0 3px color-mix(in srgb,var(--nbox-green) 10%,transparent)}
.nbox-field-ui.is-error .nbox-input,.nbox-field-ui.is-error .nbox-select,.nbox-field-ui.is-error .nbox-textarea{border-color:var(--nbox-danger)}.nbox-field-message{font-size:.82rem;color:color-mix(in srgb,var(--nbox-graphite) 70%,transparent)}.nbox-field-ui.is-error .nbox-field-message{color:var(--nbox-danger)}
.nbox-badge{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:5px 10px;border-radius:var(--nbox-radius-pill);font-size:.75rem;font-weight:700;line-height:1.1}.nbox-badge--success{background:color-mix(in srgb,var(--nbox-fresh) 18%,transparent);color:var(--nbox-green)}.nbox-badge--warning{background:color-mix(in srgb,var(--nbox-honey) 18%,transparent);color:#7b5518}.nbox-badge--danger{background:color-mix(in srgb,var(--nbox-danger) 12%,transparent);color:var(--nbox-danger)}.nbox-badge--neutral{background:var(--nbox-cream);color:var(--nbox-graphite)}
.nbox-alert{display:flex;gap:12px;padding:14px 16px;border-radius:var(--nbox-radius-input);border:var(--nbox-border-width) solid var(--nbox-border);background:var(--nbox-bg-soft)}.nbox-alert--info{border-color:color-mix(in srgb,var(--nbox-info) 35%,transparent)}.nbox-alert--warning{border-color:color-mix(in srgb,var(--nbox-honey) 50%,transparent);background:color-mix(in srgb,var(--nbox-honey) 8%,var(--nbox-white))}.nbox-alert--danger{border-color:color-mix(in srgb,var(--nbox-danger) 35%,transparent);background:color-mix(in srgb,var(--nbox-danger) 5%,var(--nbox-white))}
.nbox-empty-state{text-align:center;padding:48px var(--nbox-card-padding);border:var(--nbox-border-width) dashed var(--nbox-border);border-radius:var(--nbox-radius-card);background:var(--nbox-white)}.nbox-empty-state h3{font-family:var(--nbox-font-display);font-size:1.55rem;color:var(--nbox-green);margin:0 0 8px}.nbox-empty-state p{max-width:520px;margin:0 auto 18px}
.nbox-skeleton{position:relative;overflow:hidden;background:color-mix(in srgb,var(--nbox-border) 65%,var(--nbox-white));border-radius:10px;min-height:16px}.nbox-skeleton::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.62),transparent);animation:nbox-shimmer 1.4s infinite}@keyframes nbox-shimmer{100%{transform:translateX(100%)}}
.nbox-shell-public{min-height:100vh;background:var(--nbox-cream)}.nbox-shell-customer{min-height:100vh;background:var(--nbox-bg-soft)}.nbox-shell-driver{min-height:100vh;background:var(--nbox-bg-soft);padding-bottom:var(--nbox-driver-nav)}
.nbox-bottom-nav{position:fixed;z-index:50;left:0;right:0;bottom:0;min-height:var(--nbox-customer-bottom-nav);background:color-mix(in srgb,var(--nbox-white) 94%,transparent);border-top:var(--nbox-border-width) solid var(--nbox-border);backdrop-filter:blur(12px)}
.nbox-admin-density{--nbox-card-padding:max(16px,calc(var(--nbox-space-unit) * 4))}
@media(min-width:783px){.nbox-container{width:min(calc(100% - (var(--nbox-page-padding-desktop) * 2)),var(--nbox-container-public))}.nbox-section{padding-block:var(--nbox-section-space-desktop)}.nbox-display-title{font-size:var(--nbox-h1-desktop)}.nbox-section-title{font-size:var(--nbox-h2-desktop)}}
@media(max-width:900px){.nbox-grid--3,.nbox-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.nbox-grid--2,.nbox-grid--3,.nbox-grid--4{grid-template-columns:1fr}.nbox-page-header{align-items:flex-start;flex-direction:column}.nbox-button{width:100%}}
@media(prefers-reduced-motion:reduce){.nbox-button,.nbox-skeleton::after{transition:none;animation:none}}

/* Presentation foundation 0.2.1 */
.nbox-eyebrow{display:inline-block;margin:0 0 8px;color:var(--nbox-earth);font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.nbox-app-topbar{position:sticky;top:0;z-index:40;min-height:var(--nbox-header-height);display:flex;align-items:center;background:color-mix(in srgb,var(--nbox-white) 94%,transparent);border-bottom:var(--nbox-border-width) solid var(--nbox-border);backdrop-filter:blur(14px)}
.nbox-app-topbar--driver{background:var(--nbox-green);border-bottom-color:var(--nbox-green)}
.nbox-app-topbar--driver .nbox-brand-fallback{color:var(--nbox-white)}
.nbox-app-topbar__inner{min-height:var(--nbox-header-height);display:flex;align-items:center;justify-content:space-between;gap:16px}
.nbox-app-topbar__tagline{font-size:.82rem;color:color-mix(in srgb,var(--nbox-graphite) 64%,transparent)}
.nbox-brand-lockup{display:flex;align-items:center;min-width:90px}.nbox-brand-logo{display:block;width:auto;max-width:145px;max-height:44px;object-fit:contain}.nbox-brand-fallback{font-family:var(--nbox-font-display);font-size:1.65rem;font-weight:700;color:var(--nbox-green);letter-spacing:-.03em}
.nbox-app-main{padding-top:32px;padding-bottom:calc(var(--nbox-customer-bottom-nav) + 34px)}
.nbox-shell-driver .nbox-app-main{padding-bottom:calc(var(--nbox-driver-nav) + 34px)}
.nbox-dashboard-metrics{margin-bottom:8px}.nbox-section--compact{padding-block:32px}
.nbox-metric-card{display:flex;flex-direction:column;gap:6px;min-height:140px}.nbox-metric-card__label{font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:color-mix(in srgb,var(--nbox-graphite) 62%,transparent)}.nbox-metric-card__value{font-family:var(--nbox-font-display);font-size:1.7rem;line-height:1.1;color:var(--nbox-green)}.nbox-metric-card__detail{margin-top:auto;font-size:.84rem;color:color-mix(in srgb,var(--nbox-graphite) 68%,transparent)}
.nbox-empty-state__mark{width:52px;height:52px;display:grid;place-items:center;margin:0 auto 14px;border-radius:50%;background:var(--nbox-cream);font-family:var(--nbox-font-display);font-size:1.5rem;font-weight:700;color:var(--nbox-green)}.nbox-empty-state__action{display:flex;justify-content:center;margin-top:18px}
.nbox-bottom-nav__inner{width:min(100%,720px);min-height:inherit;margin:auto;padding:6px 12px;display:flex;align-items:stretch;justify-content:space-around;gap:2px}.nbox-bottom-nav__item{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:6px 4px;border-radius:12px;color:color-mix(in srgb,var(--nbox-graphite) 65%,transparent)!important;font-size:.7rem;font-weight:650;text-decoration:none}.nbox-bottom-nav__item:hover,.nbox-bottom-nav__item.is-active{background:color-mix(in srgb,var(--nbox-green) 6%,transparent);color:var(--nbox-green)!important}.nbox-bottom-nav__dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.28}.nbox-bottom-nav__item.is-active .nbox-bottom-nav__dot{opacity:1}
@media(min-width:783px){.nbox-app-main{padding-top:44px}.nbox-bottom-nav{left:50%;right:auto;bottom:18px;width:min(700px,calc(100% - 48px));transform:translateX(-50%);border:var(--nbox-border-width) solid var(--nbox-border);border-radius:20px;box-shadow:var(--nbox-shadow-card)}.nbox-app-topbar__tagline{font-size:.9rem}}
@media(max-width:620px){.nbox-app-topbar__tagline{display:none}.nbox-empty-state__action .nbox-button{width:auto;min-width:180px}}
