:root{--ink:#0f172a;--paper:#f8fafc;--accent:#2563eb;--accent-glow:#2563eb66;--teal:#0d9488;--gold:#f59e0b;--red:#ef4444;--green:#10b981;--border:#0f172a14;--border2:#0f172a0a;--border-glass:#ffffff80;--muted:#64748b;--surface:#f1f5f9;--surface-glass:#ffffffb3;--white:#fff;--grad:linear-gradient(135deg, #3b82f6, #1d4ed8);--grad-teal:linear-gradient(135deg, #14b8a6, #0f766e);--shadow-sm:0 4px 6px -1px #0000000d, 0 2px 4px -1px #00000008;--shadow:0 10px 25px -3px #0000000d, 0 4px 6px -2px #00000008;--shadow-lg:0 20px 40px -5px #2563eb26, 0 8px 10px -5px #2563eb0a;--radius:20px;--radius-sm:12px;--radius-xs:8px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Sora,-apple-system,sans-serif;overflow-x:hidden}h1,h2,h3{letter-spacing:-.03em;line-height:1.2}.mono{font-family:JetBrains Mono,monospace}.gradient-text{background:var(--grad);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.center-screen{justify-content:center;align-items:center;min-height:calc(100vh - 60px);padding:2rem;display:flex}.card-box{background:var(--surface-glass);-webkit-backdrop-filter:blur(24px);border:1px solid var(--border-glass);width:100%;max-width:580px;box-shadow:var(--shadow-lg);border-radius:28px;padding:3rem 2.5rem;animation:.6s cubic-bezier(.22,1,.36,1) popUp;position:relative;overflow:hidden}.card-box:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(circle,#fffc 0%,#fff0 70%);width:200%;height:200%;position:absolute;top:-50%;left:-50%}@keyframes popUp{0%{opacity:0;transform:scale(.92)translateY(12px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.form-group{margin-bottom:1.1rem}.form-label{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem;font-size:.7rem;font-weight:700}.form-input{border:1.5px solid var(--border);width:100%;color:var(--ink);background:#ffffffe6;border-radius:14px;padding:.8rem 1.2rem;font-family:Sora,sans-serif;font-size:.9rem;transition:all .3s cubic-bezier(.25,.8,.25,1);box-shadow:inset 0 2px 4px #00000005}.form-input:focus{border-color:var(--accent);background:var(--white);box-shadow:0 0 0 4px var(--accent-glow);outline:none;transform:translateY(-2px)}textarea.form-input{resize:vertical;min-height:120px;line-height:1.6}select.form-input{cursor:pointer}.form-row{grid-template-columns:1fr 1fr;gap:.8rem;display:grid}.form-err{color:var(--red);margin-top:.4rem;font-size:.78rem;font-weight:600}.btn-primary{background:var(--grad);color:#fff;cursor:pointer;width:100%;box-shadow:0 8px 20px var(--accent-glow);border:none;border-radius:16px;margin-top:.8rem;padding:1.1rem;font-family:Sora,sans-serif;font-size:1.05rem;font-weight:700;transition:all .3s cubic-bezier(.25,.8,.25,1);position:relative;overflow:hidden}.btn-primary:hover{opacity:.88;transform:translateY(-1px)}.btn-primary:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-secondary{width:100%;color:var(--accent);border:2px solid var(--border);cursor:pointer;background:0 0;border-radius:14px;margin-top:.5rem;padding:.85rem;font-family:Sora,sans-serif;font-size:.9rem;font-weight:700;transition:border-color .2s}.btn-secondary:hover{border-color:var(--accent)}.navbar{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);z-index:200;background:#fffffff2;justify-content:space-between;align-items:center;height:60px;padding:0 1.8rem;display:flex;position:sticky;top:0;box-shadow:0 2px 10px #1a4ab60f}.brand{cursor:pointer;align-items:center;gap:.55rem;text-decoration:none;display:flex}.brand-icon{background:var(--grad);border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;font-size:1rem;display:flex;box-shadow:0 3px 10px #1a4ab647}.brand-name{letter-spacing:-.03em;font-size:1.2rem;font-weight:800}.brand-sub{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:.6rem;font-weight:500}.nav-right{align-items:center;gap:.7rem;display:flex}.nav-chip{background:var(--surface);border:1px solid var(--border);color:var(--accent);letter-spacing:.04em;border-radius:20px;padding:4px 11px;font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:700}.step-indicator{justify-content:center;align-items:center;gap:.4rem;margin-bottom:2rem;display:flex}.step-dot{background:var(--border);border-radius:50%;width:8px;height:8px;transition:all .3s}.step-dot.active{background:var(--accent);border-radius:4px;width:24px}.step-dot.done{background:var(--green)}.cards-grid{grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:1.2rem;max-width:1020px;margin:0 auto;padding:0 1.5rem 3rem;display:grid}.exam-card{background:var(--white);border:1.5px solid var(--border2);cursor:pointer;border-radius:22px;padding:1.7rem 1.5rem;transition:all .25s;position:relative;overflow:hidden}.exam-card:hover:not(.done){border-color:var(--accent);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.exam-card.done{opacity:.7;cursor:default}.chat-window{background:var(--white);border:1px solid var(--border);scroll-behavior:smooth;border-radius:18px;flex-direction:column;gap:.75rem;min-height:340px;max-height:380px;padding:1.2rem;display:flex;overflow-y:auto}.chat-window::-webkit-scrollbar{width:4px}.chat-window::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}.msg{gap:.6rem;animation:.28s msgIn;display:flex}@keyframes msgIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.msg.penguji{flex-direction:row}.msg.mahasiswa{flex-direction:row-reverse}.msg.system{justify-content:center}.msg-avatar{background:var(--surface);border:1.5px solid var(--border);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:.95rem;display:flex}.msg-body{max-width:73%}.msg-name{color:var(--muted);margin-bottom:2px;font-size:.66rem;font-weight:700}.msg.mahasiswa .msg-name{text-align:right}.msg-bubble{border-radius:12px;padding:.6rem .9rem;font-size:.84rem;line-height:1.65}.penguji .msg-bubble{background:var(--surface);border:1px solid var(--border);color:var(--ink);border-top-left-radius:3px}.mahasiswa .msg-bubble{background:var(--grad);color:#fff;border-top-right-radius:3px}.msg-bubble.sys-bubble{color:var(--teal);text-align:center;background:#1cb8a314;border:1px dashed #1cb8a34d;border-radius:10px;padding:.5rem 1rem;font-size:.76rem;font-weight:600}.upload-zone{border:2px dashed var(--border);text-align:center;cursor:pointer;background:var(--surface);border-radius:14px;padding:1.5rem;transition:all .25s;position:relative;overflow:hidden}.upload-zone:hover{border-color:var(--accent);background:#1a4ab60a}.upload-zone.dragover{border-color:var(--accent);background:#1a4ab614;transform:scale(1.01)}.upload-zone.has-file{border-color:var(--green);background:#22c55e0a;border-style:solid}.upload-zone input[type=file]{opacity:0;cursor:pointer;position:absolute;inset:0}.dash-wrap{max-width:900px;margin:0 auto;padding:2rem 1.5rem 4rem}.dash-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.dash-card{background:var(--white);border:1px solid var(--border);text-align:center;border-radius:18px;padding:1.3rem;transition:all .2s}.dash-card:hover{box-shadow:var(--shadow)}@media (width<=520px){.card-box{padding:2rem 1.3rem}.form-row{grid-template-columns:1fr}}@media (width<=780px){.chat-window{min-height:240px;max-height:calc(100vh - 300px)}}@media print{.navbar,.btn-primary,.btn-secondary{display:none!important}.card-box{box-shadow:none;border:none;max-width:100%}}
