:root{
  --bg:#f6f8fc;--card:#fff;--text:#0f172a;--muted:#64748b;--line:#e2e8f0;--primary:#4f46e5;--primary2:#06b6d4;--success:#16a34a;--warning:#f59e0b;--danger:#dc2626;--dark:#111827;--shadow:0 18px 50px rgba(15,23,42,.08);--radius:22px
}
*{box-sizing:border-box}body{background:linear-gradient(135deg,#f8fafc 0%,#eef2ff 45%,#ecfeff 100%);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;font-size:14px;margin:0;min-width:1100px}.app-shell{display:flex;min-height:100vh}.sidebar{backdrop-filter:blur(20px);background:rgba(255,255,255,.86);border-right:1px solid var(--line);bottom:0;left:0;padding:22px;position:fixed;top:0;width:270px;}.brand{align-items:center;display:flex;gap:12px;margin-bottom:26px}.brand-logo{align-items:center;background:linear-gradient(135deg,var(--primary),var(--primary2));border-radius:16px;box-shadow:0 12px 28px rgba(79,70,229,.3);color:#fff;display:flex;font-size:20px;height:45px;justify-content:center;width:45px;}.brand h1{font-size:18px;font-weight:850;margin:0;}.brand p{color:var(--muted);font-size:12px;margin:3px 0 0;}.nav-title{color:#94a3b8;font-size:11px;letter-spacing:.12em;margin:20px 8px 9px;text-transform:uppercase;}.nav a{align-items:center;border-radius:14px;color:#334155;display:flex;font-weight:650;gap:11px;margin:6px 0;padding:12px 13px;text-decoration:none;}.nav a:hover,.nav a.active{background:#eef2ff;color:var(--primary)}.nav a i{text-align:center;width:20px;}.main{margin-left:270px;padding:24px 28px 38px;width:calc(100% - 270px);}.topbar{align-items:center;backdrop-filter:blur(18px);background:rgba(255,255,255,.82);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;height:72px;justify-content:space-between;margin-bottom:24px;padding:0 22px;}.topbar h2{font-size:24px;margin:0;}.topbar p{color:var(--muted);margin:4px 0 0;}.pill{background:#fff;border:1px solid var(--line);border-radius:999px;color:#475569;font-weight:700;padding:8px 12px;}.grid{display:grid;gap:18px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.stat{overflow:hidden;position:relative;}.stat:after{background:linear-gradient(135deg,rgba(79,70,229,.16),rgba(6,182,212,.13));border-radius:50%;content:"";height:110px;position:absolute;right:-38px;top:-38px;width:110px;}.stat i{align-items:center;background:#eef2ff;border-radius:14px;color:var(--primary);display:flex;height:42px;justify-content:center;margin-bottom:16px;width:42px;}.stat .num{font-size:30px;font-weight:900}.stat .label{color:var(--muted);font-weight:650}.btn{align-items:center;border:0;border-radius:13px;cursor:pointer;display:inline-flex;font-weight:800;gap:8px;padding:11px 16px;text-decoration:none;transition:.2s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,var(--primary),#7c3aed);color:#fff}.btn-cyan{background:linear-gradient(135deg,#0891b2,var(--primary2));color:#fff}.btn-light{background:#fff;border:1px solid var(--line);color:#334155;}.btn-danger{background:#fee2e2;color:#b91c1c}.btn-success{background:#dcfce7;color:#15803d}.input,.select,textarea{background:#fff;border:1px solid var(--line);border-radius:13px;font:inherit;outline:none;padding:12px 13px;width:100%;}.input:focus,.select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(79,70,229,.09)}label{color:#334155;display:block;font-weight:800;margin-bottom:7px;}.form-row{display:grid;gap:14px;grid-template-columns:repeat(3,1fr);}.dropzone{align-items:center;background:linear-gradient(135deg,#fff,#eef2ff);border:2px dashed #c7d2fe;border-radius:24px;display:flex;flex-direction:column;justify-content:center;min-height:300px;padding:38px;text-align:center;}.dropzone.drag{background:#eef2ff;border-color:var(--primary);}.dropzone i{color:var(--primary);font-size:52px;margin-bottom:17px}.dropzone h3{font-size:22px;margin:0 0 8px}.dropzone p{color:var(--muted);margin:0 0 16px}.file-preview{background:#f8fafc;border:1px solid var(--line);border-radius:18px;display:none;margin-top:16px;padding:15px;}.timeline{position:relative}.step{display:flex;gap:13px;margin-bottom:18px}.step-dot{align-items:center;background:#f1f5f9;border-radius:12px;color:#64748b;display:flex;flex:none;height:34px;justify-content:center;width:34px;}.step.done .step-dot{background:#dcfce7;color:#16a34a}.step.active .step-dot{background:#eef2ff;color:var(--primary)}.step-title{font-weight:850}.step-desc{color:var(--muted);font-size:13px;margin-top:2px}.table-wrap{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:auto;}.data-table{border-collapse:separate;border-spacing:0;min-width:1050px;width:100%;}.data-table th{background:#f8fafc;border-bottom:1px solid var(--line);color:#475569;font-size:12px;letter-spacing:.06em;padding:13px;position:sticky;text-align:left;text-transform:uppercase;top:0;z-index:1}.data-table td{border-bottom:1px solid #edf2f7;padding:12px 13px;vertical-align:middle}.data-table tr:hover td{background:#fafbff}.editable{border:1px solid transparent;border-radius:9px;min-width:90px;padding:7px 8px;}.editable:focus{background:#fff;border-color:#c7d2fe;outline:0}.badge{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:850;padding:6px 10px;}.badge-green{background:#dcfce7;color:#166534}.badge-yellow{background:#fef3c7;color:#92400e}.badge-blue{background:#dbeafe;color:#1d4ed8}.badge-red{background:#fee2e2;color:#991b1b}.toolbar{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:16px}.actions{display:flex;flex-wrap:wrap;gap:10px;}.page-title{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:18px}.page-title h1{font-size:30px;margin:0;}.page-title p{color:var(--muted);margin:7px 0 0;}.login-page{background:radial-gradient(circle at top left,#e0e7ff,#fff 45%,#ecfeff);display:grid;min-height:100vh;place-items:center;}.login-card{background:#fff;border:1px solid var(--line);border-radius:28px;box-shadow:0 30px 90px rgba(15,23,42,.13);padding:34px;width:440px;}.login-card .brand{justify-content:center;text-align:left}.empty{color:var(--muted);padding:34px;text-align:center;}.print-area{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px}.doc-head{border-bottom:2px solid #0f172a;display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:14px;}.doc-head h2{margin:0}.doc-meta{display:grid;gap:10px;grid-template-columns:repeat(4,1fr);margin-bottom:16px}.doc-box{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:10px}.doc-box span{color:var(--muted);display:block;font-size:12px}.doc-box strong{font-size:14px}.modal-backdrop2{align-items:center;background:rgba(15,23,42,.5);display:none;inset:0;justify-content:center;position:fixed;z-index:20}.modal2{background:#fff;border-radius:24px;box-shadow:0 30px 100px rgba(0,0,0,.24);max-height:86vh;overflow:auto;padding:22px;width:min(920px,92vw);}@media(max-width:1280px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}.form-row{grid-template-columns:repeat(2,1fr)}.sidebar{width:235px}.main{margin-left:235px;width:calc(100% - 235px)}}@media print{body{background:#fff;min-width:auto}.sidebar,.topbar,.no-print,.page-title,.toolbar{display:none!important}.main{margin:0;padding:0;width:100%;}.card{border:0;box-shadow:none;}.print-area{border:0;padding:0}.data-table{font-size:11px;min-width:0;}.data-table th,.data-table td{padding:7px}}
.ai-loader-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.62);
    backdrop-filter: blur(10px);
    z-index: 99999;
    display: none;
    align-items: center;
    justify-content: center;
}

    .ai-loader-overlay.show {
        display: flex;
    }

