:root{
    --bg:#0d1117;--card:#161b22;--border:#30363d;--text:#c9d1d9;
    --primary:#58a6ff;--primary-hover:#79b8ff;--success:#238636;
    --success-hover:#2ea043;--danger:#da3633;--danger-hover:#f85149;
    --warning:#d29922;--info:#1f6feb;--radius:12px;--shadow:0 8px 24px rgba(0,0,0,.5);
}
*{box-sizing:border-box;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif}
body{background:var(--bg);color:var(--text);min-height:100vh}
a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}

/* Login */
.login-body{display:flex;align-items:center;justify-content:center;padding:2rem}
.login-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:2.5rem;width:100%;max-width:380px;box-shadow:var(--shadow);text-align:center}
.login-card h1{font-size:1.8rem;margin-bottom:.25rem}
.subtitle{color:#8b949e;font-size:.95rem;margin-bottom:1.5rem}
.login-card input{width:100%;padding:.75rem 1rem;margin-bottom:.75rem;background:#0d1117;border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:1rem}
.login-card input:focus{outline:none;border-color:var(--primary)}
.login-card button{width:100%}
.forgot{margin-top:1rem;font-size:.85rem}

/* Buttons */
.btn{display:inline-block;padding:.6rem 1.2rem;border-radius:6px;border:none;font-size:.9rem;cursor:pointer;transition:all .15s;background:var(--border);color:var(--text)}
.btn:hover{filter:brightness(1.2)}
.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}
.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:var(--success-hover)}
.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger-hover)}
.btn-sm{padding:.35rem .7rem;font-size:.8rem}

/* Flash messages */
.flash-messages{margin-bottom:1rem;text-align:left}
.flash{padding:.6rem .8rem;border-radius:6px;font-size:.85rem;margin-bottom:.4rem}
.flash.error{background:rgba(218,54,51,.15);border:1px solid var(--danger);color:var(--danger)}
.flash.success{background:rgba(35,134,54,.15);border:1px solid var(--success);color:var(--success)}
.flash.info{background:rgba(31,111,235,.15);border:1px solid var(--info);color:var(--info)}

/* Portal */
.topbar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}
.brand{font-weight:700;font-size:1.1rem}.brand a{color:var(--text)}
.user{color:#8b949e;font-size:.9rem}
.nav-links{display:flex;gap:1rem}.nav-links a{font-size:.85rem;color:#8b949e}.nav-links a:hover{color:var(--text)}
.portal-main{max-width:960px;margin:3rem auto;padding:0 1.5rem;text-align:center}
.portal-main h1{font-size:2.2rem;margin-bottom:.5rem}
.tagline{color:#8b949e;font-size:1.1rem;margin-bottom:3rem}
.service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;max-width:800px;margin:0 auto}
.service-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;text-align:center;transition:transform .15s,border-color .15s;box-shadow:var(--shadow)}
.service-card:hover{transform:translateY(-4px);border-color:var(--primary);text-decoration:none}
.service-icon{font-size:3rem;margin-bottom:1rem}
.service-card h2{font-size:1.3rem;margin-bottom:.5rem;color:var(--text)}
.service-card p{color:#8b949e;font-size:.9rem}

/* Admin */
.admin-main{max-width:1100px;margin:2rem auto;padding:0 1.5rem}
.admin-main h1{margin-bottom:1.5rem}
.admin-actions{margin-bottom:1.5rem}
.form-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;margin-bottom:1.5rem;max-width:400px}
.form-card input,.form-card label{display:block;width:100%;margin-bottom:.6rem}
.form-card input{padding:.6rem .8rem;background:#0d1117;border:1px solid var(--border);border-radius:6px;color:var(--text)}
.form-card label{color:#8b949e;font-size:.85rem;display:flex;align-items:center;gap:.4rem}
.btn-row{display:flex;gap:.5rem;margin-top:.5rem}
.user-table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.user-table th,.user-table td{padding:.7rem .9rem;text-align:left;border-bottom:1px solid var(--border);font-size:.85rem}
.user-table th{background:rgba(48,54,61,.5);font-weight:600}
.user-table tr:hover{background:rgba(48,54,61,.3)}
.actions{display:flex;gap:.4rem}
.status{padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}
.status.active{background:rgba(35,134,54,.2);color:#3fb950}
.status.inactive{background:rgba(218,54,51,.2);color:var(--danger)}

/* Responsive */
@media(max-width:640px){
    .service-grid{grid-template-columns:1fr}
    .guide-grid{grid-template-columns:1fr}
    .topbar{flex-wrap:wrap;gap:.5rem}
    .user-table th,.user-table td{padding:.5rem;font-size:.75rem}
    .actions{flex-direction:column;gap:.3rem}
}

/* Getting Started Guide */
.guide-section{margin-top:3rem;text-align:left}
.guide-section h2{font-size:1.5rem;margin-bottom:1.5rem;color:var(--text);text-align:center}
.guide-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;max-width:900px;margin:0 auto}
.guide-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow)}
.guide-card h3{font-size:1.1rem;margin-bottom:.75rem;color:var(--primary)}
.guide-card p{color:#8b949e;font-size:.9rem;margin-bottom:1rem;line-height:1.5}
.guide-card ol{margin-left:1.2rem;color:#8b949e;font-size:.85rem;line-height:1.6}
.guide-card ol li{margin-bottom:.4rem}
.guide-card code{display:block;background:rgba(48,54,61,.5);padding:.6rem .8rem;border-radius:6px;font-size:.8rem;color:#58a6ff;margin-top:.5rem}
.guide-card .note{margin-top:.75rem;padding:.5rem .75rem;background:rgba(217,119,6,.1);border-left:3px solid var(--warning);border-radius:0 6px 6px 0;font-size:.8rem;color:#8b949e}
.guide-card a{color:var(--primary);text-decoration:underline}
.guide-card a:hover{color:var(--primary-hover)}
.guide-card strong{color:var(--warning)}
