*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f1117;--surface:#1a1d27;--border:#2a2d3a;--text:#c9cdd8;--text-muted:#666980;--heading:#e8ebf4;--accent:#6c8fef;--accent-hover:#5577d8;--green:#4ade80;--red:#f87171;--yellow:#fbbf24;--sidebar-w:220px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font:14px/1.5 system-ui,Segoe UI,sans-serif}body{min-height:100vh}#root{flex-direction:column;min-height:100vh;display:flex}.app-shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;padding:0;display:flex}.brand{color:var(--heading);border-bottom:1px solid var(--border);padding:20px 18px 16px;font-size:15px;font-weight:600}.nav-list{flex:1;padding:10px 0;list-style:none}.nav-list li{margin:2px 8px}.nav-link{color:var(--text);border-radius:6px;padding:8px 12px;font-size:13px;text-decoration:none;transition:background .15s,color .15s;display:block}.nav-link:hover{background:var(--border);color:var(--heading)}.nav-link.active{background:var(--accent);color:#fff}.sidebar-footer{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding:14px 18px;display:flex}.user-email{color:var(--text-muted);word-break:break-all;font-size:12px}.content{flex:1;padding:32px;overflow-y:auto}.page{max-width:960px}.page h2{color:var(--heading);margin-bottom:20px;font-size:20px}.two-col{gap:32px;max-width:100%;display:flex}.col-left{flex-shrink:0;width:320px}.col-right{flex:1}.col-right h3{color:var(--heading);margin-bottom:16px;font-size:16px}.col-right h4{color:var(--text);text-transform:uppercase;letter-spacing:.5px;margin:18px 0 8px;font-size:13px;font-weight:600}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;margin-bottom:16px;padding:18px}.card h3{color:var(--heading);margin-bottom:10px;font-size:14px}.data-table{border-collapse:collapse;width:100%;font-size:13px}.data-table th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border);padding:8px 10px;font-weight:500}.data-table td{border-bottom:1px solid var(--border);padding:10px}.data-table tr:last-child td{border-bottom:none}.truncate{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.item-list{list-style:none}.item-list li{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;transition:background .1s;display:flex}.item-list li:hover{background:var(--border)}.item-list li.selected{background:#6c8fef26}.item-list li span:first-child{flex:1}.item-list.sm li{cursor:default;padding:5px 8px}.item-list.sm li:hover{background:0 0}.badge{background:var(--border);color:var(--text);white-space:nowrap;border-radius:99px;padding:2px 7px;font-size:11px}.badge.green{color:var(--green);background:#4ade8026}.badge.grey{background:var(--border);color:var(--text-muted)}input,select,button{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;padding:7px 11px}input:focus,select:focus{border-color:var(--accent);outline:none}input::placeholder{color:var(--text-muted)}button{cursor:pointer;background:var(--accent);color:#fff;border:none;padding:7px 14px;transition:background .15s}button:hover{background:var(--accent-hover)}button:disabled{opacity:.5;cursor:not-allowed}.btn-sm{background:var(--border);color:var(--text);padding:4px 10px;font-size:12px}.btn-sm:hover{background:var(--border);color:var(--heading)}.btn-danger{color:var(--red);border:1px solid var(--red);background:0 0}.btn-danger:hover{background:#f871711a}.btn-danger.sm{padding:3px 8px;font-size:12px}.logout-btn{color:var(--text-muted);border:1px solid var(--border);background:0 0;padding:5px 10px;font-size:12px}.logout-btn:hover{color:var(--heading);border-color:var(--text)}.inline-form{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.inline-form input,.inline-form select{flex:1;min-width:120px}.search-bar{margin-bottom:16px;position:relative}.search-bar input{width:100%}.toolbar{margin-bottom:16px}.source-search{margin-bottom:10px;position:relative}.source-search input{width:100%}.dropdown{background:var(--surface);border:1px solid var(--border);z-index:10;border-radius:6px;max-height:220px;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.dropdown li{cursor:pointer;align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:flex}.dropdown li:hover{background:var(--border)}.status-dot{font-size:13px;font-weight:600}.status-dot.green{color:var(--green)}.status-dot.red{color:var(--red)}.error{color:var(--red);margin:8px 0;font-size:13px}.success{color:var(--green);margin:8px 0;font-size:13px}.muted{color:var(--text-muted);font-size:13px}.loading{height:100vh;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:380px;padding:36px}.login-card h1{color:var(--heading);text-align:center;margin-bottom:24px;font-size:20px}.login-card form{flex-direction:column;gap:14px;display:flex}.login-card label{color:var(--text-muted);flex-direction:column;gap:5px;font-size:13px;display:flex}.login-card input,.login-card select{width:100%}.login-card button[type=submit]{margin-top:4px}.enroll-info{text-align:center;margin-bottom:20px;font-size:13px}.enroll-info img{border-radius:6px;margin:12px auto;display:block}.uri-text{word-break:break-all;color:var(--text-muted);margin-top:8px;font-size:10px}details summary{cursor:pointer;color:var(--accent);margin-top:12px;font-size:13px}
