@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap";:root{--primary: #0f766e;--primary-light: #14b8a6;--primary-dark: #115e59;--primary-trans: rgba(20, 184, 166, .1);--secondary: #0369a1;--secondary-light: #0ea5e9;--success: #22c55e;--danger: #ef4444;--warning: #f59e0b;--bg-app: #f1f5f9;--bg-card: #ffffff;--bg-sidebar: #0f172a;--text-main: #1e293b;--text-muted: #64748b;--text-on-dark: #f8fafc;--border-color: #cbd5e1;--input-bg: #ffffff;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .05), 0 2px 4px -2px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 15px -3px rgba(15, 118, 110, .05), 0 4px 6px -4px rgba(15, 118, 110, .05);--radius-sm: 8px;--radius-md: 14px;--radius-lg: 24px;--font-heading: "Outfit", sans-serif;--font-body: "Inter", sans-serif;--transition: all .25s cubic-bezier(.4, 0, .2, 1)}[data-theme=dark]{--bg-app: #090d16;--bg-card: #131c2e;--bg-sidebar: #070a10;--text-main: #f8fafc;--text-muted: #94a3b8;--border-color: #243048;--input-bg: #1e293b;--primary-trans: rgba(20, 184, 166, .15);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .3)}*{box-sizing:border-box;margin:0;padding:0}html,body{min-height:100%;width:100%;margin:0;padding:0;overflow-x:hidden}body{font-family:var(--font-body);background-color:var(--bg-app);color:var(--text-main);line-height:1.5;transition:background-color .3s,color .3s}.app-container{display:flex;height:100dvh;width:100vw;max-width:100%;overflow:hidden}.sidebar{width:290px;background-color:var(--bg-sidebar);color:var(--text-on-dark);padding:2rem 1.25rem;display:flex;flex-direction:column;flex-shrink:0;z-index:10;box-shadow:4px 0 20px #00000026}.logo-section{display:flex;align-items:center;gap:.85rem;margin-bottom:2.5rem;padding-bottom:1.5rem;border-bottom:1px solid rgba(255,255,255,.08)}.logo-img-wrapper{display:flex;align-items:center;justify-content:center;width:46px;height:46px;background-color:#fff;border-radius:var(--radius-sm);padding:3px;box-shadow:0 4px 12px #ffffff1a}.logo-img{max-width:100%;max-height:100%;object-fit:contain}.logo-text h2{font-size:1.15rem;font-weight:800;color:#fff;line-height:1.2}.logo-text p{font-size:.625rem;color:var(--primary-light);font-weight:700;letter-spacing:.8px;text-transform:uppercase}.nav-links{list-style:none;display:flex;flex-direction:column;gap:.4rem;flex-grow:1}.nav-item{display:flex;align-items:center;gap:.75rem;padding:.8rem 1rem;color:#94a3b8;text-decoration:none;border-radius:var(--radius-sm);font-weight:500;font-size:.925rem;cursor:pointer;transition:var(--transition);border:none;background:transparent;width:100%;text-align:left}.nav-item:hover,.nav-item.active{color:#fff;background-color:#ffffff0f}.nav-item.active{background:linear-gradient(90deg,var(--primary),rgba(20,184,166,.15));border-left:4px solid var(--primary-light);color:#fff}.sidebar-footer{display:flex;flex-direction:column;gap:1.15rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.08)}.theme-toggle-row{display:flex;align-items:center;justify-content:space-between;font-size:.825rem;color:#94a3b8}.theme-toggle-btn{background:#ffffff14;border:none;color:#fff;width:32px;height:32px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition)}.theme-toggle-btn:hover{background:#ffffff26}.connection-row{display:flex;align-items:center;justify-content:space-between;font-size:.825rem;color:#94a3b8}.status-badge{display:flex;align-items:center;gap:.35rem;padding:.25rem .6rem;border-radius:50px;font-size:.725rem;font-weight:700;text-transform:uppercase}.status-badge.connected{background-color:#22c55e1f;color:#22c55e}.status-badge.local{background-color:#f59e0b1f;color:#f59e0b}.main-workspace{flex-grow:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.header-topbar{height:72px;background-color:var(--bg-card);border-bottom:1px solid var(--border-color);padding:0 2rem;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;box-shadow:0 2px 8px #00000005}.header-title h1{font-size:1.45rem;font-weight:750;background:linear-gradient(135deg,var(--primary),var(--primary-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;display:flex;align-items:center;gap:.5rem}.header-actions{display:flex;align-items:center;gap:.75rem}.content-scrollable{flex:1 1 0;min-height:0;padding:2rem;overflow-y:auto;overflow-x:hidden;background-color:var(--bg-app)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{background-color:var(--bg-card);padding:1.5rem;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;transition:var(--transition);position:relative;overflow:hidden}.stat-card:after{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background-color:var(--primary)}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-info{display:flex;flex-direction:column}.stat-label{font-size:.85rem;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:2rem;font-weight:800;color:var(--text-main);line-height:1.2;margin-top:.25rem}.stat-icon{width:48px;height:48px;border-radius:var(--radius-sm);background-color:var(--primary-trans);display:flex;align-items:center;justify-content:center;color:var(--primary)}.info-banner{background-color:#f59e0b14;border:1px solid rgba(245,158,11,.25);color:#b45309;padding:1rem 1.5rem;border-radius:var(--radius-sm);margin-bottom:2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:.9rem}[data-theme=dark] .info-banner{background-color:#f59e0b0d;color:#f59e0b}.info-banner-content{display:flex;align-items:center;gap:.75rem}.info-banner button{background-color:var(--warning);color:#fff;border:none;padding:.4rem .9rem;border-radius:6px;font-weight:700;cursor:pointer;font-size:.8rem;transition:var(--transition)}.info-banner button:hover{background-color:#d97706}.table-card{background-color:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);overflow:hidden;margin-bottom:2rem}.table-header{padding:1.5rem 2rem;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.table-title{font-size:1.2rem;font-weight:700}.table-search-row{display:flex;align-items:center;gap:.75rem;flex-grow:1;max-width:450px}.search-input{width:100%;padding:.55rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--border-color);font-size:.9rem;background-color:var(--input-bg);color:var(--text-main);outline:none}.search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-trans)}.table-responsive{width:100%;overflow-x:auto}.custom-table{width:100%;border-collapse:collapse;text-align:left;font-size:.925rem}.custom-table th{background-color:#00000005;padding:1rem 1.5rem;font-weight:600;color:var(--text-muted);border-bottom:1px solid var(--border-color);text-transform:uppercase;font-size:.75rem;letter-spacing:.5px}[data-theme=dark] .custom-table th{background-color:#ffffff03}.custom-table td{padding:1.15rem 1.5rem;border-bottom:1px solid var(--border-color);vertical-align:middle}.custom-table tr:last-child td{border-bottom:none}.custom-table tr:hover td{background-color:#0f766e05}.table-cell-bold{font-weight:600;color:var(--text-main)}.badge-outline{display:inline-block;padding:.2rem .6rem;border-radius:4px;font-size:.75rem;font-weight:600;border:1px solid var(--border-color)}.actions-cell{display:flex;align-items:center;gap:.5rem}.action-btn{background:none;border:none;width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-muted);transition:var(--transition)}.action-btn:hover{background-color:var(--primary-trans);color:var(--primary)}.action-btn.delete-btn:hover{background-color:#ef44441a;color:var(--danger)}.empty-state{padding:4rem 2rem;text-align:center;color:var(--text-muted)}.empty-state-icon{font-size:3rem;margin-bottom:1rem;color:var(--border-color)}.stepper-container{background-color:var(--bg-card);padding:2rem;border-radius:var(--radius-md);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);margin-bottom:2rem}.stepper-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2.5rem;position:relative;max-width:700px;margin-left:auto;margin-right:auto}.stepper-line{position:absolute;top:18px;left:0;width:100%;height:3px;background-color:var(--border-color);z-index:1}.stepper-line-progress{position:absolute;top:0;left:0;height:100%;background-color:var(--primary);transition:width .3s ease}.stepper-step{display:flex;flex-direction:column;align-items:center;position:relative;z-index:2}.step-number{width:38px;height:38px;border-radius:50%;background-color:var(--bg-card);border:3px solid var(--border-color);color:var(--text-muted);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.95rem;transition:var(--transition)}.stepper-step.active .step-number{border-color:var(--primary);background-color:var(--primary);color:#fff;box-shadow:0 0 0 4px var(--primary-trans)}.stepper-step.completed .step-number{border-color:var(--primary);background-color:var(--primary);color:#fff}.step-label{font-size:.75rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;margin-top:.6rem;letter-spacing:.5px}.stepper-step.active .step-label{color:var(--primary)}.stepper-step.completed .step-label{color:var(--text-main)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem 1.2rem;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.875rem;font-weight:600;cursor:pointer;transition:var(--transition);border:1px solid transparent;outline:none;line-height:1.25;text-decoration:none}.btn-primary{background-color:var(--primary);color:#fff!important}.btn-primary:hover{background-color:var(--primary-dark);box-shadow:0 4px 12px #0f766e40}.btn-primary:disabled{background-color:var(--border-color);color:var(--text-muted);cursor:not-allowed;box-shadow:none}.btn-secondary{background-color:var(--bg-card);border:1px solid var(--border-color);color:var(--text-main)!important}.btn-secondary:hover{background-color:var(--bg-app);border-color:var(--text-muted)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.btn-danger{background-color:#ef44441a;border:1px solid rgba(239,68,68,.2);color:var(--danger)!important}.btn-danger:hover{background-color:var(--danger);color:#fff!important}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.form-grid-full{grid-column:span 2}.form-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.25rem}.form-label{font-size:.85rem;font-weight:600;color:var(--text-main)}.form-input,.form-select,.form-textarea{width:100%;padding:.7rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--border-color);background-color:var(--input-bg);color:var(--text-main);font-family:var(--font-body);font-size:.9rem;outline:none;transition:var(--transition)}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-trans)}.form-textarea{resize:vertical;min-height:110px}.form-helper{font-size:.75rem;color:var(--text-muted)}.section-divider{grid-column:span 2;margin:1rem 0 .5rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color);font-weight:700;font-size:1rem;color:var(--primary)}.dynamic-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.dynamic-row button{background:none;border:none;width:36px;height:36px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition)}.dynamic-row .add-btn{background-color:var(--primary-trans);color:var(--primary)}.dynamic-row .remove-btn{background-color:#ef44441a;color:var(--danger)}.stepper-footer{display:flex;align-items:center;justify-content:space-between;margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0f172aa6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100}.modal-content{background-color:var(--bg-card);border-radius:var(--radius-md);border:1px solid var(--border-color);box-shadow:var(--shadow-lg);width:100%;max-width:550px;padding:2rem;position:relative;max-height:90vh;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.modal-title{font-size:1.25rem;font-weight:700}.modal-close{background:none;border:none;cursor:pointer;color:var(--text-muted);width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:var(--transition)}.modal-close:hover{background-color:var(--border-color);color:var(--text-main)}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--border-color)}.preview-actions-panel{display:flex;align-items:center;justify-content:space-between;background-color:var(--bg-card);border:1px solid var(--border-color);padding:1rem 2rem;border-radius:var(--radius-sm);margin-bottom:1.5rem}.preview-scroll-container{overflow-x:auto;padding:1rem;background-color:#cbd5e1;border-radius:var(--radius-md);display:flex;justify-content:center}[data-theme=dark] .preview-scroll-container{background-color:#0f172a}.print-sheet{width:210mm;min-height:297mm;padding:25mm 20mm 20mm;background-color:#fff;color:#000!important;box-shadow:0 10px 25px #00000026;font-family:Arial,Helvetica,sans-serif;font-size:11pt;line-height:1.4;position:relative;box-sizing:border-box}.print-sheet h1,.print-sheet h2,.print-sheet h3,.print-sheet h4,.print-sheet td,.print-sheet th,.print-sheet p{color:#000!important}.kop-surat{display:flex;align-items:center;border-bottom:3.5px double black;padding-bottom:8px;margin-bottom:20px}.kop-logo{width:65px;margin-right:15px;flex-shrink:0}.kop-logo img{max-width:100%}.kop-teks{text-align:center;flex-grow:1}.kop-kementerian{font-size:11.5pt;font-weight:700;letter-spacing:.5px}.kop-ditjen{font-size:10.5pt;font-weight:500}.kop-institusi{font-size:12pt;font-weight:800;letter-spacing:.5px}.kop-prodi{font-size:11pt;font-weight:700}.kop-alamat{font-size:7.5pt;font-style:italic;margin-top:2px}.document-title-block{text-align:center;margin-bottom:25px}.document-title-block h3{font-family:Arial,sans-serif;font-size:12pt;font-weight:700;text-transform:uppercase;letter-spacing:.5px;text-decoration:underline}.document-title-block p{font-size:11pt;font-weight:700;margin-top:2px}.meta-rows{margin-bottom:20px}.meta-row{display:flex;margin-bottom:4px}.meta-label{width:110px;font-weight:700;flex-shrink:0}.meta-colon{width:15px;flex-shrink:0}.meta-value{flex-grow:1}.print-table{width:100%;border-collapse:collapse;margin-bottom:20px}.print-table th{border:1px solid black;padding:6px 10px;font-weight:700;background-color:#f2f2f2;text-align:left}.print-table td{border:1px solid black;padding:8px 10px;vertical-align:top;line-height:1.4}.sub-header{font-weight:700;margin-top:15px;margin-bottom:6px}.bullet-list{padding-left:20px;margin-top:4px}.bullet-list li{margin-bottom:4px}.signature-block{margin-top:35px;display:flex;justify-content:space-between;page-break-inside:avoid}.signature-col{width:48%;display:flex;flex-direction:column}.signature-col.left-col{align-items:flex-start}.signature-col.right-col{align-items:flex-start;padding-left:0}.signature-date{margin-bottom:5px}.signature-title{margin-bottom:60px;min-height:38px}.signature-name{font-weight:700;text-decoration:underline;white-space:nowrap}.signature-nip{font-size:9.5pt;margin-top:2px}.attachment-page{page-break-before:always;padding-top:15mm}.attachment-title{font-weight:700;font-size:12pt;margin-bottom:20px;text-transform:uppercase;border-bottom:2px solid black;padding-bottom:5px}.attachment-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.attachment-card{border:1px solid #ddd;padding:10px;text-align:center;background-color:#fafafa}.attachment-card img{max-width:100%;max-height:180px;object-fit:contain}.attachment-card p{margin-top:8px;font-weight:700;font-size:9pt}.attachment-link-box{background-color:#eff6ff;border:1px dashed #3b82f6;border-radius:6px;padding:10px 14px;word-break:break-all}.attachment-link-box.document-type{background-color:#ecfdf5;border-color:#10b981}.attachment-url-link{color:#2563eb;font-size:9.5pt;text-decoration:underline;word-break:break-all;display:inline-block;margin-top:4px}.attachment-url-link.document-link{color:#059669}@media (max-width: 900px){body{zoom:100%!important;overflow-y:auto!important}.app-container{flex-direction:column;height:auto!important;min-height:100vh;width:100%!important;overflow-y:auto!important}.sidebar{width:100%!important;height:auto;padding:1.25rem 1rem!important;box-shadow:0 4px 12px #00000026}.logo-section{margin-bottom:1rem!important;padding-bottom:1rem!important}.nav-links{flex-direction:row!important;flex-wrap:wrap!important;gap:.5rem!important}.nav-link{padding:.5rem .85rem!important;font-size:.825rem!important;flex:1 1 auto;justify-content:center}.main-workspace{width:100%!important;height:auto!important;overflow:visible!important}.header-topbar{padding:1rem!important;flex-direction:column;align-items:flex-start!important;gap:.75rem}.header-actions{width:100%;justify-content:flex-start}.content-scrollable{overflow-y:visible!important;height:auto!important;padding:1rem!important}.table-header{flex-direction:column!important;align-items:stretch!important;gap:.75rem!important}.table-responsive{overflow-x:auto!important;-webkit-overflow-scrolling:touch}.custom-table{min-width:680px}.form-grid{grid-template-columns:1fr!important}.form-grid-full,.section-divider{grid-column:span 1!important}.stats-grid{grid-template-columns:1fr!important}.stepper-header{flex-wrap:wrap;gap:.5rem}.stepper-step .step-label{font-size:.75rem}}@media print{body{zoom:100%!important;height:auto!important;width:auto!important;overflow:visible!important}.app-container{transform:none!important;height:auto!important;width:auto!important;display:block!important}.main-workspace{height:auto!important;overflow:visible!important}}
