:root{--bg: #0f1419;--bg-card: #1a2332;--bg-sidebar: #161e2a;--text: #e6edf3;--text-muted: #8b949e;--accent: #58a6ff;--accent-hover: #79b8ff;--border: #30363d;--success: #3fb950;--error: #f85149;--radius: 8px;--shadow: 0 4px 12px rgba(0,0,0,.3)}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}.header{background:var(--bg-card);border-bottom:1px solid var(--border);padding:.75rem 1.5rem;position:sticky;top:0;z-index:10}.header-inner{max-width:1400px;margin:0 auto;display:flex;align-items:center;justify-content:space-between}.logo{margin:0;font-size:1.25rem;font-weight:600}.logo a{color:var(--text);text-decoration:none}.logo a:hover{color:var(--accent)}.user-info{font-size:.9rem;color:var(--text-muted)}.user-info em{color:var(--accent);font-style:normal}.layout{display:flex;max-width:1400px;margin:0 auto;min-height:calc(100vh - 52px)}.sidebar{width:220px;min-width:220px;background:var(--bg-sidebar);border-right:1px solid var(--border);padding:1rem 0;flex-shrink:0;display:flex;flex-direction:column;min-height:0}.sidebar .nav{flex:1 1 auto;overflow-y:auto;overflow-x:hidden}.main{flex:1;padding:1.5rem;overflow:auto}.nav{display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;color:var(--text-muted);text-decoration:none;border-radius:var(--radius);transition:background .15s,color .15s}.nav-item:hover{background:var(--bg-card);color:var(--text)}.nav-item.active{background:var(--bg-card);color:var(--accent)}.nav-icon{opacity:.9}.view{max-width:900px}.view h2{margin-top:0;font-size:1.5rem}.lead{color:var(--text-muted);margin-bottom:1.5rem}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;margin-bottom:1rem;box-shadow:var(--shadow)}.card h3{margin-top:0;margin-bottom:.75rem;font-size:1.1rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.card-link{display:block;color:inherit;text-decoration:none;border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;background:var(--bg-card);transition:border-color .15s,box-shadow .15s}.card-link:hover{border-color:var(--accent);box-shadow:var(--shadow);text-decoration:none;color:var(--text)}.card-link h3{margin-top:0}.card-link p{margin-bottom:0;color:var(--text-muted);font-size:.9rem}.view-exam-security .security-steps{list-style:none;padding-left:0;margin:0 0 1.25rem}.view-exam-security .security-steps li{padding:.5rem 0;border-bottom:1px solid var(--border)}.view-exam-security .security-steps li:last-child{border-bottom:none}.view-login{min-height:calc(100vh - 52px);display:flex;align-items:center;justify-content:center;padding:2rem}.login-card{width:100%;max-width:380px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;box-shadow:var(--shadow)}.login-card h2{margin-top:0;text-align:center}.login-desc{text-align:center;color:var(--text-muted);margin-bottom:1.5rem}.form label{display:block;margin-bottom:.25rem;font-size:.9rem}.form input{width:100%;padding:.6rem .75rem;margin-bottom:1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);font-size:1rem}.form input:focus{outline:none;border-color:var(--accent)}.form .error{color:var(--error);font-size:.9rem;margin-bottom:.5rem}.form-group{margin:1rem 0}.form-group legend{font-size:.95rem;margin-bottom:.5rem;color:var(--text-muted)}.checkbox-label{display:inline-flex;align-items:center;gap:.5rem;margin-right:1rem;cursor:pointer;font-weight:400}.btn{display:inline-block;padding:.6rem 1.25rem;border:none;border-radius:var(--radius);font-size:1rem;cursor:pointer;transition:background .15s}.btn-primary{background:var(--accent);color:#fff;width:100%;margin-top:.5rem}.btn-primary:hover{background:var(--accent-hover)}.btn-sm{padding:.35rem .6rem;font-size:.85rem;margin-left:.5rem}.role-select{padding:.35rem .5rem;font-size:.9rem;min-width:12rem}.role-badge-inline{font-size:.85rem;padding:.2rem .5rem}.login-hint{margin-top:1rem;font-size:.8rem;color:var(--text-muted);text-align:center}.login-footer{margin-top:1.25rem;font-size:.95rem;text-align:center;color:var(--text-muted)}.login-footer a{color:var(--accent);text-decoration:none;font-weight:600}.login-footer a:hover{text-decoration:underline}.link-register{display:inline-block;margin-top:.25rem;padding:.35rem .75rem;background:var(--bg);border:1px solid var(--accent);border-radius:6px}.link-register:hover{background:var(--accent);color:#fff!important;text-decoration:none!important}.role-badge{display:inline-block;background:var(--border);color:var(--text-muted);padding:.25rem .6rem;border-radius:999px;font-size:.85rem;margin-bottom:1.5rem}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table th,.table td{padding:.6rem .75rem;text-align:left;border-bottom:1px solid var(--border)}.table th{color:var(--text-muted);font-weight:600}.badge{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.8rem}.badge-draft{background:#484f58;color:var(--text)}.badge-published{background:#238636;color:#fff}.badge-archived{background:#6e7681;color:var(--text)}.badge-low,.badge-medium{background:#9e6a03;color:#fff}.badge-high,.badge-critical{background:var(--error);color:#fff}.unit-meta{font-size:.85rem;color:var(--text-muted);margin-left:.5rem}.unit-exam-types{font-size:.9rem;color:var(--accent)}.status-ok{color:var(--success)}.status-err{color:var(--error)}.muted{color:var(--text-muted);font-size:.9rem}.code-block{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;overflow-x:auto;font-size:.85rem;margin:.5rem 0}pre.code-block{white-space:pre-wrap;word-break:break-all}.alert-list{list-style:none;padding:0;margin:0}.alert-list li{padding:.4rem 0;border-bottom:1px solid var(--border)}.form-inline{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.form-inline input[type=text],.form-inline input[type=number]{width:auto;max-width:200px}.form-create-user-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.form-create-user-row input,.form-create-user-row select{padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);font-size:1rem;min-width:120px}.form-create-user-row input[type=email]{min-width:180px}.form-create-user-row select{min-width:160px}.card-create-user{border-color:var(--accent)}.question-list{list-style:none;padding:0}.question-list li{padding:.5rem 0;border-bottom:1px solid var(--border)}.exam-timer{font-size:1.1rem;margin-bottom:.75rem}.exam-timer strong{color:var(--accent)}.question-card{margin-bottom:1rem}.question-card label{display:block;margin:.25rem 0;cursor:pointer}.question-card input[type=radio]{margin-right:.5rem}.summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem;margin-bottom:1rem}.summary-grid>div{font-size:.95rem}.summary-grid strong{color:var(--text-muted);font-weight:600}.mt-1{margin-top:1rem}.histogram{max-width:400px}.histogram-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem;font-size:.9rem}.histogram-label{width:3.5rem;color:var(--text-muted)}.histogram-bar-wrap{flex:1;height:1.25rem;background:var(--border);border-radius:4px;overflow:hidden}.histogram-bar{height:100%;background:var(--accent);border-radius:4px;min-width:2px;transition:width .2s ease}.histogram-count{width:2rem;text-align:right;color:var(--text-muted)}.btn-outline{background:transparent;color:var(--accent);border:1px solid var(--accent)}.btn-outline:hover{background:#58a6ff1a}@media(max-width:768px){.header-inner{flex-wrap:wrap;gap:.5rem;padding:.5rem .75rem}.logo{font-size:1rem}.user-info{font-size:.8rem}.layout{flex-direction:column;min-height:0}.sidebar{width:100%;min-width:0;max-height:180px;border-right:none;border-bottom:1px solid var(--border);padding:.5rem}.sidebar .nav{flex-direction:row;flex-wrap:wrap;gap:.35rem;justify-content:flex-start}.nav-item{padding:.4rem .6rem;font-size:.9rem}.main{padding:1rem}.view{max-width:100%}.card-grid{grid-template-columns:1fr}.form-create-user-row{flex-direction:column;align-items:stretch}.form-create-user-row input,.form-create-user-row select{min-width:0}.table-wrap{overflow-x:auto}.table{font-size:.85rem}.table th,.table td{padding:.4rem .5rem}}
