*{box-sizing:border-box}
body{margin:0;background:#0d1117;color:#e6edf3;font-family:Inter,Arial,sans-serif}
.shell{max-width:1100px;margin:auto;padding:40px 22px}
.panel{background:#161b22;border:1px solid #30363d;border-radius:16px;padding:25px}
.login{max-width:420px;margin:12vh auto}
h1,h2{margin-top:0}p{color:#8b949e}
form{display:flex;gap:10px}
input{width:100%;background:#0d1117;color:#fff;border:1px solid #30363d;border-radius:9px;padding:12px 14px;font-size:15px}
button{border:0;border-radius:9px;padding:11px 16px;background:#238636;color:#fff;font-weight:700;cursor:pointer}
button.secondary{background:#30363d}
button:disabled{opacity:.5;cursor:not-allowed}
.hidden{display:none}.error{color:#f85149;margin-top:12px;min-height:20px}
.head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.row{display:flex;gap:20px}.between{justify-content:space-between;align-items:center}
.sources{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px;margin-top:20px}
.source{border:1px solid #30363d;border-radius:12px;padding:14px;background:#0d1117;display:flex;justify-content:space-between;gap:12px;align-items:center}
.source-title{font-weight:800}.source-meta{font-size:12px;color:#8b949e;margin-top:5px}
.index-box{display:flex;align-items:end;justify-content:space-between;gap:15px;flex-wrap:wrap;margin-top:24px;border-top:1px solid #30363d;padding-top:20px}
.index-box label{font-size:13px;color:#8b949e;display:block;margin-bottom:6px}
.index-box input{max-width:180px}
.status{margin-top:15px;color:#8b949e;min-height:22px}.note{margin-top:16px;font-size:13px}
.empty{text-align:center;color:#8b949e;padding:30px}
.switch{display:flex;align-items:center;gap:8px;font-size:12px;color:#8b949e}
.switch input{width:auto}
@media(max-width:700px){.head,.between,.index-box{flex-direction:column;align-items:stretch}.sources{grid-template-columns:1fr}}
