:root{--tum-blue:#0065bd;--tum-blue-dark:#005299;--bg-primary:#fff;--bg-secondary:#f5f5f5;--border-color:#ddd;--text-primary:#333;--text-secondary:#666;--text-muted:#999;--success-color:#11812d;--warning-color:#e37222;--error-color:#c4071b;--font-family:Arial, Helvetica, sans-serif;--transition-smooth:all .2s ease-in-out}[hidden]{display:none!important}svg.lucide{flex-shrink:0;width:16px;height:16px}*{box-sizing:border-box;font-family:var(--font-family);-webkit-font-smoothing:antialiased;margin:0;padding:0}body{background-color:var(--bg-secondary);color:var(--text-primary);flex-direction:column;height:100vh;display:flex;overflow:hidden}a{color:var(--tum-blue);text-decoration:none}a:hover{text-decoration:underline}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-color)}::-webkit-scrollbar-thumb:hover{background:#bbb}.view-container{flex-direction:column;height:100vh;display:none}.view-container.active{display:flex}h1,h2,h3,h4,h5,h6{color:var(--tum-blue);font-weight:700}#landing-container{background-color:var(--bg-primary);justify-content:center;align-items:center}.landing-card{background:var(--bg-primary);border:1px solid var(--border-color);width:100%;max-width:500px;padding:2rem;box-shadow:0 2px 10px #0000000d}.app-logo-large{object-fit:contain;border-radius:24px;width:160px;height:160px;margin:0 auto 1.5rem;transition:transform .3s;display:block;box-shadow:0 8px 24px #0000000f}.app-logo-large:hover{transform:scale(1.04)}.landing-title{text-align:center;color:var(--text-primary);margin-bottom:.5rem;font-size:1.5rem}.landing-subtitle{text-align:center;color:var(--text-secondary);margin-bottom:2rem;font-size:.9rem}.btn{cursor:pointer;transition:var(--transition-smooth);border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1rem;font-size:.9rem;font-weight:600;display:inline-flex}.btn-primary{background-color:var(--tum-blue);color:#fff}.btn-primary:hover{background-color:var(--tum-blue-dark)}.btn-secondary{background-color:var(--bg-primary);border-color:var(--border-color);color:var(--text-primary)}.btn-secondary:hover{background-color:#f0f0f0}.btn-full-width{width:100%}.auth-tabs{border-bottom:1px solid var(--border-color);margin-bottom:1.5rem;display:flex}.auth-tab{text-align:center;cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:.75rem;font-size:.95rem;font-weight:600}.auth-tab.active{color:var(--tum-blue);border-bottom:2px solid var(--tum-blue)}.form-group{margin-bottom:1rem}.form-group label{color:var(--text-secondary);margin-bottom:.25rem;font-size:.85rem;font-weight:600;display:block}.form-group input,.form-group select{border:1px solid var(--border-color);background-color:var(--bg-primary);width:100%;color:var(--text-primary);padding:.6rem .75rem;font-size:.9rem}.form-group input:focus,.form-group select:focus{border-color:var(--tum-blue);outline:none}.app-layout{background-color:var(--bg-primary);flex-direction:column;width:100%;height:100%;display:flex}.top-navbar{background-color:var(--bg-primary);border-bottom:2px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;height:60px;padding:0 1.5rem;display:flex}.nav-logo-group{cursor:pointer;background:0 0;border:none;align-items:center;gap:1rem;display:flex}.app-logo-small{object-fit:contain;border-radius:8px;width:42px;height:42px;transition:transform .3s;box-shadow:0 2px 6px #0000000d}.app-logo-small:hover{transform:scale(1.08)}.app-title{color:var(--tum-blue);font-size:1.1rem;font-weight:700}.nav-right{align-items:center;gap:1.5rem;display:flex}.wallet-badge{color:var(--tum-blue);background-color:#eaf3fb;border-radius:0;align-items:center;gap:.4rem;padding:.3rem .75rem;font-size:.9rem;font-weight:600;display:flex}.user-profile{align-items:center;gap:.75rem;display:flex}.username{color:var(--text-primary);font-size:.9rem}.btn-logout{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;align-items:center;display:flex}.btn-logout:hover{color:var(--tum-blue)}.main-content{flex-grow:1;width:100%;max-width:1200px;margin:0 auto;padding:2rem;overflow-y:auto}.sub-view-section{display:none}.sub-view-section.active{display:block}.view-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:flex-end;margin-bottom:2rem;padding-bottom:1rem;display:flex}.view-title{color:var(--text-primary);margin-bottom:.25rem;font-size:1.5rem;font-weight:400}.view-description{color:var(--text-secondary);font-size:.9rem}.search-bar{border:1px solid var(--border-color);background-color:var(--bg-primary);align-items:center;gap:.5rem;width:300px;padding:.6rem .75rem;display:flex}.search-bar:focus-within{border-color:var(--tum-blue)}.search-bar i,.search-bar svg{color:var(--text-muted);flex-shrink:0;width:16px;height:16px}.search-bar input{width:100%;color:var(--text-primary);font-family:var(--font-family);background:0 0;border:none;outline:none;font-size:.9rem}.search-bar input::placeholder{color:var(--text-muted)}.unlocked-list{flex-direction:column;gap:.5rem;display:flex}.drag-drop-zone{border:2px dashed var(--border-color);text-align:center;background-color:var(--bg-primary);cursor:pointer;margin-bottom:1rem;padding:2rem 1rem}.drag-drop-zone:hover,.drag-drop-zone:focus-visible,.drag-drop-zone.is-dragover{border-color:var(--tum-blue);outline:none}.drop-zone-content svg{width:24px;height:24px;color:var(--tum-blue);margin-bottom:.5rem}.main-drop-text{color:var(--text-primary);font-size:.9rem;font-weight:600}.drop-zone-selected:not([hidden]){flex-direction:column;align-items:center;gap:.5rem;display:flex}.btn-link{color:var(--tum-blue);cursor:pointer;background:0 0;border:none;font-size:.85rem;text-decoration:underline}.forgot-password{margin:.75rem auto 0;display:block}.modal-overlay{z-index:1000;opacity:0;pointer-events:none;background:#00000080;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.modal-overlay.open{opacity:1;pointer-events:auto}.modal-content{background:var(--bg-primary);border:1px solid var(--border-color);width:400px;max-width:90%;padding:2rem;position:relative;box-shadow:0 4px 12px #00000026}.modal-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;font-size:1.5rem;position:absolute;top:1rem;right:1rem}.modal-title{color:var(--text-primary);margin-bottom:1.5rem;font-size:1.25rem}.order-summary{background:var(--bg-secondary);border:1px solid var(--border-color);margin-bottom:1rem;padding:1rem}.order-row{justify-content:space-between;margin-bottom:.5rem;font-size:.9rem;display:flex}.order-row.highlighted{color:var(--tum-blue);font-weight:700}.order-row.total{border-top:1px solid var(--border-color);margin-bottom:0;padding-top:.5rem;font-weight:700}.price{font-family:monospace}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:.35rem .8rem;font-size:.85rem}.btn-center{margin:0 auto;display:flex}.list{flex-direction:column;gap:.5rem;display:flex}.course-card{border:1px solid var(--border-color);background-color:var(--bg-primary);width:100%;color:inherit;text-align:left;cursor:pointer;transition:var(--transition-smooth);justify-content:space-between;align-items:center;padding:1rem 1.2rem;display:flex}.course-card:hover,.course-card:focus-visible{border-color:var(--tum-blue)}.course-card.is-unlocked{border-color:#11812d40}.course-card-body{flex-direction:column;flex:1;gap:.35rem;display:flex}.course-card-meta{align-items:center;gap:.75rem;display:flex}.course-code{text-transform:uppercase;color:var(--text-secondary);background:var(--bg-secondary);border-radius:4px;padding:.2rem .5rem;font-size:.75rem;font-weight:600}.lock-status{color:var(--text-muted);align-items:center;gap:.25rem;font-size:.8rem;display:flex}.lock-status.is-unlocked{color:var(--success-color);font-weight:500}.lock-status svg{width:14px;height:14px}.course-name{color:var(--text-primary);margin:0;font-size:1.05rem;font-weight:600}.exam-row{border:1px solid var(--border-color);background-color:var(--bg-primary);justify-content:space-between;align-items:center;gap:1rem;padding:1rem;display:flex}.exam-row-title{margin-bottom:.25rem;font-weight:600}.exam-row-meta{color:var(--text-secondary);align-items:center;gap:.3rem;font-size:.85rem;display:flex}.exam-row-meta svg{width:14px;height:14px}.empty-state{text-align:center;color:var(--text-muted);padding:2rem 1rem}.view-title-with-icon{align-items:center;gap:.5rem;display:flex}.view-title-with-icon svg{width:24px;height:24px}.header-actions{align-items:center;gap:.5rem;display:flex}.browse-filters{align-items:center;gap:1rem;display:flex}.checkbox-filter{color:var(--text-secondary);white-space:nowrap;cursor:pointer;align-items:center;gap:.4rem;font-size:.9rem;display:flex}.checkbox-filter input{width:16px;height:16px;accent-color:var(--tum-blue);cursor:pointer}.refund-status{color:var(--tum-blue);background-color:#eaf3fb;align-items:center;gap:.4rem;margin-top:.75rem;padding:.5rem .75rem;font-size:.85rem;display:flex}.refund-status.is-rejected{color:var(--error-color);background-color:#fbeaec}a.nav-logo-group,a.nav-logo-group:hover{text-decoration:none}.admin-message{border:1px solid var(--border-color);background-color:var(--bg-secondary);padding:1rem}.review-card{border:1px solid var(--border-color);background-color:var(--bg-primary);flex-direction:column;gap:1rem;padding:1rem;display:flex}.review-card-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.review-card-header .exam-row-meta{margin-top:.25rem}.pdf-preview{border:1px solid var(--border-color);background-color:var(--bg-secondary);width:100%;height:70vh}.review-actions{gap:.5rem;display:flex}.review-note{border:1px solid var(--border-color);flex:1;min-width:0;padding:.6rem .75rem;font-size:.9rem}.review-note:focus{border-color:var(--tum-blue);outline:none}.payment-section{margin-top:1rem}.wallet-box{background:var(--bg-secondary);text-align:center;border-radius:8px;margin-bottom:1rem;padding:1rem}.wallet-box p{margin-bottom:.5rem}.payment-success{text-align:center;padding:2rem 1rem 0}.payment-success h4{margin-bottom:.5rem;font-size:1.2rem}.payment-success p{margin-bottom:1.5rem}.success-icon-lg svg{width:64px;height:64px;margin-bottom:1rem}.modal-actions{gap:1rem;display:flex}.modal-actions .btn{flex:1}.toast-region{z-index:2000;flex-direction:column;gap:.5rem;width:min(420px,100vw - 2rem);display:flex;position:fixed;bottom:1rem;left:50%;transform:translate(-50%)}.toast{color:#fff;background:var(--text-primary);padding:.75rem 1rem;font-size:.9rem;box-shadow:0 4px 12px #00000026}.toast-success{background:var(--success-color)}.toast-error{background:var(--error-color)}.text-success{color:var(--success-color);display:inline-flex}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-sm{font-size:.85rem}.text-xs{font-size:.75rem}.text-center{text-align:center}.mt-sm{margin-top:.75rem}.mb-md{margin-bottom:1rem}@media (width<=768px){.top-navbar{flex-wrap:wrap;gap:.5rem;height:auto;padding:.5rem 1rem}.username{display:none}.main-content{padding:1rem}.view-header{flex-direction:column;align-items:stretch;gap:1rem}.browse-filters{flex-direction:column-reverse;align-items:stretch}.search-bar{width:100%}.review-card-header,.review-actions{flex-direction:column;align-items:stretch}}
