:root{--primary:#0e4a7f;--primary2:#1b6bb3;--accent:#3aa0e6;--text:#0f172a;--muted:#64748b;--border:#e5e7eb}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Poppins,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial,'Noto Sans',sans-serif;color:var(--text);background:#f8fafc;height:100%}
body{display:flex;flex-direction:column;min-height:100vh}
.brand-text{font-weight:700;color:#0f172a}
.navbar .nav-link{font-weight:600;color:#334155;transition:color .2s ease, transform .2s ease}
.navbar .nav-link:hover{color:var(--primary);transform:translateY(-1px)}
.navbar .nav-link.active{color:var(--primary)}
.main{flex:1 0 auto}
.hero-full{position:relative;min-height:60vh;display:flex;align-items:center;justify-content:center;padding:40px 0}
.hero-bg{position:absolute;inset:0;background:linear-gradient(135deg,#0e4a7f 0%,#1b6bb3 50%,#3aa0e6 100%);opacity:.12}
.card-hero{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:20px;box-shadow:0 20px 50px rgba(27,107,179,.15)}
.hero-badge{display:inline-block;padding:.35rem .6rem;border-radius:999px;background:#f1f5f9;color:#0f4a7f;border:1px solid #e2e8f0;font-weight:700}
.hero-title{font-size:2.4rem;font-weight:800;color:#0f172a;margin-top:.4rem}
.hero-subtitle{color:#64748b;font-size:1.06rem}
.btn-xl{padding:1rem 1.25rem;border-radius:14px;font-weight:700}
.btn-primary-hero{background:linear-gradient(135deg,var(--primary),var(--primary2));border:0;color:#fff;box-shadow:0 12px 30px rgba(27,107,179,.35);transition:transform .15s ease, box-shadow .2s ease}
.btn-primary-hero:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(27,107,179,.45)}
.btn-outline-hero{border:1px solid rgba(15,23,42,.18);color:#0f172a;background:#fff;transition:transform .15s ease, box-shadow .2s ease, background .2s ease}
.btn-outline-hero:hover{transform:translateY(-2px);background:#f8fbff;box-shadow:0 12px 26px rgba(15,23,42,.1)}
.hero-graphic{background:linear-gradient(135deg,#ffffff 0%,#f5f9ff 100%);border-radius:16px;padding:18px}
.hero-graphic-img{width:100%;max-width:240px;height:auto;object-fit:contain;display:block}
.feature-card{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:16px;padding:22px;box-shadow:0 10px 24px rgba(27,107,179,.08)}
.feature-card h5{color:#0f4a7f;font-weight:700;margin-bottom:.4rem}
.feature-text{color:#64748b}
.footer{background:#0b1220;color:#cbd5e1;flex-shrink:0;width:100%}
.auth-body{background:radial-gradient(900px 500px at 10% 10%, #12233a 0%, #0b1220 60%), radial-gradient(900px 500px at 90% 20%, #10243a 0%, #0b1220 60%)}
.auth-body .main{display:flex;align-items:center;justify-content:center;min-height:100vh}
.auth-body .page-wrap{display:flex;align-items:center;justify-content:center;min-height:auto;padding:32px}
.auth-body .auth-container{max-width:640px}
.auth-body .page-card{background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.08));border:1px solid rgba(255,255,255,.18);color:#e5e7eb}
.auth-body .page-title{color:#fff}
.auth-body .page-card{padding:36px}
.auth-body .form input[type="text"], 
.auth-body .form input[type="email"], 
.auth-body .form input[type="password"]{padding:14px;border-radius:12px;font-size:1rem}
.footer-brand{color:#fff;font-weight:700}
.footer-small{color:#94a3b8}
.page-wrap{padding:24px 0}
.page-title{font-size:2rem;font-weight:800;color:#0f172a;margin-bottom:12px}
.section-title{font-size:1.25rem;font-weight:700;color:#0f172a;margin-bottom:.5rem}
.page-card{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:16px;padding:20px;box-shadow:0 10px 24px rgba(27,107,179,.08);margin-bottom:14px}
.form label{display:block;margin-bottom:6px;color:#475569}
.form input[type="text"],.form input[type="email"],.form input[type="password"],.form input[type="date"],.form select,.form textarea{width:100%;padding:10px;border:1px solid var(--border);border-radius:10px;margin-bottom:12px;background:#fff}
.form-inline input,.form-inline select{padding:8px;margin-right:8px}
.form-inline .form-control{margin-right:8px}
.form-inline .form-select{margin-right:8px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid .col-2{grid-column:1/-1}
.hidden{display:none}
.table-responsive{overflow:auto}
.table{width:100%;border-collapse:collapse}
.table th,.table td{border-bottom:1px solid var(--border);padding:10px;text-align:left}
.pagination .page{padding:8px 12px;border:1px solid var(--border);margin-right:6px;border-radius:6px;text-decoration:none;color:#0f172a}
.pagination .active{background:var(--primary);color:#fff;border-color:var(--primary)}
.max-400{max-width:400px}
.timeline-item{display:grid;grid-template-columns:1fr 2fr 1fr;gap:8px;padding:8px;border-bottom:1px dashed var(--border)}
.badge{display:inline-block;padding:.35rem .6rem;border-radius:999px;font-weight:700;font-size:.85rem}
.badge-diterima{background:#bae6fd;color:#0369a1}
.badge-sedang-dikoreksi{background:#fed7aa;color:#c2410c}
.badge-revisi{background:#fecaca;color:#b91c1c}
.badge-paraf-kabag-hukum{background:#e9d5ff;color:#7e22ce}
.badge-selesai{background:#bbf7d0;color:#166534}
.loading{position:fixed;inset:0;background:rgba(255,255,255,.7);display:none;align-items:center;justify-content:center;z-index:9999}
.spinner{width:48px;height:48px;border-radius:50%;border:4px solid #ddd;border-top-color:var(--primary);animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:720px){.grid{grid-template-columns:1fr}.timeline-item{grid-template-columns:1fr}}