.ai-loader-card {
    width: 440px;
    background: #ffffff;
    border-radius: 26px;
    box-shadow: 0 30px 80px rgba(15, 23, 42, 0.28);
    padding: 36px;
    text-align: center;
}

.ai-orb-wrap {
    width: 120px;
    height: 120px;
    margin: 0 auto 22px auto;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ai-orb {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: linear-gradient(135deg, #4f46e5, #06b6d4, #8b5cf6);
    box-shadow: 0 0 34px rgba(79, 70, 229, 0.55);
    animation: aiPulse 1.5s ease-in-out infinite;
}

    .ai-orb:before {
        content: "\f544";
        font-family: "Font Awesome 6 Free";
        font-weight: 900;
        color: #ffffff;
        font-size: 30px;
        line-height: 72px;
    }

.ai-ring {
    position: absolute;
    border-radius: 50%;
    border: 2px solid rgba(79, 70, 229, 0.24);
}

.ai-ring-1 {
    width: 96px;
    height: 96px;
    border-top-color: #4f46e5;
    animation: aiRotate 2.5s linear infinite;
}

.ai-ring-2 {
    width: 118px;
    height: 118px;
    border-right-color: #06b6d4;
    animation: aiRotateReverse 3.2s linear infinite;
}

.ai-loader-title {
    font-size: 22px;
    font-weight: 800;
    color: #0f172a;
    margin-bottom: 8px;
}

.ai-loader-message {
    font-size: 14px;
    color: #64748b;
    line-height: 1.6;
    margin-bottom: 22px;
}

.ai-progress {
    height: 8px;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
}

.ai-progress-bar {
    height: 100%;
    width: 42%;
    border-radius: 999px;
    background: linear-gradient(90deg, #4f46e5, #06b6d4, #8b5cf6);
    animation: aiProgressMove 1.35s ease-in-out infinite;
}

@keyframes aiPulse {
    0%, 100% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.08);
    }
}

@keyframes aiRotate {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

@keyframes aiRotateReverse {
    from {
        transform: rotate(360deg);
    }

    to {
        transform: rotate(0deg);
    }
}

@keyframes aiProgressMove {
    0% {
        transform: translateX(-120%);
    }

    100% {
        transform: translateX(290%);
    }
}