*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0;overflow-x:hidden}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;background:#f7f5f0;color:#2c3e50;min-height:100vh}
.gradient-text{background:linear-gradient(135deg,#1e3a5f 0%,#7a8fa8 50%,#c9a876 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.card{background:#ffffff;border:1px solid #e3ddd0;border-radius:16px;box-shadow:0 2px 12px rgba(20,40,65,.05)}
.card-hover{transition:border-color .2s,transform .2s}
.card-hover:hover{border-color:#5c7a9e;transform:translateY(-2px)}
.btn-primary{background:linear-gradient(135deg,#1e3a5f,#3d5a80);color:#fff;border:none;border-radius:12px;padding:14px 32px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 10px 30px rgba(30,58,95,.35)}
.btn-primary:active{transform:translateY(0)}
.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
.btn-secondary{background:#f2ede1;border:1px solid #ddd4bd;color:#46586b;border-radius:12px;padding:14px 32px;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s;font-family:inherit}
.btn-secondary:hover{background:#ece5d5;color:#46586b;border-color:#5c7a9e}
.input-field{background:#f7f4ec;border:1px solid #ddd4bd;border-radius:12px;padding:12px 16px;color:#2c3e50;font-size:14px;width:100%;font-family:inherit;transition:border-color .2s;outline:none;resize:vertical}
.input-field:focus{border-color:#1e3a5f}
.input-field::placeholder{color:#9aa5b0}
textarea.input-field{min-height:100px}
.progress-dot{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;transition:all .3s}
.progress-dot.active{background:linear-gradient(135deg,#1e3a5f,#3d5a80);color:#fff}
.progress-dot.completed{background:#86d9b0;color:#fff}
.progress-dot.pending{background:#ece5d5;color:#9aa5b0;border:1px solid #ddd4bd}
.progress-line{height:2px;flex:1;transition:background .3s}
.progress-line.done{background:#86d9b0}
.progress-line.undone{background:#ddd4bd}
.tab-btn{padding:10px 20px;border-radius:10px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;border:1px solid transparent;background:transparent;color:#7c8a99;font-family:inherit}
.tab-btn:hover{color:#46586b;background:#f2ede1}
.tab-btn.active{background:linear-gradient(135deg,#1e3a5f,#3d5a80);color:#fff;border-color:transparent}
.score-ring{position:relative;width:160px;height:160px}
.score-ring svg{transform:rotate(-90deg)}
.score-ring .track{fill:none;stroke:#e3ddd0;stroke-width:10}
.score-ring .fill{fill:none;stroke-width:10;stroke-linecap:round;transition:stroke-dashoffset 1.5s ease}
.score-ring .label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}
.fade-in{animation:fadeIn .5s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}
.pulse{animation:pulse 2s infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.spin{animation:spin 1.2s linear infinite}
.risk-badge{padding:4px 12px;border-radius:20px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.risk-high{background:rgba(232,138,138,.18);color:#d06868}
.risk-medium{background:rgba(230,170,80,.2);color:#c2872f}
.risk-low{background:rgba(110,200,160,.2);color:#2f9e72}
.severity-critical{border-left:3px solid #e07b7b}
.severity-high{border-left:3px solid #ef9a6a}
.severity-medium{border-left:3px solid #e6aa50}
.severity-low{border-left:3px solid #6ec8a0}
.priority-critical{background:rgba(232,138,138,.12);border:1px solid rgba(232,138,138,.25)}
.priority-high{background:rgba(239,154,106,.12);border:1px solid rgba(239,154,106,.25)}
.priority-medium{background:rgba(230,170,80,.12);border:1px solid rgba(230,170,80,.25)}
.priority-low{background:rgba(110,200,160,.12);border:1px solid rgba(110,200,160,.25)}
@media print{body{background:#fff;color:#111}.card{background:#fff;border:1px solid #ddd;box-shadow:none}.gradient-text{color:#142943;-webkit-text-fill-color:#142943}}
.scenario-card{transition:all .3s}
.scenario-card:hover{transform:translateY(-4px);border-color:#5c7a9e}
.task-item{transition:all .2s}
.task-item.done{opacity:.55}
.task-item.done .task-action{text-decoration:line-through}
.checkbox-circle{width:22px;height:22px;border-radius:50%;border:2px solid #5c7a9e;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all .2s}
.checkbox-circle.done{background:#2f9e72;border-color:#2f9e72}
.upload-zone{border:2px dashed #ddd4bd;border-radius:14px;padding:24px;text-align:center;cursor:pointer;transition:all .2s}
.upload-zone:hover{border-color:#1e3a5f;background:#f7f4ec}
