body {
    font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Arial, sans-serif;
    background: #0f172a;
    color: #e2e8f0;
    margin: 0;
}

/* Login */
.container {
    max-width: 480px;
    margin: 8vh auto;
    padding: 24px;
    background: #111827;
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .4);
}
h1 { margin: 0 0 12px; font-size: 1.4rem; }
p.muted { color: #94a3b8; margin-top: 0; }
label { display: block; margin: .75rem 0 .25rem; }
input[type=text], input[type=password] {
    width: 100%;
    padding: 12px 14px;
    border-radius: 10px;
    border: 1px solid #334155;
    background: #0b1220;
    color: #e2e8f0;
    box-sizing: border-box;
}
button {
    margin-top: 16px;
    width: 100%;
    padding: 12px;
    border: 0;
    border-radius: 10px;
    background: #2563eb;
    color: #fff;
    font-weight: 600;
    cursor: pointer;
}
.msg { margin: 10px 0 0; color: #fda4af; }
.footer { margin-top: 18px; font-size: .9rem; color: #94a3b8; text-align: center; }
a { color: #93c5fd; }

/* Home */
.wrap { max-width: 1000px; margin: 6vh auto; padding: 24px; }
.card {
    background: #111827;
    border-radius: 16px;
    padding: 20px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .4);
    margin-bottom: 24px;
}
a.btn {
    display: inline-block;
    margin-top: 14px;
    padding: 10px 14px;
    background: #2563eb;
    color: #fff;
    border-radius: 10px;
    text-decoration: none;
}
.section h2 { margin: 0 0 10px; }
ul { list-style: none; padding: 0; margin: 0; }
li {
    margin: 6px 0;
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}
.badge {
    font-size: .75rem;
    padding: 2px 8px;
    border-radius: 999px;
    background: #0b1220;
    border: 1px solid #1f2937;
    color: #9ca3af;
}
a.link { color: #93c5fd; text-decoration: none; }
a.link:hover { text-decoration: underline; }
.meta { color: #9ca3af; font-size: .9rem; }
.sep { color: #475569; }
.empty { color: #94a3b8; }
.small { font-size: .9rem; color: #9ca3af; }
.searchbar {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-top: 12px;
}
input[type=search] {
    flex: 1;
    min-width: 200px;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid #334155;
    background: #0b1220;
    color: #e2e8f0;
}
button[type=submit] {
    padding: 10px 12px;
    border-radius: 10px;
    border: 0;
    background: #334155;
    color: #e2e8f0;
    cursor: pointer;
    width: auto;
    margin-top: 0;
}
.clear { margin-left: 8px; }

/* Source viewer */
.source-body { font-family: monospace, monospace; }
.source-wrap { max-width: 1200px; margin: 20px auto; padding: 20px; }
.source-title { font-size: 1.1rem; margin-bottom: 12px; }
pre {
    background: #111827;
    padding: 16px;
    border-radius: 8px;
    overflow-x: auto;
    line-height: 1.4;
}
.line { display: flex; }
.lineno {
    color: #64748b;
    padding-right: 10px;
    text-align: right;
    user-select: none;
    width: 60px;
}
.code { white-space: pre-wrap; word-break: break-word; }
