/* NRI Platform v2 — matches NRIWAY screenshots */
body.nri-app,:not(html):not(body)[class*="nri-"],:not(html):not(body)[id^="nri-"],.request-actions,.request-action-buttons{
  --c-primary:#2563eb;--c-teal:#00b4d8;--c-green:#10b981;--c-red:#ef4444;--c-orange:#f97316;
  --c-amber:#f59e0b;--c-purple:#8b5cf6;--c-gray:#6b7280;--c-border:#e5e7eb;
  --c-bg:#f3f4f6;--c-card:#fff;--c-text:#111827;--c-muted:#6b7280;
  --radius:10px;--shadow:0 1px 3px rgba(0,0,0,.08),0 2px 8px rgba(0,0,0,.06);
  --shadow-md:0 4px 20px rgba(0,0,0,.10);
}
body.nri-app *,:not(html):not(body)[class*="nri-"],:not(html):not(body)[class*="nri-"] *,:not(html):not(body)[id^="nri-"],:not(html):not(body)[id^="nri-"] *,.request-actions,.request-actions *,.request-action-buttons,.request-action-buttons *{box-sizing:border-box;}
/* ── Buttons ─────────────────────────────── */
.nri-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;text-decoration:none!important;border:1px solid transparent;transition:all .15s;line-height:1.4;white-space:nowrap;}
.nri-btn:focus{outline:3px solid var(--c-primary);outline-offset:2px;}
.nri-btn-primary{background:var(--c-primary);color:#fff!important;border-color:var(--c-primary);}
.nri-btn-primary:hover{background:#1d4ed8;border-color:#1d4ed8;}
.nri-btn-outline{background:transparent;color:var(--c-primary)!important;border-color:var(--c-primary);}
.nri-btn-outline:hover{background:#eff6ff;}
.nri-btn-secondary{background:#1e293b;color:#fff!important;border-color:#1e293b;}
.nri-btn-ghost{background:transparent;border-color:var(--c-border);color:var(--c-muted)!important;}
.nri-btn-ghost:hover{background:#f8fafc;}
.nri-btn-danger{background:var(--c-red);color:#fff!important;border-color:var(--c-red);}
.nri-btn-sm{padding:6px 12px;font-size:13px;}
/* Compact variant for dense rows of buttons (request card actions) —
   smaller than nri-btn-sm so 5 actions fit without towering over the
   card's data above them. */
.nri-btn-xs{padding:4px 9px;font-size:11.5px;gap:4px;border-radius:6px;line-height:1.3;}
.nri-btn-xs:disabled,.nri-btn-xs[disabled]{opacity:.45;cursor:not-allowed;}
.nri-btn-lg{padding:13px 28px;font-size:15px;}
.nri-btn-full,.nri-w100{width:100%;justify-content:center;}
.nri-link{background:none;border:none;color:var(--c-primary);cursor:pointer;text-decoration:underline;padding:0;font-size:inherit;}
.nri-btn-icon{background:none;border:none;cursor:pointer;padding:4px 6px;opacity:.6;transition:opacity .15s;}
.nri-btn-icon:hover{opacity:1;}
/* ── Forms ───────────────────────────────── */
.nri-field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px;}
.nri-field label{font-size:13px;font-weight:600;color:var(--c-text);}
.nri-field input,.nri-field select,.nri-field textarea{padding:9px 13px;border:1px solid var(--c-border);border-radius:8px;font-size:14px;color:var(--c-text);background:#fff;width:100%;transition:border-color .15s;}
.nri-field input:focus,.nri-field select:focus,.nri-field textarea:focus{border-color:var(--c-primary);outline:none;box-shadow:0 0 0 3px rgba(37,99,235,.12);}
.nri-req{color:var(--c-red);}
.nri-hint,.nri-hint-sm{font-size:12px;color:var(--c-muted);}
.nri-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;}
@media(max-width:600px){.nri-form-grid{grid-template-columns:1fr;}}
/* Phone */
.nri-phone-wrap{display:flex;gap:8px;width:100%;}
.nri-phone-code{width:110px;flex:0 0 110px;}
.nri-phone-wrap input[type=tel]{flex:1;min-width:0;}
/* Radio */
.nri-radio-group{display:flex;gap:10px;flex-wrap:wrap;}
.nri-radio-opt{display:flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--c-border);border-radius:8px;cursor:pointer;font-size:13px;transition:all .15s;}
.nri-radio-opt:hover{border-color:var(--c-primary);background:#eff6ff;}
.nri-radio-opt input[type=radio]{accent-color:var(--c-primary);}
/* Searchable */
.nri-search-field{position:relative;}
.nri-sf-input{width:100%;}
.nri-sf-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--c-border);border-radius:8px;max-height:220px;overflow-y:auto;box-shadow:var(--shadow-md);z-index:500;}
.nri-sf-item{padding:9px 13px;font-size:13px;cursor:pointer;transition:background .1s;}
.nri-sf-item:hover{background:#eff6ff;color:var(--c-primary);}
.nri-sf-empty{color:var(--c-muted);cursor:default;}
/* Alerts */
.nri-alert{padding:11px 14px;border-radius:8px;font-size:13px;margin:8px 0;}
.nri-alert-error{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;}
.nri-alert-success{background:#f0fdf4;border:1px solid #bbf7d0;color:#15803d;}
/* Dropzone */
.nri-dropzone{border:2px dashed var(--c-border);border-radius:10px;transition:all .15s;}
.nri-dropzone:hover,.nri-dropzone.dragover{border-color:var(--c-primary);background:#eff6ff;}
.nri-dz-inner{padding:28px;text-align:center;color:var(--c-muted);font-size:14px;}
.nri-dz-icon{font-size:28px;margin-bottom:8px;}
.nri-file-preview{padding:0 12px 8px;display:flex;flex-direction:column;gap:4px;}
.nri-fp-item{display:flex;justify-content:space-between;font-size:12px;padding:4px 0;}
/* Progress */
.nri-prog-bar{height:6px;background:var(--c-border);border-radius:3px;overflow:hidden;}
.nri-prog-fill{height:100%;background:var(--c-primary);border-radius:3px;width:0%;transition:width .3s;}
/* ── Submission processing checklist (premium submit UX) ─────────────── */
.nri-proc-card{background:var(--c-card);border:1px solid var(--c-border);border-radius:14px;padding:32px 28px;text-align:center;box-shadow:var(--shadow-md);}
.nri-proc-title{margin:0 0 20px;font-size:19px;font-weight:700;color:var(--c-text);}
.nri-proc-steps{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:12px;text-align:left;max-width:360px;margin-left:auto;margin-right:auto;}
.nri-proc-step{display:flex;align-items:center;gap:10px;font-size:14.5px;color:var(--c-muted);}
.nri-proc-step.is-done{color:#166534;}
.nri-proc-step.is-active{color:var(--c-text);font-weight:600;}
.nri-proc-mark{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:12px;flex:0 0 auto;background:var(--c-border);color:var(--c-muted);}
.nri-proc-step.is-done .nri-proc-mark{background:#16a34a;color:#fff;}
.nri-proc-step.is-active .nri-proc-mark{background:var(--c-primary);color:#fff;animation:nriPulse 1.1s ease-in-out infinite;}
@keyframes nriPulse{0%,100%{opacity:1;}50%{opacity:.45;}}
.nri-proc-note{margin:0;font-size:13.5px;color:var(--c-muted);}
/* ── Success confirmation card ─────────────────────────────────────────── */
.nri-success-card{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:14px;padding:32px 28px;text-align:center;}
.nri-success-icon{font-size:36px;line-height:1;margin-bottom:8px;}
.nri-success-title{margin:0 0 8px;color:#166534;font-size:20px;font-weight:700;}
.nri-success-sub{margin:0 0 14px;color:#166534;font-size:14.5px;}
.nri-success-refbox{display:inline-block;background:#dcfce7;color:#14532d;font-weight:700;padding:8px 18px;border-radius:8px;margin-bottom:14px;font-size:14.5px;}
.nri-success-account{margin:0 0 12px;color:#166534;font-size:13.5px;max-width:440px;margin-left:auto;margin-right:auto;}
.nri-success-note{font-size:13px;margin:0 0 8px;}
.nri-note-pending{color:#166534;}
.nri-note-error{color:#b45309;}
.nri-success-actions{margin-top:8px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}
/* NOTE: the secondary "View Request Details" button intentionally uses the
   EXISTING .nri-btn-outline class (defined near the top of this file), not
   a new .nri-btn-secondary rule — a second, later .nri-btn-secondary
   definition here previously fought the site-wide one (which forces
   color:#fff !important for a dark-navy button elsewhere on the site) and
   produced a white-on-white "invisible text" button both here and on every
   other .nri-btn-secondary button on the site. Do not reintroduce a
   .nri-btn-secondary rule in this file — .nri-btn-secondary is owned by the
   top-of-file button rules only. */
.nri-success-redirect{margin:14px 0 0;font-size:12.5px;color:#4b7c58;}
@media (max-width:480px){
  .nri-proc-card,.nri-success-card{padding:24px 18px;}
  .nri-success-actions{flex-direction:column;}
}
/* ── Auth page ───────────────────────────── */
.nri-login-wrap{display:flex;justify-content:center;padding:48px 16px;background:var(--c-bg);min-height:80vh;}
.nri-login-card{background:var(--c-card);border:1px solid var(--c-border);border-radius:16px;padding:32px;width:100%;max-width:440px;box-shadow:var(--shadow-md);}
.nri-login-logo{text-align:center;margin-bottom:24px;}
.nri-login-brand{font-size:22px;font-weight:700;color:var(--c-text);}
.nri-login-tabs{display:flex;border-bottom:1px solid var(--c-border);margin-bottom:20px;}
.nri-lt{flex:1;padding:10px;background:none;border:none;border-bottom:2px solid transparent;font-size:14px;font-weight:500;color:var(--c-muted);cursor:pointer;transition:all .15s;}
.nri-lt.active{color:var(--c-primary);border-bottom-color:var(--c-primary);}
.nri-lt-pane{display:none;}.nri-lt-pane.active{display:block;}
.nri-pw-wrap{position:relative;}.nri-pw-wrap input{padding-right:60px;}
.nri-pw-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--c-muted);cursor:pointer;font-size:12px;}
.nri-login-footer{text-align:center;margin-top:20px;font-size:13px;color:var(--c-muted);}
.nri-login-footer a{color:var(--c-primary);}
/* ── Multi-step form ────────────────────── */
.nri-form-page{max-width:760px;margin:0 auto;padding:24px 16px;}
.nri-form-hero{text-align:center;padding:32px 0 24px;}
.nri-form-hero h1{font-size:26px;font-weight:700;margin:0 0 8px;}
.nri-form-hero p{color:var(--c-muted);margin:0;}
.nri-wizard-wrap{background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);}
/* Steps bar */
.nri-steps-bar{display:flex;align-items:center;padding:20px 24px;border-bottom:1px solid var(--c-border);}
.nri-step{display:flex;flex-direction:column;align-items:center;gap:6px;}
.nri-step-dot{width:32px;height:32px;border-radius:50%;background:var(--c-border);color:var(--c-muted);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;transition:all .3s;}
.nri-step-label{font-size:11px;font-weight:500;color:var(--c-muted);white-space:nowrap;text-align:center;}
.nri-step-line{flex:1;height:2px;background:var(--c-border);margin:0 8px;margin-bottom:20px;transition:background .3s;}
.nri-step.nri-step-active .nri-step-dot{background:var(--c-primary);color:#fff;}
.nri-step.nri-step-active .nri-step-label{color:var(--c-primary);font-weight:700;}
.nri-step.nri-step-done .nri-step-dot{background:var(--c-green);color:#fff;}
.nri-step-line.nri-step-line-done{background:var(--c-green);}
/* Wizard step */
.nri-wizard-step{padding:28px 32px;}
.nri-step-title{font-size:18px;font-weight:700;color:var(--c-text);margin:0 0 20px;}
.nri-step-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;}
.nri-field-full{grid-column:1/-1;}
.nri-step-nav{display:flex;justify-content:space-between;align-items:center;margin-top:24px;padding-top:20px;border-top:1px solid var(--c-border);}
@media(max-width:600px){.nri-step-fields{grid-template-columns:1fr;}.nri-steps-bar{padding:14px 12px;}.nri-step-label{font-size:9px;}.nri-wizard-step{padding:20px 16px;}}
/* ── Client Dashboard ────────────────────── */
/* Full-width dashboard shell — no longer capped at a fixed 1200px
   column. Fills the available browser width up to a ceiling, with
   proportional side padding via clamp(): the gutter grows with the
   viewport instead of jumping at a breakpoint, so content never sits
   flush against the edge whatever the screen size. The ceiling was
   originally 1920px, but on an actual wide monitor that let the request
   card's left column stretch far wider than a short field list needs —
   confirmed by rendering it — leaving a large empty rectangle below the
   data instead of the fields using the space. 1560px keeps the "fills
   the screen, isn't boxed in" effect on ordinary monitors while capping
   how wide any single card's content column gets asked to stretch on a
   very wide one. Same treatment as .nri-admin-wrap below so the client
   portal and staff admin dashboards read as one consistent app rather
   than two different layout systems. */
.nri-dash-wrap{width:100%;max-width:1560px;margin:0 auto;padding:clamp(20px,2.5vw,40px) clamp(20px,4vw,56px);}
.nri-dash-hdr{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:24px;}
.nri-dash-hdr-left{display:flex;align-items:center;gap:14px;}
.nri-avatar{width:48px;height:48px;border-radius:50%;background:var(--c-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;flex-shrink:0;}
.nri-dash-name{font-size:clamp(20px,1.4vw,23px);font-weight:700;margin:0 0 2px;}
.nri-dash-email{font-size:13px;color:var(--c-muted);margin:0;}
.nri-dash-hdr-right{display:flex;gap:10px;flex-wrap:wrap;}
.nri-dash-stats{display:flex;gap:clamp(10px,1vw,16px);margin-bottom:24px;flex-wrap:wrap;}
.nri-stat-chip{background:var(--c-card);border:1px solid var(--c-border);border-radius:999px;padding:8px 18px;font-size:14px;color:var(--c-muted);display:flex;align-items:center;gap:6px;}
.nri-stat-chip span{font-size:20px;font-weight:700;color:var(--c-text);}
.nri-chip-blue span{color:var(--c-primary);}
.nri-chip-green span{color:var(--c-green);}
/* Card minimum width grows a step on wide screens so a full dashboard
   width still resolves to a sensible, evenly-filled column count (e.g.
   3-4 comfortably-sized cards per row on a 1920px screen) instead of
   auto-fill packing in many narrow columns just because the space is
   there. */
.nri-requests-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;}
@media(min-width:1400px){.nri-requests-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px;}}
.nri-req-card-link-wrap{text-decoration:none!important;}
.nri-req-card{background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);transition:all .18s;display:flex;flex-direction:column;gap:10px;}
.nri-req-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}
.nri-req-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;}
.nri-req-num{font-size:12px;font-weight:700;color:var(--c-primary);font-family:monospace;margin-bottom:3px;}
.nri-req-svc{font-size:15px;font-weight:600;color:var(--c-text);}
.nri-req-delivery{font-size:13px;color:var(--c-muted);}
.nri-req-delivery strong{color:var(--c-green);}
.nri-req-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--c-muted);}
.nri-status-chip{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;}
.nri-status-lg{padding:6px 16px;font-size:13px;}
.nri-empty-state{text-align:center;padding:60px 24px;background:var(--c-card);border-radius:var(--radius);border:1px solid var(--c-border);}
.nri-empty-icon{font-size:40px;margin-bottom:12px;}
.nri-empty-state h3{font-size:18px;font-weight:600;margin:0 0 8px;}
.nri-empty-state p{color:var(--c-muted);margin-bottom:20px;}
.nri-text-center{text-align:center;}
.nri-msg-card{background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius);padding:24px;max-width:500px;margin:40px auto;}
.nri-auth-gate{padding:40px 16px;}.nri-auth-card{max-width:400px;margin:0 auto;background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius);padding:24px;text-align:center;}
/* ── Order / Request Detail ───────────────── */
.nri-order-page{max-width:1100px;margin:0 auto;padding:24px 16px;}
.nri-order-hdr{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;flex-wrap:wrap;gap:12px;}
.nri-back-link{font-size:13px;color:var(--c-muted);text-decoration:none;display:block;margin-bottom:4px;}
.nri-back-link:hover{color:var(--c-primary);}
.nri-order-num{font-size:22px;font-weight:700;color:var(--c-primary);margin:0;}
/* Info row — matches screenshot 4-column layout */
.nri-info-row{display:grid;grid-template-columns:160px 1fr 1fr 1fr;border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-card);box-shadow:var(--shadow);margin-bottom:12px;overflow:hidden;}
.nri-info-card{padding:16px 18px;border-right:1px solid var(--c-border);}
.nri-info-card:last-child{border-right:none;}
.nri-info-card-svc{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;}
.nri-svc-thumb{font-size:36px;margin-bottom:6px;}
.nri-svc-name{font-size:13px;font-weight:700;color:var(--c-text);}
.nri-info-label{font-size:12px;font-weight:700;color:var(--c-text);margin-bottom:6px;}
.nri-info-name{font-size:14px;font-weight:700;color:var(--c-text);}
.nri-info-line{font-size:13px;color:var(--c-muted);margin-top:3px;}
.nri-info-vendor{color:var(--c-purple)!important;font-weight:600;}
.nri-info-val{font-size:14px;color:var(--c-text);}
.nri-info-card-mgr{background:#f8fbff;}
.nri-edit-inline{font-size:14px;margin-left:8px;vertical-align:middle;}
/* Summary bar */
.nri-summary-bar{display:flex;align-items:center;background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius);padding:16px 24px;margin-bottom:14px;box-shadow:var(--shadow);}
.nri-summary-item{flex:1;text-align:center;}
.nri-summary-label{font-size:12px;color:var(--c-muted);font-weight:600;margin-right:6px;}
.nri-summary-val{font-size:14px;font-weight:700;color:var(--c-text);}
.nri-summary-sep{width:1px;height:36px;background:var(--c-border);flex-shrink:0;}
/* Pipeline — teal dots like screenshot */
.nri-pipeline-wrap{display:flex;align-items:center;justify-content:center;background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius);padding:20px 24px;margin-bottom:16px;box-shadow:var(--shadow);}
.nri-pipeline-node{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:80px;}
.nri-pipeline-circle{width:32px;height:32px;border-radius:50%;background:var(--c-border);border:3px solid var(--c-border);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;transition:all .3s;}
.nri-pipeline-lbl{font-size:11px;font-weight:600;color:var(--c-muted);text-align:center;}
.nri-pipeline-bar{flex:1;height:3px;background:var(--c-border);max-width:80px;transition:background .3s;}
.nri-pipeline-node.nri-done .nri-pipeline-circle{background:var(--c-teal);border-color:var(--c-teal);}
.nri-pipeline-node.nri-done .nri-pipeline-lbl{color:var(--c-teal);}
.nri-pipeline-node.nri-current .nri-pipeline-circle{background:var(--c-teal);border-color:var(--c-teal);box-shadow:0 0 0 4px rgba(0,180,216,.2);}
.nri-pipeline-bar.nri-done{background:var(--c-teal);}
/* Tabs */
.nri-order-tabs-wrap{background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;overflow:hidden;}
.nri-order-tabs{display:flex;border-bottom:1px solid var(--c-border);}
.nri-ot{padding:14px 20px;font-size:14px;font-weight:500;color:var(--c-muted);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all .15s;margin-bottom:-1px;}
.nri-ot.active{color:var(--c-teal);border-bottom-color:var(--c-teal);font-weight:700;}
.nri-ot-pane{padding:0;}
/* Docs layout — 2 column like screenshot */
.nri-docs-layout{display:grid;grid-template-columns:220px 1fr;min-height:400px;}
.nri-docs-left{border-right:1px solid var(--c-border);}
.nri-doc-section{border-bottom:1px solid var(--c-border);}
.nri-doc-section-btn{width:100%;text-align:left;padding:12px 16px;background:#f8fafc;border:none;cursor:pointer;font-size:13px;font-weight:600;color:var(--c-text);display:flex;justify-content:space-between;align-items:center;}
.nri-doc-section-btn:hover{background:#f1f5f9;}
.nri-doc-section-body{background:#fff;}
.nri-doc-entry{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-bottom:1px solid #f1f5f9;font-size:13px;}
.nri-doc-entry-name{font-weight:600;color:var(--c-text);}
.nri-doc-entry-by{font-size:11px;color:var(--c-muted);margin-top:2px;}
.nri-dl-btn{background:none;border:1px solid var(--c-teal);color:var(--c-teal)!important;padding:5px 10px;border-radius:50%;font-size:14px;text-decoration:none;display:flex;align-items:center;justify-content:center;width:32px;height:32px;}
.nri-doc-upload-row{padding:10px 16px;}
.nri-dropzone-sm{border:2px dashed var(--c-border);border-radius:8px;padding:12px;text-align:center;cursor:pointer;transition:all .15s;}
.nri-dropzone-sm:hover{border-color:var(--c-primary);}
/* Order history (right panel) */
.nri-docs-right{display:flex;flex-direction:column;}
.nri-order-history-hdr{background:var(--c-teal);color:#fff;padding:14px 20px;font-size:14px;font-weight:700;}
.nri-messages-list{flex:1;overflow-y:auto;max-height:340px;padding:12px 16px;display:flex;flex-direction:column;gap:12px;}
.nri-msg-item{display:flex;flex-direction:column;}
.nri-msg-meta-top{font-size:11px;color:var(--c-muted);margin-bottom:6px;display:flex;justify-content:space-between;align-items:center;}
.nri-msg-bubble{background:#f1f5f9;border-radius:0 10px 10px 10px;padding:12px 16px;font-size:13px;line-height:1.6;color:var(--c-text);max-width:90%;}
.nri-msg-mine .nri-msg-bubble{background:var(--c-primary);color:#fff;border-radius:10px 10px 0 10px;align-self:flex-end;}
.nri-msg-mine{align-items:flex-end;}
.nri-email-sent-badge{background:#dbeafe;color:#1e40af;font-size:11px;padding:2px 8px;border-radius:999px;font-weight:600;}
.nri-msg-input-area{padding:14px 16px;border-top:1px solid var(--c-border);}
.nri-msg-input-area textarea{width:100%;padding:9px 13px;border:1px solid var(--c-border);border-radius:8px;font-size:13px;resize:none;margin-bottom:8px;}
.nri-msg-input-area textarea:focus{border-color:var(--c-primary);outline:none;}
.nri-msg-actions{display:flex;gap:8px;margin-bottom:6px;}
/* Tickets table */
.nri-tickets-toolbar{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--c-border);flex-wrap:wrap;gap:10px;}
.nri-search-wrap{display:flex;gap:8px;align-items:center;}
.nri-search-input{padding:7px 12px;border:1px solid var(--c-border);border-radius:8px;font-size:13px;}
.nri-ticket-status-chip{display:inline-block;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:600;}
.nri-ts-open{background:#dbeafe;color:#1d4ed8;}
.nri-ts-in_progress{background:#fef3c7;color:#92400e;}
.nri-ts-resolved{background:#d1fae5;color:#065f46;}
.nri-ts-closed{background:#f3f4f6;color:#6b7280;}
/* Staff panel */
.nri-staff-panel-wrap{background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:16px;}
.nri-staff-panel-hdr{padding:14px 20px;font-size:14px;font-weight:700;color:var(--c-text);cursor:pointer;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--c-border);}
.nri-staff-panel-hdr:hover{background:#f8fafc;}
.nri-staff-panel-body{padding:20px;}
.nri-staff-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
.nri-staff-section-wide{grid-column:1/-1;}
.nri-staff-section{background:#f8fafc;border:1px solid var(--c-border);border-radius:8px;padding:16px;}
.nri-staff-label{font-size:12px;font-weight:700;color:var(--c-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;}
.nri-tl-toggle{display:flex;border:1px solid var(--c-border);border-radius:6px;overflow:hidden;margin-bottom:8px;}
.nri-tlt{flex:1;padding:6px;font-size:12px;font-weight:500;border:none;background:#fff;color:var(--c-muted);cursor:pointer;transition:all .15s;}
.nri-tlt.active{background:var(--c-primary);color:#fff;}
/* ── Admin Dashboard ─────────────────────── */
/* Same full-width, proportionally-padded shell as .nri-dash-wrap above —
   see the comment there for why clamp() is used instead of a fixed
   max-width or a hard breakpoint jump. This is the container the whole
   "Requests" tab (stat cards, filters, request-card list, table-based
   tabs) sits inside, so widening it is what actually gives every child
   below the extra room to spread into. */
.nri-admin-wrap{width:100%;max-width:1560px;margin:0 auto;padding:clamp(20px,2.5vw,40px) clamp(20px,4vw,56px);}
.nri-admin-hdr{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;flex-wrap:wrap;gap:12px;position:sticky;top:0;z-index:46;background:var(--portal-bg-grad, #f4f6fb);padding-bottom:8px;}
.nri-admin-hdr h2{font-size:clamp(22px,1.6vw,27px);font-weight:700;margin:0 0 4px;}
.nri-admin-hdr p{margin:0;color:var(--c-muted);font-size:clamp(13px,.9vw,14px);}
.nri-admin-hdr-right{display:flex;gap:8px;}
.nri-admin-nav{display:flex;border-bottom:2px solid var(--c-border);margin-bottom:20px;overflow-x:auto;gap:0;background:var(--c-card);border-radius:var(--radius) var(--radius) 0 0;border:1px solid var(--c-border);border-bottom:2px solid var(--c-border);position:sticky;top:0;z-index:45;box-shadow:0 4px 12px rgba(15,23,42,.06);}
.nri-nav-item{padding:13px 22px;font-size:14px;font-weight:500;color:var(--c-muted);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-2px;white-space:nowrap;transition:all .15s;}
.nri-nav-item:hover{color:var(--c-primary);}
.nri-nav-item.active{color:var(--c-primary);border-bottom-color:var(--c-primary);font-weight:700;}
.nri-tab-content{background:var(--c-card);border:1px solid var(--c-border);border-top:none;border-radius:0 0 var(--radius) var(--radius);padding:clamp(18px,2vw,28px);}
.nri-tab-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;}
.nri-tab-hdr h3{font-size:17px;font-weight:700;margin:0;}
.nri-stats-strip{display:flex;gap:clamp(10px,1vw,16px);flex-wrap:wrap;margin-bottom:18px;}
.nri-stat-card{background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius);padding:clamp(14px,1.2vw,18px) clamp(18px,1.6vw,24px);flex:1;min-width:130px;cursor:pointer;transition:all .15s;box-shadow:var(--shadow);}
.nri-stat-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);}
.nri-stat-num{font-size:clamp(24px,1.8vw,28px);font-weight:700;line-height:1;}
.nri-stat-lbl{font-size:12px;color:var(--c-muted);margin-top:4px;}
.nri-tbl-toolbar{display:flex;gap:clamp(10px,1vw,14px);flex-wrap:wrap;margin-bottom:16px;align-items:center;}
/* On a wide dashboard the search box no longer stays pinned to its old
   cramped width — it grows to fill spare toolbar space (up to a sensible
   cap so it doesn't stretch into an unreadable single field) while the
   status/date filter selects keep their natural compact width next to
   it. */
.nri-tbl-toolbar .nri-search-input{flex:1 1 260px;min-width:200px;max-width:440px;}
/* Every box-model property here (padding/border/border-radius/font-size/
   line-height/height/box-sizing), not just color, is marked !important.
   v6.12.1 only made color/background !important and left padding to plain
   specificity — the active WP theme's global `select{...}`/`input{...}`
   reset apparently has a MORE SPECIFIC selector (e.g. scoped to a parent
   content wrapper class), so it kept winning on padding/line-height even
   after color was fixed: the text became readable but still sat
   top-/off-center in a box whose real padding/line-height the theme was
   still controlling. Marking every box-model property !important here
   removes the theme selector from the contest entirely, regardless of its
   specificity, instead of relying on out-specificitying it. appearance is
   deliberately left alone (not forced to "menulist") since overriding it
   can fight a theme's own custom dropdown-arrow background-image and
   padding, which is its own way to break the same layout. */
.nri-filter-sel{
  padding:8px 12px!important;
  border:1px solid var(--c-border)!important;
  border-radius:8px!important;
  font-size:13px!important;
  line-height:1.4!important;
  height:auto!important;
  min-height:0!important;
  box-sizing:border-box!important;
  vertical-align:middle!important;
  color:var(--c-text)!important;
  background:#fff!important;
  opacity:1!important;
}
.nri-filter-sel option{color:var(--c-text);background:#fff;}
.nri-search-input{
  padding:7px 12px!important;
  border:1px solid var(--c-border)!important;
  border-radius:8px!important;
  font-size:13px!important;
  line-height:1.4!important;
  height:auto!important;
  min-height:0!important;
  box-sizing:border-box!important;
  vertical-align:middle!important;
  color:var(--c-text)!important;
  background:#fff!important;
  opacity:1!important;
}
.nri-search-input::placeholder{color:var(--c-muted);opacity:1;}
/* Date filter (Requests tab / Form Submissions tab — see
   nri_render_date_filter_controls() in includes/helpers.php). The two
   conditional groups (Specific Date / Custom Range) stay display:none
   until nriInitDateFilterToggle() (nri_admin_js()) reveals the one that
   matches the date-filter <select>. */
.nri-datef-group{display:inline-flex;gap:6px;align-items:center;}
.nri-datef-sep{color:var(--c-muted);font-size:13px;}
.nri-datef-group input[type="date"]{
  padding:8px 12px!important;
  border:1px solid var(--c-border)!important;
  border-radius:8px!important;
  font-size:13px!important;
  line-height:1.4!important;
  height:auto!important;
  min-height:0!important;
  box-sizing:border-box!important;
  vertical-align:middle!important;
  color:var(--c-text)!important;
  background:#fff!important;
  opacity:1!important;
}
/* Table */
.nri-tbl-wrap{background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius);overflow:hidden;overflow-x:auto;box-shadow:var(--shadow);}
.nri-tbl{width:100%;border-collapse:collapse;font-size:14px;}
.nri-tbl th{background:#f8fafc;padding:12px clamp(14px,1.2vw,20px);text-align:left;font-weight:600;font-size:12px;color:var(--c-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--c-border);white-space:nowrap;}
.nri-tbl td{padding:14px clamp(14px,1.2vw,20px);border-bottom:1px solid #f1f5f9;vertical-align:middle;color:var(--c-text);}
.nri-tbl tr:last-child td{border-bottom:none;}
.nri-tbl tr:hover td{background:#f8fafc;}
.nri-tbl-loading,.nri-tbl-empty{text-align:center;color:var(--c-muted);padding:40px!important;}
.nri-pagination{display:flex;gap:6px;padding:12px 14px;border-top:1px solid var(--c-border);flex-wrap:wrap;align-items:center;}
/* Inline variant: pagination sits inside the Search/Filter/Reset toolbar
   row (top of the tab) instead of its own bar under the list/table.
   Overrides the standalone bar's own padding/border-top (which would
   otherwise draw a stray divider line inside the toolbar) and pushes
   itself to the row's right edge via margin-left:auto — the .nri-tbl-
   toolbar row is display:flex already, so this is the only change
   needed there; the Form Submissions tab's header row sets the same
   margin-left:auto inline since it isn't built from .nri-tbl-toolbar. */
.nri-pagination-inline{padding:0;border-top:none;margin-left:auto;gap:6px;}
/* Internal Status filter bar — its own row below the main Search/Filter/
   Reset toolbar (see nri-admin-tab-requests() in shortcodes.php). Up to
   ~21 compact pill buttons: wraps on desktop, but on narrow screens
   wrapping alone would push the request list far down the page, so
   below 600px it becomes a single horizontally-scrollable row instead —
   the pills keep their compact size, they just scroll sideways rather
   than breaking the page layout (per the "keep the filter UI compact and
   responsive" requirement). -webkit-overflow-scrolling for a smoother
   scroll on iOS Safari; scrollbar-width:thin keeps the scrollbar itself
   unobtrusive on browsers that support styling it. */
.nri-istatus-bar{display:flex;flex-wrap:wrap;gap:6px;padding:0 0 14px;margin-top:-4px;}
.nri-istatus-pill{flex-shrink:0;appearance:none;-webkit-appearance:none;border:1.5px solid var(--c-border);background:#fff;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:600;line-height:1.3;cursor:pointer;white-space:nowrap;transition:box-shadow .12s,transform .05s;}
.nri-istatus-pill:hover{box-shadow:0 1px 4px rgba(0,0,0,.08);}
.nri-istatus-pill:active{transform:scale(.97);}
.nri-istatus-pill.active{box-shadow:0 1px 6px rgba(0,0,0,.18);}
.nri-istatus-pill.nri-istatus-inactive{opacity:.6;border-style:dashed;}
.nri-istatus-count{display:inline-block;margin-left:4px;padding:0 5px;border-radius:999px;background:rgba(0,0,0,.08);font-size:10.5px;font-weight:700;}
.nri-istatus-pill.active .nri-istatus-count{background:rgba(255,255,255,.28);}
@media(max-width:600px){
  .nri-istatus-bar{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;padding-bottom:8px;}
  .nri-istatus-pill{scroll-snap-align:start;}
  .nri-istatus-bar{scroll-snap-type:x proximity;}
}
/* Card-level "Internal:" select — staff-only inline status changer, see
   .nri-rc-istatus in the request card markup (nri_admin_js() in
   shortcodes.php). Deliberately styled close to a plain label, not a
   full form control, so it reads as part of the card's data rather than
   an input the eye has to separately parse. */
.nri-rc-istatus{display:flex;align-items:center;gap:6px;font-size:12px;padding-top:2px;}
.nri-rc-istatus label{color:var(--c-muted);font-weight:500;flex-shrink:0;}
.nri-istatus-select{border:1.5px solid var(--c-border);border-radius:6px;padding:3px 6px;font-size:12px;font-weight:600;background:#fff;max-width:220px;cursor:pointer;}
@media(max-width:600px){.nri-istatus-select{max-width:160px;}}
/* Client-facing status — the card's top-row inline selector (replaces
   the old read-only .nri-status-chip there; that class is unchanged and
   still used for read-only display elsewhere, e.g. the client dashboard
   and Form Submissions). Slightly bolder/pill-shaped than the internal-
   status select since it sits in the card's title row, not a secondary
   line. */
.nri-status-select{border:1.5px solid var(--c-border);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;background:#fff;cursor:pointer;max-width:200px;}
@media(max-width:600px){.nri-status-select{max-width:150px;font-size:11px;}}
/* Admin Requests list — compact cards (replaces the old table) */
.nri-rc-listhdr{padding:9px 14px;border-bottom:1px solid var(--c-border);background:#f8fafc;}
.nri-rc-selall{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--c-muted);cursor:pointer;}
/* One full-width card per row (not a multi-column grid of cards) — each
   request gets its own row so the list reads top-to-bottom, and each
   card itself stretches to the full available width instead of being
   capped at a fixed column size. Below that, every card is its OWN
   two-column layout: .nri-rc-main (the request's identity + submitted
   form data — what it IS) on the left, .nri-rc-side (both status
   selects, a pipeline-progress fill, the admin-operational quote/
   delivery/manager/vendor line, and the action buttons — how it's being
   handled) on its own dedicated column on the right, so those two
   concerns read as clearly separate at a glance instead of one long
   stacked list. The side column is a fixed comfortable width rather
   than a fraction of the card, so it doesn't itself stretch into empty
   space on a very wide dashboard — the left column absorbs all the
   extra room instead, which is where the variable-length form data
   actually benefits from it. */
.nri-rc-list{display:flex;flex-direction:column;gap:clamp(10px,.9vw,14px);padding:clamp(14px,1.4vw,20px);}
.nri-rc-list .nri-tbl-loading,.nri-rc-list .nri-tbl-empty{grid-column:1/-1;}
/* align-items:start (not the grid default of stretch) is what makes
   this actually work: with stretch, the shorter of the two columns
   gets force-stretched to match the taller one, which — combined with
   the side column's own content needing a fairly constant amount of
   vertical room regardless of how much form data a given request has —
   produced huge, request-independent dead whitespace in whichever
   column happened to be shorter (confirmed by rendering it: a 2-field
   request and a 9-field request came out at nearly the SAME card
   height). With align-items:start each column is only as tall as its
   own content, so the card's height reflects what's actually in it. */
.nri-req-card-admin{background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius);padding:clamp(14px,1.2vw,18px) clamp(16px,1.6vw,22px);transition:box-shadow .15s;display:grid;grid-template-columns:1fr minmax(260px,320px);column-gap:clamp(18px,2vw,28px);align-items:start;min-width:0;}
.nri-req-card-admin:hover{box-shadow:var(--shadow-md);}
/* Below ~780px there isn't room for two real columns, so the side panel
   drops under the main content instead of squeezing to an unreadable
   sliver — a horizontal divider takes over from the vertical one. */
@media(max-width:780px){
  .nri-req-card-admin{grid-template-columns:1fr;row-gap:10px;}
  .nri-rc-side{border-left:none;padding-left:0;border-top:1px solid var(--c-border);padding-top:12px;}
}
/* ── Left column: request identity + submitted form data ── */
.nri-rc-main{display:flex;flex-direction:column;gap:8px;min-width:0;}
.nri-rc-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.nri-rc-top input[type=checkbox]{margin:0;flex-shrink:0;}
.nri-rc-title{font-size:14px;font-weight:700;color:var(--c-text);}
.nri-rc-client{font-size:13px;color:var(--c-text);}
.nri-rc-client small{color:var(--c-muted);font-weight:400;}
.nri-rc-svc{color:var(--c-muted);font-size:12px;}
/* Student details — Applicant / Document & Academic / Location &
   Delivery groups (each one .nri-rc-line, built by
   nri_render_request_card_fields() in helpers.php) flow left-to-right
   across the left column's width, wrapping to a new line once they run
   out of room — a light left border between groups (added below on
   every .nri-rc-line but the first) stands in for whitespace as the
   "next group" separator. Remarks (.nri-rc-remarks, free text and often
   long) is deliberately excluded from this flow and kept full-width on
   its own row within the left column — folding it into the horizontal
   run would either truncate it awkwardly or blow out every other
   group's row. */
.nri-rc-fields{display:flex;flex-wrap:wrap;column-gap:clamp(18px,1.6vw,28px);row-gap:6px;align-items:flex-start;}
.nri-rc-line{display:flex;flex-wrap:wrap;align-items:baseline;row-gap:2px;font-size:13px;line-height:1.5;flex:0 1 auto;}
.nri-rc-fields>.nri-rc-line:not(:first-child):not(.nri-rc-remarks){padding-left:clamp(18px,1.6vw,28px);margin-left:calc(-1 * clamp(9px,.8vw,14px));border-left:1px solid #eef1f5;}
.nri-rc-pair{display:inline-flex;align-items:baseline;gap:4px;white-space:nowrap;min-width:0;max-width:100%;}
.nri-rc-lbl{color:var(--c-muted);font-weight:500;flex-shrink:0;}
.nri-rc-val{color:var(--c-text);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px;vertical-align:bottom;}
@media(min-width:1400px){.nri-rc-val{max-width:250px;}}
.nri-rc-sep{color:#cbd5e1;margin:0 8px;user-select:none;flex-shrink:0;}
.nri-rc-arrow{color:var(--c-muted);margin:0 2px;flex-shrink:0;}
.nri-rc-remarks{flex:1 1 100%;width:100%;padding-top:5px;margin-top:2px;border-top:1px dashed var(--c-border);flex-wrap:nowrap;}
.nri-rc-remarks .nri-rc-val{max-width:none;flex:1;min-width:0;}
/* Copy/Desc/Docs/Delete/View — one row at the bottom of the LEFT
   column (not the side panel): a single-row toolbar for the request's
   own data, kept apart from the status/handling info on the right.
   Buttons keep their natural content width (not stretched) and wrap
   only if the left column gets narrow enough to need it — on an
   ordinary card width all five sit on one row as requested. */
.nri-rc-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;padding-top:10px;border-top:1px solid #f1f5f9;}
/* Copy Details / Copy Description / Download Docs buttons — small
   "Copied ✓" flash, no layout shift (button keeps its own width via
   nowrap). */
.nri-copy-details-btn,.nri-copy-desc-btn,.nri-download-docs-btn{white-space:nowrap;}
.nri-copied-flash{background:#dcfce7!important;color:#166534!important;border-color:#86efac!important;}
/* Muted/"sober" takes on the usual solid nri-btn-primary/nri-btn-danger
   for this action row specifically — a light tinted background with a
   matching border and darker text reads calmer next to the outline
   Copy/Desc/Docs buttons than a fully saturated solid button would,
   while staying clearly distinguishable as "the delete one" / "the
   primary one." Scoped to this row only — nri-btn-primary/nri-btn-danger
   elsewhere in the app (e.g. the support-ticket table) are unchanged. */
.nri-btn-primary-soft{background:#eef2ff;color:#3949ab!important;border-color:#c7d2fe;}
.nri-btn-primary-soft:hover{background:#e0e7ff;border-color:#a5b4fc;}
.nri-btn-danger-soft{background:#fef2f2;color:#b91c1c!important;border-color:#fecaca;}
.nri-btn-danger-soft:hover{background:#fee2e2;border-color:#fca5a5;}
/* ── Right column: status, progress, operational meta ── */
.nri-rc-side{display:flex;flex-direction:column;gap:8px;min-width:0;border-left:1px solid var(--c-border);padding-left:clamp(14px,1.4vw,20px);}
.nri-rc-side-top{display:flex;justify-content:flex-end;}
.nri-rc-date{font-size:12px;color:var(--c-muted);white-space:nowrap;}
/* Both status selects side by side in one compact row (the same
   arrangement they used in the card's old shared top row, just
   relocated here) rather than each getting its own full row — a
   separate row per select was, on its own, costing the side column a
   full extra row of height on every single card regardless of content,
   which was a big part of why the panel read as taller than it needed
   to be. Now that the side column is wider, there's room to put a
   small fixed-width caption ("Status"/"Internal") in front of each
   select instead of relying on the tooltip/color alone to tell them
   apart at a glance. */
.nri-rc-status-group{display:flex;flex-direction:column;gap:5px;}
.nri-rc-status-row{display:flex;align-items:center;gap:6px;}
.nri-rc-scap{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--c-muted);width:52px;flex-shrink:0;white-space:nowrap;}
.nri-rc-status-row select{flex:1;min-width:0;max-width:none;}
/* Compact pipeline-progress fill — colored to match the current client
   status, width driven by nriRcProgressPct() (nri_admin_js() in
   shortcodes.php) against the same 7-stage order as the request-detail
   page's own pipeline, so "how far along" reads consistently in both
   places without opening the request. */
.nri-rc-progress{height:5px;border-radius:999px;background:#eef1f5;overflow:hidden;}
.nri-rc-progress-fill{height:100%;border-radius:999px;transition:width .3s ease;}
/* Admin-operational meta (quote/delivery/manager/vendor) as a compact
   2x2 label-over-value grid rather than four separate full-width rows
   — same information, roughly half the vertical space. */
.nri-rc-meta{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;padding-top:8px;margin-top:2px;border-top:1px solid #f1f5f9;opacity:.9;}
.nri-rc-meta .nri-rc-pair{display:flex;flex-direction:column;gap:0;white-space:normal;}
.nri-rc-meta .nri-rc-lbl{font-size:10px;text-transform:uppercase;letter-spacing:.03em;}
.nri-rc-meta .nri-rc-val{font-weight:600;font-size:12px;max-width:none;}
@media(max-width:600px){
  .nri-rc-list{padding:10px;gap:10px;}
  .nri-req-card-admin{padding:12px;}
  .nri-rc-val{max-width:130px;}
  .nri-rc-meta .nri-rc-val{max-width:100px;}
  .nri-rc-sep{margin:0 5px;}
  .nri-istatus-select-top{font-size:11px;}
}
/* Student Requirement Description panel (request detail page) */
.nri-req-desc-panel{background:#fdf9f0;border:1px solid #f0e2c0;border-radius:10px;padding:14px 16px;margin-bottom:20px;}
.nri-req-desc-hdr{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:8px;}
.nri-req-desc-hdr h4{font-size:14px;font-weight:700;color:#1e293b;margin:0;}
.nri-req-desc-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 8px;border-radius:10px;}
.nri-req-desc-auto{background:#e0f2fe;color:#0369a1;}
.nri-req-desc-manual{background:#ede9fe;color:#6d28d9;}
.nri-req-desc-stale{background:#fef3c7;color:#92400e;}
.nri-req-desc-text{font-size:14px;line-height:1.6;color:#334155;}
.nri-req-desc-edit{width:100%;min-height:90px;font:inherit;font-size:14px;line-height:1.6;color:#334155;padding:10px 12px;border:1px solid var(--c-border);border-radius:8px;resize:vertical;box-sizing:border-box;}
.nri-req-desc-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
/* Panel cards (add/edit forms) */
.nri-panel-card{background:#f8fafc;border:1px solid var(--c-border);border-radius:var(--radius);padding:20px;}
/* DD controls */
.nri-dd-controls{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px;align-items:center;}
/* Bulk tabs */
.nri-bulk-tabs{display:flex;gap:4px;margin-bottom:0;}
.nri-bulk-tab{padding:10px 20px;font-size:14px;font-weight:500;border:1px solid var(--c-border);border-bottom:none;background:#f8fafc;color:var(--c-muted);cursor:pointer;border-radius:8px 8px 0 0;transition:all .15s;}
.nri-bulk-tab.active{background:var(--c-card);color:var(--c-primary);font-weight:700;border-color:var(--c-border);border-bottom-color:var(--c-card);}
.nri-bulk-pane{border-radius:0 var(--radius) var(--radius) var(--radius)!important;border-top-left-radius:0!important;}
.nri-format-pills{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:4px;}
.nri-fp{padding:5px 14px;border-radius:999px;font-size:12px;font-weight:500;border:1px solid var(--c-border);background:#f8fafc;color:var(--c-muted);cursor:pointer;transition:all .15s;}
.nri-fp.active{background:var(--c-primary);color:#fff;border-color:var(--c-primary);}
/* ── Modal ────────────────────────────────── */
.nri-modal-box{background:var(--c-card);border-radius:16px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;position:relative;z-index:1;margin:auto;box-shadow:0 20px 60px rgba(0,0,0,.3);}
.nri-modal-hdr{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;border-bottom:1px solid var(--c-border);position:sticky;top:0;background:var(--c-card);border-radius:16px 16px 0 0;}
.nri-modal-hdr h3{margin:0;font-size:18px;font-weight:700;}
.nri-modal-x{background:none;border:none;font-size:18px;cursor:pointer;color:var(--c-muted);padding:4px 8px;border-radius:6px;}
.nri-modal-x:hover{background:#f1f5f9;}
.nri-modal-body{padding:20px 24px;}
.nri-modal-select{width:100%;padding:12px 14px;border:2px solid #bfdbfe;border-radius:10px;font-size:14px;background:#fff;}
.nri-modal-back-row{display:flex;align-items:center;gap:10px;margin-bottom:16px;}
.nri-modal-upload{border:2px dashed #bfdbfe;border-radius:12px;padding:20px;text-align:center;cursor:pointer;background:#f8fbff;transition:all .15s;}
.nri-modal-upload:hover{border-color:var(--c-primary);background:#eff6ff;}
body.nri-no-scroll{overflow:hidden;}
/* ── Services ─────────────────────────────── */
.nri-services-wrap{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;padding:16px 0;}
.nri-svc-card{background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius);padding:24px;text-align:center;box-shadow:var(--shadow);transition:all .18s;}
.nri-svc-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}
.nri-svc-icon{font-size:36px;margin-bottom:12px;}
.nri-svc-name{font-size:16px;font-weight:700;margin:0 0 8px;}
.nri-svc-desc{font-size:13px;color:var(--c-muted);margin-bottom:16px;}
/* ── Responsive ────────────────────────────── */
@media(max-width:900px){.nri-info-row{grid-template-columns:1fr 1fr;}.nri-info-card{border-bottom:1px solid var(--c-border);}.nri-docs-layout{grid-template-columns:1fr;}.nri-docs-left{border-right:none;border-bottom:1px solid var(--c-border);}.nri-staff-grid{grid-template-columns:1fr;}}
@media(max-width:600px){.nri-info-row{grid-template-columns:1fr;}.nri-summary-bar{flex-direction:column;gap:10px;}.nri-summary-sep{width:100%;height:1px;}.nri-pipeline-wrap{overflow-x:auto;justify-content:flex-start;}.nri-admin-nav{flex-wrap:nowrap;}.nri-dash-hdr,.nri-dash-hdr-right{flex-direction:column;align-items:flex-start;}.nri-requests-grid{grid-template-columns:1fr;}}

/* ── Sticky Top Nav ──────────────────────────── */
/* Inline nav - sits above dashboard, not fixed */
.nri-inline-nav{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:20px;flex-wrap:wrap;gap:10px;}
.nri-inline-nav-brand a{font-size:16px;font-weight:800;color:#4f46e5;text-decoration:none;letter-spacing:-0.3px;}
.nri-inline-nav-links{display:flex;align-items:center;gap:4px;flex-wrap:wrap;}
.nri-nav-link{padding:8px 14px;border-radius:8px;font-size:13px;font-weight:500;color:#64748b;text-decoration:none;cursor:pointer;border:none;background:none;transition:all .15s;white-space:nowrap;}
.nri-nav-link:hover{background:#f1f5f9;color:#4f46e5;}
.nri-nav-link.nri-nav-active,.nri-nav-link.active{background:#eff6ff;color:#4f46e5;font-weight:600;}
.nri-nav-link-cta{background:#4f46e5;color:#fff!important;font-weight:600;}
.nri-nav-link-cta:hover{background:#4338ca;color:#fff!important;}
@media(max-width:600px){
  .nri-inline-nav{padding:10px 14px;}
  .nri-inline-nav-brand a{font-size:14px;}
  .nri-nav-link{padding:6px 10px;font-size:12px;}
}

/* ── Breadcrumb ──────────────────────────────── */
.nri-page-breadcrumb{margin-bottom:16px;}
.nri-page-breadcrumb a{font-size:13px;color:#64748b;text-decoration:none;display:inline-flex;align-items:center;gap:4px;}
.nri-page-breadcrumb a:hover{color:#2563eb;}
.nri-page-wrap{max-width:800px;margin:0 auto;padding:24px 16px;}

/* ── Profile ─────────────────────────────────── */
.nri-profile-wrap{padding:24px 16px;max-width:700px;margin:0 auto;}
.nri-profile-wrap h2{font-size:22px;font-weight:700;margin:0 0 20px;}

/* ── Support modal select ────────────────────── */
.nri-modal-select{width:100%;padding:12px 14px;border:2px solid #bfdbfe;border-radius:10px;font-size:14px;background:#fff;box-sizing:border-box;}

/* ── Phone field ─────────────────────────────── */
.nri-phone-wrap{display:flex;gap:8px;width:100%;}
.nri-phone-code{width:110px;flex:0 0 110px;padding:9px 6px;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;background:#fff;}
.nri-phone-wrap input[type=tel]{flex:1;min-width:0;padding:9px 13px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;box-sizing:border-box;}

/* ── Admin delete button in table ────────────── */
.nri-stat-card:hover{cursor:pointer;}

@media(max-width:600px){
    .nri-top-nav{padding:0 12px;}
    .nri-top-nav-links{gap:0;}
    .nri-nav-link{padding:8px 8px;font-size:12px;}
    .nri-top-nav-brand a{font-size:14px;}
}

/* ── Drag-and-drop field reorder ─────────────── */
.nri-drag-handle{display:inline-block;cursor:grab;color:#94a3b8;font-size:16px;padding:2px 6px;border-radius:4px;line-height:1;user-select:none;transition:color .15s;}
.nri-drag-handle:hover{color:#2563eb;background:#eff6ff;}
.nri-drag-ghost{opacity:.4;background:#eff6ff;}
.nri-drag-chosen{background:#f8fafc;box-shadow:0 2px 8px rgba(37,99,235,.12);}
tr.nri-drag-ghost td,.nri-drag-chosen td{background:inherit;}

/* ── WP admin bar offset for top nav ─────────── */
.admin-bar .nri-top-nav{top:32px;}
@media screen and (max-width:782px){.admin-bar .nri-top-nav{top:46px;}}

/* ── New Request CTA nav link ─────────────── */
.nri-nav-link-cta{background:#2563eb!important;color:#fff!important;border-radius:8px;padding:7px 16px!important;font-weight:600!important;}
.nri-nav-link-cta:hover{background:#1d4ed8!important;color:#fff!important;}

/* Admin requests table - manager/vendor cells */
.nri-mgr-cell{font-size:12px;font-weight:600;color:#4f46e5;}
.nri-vnd-cell{font-size:12px;font-weight:600;color:#10b981;}

/* ── Dropdown / Select padding improvements ──────────────── */
.nri-field select,
.nri-field select option {
    padding: 11px 14px;
    min-height: 42px;
    line-height: 1.5;
}
select.nri-modal-select {
    padding: 11px 14px;
    min-height: 44px;
    font-size: 14px;
}
/* Ensure all select inputs have consistent height */
.nri-wizard-form select,
.nri-wizard-form input[type="text"],
.nri-wizard-form input[type="email"],
.nri-wizard-form input[type="tel"],
.nri-wizard-form input[type="date"] {
    padding: 11px 14px;
    min-height: 44px;
    font-size: 14px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    width: 100%;
    box-sizing: border-box;
    color: #1e293b;
}
.nri-wizard-form select:focus,
.nri-wizard-form input:focus {
    border-color: #4f46e5;
    outline: none;
    box-shadow: 0 0 0 3px rgba(79,70,229,.12);
}
/* Placeholder color */
.nri-wizard-form input::placeholder { color: #94a3b8; }
.nri-wizard-form select option[value=""] { color: #94a3b8; }
/* Phone wrap fix */
.nri-phone-wrap select.nri-phone-code { min-height: 44px; padding: 10px 8px; }

/* ── Dash wrapper when using inline nav ──────────────────── */
.nri-dash-wrap { padding: 0 0 40px; }

/* ══════════════════════════════════════════════════════════════
   STANDALONE FORM  [nri_standalone_form]
   Form-card only — no surrounding layout wrapper
══════════════════════════════════════════════════════════════ */

.nri-sl-outer {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    position: relative;
    isolation: isolate;
}

.nri-sl-outer .nri-sl-fields.nri-step-fields {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0 16px;
}

@media (min-width: 768px) {
    .nri-sl-outer .nri-sl-fields.nri-step-fields {
        grid-template-columns: 1fr 1fr;
    }
    .nri-sl-outer .nri-sl-fields .nri-field-full {
        grid-column: 1 / -1;
    }
}

/* ── CARD ─────────────────────────────────────────────────── */
.nri-sl-card {
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 24px 64px rgba(0,0,0,.28), 0 4px 16px rgba(0,0,0,.12);
    overflow: hidden;
    width: 100%;
    max-width: 520px;
    margin: 0 auto;
}

.nri-sl-card-hdr {
    background: linear-gradient(135deg, #1a1a6e 0%, #2d2db0 100%);
    padding: 18px 24px 16px;
}
.nri-sl-card-title {
    font-size: 17px;
    font-weight: 700;
    color: #fff;
    margin: 0;
    letter-spacing: -.01em;
}

/* ── STEP DOTS ────────────────────────────────────────────── */
.nri-sl-steps {
    display: flex;
    align-items: center;
    padding: 12px 20px;
    background: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
}
.nri-sl-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    flex: 0 0 auto;
}
.nri-sl-step-dot {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #e2e8f0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    color: #94a3b8;
    transition: all .2s;
}
.nri-sl-step-active .nri-sl-step-dot {
    background: linear-gradient(135deg, #1a1a6e, #4f46e5);
    color: #fff;
    box-shadow: 0 2px 8px rgba(79,70,229,.4);
}
.nri-sl-step-done .nri-sl-step-dot {
    background: #10b981;
    color: #fff;
}
.nri-sl-step-lbl {
    font-size: 9px;
    font-weight: 600;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: .04em;
    white-space: nowrap;
    max-width: 64px;
    text-align: center;
    line-height: 1.2;
}
.nri-sl-step-active .nri-sl-step-lbl { color: #1a1a6e; }
.nri-sl-step-line {
    flex: 1;
    height: 2px;
    background: #e2e8f0;
    margin: 0 4px;
    margin-bottom: 14px;
    transition: background .2s;
}
.nri-sl-line-done { background: #10b981; }

/* ── FORM BODY ────────────────────────────────────────────── */
.nri-sl-form {
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
.nri-sl-wizard-step {
    padding: 16px 20px 0;
}
.nri-sl-step-heading {
    font-size: 13px;
    color: #475569;
    margin: 0 0 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid #f1f5f9;
}
.nri-sl-step-heading strong { color: #1e293b; }

/* Compact fields */
.nri-sl-fields .nri-field { margin-bottom: 10px; }
.nri-sl-fields .nri-field label {
    font-size: 12px;
    font-weight: 600;
    color: #374151;
    margin-bottom: 4px;
    display: block;
}
.nri-sl-fields .nri-field input,
.nri-sl-fields .nri-field select,
.nri-sl-fields .nri-field textarea {
    padding: 8px 11px;
    font-size: 13px;
    border-radius: 8px;
    border: 1px solid #d1d5db;
    background: #fafafa;
}
.nri-sl-fields .nri-field input:focus,
.nri-sl-fields .nri-field select:focus {
    border-color: #4f46e5;
    box-shadow: 0 0 0 3px rgba(79,70,229,.1);
    background: #fff;
    outline: none;
}
.nri-sl-fields .nri-dropzone { padding: 14px; }
.nri-sl-fields .nri-dz-icon { font-size: 20px; }
.nri-sl-fields .nri-dz-inner p { font-size: 12px; margin: 4px 0; }
.nri-sl-fields .nri-radio-group { gap: 8px; }
.nri-sl-fields .nri-radio-opt span { font-size: 13px; padding: 6px 12px; }
.nri-sl-fields .nri-field-desc { font-size: 11px; }
.nri-sl-fields .nri-phone-wrap { display: flex; gap: 8px; width: 100%; }
.nri-sl-fields .nri-phone-wrap select { min-height: 36px; padding: 7px 6px; font-size: 12px; flex: 0 0 auto; width: 110px; }
.nri-sl-fields .nri-phone-wrap input[type=tel] { flex: 1; min-width: 0; width: 100%; }

/* ── NAV BUTTONS ──────────────────────────────────────────── */
.nri-sl-nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 20px 16px;
    border-top: 1px solid #f1f5f9;
    margin-top: 14px;
}
.nri-sl-btn-back {
    background: transparent;
    border: 1px solid #d1d5db;
    color: #6b7280;
    font-size: 13px;
    font-weight: 500;
    padding: 8px 16px;
    border-radius: 8px;
    cursor: pointer;
    margin-right: auto;
    transition: all .15s;
}
.nri-sl-btn-back:hover { border-color: #9ca3af; color: #374151; }
.nri-sl-btn-next {
    background: linear-gradient(135deg, #1a1a6e, #4f46e5);
    color: #fff;
    border: none;
    font-size: 13px;
    font-weight: 700;
    padding: 9px 22px;
    border-radius: 8px;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(79,70,229,.3);
    transition: opacity .15s;
}
.nri-sl-btn-next:hover { opacity: .9; }
.nri-sl-btn-submit {
    width: 100%;
    background: linear-gradient(135deg, #1a1a6e 0%, #4f46e5 100%);
    color: #fff;
    border: none;
    font-size: 14px;
    font-weight: 700;
    padding: 12px 20px;
    border-radius: 8px;
    cursor: pointer;
    box-shadow: 0 4px 16px rgba(79,70,229,.4);
    letter-spacing: .02em;
    transition: opacity .15s;
}
.nri-sl-btn-submit:hover { opacity: .92; }

/* ── CARD FOOTER ──────────────────────────────────────────── */
.nri-sl-card-footer {
    text-align: center;
    font-size: 11px;
    color: #94a3b8;
    padding: 10px 20px 14px;
    margin: 0;
    background: #f8fafc;
    border-top: 1px solid #e2e8f0;
}

/* Field description/help text */
.nri-field-desc {
    margin: 4px 0 0;
    font-size: 12px;
    color: #64748b;
    line-height: 1.5;
}

/* Required file dropzone error state */
.nri-dropzone[style*="border-color: rgb(239, 68, 68)"],
.nri-dropzone[style*="border-color:#ef4444"] {
    border-color: #ef4444 !important;
    background: #fff5f5;
}

/* Outline primary variant */
.nri-btn-primary-outline {
    background: transparent;
    border: 2px solid #4f46e5;
    color: #4f46e5;
}
.nri-btn-primary-outline:hover {
    background: #4f46e5;
    color: #fff;
}

/* ── NRI v6.2.1 Improvements ───────────────── */
/* Button Alignment Fix - Request Section */
.request-actions,
.request-action-buttons,
.nri-action-btns {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    margin: 10px 0;
}

.request-actions .nri-btn,
.request-action-buttons .nri-btn,
.nri-action-btns .nri-btn {
    margin: 0 !important;
    min-width: 100px;
}

/* Status Flow Styling */
.nri-status-flow {
    text-align: center;
    padding: 20px 0;
    border-bottom: 1px solid #eee;
}

.nri-status-item {
    display: inline-block;
    padding: 10px 20px;
    margin: 5px;
    border-radius: 8px;
    background: #f0f0f0;
    border: 2px solid #ddd;
    text-align: center;
    transition: all 0.3s ease;
    font-size: 14px;
}

.nri-status-item.active {
    background: var(--c-green);
    color: white;
    border-color: var(--c-green);
    font-weight: bold;
}

.nri-status-item.completed {
    background: var(--c-primary);
    color: white;
    border-color: var(--c-primary);
}

.nri-status-item.disabled,
.nri-status-item.faded {
    opacity: 0.5;
    color: #999;
    background: #f9f9f9;
    cursor: not-allowed;
}

.nri-status-flow .nri-status-item:not(:last-child)::after {
    content: '→';
    margin: 0 8px;
    color: #ddd;
    font-weight: bold;
}

.nri-status-flow .nri-status-item.disabled ~ .nri-status-item::after {
    color: #ccc;
}

/* Mobile responsive */
@media (max-width: 768px) {
    .request-actions,
    .request-action-buttons,
    .nri-action-btns {
        flex-direction: column;
        gap: 8px;
        align-items: stretch;
    }
    
    .request-actions .nri-btn,
    .request-action-buttons .nri-btn,
    .nri-action-btns .nri-btn {
        width: 100%;
    }
    
    .nri-status-flow {
        padding: 15px 5px;
    }
    
    .nri-status-item {
        display: block;
        margin: 5px 0;
    }
    
    .nri-status-flow .nri-status-item::after {
        content: '↓';
        display: block;
        margin: 5px 0;
    }
}

@media (max-width: 480px) {
    .request-actions,
    .request-action-buttons,
    .nri-action-btns {
        gap: 5px;
    }
}

/* v6.2.1: Faded pipeline nodes for Service Not Available */
.nri-pipeline-node.nri-faded {
    opacity: 0.4;
}

.nri-pipeline-node.nri-service-unavailable {
    background: #fee2e2;
    border-color: #ef4444;
}

.nri-pipeline-node.nri-service-unavailable .nri-pipeline-circle {
    background: #ef4444;
    color: white;
}

/* ── COMMUNICATION PANEL ─────────────────────────────────────────────────── */
.nri-ot-comm { border-left: 3px solid #6366f1 !important; }
.nri-ot-comm.active { background: #6366f1 !important; color: #fff !important; border-color: #6366f1 !important; }

.nri-comm-panel { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; padding: 24px 0; }
@media (max-width: 768px) { .nri-comm-panel { grid-template-columns: 1fr; } }

/* Recipient Card */
.nri-comm-recipient-card {
    grid-column: 1 / -1;
    display: flex; align-items: center; gap: 16px;
    background: linear-gradient(135deg, #f0f4ff 0%, #e8f0fe 100%);
    border: 1.5px solid #c7d2fe; border-radius: 12px; padding: 16px 20px;
    position: relative;
}
.nri-comm-recipient-icon { font-size: 36px; flex-shrink: 0; }
.nri-comm-recipient-label { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: #6366f1; font-weight: 600; margin-bottom: 3px; }
.nri-comm-recipient-name { font-size: 18px; font-weight: 700; color: #1e293b; }
.nri-comm-recipient-email { font-size: 14px; color: #4f46e5; margin-top: 2px; }
.nri-comm-recipient-phone { font-size: 13px; color: #64748b; margin-top: 2px; }
.nri-comm-req-badge {
    margin-left: auto; background: #6366f1; color: #fff;
    padding: 6px 14px; border-radius: 20px; font-size: 13px; font-weight: 600; flex-shrink: 0;
}

/* Compose */
.nri-comm-compose {
    grid-column: 1 / 2;
    background: #fff; border: 1px solid #e2e8f0; border-radius: 12px;
    padding: 20px; display: flex; flex-direction: column; gap: 14px;
}
@media (max-width: 768px) { .nri-comm-compose { grid-column: 1 / -1; } }
.nri-comm-compose-hdr { border-bottom: 1px solid #f1f5f9; padding-bottom: 12px; }
.nri-comm-compose-title { font-size: 16px; font-weight: 700; color: #1e293b; }

.nri-comm-toolbar { display: flex; flex-direction: column; gap: 12px; }
.nri-comm-toolbar-group { display: flex; flex-direction: column; gap: 6px; }
.nri-comm-toolbar-label { font-size: 12px; font-weight: 600; color: #64748b; text-transform: uppercase; letter-spacing: .05em; }
.nri-comm-select { padding: 8px 12px; border: 1px solid #e2e8f0; border-radius: 8px; font-size: 14px; color: #1e293b; background: #f8fafc; }

.nri-comm-qr-group { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; padding: 10px 12px; }
.nri-comm-quick-btns { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.nri-comm-quick-btn {
    padding: 5px 12px; background: #fff; border: 1.5px solid #6366f1; border-radius: 20px;
    font-size: 12px; color: #6366f1; font-weight: 600; cursor: pointer;
    transition: background .15s, color .15s;
}
.nri-comm-quick-btn:hover { background: #6366f1; color: #fff; }

.nri-comm-field { display: flex; flex-direction: column; gap: 5px; }
.nri-comm-field-label { font-size: 12px; font-weight: 600; color: #64748b; }
.nri-comm-input {
    padding: 9px 12px; border: 1px solid #e2e8f0; border-radius: 8px;
    font-size: 14px; color: #1e293b; background: #fff;
    transition: border-color .15s;
}
.nri-comm-input:focus { outline: none; border-color: #6366f1; }
.nri-comm-textarea {
    padding: 10px 12px; border: 1px solid #e2e8f0; border-radius: 8px;
    font-size: 14px; color: #1e293b; background: #fff; resize: vertical; font-family: inherit; line-height: 1.6;
    transition: border-color .15s;
}
.nri-comm-textarea:focus { outline: none; border-color: #6366f1; }

.nri-comm-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.nri-comm-status-msg {
    padding: 10px 14px; border-radius: 8px; font-size: 14px; font-weight: 500;
}
.nri-comm-success { background: #f0fdf4; color: #16a34a; border: 1px solid #bbf7d0; }
.nri-comm-error   { background: #fef2f2; color: #dc2626; border: 1px solid #fecaca; }

/* History / Log */
.nri-comm-history {
    grid-column: 2 / 3;
    background: #fff; border: 1px solid #e2e8f0; border-radius: 12px;
    padding: 20px; display: flex; flex-direction: column;
    max-height: 600px; overflow: hidden;
}
@media (max-width: 768px) { .nri-comm-history { grid-column: 1 / -1; } }
.nri-comm-history-hdr {
    font-size: 15px; font-weight: 700; color: #1e293b;
    padding-bottom: 12px; border-bottom: 1px solid #f1f5f9;
    display: flex; align-items: center; gap: 10px; margin-bottom: 12px;
}
.nri-comm-log-count {
    margin-left: auto; font-size: 12px; font-weight: 600;
    background: #e0e7ff; color: #4338ca; padding: 3px 10px; border-radius: 12px;
}
.nri-comm-history-list { overflow-y: auto; flex: 1; display: flex; flex-direction: column; gap: 12px; }

.nri-comm-log-item {
    display: flex; gap: 12px; align-items: flex-start;
    padding: 12px 14px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 10px;
}
.nri-comm-log-icon { font-size: 18px; color: #6366f1; flex-shrink: 0; padding-top: 2px; }
.nri-comm-log-body { flex: 1; min-width: 0; }
.nri-comm-log-meta { font-size: 12px; color: #64748b; margin-bottom: 4px; }
.nri-comm-log-msg {
    font-size: 13px; color: #334155; white-space: pre-wrap; word-break: break-word;
    max-height: 80px; overflow: hidden; text-overflow: ellipsis; display: -webkit-box;
    -webkit-line-clamp: 4; -webkit-box-orient: vertical;
}
/* ── END COMMUNICATION PANEL ─────────────────────────────────────────────── */

/* ══════════════════════════════════════════════════════════════════════════
   CLIENT PORTAL REDESIGN (v6.10.0)
   Visual-only upgrade for the logged-in client dashboard, profile tab and
   standalone request-detail page, so they read as a dedicated application
   portal rather than a public web page. Scoped to .nri-portal-* wrapper
   classes added around existing markup — no ids, classes bound to JS, or
   form field names were changed. Shared classes (.nri-btn, .nri-status-chip,
   .nri-req-card, etc.) keep their original rules above; the rules below only
   ADD portal-specific refinement and never touch the admin-only screens.
   ══════════════════════════════════════════════════════════════════════════ */

:root{
  --portal-bg:#eef1f8;
  --portal-bg-grad:linear-gradient(180deg,#eef2fb 0%,#eef1f8 260px,#eef1f8 100%);
  --portal-ink:#0f172a;
  --portal-accent:#4f46e5;
  --portal-accent-dark:#3730a3;
  --portal-accent-soft:#eef2ff;
  --portal-teal:#00b4d8;
  --portal-line:#e4e7f2;
  --portal-r-sm:8px;--portal-r-md:12px;--portal-r-lg:16px;
  --portal-sh-1:0 1px 2px rgba(15,23,42,.05),0 1px 1px rgba(15,23,42,.03);
  --portal-sh-2:0 6px 16px rgba(15,23,42,.08),0 2px 4px rgba(15,23,42,.04);
  --portal-sh-3:0 16px 36px rgba(15,23,42,.12),0 4px 10px rgba(15,23,42,.06);
}

/* ── Shell / background: sets the portal apart from the public site ── */
.nri-portal-shell,
.nri-portal-order-page,
.nri-portal-profile{
  position:relative;
}
body:has(.nri-portal-shell),
body:has(.nri-portal-order-page),
body:has(.nri-portal-profile){
  background:var(--portal-bg-grad);
}
/* Shortcode dashboards: never leave the host page in a scroll-lock state. */
body:has(.nri-portal-shell),
body:has(.nri-portal-topbar),
body:has(#nri-client-tab-container),
body:has(#nri-admin-tab-container),
body:has(.nri-admin-wrap){
  overflow-y:auto!important;
  height:auto!important;
  min-height:100%;
}
html:has(.nri-portal-shell),
html:has(#nri-client-tab-container),
html:has(#nri-admin-tab-container){
  overflow-y:auto!important;
  height:auto!important;
}
body:has(.nri-portal-shell) #page,
body:has(.nri-portal-shell) .site-content,
body:has(.nri-portal-shell) .entry-content,
body:has(#nri-admin-tab-container) #page,
body:has(#nri-admin-tab-container) .site-content,
body:has(#nri-admin-tab-container) .entry-content{
  overflow:visible!important;
  height:auto!important;
  max-height:none!important;
}
.nri-portal-shell{ padding-top:4px; }

/* ── Top nav: portal chrome, distinct from site header ── */
.nri-portal-nav{
  background:#fff;
  border:1px solid var(--portal-line);
  border-radius:var(--portal-r-lg);
  padding:12px 18px;
  box-shadow:var(--portal-sh-1);
  position:sticky;
  top:env(safe-area-inset-top,0px);
  z-index:40;
  margin-bottom:22px;
}
.nri-portal-brand a{display:flex;align-items:center;gap:8px;color:var(--portal-accent-dark);}
.nri-portal-brand-mark{
  display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:7px;font-size:13px;
  background:linear-gradient(135deg,var(--portal-accent),var(--portal-teal));
  color:#fff;line-height:1;
}
.nri-portal-nav .nri-nav-link.nri-nav-item{position:relative;}
.nri-portal-nav .nri-nav-link.nri-nav-item.active,
.nri-portal-nav .nri-nav-link.nri-nav-item.nri-nav-active{
  background:var(--portal-accent-soft);color:var(--portal-accent-dark);
}
.nri-portal-nav .nri-nav-link-cta{
  background:linear-gradient(135deg,var(--portal-accent),#6366f1);
  box-shadow:0 2px 8px rgba(79,70,229,.28);
}
.nri-portal-nav .nri-nav-link-cta:hover{
  background:linear-gradient(135deg,var(--portal-accent-dark),#4f46e5);
  transform:translateY(-1px);
  box-shadow:0 4px 12px rgba(79,70,229,.32);
}

/* ── Dashboard hero header ── */
.nri-portal-hero{
  background:#fff;
  border:1px solid var(--portal-line);
  border-radius:var(--portal-r-lg);
  padding:22px 24px;
  box-shadow:var(--portal-sh-1);
  margin-bottom:18px;
}
.nri-portal-eyebrow{
  margin:0 0 3px;font-size:11px;font-weight:700;letter-spacing:.07em;
  text-transform:uppercase;color:var(--portal-accent);
}
.nri-portal-avatar{
  background:linear-gradient(135deg,var(--portal-accent),var(--portal-teal));
  box-shadow:0 4px 10px rgba(79,70,229,.28);
  width:52px;height:52px;font-size:21px;
}
.nri-dash-email{display:flex;align-items:center;gap:6px;}
.nri-portal-icon{opacity:.75;font-size:.95em;}

/* ── Stat chips → dashboard tiles ── */
.nri-portal-stats{gap:12px;}
.nri-portal-stat{
  background:#fff;border:1px solid var(--portal-line);border-radius:var(--portal-r-md);
  padding:10px 18px 10px 14px;box-shadow:var(--portal-sh-1);
  transition:transform .18s ease,box-shadow .18s ease;
}
.nri-portal-stat:hover{transform:translateY(-2px);box-shadow:var(--portal-sh-2);}
.nri-portal-stat-icon{font-size:15px;}
.nri-portal-stat span{font-size:19px;}

/* ── Section header above the request grid ── */
.nri-portal-section-hdr{
  display:flex;align-items:baseline;justify-content:space-between;
  margin:22px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--portal-line);
}
.nri-portal-section-title{margin:0;font-size:15px;font-weight:700;color:var(--portal-ink);}
.nri-portal-section-sub{font-size:12px;color:#94a3b8;font-weight:600;}

/* ── Request cards ── */
.nri-portal-grid{gap:16px;}
.nri-portal-req-card{
  border-radius:var(--portal-r-md);
  border-color:var(--portal-line);
  box-shadow:var(--portal-sh-1);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
  position:relative;
}
.nri-portal-req-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--portal-sh-2);
  border-color:#c7d2fe;
}
.nri-portal-req-card:focus-visible,
.nri-req-card-link-wrap:focus-visible .nri-portal-req-card{
  outline:2px solid var(--portal-accent);outline-offset:2px;
}
.nri-portal-req-card .nri-req-num{display:flex;align-items:center;gap:5px;}
.nri-portal-req-card .nri-req-delivery{display:flex;align-items:center;gap:5px;}
.nri-portal-status-dot{position:relative;padding-left:20px!important;}
.nri-portal-status-dot::before{
  content:"";position:absolute;left:10px;top:50%;transform:translateY(-50%);
  width:6px;height:6px;border-radius:50%;background:currentColor;
}
.nri-portal-req-cta{
  margin-top:2px;font-size:12px;font-weight:600;color:var(--portal-accent);
  display:flex;align-items:center;gap:4px;opacity:0;transform:translateX(-4px);
  transition:opacity .18s ease,transform .18s ease;
}
.nri-portal-req-card:hover .nri-portal-req-cta{opacity:1;transform:translateX(0);}

/* ── Empty state ── */
.nri-portal-empty{
  border-radius:var(--portal-r-lg);border-style:dashed;border-color:#c7d2fe;
  background:linear-gradient(180deg,#fff 0%,#f8f9ff 100%);
}

/* ── Profile tab ── */
.nri-portal-page-title{
  display:flex;align-items:center;gap:8px;font-size:20px;
}
.nri-portal-panel{
  background:#fff;border-radius:var(--portal-r-lg);box-shadow:var(--portal-sh-1);
  padding:24px;
}

/* ── Buttons: crisper dashboard-action states ── */
.nri-portal-shell .nri-btn,
.nri-portal-order-page .nri-btn,
.nri-portal-profile .nri-btn{
  border-radius:var(--portal-r-sm);
}
.nri-portal-shell .nri-btn-primary,
.nri-portal-order-page .nri-btn-primary,
.nri-portal-profile .nri-btn-primary{
  background:linear-gradient(135deg,var(--portal-accent),#4338ca);
  border-color:var(--portal-accent-dark);
}
.nri-portal-shell .nri-btn-primary:hover,
.nri-portal-order-page .nri-btn-primary:hover,
.nri-portal-profile .nri-btn-primary:hover{
  transform:translateY(-1px);box-shadow:0 4px 12px rgba(79,70,229,.3);
}
.nri-portal-shell .nri-btn:active,
.nri-portal-order-page .nri-btn:active,
.nri-portal-profile .nri-btn:active{transform:translateY(0);filter:brightness(.96);}
.nri-portal-shell .nri-btn:focus-visible,
.nri-portal-order-page .nri-btn:focus-visible,
.nri-portal-profile .nri-btn:focus-visible{
  outline:2px solid var(--portal-accent);outline-offset:2px;
}
.nri-portal-shell .nri-btn:disabled,
.nri-portal-order-page .nri-btn:disabled,
.nri-portal-profile .nri-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none;}

/* ── Standalone request-detail page (client view only) ── */
.nri-portal-order-page{padding-top:4px;}
.nri-portal-order-page .nri-order-hdr{
  background:#fff;border:1px solid var(--portal-line);border-radius:var(--portal-r-lg);
  padding:18px 22px;box-shadow:var(--portal-sh-1);margin-bottom:14px;
}
.nri-portal-order-page .nri-order-num{
  display:flex;align-items:center;gap:8px;color:var(--portal-ink);
}
.nri-portal-order-page .nri-order-num::before{
  content:"\1F4DD";font-size:18px;
}
.nri-portal-order-page .nri-status-lg{
  box-shadow:0 0 0 3px rgba(255,255,255,.6) inset;
  padding:7px 18px;font-weight:700;letter-spacing:.01em;
}

/* Info row → contact/shipping/manager cards get real card depth */
.nri-portal-order-page .nri-info-row{
  display:grid;border:none;background:transparent;box-shadow:none;gap:12px;
  grid-template-columns:repeat(4,1fr);margin-bottom:16px;
}
.nri-portal-order-page .nri-info-card{
  background:#fff;border:1px solid var(--portal-line);border-radius:var(--portal-r-md);
  box-shadow:var(--portal-sh-1);transition:box-shadow .18s ease,transform .18s ease;
}
.nri-portal-order-page .nri-info-card:hover{box-shadow:var(--portal-sh-2);transform:translateY(-2px);}
.nri-portal-order-page .nri-info-card-mgr{background:linear-gradient(180deg,#f5f7ff,#fff);border-color:#dfe3fb;}

/* Summary bar → "Payments" strip */
.nri-portal-order-page .nri-summary-bar{
  position:relative;border-radius:var(--portal-r-lg);
  border-color:var(--portal-line);box-shadow:var(--portal-sh-1);
  padding-top:26px;
}
.nri-portal-order-page .nri-summary-bar::before{
  content:"Payments & Timeline";
  position:absolute;top:9px;left:20px;font-size:10px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:#94a3b8;
}
.nri-portal-order-page .nri-summary-val{color:var(--portal-ink);}

/* Pipeline → stage/status timeline */
.nri-portal-order-page .nri-pipeline-wrap{
  position:relative;border-radius:var(--portal-r-lg);
  border-color:var(--portal-line);box-shadow:var(--portal-sh-1);
  padding-top:30px;overflow-x:auto;
}
.nri-portal-order-page .nri-pipeline-wrap::before{
  content:"Current Stage";
  position:absolute;top:10px;left:20px;font-size:10px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:#94a3b8;
}
.nri-portal-order-page .nri-pipeline-circle{border-width:2px;}
.nri-portal-order-page .nri-pipeline-node.nri-current .nri-pipeline-circle{
  animation:nriPulseRing 1.8s ease-out infinite;
}
@keyframes nriPulseRing{
  0%{box-shadow:0 0 0 0 rgba(0,180,216,.35);}
  100%{box-shadow:0 0 0 8px rgba(0,180,216,0);}
}

/* Tabs + panels */
.nri-portal-order-page .nri-order-tabs-wrap{
  border-radius:var(--portal-r-lg);border-color:var(--portal-line);box-shadow:var(--portal-sh-1);
}
.nri-portal-order-page .nri-order-tabs{background:#fafbff;}
.nri-portal-order-page .nri-ot{border-radius:var(--portal-r-sm) var(--portal-r-sm) 0 0;}
.nri-portal-order-page .nri-ot:hover{background:#f1f3fc;color:var(--portal-accent-dark);}
.nri-portal-order-page .nri-ot.active{
  color:var(--portal-accent-dark);border-bottom-color:var(--portal-accent);background:#fff;
}

/* Documents panel */
.nri-portal-order-page .nri-doc-section-btn{background:#fafbff;}
.nri-portal-order-page .nri-doc-entry{transition:background .15s ease;}
.nri-portal-order-page .nri-doc-entry:hover{background:#f8f9ff;}
.nri-portal-order-page .nri-dl-btn{transition:transform .15s ease,background .15s ease;}
.nri-portal-order-page .nri-dl-btn:hover{background:var(--portal-teal);color:#fff!important;transform:scale(1.08);}

/* Messages panel */
.nri-portal-order-page .nri-order-history-hdr{
  background:linear-gradient(135deg,var(--portal-accent),var(--portal-teal));
}
.nri-portal-order-page .nri-msg-mine .nri-msg-bubble{
  background:linear-gradient(135deg,var(--portal-accent),#4338ca);
}
.nri-portal-order-page .nri-msg-input-area{background:#fafbff;}

/* ── Mobile-first refinements (app-like, not squeezed) ── */
@media(max-width:600px){
  .nri-portal-nav{border-radius:0;margin:0 -16px 16px;padding:10px 16px;}
  .nri-portal-hero{padding:16px;border-radius:var(--portal-r-md);}
  .nri-portal-stats{overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px;-webkit-overflow-scrolling:touch;}
  .nri-portal-stat{flex:0 0 auto;}
  .nri-portal-order-page .nri-info-row{grid-template-columns:1fr 1fr;}
  .nri-portal-order-page .nri-order-hdr{padding:14px 16px;border-radius:var(--portal-r-md);}
  .nri-portal-panel{padding:16px;}
}
@media(max-width:400px){
  .nri-portal-order-page .nri-info-row{grid-template-columns:1fr;}
}

/* ══════════════════════════════════════════════════════════════════════════
   CLIENT PORTAL — HEADER + SIDEBAR SHELL (BookMyTranscript dashboard redesign)
   Adds a top header bar and a left sidebar (bottom nav on mobile) around the
   existing #nri-client-tab-container. The container itself, and everything
   the SPA controller swaps in and out of it, is untouched — this only wraps
   it in new chrome. See nri_client_portal_header()/nri_client_portal_sidebar()
   in includes/shortcodes.php.
   ══════════════════════════════════════════════════════════════════════════ */

.nri-portal-topbar{
  display:flex;align-items:center;justify-content:space-between;
  background:#fff;border-bottom:1px solid var(--portal-line);
  padding:12px clamp(16px,3vw,32px);position:sticky;top:0;z-index:100;
  box-shadow:var(--portal-sh-1);
}
.nri-portal-topbar-brand a{display:flex;align-items:center;gap:10px;color:var(--portal-ink);text-decoration:none;font-weight:800;font-size:16px;letter-spacing:-.2px;}
.nri-portal-topbar-brand .nri-portal-brand-mark{width:34px;height:34px;border-radius:9px;font-size:17px;}
.nri-portal-topbar-right{display:flex;align-items:center;gap:16px;}
.nri-portal-bell{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:#f1f5f9;font-size:16px;text-decoration:none;color:var(--portal-ink);}
.nri-portal-bell-badge{position:absolute;top:-2px;right:-2px;background:#ef4444;color:#fff;font-size:10px;font-weight:700;min-width:17px;height:17px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px;}
.nri-portal-userbox{position:relative;display:flex;align-items:center;gap:10px;padding:4px 8px 4px 4px;border-radius:999px;cursor:pointer;}
.nri-portal-userbox:hover{background:#f8fafc;}
.nri-portal-userbox-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--portal-accent),var(--portal-teal));color:#fff;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.nri-portal-userbox-text{display:flex;flex-direction:column;line-height:1.25;}
.nri-portal-userbox-name{font-size:13px;font-weight:700;color:var(--portal-ink);}
.nri-portal-userbox-email{font-size:11.5px;color:#94a3b8;}
.nri-portal-userbox-caret{font-size:11px;color:#94a3b8;}
.nri-portal-userbox-menu{
  position:absolute;top:calc(100% + 8px);right:0;background:#fff;border:1px solid var(--portal-line);
  border-radius:var(--portal-r-md);box-shadow:var(--portal-sh-3);min-width:170px;padding:6px;
  display:flex;flex-direction:column;opacity:0;visibility:hidden;transform:translateY(-4px);
  transition:opacity .15s ease,transform .15s ease,visibility .15s;z-index:60;
}
.nri-portal-userbox:hover .nri-portal-userbox-menu,
.nri-portal-userbox:focus-within .nri-portal-userbox-menu{opacity:1;visibility:visible;transform:translateY(0);}
.nri-portal-userbox-menu a{padding:9px 12px;border-radius:8px;font-size:13px;color:var(--portal-ink);text-decoration:none;}
.nri-portal-userbox-menu a:hover{background:#f1f5f9;}

.nri-portal-body{display:flex;align-items:flex-start;gap:0;max-width:1600px;margin:0 auto;}
.nri-portal-sidebar{
  width:230px;flex:0 0 230px;background:#fff;border-right:1px solid var(--portal-line);
  min-height:calc(100vh - 60px);position:sticky;top:60px;padding:18px 12px;
}
.nri-portal-sidenav{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;}
.nri-portal-sidenav-link{
  display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:var(--portal-r-md);
  color:#475569;text-decoration:none;font-size:14px;font-weight:600;transition:background .15s,color .15s;
}
.nri-portal-sidenav-link:hover{background:#f1f5f9;color:var(--portal-ink);}
.nri-portal-sidenav-link.active{background:var(--portal-accent);color:#fff;box-shadow:0 4px 10px rgba(79,70,229,.28);}
.nri-portal-sidenav-icon{font-size:17px;width:20px;text-align:center;flex:0 0 auto;}

.nri-portal-main{flex:1 1 auto;min-width:0;padding:clamp(16px,2.4vw,28px);}

/* ── Welcome hero banner (illustrated) ── */
.nri-portal-hero-banner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 32px;overflow:hidden;position:relative;}
.nri-portal-hero-text{flex:1 1 380px;min-width:0;}
.nri-portal-hero-title{margin:0 0 8px;font-size:clamp(20px,2vw,26px);font-weight:800;color:var(--portal-ink);}
.nri-portal-hero-sub{margin:0 0 18px;color:#64748b;font-size:14.5px;max-width:520px;line-height:1.6;}
.nri-portal-hero-actions{display:flex;gap:10px;flex-wrap:wrap;}
.nri-portal-hero-illus-wrap{flex:0 0 auto;width:200px;max-width:38%;}
.nri-portal-hero-illus{width:100%;height:auto;display:block;}
@media(max-width:760px){ .nri-portal-hero-illus-wrap{display:none;} }

/* ── 4 stat cards ── */
.nri-portal-stats4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0;}
.nri-portal-stat4{
  background:#fff;border:1px solid var(--portal-line);border-radius:var(--portal-r-md);
  padding:16px 18px;display:flex;align-items:center;gap:12px;box-shadow:var(--portal-sh-1);
  transition:transform .18s ease,box-shadow .18s ease;
}
.nri-portal-stat4:hover{transform:translateY(-2px);box-shadow:var(--portal-sh-2);}
.nri-portal-stat4-icon{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:19px;flex:0 0 auto;}
.nri-stat4-blue{background:#e0e7ff;} .nri-stat4-amber{background:#fef3c7;} .nri-stat4-green{background:#d1fae5;} .nri-stat4-purple{background:#ede9fe;}
.nri-portal-stat4-label{display:block;font-size:12.5px;color:#64748b;font-weight:600;}
.nri-portal-stat4-val{display:block;font-size:22px;font-weight:800;color:var(--portal-ink);}
@media(max-width:900px){ .nri-portal-stats4{grid-template-columns:repeat(2,1fr);} }
@media(max-width:480px){ .nri-portal-stats4{grid-template-columns:1fr 1fr;gap:10px;} .nri-portal-stat4{padding:12px;} }

/* ── Two-column layout ── */
.nri-portal-2col{display:grid;grid-template-columns:1fr 320px;gap:22px;align-items:start;}
@media(max-width:980px){ .nri-portal-2col{grid-template-columns:1fr;} }
.nri-portal-viewall{text-decoration:none;}

/* ── Recent request rows ── */
.nri-portal-req-list{display:flex;flex-direction:column;gap:12px;}
.nri-req-row-link{text-decoration:none!important;}
.nri-portal-req-row{
  display:flex;align-items:stretch;gap:16px;background:#fff;border:1px solid var(--portal-line);
  border-radius:var(--portal-r-md);padding:16px 18px;box-shadow:var(--portal-sh-1);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.nri-portal-req-row:hover{transform:translateY(-2px);box-shadow:var(--portal-sh-2);border-color:#c7d2fe;}
.nri-req-row-date{flex:0 0 auto;width:56px;text-align:center;border-right:1px solid var(--portal-line);padding-right:14px;}
.nri-req-row-day{display:block;font-size:20px;font-weight:800;color:var(--portal-ink);line-height:1.1;}
.nri-req-row-mon{display:block;font-size:11px;color:#94a3b8;font-weight:600;line-height:1.3;margin-top:2px;}
.nri-req-row-body{flex:1 1 auto;min-width:0;}
.nri-req-row-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px;}
.nri-req-row-num{font-size:13px;font-weight:700;color:var(--portal-accent-dark);}
.nri-req-row-title{font-size:15.5px;font-weight:700;color:var(--portal-ink);margin-bottom:8px;}
.nri-req-row-meta{display:flex;flex-wrap:wrap;gap:14px;font-size:12.5px;color:#64748b;}
.nri-req-row-cta{flex:0 0 auto;align-self:center;}
@media(max-width:640px){
  .nri-portal-req-row{flex-direction:column;}
  .nri-req-row-date{display:flex;align-items:center;gap:6px;width:auto;border-right:none;border-bottom:1px solid var(--portal-line);padding:0 0 10px;}
  .nri-req-row-cta{align-self:flex-start;margin-top:6px;}
}

/* ── Our Services grid ── */
.nri-portal-services-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;}
@media(max-width:900px){ .nri-portal-services-grid{grid-template-columns:repeat(3,1fr);} }
@media(max-width:520px){ .nri-portal-services-grid{grid-template-columns:repeat(2,1fr);} }
.nri-portal-svc-card{
  display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;
  background:#fff;border:1px solid var(--portal-line);border-radius:var(--portal-r-md);
  padding:16px 10px;text-decoration:none;color:var(--portal-ink);font-size:12.5px;font-weight:600;
  box-shadow:var(--portal-sh-1);transition:transform .18s ease,box-shadow .18s ease;
}
.nri-portal-svc-card:hover{transform:translateY(-2px);box-shadow:var(--portal-sh-2);}
.nri-portal-svc-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;}
.nri-svc-blue{background:#e0e7ff;} .nri-svc-green{background:#d1fae5;} .nri-svc-purple{background:#ede9fe;}

/* ── Right column panels ── */
.nri-portal-col-side{display:flex;flex-direction:column;gap:16px;}
.nri-portal-panel-title{margin:0 0 12px;font-size:14.5px;font-weight:700;color:var(--portal-ink);}
.nri-portal-quick-actions .nri-portal-qa-btn{
  display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;background:#f8fafc;
  border:1px solid var(--portal-line);border-radius:var(--portal-r-md);padding:12px 14px;
  text-decoration:none;color:var(--portal-ink);font-size:13.5px;font-weight:700;margin-bottom:10px;
  position:relative;cursor:pointer;
}
.nri-portal-qa-primary{background:linear-gradient(135deg,var(--portal-accent),#4338ca);color:#fff;border-color:transparent;}
.nri-portal-qa-primary small{color:rgba(255,255,255,.8);}
.nri-portal-qa-btn small{font-weight:500;color:#94a3b8;font-size:11.5px;}
.nri-portal-qa-arrow{position:absolute;right:14px;top:50%;transform:translateY(-50%);opacity:.7;}
.nri-portal-help-card,.nri-portal-track-card{font-size:13px;color:#475569;}
.nri-portal-help-card p,.nri-portal-track-card p{margin:0 0 12px;line-height:1.6;}
.nri-portal-track-card{background:linear-gradient(180deg,#f0fdf4,#fff);border-color:#bbf7d0;}
.nri-portal-track-link{color:var(--portal-accent-dark);font-weight:700;text-decoration:none;font-size:13px;}

/* ── Documents / Payments / Updates compact list rows ── */
.nri-portal-doc-list{display:flex;flex-direction:column;gap:8px;margin-bottom:22px;}
.nri-portal-doc-row{
  display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--portal-line);
  border-radius:var(--portal-r-sm);padding:10px 14px;text-decoration:none!important;color:var(--portal-ink);
  font-size:13px;box-shadow:var(--portal-sh-1);
}
.nri-portal-doc-row:hover{border-color:#c7d2fe;}
.nri-portal-doc-icon{flex:0 0 auto;}
.nri-portal-doc-name{flex:1 1 auto;font-weight:600;}
.nri-portal-doc-req{flex:0 0 auto;font-size:11.5px;color:#94a3b8;font-weight:600;}

/* ── Mobile: sidebar becomes a fixed bottom nav ──────────────────────────
   Each item now reads as its own small button card (border + background +
   shadow), not bare icon-over-text floating on the bar — matches the
   "professional/premium" bottom-nav look, and edge fades hint that the
   strip scrolls sideways since 8 items don't all fit at once on a phone. */
@media(max-width:860px){
  .nri-portal-body{flex-direction:column;}
  .nri-portal-sidebar{
    position:fixed;bottom:0;left:0;right:0;top:auto;width:100%;min-height:0;
    display:flex;padding:8px 6px calc(8px + env(safe-area-inset-bottom,0px));
    border-right:none;border-top:1px solid var(--portal-line);z-index:55;
    background:#fff;
    box-shadow:0 -6px 18px rgba(15,23,42,.10);
  }
  .nri-portal-sidenav{
    flex-direction:row;flex-wrap:nowrap;overflow-x:auto;width:100%;gap:8px;
    -ms-overflow-style:none;scrollbar-width:none; /* hide scrollbar, edge fades below hint scrollability instead */
    -webkit-overflow-scrolling:touch; /* momentum/inertia swipe on iOS Safari — without this a long swipe just stops dead */
    scroll-snap-type:x proximity; /* a swipe eases to rest on the nearest button instead of stopping mid-item */
    scroll-padding-inline:6px;
  }
  .nri-portal-sidenav::-webkit-scrollbar{display:none;}
  .nri-portal-sidenav li{flex:0 0 auto;scroll-snap-align:start;}
  .nri-portal-sidenav-link{
    flex-direction:column;gap:4px;align-items:center;justify-content:center;
    padding:9px 14px;min-width:66px;
    background:#fbfcff;border:1px solid var(--portal-line);border-radius:12px;
    box-shadow:0 1px 3px rgba(15,23,42,.05);
    transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,background .15s ease;
  }
  .nri-portal-sidenav-link:active{transform:scale(.96);}
  .nri-portal-sidenav-link:hover{border-color:#c7d2fe;box-shadow:0 3px 8px rgba(15,23,42,.08);}
  .nri-portal-sidenav-link.active{
    background:linear-gradient(135deg,var(--portal-accent),#4338ca);
    border-color:transparent;
    box-shadow:0 6px 14px rgba(79,70,229,.32);
  }
  .nri-portal-sidenav-icon{font-size:18px;line-height:1;}
  .nri-portal-sidenav-label{font-size:10.5px;font-weight:700;letter-spacing:.01em;white-space:nowrap;}
  .nri-portal-main{padding-bottom:88px;}
  .nri-portal-userbox-text{display:none;}
}
/* Fade hint at both edges of the scrollable strip — sits on the bar itself,
   above the buttons, so the row still ends flush with real padding. */
@media(max-width:860px){
  /* No position:relative needed here — .nri-portal-sidebar is already
     position:fixed (set above), which is itself a valid containing block
     for these ::before/::after absolutely-positioned fades. A redundant
     position:relative here previously OVERRODE that position:fixed (same
     selector, later rule in the cascade wins on a tie), which is exactly
     what pushed the whole bottom nav back into normal document flow at
     the top of the page instead of pinned to the bottom. */
  .nri-portal-sidebar::before,
  .nri-portal-sidebar::after{
    content:"";position:absolute;top:0;bottom:0;width:20px;z-index:2;pointer-events:none;
  }
  .nri-portal-sidebar::before{left:0;background:linear-gradient(90deg,#fff,rgba(255,255,255,0));}
  .nri-portal-sidebar::after{right:0;background:linear-gradient(270deg,#fff,rgba(255,255,255,0));}
}
@media(max-width:400px){
  .nri-portal-sidenav-link{padding:8px 11px;min-width:58px;}
  .nri-portal-sidenav-icon{font-size:16px;}
  .nri-portal-sidenav-label{font-size:10px;}
}

/* ══════════════════════════════════════════════════════════════════════
   PREMIUM FORMS LAYER  (request wizard + standalone quote form)
   Visual only: every class/id/JS hook above is preserved. Motion is
   limited to short transform/opacity transitions (GPU-cheap) and is
   switched off under prefers-reduced-motion.
   ══════════════════════════════════════════════════════════════════════ */
.nri-form-page,.nri-sl-outer{
  --f-ink:#0f172a;--f-body:#475569;--f-mute:#64748b;--f-line:#e2e8f0;--f-fill:#f8fafc;
  --f-brand:#4f46e5;--f-brand-d:#1a1a6e;--f-brand-soft:#eef2ff;--f-accent:#f59e0b;
  --f-ok:#059669;--f-err:#dc2626;--f-err-soft:#fef2f2;
  --f-ease:cubic-bezier(.22,.9,.3,1);
}

/* ── Hero ─────────────────────────────────────────────── */
.nri-form-page{max-width:800px;position:relative;}
.nri-form-page::before{content:"";position:absolute;left:50%;top:-10px;width:min(680px,100%);height:260px;transform:translateX(-50%);
  background:radial-gradient(60% 70% at 50% 0%,rgba(79,70,229,.14),rgba(79,70,229,0) 70%),radial-gradient(35% 50% at 82% 10%,rgba(245,158,11,.12),rgba(245,158,11,0) 70%);pointer-events:none;z-index:0;}
.nri-form-page>*{position:relative;z-index:1;}
.nri-form-hero{padding:28px 0 26px;}
.nri-hero-eyebrow{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:999px;background:#fff;border:1px solid var(--f-line);
  font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--f-brand);box-shadow:0 1px 2px rgba(15,23,42,.05);margin-bottom:14px;}
.nri-hero-dot{width:7px;height:7px;border-radius:50%;background:var(--f-accent);box-shadow:0 0 0 0 rgba(245,158,11,.5);animation:nriPulse 2.4s ease-out infinite;}
.nri-form-hero h1{font-size:clamp(26px,5vw,38px);line-height:1.12;letter-spacing:-.025em;font-weight:800;color:var(--f-ink);margin:0 0 10px;}
.nri-form-hero h1 em{font-style:normal;background:linear-gradient(100deg,var(--f-brand) 0%,#7c3aed 55%,var(--f-accent) 120%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;}
.nri-form-hero p{font-size:15.5px;line-height:1.6;color:var(--f-body);max-width:520px;margin:0 auto;}
.nri-trust-row{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 18px;margin:18px 0 0;padding:0;}
.nri-trust-row li{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--f-body);}
.nri-trust-row svg,.nri-form-foot svg{width:16px;height:16px;fill:none;stroke:var(--f-brand);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto;}

/* ── Card ─────────────────────────────────────────────── */
.nri-wizard-wrap{border:1px solid rgba(226,232,240,.9);border-radius:20px;overflow:hidden;
  box-shadow:0 1px 2px rgba(15,23,42,.04),0 12px 32px -8px rgba(30,41,120,.14),0 32px 64px -24px rgba(30,41,120,.18);background:#fff;}
.nri-progress-track{height:4px;background:var(--f-line);overflow:hidden;}
.nri-progress-fill{display:block;height:100%;width:100%;--p:.25;transform-origin:0 50%;transform:scaleX(var(--p));
  background:linear-gradient(90deg,var(--f-brand),#7c3aed 60%,var(--f-accent));transition:transform .45s var(--f-ease);will-change:transform;}
.nri-sl-card .nri-progress-track{height:3px;}

/* ── Step indicator ───────────────────────────────────── */
.nri-steps-bar{background:linear-gradient(180deg,#fff,var(--f-fill));padding:20px 28px 16px;}
.nri-step-dot{width:36px;height:36px;font-size:13.5px;background:#fff;border:2px solid var(--f-line);color:var(--f-mute);transition:transform .25s var(--f-ease),background .25s,border-color .25s,box-shadow .25s,color .25s;}
.nri-step.nri-step-active .nri-step-dot{background:linear-gradient(135deg,var(--f-brand-d),var(--f-brand));border-color:transparent;color:#fff;transform:scale(1.08);box-shadow:0 0 0 5px rgba(79,70,229,.14),0 6px 14px -4px rgba(79,70,229,.55);}
.nri-step.nri-step-done .nri-step-dot{background:var(--f-ok);border-color:transparent;color:#fff;font-size:0;}
.nri-step.nri-step-done .nri-step-dot::after{content:"";width:11px;height:6px;border-left:2.5px solid #fff;border-bottom:2.5px solid #fff;transform:rotate(-45deg) translate(1px,-1px);}
.nri-step-label{font-size:11.5px;letter-spacing:.01em;}
.nri-step.nri-step-active .nri-step-label{color:var(--f-brand-d);}
.nri-step.nri-step-done .nri-step-label{color:var(--f-ok);}
.nri-step-line{height:3px;border-radius:3px;background:var(--f-line);margin-bottom:22px;}
.nri-step-line.nri-step-line-done{background:linear-gradient(90deg,var(--f-ok),#34d399);}

/* ── Step body ────────────────────────────────────────── */
.nri-wizard-step{padding:30px 36px 28px;animation:nriStepIn .34s var(--f-ease) both;}
.nri-step-head{margin:0 0 22px;}
.nri-step-kicker{display:block;font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--f-brand);margin-bottom:6px;}
.nri-step-title{font-size:23px;line-height:1.2;font-weight:800;letter-spacing:-.02em;color:var(--f-ink);margin:0;}
.nri-step-sub{margin:6px 0 0;font-size:14px;line-height:1.5;color:var(--f-mute);}
.nri-step-fields{gap:0 22px;}

/* ── Fields ───────────────────────────────────────────── */
.nri-wizard-form .nri-field{gap:7px;margin-bottom:18px;position:relative;}
.nri-wizard-form .nri-field>label{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;letter-spacing:.005em;color:var(--f-ink);transition:color .2s;}
.nri-wizard-form .nri-field:focus-within>label{color:var(--f-brand);}
.nri-wizard-form .nri-req{color:var(--f-err);font-weight:800;}
.nri-opt{margin-left:auto;font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8;background:var(--f-fill);border:1px solid var(--f-line);padding:1px 7px;border-radius:999px;}
.nri-wizard-form .nri-field input[type=text],.nri-wizard-form .nri-field input[type=email],.nri-wizard-form .nri-field input[type=tel],
.nri-wizard-form .nri-field input[type=number],.nri-wizard-form .nri-field input[type=date],.nri-wizard-form .nri-field select,.nri-wizard-form .nri-field textarea{
  min-height:48px;padding:12px 15px;font-size:15px;line-height:1.4;color:var(--f-ink);background-color:var(--f-fill);
  border:1.5px solid var(--f-line);border-radius:12px;box-shadow:inset 0 1px 2px rgba(15,23,42,.03);
  transition:border-color .18s,background-color .18s,box-shadow .18s;}
.nri-wizard-form .nri-field textarea{min-height:104px;resize:vertical;}
.nri-wizard-form .nri-field input:hover,.nri-wizard-form .nri-field select:hover,.nri-wizard-form .nri-field textarea:hover{border-color:#cbd5e1;background-color:#fff;}
.nri-wizard-form .nri-field input:focus,.nri-wizard-form .nri-field select:focus,.nri-wizard-form .nri-field textarea:focus{
  background-color:#fff;border-color:var(--f-brand);box-shadow:0 0 0 4px rgba(79,70,229,.14);outline:none;}
.nri-wizard-form .nri-field input::placeholder,.nri-wizard-form .nri-field textarea::placeholder{color:#94a3b8;}
/* custom select chevron */
.nri-wizard-form .nri-field select{appearance:none;-webkit-appearance:none;padding-right:42px;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:16px;}
/* leading icons by field type */
.nri-wizard-form .nri-ft-email input,.nri-wizard-form .nri-ft-number input,.nri-wizard-form .nri-ft-searchable .nri-sf-input{padding-left:44px;background-repeat:no-repeat;background-position:15px center;background-size:18px;}
.nri-wizard-form .nri-ft-email input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2.5'/%3E%3Cpath d='M3.5 7l8.5 6 8.5-6'/%3E%3C/svg%3E");}
.nri-wizard-form .nri-ft-number input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 9h14M5 15h14M10 4L8 20M16 4l-2 16'/%3E%3C/svg%3E");}
.nri-wizard-form .nri-ft-searchable .nri-sf-input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E");}
.nri-wizard-form .nri-ft-email:focus-within input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234f46e5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2.5'/%3E%3Cpath d='M3.5 7l8.5 6 8.5-6'/%3E%3C/svg%3E");}
/* searchable dropdown panel */
.nri-wizard-form .nri-sf-dropdown{border:1px solid var(--f-line);border-radius:12px;box-shadow:0 16px 36px -10px rgba(15,23,42,.25);overflow-x:hidden;overflow-y:auto;max-height:260px;margin-top:6px;}
/* phone group */
.nri-wizard-form .nri-phone-wrap{gap:10px!important;}
.nri-wizard-form .nri-phone-wrap select.nri-phone-code{min-height:48px;width:118px!important;padding:12px 34px 12px 12px;font-size:14px;font-weight:600;background-position:right 10px center;}
/* helper text */
.nri-wizard-form .nri-hint-sm,.nri-wizard-form .nri-field-desc{font-size:12.5px!important;line-height:1.5;color:var(--f-mute)!important;margin:0!important;}

/* ── Radio options become selectable cards ────────────── */
.nri-wizard-form .nri-radio-group{gap:10px;}
.nri-wizard-form .nri-radio-opt{position:relative;padding:11px 16px 11px 14px;border:1.5px solid var(--f-line);border-radius:12px;background:var(--f-fill);font-size:14px;font-weight:600;color:var(--f-body);
  transition:border-color .18s,background .18s,box-shadow .18s,transform .18s var(--f-ease);min-height:46px;}
.nri-wizard-form .nri-radio-opt:hover{border-color:#a5b4fc;background:#fff;transform:translateY(-1px);}
.nri-wizard-form .nri-radio-opt input[type=radio]{accent-color:var(--f-brand);width:18px;height:18px;margin:0;flex:0 0 auto;}
.nri-wizard-form .nri-radio-opt span{padding:0!important;font-size:14px!important;}
.nri-wizard-form .nri-radio-opt:has(input:checked){border-color:var(--f-brand);background:var(--f-brand-soft);color:var(--f-brand-d);box-shadow:0 0 0 3px rgba(79,70,229,.12);}
.nri-wizard-form .nri-radio-opt:focus-within{box-shadow:0 0 0 4px rgba(79,70,229,.2);}

/* ── Dropzone ─────────────────────────────────────────── */
.nri-wizard-form .nri-dropzone{border:2px dashed #c7d2fe;border-radius:16px;background:linear-gradient(180deg,#fafaff,var(--f-brand-soft));transition:border-color .2s,background .2s,transform .2s var(--f-ease),box-shadow .2s;}
.nri-wizard-form .nri-dropzone:hover,.nri-wizard-form .nri-dropzone.dragover{border-color:var(--f-brand);background:#eef2ff;box-shadow:0 10px 24px -12px rgba(79,70,229,.45);}
.nri-wizard-form .nri-dropzone.dragover{transform:scale(1.01);}
.nri-wizard-form .nri-dz-inner{padding:30px 20px;color:var(--f-body);}
.nri-wizard-form .nri-dz-icon{width:54px;height:54px;margin:0 auto 10px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:24px;background:#fff;box-shadow:0 6px 16px -6px rgba(79,70,229,.4);transition:transform .25s var(--f-ease);}
.nri-wizard-form .nri-dropzone:hover .nri-dz-icon{transform:translateY(-3px);}
.nri-wizard-form .nri-dz-inner p{margin:4px 0;font-size:14.5px;}
.nri-wizard-form .nri-link{color:var(--f-brand);font-weight:700;text-decoration:none;border-bottom:2px solid rgba(79,70,229,.3);}
.nri-wizard-form .nri-link:hover{border-bottom-color:var(--f-brand);}
.nri-wizard-form .nri-prog-bar{height:6px;border-radius:6px;background:var(--f-line);overflow:hidden;}
.nri-wizard-form .nri-prog-fill{background:linear-gradient(90deg,var(--f-brand),#7c3aed);border-radius:6px;}

/* ── Validation states ────────────────────────────────── */
.nri-wizard-form .nri-field.nri-invalid input,.nri-wizard-form .nri-field.nri-invalid select,.nri-wizard-form .nri-field.nri-invalid textarea{
  border-color:var(--f-err);background-color:var(--f-err-soft);box-shadow:0 0 0 4px rgba(220,38,38,.1);}
.nri-wizard-form .nri-field.nri-invalid>label{color:var(--f-err);}
.nri-wizard-form .nri-field.nri-invalid .nri-radio-opt{border-color:#fecaca;}
.nri-wizard-form .nri-field.nri-valid input[type=text],.nri-wizard-form .nri-field.nri-valid input[type=tel],.nri-wizard-form .nri-field.nri-valid select,.nri-wizard-form .nri-field.nri-valid textarea{border-color:#a7f3d0;}
.nri-field-err{margin:0;font-size:12.5px;font-weight:600;color:var(--f-err);display:flex;align-items:center;gap:6px;animation:nriFadeUp .2s var(--f-ease) both;}
.nri-field-err::before{content:"!";display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;background:var(--f-err);color:#fff;font-size:10px;font-weight:800;flex:0 0 auto;}
.nri-field.nri-invalid input{animation:nriShake .32s ease both;}
.nri-step-notice{margin-top:6px;padding:12px 16px;border-radius:12px;background:var(--f-err-soft);border:1px solid #fecaca;color:#991b1b;font-size:13.5px;font-weight:600;animation:nriFadeUp .22s var(--f-ease) both;}
.nri-wizard-form .nri-alert-error{border-radius:12px;}

/* ── Navigation + CTA ─────────────────────────────────── */
.nri-wizard-form .nri-step-nav{margin-top:26px;padding-top:22px;border-top:1px solid var(--f-line);gap:12px;}
.nri-wizard-form .nri-btn{min-height:48px;padding:12px 24px;border-radius:12px;font-size:15px;font-weight:700;letter-spacing:.005em;justify-content:center;
  transition:transform .15s var(--f-ease),box-shadow .2s,background .2s,border-color .2s,color .2s,opacity .2s;}
.nri-wizard-form .nri-btn-primary{color:#fff;border:none;background:linear-gradient(135deg,var(--f-brand-d) 0%,var(--f-brand) 70%,#6d5ff5 100%);
  box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 8px 20px -6px rgba(79,70,229,.6);}
.nri-wizard-form .nri-btn-primary:hover{transform:translateY(-1px);box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 12px 26px -6px rgba(79,70,229,.7);}
.nri-wizard-form .nri-btn-primary:active{transform:translateY(1px) scale(.985);box-shadow:0 3px 8px -3px rgba(79,70,229,.6);}
.nri-wizard-form .nri-btn-primary:focus-visible,.nri-wizard-form .nri-btn-ghost:focus-visible{outline:3px solid rgba(79,70,229,.35);outline-offset:3px;}
.nri-wizard-form .nri-btn-primary:disabled{opacity:.7;cursor:progress;transform:none;}
.nri-wizard-form .nri-btn-ghost{background:#fff;border:1.5px solid var(--f-line);color:var(--f-body);}
.nri-wizard-form .nri-btn-ghost:hover{border-color:#cbd5e1;background:var(--f-fill);color:var(--f-ink);}
.nri-wizard-form .nri-step-nav .nri-wizard-next{margin-left:auto;}
.nri-cta{min-width:200px;}
.nri-cta .nri-bt{display:inline-flex;align-items:center;gap:9px;}
.nri-cta-ico{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s var(--f-ease);}
.nri-cta:hover .nri-cta-ico{transform:translateX(4px);}
.nri-wizard-form .nri-bl{display:inline-flex;align-items:center;gap:10px;}
.nri-wizard-form .nri-bl::before{content:"";width:16px;height:16px;border-radius:50%;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;animation:nriSpin .7s linear infinite;}
.nri-form-foot{display:flex;align-items:center;justify-content:center;gap:8px;margin:16px 0 0;font-size:12.5px;font-weight:600;color:var(--f-mute);}

/* ── Standalone quote card ────────────────────────────── */
.nri-sl-card{border-radius:20px;}
.nri-sl-card-hdr{background:linear-gradient(135deg,#14145a 0%,#3730a3 55%,#6d28d9 120%);padding:22px 26px 20px;position:relative;overflow:hidden;}
.nri-sl-card-hdr::after{content:"";position:absolute;right:-30px;top:-40px;width:140px;height:140px;border-radius:50%;background:radial-gradient(circle,rgba(245,158,11,.45),rgba(245,158,11,0) 70%);pointer-events:none;}
.nri-sl-card-title{font-size:20px;font-weight:800;letter-spacing:-.02em;position:relative;}
.nri-sl-steps{padding:14px 22px 12px;background:linear-gradient(180deg,#fff,var(--f-fill));}
.nri-sl-step-dot{width:30px;height:30px;background:#fff;border:2px solid var(--f-line);transition:transform .25s var(--f-ease),box-shadow .25s,background .25s;}
.nri-sl-step-active .nri-sl-step-dot{border-color:transparent;transform:scale(1.08);box-shadow:0 0 0 4px rgba(79,70,229,.14),0 5px 12px -3px rgba(79,70,229,.55);}
.nri-sl-step-done .nri-sl-step-dot{border-color:transparent;}
.nri-sl-step-lbl{font-size:9.5px;}
.nri-sl-step-line{height:3px;border-radius:3px;margin-bottom:16px;}
.nri-sl-line-done{background:linear-gradient(90deg,#10b981,#34d399);}
.nri-sl-wizard-step{padding:18px 22px 0;animation:nriStepIn .34s var(--f-ease) both;}
.nri-sl-step-heading{font-size:14px;padding-bottom:12px;margin-bottom:14px;}
.nri-sl-fields .nri-field{margin-bottom:14px;}
.nri-sl-form .nri-field input[type=text],.nri-sl-form .nri-field input[type=email],.nri-sl-form .nri-field input[type=tel],.nri-sl-form .nri-field input[type=number],
.nri-sl-form .nri-field select,.nri-sl-form .nri-field textarea{min-height:44px;font-size:14px;padding:10px 13px;border-radius:11px;}
.nri-sl-form .nri-ft-email input,.nri-sl-form .nri-ft-number input,.nri-sl-form .nri-ft-searchable .nri-sf-input{padding-left:42px;}
.nri-sl-form .nri-field select{padding-right:38px;}
.nri-sl-form .nri-phone-wrap select.nri-phone-code{min-height:44px;}
.nri-sl-nav{padding:14px 22px 18px;}
.nri-sl-btn-back,.nri-sl-btn-next,.nri-sl-btn-submit{min-height:46px;border-radius:12px;font-family:inherit;transition:transform .15s var(--f-ease),box-shadow .2s,border-color .2s,color .2s,opacity .2s;}
.nri-sl-btn-back{font-weight:700;border:1.5px solid var(--f-line);color:var(--f-body);background:#fff;}
.nri-sl-btn-next,.nri-sl-btn-submit{background:linear-gradient(135deg,#14145a 0%,#4f46e5 75%,#6d5ff5 100%);box-shadow:0 8px 20px -6px rgba(79,70,229,.6);font-size:14.5px;}
.nri-sl-btn-next{padding:11px 26px;}
.nri-sl-btn-next:hover,.nri-sl-btn-submit:hover{opacity:1;transform:translateY(-1px);box-shadow:0 12px 26px -6px rgba(79,70,229,.7);}
.nri-sl-btn-next:active,.nri-sl-btn-submit:active,.nri-sl-btn-back:active{transform:translateY(1px) scale(.985);}
.nri-sl-btn-next:focus-visible,.nri-sl-btn-submit:focus-visible,.nri-sl-btn-back:focus-visible{outline:3px solid rgba(79,70,229,.35);outline-offset:3px;}
.nri-sl-btn-submit:disabled{opacity:.7;cursor:progress;transform:none;}
.nri-sl-btn-submit .nri-bl{display:inline-flex;align-items:center;gap:10px;}
.nri-sl-btn-submit .nri-bl::before{content:"";width:15px;height:15px;border-radius:50%;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;animation:nriSpin .7s linear infinite;}

/* ── Motion ───────────────────────────────────────────── */
@keyframes nriStepIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
@keyframes nriFadeUp{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:none;}}
@keyframes nriShake{0%,100%{transform:translateX(0);}25%{transform:translateX(-4px);}60%{transform:translateX(4px);}}
@keyframes nriSpin{to{transform:rotate(360deg);}}
@keyframes nriPulse{0%{box-shadow:0 0 0 0 rgba(245,158,11,.5);}70%,100%{box-shadow:0 0 0 8px rgba(245,158,11,0);}}

/* ── Responsive ───────────────────────────────────────── */
@media(max-width:600px){
  .nri-form-page{padding:12px 12px 24px;}
  .nri-form-hero{padding:18px 0 20px;}
  .nri-form-hero p{font-size:14.5px;}
  .nri-trust-row{gap:6px 14px;}
  .nri-wizard-wrap{border-radius:16px;}
  .nri-steps-bar{padding:16px 12px 12px;}
  .nri-step-dot{width:32px;height:32px;font-size:12.5px;}
  .nri-step-label{font-size:10px;}
  .nri-wizard-step{padding:22px 16px 20px;}
  .nri-step-title{font-size:20px;}
  .nri-wizard-form .nri-field input[type=text],.nri-wizard-form .nri-field input[type=email],.nri-wizard-form .nri-field input[type=tel],
  .nri-wizard-form .nri-field input[type=number],.nri-wizard-form .nri-field select,.nri-wizard-form .nri-field textarea{font-size:16px;} /* stops iOS zoom-on-focus */
  .nri-wizard-form .nri-step-nav{flex-direction:column-reverse;align-items:stretch;}
  .nri-wizard-form .nri-step-nav .nri-btn{width:100%;}
  .nri-wizard-form .nri-step-nav .nri-wizard-next{margin-left:0;}
  .nri-wizard-form .nri-radio-opt{flex:1 1 100%;}
  .nri-sl-wizard-step{padding:16px 16px 0;}
  .nri-sl-nav{padding:12px 16px 16px;}
  .nri-sl-form .nri-field input,.nri-sl-form .nri-field select,.nri-sl-form .nri-field textarea{font-size:16px;}
}
@media(prefers-reduced-motion:reduce){
  .nri-wizard-step,.nri-sl-wizard-step,.nri-field-err,.nri-step-notice,.nri-field.nri-invalid input,.nri-hero-dot{animation:none!important;}
  .nri-progress-fill,.nri-step-dot,.nri-sl-step-dot,.nri-wizard-form .nri-btn,.nri-sl-btn-next,.nri-sl-btn-submit,.nri-wizard-form .nri-radio-opt,.nri-wizard-form .nri-dropzone,.nri-cta-ico{transition:none!important;}
  .nri-wizard-form .nri-btn-primary:hover,.nri-sl-btn-next:hover,.nri-sl-btn-submit:hover,.nri-wizard-form .nri-radio-opt:hover{transform:none!important;}
}

/* ── Premium forms: refinements (specificity + small-screen fixes) ───── */
.nri-wizard-form .nri-field input,.nri-wizard-form .nri-field select,.nri-wizard-form .nri-field textarea{font-family:inherit;}
.nri-wizard-form .nri-field.nri-ft-email input[type=email],.nri-wizard-form .nri-field.nri-ft-number input[type=number],.nri-wizard-form .nri-field.nri-ft-searchable .nri-sf-input{padding-left:44px;}
.nri-sl-form .nri-field.nri-ft-email input[type=email],.nri-sl-form .nri-field.nri-ft-number input[type=number],.nri-sl-form .nri-field.nri-ft-searchable .nri-sf-input{padding-left:42px;}
/* radios must never inherit text-input styling */
.nri-wizard-form .nri-field .nri-radio-opt input[type=radio]{width:18px;min-height:0;height:18px;padding:0;margin:0;border:0;background:none;box-shadow:none;border-radius:50%;flex:0 0 auto;animation:none;}
.nri-wizard-form .nri-field.nri-invalid input[type=radio]{background:none;box-shadow:none;}
.nri-wizard-form .nri-radio-opt{align-items:center;}
.nri-sl-fields .nri-radio-opt span{padding:0;}
/* standalone: step labels wrap instead of colliding */
.nri-sl-step{min-width:0;}
.nri-sl-step-lbl{white-space:normal;max-width:62px;overflow-wrap:anywhere;font-size:9px;}
.nri-sl-card-hdr::after{z-index:0;}
.nri-sl-card-title{position:relative;z-index:1;}
@media(max-width:600px){
  .nri-step{min-width:0;}
  .nri-step-label{white-space:normal;max-width:62px;line-height:1.2;}
  .nri-step-line{margin:0 4px 26px;}
  .nri-sl-fields .nri-radio-group{flex-direction:column;}
}
.nri-sl-form .nri-step-nav.nri-sl-nav{margin:12px 0 0;padding:14px 0 18px;border-top:1px solid var(--f-line);}
@media(max-width:600px){
  .nri-wizard-form .nri-radio-group{flex-direction:column;}
  .nri-wizard-form .nri-radio-opt{flex:0 0 auto;width:100%;}
  .nri-sl-form .nri-step-nav.nri-sl-nav{padding:12px 0 16px;}
}
.nri-wizard-form .nri-field .nri-radio-opt{display:flex;align-items:center;gap:10px;margin:0;font-size:14px;font-weight:600;}

/* ── Numeric inputs: full width, no cramped native spinners ───────────── */
.nri-field input[type=number],.nri-wizard-form .nri-field input[type=number],.nri-sl-form .nri-field input[type=number]{
  width:100%;min-width:0;max-width:none;box-sizing:border-box;height:auto;
  -moz-appearance:textfield;appearance:textfield;font-variant-numeric:tabular-nums;}
.nri-field input[type=number]::-webkit-outer-spin-button,.nri-field input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}

.nri-sf-item.nri-sf-active{background:#eff6ff;color:var(--c-primary);}
.nri-sf-item mark{background:#fef3c7;color:inherit;padding:0 1px;border-radius:2px;font-weight:700;}
.nri-sf-item.nri-sf-empty{color:#64748b;cursor:default;}

/* ── Quotation workflow (admin + client) ─────────────────────────────────── */
.nri-staff-section-wide .nri-q-workspace{width:100%;max-width:100%;min-width:0;box-sizing:border-box;}
.nri-q-workspace,.nri-q-client-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:16px 18px;margin:12px 0 20px;box-shadow:0 1px 3px rgba(15,23,42,.06);}
.nri-q-ws-hdr,.nri-q-client-hdr{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px;}
.nri-q-ws-hdr h3,.nri-q-client-hdr h2{margin:0;font-size:18px;color:#0f172a;}
.nri-q-status-chip{font-size:12px;font-weight:700;padding:6px 12px;border-radius:999px;white-space:nowrap;}
.nri-q-form-body{display:flex;flex-direction:column;gap:12px;width:100%;min-width:0;}
.nri-q-form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;width:100%;}
.nri-q-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#64748b;min-width:0;width:100%;}
.nri-q-workspace .nri-q-field-full{display:flex;flex-direction:column;gap:6px;width:100%;max-width:100%;margin:0;}
.nri-q-workspace .nri-q-field input,.nri-q-workspace .nri-q-field select,.nri-q-workspace .nri-q-field textarea,.nri-q-workspace textarea.nri-q-inp{
  width:100%!important;max-width:100%;min-width:0;box-sizing:border-box;padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;color:#0f172a;display:block;}
.nri-q-workspace textarea.nri-q-inp{min-height:88px;resize:vertical;line-height:1.45;}
.nri-q-total-live{font-size:15px;margin:10px 0 12px;color:#065f46;}
.nri-q-actions{display:flex;flex-direction:column;gap:10px;align-items:stretch;width:100%;}
.nri-q-actions>.nri-btn{align-self:flex-start;}
.nri-q-send-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding-top:4px;border-top:1px solid #f1f5f9;margin-top:4px;}
.nri-q-send-hint{margin:4px 0 0;font-size:13px;color:#64748b;line-height:1.45;}
.nri-q-unavailable{margin:12px 0;}
.nri-q-send-terms{display:flex;align-items:center;gap:6px;font-size:13px;color:#475569;margin:0;flex:1 1 200px;}
.nri-q-accept-meta{list-style:none;margin:8px 0 0;padding:0;font-size:13px;}
.nri-q-accept-meta li{margin:4px 0;}
.nri-q-accept-meta span{color:#64748b;font-size:11px;text-transform:uppercase;letter-spacing:.04em;margin-right:6px;}
.nri-q-client-response{background:#ecfdf5;border:1px solid #bbf7d0;border-radius:10px;padding:12px 14px;margin-bottom:14px;}
.nri-q-response-rejected{background:#fef2f2;border-color:#fecaca;}
.nri-q-client-flash{margin-bottom:12px;padding:12px 14px;border-radius:10px;font-size:14px;font-weight:600;}
.nri-q-client-flash.is-ok{background:#ecfdf5;color:#065f46;border:1px solid #bbf7d0;}
.nri-q-client-flash.is-err{background:#fef2f2;color:#991b1b;border:1px solid #fecaca;}
.nri-staff-notif-wrap{position:relative;margin-right:8px;}
.nri-staff-notif-btn{position:relative;}
.nri-staff-notif-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#dc2626;color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;}
.nri-staff-notif-panel{position:absolute;right:0;top:calc(100% + 8px);width:min(360px,calc(100vw - 32px));max-height:360px;overflow:auto;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 12px 40px rgba(15,23,42,.12);z-index:200;display:none;}
.nri-staff-notif-panel.open{display:block;}
.nri-staff-notif-item{display:block;padding:10px 12px;border-bottom:1px solid #f1f5f9;text-decoration:none!important;color:inherit;}
.nri-staff-notif-item.unread{background:#eff6ff;}
.nri-staff-notif-item strong{display:block;font-size:13px;color:#0f172a;}
.nri-staff-notif-item span{font-size:12px;color:#64748b;}
.nri-q-overview-strip{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px;}
.nri-q-stat-pill{font-size:12px;font-weight:600;padding:6px 12px;border-radius:999px;background:#f1f5f9;color:#334155;cursor:pointer;border:1px solid transparent;}
.nri-q-stat-pill.active{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8;}
.nri-q-msg{margin-top:10px;padding:8px 12px;border-radius:8px;font-size:13px;}
.nri-q-mod-review{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:12px 14px;margin-bottom:14px;}
.nri-q-mod-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;}
.nri-q-client-total{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px;padding:14px 16px;background:linear-gradient(135deg,#eef2ff,#f0fdf4);border-radius:12px;}
.nri-q-client-total strong{font-size:26px;color:#15803d;}
.nri-q-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;margin-bottom:12px;font-size:13px;}
.nri-q-lbl{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;}
.nri-q-charges{width:100%;border-collapse:collapse;font-size:14px;margin-bottom:10px;}
.nri-q-charges td{padding:6px 0;border-bottom:1px solid #f1f5f9;}
.nri-q-charges td:last-child{text-align:right;font-weight:600;color:#0f172a;}
.nri-q-charges tr.nri-q-total td{border-bottom:0;font-size:16px;color:#15803d;padding-top:10px;}
.nri-q-client-actions{display:flex;flex-direction:column;gap:10px;margin-top:16px;}
.nri-q-client-actions .nri-btn{min-height:48px;font-size:15px;}
.nri-q-reject{color:#b91c1c!important;}
.nri-q-timeline{list-style:none;margin:0;padding:0;}
.nri-q-tl-item{padding:10px 0;border-bottom:1px solid #f1f5f9;font-size:13px;}
.nri-q-tl-item time{display:block;font-size:11px;color:#94a3b8;}
.nri-q-tl-who{color:#64748b;font-size:12px;margin-left:6px;}
.nri-q-modal{position:fixed;inset:0;z-index:100010;background:rgba(15,23,42,.45);display:flex;align-items:flex-end;justify-content:center;padding:0;}
.nri-q-modal-sheet{background:#fff;width:100%;max-width:520px;border-radius:16px 16px 0 0;max-height:90vh;overflow:auto;padding-bottom:env(safe-area-inset-bottom);}
.nri-q-modal-hdr{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid #e2e8f0;}
.nri-q-modal-body{padding:16px;display:flex;flex-direction:column;gap:12px;}
@media(min-width:640px){
  .nri-q-modal{align-items:center;padding:16px;}
  .nri-q-modal-sheet{border-radius:14px;}
  .nri-q-client-actions{flex-direction:row;flex-wrap:wrap;}
  .nri-q-client-actions .nri-btn-primary{flex:1 1 180px;}
}
.nri-q-apply-tpl{margin:12px 0;padding:12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;}
.nri-q-apply-tpl-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:6px;}
.nri-q-apply-tpl-row select{flex:1 1 200px;min-width:160px;}
.nri-q-tpl-lib{margin:12px 0;border:1px solid #e2e8f0;border-radius:10px;padding:10px 12px;background:#fafbff;}
.nri-q-tpl-lib summary{cursor:pointer;font-weight:700;color:#0f172a;}
.nri-q-tpl-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0;}
.nri-q-tpl-list{display:flex;flex-direction:column;gap:8px;max-height:240px;overflow:auto;}
.nri-q-tpl-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;}
.nri-q-tpl-row.inactive{opacity:.55;}
.nri-q-tpl-editor{margin-top:12px;padding:12px;border:1px dashed #cbd5e1;border-radius:10px;display:flex;flex-direction:column;gap:10px;}
.nri-q-tpl-editor label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#64748b;}
.nri-q-tpl-editor-actions{display:flex;flex-wrap:wrap;gap:8px;}
.nri-q-field-wrap{margin:14px 0 0;}
.nri-q-field-hdr{display:flex;flex-direction:column;gap:8px;margin-bottom:6px;}
@media(min-width:640px){
  .nri-q-field-hdr{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;}
}
.nri-q-field-title{font-weight:600;color:#0f172a;font-size:13px;}
.nri-q-field-tpl-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.nri-q-field-tpl-bar select{min-width:140px;max-width:220px;flex:1 1 140px;font-size:12px;padding:6px 8px;}
.nri-q-tpl-hint{margin:8px 0 0;}
.nri-q-email-preview-row{margin-top:8px;}
.nri-qfield-tpl-admin{display:flex;flex-direction:column;gap:12px;}
.nri-qfield-tpl-toolbar{display:flex;flex-wrap:wrap;gap:8px;padding:12px;align-items:center;}
.nri-qfield-tpl-toolbar .nri-search-input{flex:1 1 200px;min-width:160px;}
.nri-qfield-tpl-list{display:flex;flex-direction:column;gap:10px;padding:12px;max-height:min(60vh,520px);overflow:auto;}
.nri-qfield-tpl-card{border:1px solid #e2e8f0;border-radius:10px;padding:12px;background:#fff;}
.nri-qfield-tpl-card.inactive{opacity:.6;}
.nri-qfield-tpl-card header{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px;}
.nri-qfield-tpl-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;background:#eef2ff;color:#3730a3;}
.nri-qfield-tpl-snippet{font-size:13px;color:#475569;margin:0 0 10px;line-height:1.45;}
.nri-qfield-tpl-card-actions{display:flex;flex-wrap:wrap;gap:6px;}
.nri-qfield-tpl-editor{padding:16px;display:flex;flex-direction:column;gap:12px;}
.nri-qfield-tpl-label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#64748b;}
.nri-qfield-tpl-check{font-size:13px;color:#334155;}
.nri-qfield-tpl-editor-actions{display:flex;flex-wrap:wrap;gap:8px;}

/* ── Quotation template CMS + WhatsApp copy (v7.6) ───────────────────────── */
.nri-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.nri-qcms-tabs{display:flex;flex-wrap:wrap;gap:6px;border-bottom:1px solid #e2e8f0;}
.nri-qcms-tab{background:none;border:0;border-bottom:3px solid transparent;padding:10px 14px;font-size:14px;font-weight:600;color:#475569;cursor:pointer;border-radius:6px 6px 0 0;}
.nri-qcms-tab:hover{background:#f1f5f9;}
.nri-qcms-tab:focus-visible,.nri-qwa-copy:focus-visible{outline:2px solid #2563eb;outline-offset:2px;}
.nri-qcms-tab.is-active{color:#1d4ed8;border-bottom-color:#1d4ed8;}
.nri-qcms-panel[hidden]{display:none;}
.nri-qcms-panel{display:flex;flex-direction:column;gap:12px;}
.nri-qcms-card{padding:16px;display:flex;flex-direction:column;gap:12px;}
.nri-qcms-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;}
.nri-qcms-grid-4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));}
.nri-qcms-grid label,.nri-qcms-card label.nri-qfield-tpl-label,.nri-qfield-tpl-editor label.nri-qfield-tpl-label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:#334155;}
.nri-qcms textarea,.nri-qcms input[type=text],.nri-qcms input[type=number],.nri-qcms select{width:100%;box-sizing:border-box;}
.nri-qcms textarea{font-family:inherit;line-height:1.45;}
.nri-qcms-err{color:#b91c1c;font-size:12px;font-weight:500;min-height:0;}
.nri-qcms-err:empty{display:none;}
.nri-qcms-checks{display:flex;flex-wrap:wrap;gap:14px;}
.nri-qfield-tpl-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;}
.nri-qcms-ph-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.nri-qcms-ph-label{font-size:13px;font-weight:600;color:#334155;}
.nri-qcms-ph-select{max-width:100%;min-width:200px;flex:1 1 220px;}
.nri-qcms-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.nri-qcms-table,.nri-qcms-matrix{width:100%;border-collapse:collapse;font-size:13px;}
.nri-qcms-table th,.nri-qcms-table td,.nri-qcms-matrix th,.nri-qcms-matrix td{padding:8px 10px;border-bottom:1px solid #e2e8f0;text-align:left;vertical-align:top;}
.nri-qcms-matrix td{text-align:center;}
.nri-qcms-matrix th[scope=row]{white-space:nowrap;}
.nri-qcms-actions{display:flex;flex-wrap:wrap;gap:4px;}
.nri-qcms-seclist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;}
.nri-qcms-seclist li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;}
.nri-qcms-wa-box{background:#ecfdf5;border:1px solid #a7f3d0;border-radius:10px;padding:12px;}
.nri-qcms-wa-text{white-space:pre-wrap;word-break:break-word;margin:0 0 8px;font-family:inherit;font-size:14px;line-height:1.5;}
.nri-qcms-preview-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;}
.nri-q-defaults-row{margin:8px 0;}
.nri-qwa-copy.is-unready{opacity:.65;}
.nri-qwa-manual{position:fixed;inset:0;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;z-index:100000;padding:16px;}
.nri-qwa-manual-box{background:#fff;border-radius:12px;padding:16px;max-width:520px;width:100%;box-sizing:border-box;}
.nri-qwa-manual-box textarea{width:100%;box-sizing:border-box;font-family:inherit;}
.nri-qwa-manual-actions{text-align:right;margin-top:8px;}
@media (max-width:600px){.nri-qcms-tab{flex:1 1 45%;text-align:center;padding:8px 6px;font-size:13px;}.nri-qcms-seclist li{flex-wrap:wrap;}}


/* ==========================================================================
   v7.6.1 — Request detail redesign, client AND staff (scoped to .nri-rd-dsk)
   - Quotation panel (and its Accept action) is visible on every viewport
   - Desktop section accordions (.nri-dsk-acc), collapsed by default
   - Spacing / overflow / overlap fixes. No global selectors.
   ========================================================================== */

.nri-rd-dsk {
  --rd-page: #f4f6fb;
  --rd-card: #ffffff;
  --rd-line: #e3e8f2;
  --rd-ink: #0f172a;
  --rd-mute: #64748b;
  --rd-pri: var(--c-primary, #4f46e5);
  --rd-pri-soft: #eef2ff;
  --rd-ok: #16a34a;
  --rd-bad: #dc2626;
  --rd-radius: 14px;
  --rd-shadow: 0 1px 2px rgba(15, 23, 42, .05), 0 4px 14px rgba(15, 23, 42, .04);
  font-family: "Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  color: var(--rd-ink);
  box-sizing: border-box;
}
.nri-rd-dsk *, .nri-rd-dsk *::before, .nri-rd-dsk *::after { box-sizing: border-box; }

/* Overlap guards: long names / emails / references must wrap, never run under neighbours. */
.nri-rd-dsk .nri-info-name,
.nri-rd-dsk .nri-info-line,
.nri-rd-dsk .nri-info-val,
.nri-rd-dsk .nri-svc-name,
.nri-rd-dsk .nri-summary-val,
.nri-rd-dsk .nri-doc-entry-name,
.nri-rd-dsk .nri-doc-entry-by,
.nri-rd-dsk .nri-msg-bubble,
.nri-rd-dsk .nri-pp-staging-name,
.nri-rd-dsk .nri-q-client-card {
  overflow-wrap: anywhere;
  word-break: normal;
  min-width: 0;
}
.nri-rd-dsk .nri-doc-entry { gap: 12px; }
.nri-rd-dsk .nri-doc-entry > :first-child { min-width: 0; flex: 1 1 auto; }
.nri-rd-dsk .nri-dl-btn { flex: 0 0 32px; }
.nri-rd-dsk .nri-msg-bubble { white-space: pre-wrap; max-width: min(92%, 640px); }
.nri-rd-dsk .nri-msg-meta-top { gap: 8px; flex-wrap: wrap; }
.nri-rd-dsk .nri-messages-list { overscroll-behavior: contain; min-height: 0; max-height: min(340px, 50vh); }
.nri-rd-dsk .nri-msg-actions { flex-wrap: wrap; gap: 8px; }
.nri-rd-dsk .nri-msg-input-area { padding: 16px; }
.nri-rd-dsk .nri-msg-input-area textarea { display: block; margin-bottom: 10px; font: inherit; }
.nri-rd-dsk .nri-hint-sm { line-height: 1.5; }

/* Section accordion chrome (shared by .nri-dsk-acc and the quotation shell on desktop). */
.nri-rd-dsk .nri-dsk-acc,
.nri-rd-dsk .nri-rd-q-acc {
  background: var(--rd-card);
  border: 1px solid var(--rd-line);
  border-radius: var(--rd-radius);
  box-shadow: var(--rd-shadow);
  margin: 0 0 14px;
}
.nri-rd-dsk button.nri-dsk-acc-hdr,
.nri-rd-dsk button.nri-rd-q-acc-hdr {
  appearance: none;
  -webkit-appearance: none;
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  margin: 0;
  padding: 14px 18px;
  min-height: 56px;
  background: transparent;
  border: 0;
  border-radius: var(--rd-radius);
  box-shadow: none;
  color: var(--rd-ink);
  font: inherit;
  text-align: left;
  text-transform: none;
  letter-spacing: normal;
  cursor: pointer;
}
.nri-rd-dsk button.nri-dsk-acc-hdr:hover,
.nri-rd-dsk button.nri-rd-q-acc-hdr:hover { background: #f8faff; color: var(--rd-ink); }
.nri-rd-dsk button.nri-dsk-acc-hdr:focus-visible,
.nri-rd-dsk button.nri-rd-q-acc-hdr:focus-visible {
  outline: 2px solid var(--rd-pri);
  outline-offset: -2px;
}
.nri-rd-dsk .nri-dsk-acc.is-open > .nri-dsk-acc-hdr,
.nri-rd-dsk .nri-rd-q-acc.is-open > .nri-rd-q-acc-hdr { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.nri-rd-dsk .nri-dsk-acc-icon {
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--rd-pri-soft);
  color: var(--rd-pri);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
}
.nri-rd-dsk .nri-dsk-acc-icon::before { content: "\2630"; }
.nri-rd-dsk .nri-dsk-acc-icon.nri-dsk-ico-info::before { content: "i"; font-style: italic; font-family: Georgia, serif; }
.nri-rd-dsk .nri-dsk-acc-icon.nri-dsk-ico-money::before,
.nri-rd-dsk .nri-dsk-acc-icon.nri-dsk-ico-payment::before { content: "\20B9"; }
.nri-rd-dsk .nri-dsk-acc-icon.nri-dsk-ico-progress::before { content: "\2713"; }
.nri-rd-dsk .nri-dsk-acc-titles { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.nri-rd-dsk .nri-dsk-acc-title { font-size: 15px; font-weight: 700; line-height: 1.3; color: var(--rd-ink); }
.nri-rd-dsk .nri-dsk-acc-sum {
  font-size: 13px; font-weight: 500; line-height: 1.4; color: var(--rd-mute);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.nri-rd-dsk .nri-dsk-acc-chev {
  flex: 0 0 20px; width: 20px; height: 20px; position: relative;
}
.nri-rd-dsk .nri-dsk-acc-chev::before {
  content: ""; position: absolute; left: 5px; top: 4px; width: 8px; height: 8px;
  border-right: 2px solid var(--rd-mute); border-bottom: 2px solid var(--rd-mute);
  transform: rotate(45deg); transition: transform .18s ease;
}
.nri-rd-dsk .nri-dsk-acc.is-open > .nri-dsk-acc-hdr .nri-dsk-acc-chev::before { transform: rotate(-135deg); top: 8px; }
.nri-rd-dsk .nri-dsk-acc-body { padding: 4px 18px 18px; border-top: 1px solid var(--rd-line); }
.nri-rd-dsk .nri-dsk-acc-workspace > .nri-dsk-acc-body { padding: 0; }

@media (prefers-reduced-motion: reduce) {
  .nri-rd-dsk .nri-dsk-acc-chev::before { transition: none; }
}

/* ---------------------------- Desktop (>= 768px) ---------------------------- */
@media (min-width: 768px) {
  body .nri-rd-premium.nri-order-page,
  body.nri-app .nri-rd-premium.nri-order-page,
  body .nri-rd-premium.nri-portal-order-page,
  body.nri-app .nri-rd-premium.nri-portal-order-page {
    max-width: 1180px;
    padding: 24px 24px 40px;
    background: var(--rd-page);
    border-radius: 0;
  }

  /* Quotation shell: same card look, header visible, Accept fully in view. */
  .nri-rd-dsk .nri-rd-quotation-mobile { display: block !important; margin: 0 0 14px; }
  .nri-rd-dsk .nri-rd-quotation-mobile .nri-rd-q-acc { margin: 0; }
  .nri-rd-dsk .nri-rd-q-acc-hdr .nri-rd-acc-icon {
    flex: 0 0 36px; width: 36px; height: 36px; border-radius: 10px; background: var(--rd-pri-soft);
    color: var(--rd-pri); display: inline-flex; align-items: center; justify-content: center;
    font-size: 16px; font-weight: 700;
  }
  .nri-rd-dsk .nri-rd-q-acc-hdr .nri-rd-acc-icon::before { content: "\20B9"; }
  .nri-rd-dsk .nri-rd-q-acc-hdr .nri-rd-acc-titles { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
  .nri-rd-dsk .nri-rd-q-acc-hdr .nri-rd-acc-title { font-size: 15px; font-weight: 700; color: var(--rd-ink); }
  .nri-rd-dsk .nri-rd-q-acc-hdr .nri-rd-acc-sub { font-size: 13px; color: var(--rd-mute); }
  .nri-rd-dsk .nri-rd-q-notice {
    flex: 0 1 auto; font-size: 12px; font-weight: 600; color: #b45309; background: #fffbeb;
    border: 1px solid #fde68a; border-radius: 999px; padding: 3px 10px; white-space: nowrap;
  }
  .nri-rd-dsk .nri-rd-q-acc-hdr .nri-rd-acc-chev {
    flex: 0 0 20px; font-size: 10px; color: var(--rd-mute); text-align: center; transition: transform .18s ease;
  }
  .nri-rd-dsk .nri-rd-q-acc.is-open .nri-rd-acc-chev { transform: rotate(180deg); }
  .nri-rd-dsk .nri-rd-q-acc-body { padding: 0 18px 18px; border-top: 1px solid var(--rd-line); }
  .nri-rd-dsk .nri-rd-q-acc-body[hidden] { display: none; }
  .nri-rd-dsk .nri-rd-q-acc-body .nri-q-client-card {
    border: 0; box-shadow: none; padding: 16px 0 0; margin: 0; background: transparent;
  }
  .nri-rd-dsk .nri-q-client-hdr { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
  .nri-rd-dsk .nri-q-client-hdr h2 { margin: 0; font-size: 16px; }
  .nri-rd-dsk .nri-q-client-total strong { font-size: 24px; }
  .nri-rd-dsk .nri-q-client-actions {
    flex-direction: row; flex-wrap: wrap; align-items: center; gap: 10px;
  }
  .nri-rd-dsk .nri-q-client-actions .nri-btn { min-height: 44px; font-size: 14px; }
  .nri-rd-dsk .nri-q-client-actions .nri-btn-primary { flex: 0 0 auto; min-width: 200px; }
  .nri-rd-dsk .nri-q-client-flash { margin: 0 0 12px; }

  /* Inner blocks lose their own card chrome (the accordion is the card). */
  .nri-rd-dsk .nri-dsk-acc-body > .nri-order-hdr,
  .nri-rd-dsk .nri-dsk-acc-body > .nri-info-row,
  .nri-rd-dsk .nri-dsk-acc-body > .nri-summary-bar,
  .nri-rd-dsk .nri-dsk-acc-body > .nri-pipeline-wrap {
    background: transparent; border: 0; box-shadow: none; border-radius: 0; margin: 0;
  }
  .nri-rd-dsk .nri-dsk-acc-body > .nri-order-hdr { padding: 14px 0 12px; }
  .nri-rd-dsk .nri-order-num { font-size: 20px; margin: 0; line-height: 1.3; overflow-wrap: anywhere; }
  .nri-rd-dsk .nri-order-hdr { gap: 12px; align-items: center; }

  .nri-rd-dsk .nri-dsk-acc-body > .nri-info-row {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; padding: 0;
  }
  .nri-rd-dsk .nri-dsk-acc-body > .nri-info-row .nri-info-card {
    border: 1px solid var(--rd-line); border-radius: 12px; padding: 14px 16px; background: #fbfcff;
    box-shadow: none; transform: none; min-width: 0;
  }
  .nri-rd-dsk .nri-info-card-svc { flex-direction: row; justify-content: flex-start; text-align: left; gap: 12px; }
  .nri-rd-dsk .nri-info-label {
    font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--rd-mute); margin-bottom: 8px;
  }

  .nri-rd-dsk .nri-dsk-acc-body > .nri-summary-bar {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; padding: 16px 0 0;
  }
  .nri-rd-dsk .nri-summary-bar::before { content: none; }
  .nri-rd-dsk .nri-summary-sep { display: none; }
  .nri-rd-dsk .nri-summary-bar .nri-summary-item {
    display: flex; flex-direction: column; align-items: flex-start; gap: 4px; text-align: left;
    padding: 12px 14px; border: 1px solid var(--rd-line); border-radius: 12px; background: #fbfcff; min-width: 0;
  }
  .nri-rd-dsk .nri-summary-label { margin: 0; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
  .nri-rd-dsk .nri-summary-val { font-size: 15px; line-height: 1.4; }
  .nri-rd-dsk .nri-summary-val small { display: block; margin-top: 2px; line-height: 1.4; }

  .nri-rd-dsk .nri-dsk-acc-body > .nri-pipeline-wrap {
    display: flex; align-items: flex-start; justify-content: flex-start; gap: 0;
    overflow-x: auto; padding: 22px 4px 12px; -webkit-overflow-scrolling: touch;
  }
  .nri-rd-dsk .nri-pipeline-wrap::before { content: none; }
  .nri-rd-dsk .nri-pipeline-node { flex: 0 0 auto; min-width: 92px; max-width: 120px; }
  .nri-rd-dsk .nri-pipeline-lbl { line-height: 1.35; overflow-wrap: anywhere; font-size: 12px; }
  .nri-rd-dsk .nri-pipeline-bar { flex: 1 1 24px; min-width: 24px; max-width: none; margin-top: 15px; height: 3px; border-radius: 2px; }
  .nri-rd-dsk .nri-pipeline-node.nri-faded { opacity: .45; }
  .nri-rd-dsk .nri-pipeline-node.nri-service-unavailable .nri-pipeline-lbl { color: var(--rd-bad); }

  /* Workspace accordion: tabs live inside; the tabs card loses its own chrome. */
  .nri-rd-dsk .nri-dsk-acc-workspace .nri-order-tabs-wrap {
    border: 0; box-shadow: none; border-radius: 0 0 var(--rd-radius) var(--rd-radius); margin: 0; overflow: hidden;
  }
  .nri-rd-dsk .nri-order-tabs { padding: 0 8px; gap: 2px; flex-wrap: wrap; border-bottom: 1px solid var(--rd-line); background: #fff; }
  .nri-rd-dsk .nri-ot { padding: 14px 16px; font-family: inherit; white-space: normal; }
  .nri-rd-dsk .nri-ot:focus-visible { outline: 2px solid var(--rd-pri); outline-offset: -2px; }
  .nri-rd-dsk #nri-ot-docs .nri-docs-layout { grid-template-columns: minmax(260px, 340px) minmax(0, 1fr); }
  .nri-rd-dsk #nri-ot-docs .nri-docs-right { border-left: 1px solid var(--rd-line); }
  .nri-rd-dsk .nri-order-history-hdr { background: #f8faff; color: var(--rd-ink); border-bottom: 1px solid var(--rd-line); padding: 14px 18px; }
  .nri-rd-dsk .nri-msg-mine .nri-msg-bubble { background: var(--rd-pri); }

  /* Payment pane inside its own accordion body (no extra outer margin). */
  .nri-rd-dsk .nri-dsk-acc-payment #nri-ot-payment { margin: 0; padding: 14px 0 0; display: block !important; }
  .nri-rd-dsk .nri-dsk-acc-payment .nri-pp-section { border: 0; box-shadow: none; padding: 0; margin: 0; background: transparent; }
  .nri-rd-dsk .nri-pp-section .nri-pp-hdr,
  .nri-rd-dsk .nri-pp-context-grid,
  .nri-rd-dsk .nri-pp-subtitle,
  .nri-rd-dsk .nri-pp-upload-form,
  .nri-rd-dsk .nri-pp-card,
  .nri-rd-dsk .nri-pp-history,
  .nri-rd-dsk .nri-pp-timeline,
  .nri-rd-dsk .nri-pp-waiting,
  .nri-rd-dsk .nri-pp-feedback { margin-left: 0; margin-right: 0; }
  .nri-rd-dsk .nri-pp-upload-form { display: grid; gap: 14px; }
  .nri-rd-dsk .nri-pp-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 14px; }
  .nri-rd-dsk .nri-pp-upload-form .nri-field label { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 600; }
  .nri-rd-dsk .nri-pp-upload-form input[type="text"],
  .nri-rd-dsk .nri-pp-upload-form input[type="date"],
  .nri-rd-dsk .nri-pp-upload-form input[type="number"],
  .nri-rd-dsk .nri-pp-upload-form select,
  .nri-rd-dsk .nri-pp-upload-form textarea { width: 100%; min-height: 42px; font: inherit; }
  .nri-rd-dsk .nri-pp-drop {
    border: 2px dashed #c7d2fe; border-radius: 12px; background: #f8faff; padding: 22px 16px; text-align: center;
  }
  .nri-rd-dsk .nri-pp-drop:focus-visible { outline: 2px solid var(--rd-pri); outline-offset: 2px; }
  .nri-rd-dsk .nri-pp-submit { justify-self: start; min-height: 44px; }
}


@media (min-width: 768px) {
  .nri-rd-dsk .nri-dsk-acc-payment .nri-rd-payment-intro h3 { display: none; }
  .nri-rd-dsk .nri-dsk-acc-payment .nri-rd-payment-intro { margin: 0 0 12px; }
}

/* Staff request page: controls panel and header actions follow the same card system. */
.nri-rd-dsk .nri-order-hdr { gap: 12px; }
.nri-rd-dsk .nri-order-hdr > div { flex-wrap: wrap; min-width: 0; }
.nri-rd-dsk .nri-staff-panel-wrap { margin: 0 0 14px; border: 1px solid var(--rd-line, #e3e8f2); border-radius: 14px; background: #fff; box-shadow: 0 1px 2px rgba(15,23,42,.05), 0 4px 14px rgba(15,23,42,.04); overflow: hidden; }
.nri-rd-dsk .nri-staff-panel-hdr { padding: 14px 18px; font-size: 15px; font-weight: 700; display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; }
.nri-rd-dsk .nri-staff-panel-body { padding: 4px 18px 18px; border-top: 1px solid #e3e8f2; }
.nri-rd-dsk .nri-staff-grid { gap: 14px; }
.nri-rd-dsk .nri-staff-section { min-width: 0; padding: 14px; border: 1px solid #e3e8f2; border-radius: 12px; background: #fbfcff; overflow-wrap: anywhere; }
.nri-rd-dsk .nri-staff-section input, .nri-rd-dsk .nri-staff-section select, .nri-rd-dsk .nri-staff-section textarea { max-width: 100%; }
.nri-rd-dsk .nri-comm-panel { padding: 16px; }
.nri-rd-dsk .nri-tickets-toolbar { display: flex; flex-wrap: wrap; gap: 10px; padding: 14px 16px; align-items: center; }
.nri-rd-dsk .nri-tbl-wrap, .nri-rd-dsk #nri-ot-tickets { overflow-x: auto; }
@media (max-width: 767px) {
  .nri-rd-dsk:not(.nri-rd-premium) .nri-order-hdr { align-items: flex-start; }
  .nri-rd-dsk:not(.nri-rd-premium) .nri-dsk-acc-body { padding: 4px 12px 14px; }
  .nri-rd-dsk:not(.nri-rd-premium) .nri-dsk-acc-workspace > .nri-dsk-acc-body { padding: 0; }
  .nri-rd-dsk:not(.nri-rd-premium) .nri-order-tabs { overflow-x: auto; flex-wrap: nowrap; }
  .nri-rd-dsk:not(.nri-rd-premium) .nri-ot { white-space: nowrap; }
}

/* Grid children must be allowed to shrink, otherwise long document names push the page wider than the screen. */
.nri-rd-dsk .nri-docs-left, .nri-rd-dsk .nri-docs-right, .nri-rd-dsk .nri-doc-section, .nri-rd-dsk .nri-doc-section-body { min-width: 0; }
@media (max-width: 900px) {
  .nri-rd-dsk .nri-docs-layout { grid-template-columns: minmax(0, 1fr); }
}

/* ── 7.6.2 compact layout (shared by client + staff request pages) ───────────────
   Root causes fixed: text fields of the quotation workspace were one-per-row at any width,
   action buttons were a single stacked column, the payment hero/cards used page-level
   margins inside an already padded accordion, and textareas defaulted to tall heights. */
.nri-rd-dsk .nri-q-workspace .nri-q-form-body { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px 16px; }
.nri-rd-dsk .nri-q-workspace .nri-q-form-body > * { min-width: 0; }
.nri-rd-dsk .nri-q-workspace .nri-q-field-wrap { margin: 8px 0 0; }
.nri-rd-dsk .nri-q-workspace .nri-q-field-hdr { margin-bottom: 4px; }
.nri-rd-dsk .nri-q-workspace .nri-q-field-wrap textarea { min-height: 56px; height: 64px; resize: vertical; font-size: 13px; padding: 7px 9px; }
.nri-rd-dsk .nri-q-workspace .nri-q-field-hint, .nri-rd-dsk .nri-q-workspace .nri-q-tpl-hint { margin: 0 0 4px; font-size: 12px; }
.nri-rd-dsk .nri-q-workspace .nri-q-form-grid { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; }
.nri-rd-dsk .nri-q-workspace .nri-q-actions { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; padding-top: 10px; border-top: 1px solid #e3e8f2; }
.nri-rd-dsk .nri-q-workspace .nri-q-actions > .nri-btn { align-self: center; }
.nri-rd-dsk .nri-q-workspace .nri-q-actions .nri-q-send-hint { flex: 1 1 100%; margin: 0; font-size: 12px; }
.nri-rd-dsk .nri-q-workspace .nri-q-total-live { margin: 8px 0 0; }
@media (min-width: 1000px) {
  .nri-rd-dsk .nri-q-workspace .nri-q-form-body { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nri-rd-dsk .nri-q-workspace .nri-q-form-body > .nri-q-form-grid,
  .nri-rd-dsk .nri-q-workspace .nri-q-form-body > .nri-q-email-preview-row,
  .nri-rd-dsk .nri-q-workspace .nri-q-form-body > .nri-q-total-live,
  .nri-rd-dsk .nri-q-workspace .nri-q-form-body > .nri-q-actions { grid-column: 1 / -1; }
}
.nri-rd-dsk .nri-pp-section.nri-pp-premium { margin: 0; border-radius: 12px; box-shadow: none; }
.nri-rd-dsk .nri-pp-hero { padding: 12px 16px; gap: 12px; align-items: center; }
.nri-rd-dsk .nri-pp-hero-badge { width: 36px; height: 36px; border-radius: 10px; box-shadow: none; }
.nri-rd-dsk .nri-pp-hero-ico { width: 20px; height: 20px; }
.nri-rd-dsk .nri-pp-context-grid { margin-top: 12px; margin-bottom: 12px; gap: 8px; }
.nri-rd-dsk .nri-staff-section, .nri-rd-dsk .nri-staff-grid { gap: 12px; }
.nri-rd-dsk .nri-staff-label { margin-bottom: 6px; }
.nri-rd-dsk .nri-q-workspace { margin-top: 12px; }
.nri-rd-dsk .nri-summary-note { margin: 8px 2px 0; font-size: 12px; color: #64748b; line-height: 1.5; }

/* ── 7.6.3 Client dashboard: premium palette + accordion sections ────────────────
   Palette: ink #0f172a, indigo #4338ca→#6366f1 (primary), teal #0891b2 (accent),
   emerald #059669 (success), amber #d97706 (attention), slate neutrals. */
body .nri-portal-hero.nri-portal-hero-banner {
  background: linear-gradient(120deg, #1e1b4b 0%, #3730a3 55%, #4f46e5 100%);
  border: 0; color: #fff; padding: 24px 28px; border-radius: 18px;
  box-shadow: 0 10px 30px rgba(55, 48, 163, .25); margin-bottom: 16px;
}
.nri-portal-hero-banner .nri-portal-hero-title { color: #fff; margin-bottom: 6px; }
.nri-portal-hero-banner .nri-portal-hero-sub { color: #c7d2fe; margin-bottom: 16px; font-size: 14px; }
.nri-portal-hero-banner .nri-btn-primary { background: #fff; color: #3730a3 !important; border-color: #fff; font-weight: 700; }
.nri-portal-hero-banner .nri-btn-primary:hover { background: #eef2ff; }
.nri-portal-hero-banner .nri-btn-outline { color: #fff !important; border-color: rgba(255,255,255,.55); background: rgba(255,255,255,.08); }
.nri-portal-hero-banner .nri-btn-outline:hover { background: rgba(255,255,255,.18); }
.nri-portal-hero-banner .nri-portal-hero-illus-wrap { width: 160px; opacity: .95; }
.nri-portal-stats4 { gap: 12px; margin-bottom: 16px; }
.nri-portal-stat4 { padding: 14px 16px; border-radius: 14px; border-color: #e3e8f2; }
.nri-portal-stat4-val { font-size: 22px; letter-spacing: -.01em; }
.nri-portal-stat4-label { font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: #64748b; }
.nri-stat4-blue { background: #e0e7ff; } .nri-stat4-amber { background: #fef3c7; } .nri-stat4-green { background: #d1fae5; } .nri-stat4-purple { background: #cffafe; }

.nri-cd-dash { margin-top: 4px; }
.nri-cd-dash .nri-dsk-acc { margin-bottom: 12px; }
.nri-cd-dash .nri-dsk-acc-body { padding: 4px 16px 16px; }
.nri-cd-dash .nri-cd-more { display: flex; justify-content: flex-end; margin: 0 0 10px; }
.nri-cd-dash .nri-portal-viewall { font-size: 13px; font-weight: 600; color: #4338ca; text-decoration: none; }
.nri-cd-dash .nri-portal-viewall:hover { text-decoration: underline; }
.nri-cd-dash .nri-portal-req-list { display: grid; gap: 10px; }
.nri-cd-dash .nri-portal-req-row { padding: 12px 14px; border-radius: 12px; gap: 12px; box-shadow: none; border: 1px solid #e3e8f2; background: #fafbff; }
.nri-cd-dash .nri-portal-req-row:hover { border-color: #a5b4fc; background: #fff; box-shadow: 0 4px 14px rgba(67,56,202,.10); transform: none; }
.nri-cd-dash .nri-req-row-title { font-size: 14px; }
.nri-cd-dash .nri-req-row-meta { gap: 4px 14px; font-size: 12px; color: #64748b; }
.nri-cd-dash .nri-portal-doc-list { display: grid; gap: 8px; }
.nri-cd-dash .nri-portal-doc-row { padding: 9px 12px; border-radius: 10px; background: #fafbff; border: 1px solid #e3e8f2; }
.nri-cd-dash .nri-portal-services-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; }
.nri-cd-dash .nri-portal-svc-card { padding: 12px; border-radius: 12px; box-shadow: none; border: 1px solid #e3e8f2; }
.nri-cd-dash .nri-portal-svc-card:hover { transform: none; border-color: #a5b4fc; box-shadow: 0 4px 14px rgba(67,56,202,.10); }
.nri-cd-dash .nri-cd-help-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.nri-cd-dash .nri-cd-help-grid .nri-portal-panel { margin: 0; padding: 14px; border-radius: 12px; box-shadow: none; border: 1px solid #e3e8f2; background: #fafbff; min-width: 0; }
.nri-cd-dash .nri-portal-panel-title { font-size: 13.5px; margin-bottom: 8px; }
.nri-cd-dash .nri-portal-empty { padding: 20px 12px; }
.nri-cd-dash .nri-hint-sm { margin: 0; padding: 4px 0; }
.nri-cd-dash .nri-dsk-acc-hdr { padding: 12px 16px; }
@media (max-width: 900px) { .nri-cd-dash .nri-cd-help-grid { grid-template-columns: 1fr; } }
@media (max-width: 760px) {
  body .nri-portal-hero.nri-portal-hero-banner { padding: 18px 16px; border-radius: 14px; }
  .nri-cd-dash .nri-dsk-acc-body { padding: 2px 12px 12px; }
  .nri-cd-dash .nri-portal-req-row { flex-direction: column; align-items: stretch; }
}
.nri-portal-hero-banner, .nri-portal-stats4 { font-family: "Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
.nri-cd-dash .nri-portal-services-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
.nri-cd-dash .nri-dsk-acc-body > :last-child { margin-bottom: 0; }
.nri-cd-dash .nri-portal-doc-list, .nri-cd-dash .nri-portal-req-list { margin-bottom: 0; }

/* WhatsApp template: length & character limits (7.6.4) */
.nri-qwa-limits-set { border: 1px solid #e3e8f2; border-radius: 12px; padding: 12px 16px 16px; margin: 14px 0; min-width: 0; }
.nri-qwa-limits-set legend { font-weight: 700; font-size: 14px; padding: 0 6px; }
.nri-qwa-limits { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px 18px; }
.nri-qwa-limit { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.nri-qwa-limit label { font-weight: 600; font-size: 13px; color: #0f172a; }
.nri-qwa-limit-unit { font-weight: 500; color: #64748b; }
.nri-qwa-limit-ctl { display: flex; gap: 8px; align-items: center; }
.nri-qwa-limit-ctl input { flex: 1 1 auto; min-width: 0; max-width: 180px; }
.nri-qwa-limit .nri-hint-sm { margin: 0; font-size: 12px; line-height: 1.45; color: #64748b; }
.nri-qwa-limit input[aria-invalid="true"] { border-color: #dc2626; box-shadow: 0 0 0 3px rgba(220,38,38,.12); }
/* Hero primary button: beat body.nri-app .nri-btn-primary (app shell) so it is white with indigo text, never indigo-on-indigo. */
body .nri-portal-hero-banner .nri-btn.nri-btn-primary,
body.nri-app .nri-portal-hero-banner .nri-btn.nri-btn-primary { background: #fff !important; border-color: #fff !important; color: #312e81 !important; font-weight: 700; box-shadow: 0 2px 8px rgba(15,23,42,.18); }
body .nri-portal-hero-banner .nri-btn.nri-btn-primary:hover,
body.nri-app .nri-portal-hero-banner .nri-btn.nri-btn-primary:hover { background: #eef2ff !important; border-color: #eef2ff !important; color: #1e1b4b !important; }
body .nri-portal-hero-banner .nri-btn.nri-btn-primary:focus-visible,
body .nri-portal-hero-banner .nri-btn.nri-btn-outline:focus-visible { outline: 3px solid #fde68a; outline-offset: 2px; }
body .nri-portal-hero-banner .nri-btn.nri-btn-outline { color: #fff !important; border-color: rgba(255,255,255,.7); background: rgba(255,255,255,.10); }
body .nri-portal-hero-banner .nri-btn.nri-btn-outline:hover { background: rgba(255,255,255,.22); }
.nri-qwa-mode { display: grid; gap: 8px; margin: 4px 0 12px; }
.nri-qwa-mode label { align-items: flex-start; line-height: 1.45; }
.nri-qwa-limits.is-inactive { opacity: .55; }

/* ── Multi-document request panel (7.13) ─────────────────────────────── */
.nri-v2-panel { margin: 4px 0 8px; }
.nri-v2-panel[hidden] { display: none; }
.nri-v2-cards { display: grid; gap: 12px; }
.nri-v2-card { border: 1px solid rgba(0,0,0,.12); border-radius: 10px; padding: 14px 14px 6px; background: rgba(0,0,0,.02); }
.nri-v2-card-title { margin: 0 0 10px; font-size: 15px; font-weight: 600; }
.nri-v2-card .nri-field { margin-bottom: 12px; }
.nri-v2-card select, .nri-v2-card textarea, .nri-v2-card input[type=text] { width: 100%; max-width: 100%; box-sizing: border-box; }
.nri-v2-checks { display: grid; gap: 6px; }
.nri-v2-check { display: flex; gap: 8px; align-items: flex-start; font-weight: 400; cursor: pointer; }
.nri-v2-check input { margin-top: 3px; }
.nri-v2-missing > label { color: #b3261e; }
.nri-v2-err { margin: 4px 0 0; color: #b3261e; font-size: 13px; }
.nri-v2-proxy-wrap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); margin: 0; }
.nri-v2-sr { position: absolute; left: -9999px; }
@media (max-width: 480px) { .nri-v2-card { padding: 12px 10px 4px; } }
.nri-v2-top { margin-bottom: 12px; }
.nri-v2-degrees { margin: 8px 0; }
.nri-v2-degrees[hidden] { display: none; }
.nri-v2-degree-cards { display: grid; gap: 12px; }
.nri-v2-more { display: grid; gap: 12px; margin-top: 12px; }
.nri-v2-splitline { margin: 4px 0 10px; }
.nri-v2-note { margin: 0 0 12px; }
.nri-v2-checklist { margin: 0 0 8px 18px; padding: 0; font-size: 13px; }
.nri-v2-filelink { border: 1px solid rgba(0,0,0,.12); border-radius: 8px; padding: 8px 10px; margin: 6px 0; }
.nri-v2-filelink summary { cursor: pointer; }
.nri-v2-fname { font-weight: 600; word-break: break-all; }
.nri-v2-filelink-body { display: grid; gap: 6px; padding-top: 8px; }
.nri-v2-review { margin: 12px 0; }
.nri-v2-review[hidden] { display: none; }
.nri-v2-rv { border-top: 1px solid rgba(0,0,0,.08); padding: 10px 0; }
.nri-v2-rv-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.nri-v2-rv-head h5 { margin: 0; font-size: 14px; }
.nri-v2-edit { background: none; border: 1px solid currentColor; border-radius: 6px; padding: 4px 10px; font-size: 13px; cursor: pointer; color: inherit; }
.nri-v2-edit:focus-visible, .nri-v2-filelink summary:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.nri-v2-rv-list { margin: 6px 0 0; display: grid; grid-template-columns: minmax(0, 40%) minmax(0, 1fr); gap: 4px 12px; font-size: 13px; }
.nri-v2-rv-list dt { font-weight: 600; margin: 0; }
.nri-v2-rv-list dd { margin: 0; word-break: break-word; }
.nri-v2-rv-missing { color: #b3261e; }
.nri-v2-rv-attn { border: 1px solid #b3261e; border-radius: 8px; padding: 8px 12px; margin-top: 10px; color: #b3261e; font-size: 13px; }
.nri-v2-rv-later { margin-top: 10px; font-size: 13px; }
.nri-v2-rv ul, .nri-v2-rv-attn ul, .nri-v2-rv-later ul { margin: 4px 0 0 18px; padding: 0; }
@media (max-width: 480px) { .nri-v2-rv-list { grid-template-columns: 1fr; } }
.nri-q-lines{margin:0 0 12px;padding:10px 12px;border:1px solid #e5e7eb;border-radius:8px;background:#f9fafb}
.nri-q-lines h4{margin:0 0 8px;font-size:14px}
.nri-q-line-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:6px}
.nri-q-line-lbl{flex:1 1 220px;font-size:13px}
.nri-q-line-amt{width:130px}
.nri-q-line-note{flex:1 1 180px;min-width:0}
.nri-items-edit{margin:14px 0;padding:12px;border:1px solid #e5e7eb;border-radius:8px;background:#fff}
.nri-items-edit h4{margin:0 0 10px;font-size:14px}
.nri-ie-item,.nri-ie-group{display:flex;flex-wrap:wrap;gap:8px 12px;margin:0 0 10px;padding:8px 10px;border:1px solid #e5e7eb;border-radius:6px}
.nri-ie-item label,.nri-ie-group label{display:flex;flex-direction:column;font-size:12px;gap:2px;flex:1 1 160px;min-width:0}
.nri-ie-in{max-width:100%;box-sizing:border-box}
.nri-ie-msg{font-size:13px;margin-left:8px}
.nri-ie-log{margin-top:8px;font-size:12px}
.nri-v2-acad[hidden]{display:none}
.nri-v2-hid{display:none!important}
.nri-rv{margin:0 0 22px}.nri-rv-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px;margin:0 0 10px}
.nri-rv-row{display:flex;gap:10px;font-size:13px;padding:3px 0;border-bottom:1px dashed #e2e8f0}.nri-rv-row:last-child{border-bottom:0}
.nri-rv-l{flex:0 0 38%;max-width:260px;color:#64748b}.nri-rv-v{flex:1;min-width:0;color:#1e293b;font-weight:500;overflow-wrap:anywhere}
.nri-na{color:#94a3b8;font-weight:400}.nri-rv-sub{color:#64748b;font-size:12px}.nri-rv-docs{font-size:12px;color:#475569;margin-top:6px}
.nri-ie-ro{flex:1 1 100%;font-size:12px}.nri-ie-ro span{font-weight:600}
@media(max-width:560px){.nri-rv-row{flex-direction:column;gap:0}.nri-rv-l{flex:none;max-width:none}}

/* 7.17 desktop layout: the multi-document panels use the whole row; cards sit side by side; fields inside a wide card flow in columns so
   conditional questions stack compactly instead of leaving an empty half-screen. Phones keep the single column. */
@media (min-width: 768px) {
	.nri-step-fields > .nri-v2-panel, .nri-step-fields > .nri-v2-degrees { grid-column: 1 / -1; }
	.nri-v2-cards, .nri-v2-degree-cards, .nri-v2-more { grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); align-items: start; gap: 14px; }
	.nri-v2-top { max-width: 560px; }
	.nri-v2-card { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); column-gap: 14px; align-content: start; padding: 14px 16px 4px; }
	.nri-v2-card > .nri-v2-card-title, .nri-v2-card > h4, .nri-v2-card > h5, .nri-v2-card > .nri-v2-note, .nri-v2-card > .nri-hint,
	.nri-v2-card > .nri-v2-q-wide, .nri-v2-card > .nri-v2-q:has(textarea), .nri-v2-card > .nri-v2-q:has(.nri-v2-checks) { grid-column: 1 / -1; }
	.nri-v2-card .nri-field { margin-bottom: 12px; min-width: 0; }
	.nri-v2-card .nri-field > label { display: block; line-height: 1.3; }
	.nri-v2-card .nri-hint, .nri-v2-card .nri-help { font-size: 12px; margin: 4px 0 0; }
}

/* 7.17 checkboxes: one consistent, self-drawn box with a tick that always sits inside it (theme/browser defaults put the tick outside or tiny). */
.nri-wizard-step .nri-v2-check, .nri-wizard-step .nri-v2-check > span, .nri-v2-who .nri-v2-check, .nri-v2-who .nri-v2-check > span { font-size: 14px; line-height: 1.45; font-weight: 400; letter-spacing: 0; text-transform: none; color: inherit; }
.nri-wizard-step .nri-v2-check, .nri-v2-who .nri-v2-check { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 8px; padding: 0; }
.nri-wizard-step .nri-v2-check input[type=checkbox], .nri-v2-who input[type=checkbox], .nri-wizard-step .nri-v2-checks input[type=checkbox] {
	-webkit-appearance: none; appearance: none; box-sizing: border-box; flex: 0 0 20px; width: 20px; height: 20px; min-width: 20px; margin: 1px 0 0; padding: 0;
	border: 1.5px solid #94a3b8; border-radius: 5px; background: #fff; display: inline-grid; place-content: center; cursor: pointer; position: relative; transition: background .12s, border-color .12s; }
.nri-wizard-step .nri-v2-check input[type=checkbox]::before, .nri-v2-who input[type=checkbox]::before, .nri-wizard-step .nri-v2-checks input[type=checkbox]::before {
	content: ""; width: 11px; height: 11px; background: #fff; transform: scale(0); transition: transform .12s; clip-path: polygon(14% 44%, 0 62%, 40% 100%, 100% 22%, 84% 6%, 40% 66%); }
.nri-wizard-step .nri-v2-check input[type=checkbox]:checked, .nri-v2-who input[type=checkbox]:checked, .nri-wizard-step .nri-v2-checks input[type=checkbox]:checked { background: #4338ca; border-color: #4338ca; }
.nri-wizard-step .nri-v2-check input[type=checkbox]:checked::before, .nri-v2-who input[type=checkbox]:checked::before, .nri-wizard-step .nri-v2-checks input[type=checkbox]:checked::before { transform: scale(1); }
.nri-wizard-step .nri-v2-check input[type=checkbox]:focus-visible, .nri-v2-who input[type=checkbox]:focus-visible { outline: 2px solid #4338ca; outline-offset: 2px; }
.nri-wizard-step .nri-v2-check input[type=checkbox]:disabled { opacity: .5; cursor: not-allowed; }
@media (min-width: 768px) {
	.nri-step-fields > .nri-v2-who, .nri-step-fields > .nri-v2-files, .nri-step-fields > .nri-v2-review, .nri-wizard-step .nri-v2-who, .nri-wizard-step .nri-v2-files, .nri-wizard-step .nri-v2-review { grid-column: 1 / -1; }
	.nri-v2-who-body { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 14px; align-items: start; }
}
.nri-v2-card .nri-field > .nri-hint, .nri-v2-card .nri-field > .nri-help, .nri-v2-card .nri-field > small { display: block; margin: 4px 0 2px; }
.nri-v2-card .nri-field + .nri-field { margin-top: 0; }
.nri-v2-acad-checks { align-self: center; }
.nri-v2-card > .nri-hint-sm, .nri-v2-card > p.nri-hint-sm { grid-column: 1 / -1; margin: 0 0 10px; }
/* 7.17 phones: keep native pickers readable even when the device is in dark mode (white option text on a white list looked like an empty dropdown). */
.nri-wizard-step select, .nri-wizard-step select option, .nri-wizard-step select optgroup { color-scheme: light; color: #0f172a; background-color: #fff; }
.nri-wizard-step select:invalid, .nri-wizard-step select.nri-placeholder { color: #64748b; }
/* 7.17 masonry: document / degree cards of different heights pack into columns, so a short card never leaves an empty hole beside a tall one. */
@media (min-width: 768px) {
	.nri-v2-cards, .nri-v2-degree-cards { display: block; columns: 340px; column-gap: 14px; }
	.nri-v2-cards > .nri-v2-card, .nri-v2-degree-cards > .nri-v2-card { break-inside: avoid; -webkit-column-break-inside: avoid; page-break-inside: avoid; margin: 0 0 14px; display: grid; width: 100%; box-sizing: border-box; }
}

/* Document questions manager (Settings) */
.nri-vq-tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid #e2e8f0;margin:0 0 12px}
.nri-vq-tab{background:none;border:0;border-bottom:3px solid transparent;padding:10px 14px;font:inherit;font-weight:600;color:#475569;cursor:pointer;min-height:44px}
.nri-vq-tab.is-on{color:#0f172a;border-bottom-color:#0b57d0}.nri-vq-tab:focus-visible{outline:2px solid #0b57d0;outline-offset:2px}
.nri-vq-row{border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px;margin:0 0 8px;background:#fff}.nri-vq-row.is-open{border-color:#0b57d0}
.nri-vq-head{display:flex;flex-direction:column;gap:2px}.nri-vq-meta{font-size:12px;color:#64748b}.nri-vq-rule{font-size:12px;color:#92400e}
.nri-vq-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.nri-vq-del{color:#b3261e!important}
.nri-vq-edit{margin-top:12px;border-top:1px dashed #cbd5e1;padding-top:12px;display:grid;gap:12px}
.nri-vq-f{display:grid;gap:4px}.nri-vq-l{font-weight:600;font-size:13px}.nri-vq-f small{color:#64748b}
.nri-vq-f input[type=text],.nri-vq-f select,.nri-vq-f textarea,.nri-vq-body select,.nri-vq-body input[type=text],.nri-vq-body input[type=search]{max-width:100%;box-sizing:border-box}
.nri-vq-checks{display:flex;flex-wrap:wrap;gap:6px 14px}.nri-vq-rule-row{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}
.nri-vq-list{padding-left:20px}.nri-vq-list li{margin:0 0 6px}
@media (max-width:600px){.nri-vq-actions .nri-btn{flex:1 1 auto}}
.nri-vq-edit>*,.nri-vq-f{min-width:0}.nri-vq-edit input[type=text],.nri-vq-edit textarea,.nri-vq-edit select{width:100%;max-width:100%;box-sizing:border-box}
.nri-vq-rule-row select,.nri-vq-rule-row input{flex:1 1 140px;min-width:0;max-width:100%}
