*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;color:#333;background:#f5f5f5;line-height:1.5}.container{max-width:1200px;margin:0 auto;padding:1rem 2rem}.nav{display:flex;gap:1rem;padding:1rem 2rem;background:#1a1a2e;align-items:center}.nav a{color:#e0e0e0;text-decoration:none;font-weight:500;padding:.25rem .5rem;border-radius:4px;transition:background .15s}.nav a:hover{color:#fff;background:#ffffff1a}.nav h1{color:#fff;font-size:1.1rem;margin-right:auto}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .9rem;border:none;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:opacity .15s,background .15s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:#2563eb;color:#fff}.btn-primary:hover:not(:disabled){background:#1d4ed8}.btn-secondary{background:#6b7280;color:#fff}.btn-secondary:hover:not(:disabled){background:#4b5563}.btn-danger{background:#dc2626;color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-sm{padding:.2rem .6rem;font-size:12px}.table{width:100%;border-collapse:collapse;background:#fff}.table th{background:#f9fafb;padding:.6rem .8rem;text-align:left;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#6b7280;border-bottom:2px solid #e5e7eb}.table td{padding:.6rem .8rem;border-bottom:1px solid #f3f4f6;vertical-align:middle}.table tr:hover td{background:#f9fafb}.table tr:last-child td{border-bottom:none}.card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:1.5rem;margin-bottom:1rem}.card-title{font-size:1rem;font-weight:600;margin-bottom:1rem;color:#111}.form-group{margin-bottom:.75rem}.form-group label,.label{display:block;font-size:13px;font-weight:500;color:#374151;margin-bottom:.25rem}.input,.select{width:100%;padding:.4rem .6rem;border:1px solid #d1d5db;border-radius:4px;font-size:13px;background:#fff;color:#111;transition:border-color .15s}.input:focus,.select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb26}.form-inline{display:flex;gap:.5rem;align-items:flex-end;flex-wrap:wrap}.form-inline .form-group{margin-bottom:0;flex:1;min-width:140px}.timeline-container{position:relative;overflow-x:auto;padding-bottom:2rem}.timeline-header{display:flex;justify-content:space-between;font-size:11px;color:#9ca3af;margin-bottom:4px;padding:0;position:relative}.timeline-month-label{position:absolute;transform:translate(-50%);white-space:nowrap}.timeline-rows{position:relative}.timeline-row{position:relative;height:36px;margin-bottom:4px;background:#f9fafb;border-radius:4px}.timeline-row-label{position:absolute;left:0;top:50%;transform:translateY(-50%);font-size:11px;color:#6b7280;white-space:nowrap;z-index:1;pointer-events:none}.timeline-bar{position:absolute;height:100%;border-radius:4px;cursor:pointer;display:flex;align-items:center;padding:0 8px;font-size:12px;overflow:hidden;white-space:nowrap;color:#fff;font-weight:500;transition:opacity .15s}.timeline-bar:hover{opacity:.85}.tooltip{position:fixed;background:#1f2937;color:#fff;padding:8px 12px;border-radius:6px;font-size:12px;pointer-events:none;z-index:1000;max-width:280px;box-shadow:0 4px 12px #0000004d;line-height:1.6}.tooltip-title{font-weight:600;margin-bottom:4px;border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:4px}.tabs{display:flex;gap:0;border-bottom:2px solid #e5e7eb;margin-bottom:1.5rem}.tab{padding:.6rem 1.2rem;cursor:pointer;font-size:14px;font-weight:500;color:#6b7280;border-bottom:2px solid transparent;margin-bottom:-2px;background:none;border-top:none;border-left:none;border-right:none;transition:color .15s}.tab:hover{color:#2563eb}.tab.active{color:#2563eb;border-bottom-color:#2563eb}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.page-title{font-size:1.25rem;font-weight:700;color:#111}.badge{display:inline-block;padding:.15rem .5rem;border-radius:9999px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.badge-custom{background:#fde8e8;color:#e74c3c}.badge-standard{background:#dbeafe;color:#2563eb}.badge-default{background:#f3f4f6;color:#6b7280}.alert{padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem;font-size:13px}.alert-error{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.alert-success{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}.alert-info{background:#eff6ff;color:#2563eb;border:1px solid #bfdbfe}.loading{text-align:center;padding:3rem;color:#9ca3af;font-size:13px}.section{margin-bottom:2rem}.section-title{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#6b7280;margin-bottom:.75rem}.recharts-wrapper{font-size:12px}
