:root{--ink:#183246;--muted:#6f7f8d;--line:#e6edf1;--blue:#146a9a;--navy:#10344f;--pale:#f5f8fa;--white:#fff;--green:#197b56;--amber:#b87910;--red:#b94545}*{box-sizing:border-box}body{margin:0;background:var(--pale);color:var(--ink);font:15px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.app-shell{display:flex;min-height:100vh}.sidebar{width:254px;background:#112f47;color:#eaf2f7;padding:24px 14px 18px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:5}.brand{display:flex;align-items:center;gap:10px;padding:2px 12px 32px;color:#fff;text-decoration:none;font-size:17px;font-weight:700;line-height:1.05}.brand-mark{display:grid;place-items:center;width:35px;height:35px;border-radius:10px;background:#28a4aa;font-size:20px}nav{display:grid;gap:5px}.nav-link{border:0;background:transparent;color:#c8d6df;text-align:left;padding:11px 12px;border-radius:9px;font:inherit;cursor:pointer}.nav-link span{display:inline-grid;width:23px;color:#a7c6d8}.nav-link:hover,.nav-link.active{background:#244c65;color:#fff}.sidebar-bottom{margin-top:auto;border-top:1px solid #31536a;padding-top:12px}.user-chip{border:0;width:100%;display:flex;gap:9px;align-items:center;background:transparent;color:white;padding:14px 11px 4px;text-align:left;cursor:pointer}.user-chip small{display:block;color:#abc0ce;font-size:12px}.avatar{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#dcecf2;color:#24506b;font-size:11px;font-weight:800}.main-content{margin-left:254px;width:calc(100% - 254px);padding:0 38px 48px}.topbar{height:76px;display:flex;align-items:center;justify-content:flex-end;gap:16px;border-bottom:1px solid var(--line);margin-bottom:34px}.search-wrap{margin-right:auto;display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:9px;background:white;width:min(410px,55vw);padding:0 12px;color:#789}.search-wrap input{height:39px;border:0;outline:0;width:100%;font:inherit}.notification,.mobile-user,.menu-toggle{border:0;background:transparent;position:relative;font-size:21px;color:#436175;cursor:pointer}.notification i{position:absolute;top:-7px;right:-8px;background:#d9465e;color:#fff;font:700 10px/18px system-ui;border-radius:20px;width:18px}.mobile-user,.menu-toggle{display:none}.view{max-width:1450px;margin:auto}.hidden{display:none}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px}h1,h2,p{margin:0}h1{font-size:29px;letter-spacing:-.6px}h2{font-size:17px;letter-spacing:-.2px}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:#51829b;font-weight:800;margin-bottom:5px}.muted,.panel-heading p{color:var(--muted);margin-top:3px}.primary-button,.secondary-button,.text-button{border:0;border-radius:8px;font:600 14px inherit;cursor:pointer}.primary-button{background:var(--blue);color:white;padding:11px 15px;box-shadow:0 3px 8px #146a9a33}.primary-button:hover{background:#0d587f}.secondary-button{background:#eef3f5;color:#456174;padding:10px 13px}.text-button{background:transparent;color:#17658e;padding:5px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.stat-card,.panel{background:white;border:1px solid var(--line);border-radius:12px;box-shadow:0 2px 4px #102e4305}.stat-card{display:flex;align-items:center;gap:14px;padding:19px}.stat-card p{font-size:13px;color:var(--muted)}.stat-card strong{font-size:27px;line-height:1.15}.stat-card small{font-size:12px;color:#8c9ba5}.stat-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;font-weight:900;font-size:21px}.blue{background:#e2f1f8;color:#1675a4}.amber{background:#fff1d9;color:var(--amber)}.red{background:#fae7e7;color:var(--red)}.green{background:#e2f4ec;color:var(--green)}.dashboard-columns{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.9fr);gap:20px;margin-bottom:20px}.panel{padding:20px}.panel-heading{display:flex;justify-content:space-between;align-items:start;margin-bottom:17px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th{color:#80909c;font-size:11px;letter-spacing:.04em;font-weight:800;padding:0 8px 11px;white-space:nowrap}td{border-top:1px solid var(--line);padding:13px 8px;vertical-align:middle;font-size:13px}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}.request-title{font-weight:700;color:#1a3b50;display:block}.request-subtitle{font-size:11px;color:#84939d;margin-top:2px}.status{display:inline-block;padding:4px 8px;border-radius:99px;font-size:11px;font-weight:800;white-space:nowrap}.status-new{background:#e8f1f6;color:#427087}.status-progress{background:#e9f4f8;color:#17729a}.status-waiting{background:#fff2d9;color:#a0660a}.status-done{background:#e5f4eb;color:#267554}.open-request{border:0;background:transparent;color:#37708f;font-size:18px;cursor:pointer}.request-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.request-card{position:relative;border:1px solid var(--line);border-radius:10px;padding:16px;cursor:pointer;background:#fff;min-height:174px;transition:.15s}.request-card:hover{border-color:#80b4cc;box-shadow:0 5px 14px #17405714;transform:translateY(-2px)}.request-card-top,.request-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.request-card-number{font-size:12px;color:#467991;font-weight:800}.request-card h3{font-size:16px;line-height:1.32;margin:14px 0}.request-card-meta{display:grid;gap:4px;color:#6f808b;font-size:12px}.request-card-meta b{color:#2d5265}.request-card-footer{margin-top:15px;padding-top:11px;border-top:1px solid var(--line);font-size:11px;color:#81929c}.compact-cards{grid-template-columns:repeat(2,minmax(190px,1fr))}.compact-cards .request-card{min-height:164px}.note-list{display:grid;gap:0}.note-item{padding:0 0 15px 29px;position:relative;border-left:1px solid #d9e3e7;margin-left:8px}.note-item:last-child{border-left-color:transparent;padding-bottom:0}.note-item:before{content:"";position:absolute;left:-5px;top:3px;width:9px;height:9px;background:#2b93a6;border-radius:50%;border:2px solid white;box-shadow:0 0 0 1px #bad1dc}.note-author{font-size:13px;font-weight:800}.note-time{font-size:11px;color:#8796a0;margin-left:5px}.note-text{font-size:13px;color:#506674;margin-top:3px}.institution-summary{margin-bottom:10px}.institution-cards,.institution-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.institution-card{border:1px solid var(--line);border-radius:10px;padding:16px;cursor:pointer;background:#fff;transition:.15s}.institution-card:hover{border-color:#8cb6ca;box-shadow:0 4px 12px #18425d12;transform:translateY(-1px)}.institution-card h3{font-size:15px;margin:0 0 15px}.institution-meta{display:flex;justify-content:space-between;color:#71818c;font-size:12px}.institution-meta b{color:#22465a;font-size:15px}.institution-grid{grid-template-columns:repeat(auto-fill,minmax(245px,1fr))}.institution-grid .institution-card{min-height:144px}.filters{padding:15px;margin-bottom:17px}.filter-row{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.filter-row label{display:grid;gap:5px;min-width:170px}.filter-row label span,form label span{font-size:12px;font-weight:800;color:#657784}select,input,textarea{border:1px solid #d7e2e7;border-radius:7px;background:#fff;color:#233f51;font:14px inherit;padding:9px 10px;outline:none}select:focus,input:focus,textarea:focus{border-color:#50a3c7;box-shadow:0 0 0 3px #50a3c71c}.full{width:100%}.empty-state{text-align:center;padding:62px}.empty-state>span{font-size:32px;color:#3a91b1}.empty-state h2{margin-top:11px}.empty-state p{color:var(--muted);margin-top:5px}dialog{border:0;border-radius:14px;padding:0;width:min(570px,calc(100vw - 28px));box-shadow:0 24px 70px #09203455}dialog::backdrop{background:#0b263a77}dialog form{padding:23px}.dialog-heading{display:flex;justify-content:space-between;align-items:start;margin-bottom:21px}.dialog-heading h2{font-size:21px}.icon-button{border:0;background:#edf3f5;color:#385969;border-radius:7px;width:31px;height:31px;font-size:23px;line-height:1;cursor:pointer}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label,form>label{display:grid;gap:5px}.form-grid textarea{min-height:92px;resize:vertical}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:23px}.detail-drawer{position:fixed;z-index:21;top:0;right:0;width:min(570px,100vw);height:100dvh;background:#fff;box-shadow:-15px 0 40px #0c2e4533;padding:21px;transform:translateX(105%);transition:transform .22s ease;overflow:auto}.detail-drawer.open{transform:none}.drawer-backdrop{position:fixed;z-index:20;inset:0;background:#092a3c55;opacity:0;pointer-events:none;transition:.2s}.drawer-backdrop.open{opacity:1;pointer-events:auto}.drawer-head{display:flex;justify-content:space-between;align-items:center}.tracking-number{font-size:12px;color:#4a849f;font-weight:800}.detail-title{margin:20px 0 5px;font-size:25px}.detail-meta{display:flex;gap:8px;flex-wrap:wrap;color:#70838f;font-size:13px;margin:12px 0 20px}.detail-description{background:#f4f8fa;border-radius:9px;padding:13px;color:#48606f;font-size:14px}.detail-section{margin-top:25px}.detail-section h3{font-size:15px;margin:0 0 13px}.detail-note{border:1px solid var(--line);border-radius:9px;padding:13px;margin-top:10px}.detail-note-header{display:flex;justify-content:space-between;gap:10px;font-size:12px}.detail-note-header b{color:#21465b}.detail-note-header time{color:#81929e}.detail-note p{margin-top:7px;color:#526975;font-size:14px}.add-note{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:12px}.add-note input{min-width:0}.file-pill{display:inline-flex;gap:6px;align-items:center;border:1px solid #cae1eb;background:#f2f9fc;border-radius:6px;padding:5px 7px;font-size:12px;color:#236784;margin-top:9px}.menu-toggle{margin-right:auto}@media(max-width:1050px){.stat-grid{grid-template-columns:repeat(2,1fr)}.dashboard-columns{grid-template-columns:1fr}.institution-cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.sidebar{transform:translateX(-105%);transition:.2s}.sidebar.open{transform:none}.main-content{margin-left:0;width:100%;padding:0 16px 32px}.topbar{height:64px;margin-bottom:24px}.menu-toggle,.mobile-user{display:block}.search-wrap{width:auto;flex:1}.notification{display:none}.page-heading{align-items:start;flex-direction:column;margin-bottom:21px}.page-heading .primary-button{align-self:stretch}.stat-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:13px;gap:9px}.stat-icon{width:34px;height:34px;font-size:17px}.stat-card strong{font-size:22px}.stat-card small{display:none}.panel{padding:15px}.institution-cards,.compact-cards{grid-template-columns:1fr}.dashboard-columns{gap:14px;margin-bottom:14px}.filter-row label{flex:1;min-width:calc(50% - 8px)}.filter-row .secondary-button{width:100%}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.detail-drawer{padding:16px}.detail-title{font-size:22px}}
/* Compact top navigation: the application has no persistent left sidebar. */
#appShell[hidden]{display:none!important}.app-shell{display:block}.main-content{margin-left:0;width:100%;padding:0 38px 48px}.topbar{height:auto;min-height:76px;max-width:1450px;margin:0 auto 34px;justify-content:flex-start;gap:18px}.topbar .brand{padding:0;color:var(--ink);flex-shrink:0}.top-navigation{display:flex;align-items:center;gap:3px}.top-navigation .nav-link{color:#5d7483;padding:8px 9px;white-space:nowrap}.top-navigation .nav-link:hover,.top-navigation .nav-link.active{background:#e7f1f5;color:#174b68}.topbar .search-wrap{margin-left:auto;margin-right:0}.top-user{display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:13px;color:#365264}.top-user .avatar{width:31px;height:31px}@media(max-width:950px){.topbar{gap:10px}.top-navigation .nav-link{padding:7px 6px;font-size:13px}.top-user b{display:none}}@media(max-width:760px){.main-content{padding:0 16px 32px}.topbar{min-height:64px;margin-bottom:24px;gap:8px;flex-wrap:wrap}.topbar .brand{font-size:14px}.topbar .brand-mark{width:30px;height:30px;font-size:17px}.top-navigation{order:3;width:100%;overflow-x:auto}.top-navigation .nav-link{padding:7px 8px}.topbar .search-wrap{order:2;flex:1;min-width:160px}.top-user{display:none}}
/* Authenticated file handling in request detail. */
.attachment-upload{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-bottom:12px}.attachment-upload input{min-width:0;padding:8px}.attachment-list{display:grid;gap:8px}.attachment-item{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:9px;padding:10px}.attachment-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:8px;background:#e7f4f8;color:#17658e;font-size:11px;font-weight:800}.attachment-copy{min-width:0;flex:1}.attachment-copy b,.attachment-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-copy small{color:#7a8b96;font-size:11px;margin-top:2px}.attachment-actions{display:flex;gap:3px}.attachment-empty{color:#80919b;font-size:13px;padding:4px 0}.preview-dialog{width:min(1050px,calc(100vw - 28px));height:min(88vh,820px)}.preview-dialog form{height:100%;padding:15px}.preview-dialog .dialog-heading{margin-bottom:10px}.preview-content{height:calc(100% - 44px);display:grid;place-items:center;background:#f4f8fa;border-radius:8px;overflow:hidden}.preview-content iframe,.preview-content img{width:100%;height:100%;border:0;object-fit:contain}@media(max-width:600px){.attachment-upload{grid-template-columns:1fr}.attachment-upload .primary-button{width:100%}.attachment-item{align-items:flex-start}.attachment-actions{flex-direction:column}.preview-dialog{width:100vw;height:100dvh;border-radius:0}}
.request-update-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}.request-update-form label{display:grid;gap:5px}.request-update-form label:first-child,.request-update-form button{grid-column:1/-1}.request-update-form span{font-size:12px;font-weight:800;color:#657784}.request-update-form button{justify-self:start}@media(max-width:600px){.request-update-form{grid-template-columns:1fr}.request-update-form button{width:100%}}
.danger-text{color:#b94545!important}
.note-actions{display:flex;align-items:center;gap:5px}.note-actions .text-button{font-size:11px;padding:2px 4px}
#noteEditForm textarea{min-height:150px;resize:vertical}
.user-management{display:grid;gap:9px}.user-card{display:flex;align-items:center;gap:11px;border:1px solid var(--line);border-radius:10px;padding:12px}.user-copy{flex:1;min-width:0}.user-copy b,.user-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-copy small{color:#71838f;font-size:12px;margin-top:2px}.user-actions{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.form-help{font-size:12px;color:#71838f;margin-top:12px}@media(max-width:600px){.user-card{align-items:flex-start}.user-actions{flex-direction:column;align-items:stretch}.user-actions .text-button{text-align:right}}
.due-date{color:#637d8d}.due-date.overdue{color:#b94545}.due-date.overdue b{color:#b94545}
.audit-panel{margin-top:20px}.audit-history{display:grid;gap:0}.audit-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 0;border-top:1px solid var(--line);font-size:13px}.audit-item:first-child{border-top:0;padding-top:0}.audit-item b,.audit-item small{display:block}.audit-item small{color:#71838f;font-size:11px;margin-top:2px}.audit-item>span{color:#7b8c96;font-size:11px;white-space:nowrap}@media(max-width:600px){.audit-item{align-items:flex-start;flex-direction:column;gap:3px}}
.notifications-button{position:relative;border:0;background:transparent;font-size:19px;cursor:pointer;padding:8px}.notifications-button i{position:absolute;top:1px;right:0;display:grid;place-items:center;min-width:17px;height:17px;padding:0 4px;border-radius:99px;background:#c84646;color:#fff;font:700 10px system-ui;font-style:normal}.reminder-panel{margin-bottom:20px}.reminder-list{display:grid;gap:8px}.reminder-item{width:100%;display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:10px;text-align:left;color:var(--ink);cursor:pointer}.reminder-item:hover{border-color:#81b2c8;background:#f8fbfc}.reminder-item>span{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:#e6f3f7;color:#17658e}.reminder-item>div{min-width:0;flex:1}.reminder-item b,.reminder-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reminder-item small{color:#72848f;font-size:12px;margin-top:2px}.reminder-item time{text-align:right;color:#617985;font-size:11px}.reminder-item time em{display:block;color:#b87910;font-style:normal;font-weight:800;margin-top:2px}.reminder-item.overdue>span{background:#fae7e7;color:#b94545}.reminder-item.overdue time em{color:#b94545}@media(max-width:760px){.notifications-button{margin-left:auto}.reminder-item{align-items:flex-start}.reminder-item time{white-space:nowrap}}
.section-help{color:#71838f;font-size:12px;margin:-7px 0 12px}.request-history{border:1px solid var(--line);border-radius:10px;padding:0 13px}.request-history-item{position:relative;padding:12px 0 12px 20px;border-top:1px solid var(--line)}.request-history-item:first-child{border-top:0}.request-history-item:before{content:"";position:absolute;left:0;top:17px;width:8px;height:8px;border-radius:50%;background:#2b93a6;box-shadow:0 0 0 3px #e5f3f7}.request-history-item b,.request-history-item small{display:block}.request-history-item small{color:#71838f;font-size:11px;margin-top:2px}.request-history-item p{color:#526975;font-size:12px;margin-top:5px;overflow-wrap:anywhere}
