/* FILE LIBRARY • polished layout, 2026-10-22
   Scoped to #filePage to preserve every other portal screen and feature. */
#filePage.file-page { --fl-ink:#172b45; --fl-muted:#64748b; --fl-border:#e3eaf3; --fl-accent:#185bc4; --fl-soft:#f5f8fd; background:linear-gradient(180deg,#f0f5fc 0,#f7faff 360px,#f7f9fc 100%)!important; color:var(--fl-ink); }
#filePage .file-shell { width:min(1480px,calc(100% - 48px))!important; max-width:1480px!important; min-width:0!important; margin:0 auto!important; padding:0 0 80px!important; }
#filePage .file-top { display:flex!important; align-items:center!important; justify-content:space-between!important; flex-wrap:wrap!important; gap:24px!important; min-height:196px!important; padding:36px clamp(24px,3.5vw,50px)!important; margin:0 0 24px!important; background:radial-gradient(circle at 92% 0%,rgba(73,146,255,.24),transparent 36%),linear-gradient(120deg,#081b35 0%,#102e52 70%,#173b65 100%)!important; border:1px solid rgba(255,255,255,.09)!important; border-radius:26px!important; box-shadow:0 18px 46px rgba(13,39,76,.13)!important; overflow:hidden!important; box-sizing:border-box!important; }
#filePage .file-top .subpage-title {min-width:0!important;flex:1 1 420px!important;}
#filePage .file-top .subpage-title small {display:inline-block!important;margin:0 0 9px!important;color:#9bceff!important;letter-spacing:.13em!important;text-transform:uppercase!important;font-size:11px!important;font-weight:850!important;}
#filePage .file-top .subpage-title h2 {margin:0!important; font-weight:900!important;letter-spacing:-.05em!important;line-height:1.1!important;color:#fff!important;font-size:clamp(30px,3.3vw,43px)!important;}
#filePage .file-top .subpage-title p {margin:15px 0 0!important;max-width:750px!important;line-height:1.6!important;color:#c8d9f1!important;font-weight:550!important;font-size:14px!important;}
#filePage .file-top .workflow-top-actions {display:flex!important;flex:0 1 auto!important;align-items:center!important;justify-content:flex-end!important;flex-wrap:wrap!important;gap:9px!important;max-width:100%!important;}
#filePage .file-top .workflow-top-actions .back-btn {display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:44px!important;min-width:0!important;box-sizing:border-box!important;padding:10px 16px!important;border-radius:12px!important;text-decoration:none!important;white-space:nowrap!important;font-size:13px!important;font-weight:800!important;color:#eaf3ff!important;background:rgba(255,255,255,.1)!important;border:1px solid rgba(255,255,255,.22)!important;box-shadow:none!important;cursor:pointer!important;}
#filePage .file-top .workflow-top-actions .file-upload-open {background:#fff!important;color:#0d3569!important;border-color:#fff!important;box-shadow:0 8px 22px rgba(0,0,0,.1)!important;}
#filePage .file-top .workflow-top-actions .back-btn:hover {filter:brightness(1.09)!important;transform:translateY(-1px);}
#filePage .file-cafe-layout {display:grid!important;grid-template-columns:minmax(0,1fr) 340px!important;align-items:start!important;gap:20px!important;min-width:0!important;}
#filePage .file-cafe-board-panel, #filePage .file-upload-panel {min-width:0!important;box-sizing:border-box!important;background:#fff!important;border:1px solid var(--fl-border)!important;border-radius:22px!important;box-shadow:0 12px 40px rgba(30,56,94,.055)!important;}
#filePage .file-cafe-board-panel {padding:24px!important;}
#filePage .file-upload-panel {display:block;position:sticky!important;top:118px!important;padding:25px!important;}
#filePage .file-board-heading {display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:0 0 19px;}
#filePage .file-board-heading h3 {font-size:22px!important;font-weight:900!important;letter-spacing:-.04em!important;color:#1a2d47!important;margin:0 0 5px!important;}
#filePage .file-board-heading p {margin:0!important;font-size:13px!important;color:var(--fl-muted)!important;line-height:1.6!important;}
#filePage .file-board-heading .file-board-mark {display:grid;place-items:center;flex:0 0 43px;width:43px;height:43px;border-radius:13px;background:#edf4ff;color:#185bc4;font-weight:900;font-size:21px;}
#filePage .file-toolbar {display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:12px!important;justify-content:space-between!important;margin-bottom:18px!important;border:0!important;background:transparent!important;padding:0!important;box-shadow:none!important;}
#filePage .file-toolbar #fileCategoryFilters {display:flex!important;flex-wrap:wrap!important;min-width:0!important;flex:1 1 370px!important;align-items:center!important;gap:7px!important;padding:0!important;margin:0!important;overflow:visible!important;}
#filePage .file-toolbar #fileCategoryFilters button {display:inline-flex!important;align-items:center!important;justify-content:center!important;width:auto!important;height:36px!important;min-height:36px!important;min-width:0!important;padding:0 13px!important;background:#f4f7fb!important;border:1px solid #e3eaf2!important;color:#52667e!important;font-size:12px!important;border-radius:10px!important;white-space:nowrap!important;font-weight:800!important;box-shadow:none!important;cursor:pointer!important;}
#filePage .file-toolbar #fileCategoryFilters button:hover {background:#e9f1ff!important;color:#1156ac!important;}
#filePage .file-toolbar #fileCategoryFilters button.active {background:#123b72!important;border-color:#123b72!important;color:#fff!important;box-shadow:0 4px 10px rgba(28,78,142,.16)!important;}
#filePage .file-toolbar .workflow-search {width:min(310px,100%)!important;max-width:100%!important;min-width:190px!important;flex:1 1 210px!important;margin:0!important;}
#filePage .file-toolbar #fileSearch {box-sizing:border-box!important;width:100%!important;height:42px!important;border-radius:11px!important;border:1px solid #d9e3ef!important;background:#fff!important;padding:0 13px!important;font-size:13px!important;color:#132c47!important;box-shadow:0 2px 5px rgba(15,23,42,.025)!important;outline:0!important;}
#filePage .file-toolbar #fileSearch:focus {border-color:#4285d9!important;box-shadow:0 0 0 3px rgba(30,99,193,.11)!important;}
#filePage .file-list {min-width:0!important;}
#filePage .workflow-list-summary {display:flex!important;gap:7px!important;align-items:center!important;justify-content:flex-start!important;margin:0 0 12px!important;padding:0 2px!important;color:#63758e!important;font-size:12px!important;letter-spacing:-.01em!important;font-weight:700!important;}
#filePage .workflow-list-summary strong {color:#164b91!important;font-weight:900!important;}
#filePage .file-list-indicator {width:7px;height:7px;border-radius:50%;background:#2f85db;flex:0 0 7px;}
#filePage .file-cafe-board {display:grid!important;gap:12px!important;min-width:0!important;width:100%!important;border:0!important;background:transparent!important;border-radius:0!important;overflow:visible!important;}
#filePage .file-cafe-head {display:none!important;}
#filePage .file-cafe-row {display:grid!important;grid-template-columns:minmax(0,1fr) minmax(150px,190px)!important;gap:24px!important;align-items:stretch!important;min-width:0!important;width:100%!important;box-sizing:border-box!important;padding:22px 22px!important;margin:0!important;background:#fff!important;border:1px solid #dfe7f0!important;border-radius:18px!important;box-shadow:0 2px 9px rgba(23,54,99,.025)!important;overflow-wrap:anywhere!important;}
#filePage .file-cafe-row:hover {border-color:#b9cfe9!important;box-shadow:0 8px 28px rgba(26,66,120,.085)!important;}
#filePage .file-cafe-row.renewal-due {background:linear-gradient(120deg,#fff,#fffafa)!important;border-color:#f1c8cd!important;}
#filePage .file-cafe-row .file-card-main {min-width:0!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;}
#filePage .file-cafe-row .file-card-eyebrow {display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:7px!important;margin-bottom:12px!important;}
#filePage .file-cafe-row .category {display:inline-flex!important;align-items:center!important;min-width:0!important;}
#filePage .file-cafe-row .category b {display:inline-flex!important;align-items:center!important;border-radius:7px!important;background:#eaf2ff!important;color:#155bac!important;border:1px solid #d8e8ff!important;padding:5px 9px!important;font-size:11px!important;font-weight:800!important;line-height:1.3!important;}
#filePage .file-card-doc-label {font-size:11px;font-weight:700;color:#9babbd;letter-spacing:.02em;}
#filePage .file-cafe-row .renewal-badge {margin:0!important;border-radius:7px!important;font-size:11px!important;}
#filePage .file-cafe-row .title {display:block!important;min-width:0!important;margin:0!important;}
#filePage .file-cafe-row .title strong {display:block!important;color:#152a43!important;font-size:clamp(16px,1.15vw,18px)!important;line-height:1.46!important;font-weight:900!important;letter-spacing:-.04em!important;word-break:break-word!important;overflow-wrap:anywhere!important;}
#filePage .file-cafe-row .title em {display:block!important;margin:8px 0 0!important;color:#61738a!important;font-size:13px!important;font-weight:500!important;font-style:normal!important;line-height:1.65!important;white-space:pre-line!important;overflow-wrap:anywhere!important;}
#filePage .file-cafe-row .title .file-card-attachment {display:block!important;margin:11px 0 0!important;font-size:12px!important;font-weight:750!important;color:#3d6696!important;line-height:1.6!important;overflow-wrap:anywhere!important;}
#filePage .file-card-metadata {display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:8px 18px!important;border-top:1px solid #edf2f7!important;padding:13px 0 0!important;margin-top:19px!important;font-size:12px!important;}
#filePage .file-cafe-row .author, #filePage .file-cafe-row .file-date-stack {display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:7px 14px!important;min-width:0!important;font-style:normal!important;white-space:normal!important;font-size:12px!important;font-weight:750!important;color:#41556f!important;line-height:1.5!important;}
#filePage .file-cafe-row .file-date-stack span {display:inline-flex;align-items:center;gap:5px;}
#filePage .file-cafe-row .file-meta-caption {color:#8a9aad!important;font-weight:700!important;font-size:11px!important;}
#filePage .file-card-renewal {margin-top:9px!important;}
#filePage .file-cafe-row .file-renewal {margin:0!important;display:block!important;font-size:11px!important;line-height:1.6!important;color:#687b91!important;white-space:normal!important;}
#filePage .file-cafe-row .file-renewal.due {color:#ad2940!important;}
#filePage .file-cafe-row .download.file-card-actions {display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:center!important;flex-wrap:nowrap!important;gap:8px!important;min-width:0!important;width:100%!important;box-sizing:border-box!important;padding:0 0 0 22px!important;border-left:1px solid #edf2f8!important;}
#filePage .file-cafe-row .file-card-actions-label {display:block!important;text-align:left!important;color:#96a7bb!important;font-size:11px!important;font-weight:900!important;letter-spacing:.03em!important;margin:0 0 2px!important;}
#filePage .file-cafe-row .download a,#filePage .file-cafe-row .download button {width:100%!important;max-width:100%!important;min-width:0!important;min-height:35px!important;height:auto!important;box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;gap:5px!important;padding:8px 10px!important;margin:0!important;border-radius:9px!important;border:1px solid #e1e8f0!important;background:#f4f7fc!important;color:#365372!important;font-size:12px!important;font-weight:850!important;line-height:1.3!important;white-space:normal!important;overflow-wrap:anywhere!important;cursor:pointer!important;box-shadow:none!important;text-decoration:none!important;}
#filePage .file-cafe-row .download a {background:#144b91!important;color:#fff!important;border-color:#144b91!important;}
#filePage .file-cafe-row .download button[data-file-ai] {background:#eef5ff!important;border-color:#dce9fb!important;color:#195bb0!important;}
#filePage .file-cafe-row .download button[data-file-edit] {background:#fff!important;border-color:#dce5f1!important;color:#284a71!important;}
#filePage .file-cafe-row .download button[data-file-delete] {background:#fff6f6!important;border-color:#f4dfe1!important;color:#b4545a!important;}
#filePage .file-cafe-row .download button.renew-ok {background:#fff2f2!important;border-color:#efcdd0!important;color:#bd3443!important;}
#filePage .file-cafe-row .download a:hover,#filePage .file-cafe-row .download button:hover {filter:brightness(.955)!important;transform:translateY(-1px);}
#filePage .file-upload-panel .workflow-card-head {display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:6px!important;margin:0 0 22px!important;padding:0 0 17px!important;border-bottom:1px solid #e9eff6!important;}
#filePage .file-upload-panel .workflow-card-head strong {display:block!important;color:#192d47!important;font-weight:900!important;font-size:20px!important;letter-spacing:-.04em!important;}
#filePage .file-upload-panel .workflow-card-head span {font-size:12px!important;color:#72829a!important;line-height:1.5!important;font-weight:600!important;}
#filePage .file-upload-panel .file-form {display:grid!important;grid-template-columns:1fr!important;gap:15px!important;margin:0!important;padding:0!important;}
#filePage .file-upload-panel .file-form label {width:100%!important;min-width:0!important;display:grid!important;grid-template-columns:1fr!important;gap:7px!important;font-size:12px!important;font-weight:800!important;color:#394d67!important;margin:0!important;}
#filePage .file-upload-panel .file-form input:not([type=file]),#filePage .file-upload-panel .file-form select,#filePage .file-upload-panel .file-form textarea {box-sizing:border-box!important;width:100%!important;min-width:0!important;height:43px!important;max-width:100%!important;border-radius:10px!important;border:1px solid #dae3ef!important;background:#fafcff!important;color:#182e49!important;font-size:13px!important;padding:10px 12px!important;box-shadow:none!important;outline:0!important;}
#filePage .file-upload-panel .file-form textarea {min-height:104px!important;height:auto!important;resize:vertical!important;line-height:1.5!important;}
#filePage .file-upload-panel .file-form :is(input,select,textarea):focus {border-color:#3f86d9!important;box-shadow:0 0 0 3px rgba(55,126,218,.12)!important;}
#filePage .file-upload-panel .file-form input[type=file] {box-sizing:border-box!important;width:100%!important;min-width:0!important;max-width:100%!important;padding:13px 10px!important;border:1px dashed #b8cae1!important;border-radius:11px!important;background:#f4f8ff!important;color:#385477!important;font-size:12px!important;}
#filePage .file-upload-panel .file-form input[type=file]::file-selector-button {border:1px solid #cbdcf1;background:#fff;color:#164b91;border-radius:8px;padding:8px 10px;margin-right:10px;font-weight:800;cursor:pointer;}
#filePage .file-upload-panel .workflow-field-help {font-size:11px!important;font-weight:550!important;line-height:1.55!important;color:#8799ac!important;}
#filePage .file-upload-panel .workflow-tag-note {margin:0!important;padding:10px 11px!important;border-radius:9px!important;background:#f6f9fe!important;border:1px solid #e8edf6!important;color:#71839a!important;font-size:11px!important;line-height:1.6!important;font-weight:600!important;}
#filePage .file-upload-panel button.primary {box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;min-height:46px!important;border:0!important;border-radius:11px!important;background:linear-gradient(125deg,#1557aa,#16467f)!important;color:#fff!important;font-size:13px!important;font-weight:900!important;cursor:pointer!important;box-shadow:0 6px 15px rgba(23,73,140,.16)!important;}
#filePage .file-upload-panel button.primary:hover {filter:brightness(1.08)!important;}
#filePage .workflow-empty {border-radius:14px!important;border:1px dashed #d4e0ee!important;background:#f9fbff!important;min-height:130px!important;display:grid!important;place-items:center!important;color:#61768f!important;line-height:1.7!important;font-size:13px!important;padding:25px!important;}
#filePage .list-pagination {background:transparent!important;border:0!important;margin:22px 0 0!important;padding:0!important;}
#filePage .list-pagination button {border-radius:9px!important;}
#filePage .list-pagination button.active {background:#163e75!important;border-color:#163e75!important;}
@media(max-width:1310px){
 #filePage .file-cafe-layout{grid-template-columns:minmax(0,1fr)!important;}
 #filePage .file-upload-panel{display:none!important;position:static!important;}
 #filePage .file-upload-panel.show{display:block!important;}
 #filePage .file-toolbar .workflow-search{width:min(350px,100%)!important;}
}
@media(max-width:760px){
 #filePage .file-shell{width:calc(100% - 24px)!important;padding-bottom:150px!important;}
 #filePage .file-top{min-height:0!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:18px!important;padding:25px 21px!important;border-radius:19px!important;margin-bottom:14px!important;}
 #filePage .file-top .subpage-title{flex:1 1 auto!important;}
 #filePage .file-top .subpage-title h2{font-size:30px!important;}
 #filePage .file-top .subpage-title p{font-size:12px!important;margin-top:9px!important;}
 #filePage .file-top .workflow-top-actions{width:100%!important;justify-content:stretch!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;}
 #filePage .file-top .workflow-top-actions .back-btn{width:100%!important;min-height:42px!important;padding:8px!important;font-size:11px!important;}
 #filePage .file-cafe-board-panel{padding:17px 13px!important;border-radius:18px!important;}
 #filePage .file-board-heading h3{font-size:19px!important;}
 #filePage .file-board-heading p{font-size:12px!important;}
 #filePage .file-toolbar{display:grid!important;grid-template-columns:minmax(0,1fr)!important;}
 #filePage .file-toolbar #fileCategoryFilters{flex:1 1 auto!important;gap:6px!important;overflow-x:auto!important;flex-wrap:nowrap!important;max-width:100%!important;padding-bottom:5px!important;}
 #filePage .file-toolbar #fileCategoryFilters button{flex:0 0 auto!important;font-size:11px!important;padding:0 10px!important;height:34px!important;min-height:34px!important;}
 #filePage .file-toolbar .workflow-search{width:100%!important;min-width:0!important;max-width:100%!important;}
 #filePage .file-cafe-row{grid-template-columns:minmax(0,1fr)!important;gap:17px!important;padding:17px!important;border-radius:14px!important;}
 #filePage .file-cafe-row .title strong{font-size:16px!important;}
 #filePage .file-cafe-row .title em{font-size:12px!important;}
 #filePage .file-cafe-row .download.file-card-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;border-left:0!important;border-top:1px solid #e9eff6!important;padding:15px 0 0!important;}
 #filePage .file-cafe-row .file-card-actions-label{grid-column:1/-1!important;margin-bottom:0!important;}
 #filePage .file-cafe-row .download a,#filePage .file-cafe-row .download button{min-height:38px!important;padding:9px 6px!important;font-size:11px!important;}
 #filePage .file-upload-panel{padding:20px!important;}
}
@media(max-width:380px){
 #filePage .file-top .workflow-top-actions{grid-template-columns:1fr!important;}
 #filePage .file-cafe-row .file-card-metadata{align-items:flex-start!important;}
}
/* Dark theme — maintain document contrast; avoid conflicting global dark card rules. */
html.theme-dark #filePage.file-page {--fl-ink:#e5effd;--fl-muted:#9fb1c8;--fl-border:#354a68;background:linear-gradient(#101f33,#101c30)!important;}
html.theme-dark #filePage .file-cafe-board-panel,html.theme-dark #filePage .file-upload-panel,html.theme-dark #filePage .file-cafe-row {background:#17293f!important;border-color:#334966!important;color:#e9f1ff!important;}
html.theme-dark #filePage .file-board-heading h3,html.theme-dark #filePage .file-upload-panel .workflow-card-head strong,html.theme-dark #filePage .file-cafe-row .title strong {color:#edf5ff!important;}
html.theme-dark #filePage .file-board-heading p,html.theme-dark #filePage .file-upload-panel .workflow-card-head span,html.theme-dark #filePage .file-cafe-row .title em {color:#a9bdd4!important;}
html.theme-dark #filePage .file-toolbar #fileCategoryFilters button:not(.active),html.theme-dark #filePage .file-toolbar #fileSearch {background:#1b334f!important;border-color:#3b5473!important;color:#d8e5f8!important;}
html.theme-dark #filePage .file-cafe-row .file-card-metadata,html.theme-dark #filePage .file-cafe-row .download.file-card-actions {border-color:#334964!important;}
html.theme-dark #filePage .file-cafe-row .author,html.theme-dark #filePage .file-cafe-row .file-date-stack,html.theme-dark #filePage .file-cafe-row .title .file-card-attachment{color:#acc6e9!important;}
html.theme-dark #filePage .file-upload-panel .file-form label,html.theme-dark #filePage .file-upload-panel .workflow-tag-note{color:#bed0e7!important;}
html.theme-dark #filePage .file-upload-panel .file-form :is(input,select,textarea),html.theme-dark #filePage .file-upload-panel .file-form input[type=file]{background:#1d3654!important;border-color:#385372!important;color:#edf5ff!important;}
html.theme-dark #filePage .file-upload-panel .workflow-tag-note {background:#1b334c!important;border-color:#385372!important;}
html.theme-dark #filePage .file-cafe-row.renewal-due {background:linear-gradient(115deg,#252d42,#30283a)!important;border-color:#79495a!important;}
html.theme-dark #filePage .file-cafe-row .download button[data-file-edit] {background:#243b59!important;color:#c8dcf3!important;border-color:#49617c!important;}
html.theme-dark #filePage .workflow-empty {background:#1b314c!important;border-color:#385372!important;color:#aec5e2!important;}
/* Final specificity fixes for legacy subpage rules: remove the mobile gap,
   and show the helpful heading text suppressed by old global CSS. */
#filePage .file-top .subpage-title p { display:block!important; }
@media(max-width:1310px){
 #filePage .file-top .subpage-title {flex:0 1 auto!important;}
}
@media(max-width:1180px){
 #filePage.file-page {padding-top:22px!important;}
}
