:root{--success: #22c55e;--warning: #f59e0b;--danger: #ef4444}[data-theme=dark]{--primary: #2c5aa0;--primary-glow: rgba(44, 90, 160, .4);--bg-gradient: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);--nav-bg: rgba(15, 23, 42, .8);--glass: rgba(255, 255, 255, .05);--glass-border: rgba(255, 255, 255, .1);--text: #f8fafc;--text-dim: #94a3b8;--card-shadow: rgba(0, 0, 0, .37);--input-bg: rgba(255, 255, 255, .03)}[data-theme=light]{--primary: #2c5aa0;--primary-glow: rgba(44, 90, 160, .2);--bg-gradient: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);--nav-bg: rgba(255, 255, 255, .8);--glass: rgba(255, 255, 255, .7);--glass-border: rgba(0, 0, 0, .05);--text: #2d3436;--text-dim: #475569;--card-shadow: rgba(0, 0, 0, .1);--input-bg: rgba(0, 0, 0, .03)}*{margin:0;padding:0;box-sizing:border-box;font-family:Outfit,sans-serif}body{min-height:100vh;background:var(--bg-gradient);color:var(--text);display:flex;justify-content:center;padding:0;overflow-x:hidden}#app{width:100%;max-width:480px;min-height:100vh;display:flex;flex-direction:column}.glass-panel{background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:24px;padding:30px 20px;box-shadow:0 8px 32px 0 var(--card-shadow)}.glass-panel-sm{background:var(--glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--glass-border);border-radius:16px;padding:15px}.hidden{display:none!important}#login-section{margin:auto;width:90%}.header{text-align:center;margin-bottom:30px}.logo{width:70px;margin-bottom:15px}.glass-nav{position:fixed;top:0;left:0;right:0;background:var(--nav-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:100;border-bottom:1px solid var(--glass-border)}.nav-content{max-width:480px;margin:0 auto;padding:12px 20px;display:flex;justify-content:space-between;align-items:center}.nav-user{display:flex;align-items:center;gap:10px}.nav-avatar{width:35px;height:35px;border-radius:50%;border:1.5px solid var(--primary)}#display-name{font-size:14px;font-weight:600}.nav-actions{display:flex;align-items:center;gap:8px}.nav-btn,.theme-btn{background:var(--glass);border:1px solid var(--glass-border);color:var(--text);border-radius:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-family:inherit;transition:all .3s}.theme-btn{width:40px;height:40px;font-size:18px}.nav-btn{padding:8px 12px;gap:6px}.nav-btn:hover,.theme-btn:hover{background:var(--primary-glow);transform:translateY(-2px)}.nav-btn .btn-label{font-size:10px;font-weight:800;letter-spacing:.5px}.content-area{margin-top:70px;margin-bottom:90px;padding:0 15px;flex:1}.view-header{margin-bottom:20px}.view-header h3{font-size:20px;margin-bottom:4px}.view-header p{font-size:13px;color:var(--text-dim)}.status-banner{background:#22c55e1a;border:1px solid rgba(34,197,94,.2);color:var(--success);border-radius:20px;padding:15px;display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.banner-info h4{font-size:10px;letter-spacing:1px;opacity:.8}.banner-info p{font-size:14px;font-weight:700;margin-top:2px}.banner-time{font-size:20px;font-weight:800;border-left:2px solid rgba(34,197,94,.1);padding-left:10px}.alumni-card{background:var(--nav-bg);border-radius:24px;padding:30px 20px;margin-bottom:20px;text-align:center;border:1px solid var(--glass-border);box-shadow:0 10px 30px var(--card-shadow);position:relative;overflow:hidden}.alumni-card:before{content:"";position:absolute;top:-50px;right:-50px;width:150px;height:150px;background:var(--primary-glow);border-radius:50%;filter:blur(40px);z-index:0}.alumni-card>*{position:relative;z-index:1}.alumni-badge-top{display:inline-block;background:var(--input-bg);color:var(--text-dim);font-size:10px;font-weight:800;padding:6px 14px;border-radius:20px;letter-spacing:1px;margin-bottom:15px}.alumni-nama{font-size:26px;font-weight:800;color:var(--text);margin-bottom:20px;text-transform:uppercase}.alumni-info-grid{display:flex;justify-content:center;align-items:center;gap:20px;margin-bottom:30px}.alumni-info-col{display:flex;flex-direction:column;align-items:center}.alumni-info-label{font-size:10px;color:var(--text-dim);font-weight:700;letter-spacing:1px;margin-bottom:4px}.alumni-info-val{font-size:16px;font-weight:800;color:var(--text)}.alumni-info-divider{width:1px;height:30px;background:var(--glass-border)}.alumni-status-box{background:var(--input-bg);border:1px solid var(--glass-border);border-radius:20px;padding:25px 20px;margin-bottom:25px}.alumni-status-label{font-size:11px;color:var(--text-dim);font-weight:800;letter-spacing:2px;margin-bottom:10px}.alumni-status-lulus{font-size:56px;font-weight:900;color:#2c5aa0;font-style:italic;line-height:1;text-shadow:0 4px 12px rgba(44,90,160,.2)}.alumni-footer-title{font-size:18px;font-weight:800;color:var(--primary);margin-bottom:10px}.alumni-footer-text{font-size:13px;color:var(--text-dim);font-style:italic;line-height:1.6}.stats-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:15px}.stats-item{text-align:center}.stats-val{display:block;font-size:18px;font-weight:800;color:var(--success)}.stats-val.warning{color:var(--warning)}.stats-lbl{font-size:10px;color:var(--text-dim)}.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:15px}.action-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;aspect-ratio:1/1;padding:10px!important;cursor:pointer;transition:all .2s}.action-card:active{transform:scale(.92);background:var(--primary-glow)}.card-icon{font-size:22px}.card-text{font-size:11px;font-weight:600;text-align:center}.info-box h5{font-size:13px;margin-bottom:5px;color:var(--primary)}.info-box p{font-size:12px;color:var(--text-dim);line-height:1.6}.telegram-card{margin-bottom:20px}.telegram-card.active{border-color:#22c55e4d;background:#22c55e0d}.tele-header{display:flex;gap:15px;align-items:center;margin-bottom:15px}.tele-icon{font-size:24px}.tele-text h6{font-size:11px;color:var(--primary);margin-bottom:2px}.tele-text p{font-size:12px;color:var(--text-dim);line-height:1.4}.telegram-card.active .tele-text h6{color:var(--success)}.btn-tele{display:block;width:100%;padding:12px;background:#08c;color:#fff;text-decoration:none;text-align:center;border-radius:12px;font-size:13px;font-weight:700;transition:transform .2s}.btn-tele:active{transform:scale(.98)}.list-container{display:flex;flex-direction:column;gap:15px}.log-card{position:relative}.log-date{font-size:11px;color:var(--text-dim);font-weight:700;margin-bottom:8px;text-transform:uppercase}.log-times{display:flex;gap:20px}.time-box span{display:block}.time-val{font-size:16px;font-weight:700}.time-lbl{font-size:10px;color:var(--text-dim)}.log-status{position:absolute;top:20px;right:20px;font-size:10px;font-weight:800;padding:4px 8px;border-radius:6px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--nav-bg);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);display:flex;justify-content:space-around;padding:12px 10px 25px;border-top:1px solid var(--glass-border)}.nav-item{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--text-dim);cursor:pointer;transition:all .2s}.nav-item.active{color:var(--primary)}.nav-icon{font-size:20px}.nav-label{font-size:10px;font-weight:600}.form-group{margin-bottom:20px}label{display:block;font-size:12px;color:var(--text-dim);margin-bottom:8px}input{width:100%;background:var(--input-bg);border:1px solid var(--glass-border);border-radius:12px;padding:14px;color:var(--text);font-size:16px}input:focus{outline:none;border-color:var(--primary)}button{width:100%;padding:14px;border-radius:12px;border:none;font-weight:700;cursor:pointer}#login-btn{background:var(--primary);color:#fff;margin-top:10px}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.modal-content{width:100%;max-width:400px;background:var(--nav-bg);border:1px solid var(--glass-border);border-radius:24px;padding:25px}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-body{font-size:13px;line-height:1.6}.modal-body ol{padding-left:20px;margin-bottom:20px}.modal-body li{margin-bottom:8px}.close-modal{background:var(--glass);border:1px solid var(--glass-border);width:30px;height:30px;border-radius:50%;padding:0;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--text)}.detail-row{margin-bottom:12px;padding-bottom:12px;border-bottom:1px dashed var(--glass-border)}.detail-row:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.detail-label{display:block;font-size:10px;color:var(--primary);font-weight:800;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.detail-val{font-size:14px;font-weight:600;color:var(--text)}.modal-photo-container{display:flex;justify-content:center;margin-bottom:20px}.modal-photo{width:100px;height:100px;border-radius:20px;object-fit:cover;border:3px solid var(--primary);box-shadow:0 4px 12px var(--primary-glow)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.kelulusan-container{max-width:100%;background:#fff;border-radius:24px;padding:30px 20px;box-shadow:0 10px 30px var(--card-shadow);text-align:center;color:#333;animation:slideUp .6s ease-out;border:1px solid var(--glass-border)}[data-theme=dark] .kelulusan-container{background:#f8fafc}.kelulusan-logo{width:80px;margin-bottom:15px}.kelulusan-title{font-size:32px;font-weight:900;color:#0b2c6b;line-height:1.1;margin-bottom:10px}.kelulusan-title span{display:block;color:#f59e0b}.kelulusan-subtitle{background:#0b2c6b;color:#fff;padding:6px 15px;border-radius:20px;display:inline-block;margin:10px 0;font-size:12px;font-weight:700;letter-spacing:.5px}.kelulusan-year{margin:10px 0;font-size:16px;color:#475569}.kelulusan-year span{background:#0b2c6b;color:#fff;padding:2px 8px;border-radius:6px;font-weight:700}.kelulusan-desc{font-size:13px;color:#1e293b;margin:15px 0;line-height:1.5}.kelulusan-box{background:linear-gradient(90deg,#0b2c6b,#1e4fa3);color:#fff;padding:15px;border-radius:20px;font-size:28px;font-weight:900;margin:20px 0;box-shadow:0 4px 15px #0b2c6b4d}.kelulusan-info-box{text-align:left;background:#f1f5f9;padding:20px;border-radius:16px;margin-top:20px;border:1px solid rgba(0,0,0,.05)}.kelulusan-info-row{margin-bottom:12px;display:flex;align-items:center;border-bottom:1px dotted #cbd5e1;padding-bottom:8px}.kelulusan-info-row:last-child{margin-bottom:0;border-bottom:none}.kelulusan-label{width:100px;font-weight:700;font-size:12px;color:#64748b;margin:0}.kelulusan-val{flex:1;font-weight:800;font-size:14px;color:#0f172a}.kelulusan-keterangan{background:#f8fafc;padding:15px;border-radius:12px;margin-top:20px;font-size:12px;border-left:4px solid #0b2c6b;text-align:left;color:#475569}.kelulusan-footer{margin-top:25px;font-size:10px;color:#94a3b8;font-weight:600}.waiting-icon{font-size:40px;margin-bottom:15px;animation:pulse 2s infinite}@keyframes pulse{0%{transform:scale(1);opacity:.8}50%{transform:scale(1.1);opacity:1}to{transform:scale(1);opacity:.8}}.countdown-item{background:var(--input-bg);border:1px solid var(--glass-border);border-radius:12px;padding:10px;min-width:65px;display:flex;flex-direction:column;align-items:center}.cd-val{font-size:20px;font-weight:800;color:var(--primary);display:block}.cd-lbl{font-size:9px;color:var(--text-dim);font-weight:700;text-transform:uppercase;margin-top:2px}.jurnal-tabs-control{display:flex;background:var(--input-bg);border:1px solid var(--glass-border);padding:4px;border-radius:12px;margin-bottom:20px}.jurnal-tab-btn{flex:1;padding:10px;font-size:12px;font-weight:700;border-radius:8px;background:transparent;color:var(--text-dim);border:none;transition:all .2s;cursor:pointer}.jurnal-tab-btn.active{background:var(--primary);color:#fff;box-shadow:0 4px 12px var(--primary-glow)}.jurnal-star-rating{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:4px;font-size:26px}.jurnal-star-rating input{display:none}.jurnal-star-rating label{color:#fff3;cursor:pointer;transition:color .1s ease;margin:0;display:inline-block}[data-theme=light] .jurnal-star-rating label{color:#00000026}.jurnal-star-rating input:checked~label,.jurnal-star-rating label:hover,.jurnal-star-rating label:hover~label{color:#f59e0b}.ql-toolbar.ql-snow{background:#ffffff0d!important;border-color:var(--glass-border)!important;border-top-left-radius:12px;border-top-right-radius:12px}.ql-container.ql-snow{border-color:var(--glass-border)!important;border-bottom-left-radius:12px;border-bottom-right-radius:12px;font-family:Outfit,sans-serif!important;font-size:14px!important}.ql-editor{background:#0000001a!important;color:var(--text)!important;border-bottom-left-radius:12px;border-bottom-right-radius:12px;min-height:150px}[data-theme=light] .ql-toolbar.ql-snow{background:#00000005!important}[data-theme=light] .ql-editor{background:#fff9!important}.form-group select,.form-group input[type=date]{width:100%;background:var(--input-bg);border:1px solid var(--glass-border);border-radius:12px;padding:14px;color:var(--text);font-size:15px;font-family:inherit}.form-group select:focus,.form-group input[type=date]:focus{outline:none;border-color:var(--primary)}.form-group input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary);cursor:pointer}.btn-remove-link{border-radius:10px;border:none;color:#fff!important;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.jurnal-card{position:relative;display:flex;flex-direction:column;gap:12px}.jurnal-card-header{display:flex;justify-content:space-between;align-items:flex-start}.jurnal-card-mapel-badge{font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;padding:4px 10px;border-radius:8px;background:var(--primary-glow);color:var(--primary);border:1px solid rgba(44,90,160,.15)}.jurnal-card-stars{color:#f59e0b;font-size:12px;letter-spacing:1px}.jurnal-card-topik{font-size:16px;font-weight:800;color:var(--text);line-height:1.3}.jurnal-card-ringkasan{font-size:13px;color:var(--text-dim);line-height:1.5;background:#0000001a;padding:10px;border-radius:10px;border:1px solid var(--glass-border)}[data-theme=light] .jurnal-card-ringkasan{background:#ffffff4d}.jurnal-card-ringkasan p{margin-bottom:6px}.jurnal-card-ringkasan p:last-child{margin-bottom:0}.jurnal-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:4px}.jurnal-card-meta{display:flex;flex-direction:column;gap:2px}.jurnal-card-date{font-size:11px;color:var(--text-dim);font-weight:700}.jurnal-card-pr{font-size:10px;font-weight:800;padding:2px 8px;border-radius:6px;width:fit-content}.jurnal-card-pr.belum{background:#ef444426;color:#ef4444;border:1px solid rgba(239,68,68,.2)}.jurnal-card-pr.selesai{background:#22c55e26;color:#22c55e;border:1px solid rgba(34,197,94,.2)}.jurnal-card-refs{display:flex;gap:6px}.jurnal-ref-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:#ffffff0d;border:1px solid var(--glass-border);color:var(--text-dim);font-size:12px;text-decoration:none;transition:all .2s}.jurnal-ref-btn:hover{background:var(--primary-glow);color:var(--primary);transform:translateY(-2px)}.jurnal-card-actions{display:flex;gap:6px}.jurnal-action-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:10px;border:none;font-size:13px;cursor:pointer;transition:all .2s}.jurnal-action-btn.edit{background:#f59e0b26;color:#f59e0b}.jurnal-action-btn.edit:hover{background:#f59e0b;color:#fff}.jurnal-action-btn.delete{background:#ef444426;color:#ef4444}.jurnal-action-btn.delete:hover{background:#ef4444;color:#fff}.btn-clear{background:var(--glass);border:1px solid var(--glass-border);color:var(--text-dim);border-radius:12px;cursor:pointer;transition:all .2s}.btn-clear:hover{background:#ef44441a;color:#ef4444}select option{color:#1e293b!important;background-color:#fff!important}[data-theme=dark] select option{color:#f8fafc!important;background-color:#1e293b!important}@media(min-width:1024px){body{display:flex;justify-content:center;align-items:flex-start;padding:30px 20px}#app{max-width:1200px;width:100%}#login-section{max-width:420px;width:100%;margin:80px auto}#dashboard-section{display:grid;grid-template-columns:260px 1fr;grid-template-rows:auto 1fr;gap:25px;width:100%;align-items:flex-start}.glass-nav{grid-column:2;grid-row:1;position:static;border-radius:16px;margin-bottom:0;border:1px solid var(--glass-border);box-shadow:0 4px 20px var(--card-shadow)}.nav-content{max-width:100%;padding:14px 20px}.content-area{grid-column:2;grid-row:2;margin-top:0;margin-bottom:0;padding:0;display:flex;flex-direction:column;min-width:0}.bottom-nav{grid-column:1;grid-row:1 / span 2;position:relative;inset:0 auto auto 0;width:260px;height:auto;min-height:calc(100vh - 60px);flex-direction:column;justify-content:flex-start;gap:12px;padding:40px 20px 25px;background:var(--nav-bg);border:1px solid var(--glass-border);border-radius:24px;box-shadow:0 10px 30px var(--card-shadow);flex-shrink:0}.nav-item{flex-direction:row;width:100%;padding:14px 20px;border-radius:14px;gap:15px;justify-content:flex-start;transition:all .3s cubic-bezier(.4,0,.2,1);background:#ffffff05;border:1px solid transparent}[data-theme=light] .nav-item{background:#00000003}.nav-item:hover{background:var(--primary-glow);border-color:var(--glass-border);transform:translate(5px)}.nav-item.active{background:var(--primary);color:#fff;box-shadow:0 6px 20px var(--primary-glow);border-color:transparent}.nav-item.active .nav-icon{font-size:22px}.nav-item.active .nav-label{color:#fff}.nav-label{font-size:13px;font-weight:700;letter-spacing:.5px}.home-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:25px;align-items:start}#jurnal-list{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.stats-grid{gap:15px}.stats-val{font-size:22px}.glass-panel-sm{transition:all .3s cubic-bezier(.4,0,.2,1);border:1px solid var(--glass-border)}.glass-panel-sm:hover{transform:translateY(-3px);box-shadow:0 10px 25px var(--card-shadow);border-color:var(--primary)}}
