*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f0f4f8;--surface: #ffffff;--surface2: #f7f9fc;--border: #dde3ec;--primary: #155eef;--primary-light: #dce9ff;--primary-hover: #1147c2;--accent: #00c9a7;--accent-light: #c9f7ee;--danger: #e11d48;--danger-light: #ffe4e6;--warning: #f59e0b;--warning-light: #fef3c7;--success: #059669;--success-light: #d1fae5;--text: #1a2636;--text2: #4a5a70;--text3: #8898aa;--radius: 14px;--radius-sm: 8px;--shadow: 0 2px 6px rgba(15,23,42,.06), 0 14px 32px -12px rgba(21,94,239,.28);--shadow-lg: 0 8px 28px -6px rgba(21,94,239,.35);--font: "Inter", system-ui, sans-serif;--mono: "DM Mono", monospace}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.5;font-size:14px}a{color:var(--primary);text-decoration:none}button{font-family:var(--font);cursor:pointer;border:none;outline:none;font-size:14px;font-weight:500;transition:all .15s}button:active{transform:translateY(1px)}input,select,textarea{font-family:var(--font);font-size:14px;color:var(--text);background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;width:100%;outline:none;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}input:hover:not(:focus),select:hover:not(:focus),textarea:hover:not(:focus){border-color:#c7d1de}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#0f172a29;border-radius:20px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#0f172a42;background-clip:padding-box}label{display:block;font-size:12px;font-weight:600;color:var(--text2);margin-bottom:5px;text-transform:uppercase;letter-spacing:.04em}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border)}.card-header{padding:18px 24px;border-bottom:1px solid var(--border)}.card-body{padding:24px}.btn{display:inline-flex;align-items:center;gap:7px;padding:9px 18px;border-radius:var(--radius-sm);font-weight:600;font-size:13.5px}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-accent{background:var(--accent);color:#fff}.btn-accent:hover{background:#00a88f}.btn-ghost{background:transparent;color:var(--primary);border:1.5px solid var(--border)}.btn-ghost:hover{background:var(--primary-light);border-color:var(--primary)}.btn-danger{background:var(--danger);color:#fff}.btn-sm{padding:5px 12px;font-size:12.5px;border-radius:5px}.badge{display:inline-flex;align-items:center;font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:20px}.badge-pending{background:var(--warning-light);color:var(--warning)}.badge-scheduled{background:var(--primary-light);color:var(--primary)}.badge-simulated{background:#eef2ff;color:#4338ca}.badge-planned{background:#f3e8ff;color:#7c3aed}.badge-in_progress{background:var(--accent-light);color:var(--accent)}.badge-completed{background:var(--success-light);color:var(--success)}.badge-cancelled,.badge-unpaid{background:var(--danger-light);color:var(--danger)}.badge-partial{background:var(--warning-light);color:var(--warning)}.badge-paid{background:var(--success-light);color:var(--success)}.table{width:100%;border-collapse:collapse}.table th{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);padding:10px 14px;text-align:left;border-bottom:1.5px solid var(--border)}.table td{padding:12px 14px;border-bottom:1px solid var(--border);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:var(--surface2)}.form-group{margin-bottom:18px}.form-row{display:grid;gap:16px}.form-row-2{grid-template-columns:1fr 1fr}.form-row-3{grid-template-columns:1fr 1fr 1fr}.page-header{margin-bottom:24px}.page-header h1{font-size:22px;font-weight:700;color:var(--text)}.page-header p{color:var(--text2);margin-top:4px;font-size:13.5px}.stat-card{background:var(--surface);border-radius:var(--radius);padding:20px 24px;border:1px solid var(--border);box-shadow:var(--shadow)}.stat-card .stat-label{font-size:11.5px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.05em}.stat-card .stat-value{font-size:28px;font-weight:700;color:var(--text);margin-top:6px}.stat-card .stat-sub{font-size:12.5px;color:var(--text2);margin-top:4px}.milestone-track{display:flex;gap:0;position:relative}.milestone-step{flex:1;text-align:center;position:relative}.milestone-step:before{content:"";position:absolute;top:14px;left:-50%;width:100%;height:2px;background:var(--border);z-index:0}.milestone-step:first-child:before{display:none}.milestone-dot{width:28px;height:28px;border-radius:50%;border:2.5px solid var(--border);background:var(--surface);display:flex;align-items:center;justify-content:center;margin:0 auto;position:relative;z-index:1;font-size:12px}.milestone-step.done .milestone-dot{background:var(--success);border-color:var(--success);color:#fff}.milestone-step.done:before{background:var(--success)}.milestone-label{font-size:11px;font-weight:600;color:var(--text3);margin-top:7px}.milestone-date{font-size:10.5px;color:var(--text3);margin-top:2px}.milestone-step.done .milestone-label{color:var(--success)}@media print{.no-print{display:none!important}body{background:#fff}.card{box-shadow:none;border:1px solid #ccc}}.alert{padding:12px 16px;border-radius:var(--radius-sm);font-size:13.5px;margin-bottom:16px}.alert-error{background:var(--danger-light);color:var(--danger);border:1px solid #fecdd3}.alert-success{background:var(--success-light);color:var(--success)}.alert-info{background:var(--primary-light);color:var(--primary)}.empty-state{text-align:center;padding:48px 24px;color:var(--text3)}.empty-state h3{font-size:15px;font-weight:600;color:var(--text2);margin-bottom:8px}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite;margin:40px auto}@keyframes spin{to{transform:rotate(360deg)}}.sidebar{width:240px;min-height:100vh;background:var(--primary);display:flex;flex-direction:column;position:fixed;left:0;top:0;z-index:100}.sidebar-logo{padding:24px 20px 20px;border-bottom:1px solid rgba(255,255,255,.12)}.sidebar-logo h2{color:#fff;font-size:17px;font-weight:700;letter-spacing:-.02em}.sidebar-logo p{color:#ffffff80;font-size:11.5px;margin-top:2px}.sidebar-nav{flex:1;padding:16px 10px}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);color:#ffffffb3;font-weight:500;font-size:13.5px;cursor:pointer;transition:all .15s;margin-bottom:2px}.nav-item:hover,.nav-item.active{background:#ffffff1f;color:#fff}.nav-item svg{flex-shrink:0}.sidebar-footer{padding:16px;border-top:1px solid rgba(255,255,255,.12)}.sidebar-user{color:#fffc;font-size:12.5px;font-weight:500}.sidebar-role{color:#fff6;font-size:11px;text-transform:uppercase;letter-spacing:.05em}.main-content{margin-left:240px;padding:32px;min-height:100vh}.section-tag{display:inline-block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);background:var(--accent-light);padding:2px 8px;border-radius:4px;margin-bottom:8px}
