* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'Segoe UI', system-ui, sans-serif; background: #0f172a; color: #e2e8f0; min-height: 100vh; }
.wrap { max-width: 760px; margin: 0 auto; padding: 1rem; }
nav { display: flex; gap: .6rem; flex-wrap: wrap; padding: .8rem 1rem; background: #1e293b; border-bottom: 1px solid #334155; }
nav a { color: #cbd5e1; text-decoration: none; font-weight: 600; font-size: .9rem; padding: .3rem .7rem; border-radius: 8px; }
nav a:hover { background: #334155; color: #fff; }
.hero { text-align: center; padding: 3rem 1rem 2rem; }
.hero h1 { font-size: 2.2rem; font-weight: 900; }
.gold { color: #fbbf24; }
.tag { color: #fbbf24; font-weight: 700; letter-spacing: .5px; margin: .4rem 0; }
.card { background: #1e293b; border: 1px solid #334155; border-radius: 14px; padding: 1.2rem; margin: 1rem 0; }
.card h2 { margin-bottom: .6rem; }
.center { text-align: center; }
.grid5 { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: .8rem; }
.big { font-size: 1.8rem; }
.muted { color: #94a3b8; font-size: .9rem; }
.err { color: #f87171; margin-top: .8rem; font-weight: 600; }
.btn { display: inline-block; background: linear-gradient(135deg, #f59e0b, #f97316); color: #0f172a; font-weight: 800; padding: .7rem 1.4rem; border-radius: 999px; border: 0; cursor: pointer; text-decoration: none; margin: .4rem .2rem; font-size: .95rem; }
.btn:hover { filter: brightness(1.1); }
.btn.ghost { background: transparent; color: #fbbf24; border: 2px solid #fbbf24; }
.auth { max-width: 420px; margin: 3rem auto; }
.auth input, .auth select { width: 100%; padding: .75rem; margin: .5rem 0; border-radius: 10px; border: 1px solid #475569; background: #0f172a; color: #e2e8f0; font-size: 1rem; }
.auth .btn { width: 100%; }
.ok { border-color: #22c55e; }
.badge { display: inline-block; background: #334155; padding: .35rem .8rem; border-radius: 999px; margin: .2rem; font-size: .85rem; }
.skill-row { display: flex; align-items: center; gap: 1rem; background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 1rem; margin: .5rem 0; text-decoration: none; color: inherit; }
.skill-row:hover { border-color: #fbbf24; }
.grow { flex: 1; }
.bar { height: 8px; background: #334155; border-radius: 99px; margin-top: .4rem; overflow: hidden; }
.fill { height: 100%; background: linear-gradient(90deg, #f59e0b, #22c55e); border-radius: 99px; }
.hari { display: flex; align-items: center; gap: .8rem; background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: .8rem 1rem; margin: .45rem 0; text-decoration: none; color: inherit; }
.hari.selesai { border-color: #22c55e; }
.hari.lock { opacity: .5; }
.hari p { font-size: .85rem; }
textarea#prompt { width: 100%; background: #0f172a; color: #a5f3fc; border: 1px solid #475569; border-radius: 10px; padding: .8rem; font-size: .85rem; margin: .6rem 0; }
table { width: 100%; border-collapse: collapse; font-size: .9rem; }
th, td { padding: .5rem; text-align: left; border-bottom: 1px solid #334155; }
.soal { background: #1e293b; border: 1px solid #334155; border-radius: 10px; padding: 1rem; margin: .7rem 0; }
.soal label { display: block; padding: .35rem 0; cursor: pointer; }
.footer { text-align: center; color: #64748b; font-size: .8rem; padding: 2rem 1rem 1rem; }
