:root{color-scheme:light;--bg: #f0ebff;--bg-deep: #e4dcfa;--panel: #ffffff;--panel-glass: rgba(255, 255, 255, .88);--border: #d4c4f5;--text: #1e1538;--muted: #5c5477;--accent: #6d28d9;--accent-hover: #5b21b6;--accent-soft: #ede9fe;--sidebar: #2e1065;--sidebar-text: #f5f3ff;--aicure-purple-deep: #5036cd;--aicure-purple-bright: #a055f4;--aicure-gradient-start: #aa6de9;--aicure-gradient-end: #83c4ff;--nav-sidebar-bg: rgba(185, 216, 255, .21);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:13px;color:var(--text);background:transparent}*{box-sizing:border-box}body{margin:0}html{overflow-x:hidden;min-height:100%;background:linear-gradient(165deg,#faf5ff 0%,var(--bg) 38%,var(--bg-deep) 72%,#ddd6fe 100%);background-attachment:fixed}a{color:inherit;text-decoration:none}.app-shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:var(--nav-sidebar-bg);color:var(--text);display:flex;flex-direction:column;padding:16px 12px;gap:12px;border-right:1px solid rgba(80,54,205,.14);box-shadow:inset -1px 0 #ffffff73;position:sticky;top:0;align-self:start;height:100vh;max-height:100dvh;min-height:0;overflow:hidden}.brand{display:block;margin:0 0 10px;line-height:0;flex-shrink:0}.brand__logo{display:block;width:100%;max-width:100%;height:auto;max-height:44px;object-fit:contain;object-position:left center;filter:drop-shadow(0 1px 1px rgba(80,54,205,.12))}.sidebar nav{display:flex;flex-direction:column;gap:4px;flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}.sidebar nav a.nav-link{display:inline-flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;color:var(--text)}.sidebar nav a.nav-link:hover{background:#5036cd12}.nav-link__icon{display:inline-flex;line-height:0;flex-shrink:0}.nav-link__icon svg{width:18px;height:18px;display:block;opacity:.92}.sidebar nav a.nav-link.active{background:linear-gradient(90deg,#5036cd24,#83c4ff47);color:var(--accent);box-shadow:0 0 0 1px #5036cd2e}.sidebar nav a.nav-link.active .nav-link__icon svg{opacity:1}.sidebar-footer{flex-shrink:0;padding-top:4px}.main{display:flex;flex-direction:column;min-width:0}.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;column-gap:12px;padding:10px 16px;border-bottom:1px solid var(--border);background:linear-gradient(115deg,#faf5ff 0%,#ebe4ff 18%,#e0efff 42%,rgba(163,196,255,.55) 62%,var(--aicure-gradient-end) 82%,#ede9fe 100%);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 1px #ffffffa6 inset}.topbar-title{font-weight:600;font-size:15px;justify-self:center;text-align:center;min-width:0;max-width:100%}.content{padding:12px 16px 24px}.kpi-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}.kpi{background:var(--panel-glass);border:1px solid var(--border);border-radius:8px;padding:10px 12px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 1px #fff9 inset}.kpi-label{color:var(--muted);font-size:12px}.kpi-value{font-size:22px;font-weight:700}.panel{background:var(--panel-glass);border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin-bottom:12px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 1px #ffffff8c inset}.panel h2{margin:0 0 8px;font-size:13px}.panel-hint{margin:0 0 10px;font-size:12px;color:var(--muted)}.status-pill{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid var(--border);text-transform:capitalize}.status-not_started{background:var(--accent-soft);color:var(--muted);border-color:var(--border)}.status-in_progress{background:#ede9fe;color:#5b21b6;border-color:#c4b5fd}.status-completed{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.status-failed{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.status-unknown{background:#fafafa;color:var(--muted)}.trial-status{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid var(--border);white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.trial-status--empty{background:#f9fafb;color:var(--muted);font-weight:500}.trial-status--open{background:#ecfdf5;color:#047857;border-color:#6ee7b7}.trial-status--pending{background:#fffbeb;color:#b45309;border-color:#fcd34d}.trial-status--active{background:#eff6ff;color:#1d4ed8;border-color:#93c5fd}.trial-status--done{background:#f0fdf4;color:#15803d;border-color:#86efac}.trial-status--hold{background:#fff7ed;color:#c2410c;border-color:#fdba74}.trial-status--closed{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.trial-status--unknown{background:#f4f4f5;color:#52525b;border-color:#d4d4d8}.trial-status--other{background:#faf5ff;color:#7e22ce;border-color:#e9d5ff}.error-inline{margin-top:4px;font-size:11px;color:#b42318;max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.error-banner{margin-bottom:10px;padding:8px 10px;border-radius:6px;font-size:12px;color:#7f1d1d;background:#fef2f2;border:1px solid #fecaca}.btn-sm{padding:4px 8px;font-size:11px}.col-actions{width:100px;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dense-table{width:100%;border-collapse:collapse;font-size:12px}.dense-table th,.dense-table td{border-bottom:1px solid var(--border);padding:6px 8px;text-align:left;vertical-align:top}.filters{display:flex;gap:12px;align-items:flex-end;margin-bottom:10px}.filters label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.filters input{min-width:220px;padding:6px 8px;border-radius:6px;border:1px solid var(--border);background:var(--panel)}.filters input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.filters-actions{display:flex;flex-direction:column;gap:4px;margin-left:auto;align-items:flex-start}.filters-actions__label{font-size:12px;color:var(--muted);line-height:1.25;white-space:nowrap}.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:8px;background:var(--panel-glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn,.btn-ghost{border-radius:6px;border:1px solid var(--border);background:var(--panel);padding:6px 10px;font-size:12px;cursor:pointer}.btn.primary{background:linear-gradient(180deg,#7c3aed 0%,var(--accent) 100%);color:#fff;border-color:#5b21b6;box-shadow:0 1px 2px #5b21b640}.btn.primary:hover:not(:disabled){background:linear-gradient(180deg,#8b5cf6 0%,var(--accent-hover) 100%)}.btn-ghost{background:transparent;color:var(--text);border-color:var(--border)}.btn-ghost--nav{display:inline-flex;align-items:center;gap:10px;width:100%;justify-content:flex-start;padding:8px 10px}.btn-ghost--nav:hover{background:#5036cd14}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(165deg,#faf5ff,#ede9fe 45%,#ddd6fe)}.login-card{width:min(400px,92vw);background:var(--panel-glass);border:1px solid var(--border);border-radius:10px;padding:20px;display:flex;flex-direction:column;gap:10px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 12px 40px #2e10651f}.login-card h1{margin:0 0 6px;font-size:18px}.login-card label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.login-card input{padding:8px 10px;border-radius:6px;border:1px solid var(--border);background:var(--panel)}.login-card input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.error{color:#b42318;font-size:12px}.hint{color:var(--muted);font-size:12px;margin:0}.muted{color:var(--muted);font-size:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.topbar-start{display:flex;align-items:center;gap:10px;min-width:0;justify-self:start}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;justify-self:end;min-width:0}.nav-toggle{display:none;flex-shrink:0;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid var(--border);border-radius:8px;background:var(--panel-glass);cursor:pointer;touch-action:manipulation}.nav-toggle-box{display:flex;flex-direction:column;justify-content:center;gap:5px;width:18px}.nav-toggle-box span{display:block;height:2px;background:var(--text);border-radius:1px}.nav-backdrop{display:none}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -4px;padding:0 4px}.table-scroll .dense-table{min-width:520px}@media (max-width: 900px){:root{font-size:14px}.kpi-row{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.kpi-value{font-size:clamp(1.125rem,4vw,1.375rem)}.grid-2{grid-template-columns:1fr}.filters{flex-direction:column;align-items:stretch}.filters input{min-width:0;width:100%}.topbar{gap:10px;row-gap:8px}.topbar-title{font-size:clamp(15px,2.5vw,17px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.content{padding:10px 12px 20px}.error-inline{max-width:100%;white-space:normal}}@media (max-width: 767px){.app-shell{display:block;min-height:100vh;min-height:100dvh}.nav-toggle{display:inline-flex}.nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;background:#2e10656b;cursor:pointer;border:none;padding:0;margin:0;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.sidebar{position:fixed;top:0;left:0;bottom:0;width:min(280px,88vw);z-index:200;transform:translate(-100%);transition:transform .22s ease;box-shadow:none;height:auto;max-height:none;align-self:stretch;overflow:hidden}.sidebar nav{-webkit-overflow-scrolling:touch}.app-shell.nav-open .sidebar{transform:translate(0);box-shadow:8px 0 32px #0003}.main{min-height:100vh;min-height:100dvh}.dense-table th,.dense-table td{padding:8px 6px}.btn,.btn.primary,.btn-ghost{min-height:40px;touch-action:manipulation}.btn-sm{min-height:36px}}@media (max-width: 480px){.kpi-row{grid-template-columns:1fr}.topbar{grid-template-columns:auto 1fr;grid-template-rows:auto auto}.topbar-start{grid-column:1;grid-row:1}.topbar-actions{grid-column:2;grid-row:1;justify-self:end;width:100%;justify-content:flex-end}.topbar-title{grid-column:1 / -1;grid-row:2}.topbar-actions .btn{flex:1;max-width:100%;text-align:center}}
