:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#1a1a1a}*{box-sizing:border-box}body{margin:0;background:#f4f6f8}button{cursor:pointer;border:1px solid #cdd5df;background:#fff;border-radius:8px;padding:6px 12px;font-size:14px}button:hover:not(:disabled){background:#f0f4ff}button:disabled{opacity:.5;cursor:default}button.danger{color:#b00020;border-color:#e0a}input,select{padding:6px 8px;border:1px solid #cdd5df;border-radius:8px;font-size:14px}.error{color:#b00020}.hint{color:#777;font-size:13px}.login{max-width:420px;margin:12vh auto;text-align:center;background:#fff;padding:40px;border-radius:16px;box-shadow:0 6px 24px #00000014}.login .logo{display:block;margin:0 auto 16px;border-radius:20px}.brand{display:inline-flex;align-items:center;gap:8px}.brand-logo{border-radius:6px}.layout{display:grid;grid-template-columns:340px 1fr;height:100vh}.sidebar{border-right:1px solid #e2e8f0;background:#fff;display:flex;flex-direction:column;overflow:hidden}.bar{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid #eee}.link{border:none;background:none;color:#1565c0}.new-exam{display:flex;flex-direction:column;gap:8px;padding:12px 16px;border-bottom:1px solid #eee}.export-all{margin:10px 16px}.exam-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1}.exam-list li{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid #f0f0f0}.exam-list li:hover{background:#f7f9fc}.exam-list li.active{background:#e8f0fe}.exam-list .grow{flex:1;min-width:0}.exam-list .name{font-weight:600}.exam-list .sub{font-size:12px;color:#667}.exam-list .code{font-size:11px;color:#889}.exam-list .empty{color:#889}.dot{width:10px;height:10px;border-radius:50%;flex:none}.dot.green{background:#2e7d32}.dot.orange{background:#ef6c00}.dot.blue{background:#1565c0}.dot.gray{background:#9aa}.content{overflow-y:auto;padding:24px}.placeholder{color:#889;text-align:center;margin-top:20vh}.detail{max-width:900px}.detail-head{display:flex;align-items:center;gap:10px;margin-bottom:16px}.name-input{font-size:18px;font-weight:600;flex:none;width:260px}.spacer{flex:1}.badge{padding:3px 10px;border-radius:20px;font-size:12px;background:#eee}.badge.corregit{background:#fff3e0}.badge.revisat{background:#e8f5e9}.badge.corregint{background:#e3f2fd}section{background:#fff;border:1px solid #e8edf3;border-radius:12px;padding:16px;margin-bottom:16px}section h3{margin:0 0 12px;font-size:15px}.uploaders{display:flex;gap:10px;margin-bottom:12px}.uploader{border:1px dashed #9bb;border-radius:8px;padding:8px 14px;color:#1565c0}.gallery{display:flex;flex-wrap:wrap;gap:10px}.gallery figure{margin:0;width:120px}.gallery img,.img-skeleton{width:120px;height:150px;object-fit:cover;border-radius:8px;border:1px solid #ddd;background:#f0f0f0}.gallery figcaption{font-size:11px;color:#778;text-align:center}.scorecard .srow{display:flex;justify-content:space-between;padding:3px 0}.supera{margin-top:8px;font-weight:700}.supera.ok{color:#2e7d32}.supera.no{color:#b00020}.review-item{border:1px solid #eee;border-radius:10px;padding:10px;margin-bottom:10px}.ri-head{display:flex;justify-content:space-between}.conf{font-size:12px;color:#889}.note{font-style:italic;color:#767;font-size:13px}.read{margin:6px 0}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{padding:4px 12px}.chip.sel{background:#1565c0;color:#fff;border-color:#1565c0}.manuals{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.manuals label{display:flex;flex-direction:column;font-size:13px;gap:4px}.actions{display:flex;gap:10px;margin-top:12px}
