/* ==========================================================================
   Host-theme chrome reset.
   Neutralises the active block theme's header/footer/spacing so the portal
   shell can own the full viewport. Component styling lives in portal.css.
   ========================================================================== */
html:has(.nsp-portal-page),
body.nsp-portal-page { margin: 0 !important; padding: 0 !important; background: #f4f5f8; overflow-x: hidden; max-width: 100%; }

.nsp-portal-page .wp-site-blocks { gap: 0 !important; min-height: 100vh; }
.nsp-portal-page .wp-site-blocks > header,
.nsp-portal-page .wp-site-blocks > footer,
.nsp-portal-page main .wp-block-post-title { display: none !important; }
.nsp-portal-page .wp-site-blocks > *,
.nsp-portal-page .wp-site-blocks > main,
.nsp-portal-page main:not(.nsp-main) > * { margin-block-start: 0 !important; }
.nsp-portal-page .wp-site-blocks > main { min-height: 100vh; }
.nsp-portal-page main > .wp-block-group.alignfull { padding-block: 0 !important; }
/* Reset the active theme's page wrappers only — never the portal's own <main class="nsp-main">. */
.nsp-portal-page .wp-site-blocks,
.nsp-portal-page main:not(.nsp-main),
.nsp-portal-page .entry-content { margin: 0 !important; padding: 0 !important; max-width: none !important; min-height: 100vh; }
.nsp-portal-page .entry-content > * { max-width: none !important; }
.nsp-portal-page .entry-content > .nsp-app,
.nsp-portal-page #nsp-portal-app { width: 100% !important; margin-block-start: 0 !important; }

/* Isolation backstop. On the standalone portal canvas only the portal app (or
   the login screen) may render. Any markup other plugins inject at <body> level
   — page-builder popups, floating chat/assistant widgets, cookie bars — is
   hidden here; their CSS/JS is already stripped server-side in NSP_Portal. */
body.nsp-portal-canvas > *:not(#nsp-portal-app):not(.nsp-login):not(script):not(style):not(noscript) { display: none !important; }

/* Admin bar offset when present. */
.nsp-portal-page.admin-bar .nsp-app { min-height: calc(100vh - 32px); }
@media (max-width: 782px) {
  .nsp-portal-page.admin-bar .nsp-app { min-height: calc(100vh - 46px); }
}

/* Workspace presentation. */
.nsp-app {
  --nsp-ink: #172b43;
  --nsp-muted: #5c6c80;
  --nsp-subtle: #68788a;
  --nsp-page: #f5f7fa;
  --nsp-line: #e1e6ed;
  font-family: "Segoe UI", -apple-system, BlinkMacSystemFont, sans-serif;
}
.nsp-app .screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.nsp-skip { position: fixed; top: -100px; left: 16px; z-index: 100; padding: 12px 18px; background: #fff; color: #0758b8; border-radius: 8px; }
.nsp-skip:focus { top: 12px; }
.nsp-topbar { height: 68px; padding-inline: 28px; background: #fff; backdrop-filter: none; }
.nsp-brand__copy strong { letter-spacing: .1em; font-size: 15px; }
.nsp-topbar__tools { gap: 20px; }
.nsp-security { padding: 5px 10px; font-size: 11px; border: 0; border-radius: 6px; background: #eef7f3; color: #28735d; }
.nsp-app__body { grid-template-columns: 236px minmax(0, 1fr); }
.nsp-sidebar { background: #112b46; padding: 24px 16px 18px; }
.nsp-workspace-picker { padding: 0 0 12px; border: 0; }
.nsp-workspace-picker > label { margin-bottom: 9px; color: #a8bed3; font-size: 10px; letter-spacing: .08em; }
.nsp-workspace-trigger { background: #1b3956; border-color: #35516b; min-height: 46px; font-weight: 600; }
.nsp-access-summary { display: flex; align-items: center; gap: 7px; color: #bdcedf; font-size: 11px; margin: 0 4px 22px; }
.nsp-access-summary::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: #8fbea9; }
.nsp-navigation > p { font-size: 10px; color: #95afc7; letter-spacing: .08em; margin: 2px 12px 10px; }
.nsp-nav { min-height: 44px; border-radius: 7px; margin-bottom: 5px; font-weight: 500; }
.nsp-nav.is-active { background: #eaf2fb; color: #173c65; box-shadow: none; }
.nsp-nav.is-active .nsp-nav__icon { color: #0758b8; }
.nsp-sidebar__footer { margin-top: auto; padding-top: 18px; }
.nsp-main { padding: 30px 34px 34px; }
.nsp-pagehead { margin: 0; align-items: center; gap: 20px; }
.nsp-pagehead h1 { font-size: 29px; font-weight: 650; letter-spacing: -.035em; margin: 5px 0 8px; }
.nsp-pagehead .nsp-eyebrow { color: #53708c; font-size: 10px; font-weight: 650; letter-spacing: .1em; }
.nsp-pagehead__intro { color: #66778a; font-size: 13px; }
.nsp-button { border-radius: 7px; min-height: 38px; box-shadow: none; font-size: 12px; font-weight: 600; }
.nsp-button--primary { background: #0868cf; border-color: #0868cf; box-shadow: 0 2px 4px #133f661a; }
.nsp-button--primary:hover { background: #0758b8; }
.nsp-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 24px 0; }
.nsp-stats article { min-height: 100px; padding: 18px 20px; gap: 16px; border-radius: 10px; box-shadow: 0 1px 2px #12263f04; }
.nsp-stats strong { font-size: 25px; font-weight: 650; }
.nsp-stats small { color: #738295; }
.nsp-stat-icon { width: 40px; height: 40px; border-radius: 9px; }
.nsp-stat-icon--folders { background: #f8f1e6; color: #a5782e; }
.nsp-panel { border: 1px solid #dde4ec; border-radius: 10px; box-shadow: 0 3px 14px #182d4510; }
.nsp-panel__heading { padding: 20px 22px; border-bottom: 1px solid #e5eaf0; }
.nsp-panel__heading h2 { font-size: 15px; font-weight: 650; }
.nsp-panel__heading p { font-size: 12px; color: #6b7b8e; margin-top: 4px; }
.nsp-explorer__body { grid-template-columns: 195px minmax(0, 1fr); min-height: 380px; }
.nsp-explorer__folders { background: #fafbfd; padding: 18px 10px; }
.nsp-explorer__label { font-size: 10px; color: #7a899a; letter-spacing: .08em; }
.nsp-folder-item { border-radius: 6px; min-height: 38px; font-size: 12px; }
.nsp-folder-item.is-active { background: #e8f1fb; color: #20548c; box-shadow: inset 2px 0 #2775c9; }
.nsp-breadcrumb { min-height: 48px; padding: 10px 18px; background: #fff; border-bottom: 0; }
.nsp-crumb { font-size: 12px; }
.nsp-breadcrumb__actions #nsp-new-subfolder { display: none; }
.nsp-breadcrumb__actions button { min-height: 30px; padding: 4px 9px; font-size: 11px; }
.nsp-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; padding: 0 18px 14px; background: #fff; border-bottom: 1px solid #e8ecf1; }
.nsp-toolbar .nsp-search { grid-column: auto; min-width: 0; }
.nsp-search input { min-height: 39px; height: 39px; padding: 8px 38px 8px 36px; background: #f8fafc; border-color: #e1e7ee; border-radius: 7px; }
.nsp-search input:focus { background: #fff; }
.nsp-search .nsp-i { left: 12px; }
.nsp-toolbar .nsp-filter { display: none; }
.nsp-toolbar #nsp-search-button { width: auto; min-height: 39px; padding: 8px 16px; }
.nsp-commandbar { padding: 10px 18px; min-height: 52px; gap: 8px; row-gap: 10px; background: #fff; border-bottom: 1px solid #e8ecf1; }
.nsp-commandbar:not(.has-selection) > #nsp-move-selected,
.nsp-commandbar:not(.has-selection) > #nsp-download-selected,
.nsp-commandbar:not(.has-selection) > #nsp-delete-selected { display: none; }
.nsp-commandbar.has-selection { background: #f1f6fd; }
.nsp-selection-summary { font-size: 11px; color: #67778a; }
.nsp-select-all { font-size: 11px; }
.nsp-commandbar .nsp-sort { margin-left: auto; gap: 6px; }
.nsp-commandbar select { min-height: 32px; font-size: 11px; padding-block: 5px; }
.nsp-commandbar .nsp-sort > span, .nsp-view-control > span { display: none; }
.nsp-view-control { border-radius: 6px; padding: 2px; gap: 2px; }
.nsp-view-control button { width: 29px; height: 28px; border-radius: 4px; }
.nsp-page-size { font-size: 11px; }
.nsp-page-size select { width: 65px; }
.nsp-list-head--selectable, .nsp-document--selectable { grid-template-columns: 24px 36px minmax(0, 1fr) 100px 164px; padding-inline: 18px; gap: 10px; }
.nsp-list-head--selectable { padding-block: 9px; color: #738295; background: #fbfcfe !important; font-size: 10px; text-transform: none; letter-spacing: 0; }
.nsp-document--selectable { min-height: 72px; padding-block: 14px; border-bottom-color: #edf0f5; }
.nsp-document__date { font-size: 11px; color: #5e7085; white-space: nowrap; }
.nsp-file-icon { width: 36px; height: 40px; }
.nsp-file-icon img { width: 34px; height: 38px; }
.nsp-document__meta strong { font-size: 12px; font-weight: 600; }
.nsp-document__meta > span { font-size: 10px; margin-top: 3px; color: #7b8998; }
.nsp-document__actions { gap: 4px; justify-content: flex-end; }
.nsp-document__actions button { font-size: 11px; padding: 5px 8px; min-height: 32px; border-radius: 5px; }
.nsp-document__actions button[data-action="replace"], .nsp-document__actions button[data-action="versions"] { display: none; }
.nsp-document__actions button[data-action="preview"] { color: #1762b4; background: #f1f6fd; }
.nsp-document__actions button[data-action="more"] { min-width: 30px; width: 30px; padding: 0; }
.nsp-document-list[data-view="list"] .nsp-document__date,
.nsp-document-list[data-view="grid"] .nsp-document__date { display: none; }
.nsp-document-list[data-view="list"] .nsp-document { grid-template-columns: 24px 32px minmax(0, 1fr) 164px; }
.nsp-document-list[data-view="grid"] { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); padding: 18px; gap: 12px; align-content: start; }
.nsp-document-list[data-view="grid"] .nsp-document, .nsp-document-list[data-view="grid"] .nsp-folder-row { border: 1px solid #e1e7ee; border-radius: 9px; box-shadow: 0 1px 2px #12263f05; min-height: 165px; }
.nsp-document-list[data-view="grid"] .nsp-file-icon { width: 48px; height: 54px; }
.nsp-document-list[data-view="grid"] .nsp-file-icon img { width: 46px; height: 52px; }
.nsp-document-list[data-view="grid"] .nsp-document__actions { position: static; align-self: end; width: 100%; }
.nsp-document-list[data-view="grid"] .nsp-document__actions button[data-action="preview"] { display: inline-flex; margin-right: auto; }
.nsp-folder-row { border-bottom-color: #edf0f5; }
.nsp-folder-row > .nsp-i { color: #b08843; }
.nsp-pager { min-height: 48px; padding: 10px 18px; font-size: 11px; }
.nsp-menu { width: 264px; padding: 7px; font-family: "Segoe UI", sans-serif; max-height: min(80dvh, 490px); border-radius: 9px; box-shadow: 0 10px 40px #152b4530; }
.nsp-menu__item { min-height: 36px; font-size: 12px; border-radius: 5px; }
.nsp-menu__item.is-restricted { color: #718093; }
.nsp-menu__item small { flex: 0 0 auto; font-size: 9px; padding: 2px 5px; background: #eef1f5; color: #59697b; border-radius: 3px; }
.nsp-dialog { border: 1px solid #dfe6ee; border-radius: 12px; box-shadow: 0 24px 80px #10263d33; }
.nsp-dialog h2 { font-size: 22px; font-weight: 650; letter-spacing: -.025em; }
.nsp-dialog p { font-size: 13px; color: #637589; line-height: 1.65; }
.nsp-dialog::backdrop, .nsp-preview-dialog::backdrop { background: #0b1e3580; backdrop-filter: blur(3px); }
.nsp-dialog__actions { gap: 8px; padding-top: 12px; }
.nsp-access-alert { border-top: 4px solid #bc8a36; }
.nsp-access-alert p { margin-block: 14px 24px; }
.nsp-preview-dialog[open] { width: min(1400px, calc(100vw - 48px)); height: calc(100dvh - 48px); max-height: none; border-radius: 12px; overflow: hidden; }
.nsp-preview-dialog header { padding: 16px 22px; border-bottom: 1px solid #dce3ec; min-width: 0; }
.nsp-preview-file-info { min-width: 0; }
.nsp-preview-dialog h2 { font-size: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nsp-preview-stage { background: #edf1f6; }
.nsp-ppt-preview { padding: 0 12px 16px; background: #edf1f6; }
.nsp-ppt-preview .pptx-preview-wrapper { height: auto !important; max-height: none; flex: 1; padding: 16px 0; background: #edf1f6 !important; overflow: auto; scrollbar-gutter: auto; }
.nsp-ppt-toolbar { width: 100%; margin: 0 !important; flex: 0 0 auto; box-shadow: none; }
.nsp-ppt-preview .pptx-preview-wrapper > [hidden] { display: none !important; }
.nsp-preview-fallback { max-width: 520px; border: 1px solid #dce3eb; border-radius: 10px; box-shadow: 0 2px 8px #20354a08; }
.nsp-preview-fallback h3 { font-size: 20px; letter-spacing: -.025em; }
.nsp-preview-fallback p { color: #65768a; font-size: 13px; line-height: 1.7; }
.nsp-preview-dialog [hidden] { display: none !important; }
.nsp-preview-actions .is-restricted::after { content: ' · Restricted'; font-size: 10px; }
.nsp-notice { margin-bottom: 18px; border-radius: 8px; font-size: 13px; }
.nsp-profile-card, .nsp-password-card { border-radius: 10px; box-shadow: none; }
.nsp-stats small, .nsp-document__meta > span, .nsp-list-head--selectable,
.nsp-panel__heading p, .nsp-pagehead__intro, .nsp-explorer__label { color: #5e7085; }
.nsp-activity-card { box-shadow: none; border-radius: 8px; border-color: #e2e8ef; }
.nsp-empty { min-height: 265px; }
.nsp-app :focus-visible, .nsp-dialog :focus-visible, .nsp-preview-dialog :focus-visible { outline: 2px solid #2372c9; outline-offset: 3px; box-shadow: none; }
@media (min-width: 961px) {
  .nsp-topbar { flex-basis: 68px; }
  .nsp-app__body { height: calc(100% - 68px); }
}
@media (max-width: 1250px) {
  .nsp-main { padding: 24px; }
  .nsp-explorer__body { grid-template-columns: 168px minmax(0, 1fr); }
  .nsp-list-head--selectable, .nsp-document--selectable { grid-template-columns: 24px 36px minmax(0, 1fr) 78px; }
  .nsp-document__date, .nsp-list-head--selectable > span:nth-child(4) { display: none; }
  .nsp-document__actions button[data-action="download"] { display: none; }
  .nsp-document-list[data-view="list"] .nsp-document { grid-template-columns: 24px 32px minmax(0, 1fr) 78px; }
  .nsp-stats article { padding: 16px; gap: 12px; }
}
@media (max-width: 960px) {
  .nsp-app__body { display: block; height: auto; }
  .nsp-sidebar { padding: 12px 20px; display: grid; grid-template-columns: minmax(180px, 1fr) 2fr; align-items: center; gap: 18px; }
  .nsp-workspace-picker { padding: 0; }
  .nsp-workspace-picker > label, .nsp-access-summary, .nsp-navigation > p, .nsp-sidebar__footer { display: none; }
  .nsp-navigation { gap: 4px; }
  .nsp-nav { padding: 8px; margin: 0; justify-content: center; }
  .nsp-nav__icon { display: none; }
  .nsp-stats { gap: 10px; }
}
@media (max-width: 760px) {
  .nsp-explorer__body { grid-template-columns: minmax(0, 1fr); }
  .nsp-explorer__folders { padding: 10px 14px; max-height: 100px; border-bottom: 1px solid #e3e8ef; }
  .nsp-folder-tree { display: flex; gap: 5px; overflow-x: auto; }
  .nsp-folder-item { flex: 0 0 auto; }
  .nsp-explorer__label { display: none; }
  .nsp-commandbar { flex-wrap: wrap; }
  .nsp-stats small { display: none; }
  .nsp-stat-icon { display: none; }
  .nsp-preview-dialog[open] { width: 100vw; height: 100dvh; max-width: none; margin: 0; border: 0; border-radius: 0; }
}
@media (max-width: 620px) {
  .nsp-topbar { height: 60px; padding: 0 16px; }
  .nsp-security, .nsp-account__name { display: none; }
  .nsp-sidebar { display: block; padding: 12px; }
  .nsp-navigation { margin-top: 10px; }
  .nsp-nav { min-height: 38px; }
  .nsp-nav span:last-child { font-size: 11px; }
  .nsp-main { padding: 22px 12px; }
  .nsp-pagehead h1 { font-size: 25px; }
  .nsp-pagehead__intro { display: none; }
  .nsp-pagehead .nsp-button { min-height: 40px; padding: 8px 12px; }
  .nsp-stats { margin: 20px 0; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .nsp-stats article { min-height: 78px; padding: 12px; }
  .nsp-stats article > div > span { font-size: 10px; }
  .nsp-stats article strong { font-size: 20px; white-space: nowrap; }
  .nsp-panel__heading { padding: 16px; }
  .nsp-breadcrumb { padding: 10px 14px; }
  .nsp-breadcrumb__actions { display: none; }
  .nsp-toolbar { padding: 0 14px 12px; }
  /* Command bar as a 2-row grid on phones so the summary never collapses to a
     sliver and the actions never wrap raggedly. Idle: [select-all · summary] /
     [sort · view]. Selected: [select-all · summary] / [Move · Download · Delete]. */
  .nsp-commandbar { padding: 10px 14px; column-gap: 10px; row-gap: 10px; }
  .nsp-commandbar:not(.has-selection) { display: grid; grid-template-columns: auto 1fr auto; grid-template-areas: "sel sum sum" "sort sort view"; align-items: center; }
  .nsp-commandbar.has-selection { display: grid; grid-template-columns: repeat(3, 1fr); grid-template-areas: "sel sum sum" "move download delete"; align-items: center; }
  .nsp-commandbar .nsp-select-all { grid-area: sel; }
  .nsp-selection-summary { grid-area: sum; min-width: 0; justify-self: start; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .nsp-commandbar .nsp-sort { grid-area: sort; width: auto; min-width: 0; margin: 0; }
  .nsp-commandbar .nsp-sort select { width: 100%; min-width: 0; }
  .nsp-view-control { grid-area: view; margin: 0; justify-self: end; }
  .nsp-commandbar .nsp-page-size { display: none; }
  #nsp-move-selected { grid-area: move; }
  #nsp-download-selected { grid-area: download; }
  #nsp-delete-selected { grid-area: delete; }
  .nsp-commandbar.has-selection > .nsp-button { width: 100%; }
  .nsp-commandbar.has-selection > .nsp-sort, .nsp-commandbar.has-selection > .nsp-view-control { display: none; }
  .nsp-commandbar.has-selection .nsp-selection-summary { color: var(--nsp-accent); font-weight: 650; }
  .nsp-document--selectable, .nsp-document-list[data-view="list"] .nsp-document { grid-template-columns: 24px 32px minmax(0, 1fr) 38px; padding: 12px; gap: 8px; }
  .nsp-document__actions button[data-action="preview"] { display: none; }
  .nsp-document__actions button[data-action="more"] { width: 38px; min-width: 38px; }
  .nsp-document-list[data-view="grid"] { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 12px; gap: 10px; }
  .nsp-document-list[data-view="grid"] .nsp-document { display: flex; }
  .nsp-preview-dialog header { padding: 14px; }
  .nsp-preview-dialog h2 { max-width: 72vw; font-size: 14px; }
  .nsp-pager { flex-direction: row; flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
  .nsp-app *, .nsp-preview-dialog * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Portal interaction and layout refinement. */
.nsp-app [hidden] { display: none !important; }
.nsp-app { --nsp-surface: #fff; --nsp-accent: #1464ad; }
.nsp-main { padding: 32px clamp(20px, 3vw, 48px); }
.nsp-pagehead { margin-bottom: 24px; }
.nsp-pagehead h1 { font-size: clamp(25px, 2.2vw, 34px); line-height: 1.2; }
.nsp-pagehead__intro { font-size: 14px; line-height: 1.6; }
.nsp-panel { box-shadow: 0 2px 8px #18334c06; border-radius: 12px; overflow: clip; }
.nsp-panel__heading { padding: 20px 24px; }
.nsp-stats { margin: 0 0 24px; }
.nsp-stats article { min-height: 88px; }
.nsp-app button, .nsp-app input, .nsp-app select { font: inherit; }
.nsp-app button { cursor: pointer; }
.nsp-app button:disabled { cursor: not-allowed; opacity: .5; }
.nsp-app input[type=checkbox] { width: 18px; height: 18px; accent-color: #1464ad; flex-shrink: 0; }
.nsp-app .nsp-button { font-size: 13px; min-height: 40px; padding: 9px 14px; }
.nsp-document__meta strong { font-size: 13px; line-height: 1.5; }
.nsp-document__meta span { font-size: 12px; line-height: 1.5; }
.nsp-document__actions { gap: 8px; }
.nsp-document__actions button { white-space: nowrap; }
#nsp-recycle-list { display: block; padding: 0; }
#nsp-recycle-list .nsp-document { display: grid; grid-template-columns: 24px 40px minmax(0, 1fr) auto; gap: 14px; min-height: 84px; padding: 16px 24px; align-items: center; }
#nsp-recycle-list .nsp-document__actions { display: flex; flex-wrap: nowrap; width: auto; position: static; justify-content: flex-end; }
#nsp-recycle-list .nsp-document__actions button { min-height: 36px; padding: 8px 12px; font-size: 12px; border-radius: 7px; }
#nsp-recycle-list .nsp-document__actions [data-permanent-deleted] { color: #ac3434; background: #fff; border: 1px solid #edcaca; }
#nsp-recycle-list .nsp-document__actions [data-permanent-deleted]:hover { background: #fff2f2; }
.nsp-recycle-toolbar { margin: 0; border: 0; border-bottom: 1px solid #e1e7ee; border-radius: 0; padding: 14px 24px; background: #f8fafc; gap: 12px; font-size: 12px; }
.nsp-recycle-toolbar.has-selection { background: #edf5ff; }
.nsp-recycle-toolbar .nsp-select-all { display: flex; align-items: center; gap: 10px; }
#nsp-recycle-summary { color: #54677b; }
.nsp-recycle-toolbar .nsp-danger { color: #ac3434; border-color: #edcaca; }
.nsp-operation-progress { padding-top: 8px; }
.nsp-operation-progress progress { height: 7px; }
.nsp-retention { display: block; color: #61768a; font-size: 11px; margin-top: 3px; }
.nsp-document.is-selected { background: #edf5ff !important; box-shadow: inset 3px 0 #1464ad; }
.nsp-pager { padding: 16px 24px; background: #fafbfd; border-top: 1px solid #e5eaf0; }
.nsp-dialog { padding: 28px; max-height: 88dvh; overflow-y: auto; }
.nsp-dialog__close { min-width: 36px; min-height: 36px; border-radius: 50%; }
.nsp-dialog input:not([type=checkbox]), .nsp-dialog select { min-height: 44px; border-radius: 8px; }
.nsp-dropzone { margin: 20px 0; padding: 28px 20px; border-radius: 12px; background: #f8fbff; }
.nsp-dropzone.is-over { background: #eaf4ff; border-color: #1464ad; box-shadow: inset 0 0 0 1px #1464ad; }
.nsp-upload-row { grid-template-columns: minmax(0, 1fr) 110px; padding: 14px 12px; border-radius: 8px; margin-bottom: 6px; }
.nsp-upload-row > progress { grid-column: 1 / -1; grid-row: 2; }
.nsp-upload-row__name { flex-wrap: wrap; }
.nsp-upload-row__label { white-space: normal; overflow-wrap: anywhere; }
.nsp-upload-cancel, .nsp-upload-retry { min-height: 32px; padding: 4px 8px; border-radius: 6px; }
.nsp-upload-retry { color: #1464ad; border: 1px solid #bfd4e9; background: #fff; }
.nsp-activity-card { padding: 18px 24px; }
.nsp-empty { padding: 48px 24px; line-height: 1.7; }
.nsp-transfer-tray { position: fixed; bottom: 20px; right: 24px; width: min(360px, calc(100vw - 32px)); padding: 16px 20px; background: #fff; border: 1px solid #cedceb; border-radius: 12px; box-shadow: 0 8px 32px #19354e26; z-index: 40; text-align: left; color: #18334c; }
.nsp-transfer-tray strong, .nsp-transfer-tray span { display: block; margin-bottom: 6px; }
.nsp-transfer-tray span { font-size: 12px; color: #60768b; }
.nsp-transfer-tray progress { width: 100%; height: 6px; accent-color: #1464ad; }
.nsp-transfer-actions { display: flex; gap: 8px; margin-top: 10px; }
.nsp-transfer-actions .nsp-button { min-height: 36px; font-size: 12px; }
.nsp-upload-row.is-cancelled { background: #f5f7fa; border-color: #dce3ec; }
.nsp-upload-row > small { overflow-wrap: anywhere; }
.nsp-recycle-failures { padding: 18px 24px; background: #fff6f3; border-bottom: 1px solid #edcaca; overflow-wrap: anywhere; }
.nsp-recycle-failures li { margin-block: 6px; }
.nsp-password-field { position: relative; }
.nsp-password-field input { width: 100%; height: 44px; padding: 0 72px 0 13px; border: 1px solid var(--nsp-line); border-radius: 7px; background: #fff; color: var(--nsp-ink); font-size: 16px; }
.nsp-password-field button { position: absolute; right: 4px; top: 4px; min-height: 36px; padding: 0 10px; border: 0; background: #f1f6fd; color: #175ca5; border-radius: 5px; }
#nsp-account-view { max-width: 980px; }
#nsp-account-view .nsp-profile-card { padding: 24px 18px; }
.nsp-activity-card__body { min-width: 0; }
.nsp-activity-card__body span { overflow-wrap: anywhere; }
.nsp-activity-card time { white-space: nowrap; font-size: 12px; }
@media (min-width: 961px) {
 .nsp-main { padding: 22px 28px 32px; }
 .nsp-pagehead { margin-bottom: 12px; }
 .nsp-pagehead .nsp-eyebrow { display: none; }
 .nsp-pagehead h1 { font-size: 28px; margin: 0 0 5px; }
 .nsp-stats { margin: 14px 0 18px; gap: 12px; }
 .nsp-stats article { min-height: 64px; padding: 10px 16px; gap: 12px; }
 .nsp-stats article strong { font-size: 22px; }
 .nsp-stats article small { display: none; }
 #nsp-documents-view .nsp-panel__heading { padding: 10px 18px; }
 #nsp-documents-view .nsp-panel__heading p { display: none; }
 .nsp-breadcrumb { min-height: 40px; padding: 6px 18px; }
 .nsp-toolbar { padding-bottom: 8px; }
 .nsp-commandbar { min-height: 46px; padding-block: 7px; }
 .nsp-document-list:not([data-view="grid"]) .nsp-document__actions { flex-wrap: nowrap; width: auto; }
 .nsp-list-head--selectable, .nsp-document-list[data-view="details"] .nsp-document { grid-template-columns: 24px 36px minmax(0,1fr) 100px 206px; }
 .nsp-document-list[data-view="list"] .nsp-document { grid-template-columns: 24px 32px minmax(0,1fr) 206px; }
 .nsp-document--selectable { min-height: 64px; padding-block: 10px; }
 .nsp-activity-card { padding: 14px 20px; }
}
@media (max-width: 760px) {
 .nsp-main { padding: 20px 12px; }
 .nsp-pagehead { margin-bottom: 20px; }
 .nsp-panel__heading { padding: 16px; }
 #nsp-recycle-list .nsp-document { grid-template-columns: 22px 32px minmax(0,1fr); padding: 16px; gap: 10px; }
 #nsp-recycle-list .nsp-document__actions { grid-column: 2 / -1; justify-content: flex-start; }
 #nsp-recycle-list .nsp-document__actions button { min-height: 40px; }
 .nsp-recycle-toolbar { padding: 12px 16px; }
 .nsp-recycle-toolbar .nsp-button { flex: 1; }
 .nsp-dialog { width: calc(100vw - 24px); padding: 24px 18px; }
 .nsp-dialog__actions { flex-wrap: wrap; }
 .nsp-dialog__actions button { flex: 1; }
 .nsp-transfer-tray { bottom: 12px; right: 16px; }
}
