:root{--ink:#163152;--muted:#6f849d;--line:rgba(255,255,255,.52);--glass:rgba(244,250,255,.48);--glass-strong:rgba(255,255,255,.66);--blue:#187ce5;--aqua:#0ab8ce;--red:#f55f70;--green:#23bd7b;--shadow:0 18px 45px rgba(38,106,166,.13)}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--ink);font-family:'DM Sans',sans-serif;background:#dff3fa}.backdrop{position:fixed;inset:0;z-index:-2;background:radial-gradient(circle at 15% 89%,#0c92e7 0 4%,transparent 23%),radial-gradient(circle at 88% 9%,#ffc45e 0 4%,transparent 23%),radial-gradient(circle at 96% 35%,#ff9180 0 6%,transparent 31%),linear-gradient(135deg,#d4eef6 0%,#e6effe 50%,#ffe2d7 100%)}.backdrop:after{content:'';position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.35),rgba(255,255,255,.05));backdrop-filter:blur(1px)}.app-shell{display:grid;grid-template-columns:250px 1fr;max-width:1520px;min-height:calc(100vh - 56px);margin:28px auto;border:1px solid var(--line);border-radius:26px;overflow:hidden;background:rgba(218,239,249,.38);backdrop-filter:blur(16px);box-shadow:0 25px 65px rgba(28,90,148,.17)}.sidebar{padding:31px 18px;display:flex;flex-direction:column;border-right:1px solid rgba(99,152,192,.16);background:rgba(213,239,249,.36)}.brand{display:flex;align-items:center;gap:11px;padding:0 15px 31px;color:var(--ink);text-decoration:none;font-family:Outfit}.brand b{display:block;letter-spacing:1px;font-size:17px}.brand small{display:block;color:var(--muted);font-family:'DM Sans';font-size:10px;letter-spacing:.5px}.brand-mark{display:grid;place-items:center;width:35px;height:35px;border-radius:12px;background:linear-gradient(135deg,var(--aqua),var(--blue));color:#fff;font-size:22px;box-shadow:0 7px 17px #1d9cdd66}.menu-label{margin:0 15px 11px;color:#7e9ab2;font-size:10px;font-weight:700;letter-spacing:.9px}nav a,.sidebar-bottom>a{display:flex;gap:13px;align-items:center;padding:12px 14px;margin:2px 0;border-radius:11px;color:#55718d;text-decoration:none;font-size:14px;font-weight:600;transition:.2s}nav a:hover,nav a.active{background:rgba(255,255,255,.6);box-shadow:0 5px 15px rgba(54,121,174,.08);color:#14304e}nav a::first-letter{color:var(--blue)}.sidebar-bottom{margin-top:auto}.team{margin:22px 8px 0;padding:15px;border-radius:13px;background:rgba(255,255,255,.3);color:#66819a;font-size:11px;line-height:1.7}.team b{color:#456680;font-size:10px}.topbar{height:92px;display:flex;align-items:center;gap:20px;padding:22px 32px}.global-search{height:46px;max-width:700px;flex:1;display:flex;align-items:center;gap:12px;padding:0 15px;border:1px solid rgba(255,255,255,.75);border-radius:13px;background:rgba(255,255,255,.6);box-shadow:0 8px 25px rgba(75,143,192,.08)}.global-search span{font-size:24px;color:#627f96}.global-search input{min-width:0;flex:1;border:0;outline:0;background:transparent;font:inherit;color:var(--ink)}kbd{font-size:10px;color:#8da1b1;border:1px solid #c5d7e3;border-radius:5px;padding:3px 5px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12px;color:#668198}.live-dot{width:7px;height:7px;background:#20c87b;border-radius:50%;box-shadow:0 0 0 4px #20c87b2a}.avatar,.chat-float{border:0;cursor:pointer;color:#fff;background:linear-gradient(135deg,#13bdd1,#1979e4);box-shadow:0 9px 18px #178ee25c}.avatar{width:38px;height:38px;border-radius:50%;margin-left:10px;font-size:17px}.page{padding:10px 32px 35px}.page-head{display:flex;justify-content:space-between;align-items:end;margin:0 0 21px}.eyebrow{font-size:11px;letter-spacing:.8px;color:#68869e;font-weight:700;text-transform:uppercase}.page h1{font-family:Outfit;margin:5px 0 0;font-size:28px;letter-spacing:-.6px}.page-intro{color:var(--muted);font-size:13px;margin:5px 0 0}.glass{border:1px solid var(--line);border-radius:18px;background:var(--glass);box-shadow:var(--shadow);backdrop-filter:blur(15px)}.grid{display:grid;gap:18px}.stats{grid-template-columns:repeat(4,1fr)}.stat{min-height:126px;padding:20px}.stat .stat-label{color:#748aa0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.stat strong{display:block;margin-top:13px;font-size:30px;font-family:Outfit}.stat small{color:#6f899f}.trend{float:right;font-size:23px;color:var(--green)}.trend.red{color:var(--red)}.main-grid{grid-template-columns:1.55fr .82fr;margin-top:18px}.panel{padding:20px}.panel h2{margin:0 0 15px;font-size:14px;font-family:Outfit}.panel-head{display:flex;justify-content:space-between;align-items:center}.panel-link{border:0;background:none;color:var(--blue);font:inherit;font-size:12px;cursor:pointer}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;color:#7490a7;font-size:10px;text-transform:uppercase;letter-spacing:.4px;padding:10px 8px;border-bottom:1px solid #b9d5e44a}td{padding:12px 8px;border-bottom:1px solid #c7dce74a;color:#355773;vertical-align:top}.drug-cell b{display:block;color:#203e59}.drug-cell small{color:#7690a5}.badge{display:inline-block;border-radius:30px;padding:4px 8px;font-size:10px;font-weight:700}.badge.current{color:#c33e50;background:#ffe8e9}.badge.resolved{color:#149568;background:#dcf9ee}.badge.neutral{color:#2577bc;background:#e4f2ff}.source-list{display:grid;gap:9px}.source-item{display:flex;align-items:center;gap:11px;padding:8px;border-radius:10px}.source-icon{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#d9f6f8;color:#008aa3}.source-item b{font-size:12px}.source-item small{margin-left:auto;color:#6f8aa2}.chart{display:flex;gap:8px;align-items:end;height:154px;padding:10px 2px;border-bottom:1px solid #c5dce5}.bar{flex:1;min-width:8px;background:linear-gradient(180deg,#21c2d3,#2382e6);border-radius:6px 6px 1px 1px;opacity:.88}.bar:nth-child(3n){background:linear-gradient(180deg,#76e5cc,#20b981)}.bar-labels{display:flex;justify-content:space-between;color:#7d96aa;font-size:10px;margin-top:7px}.controls{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:17px}.controls input,.controls select,.input{height:40px;border:1px solid #bcd9e7b0;border-radius:10px;padding:0 12px;background:#ffffff8f;color:var(--ink);font:inherit;outline:0}.controls input{min-width:260px;flex:1}.button{border:0;border-radius:10px;background:linear-gradient(135deg,#138edc,#0abbd0);padding:11px 15px;color:white;font:600 12px 'DM Sans';cursor:pointer}.button.secondary{background:#edf8ff;color:#2974ad;border:1px solid #bde4f2}.data-table{overflow:auto}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:15px;font-size:12px;color:#68849b}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.detail-field{padding:12px;border-radius:11px;background:#fff8;border:1px solid #d8ebf3}.detail-field small{display:block;color:#7690a4;font-size:10px}.detail-field b{display:block;font-size:12px;margin-top:4px;word-break:break-word}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px}.tab{background:#edf8ff;border:1px solid #c5e3ef;color:#4882a7;border-radius:20px;padding:7px 11px;font-size:11px;cursor:pointer}.tab.active{background:#187ee2;color:#fff;border-color:#187ee2}.empty{padding:30px;text-align:center;color:#6f8a9f}.notice{padding:13px;border-radius:11px;background:#e8f7ff;color:#3d708e;font-size:12px}.chat-float{position:fixed;left:26px;bottom:24px;width:48px;height:48px;border-radius:50%;font-size:21px;z-index:10}.chat{position:fixed;left:24px;bottom:84px;width:340px;max-height:650px;z-index:10;display:flex;flex-direction:column;border:1px solid #fff9;border-radius:18px;overflow:hidden;background:rgba(238,249,254,.93);box-shadow:0 20px 55px #23679142;backdrop-filter:blur(18px)}.chat.hidden{display:none}.chat header{display:flex;justify-content:space-between;padding:15px 17px;border-bottom:1px solid #cae1eb}.chat header small{display:block;color:#7892a7;font-size:10px}.chat header button{background:none;border:0;font-size:22px;color:#58758e;cursor:pointer}.chat-messages{min-height:180px;max-height:480px;overflow:auto;padding:14px}.assistant-message,.user-message{padding:10px;border-radius:10px;font-size:12px;line-height:1.5;margin:0 0 8px}.assistant-message{background:#fff;color:#45637c}.user-message{background:#d7f2fb;margin-left:28px}#chatForm{display:flex;gap:7px;padding:10px;border-top:1px solid #cfe6ef}#chatInput{min-width:0;flex:1;border:1px solid #c6e1eb;border-radius:8px;padding:9px;outline:0}#chatForm button{border:0;background:#1687df;color:#fff;border-radius:8px;padding:0 10px;font-size:11px}.mobile-menu{display:none}.raw{white-space:pre-wrap;max-height:350px;overflow:auto;background:#153450;color:#d9f4ff;padding:14px;border-radius:12px;font-size:11px}@media(max-width:900px){.app-shell{grid-template-columns:1fr;margin:0;border-radius:0;min-height:100vh}.sidebar{display:none}.sidebar.open{display:flex;position:fixed;inset:0 20% 0 0;z-index:20}.mobile-menu{display:block;border:0;background:none;font-size:22px}.topbar{height:72px;padding:13px 17px}.page{padding:10px 17px 30px}.stats,.main-grid{grid-template-columns:1fr 1fr}.system-status,kbd{display:none}.detail-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.stats,.main-grid,.detail-grid{grid-template-columns:1fr}.global-search{max-width:none}.top-actions{margin-left:0}.page h1{font-size:23px}.chat{left:12px;right:12px;width:auto}.chat-float{left:15px;bottom:15px}}

/* Top level search bar styling */
.top-level-controls {
    margin-bottom: 22px;
    padding: 16px 20px;
    background: rgba(255, 255, 255, 0.45);
    border: 1px solid rgba(255, 255, 255, 0.75);
    border-radius: 16px;
    box-shadow: 0 8px 25px rgba(25, 89, 143, 0.1);
    backdrop-filter: blur(20px);
}
.top-level-controls input {
    background: rgba(255, 255, 255, 0.9);
}


/* CMS & Data Table formatting */
.data-table table {
    font-size: 11.5px !important;
    width: 100%;
}
.data-table th, .data-table td {
    padding: 10px 8px !important;
    white-space: nowrap; /* Prevent ugly vertical stretching */
}
.data-table {
    overflow-x: auto; /* Allows smooth horizontal scrolling if too wide */
    width: 100%;
}



/* Table Sorting Styles */
th {
    cursor: pointer;
    user-select: none;
    transition: background 0.2s, color 0.2s;
    position: relative;
}
th:hover {
    background: rgba(0, 0, 0, 0.03);
    color: var(--ink);
}
th.sort-asc, th.sort-desc {
    color: #14304e;
    font-weight: 700;
}
.sort-icon {
    display: inline-block;
    margin-left: 4px;
    font-size: 10px;
    color: #0abbd0;
}
