@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap);@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap);.ipqc-container{margin:0 auto;max-width:1200px}.header{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 1px 3px #0000000f;display:flex;gap:24px;margin-bottom:20px;padding:24px}.logo{background:#0f172a;border-radius:8px;color:#fff;min-width:120px;padding:16px;text-align:center}.logo h1{font-size:2.5em;font-weight:700;letter-spacing:2px;margin:0}.logo p{font-size:1.2em;letter-spacing:3px;margin:5px 0 0}.title{flex:1 1}.title h2{color:#0f172a;font-size:1.6em;font-weight:700;margin-bottom:6px}.title p{color:#666;font-size:1.1em}.info-banner{background:linear-gradient(135deg,#4caf50,#45a049);border-radius:10px;box-shadow:0 5px 15px #4caf504d;color:#fff;margin-bottom:30px;padding:15px 30px;text-align:center}.info-banner p{font-size:1.1em;margin:0}.form-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 1px 3px #0000000f;margin-bottom:20px;padding:28px}.form-card h3{border-bottom:2px solid #e2e8f0;color:#0f172a;font-size:1.4em;font-weight:700;margin-bottom:20px;padding-bottom:12px}.form-grid{grid-gap:25px;gap:25px;grid-template-columns:repeat(2,1fr);margin-bottom:30px}.form-group label{color:#333;font-size:1em}.required{color:#f44336;font-size:1.2em}.form-group input,.form-group select{border:2px solid #ddd;font-size:1em}.form-group input:focus,.form-group select:focus{box-shadow:0 0 0 3px #0ea5e91a;outline:none}.form-group input:disabled,.form-group select:disabled{background:#f5f5f5;cursor:not-allowed}.message{border-radius:8px;font-weight:500;padding:15px 20px}.message.success{border:2px solid #c3e6cb}.message.error{border:2px solid #f5c6cb}.button-group{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:20px}.btn{border:none;border-radius:8px;box-shadow:0 1px 3px #00000014;cursor:pointer;font-size:.95em;font-weight:600;padding:12px 28px;transition:all .2s ease}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-primary{background:#0ea5e9;color:#fff}.btn-primary:hover:not(:disabled){background:#0284c7;box-shadow:0 2px 8px #0ea5e94d}.btn-secondary{background:#64748b;color:#fff}.btn-secondary:hover:not(:disabled){background:#475569;box-shadow:0 2px 8px #64748b4d}.btn-success{background:#10b981;color:#fff}.btn-success:hover:not(:disabled){background:#059669;box-shadow:0 2px 8px #10b9814d}.btn-info{background:#0ea5e9;color:#fff}.btn-info:hover:not(:disabled){background:#0284c7;box-shadow:0 2px 8px #0ea5e94d}.features{background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 1px 3px #0000000f;margin-bottom:20px;padding:28px}.features h3{color:#0f172a;font-size:1.4em;font-weight:700;margin-bottom:20px;text-align:center}.features-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.feature-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:20px;text-align:center;transition:border-color .2s ease}.feature-card:hover{border-color:#0ea5e9}.feature-card h4{color:#0f172a;font-size:1.15em;font-weight:600;margin-bottom:8px}.feature-card p{color:#555;line-height:1.6}.footer{color:#fff;font-size:.9em;opacity:.9;padding:20px;text-align:center}@media (max-width:1024px){.ipqc-container{padding:15px}.form-card{padding:30px}}@media (max-width:768px){.ipqc-container{padding:0}.header{flex-direction:column;gap:20px;margin-bottom:20px;padding:20px;text-align:center}.logo{max-width:200px;min-width:auto;padding:15px;width:100%}.logo h1{font-size:1.8em}.logo p{font-size:1em}.title h2{font-size:1.4em}.title p{font-size:.95em}.info-banner{margin-bottom:20px;padding:12px 20px}.info-banner p{font-size:.95em}.form-card{border-radius:12px;margin-bottom:20px;padding:20px}.form-card h3{font-size:1.4em;margin-bottom:20px}.form-grid{gap:15px;grid-template-columns:1fr}.form-group input,.form-group select,.form-group textarea{font-size:16px;padding:14px}.button-group{flex-direction:column;gap:10px}.btn{font-size:15px;padding:14px;width:100%}.features-grid{gap:15px;grid-template-columns:1fr}.feature-card{padding:20px}.feature-card h4{font-size:1.1em}}@media (max-width:480px){.header{border-radius:10px;padding:15px}.logo h1{font-size:1.5em}.title h2{font-size:1.2em}.form-card{border-radius:10px;padding:15px}.form-card h3{font-size:1.2em}.info-banner{font-size:.9em;padding:10px 15px}}.ipqc-combined-container{margin:0 auto;max-width:1200px;padding:0}.ipqc-combined-header{align-items:center;background:#0f172a;border-radius:10px 10px 0 0;color:#fff;display:flex;justify-content:space-between;padding:18px 24px}.ipqc-header-brand{align-items:center;display:flex;gap:16px}.ipqc-header-logo{align-items:center;background:#ffffff26;border:2px solid #ffffff4d;border-radius:12px;display:flex;font-size:24px;font-weight:800;height:48px;justify-content:center;width:48px}.ipqc-logo-text{color:#fff}.ipqc-header-title{font-size:1.4em;font-weight:700;letter-spacing:2px;margin:0}.ipqc-header-sub{font-size:.85em;font-weight:400;margin:2px 0 0;opacity:.8}.ipqc-tabs{background:#1e293b;border-bottom:3px solid #334155;display:flex;padding:0}.ipqc-tab{align-items:center;background:#0000;border:none;color:#94a3b8;cursor:pointer;display:flex;flex:1 1;font-size:1em;font-weight:600;gap:10px;justify-content:center;padding:16px 24px;position:relative;transition:all .3s ease}.ipqc-tab:hover{background:#ffffff0a;color:#e2e8f0}.ipqc-tab.active{background:#60a5fa14;color:#60a5fa}.ipqc-tab.active:after{background:linear-gradient(90deg,#3b82f6,#60a5fa);border-radius:3px 3px 0 0;bottom:-3px;content:"";height:3px;left:0;position:absolute;right:0}.ipqc-tab-icon{font-size:1.3em}.ipqc-tab-label{font-weight:700}.ipqc-tab-desc{display:none;font-size:.75em;font-weight:400;opacity:.6}@media (min-width:640px){.ipqc-tab-desc{display:inline;margin-left:4px}}.ipqc-tab-content{background:#fff;border:1px solid #e2e8f0;border-radius:0 0 10px 10px;border-top:none;box-shadow:0 1px 3px #0000000f;padding:24px}.peel-summary{grid-gap:12px;background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #bae6fd;border-radius:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin:20px 0;padding:16px}.peel-summary-item{padding:8px;text-align:center}.peel-summary-label{color:#64748b;display:block;font-size:.75em;font-weight:600;letter-spacing:1px;margin-bottom:4px;text-transform:uppercase}.peel-summary-value{color:#1e40af;display:block;font-size:1.1em;font-weight:700}.peel-note{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;color:#92400e;font-size:.88em;margin-top:16px;padding:12px 16px}.btn-large{font-size:1.05em!important;padding:14px 32px!important}@media (max-width:600px){.ipqc-combined-header{padding:16px}.ipqc-header-title{font-size:1.1em}.ipqc-tab{font-size:.85em;gap:6px;padding:12px 8px}.ipqc-tab-content{padding:16px}.peel-summary{grid-template-columns:repeat(2,1fr)}}.daily-report-container{margin:0 auto;max-width:1400px;padding:24px}.report-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0000000f;padding:32px}.header-section{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.report-card h2{color:#0f172a;font-size:24px;font-weight:700;letter-spacing:-.3px;margin:0 0 4px}.subtitle{color:#64748b;font-weight:400}.company-info-btn{background:#0ea5e9;border:none;border-radius:6px;color:#fff;cursor:pointer;font-family:Inter,sans-serif;font-size:13px;font-weight:600;padding:9px 18px;transition:all .2s}.company-info-btn:hover{background:#0284c7;box-shadow:0 2px 8px #0ea5e940}.company-info-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin:16px 0;padding:20px}.save-btn{background:#10b981;border:none;border-radius:6px;color:#fff;cursor:pointer;font-family:Inter,sans-serif;font-size:14px;font-weight:600;margin-top:12px;padding:11px;transition:all .2s;width:100%}.save-btn:hover{background:#059669}.excel-upload-section{margin:24px 0}.upload-box{background:#f8fafc;border:2px dashed #cbd5e1;border-radius:10px;padding:32px;text-align:center;transition:all .2s}.upload-box:hover{background:#f0f9ff;border-color:#0ea5e9}.upload-icon{display:block;font-size:40px;margin-bottom:10px;opacity:.6}.upload-text{color:#1e293b;font-size:15px;margin:6px 0}.upload-hint{color:#94a3b8;font-size:13px}.upload-success{animation:fadeSlide .3s ease;background:#10b981;border-radius:6px;color:#fff;font-size:13px;font-weight:600;margin-top:12px;padding:12px;text-align:center}@keyframes fadeSlide{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.report-form{margin-top:24px}.section-title{align-items:center;border-bottom:1px solid #e2e8f0;color:#0f172a;display:flex;font-size:15px;font-weight:600;gap:8px;margin:24px 0 12px;padding-bottom:8px}.form-row{margin-bottom:16px}.form-group label{margin-bottom:5px}.form-group input,.form-group textarea{border:1px solid #e2e8f0;border-radius:6px;color:#1e293b;font-family:Inter,sans-serif;font-size:14px;padding:9px 12px;transition:all .2s}.form-group input:focus,.form-group textarea:focus{border-color:#0ea5e9;box-shadow:0 0 0 3px #0ea5e91a;outline:none}.form-group textarea{min-height:40px}.summary-cards{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:24px 0}.summary-card{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:10px;color:#1e293b;display:flex;gap:16px;padding:20px;transition:box-shadow .2s}.summary-card:hover{box-shadow:0 4px 12px #0000000f}.summary-card .card-icon{font-size:32px;opacity:.7}.summary-card .card-content{flex:1 1}.summary-card h3{color:#64748b;font-size:11px;font-weight:600;letter-spacing:.5px;margin:0 0 4px;text-transform:uppercase}.summary-card .big-number{color:#0f172a;font-size:24px;font-weight:700;margin:0}.summary-card .card-label{color:#94a3b8;font-size:11px}.rejection-section{background:#fff;border:1px solid #e2e8f0;border-radius:10px;margin:16px 0;padding:20px}.section-header{gap:12px;margin-bottom:16px}.rejection-actions{display:flex;flex-wrap:wrap;gap:8px}.btn-add-rejection,.btn-upload-excel,.btn-view-rejections{border:none;border-radius:6px;cursor:pointer;font-family:Inter,sans-serif;font-size:13px;font-weight:600;padding:8px 16px;transition:all .2s}.btn-add-rejection{background:#0ea5e9;color:#fff}.btn-add-rejection:hover{background:#0284c7}.btn-upload-excel{background:#8b5cf6;color:#fff;display:inline-block}.btn-upload-excel:hover{background:#7c3aed}.btn-view-rejections{background:#f1f5f9;border:1px solid #e2e8f0;color:#475569}.btn-view-rejections:hover{background:#e2e8f0}.btn-add-day{background:#10b981;border:none;border-radius:6px;color:#fff;cursor:pointer;font-family:Inter,sans-serif;font-size:14px;font-weight:600;padding:10px 24px;transition:all .2s}.btn-add-day:hover{background:#059669}.btn-delete-all{background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#ef4444;cursor:pointer;font-family:Inter,sans-serif;font-size:13px;font-weight:600;padding:8px 16px;transition:all .2s}.btn-delete-all:hover{background:#fee2e2;border-color:#fca5a5}.rejection-list{margin:16px 0;overflow-x:auto}.rejection-table{border-collapse:collapse;width:100%}.rejection-table th{background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff;font-size:12px;font-weight:600;letter-spacing:.3px;padding:10px 12px;text-align:left;text-transform:uppercase}.rejection-table td{border-bottom:1px solid #f1f5f9;color:#475569;font-size:13px;padding:9px 12px}.rejection-table tbody tr:hover{background:#f8fafc}.btn-delete{background:#fef2f2;border:1px solid #fecaca;color:#ef4444;font-size:12px;font-weight:600;padding:5px 10px}.btn-delete:hover{background:#fee2e2}.rejection-stats{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:16px}.modal-overlay{animation:modalBgIn .2s ease}@keyframes modalBgIn{0%{opacity:0}to{opacity:1}}.modal-content{animation:modalSlide .25s ease;box-shadow:0 25px 50px -12px #00000040;max-height:85vh;padding:28px;width:92%}@keyframes modalSlide{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.modal-content h3{font-size:18px;font-weight:700;margin:0 0 20px}.modal-form{display:flex;flex-direction:column;gap:14px}.modal-form label{color:#475569;font-size:13px;font-weight:500;margin-bottom:4px}.modal-form input,.modal-form select{border:1px solid #e2e8f0;border-radius:6px;font-family:Inter,sans-serif;font-size:14px;padding:9px 12px;transition:border-color .2s}.modal-form input:focus,.modal-form select:focus{border-color:#0ea5e9;box-shadow:0 0 0 3px #0ea5e91a;outline:none}.btn-cancel,.btn-save{border-radius:6px;flex:1 1;font-family:Inter,sans-serif;padding:10px;transition:all .2s}.btn-cancel{color:#475569}.btn-save:hover{background:#0284c7}.btn-generate-pdf{background:#10b981;border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:Inter,sans-serif;font-size:15px;font-weight:600;padding:12px 32px;transition:all .2s}.btn-generate-pdf:hover{background:#059669}.company-list-view{padding:24px}.list-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:28px;padding-bottom:16px}.list-header h2{color:#0f172a;font-size:24px;font-weight:700;letter-spacing:-.3px;margin:0}.list-header h2:before{content:"";display:none}.btn-add-company,.btn-new-company{align-items:center;background:linear-gradient(135deg,#0ea5e9,#0284c7);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-family:Inter,sans-serif;font-size:13px;font-weight:600;gap:6px;letter-spacing:.2px;padding:10px 20px;text-transform:none;transition:all .2s}.btn-add-company:before,.btn-new-company:before{content:none}.btn-add-company:hover,.btn-new-company:hover{background:linear-gradient(135deg,#0284c7,#0369a1);box-shadow:0 4px 16px #0ea5e94d;transform:none}.empty-state{color:#94a3b8;font-size:15px;padding:48px 20px;text-align:center}.company-cards{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));margin-top:24px}.company-card{border:1px solid #e2e8f0;box-shadow:0 1px 3px #0000000a;overflow:hidden;padding:0;position:relative;transition:all .25s ease}.company-card:before{background:linear-gradient(90deg,#0ea5e9,#38bdf8);content:"";height:3px;left:0;position:absolute;right:0;top:0;z-index:1}.company-card:hover{border-color:#cbd5e1;box-shadow:0 8px 24px #00000014}.card-header{align-items:center;background:#fff;border-bottom:1px solid #f1f5f9;display:flex;justify-content:space-between;margin-bottom:0;padding:20px 24px 16px}.card-header h3{color:#0f172a;font-size:18px;font-weight:700;letter-spacing:-.2px;margin:0}.card-header h3:before{content:none}.card-date{background:#f1f5f9;border-radius:20px;color:#64748b;font-size:11px;font-weight:600;padding:4px 10px;white-space:nowrap}.card-body{background:#fff;display:flex;flex-direction:column;gap:6px;padding:16px 24px}.info-row{align-items:center;background:#f8fafc;border:1px solid #0000;border-radius:8px;justify-content:space-between;padding:10px 14px;transition:background .15s}.info-row:hover{background:#f0f9ff;border-color:#e0f2fe}.info-label{color:#64748b;font-size:13px;font-weight:500;gap:6px}.info-label,.info-value{align-items:center;display:flex}.info-value{color:#0f172a;font-size:14px;font-weight:700;gap:4px}.info-unit{color:#94a3b8;font-size:12px;font-weight:400}.highlight-blue{background:#e0f2fe;color:#0284c7}.highlight-blue,.highlight-red{border-radius:20px;font-size:13px;font-weight:700;padding:2px 10px}.highlight-red{background:#fef2f2;color:#dc2626}.card-actions{background:#fff;border-top:1px solid #f1f5f9;display:flex;gap:10px;padding:16px 24px}.btn-open{align-items:center;background:linear-gradient(135deg,#0ea5e9,#0284c7);border:none;border-radius:8px;box-shadow:none;color:#fff;cursor:pointer;display:flex;flex:1 1;font-family:Inter,sans-serif;font-size:13px;font-weight:600;gap:6px;justify-content:center;letter-spacing:.2px;padding:11px 20px;text-transform:none;transition:all .2s}.btn-open:before{content:none}.btn-open:hover{background:linear-gradient(135deg,#0284c7,#0369a1);box-shadow:0 4px 16px #0ea5e94d}.btn-delete-card{align-items:center;background:#fff;border:1px solid #fecaca;border-radius:8px;box-shadow:none;color:#ef4444;cursor:pointer;display:flex;font-family:Inter,sans-serif;font-size:13px;font-weight:600;gap:4px;justify-content:center;letter-spacing:0;padding:11px 18px;text-transform:none;transition:all .2s}.btn-delete-card:before{content:none}.btn-delete-card:hover{background:#fef2f2;border-color:#fca5a5}.company-form-view{margin:0 auto;max-width:800px;padding:24px}.form-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.form-header h2{color:#0f172a;font-size:22px;font-weight:700}.btn-back{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;color:#475569;font-size:13px;padding:8px 16px;transition:all .2s}.btn-back:hover{background:#e2e8f0}.btn-save-company{background:#0ea5e9;border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:Inter,sans-serif;font-size:14px;font-weight:600;margin-top:16px;padding:12px;transition:all .2s;width:100%}.btn-save-company:hover{background:#0284c7}.production-view{padding:20px}.production-view-container{padding:16px;width:100%}.production-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:20px;padding-bottom:16px}.production-header h2{color:#0f172a;font-size:20px;font-weight:700;margin:0}.production-section{background:#fff;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:16px;padding:16px}.production-section h3{color:#0f172a;font-size:15px;font-weight:600;margin:0 0 12px}.production-table-wrapper{border:1px solid #e2e8f0;border-radius:8px;margin:12px 0;overflow-x:auto}.view-header{align-items:flex-start;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.view-header h2{color:#0f172a;font-size:22px;font-weight:700;margin:0}.company-subtitle{color:#64748b;font-size:13px;margin-top:4px}.generate-btn{background:#10b981;border-radius:8px;font-family:Inter,sans-serif;font-size:15px;font-weight:600;padding:14px;transition:all .2s;width:100%}.generate-btn:hover{background:#059669}.production-table{margin:16px 0;overflow-x:auto}.production-table table{background:#fff;border-collapse:collapse;font-size:13px;width:100%}.production-table th{background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff;font-size:11px;font-weight:600;letter-spacing:.3px;padding:10px 8px;text-align:center;text-transform:uppercase;white-space:nowrap}.production-table td{border-bottom:1px solid #f1f5f9;color:#334155;padding:8px 6px;text-align:center;vertical-align:middle}.production-table tbody tr:hover{background:#f8fafc}.table-input{border:1px solid #e2e8f0;border-radius:4px;font-family:Inter,sans-serif;font-size:13px;padding:6px 8px;text-align:center;transition:border-color .2s;width:100%}.table-input:focus{border-color:#0ea5e9;box-shadow:0 0 0 2px #0ea5e91a;outline:none}.total-cell{background:#f0f9ff;color:#0ea5e9;font-size:14px;font-weight:700}.total-row{background:#f8fafc!important}.total-row td{border-bottom:none;border-top:2px solid #0ea5e9;font-weight:600;padding:10px 8px}.rejection-list-table{margin-top:12px;overflow-x:auto;width:100%}.rejection-list-table table{border-collapse:collapse;table-layout:fixed;width:100%}.rejection-list-table td,.rejection-list-table th{border-bottom:1px solid #f1f5f9;font-size:13px;padding:9px 8px;text-align:left}.rejection-list-table th{background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff;font-size:11px;font-weight:600;letter-spacing:.3px;text-transform:uppercase}.rejection-list-table td:first-child,.rejection-list-table th:first-child{font-family:JetBrains Mono,monospace;font-size:12px;width:35%}.rejection-list-table td:nth-child(2),.rejection-list-table th:nth-child(2){text-align:center;width:15%}.rejection-list-table td:nth-child(3),.rejection-list-table th:nth-child(3){width:25%}.rejection-list-table td:nth-child(4),.rejection-list-table th:nth-child(4){width:18%}.rejection-list-table td:nth-child(5),.rejection-list-table th:nth-child(5){text-align:center;width:7%}.rejection-list-table tbody tr:hover{background:#f8fafc}.rejection-list-table tbody tr:nth-child(2n){background:#fafbfc}.loading{padding:32px}@media (max-width:1024px){.daily-report-container{padding:16px}.report-card{padding:24px}.company-cards{grid-template-columns:1fr 1fr}}@media (max-width:768px){.daily-report-container{padding:12px}.report-card{border-radius:8px;padding:16px}.header-section{flex-direction:column;gap:12px;text-align:center}.report-card h2{font-size:20px}.company-info-btn{width:100%}.company-info-form{padding:14px}.form-row{gap:12px;grid-template-columns:1fr}.form-group input,.form-group select,.form-group textarea{font-size:16px;padding:12px}.upload-box{padding:20px 14px}.summary-cards{gap:10px;grid-template-columns:1fr}.summary-card{padding:14px}.summary-card .big-number{font-size:20px}.list-header{flex-direction:column;gap:12px;text-align:center}.list-header h2{font-size:20px}.btn-add-company,.btn-new-company{width:100%}.company-cards{gap:12px;grid-template-columns:1fr}.card-header{flex-direction:column;gap:8px;padding:14px}.card-header h3{font-size:15px}.card-body{padding:14px}.info-row{align-items:flex-start;flex-direction:column;gap:4px;padding:8px 10px}.card-actions{flex-direction:column;gap:8px;padding:14px}.btn-delete-card,.btn-open{text-align:center;width:100%}.production-view{padding:10px}.production-view-container{padding:0}.production-header{flex-direction:column!important;gap:10px}.production-header h2{font-size:17px;text-align:center}.production-header button{width:100%!important}.production-section{padding:10px 0}.production-table th{font-size:9px!important;padding:8px 4px!important}.production-table td{font-size:10px!important;padding:6px 4px!important}.production-table .table-input{font-size:10px!important;min-width:50px;padding:4px 2px!important}.section-header,.view-header{flex-direction:column;gap:10px;text-align:center}.rejection-actions{flex-direction:column;width:100%}.btn-add-rejection,.btn-upload-excel,.btn-view-rejections{text-align:center;width:100%}.modal-content{border-radius:10px;max-height:85vh;padding:20px;width:95%}.modal-content h3{font-size:17px}.modal-actions{flex-direction:column}.company-form-view{padding:10px}.form-header{flex-direction:column;gap:8px;text-align:center}.btn-back{width:100%}.rejection-list-table{margin:0 -10px}.rejection-list-table table{min-width:600px}.rejection-list-table td,.rejection-list-table th{font-size:10px;padding:6px 4px}}@media (max-width:480px){.daily-report-container{padding:8px}.report-card{padding:12px}.report-card h2{font-size:17px}.summary-card{padding:12px}.summary-card .big-number{font-size:18px}.production-header h2{font-size:15px}.production-table{font-size:9px!important}.card-header h3{font-size:14px}.info-row{font-size:12px;padding:6px 8px}.btn-delete-card,.btn-open{font-size:12px;padding:10px}.modal-content{padding:16px;width:98%}.modal-content h3{font-size:16px}.modal-form input,.modal-form select{font-size:16px;padding:10px}}.coc-dashboard{margin:0 auto;max-width:1400px;padding:20px}.dashboard-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:10px;color:#fff;flex-wrap:wrap;gap:15px;justify-content:space-between;margin-bottom:30px;padding:20px;disp.btn-report:hover{background:#0b7dda}.info-banner{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-left:4px solid #2196f3;border-radius:8px;color:#1565c0;display:flex;flex-direction:column;gap:5px;padding:12px 20px}.info-banner,.message{font-size:14px;margin-bottom:20px}.message{border-radius:5px;padding:15px}}.dashboard-header h1{flex:1 1;font-size:28px;margin:0;min-width:250px}.header-actions{flex-wrap:wrap}.date-filters,.header-actions{align-items:center;display:flex;gap:10px}.date-filters label{display:flex;flex-direction:column;font-size:12px;font-weight:700;gap:5px}.date-input{background:#fff;border:2px solid #e0e0e0;border-radius:5px;color:#333;cursor:pointer;font-size:14px;padding:8px 12px;transition:all .2s}.date-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea33;outline:none}.company-select{background:#fff;padding:10px 15px}.btn-report,.btn-sync,.company-select{border:none;border-radius:5px;cursor:pointer;font-size:14px}.btn-report,.btn-sync{font-weight:700;padding:10px 20px;transition:all .3s}.btn-sync{background:#4caf50;color:#fff}.btn-sync:hover{background:#45a049}.btn-sync:disabled{background:#ccc;cursor:not-allowed}.btn-report{background:#2196f3;color:#fff}.btn-report:hover{background:#0b7dda}.message{border-radius:5px;font-weight:700;margin-bottom:20px;padding:15px}.message.success{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.message.error{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.section{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;margin-bottom:40px;padding:20px}.section h2{border-bottom:3px solid #667eea;color:#333;font-size:22px;margin-bottom:20px;margin-top:0;padding-bottom:10px}.stock-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.stock-card{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);border-radius:10px;box-shadow:0 4px 6px #0000001a;padding:20px;transition:transform .3s}.stock-card:hover{transform:translateY(-5px)}.stock-card h3{color:#333;font-size:18px;margin:0 0 15px}.stock-info{display:flex;flex-direction:column;gap:8px;margin-bottom:15px}.stock-item{display:flex;justify-content:space-between;padding:5px 0}.stock-item.highlight{background:#ffffff80;border-radius:5px;font-weight:700;padding:10px}.stock-item .label{color:#666;font-size:14px}.stock-item .value{color:#333;font-weight:700}.stock-item .value.consumed{color:#f44336}.stock-item .value.low-stock{animation:pulse 2s infinite;color:#ff9800}.stock-bar{background:#e0e0e0;border-radius:5px;height:10px;overflow:hidden}.stock-progress{background:linear-gradient(90deg,#4caf50,#8bc34a);height:100%;transition:width .5s}.coc-table-container{overflow-x:auto}.coc-table{border-collapse:collapse;font-size:14px;width:100%}.coc-table thead{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.coc-table th{font-weight:700;padding:12px;text-align:left;white-space:nowrap}.coc-table td{border-bottom:1px solid #e0e0e0;padding:12px}.coc-table tbody tr:hover{background:#f5f5f5}.coc-table .number{font-family:Courier New,monospace;text-align:right}.coc-table .consumed{color:#f44336}.coc-table .low-stock{color:#ff9800;font-weight:700}.doc-link{background:#2196f3;border-radius:3px;color:#fff;display:inline-block;font-size:12px;margin:0 5px;padding:5px 10px;text-decoration:none;transition:background .3s}.doc-link:hover{background:#0b7dda}.loading{color:#666;font-size:18px;text-align:center}@media (max-width:768px){.dashboard-header{flex-direction:column;gap:15px}.header-actions{flex-direction:column;width:100%}.btn-report,.btn-sync,.company-select{width:100%}.stock-grid{grid-template-columns:1fr}}.section-header{flex-wrap:wrap;gap:20px;margin-bottom:20px}.search-box{flex:1 1;max-width:500px;min-width:250px;position:relative}.search-input{border:2px solid #e0e0e0;border-radius:8px;font-size:14px;outline:none;padding:12px 40px 12px 15px;transition:all .3s ease;width:100%}.search-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.clear-btn{align-items:center;background:#ff6b6b;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:16px;height:24px;justify-content:center;line-height:1;position:absolute;right:10px;top:50%;transform:translateY(-50%);transition:all .2s ease;width:24px}.clear-btn:hover{background:#ff5252;transform:translateY(-50%) scale(1.1)}.results-info{background:#f8f9fa;border-radius:6px;color:#666;font-size:14px;margin-bottom:15px;padding:8px 12px;text-align:right}.value.make{background:#667eea1a;border-radius:4px;color:#667eea;font-size:11px;font-weight:600;padding:2px 8px}@media (max-width:1024px){.coc-dashboard,.dashboard-header{padding:15px}.dashboard-header h1{font-size:24px}}@media (max-width:768px){.coc-dashboard{padding:10px}.dashboard-header{flex-direction:column;gap:15px;padding:15px;text-align:center}.dashboard-header h1{font-size:20px;min-width:auto;width:100%}.header-actions{justify-content:center;width:100%}.date-filters{flex-direction:column;gap:8px;width:100%}.date-filters label{width:100%}.date-input{font-size:16px;padding:10px 12px;width:100%}.company-select{font-size:16px;padding:12px 15px;width:100%}.btn-report,.btn-sync{padding:12px;width:100%}.section{margin-bottom:20px;padding:15px}.section h2{font-size:18px}.message{font-size:13px;padding:12px}.info-banner{font-size:13px;padding:10px 15px}.search-box{min-width:100%}.search-input{font-size:16px;padding:12px 40px 12px 15px}.results-info{font-size:13px;text-align:center}}@media (max-width:480px){.coc-dashboard{padding:8px}.dashboard-header{border-radius:8px;padding:12px}.dashboard-header h1{font-size:18px}.section{border-radius:8px;padding:12px}.section h2{font-size:16px}}.ftr-template-page{background:#fff;box-shadow:0 0 10px #0000001a;box-sizing:border-box;font-family:Arial,sans-serif;height:297mm;margin:20px auto;padding:0;position:relative;width:210mm}.ftr-header{background:#fff!important;background-image:none!important;border:none;padding:10mm 15mm 5mm 10mm}.ftr-logo{background:#fff;border:none;border-radius:0;height:auto;object-fit:contain;padding:0;width:75mm}.ftr-title{color:#000;font-family:Times New Roman,Times,serif;font-size:22px;font-weight:400;letter-spacing:.5px}.ftr-blue-bar{top:32mm}.ftr-blue-bar,.ftr-blue-bar-bottom{background:#1e3a6e;height:3mm;left:0;margin:0 10mm;position:absolute;right:0}.ftr-blue-bar-bottom{bottom:14mm}.ftr-content{grid-gap:10mm;display:grid;gap:10mm;grid-template-columns:1fr 1fr;margin-top:12.15mm;padding:0 10mm 0 16.46mm}.ftr-left-column,.ftr-right-column{display:flex;flex-direction:column;gap:6.4mm}.ftr-other-info,.ftr-reference-section,.ftr-section{margin-bottom:4mm}.ftr-section-title{color:#000;font-family:Arial MT,Arial,sans-serif;font-size:20px;font-weight:400;margin-bottom:3mm;padding-bottom:1mm;padding-left:3mm}.ftr-field-row{align-items:baseline;display:flex;margin-bottom:1.26mm;min-height:7.56mm;position:relative}.ftr-label{flex-shrink:0;font-size:16px;margin-right:2mm;min-width:auto;padding-left:7mm}.ftr-label,.ftr-value{color:#000;font-family:Arial MT,Arial,sans-serif;font-weight:500}.ftr-value{border-bottom:1px solid #999;flex:1 1;font-size:14.4px;line-height:18px;min-height:18px;padding-bottom:1px;padding-left:3px}.ftr-value-inline{color:#000;font-size:11px;margin-left:5px}.ftr-underline{border-bottom:1px solid #000;min-width:150px}.ftr-graph-container{align-items:center;background:#fff;border:none;box-sizing:border-box;display:flex;height:115.5mm;justify-content:center;margin-bottom:5mm;padding:0;width:105.6mm}.ftr-graph-image{height:100%;max-height:100%;max-width:100%;object-fit:contain;width:100%}.ftr-graph-placeholder{color:#999;font-size:12px}.ftr-reference-section{margin-top:3mm}.ftr-reference-section .ftr-field-row:nth-child(2) .ftr-label{padding-left:45mm}.ftr-reference-section .ftr-field-row:nth-child(3) .ftr-label{padding-left:28mm}.ftr-other-info .ftr-label{padding-left:20mm}@media print{.ftr-template-page{box-shadow:none;height:297mm;margin:0;page-break-after:always;width:210mm}body{margin:0;padding:0}}.ftr-template-page *{color-adjust:exact!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.graph-manager{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin:0 auto;max-width:1400px;padding:32px}.graph-manager-header{align-items:flex-start;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:32px;padding-bottom:24px}.graph-manager-header h2{color:#1e3a8a;font-size:28px;font-weight:700;margin:0 0 8px}.subtitle{color:#6b7280;font-size:14px;margin:0;max-width:600px}.btn-clear-all{background:#dc2626;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .2s}.btn-clear-all:hover{background:#b91c1c;transform:translateY(-1px)}.upload-section-graph{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr 1fr;margin-bottom:40px}.upload-instructions{background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;padding:24px}.upload-instructions h3{color:#1e3a8a;font-size:18px;margin:0 0 16px}.instruction-list p{color:#4b5563;font-size:14px;line-height:1.6;margin:8px 0}.instruction-list code{background:#e0e7ff;border-radius:3px;color:#1e3a8a;font-family:Courier New,monospace;font-size:13px;padding:2px 6px}.upload-box-graph{background:linear-gradient(135deg,#f8fafc,#e0e7ff);border:3px dashed #cbd5e1;border-radius:12px;cursor:pointer;padding:40px;text-align:center;transition:all .3s}.upload-box-graph:hover{background:linear-gradient(135deg,#e0e7ff,#c7d2fe);border-color:#1e3a8a;transform:translateY(-2px)}.upload-label{cursor:pointer;display:block}.upload-icon{font-size:48px;margin-bottom:12px}.upload-text{color:#1e3a8a;font-size:18px;font-weight:600;margin-bottom:8px}.upload-hint{color:#6b7280;font-size:14px}.graphs-display{margin-bottom:40px}.graphs-display h3{color:#1e3a8a;font-size:20px;font-weight:600;margin-bottom:20px}.graphs-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.graph-card{background:#fff;border:2px solid #e5e7eb;border-radius:8px;overflow:hidden;transition:all .2s}.graph-card:hover{border-color:#1e3a8a;box-shadow:0 4px 12px #1e3a8a26;transform:translateY(-2px)}.graph-card-header{align-items:center;background:#f8fafc;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:12px 16px}.power-badge{background:#1e3a8a;border-radius:12px;color:#fff;font-size:14px;font-weight:700;padding:4px 12px}.btn-delete{background:#0000;border:none;border-radius:4px;color:#dc2626;cursor:pointer;font-size:20px;padding:4px 8px;transition:all .2s}.btn-delete:hover{background:#fef2f2}.graph-preview{background:#fff;gap:12px;min-height:200px;padding:16px}.graph-item,.graph-preview{display:flex;flex-direction:column}.graph-item{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;padding:8px;position:relative}.graph-image{border-radius:4px;margin-bottom:8px;max-height:200px;max-width:100%;object-fit:contain}.btn-delete-single{background:#fee2e2;border:1px solid #fecaca;border-radius:4px;color:#dc2626;cursor:pointer;font-size:12px;margin-top:4px;padding:4px 8px;transition:all .2s}.btn-delete-single:hover{background:#fca5a5;transform:scale(1.05)}.graph-card-footer{background:#dcfce7;border-top:1px solid #bbf7d0;padding:10px 16px;text-align:center}.graph-status{color:#166534;font-size:13px;font-weight:600}.more-graphs{background:#e0e7ff;border-radius:4px;color:#1e3a8a;font-size:14px;font-weight:600;padding:10px;text-align:center}.empty-state-graph{background:#f8fafc;border:2px dashed #cbd5e1;border-radius:12px;margin-bottom:40px;padding:60px 20px;text-align:center}.empty-icon{font-size:64px;margin-bottom:16px;opacity:.5}.empty-state-graph h3{color:#374151;font-size:20px;margin:0 0 8px}.empty-state-graph p{color:#6b7280;font-size:14px;margin:0}.usage-info{background:#eff6ff;border-left:4px solid #1e3a8a;border-radius:8px;padding:24px}.usage-info h4{color:#1e3a8a;font-size:16px;margin:0 0 12px}.usage-info ul{margin:0;padding-left:20px}.usage-info li{color:#4b5563;font-size:14px;line-height:1.8;margin-bottom:8px}@media (max-width:768px){.graph-manager{padding:20px}.graphs-grid,.upload-section-graph{grid-template-columns:1fr}.graph-manager-header{flex-direction:column;gap:16px}}.bulk-ftr-container{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin:20px auto;max-width:1200px;padding:30px}.bulk-ftr-container h2{color:#333;font-size:28px;margin-bottom:30px;text-align:center}.upload-section{grid-gap:30px;display:grid;gap:30px;grid-template-columns:1fr 1fr;margin-bottom:30px}.upload-box{background:#f9f9f9;border:2px dashed #ddd;border-radius:8px;padding:25px}.upload-box h3{color:#1e3a8a;font-size:20px;margin-bottom:10px;margin-top:0}.upload-box p{color:#666;font-size:13px;line-height:1.5;margin-bottom:15px}.file-input{border:1px solid #ddd;border-radius:4px;cursor:pointer;display:block;font-size:14px;padding:12px;width:100%}.file-input:hover{background:#fff}.success-msg{background:#d4edda;border:1px solid #c3e6cb;border-radius:4px;color:#155724;font-size:14px;margin-top:15px;padding:12px}.generate-section{margin:30px 0;text-align:center}.generate-btn{background:#1e3a8a;border:none;border-radius:6px;cursor:pointer;font-size:18px;padding:15px 40px;transition:all .3s}.generate-btn:hover:not(:disabled){background:#1e40af;box-shadow:0 4px 12px #1e3a8a4d;transform:translateY(-2px)}.generate-btn:disabled{background:#ccc}.progress-bar{background:#e0e0e0;border-radius:15px;height:30px;margin-top:20px;width:100%}.progress-fill{align-items:center;background:linear-gradient(90deg,#1e3a8a,#3b82f6);color:#fff;display:flex;font-weight:700;height:100%;justify-content:center;transition:width .3s}.data-table-section{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin:24px 0;padding:20px}.table-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.table-header h3{color:#1e3a8a;font-size:18px;margin:0}.btn-clear{background:#dc2626;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;transition:all .2s}.btn-clear:hover{background:#b91c1c}.data-table{border-collapse:collapse;font-size:14px;width:100%}.data-table th{background:#f8fafc;border-bottom:2px solid #e5e7eb;color:#374151;font-weight:600;padding:12px 8px;text-align:left}.data-table td{border-bottom:1px solid #e5e7eb;padding:10px 8px}.data-table tbody tr:hover{background:#f8fafc}.data-table input{border:1px solid #cbd5e1;border-radius:4px;font-size:13px}.btn-cancel,.btn-delete,.btn-edit,.btn-save{border:none;border-radius:4px;cursor:pointer;font-size:14px;margin:0 4px;padding:6px 10px;transition:all .2s}.btn-edit{background:#3b82f6}.btn-edit:hover{background:#2563eb}.btn-delete:hover,.btn-edit:hover{transform:scale(1.1)}.btn-save{background:#10b981;font-size:16px;font-weight:700}.btn-save:hover{background:#059669}.btn-cancel{background:#6b7280;color:#fff;font-size:16px;font-weight:700}.btn-cancel:hover{background:#4b5563}@media (max-width:768px){.bulk-ftr-container{margin:10px;padding:15px}.bulk-ftr-container h2{font-size:22px;margin-bottom:20px}.upload-section{gap:15px;grid-template-columns:1fr;margin-bottom:20px}.upload-box{padding:15px}.upload-box h3{font-size:16px}.upload-box p{font-size:12px}.file-input{font-size:16px}.generate-section{margin:20px 0}.generate-btn{font-size:16px;padding:14px;width:100%}.data-table{font-size:12px}.data-table td,.data-table th{padding:8px 5px}.btn-cancel,.btn-delete,.btn-edit,.btn-save{font-size:12px;margin:2px;padding:6px 8px}}@media (max-width:480px){.bulk-ftr-container{border-radius:6px;margin:8px;padding:12px}.bulk-ftr-container h2{font-size:18px}.upload-box{padding:12px}.upload-box h3{font-size:14px}}.test-report-container{background:#fff;min-height:100vh;padding:20px}.test-controls{background:#fff;border:1px solid #ddd;border-radius:0;box-shadow:none;margin-bottom:20px;padding:20px}.test-controls h2{border-bottom:2px solid #007bff;color:#333;margin-bottom:20px;padding-bottom:10px;text-align:center}.control-panel{align-items:end;display:flex;flex-wrap:wrap;gap:20px}.control-panel .form-group{flex:1 1;min-width:300px}.export-pdf-btn{background:linear-gradient(135deg,#28a745,#20c997);border:none;border-radius:25px;color:#fff;cursor:pointer;font-weight:600;padding:12px 24px;transition:all .3s ease;white-space:nowrap}.export-pdf-btn:hover{box-shadow:0 5px 15px #28a74566;transform:translateY(-2px)}.template-report{background:#fff;box-shadow:0 2px 10px #0000001a;font-family:Arial,sans-serif;font-size:11px;height:297mm;margin:20px auto;position:relative;width:210mm}.template-field{color:#000;font-family:Arial,sans-serif;font-size:10px;position:absolute;white-space:nowrap}.template-graph{height:310px;left:295px;object-fit:contain;position:absolute;top:78px;width:470px}.report-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:5px;padding-bottom:15px}.header-line{background:#003d82;box-sizing:border-box;display:block;height:6px;margin:0 0 18px;width:100%}.company-logo{align-items:center;display:flex}.logo-image{height:60px;max-width:200px;width:auto}.report-title{align-items:center;display:flex}.report-title h1{color:#000;font-family:Arial,sans-serif;font-size:18px;font-weight:700;margin:0;text-align:right}.report-content{display:table;margin-top:30px;width:100%}.left-section{padding-right:20px;width:280px}.left-section,.right-section{display:table-cell;vertical-align:top}.right-section{padding-left:20px}.section{background:#0000;border:none;box-shadow:none;margin-bottom:25px;padding:0}.section h3{color:#000;font-size:12px;margin:0 0 8px;padding:0}.info-row,.section h3{font-family:Arial,sans-serif}.info-row{display:flex;font-size:10px;margin-bottom:2px;padding:2px 0}.info-row .label{color:#000;flex-shrink:0;font-weight:400;min-width:150px}.info-row .value{background:#0000!important;border-bottom:1px solid #000;border-radius:0!important;box-shadow:none!important;color:#000;flex:1 1;font-weight:400;padding-bottom:2px;padding-left:0;padding-right:0!important;padding-top:0!important}.info-row-simple{display:flex;font-family:Arial,sans-serif;font-size:10px;justify-content:flex-end;padding:2px 0}.info-row-simple .label{margin-right:10px}.info-row-simple .label,.info-row-simple .value{color:#000;font-weight:400}.info-row:last-child{border-bottom:none}.chart-container{background:#fff;border:1px solid #999;height:380px;margin-bottom:20px;padding:10px;width:100%}.chart-container,.chart-placeholder{align-items:center;display:flex;justify-content:center}.chart-placeholder{color:#6c757d;font-size:1.1rem;text-align:center}.iv-curve-chart,.svg-chart-container{display:block;height:100%;width:100%}.iv-curve-chart{background:#0000;border-radius:0}.iv-curve-image{height:auto;max-height:100%;max-width:100%;object-fit:contain;width:auto}.iv-curve-chart text{font-family:ArialMT,Arial,sans-serif;font-size:11px}.iv-curve-chart path{shape-rendering:geometricPrecision}.iv-curve-chart line{shape-rendering:crispEdges}.reference-conditions{background:#0000;border-left:none;border-radius:0;font-family:Arial,sans-serif;margin-bottom:20px;padding:10px 0}.reference-conditions h4{font-size:12px;font-weight:700;margin:0 0 8px;text-align:center}.ref-info,.reference-conditions h4{color:#000;font-family:Arial,sans-serif}.ref-info{align-items:flex-end;display:flex;flex-direction:column;font-size:10px;gap:3px}.other-info{background:#0000;border-left:none;border-radius:0;padding:10px 0}.other-info,.other-info h4{font-family:Arial,sans-serif}.other-info h4{color:#000;font-size:12px;font-weight:700;margin:0 0 8px;text-align:center}@media (max-width:1024px){.report-content{gap:20px;grid-template-columns:1fr}.report-header{flex-direction:column;gap:15px}.report-header,.report-title h1{text-align:center}}@media (max-width:768px){.test-report{padding:15px}.control-panel{align-items:stretch;flex-direction:column}.export-pdf-btn{width:100%}.chart-container{height:300px;padding:10px}.info-row{flex-direction:column;gap:5px}.info-row .label{font-weight:700;min-width:auto}.ref-info{flex-direction:column;gap:10px;text-align:center}}@media print{.test-controls{display:none}.test-report{margin:0;max-width:none;padding:15px 20px}.report-content{display:table;width:100%}.left-section{display:table-cell;width:45%}.right-section{display:table-cell;width:55%}.chart-container{height:280px;page-break-inside:avoid}}.test-report,.test-report *{background:#0000!important;background-image:none!important;border-radius:0!important;-webkit-border-radius:0!important;box-shadow:none!important}.test-report .info-row .value,.test-report .info-row .value:after,.test-report .info-row .value:before{background:#0000!important;background-image:none!important;border-radius:0!important;box-shadow:none!important;display:inline!important;margin:0!important;padding:0!important}.test-report .chart-container img,.test-report .chart-container svg{background:#0000!important}@media print{.test-report,.test-report *{background:#0000!important;border-radius:0!important;box-shadow:none!important}.test-report{background:#fff!important}}.user-management{margin:0 auto;max-width:1400px;padding:30px}.user-management-header{align-items:center;border-bottom:2px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:30px;padding-bottom:20px}.user-management-header h2{color:#0f172a;font-size:28px;margin:0}.user-management-header .subtitle{color:#64748b;font-size:14px;margin:5px 0 0}.btn-add-user{background:#0ea5e9;border:none;border-radius:8px;box-shadow:0 2px 6px #0ea5e926;color:#fff;cursor:pointer;font-size:15px;font-weight:600;padding:12px 24px;transition:all .3s ease}.btn-add-user:hover{box-shadow:0 2px 8px #0ea5e926}.users-table-section{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a;padding:25px}.users-table-section h3{color:#0f172a;font-size:18px;margin:0 0 20px}.users-table{border-collapse:collapse;font-size:14px;width:100%}.users-table thead{background:#0f172a;color:#fff}.users-table th{font-size:12px;font-weight:600;letter-spacing:.5px;padding:12px 15px;text-align:left;text-transform:uppercase}.users-table tbody tr{border-bottom:1px solid #e0e0e0;transition:background-color .2s ease}.users-table tbody tr:hover{background-color:#f8f9fa}.users-table td{padding:15px;vertical-align:middle}.username-badge{background:#e3f2fd;border-radius:6px;color:#0284c7;font-family:Courier New,monospace;font-size:13px}.role-badge,.username-badge{font-weight:600;padding:6px 12px}.role-badge{border-radius:12px;font-size:12px;letter-spacing:.5px;text-transform:uppercase}.role-badge.admin{background:#0f172a;color:#fff}.role-badge.user{background:#10b981;color:#fff}.password-display{background:#f0f0f0;border-radius:6px;color:#666;font-family:Courier New,monospace;font-size:16px;letter-spacing:2px;padding:6px 12px}.btn-show-password{background:#0000;border:none;cursor:pointer;font-size:16px;margin-left:8px;padding:4px 8px;transition:transform .2s ease}.btn-show-password:hover{transform:scale(1.2)}.action-buttons{gap:8px}.btn-delete,.btn-edit{border:none;border-radius:6px;cursor:pointer;font-size:14px;padding:6px 12px;transition:all .2s ease}.btn-edit{background:#0ea5e9;color:#fff}.btn-edit:hover{background:#0284c7;transform:scale(1.05)}.btn-delete{background:#ef4444;color:#fff}.btn-delete:hover{background:#dc2626;transform:scale(1.05)}.modal-overlay{animation:fadeIn .3s ease;z-index:2000}.modal-content{animation:slideUp .3s ease;border-radius:10px}.modal-content h3{color:#0f172a;font-size:22px;margin:0 0 25px}.form-group label{color:#0f172a}.form-group input,.form-group select{border:2px solid #e0e0e0;border-radius:8px;font-family:inherit;font-size:14px;outline:none;padding:12px 15px;transition:all .3s ease;width:100%}.form-group input:focus,.form-group select:focus{border-color:#0ea5e9;box-shadow:0 0 0 3px #0ea5e926}.form-group small{display:block;font-size:12px;margin-top:5px}.modal-actions{margin-top:25px}.btn-cancel,.btn-save{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:all .3s ease}.btn-save{background:#0ea5e9}.btn-save:hover{box-shadow:0 2px 8px #0ea5e926}.btn-cancel{background:#e0e0e0;color:#666}.btn-cancel:hover{background:#d0d0d0}.access-denied{padding:60px 20px;text-align:center}.access-denied h2{color:#ef4444;font-size:32px;margin-bottom:15px}.access-denied p{color:#64748b;font-size:16px}@media (max-width:768px){.user-management{padding:15px}.user-management-header{align-items:flex-start;flex-direction:column;gap:15px}.users-table{font-size:12px}.users-table td,.users-table th{padding:10px}.modal-content{padding:20px;width:95%}}.ftr-management-container{background:#f5f5f5;margin:0 auto;max-width:1400px;min-height:100vh;padding:20px}.ftr-header{align-items:center;background:#0ea5e9;border-radius:12px;color:#fff;display:flex;justify-content:space-between;margin-bottom:30px;padding:20px 30px}.ftr-header h1{font-size:28px;margin:0}.btn-back{background:#fff;border:none;border-radius:8px;color:#0ea5e9;font-weight:600;padding:10px 20px;transition:transform .2s}.btn-back:hover{transform:scale(1.05)}.company-selection{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:30px;padding:25px}.company-selection h2{color:#333;margin-top:0}.company-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-top:15px}.company-card{background:#64748b;border-radius:10px;color:#fff;padding:20px;text-align:center}.company-card:hover{box-shadow:0 2px 8px #0000000f}.company-card.active{background:#0ea5e9;box-shadow:0 2px 8px #0ea5e926}.company-card h3{font-size:18px;margin:0 0 8px}.company-card p{font-size:14px;margin:0;opacity:.9}.ftr-actions{display:flex;flex-wrap:wrap;gap:15px;margin-bottom:30px}.ftr-actions button{border:none;border-radius:10px;color:#fff;cursor:pointer;flex:1 1;font-size:16px;font-weight:600;min-width:200px;padding:15px 25px;transition:all .3s}.btn-upload-master{background:#64748b}.btn-assign{background:#0ea5e9}.btn-packed{background:#10b981}.ftr-actions button:hover{box-shadow:0 2px 8px #0000000f}.ftr-dashboard{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:30px}.ftr-stat-card{background:#fff;border-left:5px solid;border-radius:12px;box-shadow:0 2px 6px #0ea5e926;padding:25px;text-align:center;transition:transform .3s}.ftr-stat-card.master{border-left-color:#0ea5e9}.ftr-stat-card.assigned{border-left-color:#f093fb}.ftr-stat-card.packed{border-left-color:#43e97b}.ftr-stat-card.available{border-left-color:#4facfe}.ftr-stat-card.unpacked{border-left-color:#ffa726}.ftr-stat-card h3{color:#666;font-size:14px;letter-spacing:1px;margin:0 0 10px;text-transform:uppercase}.stat-number{color:#333;font-size:36px;margin:10px 0}.ftr-stat-card p{color:#999;font-size:13px;margin:10px 0 0}.pdi-table-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:25px}.pdi-table-container h3{color:#333;margin-top:0}.pdi-table{border-collapse:collapse;margin-top:15px;width:100%}.pdi-table thead{background:#0f172a;color:#fff}.pdi-table th{font-weight:600;padding:15px;text-align:left}.pdi-table td{border-bottom:1px solid #eee;padding:12px 15px}.pdi-table tbody tr:hover{background:#f8f9fa}.btn-view{background:#0ea5e9;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px}.btn-view:hover{opacity:.9}.modal-overlay{background:#000000b3}.modal-content{border-radius:12px;box-shadow:0 2px 6px #0ea5e926;padding:30px}.modal-content h2{color:#333;margin-top:0}.modal-content input[type=number],.modal-content input[type=text]{border:2px solid #e0e0e0;border-radius:8px;font-size:14px;margin:10px 0;padding:12px;width:100%}.modal-content input[type=file]{margin:15px 0}.modal-actions{gap:10px;margin-top:20px}.modal-actions button{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-size:14px;font-weight:600;padding:12px;transition:all .2s}.modal-actions button:first-child{background:#0f172a;color:#fff}.modal-actions button:first-child:hover{opacity:.9}.modal-actions button:last-child{background:#f5f5f5;color:#666}.loading-overlay{align-items:center;background:#ffffffe6;bottom:0;color:#0ea5e9;display:flex;font-size:24px;font-weight:600;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:999}@keyframes loading{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@media (max-width:1024px){.ftr-management-container{padding:15px}.ftr-dashboard{gap:15px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.ftr-stat-card{padding:20px}.stat-number{font-size:28px}}@media (max-width:768px){.ftr-management-container{background:#f5f5f5;padding:10px}.ftr-header{flex-direction:column;gap:15px;padding:15px 20px;text-align:center}.ftr-header h1{font-size:20px;margin:0}.btn-back{padding:12px;width:100%}.company-selection{margin-bottom:20px;padding:15px}.company-selection h2{font-size:18px;text-align:center}.company-grid{gap:10px;grid-template-columns:1fr}.company-card{padding:15px}.company-card h3{font-size:16px}.ftr-actions{flex-direction:column;gap:10px;margin-bottom:20px}.ftr-actions button{font-size:14px;min-width:100%;padding:14px 20px}.ftr-dashboard{gap:10px;grid-template-columns:repeat(2,1fr);margin-bottom:20px}.ftr-stat-card{border-radius:10px;padding:15px}.ftr-stat-card h3{font-size:11px;margin-bottom:5px}.stat-number{font-size:24px;margin:5px 0}.ftr-stat-card p{font-size:11px;margin:5px 0 0}.pdi-table-container{overflow-x:auto;padding:15px}.pdi-table-container h3{font-size:16px}.pdi-table td,.pdi-table th{font-size:12px;padding:10px 8px}.btn-view{font-size:12px;padding:6px 12px}.modal-content{max-height:90vh;overflow-y:auto;padding:20px;width:95%}.modal-content h2{font-size:18px}.modal-content input[type=number],.modal-content input[type=text]{font-size:16px;padding:14px}.modal-actions{flex-direction:column}.modal-actions button{padding:14px}}@media (max-width:480px){.ftr-management-container{padding:8px}.ftr-header{border-radius:8px;padding:12px 15px}.ftr-header h1{font-size:18px}.company-selection{padding:12px}.ftr-dashboard{gap:8px;grid-template-columns:1fr 1fr}.ftr-stat-card{padding:12px}.stat-number{font-size:20px}.ftr-stat-card h3{font-size:10px}.pdi-table-container{border-radius:0;margin:0 -8px;padding:10px}.pdi-table td,.pdi-table th{font-size:11px;padding:8px 5px}}.ai-assistant-container{background:linear-gradient(135deg,#f8fafc,#f1f5f9);color:#0f172a;font-family:Poppins,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:.3px;min-height:100vh}.ai-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#0f172a,#1e293b);border-bottom:1px solid #06b6d433;box-shadow:0 8px 24px #0f172a1f;justify-content:space-between;padding:18px 32px}.ai-header,.ai-header-left{align-items:center;display:flex}.ai-header-left{gap:20px}.ai-header-left h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#22d3ee);-webkit-background-clip:text;background-clip:text;color:#fff;font-family:Outfit,sans-serif;font-size:28px;font-weight:700;letter-spacing:-.5px;margin:0}.ai-header-right{align-items:center;display:flex;gap:15px}.btn-back{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1f;border:1px solid #ffffff40;border-radius:10px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 18px;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-back:hover{background:#ffffff2e;border-color:#ffffff59;box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.api-status{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;font-size:12px;font-weight:500;padding:8px 14px}.api-status.configured{background:#10b98126;border:1px solid #10b9814d;color:#10b981}.api-status.not-configured{background:#f59e0b26;border:1px solid #f59e0b4d;color:#f59e0b}.btn-config{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#22d3ee26;border:1px solid #22d3ee66;border-radius:10px;color:#22d3ee;cursor:pointer;font-size:14px;font-weight:500;padding:10px 18px;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-config:hover{background:#22d3ee40;border-color:#22d3ee99;box-shadow:0 4px 12px #22d3ee33;transform:translateY(-2px)}.ai-main-content{display:flex;height:calc(100vh - 70px)}.ai-sidebar{background:#fff;border-right:1px solid #e2e8f0;box-shadow:2px 0 16px #0f172a14;overflow-y:auto;padding:24px;width:320px}.ai-sidebar h3{color:#0f172a;font-family:Outfit,sans-serif;font-size:18px;font-weight:700;letter-spacing:-.3px;margin:0 0 18px}.ai-sidebar h4{color:#06b6d4;font-family:IBM Plex Sans,sans-serif;font-size:13px;font-weight:600;letter-spacing:.5px;margin:24px 0 12px;text-transform:uppercase}.sidebar-summary{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 8px #0f172a0d;padding:16px}.summary-item{border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:10px 0}.summary-item:last-child{border-bottom:none}.summary-item .label{color:#64748b;font-size:12px;font-weight:500}.summary-item .value{color:#0f172a;font-family:IBM Plex Sans,monospace;font-weight:700}.summary-item .value.highlight{color:#10b981}.summary-item .value.warning{color:#f59e0b}.company-list{gap:8px}.company-item{background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 2px 6px #0f172a0a;cursor:pointer;padding:12px 14px;transition:all .3s cubic-bezier(.4,0,.2,1)}.company-item:hover{background:linear-gradient(135deg,#f0f9ff,#f1f5f9);border-color:#06b6d4;box-shadow:0 4px 12px #06b6d426;transform:translateX(6px)}.company-name{color:#0f172a;display:block;font-size:14px;margin-bottom:4px}.company-stats{color:#94a3b8;font-size:11px;font-weight:400}.btn-refresh{background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:10px;box-shadow:0 4px 12px #10b98140;color:#fff;cursor:pointer;font-size:14px;font-weight:600;margin-top:24px;padding:12px 16px;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%}.btn-refresh:hover{box-shadow:0 6px 16px #10b98159;transform:translateY(-2px)}.btn-refresh:active{transform:translateY(0)}.company-selector{margin-bottom:10px}.company-dropdown{border:1px solid #e2e8f0;color:#0f172a;font-size:13px;font-weight:500;padding:10px 12px}.company-dropdown:focus{background:#fff;border-color:#06b6d4;box-shadow:0 0 0 3px #06b6d41a}.company-dropdown option{background:#fff;color:#0f172a;font-weight:500}.export-buttons{display:flex;flex-direction:column;gap:8px;margin-top:10px}.export-loading{animation:pulse 1s infinite;color:#00d4ff;font-size:12px;margin-top:10px;text-align:center}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.ai-chat-area{background:linear-gradient(135deg,#f8fafc,#f1f5f9);display:flex;flex:1 1;flex-direction:column;padding:24px}.quick-questions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:15px}.suggested-questions-section{background:#fff;border:1px solid #e8e8e8;border-radius:12px;box-shadow:0 2px 10px #0000000d;margin-bottom:15px;padding:12px}.category-tabs{display:flex;gap:8px;margin-bottom:12px;overflow-x:auto;padding-bottom:8px}.category-tab{align-items:center;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:12px;color:#64748b;cursor:pointer;display:flex;font-size:12px;font-weight:500;gap:6px;padding:8px 16px;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap}.category-tab:hover{background:#e2e8f0;border-color:#cbd5e1;color:#334155}.category-tab.active{background:linear-gradient(135deg,#06b6d4,#0891b2);border-color:#0000;box-shadow:0 4px 12px #06b6d44d;color:#fff;font-weight:600}.category-questions{display:flex;flex-wrap:wrap;gap:8px}.quick-q-btn{background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 2px 6px #0f172a0a;color:#64748b;cursor:pointer;font-size:12px;font-weight:500;padding:8px 16px;transition:all .3s cubic-bezier(.4,0,.2,1)}.quick-q-btn:hover{background:#06b6d4;border-color:#0000;box-shadow:0 4px 12px #06b6d440;color:#fff;transform:translateY(-2px)}.messages-container{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 4px 12px #0f172a14;flex:1 1;margin-bottom:16px;overflow-y:auto;padding:16px}.message{animation:fadeIn .3s ease;display:flex;gap:12px;margin-bottom:15px}.message.user{flex-direction:row-reverse}.message-avatar{align-items:center;background:#f1f5f9;border:2px solid #e2e8f0;border-radius:50%;display:flex;flex-shrink:0;font-size:20px;font-weight:600;height:40px;justify-content:center;width:40px}.message.user .message-avatar{background:linear-gradient(135deg,#06b6d4,#0891b2);border:none;box-shadow:0 4px 12px #06b6d44d;color:#fff}.message.assistant .message-avatar{background:linear-gradient(135deg,#10b981,#059669);border:none;box-shadow:0 4px 12px #10b9814d;color:#fff}.message-content{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 8px #0f172a0d;color:#0f172a;font-weight:500;max-width:70%;padding:12px 18px}.message.user .message-content{background:linear-gradient(135deg,#06b6d4,#0891b2);border:none;border-bottom-right-radius:4px;box-shadow:0 4px 12px #06b6d440;color:#fff}.message.assistant .message-content{background:#fff;border-bottom-left-radius:4px;box-shadow:0 2px 8px #0f172a14;color:#0f172a}.message.error .message-content{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.message-content pre{word-wrap:break-word;color:inherit;font-family:IBM Plex Sans,monospace;font-size:13px;line-height:1.6;margin:0;white-space:pre-wrap}.typing-indicator{display:flex;gap:4px;padding:5px 0}.typing-indicator span{animation:typing 1.4s infinite;background:#0ea5e9;border-radius:50%;height:8px;width:8px}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{opacity:.4}30%{opacity:1}}.input-area{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 4px 12px #0f172a14;display:flex;gap:12px;padding:12px}.input-area textarea{background:#0000;border:none;color:#0f172a;flex:1 1;font-family:Poppins,sans-serif;font-size:14px;font-weight:500;line-height:1.5;outline:none;padding:10px;resize:none}.input-area textarea::placeholder{color:#cbd5e1;font-weight:400}.btn-send{background:linear-gradient(135deg,#06b6d4,#0891b2);border:none;border-radius:10px;box-shadow:0 4px 12px #06b6d44d;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 28px;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-send:hover:not(:disabled){box-shadow:0 6px 16px #06b6d466;transform:translateY(-2px)}.btn-send:active:not(:disabled){transform:translateY(0)}.btn-send:disabled{box-shadow:none;cursor:not-allowed;opacity:.5}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a99;z-index:1000}.modal-content{animation:slideUp .3s cubic-bezier(.4,0,.2,1);border:1px solid #e2e8f0;box-shadow:0 20px 60px #0f172a33;max-width:520px}.modal-content h2{color:#0f172a;font-family:Outfit,sans-serif;font-size:24px;font-weight:700;margin:0 0 12px}.modal-content p{color:#64748b;font-weight:500;line-height:1.6;margin-bottom:24px}.modal-content a{color:#06b6d4;font-weight:600;text-decoration:none}.modal-content a:hover{color:#0891b2;text-decoration:underline}.api-key-input input{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;box-sizing:border-box;color:#0f172a;font-family:IBM Plex Sans,monospace;font-size:14px;font-weight:500;outline:none;padding:12px 14px;transition:all .3s;width:100%}.api-key-input input:focus{background:#fff;border-color:#06b6d4;box-shadow:0 0 0 3px #06b6d41a}.btn-cancel{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:10px;color:#0f172a;cursor:pointer;font-size:14px;font-weight:600;padding:10px 24px;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-cancel:hover{background:#e2e8f0;border-color:#cbd5e1}.btn-save{background:linear-gradient(135deg,#06b6d4,#0891b2);border:none;border-radius:10px;box-shadow:0 4px 12px #06b6d44d;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 24px;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-save:hover{box-shadow:0 6px 16px #06b6d466;transform:translateY(-2px)}.barcode-check-section{border-top:1px solid #e8e8e8;margin-top:15px;padding-top:15px}.check-help{color:#888;font-size:11px;margin-bottom:10px}.btn-upload-check{background:linear-gradient(135deg,#f59e0b,#d97706);border:none;border-radius:10px;box-shadow:0 4px 12px #f59e0b40;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:12px 16px;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%}.btn-upload-check:hover:not(:disabled){box-shadow:0 6px 16px #f59e0b59;transform:translateY(-2px)}.btn-upload-check:disabled{box-shadow:none;cursor:not-allowed;opacity:.5}.check-warning{color:#ff6b6b;font-size:11px;margin-top:5px;text-align:center}.btn-download-excel{background:linear-gradient(135deg,#06b6d4,#0891b2);border:none;border-radius:10px;box-shadow:0 4px 12px #06b6d440;color:#fff;cursor:pointer;font-size:13px;font-weight:600;margin-top:12px;padding:10px 20px;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-download-excel:hover{box-shadow:0 6px 16px #06b6d459;transform:translateY(-2px)}@media (max-width:992px){.ai-sidebar{width:250px}}.sidebar-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 8px #0f172a0d;margin-bottom:14px;overflow:hidden;transition:all .3s ease}.sidebar-section:hover{box-shadow:0 4px 12px #0f172a14}.section-header{align-items:center;background:linear-gradient(135deg,#06b6d4,#0891b2);border:none;color:#fff;cursor:pointer;display:flex;font-size:13px;font-weight:600;justify-content:space-between;padding:14px 16px;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%}.section-header:hover{background:linear-gradient(135deg,#0891b2,#0e7490)}.section-content{animation:slideDown .3s ease;background:#f8fafc;display:flex;flex-direction:column;gap:8px;padding:12px}@keyframes slideDown{0%{max-height:0;opacity:0}to{max-height:500px;opacity:1}}.btn-check,.btn-export,.btn-export-small,.btn-scheduler,.btn-upload{background:linear-gradient(135deg,#06b6d4,#0891b2);border:none;border-radius:8px;box-shadow:0 2px 8px #06b6d433;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:10px 14px;text-align:center;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%}.btn-check:hover,.btn-export-small:hover,.btn-export:hover,.btn-scheduler:hover,.btn-upload:hover{box-shadow:0 4px 12px #06b6d44d;transform:translateY(-2px)}.btn-check:disabled,.btn-export-small:disabled,.btn-export:disabled,.btn-upload:disabled{background:#cbd5e1;box-shadow:none;cursor:not-allowed;transform:none}.btn-export-small{font-size:12px;padding:8px 10px}.btn-primary{background:linear-gradient(135deg,#06b6d4,#0891b2)!important;color:#fff!important}.btn-primary:hover{background:linear-gradient(135deg,#0891b2,#0e7490)!important}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626)!important;color:#fff!important;font-weight:600!important}.btn-danger:hover{background:linear-gradient(135deg,#dc2626,#b91c1c)!important}.btn-company-item{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#0f172a;cursor:pointer;display:flex;font-size:13px;font-weight:500;justify-content:space-between;padding:10px 12px;text-align:left;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%}.btn-company-item:hover{background:linear-gradient(135deg,#f0f9ff,#f1f5f9);border-color:#06b6d4;box-shadow:0 4px 12px #06b6d426;transform:translateX(4px)}.badge{border-radius:6px;flex-shrink:0;font-size:11px;font-weight:600;letter-spacing:.3px}.badge-danger{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 2px 6px #ef444433}.badge-success{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 2px 6px #10b98133}.check-item,.upload-item{background:#fff;border:1px solid #e8e8e8;border-left:3px solid #0ea5e9;border-radius:6px;padding:10px}.check-title,.upload-title{color:#0ea5e9;font-size:12px;font-weight:700;margin:0 0 8px}.hint{color:#888;font-size:10px;margin-top:5px;text-align:center}@media (max-width:768px){.ai-assistant-container{min-height:100vh}.ai-main-content{flex-direction:column;height:auto;min-height:calc(100vh - 60px)}.ai-sidebar{border-bottom:1px solid #e2e8f0;border-right:none;display:none;height:auto;max-height:none;padding:18px;width:100%}.ai-sidebar.mobile-open{display:block;max-height:300px;overflow-y:auto}.ai-header{flex-direction:column;gap:14px;padding:16px 18px}.ai-header-left{justify-content:space-between;width:100%}.ai-header-left h1{font-size:20px;letter-spacing:-.3px}.ai-header-right{flex-wrap:wrap;gap:10px;justify-content:center;width:100%}.btn-back,.btn-config{font-size:12px;padding:8px 14px}.api-status{font-size:11px;padding:6px 12px}.ai-chat-area{flex:1 1;min-height:400px;padding:16px}.message-content{max-width:85%;padding:10px 14px}.message-content pre{font-size:12px}.message-avatar{font-size:16px;height:36px;width:36px}.quick-questions{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto;padding-bottom:10px}.quick-q-btn{font-size:11px;padding:7px 12px;white-space:nowrap}.suggested-questions-section{border-radius:12px;margin-bottom:12px;padding:12px}.category-tabs{-webkit-overflow-scrolling:touch;gap:8px;padding-bottom:8px}.category-tab{font-size:11px;padding:7px 12px}.category-questions{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding-bottom:8px}.messages-container{border-radius:12px;flex:1 1;margin-bottom:12px;min-height:300px;padding:12px}.input-area{border-radius:12px;padding:10px}.input-area textarea{font-size:16px;padding:10px}.btn-send{font-size:13px;padding:10px 20px}.modal-content{border-radius:16px;max-height:90vh;overflow-y:auto;padding:24px;width:95%}.modal-content h2{font-size:20px}.api-key-input input{font-size:16px}.modal-actions{flex-direction:column-reverse;gap:10px}.btn-cancel,.btn-save{padding:12px;width:100%}.sidebar-summary{border-radius:12px;padding:12px}.summary-item{padding:8px 0}.summary-item .label{font-size:11px}.company-list{flex-direction:row;flex-wrap:wrap;gap:8px}.company-item{padding:10px 12px}.export-buttons{flex-direction:row;flex-wrap:wrap}.btn-export{flex:1 1;font-size:11px;min-width:calc(50% - 4px);padding:10px 12px;text-align:center}.pdi-dash-cards{gap:12px;grid-template-columns:repeat(2,1fr)}.pdi-card{border-radius:12px;padding:14px}.pdi-card-icon{font-size:28px}.pdi-card-value{font-size:24px}.pdi-card-label{font-size:11px}.pdi-dash-header h3{font-size:18px}.pdi-badge{font-size:12px;padding:6px 14px}}@media (max-width:480px){.ai-header{padding:12px 14px}.ai-header-left h1{font-size:18px}.ai-chat-area{padding:12px}.message{gap:8px;margin-bottom:12px}.message-avatar{font-size:14px;height:32px;width:32px}.message-content{border-radius:12px;max-width:92%;padding:9px 12px}.message-content pre{font-size:12px;line-height:1.5}.category-tab,.quick-q-btn{font-size:10px;padding:6px 10px}.btn-send{font-size:12px;padding:9px 16px}.btn-download-excel{font-size:12px;padding:10px 14px;width:100%}.pdi-dashboard{border-radius:14px;padding:16px}.pdi-dash-cards{gap:10px;grid-template-columns:repeat(2,1fr)}.pdi-card{border-radius:12px;padding:12px 10px}.pdi-card-icon{font-size:24px;margin-bottom:6px}.pdi-card-value{font-size:20px}.pdi-card-label{font-size:10px}.pdi-card-percent{font-size:9px;padding:3px 6px;right:6px;top:6px}.pdi-progress-bar{height:6px}.pdi-progress-label{font-size:11px}}.pdi-dashboard{background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 4px 16px #0f172a14;box-sizing:border-box;max-width:100%;padding:24px}.pdi-dash-header{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-bottom:20px}.pdi-dash-header h3{color:#0f172a;font-family:Outfit,sans-serif;font-size:22px;font-weight:700;letter-spacing:-.3px;margin:0}.pdi-badge{background:linear-gradient(135deg,#06b6d4,#0891b2);border-radius:12px;box-shadow:0 4px 12px #06b6d44d;color:#fff;font-size:13px;font-weight:700;letter-spacing:.3px;padding:8px 18px;text-transform:uppercase}.pdi-dash-cards{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(4,1fr);margin-bottom:20px}.pdi-card{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 2px 8px #0f172a0a;overflow:hidden;padding:18px;position:relative;text-align:center;transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s}.pdi-card:hover{box-shadow:0 8px 20px #0f172a1a;transform:translateY(-4px)}.pdi-card:before{content:"";height:3px;left:0;position:absolute;right:0;top:0}.pdi-card.total:before{background:linear-gradient(90deg,#06b6d4,#0891b2)}.pdi-card.dispatched:before{background:linear-gradient(90deg,#10b981,#059669)}.pdi-card.packed:before{background:linear-gradient(90deg,#3b82f6,#2563eb)}.pdi-card.pending:before{background:linear-gradient(90deg,#f59e0b,#d97706)}.pdi-card-icon{font-size:32px;margin-bottom:10px;opacity:.8}.pdi-card-value{color:#0f172a;font-family:IBM Plex Sans,monospace;font-size:32px;font-weight:800;margin-bottom:6px}.pdi-card-label{color:#64748b;font-size:12px;font-weight:700;letter-spacing:.8px;text-transform:uppercase}.pdi-card-percent{background:linear-gradient(135deg,#10b98126,#10b9810d);border:1px solid #10b98133;border-radius:12px;color:#10b981;font-size:11px;font-weight:700;padding:4px 10px;position:absolute;right:12px;top:12px}.pdi-card.pending .pdi-card-value{color:#f59e0b}.pdi-progress-section{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 2px 8px #0f172a0a;padding:18px}.pdi-progress-label{color:#0f172a;display:flex;font-size:13px;font-weight:600;justify-content:space-between;margin-bottom:10px}.pdi-progress-bar{background:#e2e8f0;border-radius:6px;box-shadow:0 2px 4px #0f172a0d;height:8px;margin-bottom:18px;overflow:hidden}.pdi-progress-bar:last-child{margin-bottom:0}.pdi-progress-fill{border-radius:6px;height:100%;transition:width .5s cubic-bezier(.4,0,.2,1)}.pdi-progress-fill.dispatch{background:linear-gradient(90deg,#10b981,#059669);box-shadow:0 0 8px #10b9814d}.pdi-progress-fill.pack{background:linear-gradient(90deg,#06b6d4,#0891b2);box-shadow:0 0 8px #06b6d44d}@media (max-width:768px){.pdi-dash-cards{gap:10px;grid-template-columns:repeat(2,1fr)}.pdi-card{padding:12px}.pdi-card-icon{font-size:24px}.pdi-card-value{font-size:22px}.pdi-card-label{font-size:10px}.pdi-dash-header h3{font-size:16px}.pdi-badge{font-size:12px;padding:5px 10px}}@media (max-width:480px){.pdi-dashboard{border-radius:12px;padding:15px}.pdi-dash-cards{gap:8px;grid-template-columns:repeat(2,1fr)}.pdi-card{padding:10px 8px}.pdi-card-icon{font-size:20px;margin-bottom:5px}.pdi-card-value{font-size:18px}.pdi-card-label{font-size:9px}.pdi-card-percent{font-size:9px;padding:2px 5px;right:5px;top:5px}.pdi-progress-bar{height:8px}}@media (max-width:768px){.ai-main-content{flex-direction:column}.ai-sidebar{border-bottom:1px solid #e8e8e8;border-right:none;max-height:40vh;overflow-y:auto;width:100%}.ai-chat-area{flex:1 1;min-height:60vh}.message-content{max-width:95%!important}.message-content pre{word-wrap:break-word;white-space:pre-wrap}}@media (max-width:480px){.ai-sidebar{max-height:35vh;padding:15px}.message-content{max-width:100%!important;padding:10px!important}.validation-section input,.validation-section select{font-size:16px!important}}.ftr-dashboard{background:#f8fafc;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-height:100vh;overflow-x:hidden;padding:20px;width:100%}.ftr-dashboard,.ftr-dashboard *{box-sizing:border-box}.ftr-dashboard-loading{align-items:center;background:#f8fafc;display:flex;flex-direction:column;justify-content:center;min-height:100vh;width:100%}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #e0e0e0;border-top-color:#0ea5e9;height:50px;width:50px}.ftr-dashboard .dashboard-header{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 10px #00000014;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;margin-bottom:20px;padding:15px 25px;width:100%}.ftr-dashboard .header-left{align-items:center;display:flex;gap:15px}.ftr-dashboard .header-left h1{color:#333;font-size:22px;font-weight:600;margin:0}.ftr-dashboard .header-right{align-items:center;display:flex;flex-wrap:wrap;gap:15px}.ftr-dashboard .last-updated{background:#f8f9ff;border-radius:6px;color:#666;font-size:13px;padding:6px 12px}.ftr-dashboard .auto-refresh-toggle{align-items:center;color:#555;cursor:pointer;display:flex;font-size:13px;gap:6px}.ftr-dashboard .auto-refresh-toggle input{cursor:pointer}.ftr-dashboard .btn-refresh{background:#0ea5e9;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:8px 16px;transition:all .3s}.ftr-dashboard .btn-refresh:hover{box-shadow:0 2px 6px #0ea5e926}.ftr-dashboard .summary-row{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:20px;width:100%}.ftr-dashboard .summary-card{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000f;display:flex;flex-direction:row;gap:15px;min-height:100px;overflow:hidden;padding:20px;position:relative;transition:all .3s}.ftr-dashboard .summary-card:hover{box-shadow:0 2px 8px #0000000f}.ftr-dashboard .summary-card:before{content:"";height:100%;left:0;position:absolute;top:0;width:4px}.ftr-dashboard .summary-card.total:before{background:linear-gradient(180deg,#0ea5e9,#0284c7)}.ftr-dashboard .summary-card.assigned:before{background:linear-gradient(180deg,#11998e,#38ef7d)}.ftr-dashboard .summary-card.packed:before{background:linear-gradient(180deg,#10b981,#34d399)}.ftr-dashboard .summary-card.dispatched:before{background:linear-gradient(180deg,#0ea5e9,#0284c7)}.ftr-dashboard .summary-card.pending:before{background:linear-gradient(180deg,#f59e0b,#d97706)}.ftr-dashboard .summary-card.available:before{background:linear-gradient(180deg,#64748b,#475569)}.ftr-dashboard .card-icon{align-items:center;background:#f8f9ff;border-radius:12px;display:flex;flex-shrink:0;font-size:32px;height:50px;justify-content:center;min-width:50px;width:50px}.ftr-dashboard .card-content{display:flex;flex:1 1;flex-direction:column}.ftr-dashboard .card-value{color:#333;font-size:24px;font-weight:700;line-height:1.2}.ftr-dashboard .card-label{color:#666;font-size:12px;font-weight:500}.ftr-dashboard .card-sub{color:#999;font-size:11px;margin-top:2px}.ftr-dashboard .progress-section{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000f;margin-bottom:20px;padding:20px 25px;width:100%}.ftr-dashboard .progress-section h3{color:#333;font-size:18px;margin:0 0 20px}.ftr-dashboard .progress-bars{display:flex;flex-direction:column;gap:15px}.ftr-dashboard .progress-item{display:flex;flex-direction:column;gap:6px}.ftr-dashboard .progress-label{color:#555;display:flex;font-size:13px;font-weight:500;justify-content:space-between}.ftr-dashboard .progress-bar{background:#e8ecf5;border-radius:6px;height:12px;overflow:hidden;width:100%}.ftr-dashboard .progress-fill{border-radius:6px;height:100%;transition:width .5s ease-out}.ftr-dashboard .progress-fill.assigned{background:linear-gradient(90deg,#11998e,#38ef7d)}.ftr-dashboard .progress-fill.packed{background:linear-gradient(90deg,#10b981,#34d399)}.ftr-dashboard .progress-fill.dispatched{background:linear-gradient(90deg,#0ea5e9,#0284c7)}.ftr-dashboard .companies-section{margin-bottom:20px;width:100%}.ftr-dashboard .companies-section h3{color:#333;font-size:18px;margin:0 0 15px}.ftr-dashboard .company-cards{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(350px,1fr))}.ftr-dashboard .company-card{background:#fff;border:2px solid #0000;border-radius:12px;box-shadow:0 2px 10px #0000000f;cursor:pointer;padding:20px;transition:all .3s}.ftr-dashboard .company-card:hover{box-shadow:0 2px 8px #0000000f}.ftr-dashboard .company-card.selected{border-color:#0ea5e9;box-shadow:0 8px 25px #0ea5e926}.ftr-dashboard .company-header{align-items:center;border-bottom:2px solid #f0f4ff;display:flex;justify-content:space-between;margin-bottom:15px;padding-bottom:12px}.ftr-dashboard .company-header h4{color:#333;font-size:16px;font-weight:600;margin:0}.ftr-dashboard .company-wattage{background:#0ea5e9;border-radius:10px;color:#fff;font-size:12px;font-weight:600;padding:4px 12px}.ftr-dashboard .company-metrics{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr);margin-bottom:15px}.ftr-dashboard .metric{align-items:center;background:#f8f9ff;border-radius:8px;display:flex;gap:8px;padding:10px}.ftr-dashboard .metric.highlight-green{background:#e8f8f0}.ftr-dashboard .metric.highlight-blue{background:#e8f4fc}.ftr-dashboard .metric.highlight-orange{background:#fef6e8}.ftr-dashboard .metric.highlight-purple{background:#f5e8fc}.ftr-dashboard .metric-icon{font-size:18px}.ftr-dashboard .metric-content{display:flex;flex-direction:column}.ftr-dashboard .metric-value{color:#333;font-size:16px;font-weight:700}.ftr-dashboard .metric-label{color:#666;font-size:10px}.ftr-dashboard .company-progress{display:flex;gap:15px}.ftr-dashboard .mini-progress{display:flex;flex:1 1;flex-direction:column;gap:4px}.ftr-dashboard .mini-progress span{color:#666;font-size:11px}.ftr-dashboard .mini-bar{background:#e8ecf5;border-radius:3px;height:6px;overflow:hidden}.ftr-dashboard .mini-fill{border-radius:3px;height:100%;transition:width .5s}.ftr-dashboard .mini-fill.green{background:linear-gradient(90deg,#10b981,#34d399)}.ftr-dashboard .mini-fill.blue{background:linear-gradient(90deg,#0ea5e9,#0284c7)}.ftr-dashboard .pdi-breakdown{animation:fadeIn .3s ease;border-top:1px solid #e8e8e8;margin-top:15px;padding-top:15px}.ftr-dashboard .pdi-breakdown h5{color:#555;font-size:13px;margin:0 0 10px}.ftr-dashboard .pdi-list{display:flex;flex-direction:column;gap:6px;max-height:200px;overflow-y:auto}.ftr-dashboard .pdi-item{background:#f8f9ff;border-radius:6px;display:flex;font-size:12px;justify-content:space-between;padding:8px 12px}.ftr-dashboard .pdi-name{color:#555}.ftr-dashboard .pdi-count{color:#0ea5e9;font-weight:600}.ftr-dashboard .binning-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.ftr-dashboard .binning-tag{background:#f0f4ff;border-radius:12px;color:#555;font-size:11px;padding:4px 10px}.ftr-dashboard .alerts-section{margin-bottom:20px;width:100%}.ftr-dashboard .alerts-section h3{color:#333;font-size:18px;margin:0 0 15px}.ftr-dashboard .alert-card{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000f;display:flex;gap:15px;padding:20px}.ftr-dashboard .alert-card.danger{border-left:4px solid #ef4444}.ftr-dashboard .alert-icon{font-size:32px}.ftr-dashboard .alert-content{display:flex;flex-direction:column}.ftr-dashboard .alert-title{color:#666;font-size:14px}.ftr-dashboard .alert-value{color:#ef4444;font-size:28px;font-weight:700}.ftr-dashboard .alert-desc{color:#999;font-size:12px}.ftr-dashboard .stats-table-section{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000f;margin-bottom:20px;padding:20px 25px;width:100%}.ftr-dashboard .stats-table-section h3{color:#333;font-size:18px;margin:0 0 15px}.ftr-dashboard .stats-table-wrapper{overflow-x:auto}.ftr-dashboard .stats-table{border-collapse:collapse;font-size:13px;width:100%}.ftr-dashboard .stats-table th{background:#0f172a;color:#fff;font-weight:600;padding:12px 15px;text-align:left;white-space:nowrap}.ftr-dashboard .stats-table th:first-child{border-radius:8px 0 0 0}.ftr-dashboard .stats-table th:last-child{border-radius:0 8px 0 0}.ftr-dashboard .stats-table td{border-bottom:1px solid #f0f0f0;color:#333;padding:12px 15px}.ftr-dashboard .stats-table tbody tr:hover{background:#f8f9ff}.ftr-dashboard .stats-table .company-name-cell{color:#333;font-weight:600}.ftr-dashboard .stats-table .highlight-green{color:#10b981;font-weight:600}.ftr-dashboard .stats-table .highlight-blue{color:#0ea5e9;font-weight:600}.ftr-dashboard .stats-table .highlight-orange{color:#d97706;font-weight:600}.ftr-dashboard .stats-table .total-row{background:#f8f9ff;border-top:2px solid #0ea5e9}.ftr-dashboard .stats-table .total-row td{border-bottom:none}.ftr-dashboard .percent-badge{background:#f0f4ff;border-radius:12px;color:#0ea5e9;display:inline-block;font-size:11px;font-weight:600;padding:4px 10px}.ftr-dashboard .percent-badge.good{background:#e8f8f0;color:#10b981}.ftr-dashboard .percent-badge.medium{background:#fef6e8;color:#d97706}.ftr-dashboard .percent-badge.low{background:#fee8e8;color:#ef4444}.ftr-dashboard .dashboard-footer{color:#888;font-size:12px;padding:15px;text-align:center}@media (max-width:1200px){.ftr-dashboard .summary-row{grid-template-columns:repeat(3,1fr)}}@media (max-width:768px){.ftr-dashboard{padding:10px}.ftr-dashboard .dashboard-header{flex-direction:column;gap:15px;padding:15px}.ftr-dashboard .header-left,.ftr-dashboard .header-right{flex-wrap:wrap;justify-content:center;width:100%}.ftr-dashboard .header-left h1{font-size:18px}.ftr-dashboard .summary-row{gap:10px;grid-template-columns:repeat(2,1fr)}.ftr-dashboard .summary-card{padding:15px}.ftr-dashboard .card-icon{font-size:28px;height:40px;min-width:40px;width:40px}.ftr-dashboard .card-value{font-size:20px}.ftr-dashboard .company-cards{grid-template-columns:1fr}.ftr-dashboard .company-metrics{grid-template-columns:repeat(2,1fr)}.ftr-dashboard .stats-table{font-size:11px}.ftr-dashboard .stats-table td,.ftr-dashboard .stats-table th{padding:8px 10px}}@media (max-width:480px){.ftr-dashboard .company-metrics,.ftr-dashboard .summary-row{grid-template-columns:1fr}.ftr-dashboard .progress-section,.ftr-dashboard .stats-table-section{padding:15px}}:root{--cal-bg:#f8f9fb;--cal-surface:#fff;--cal-border:#e8ecf1;--cal-border-light:#f1f3f6;--cal-text-primary:#0f172a;--cal-text-secondary:#475569;--cal-text-muted:#94a3b8;--cal-accent:#2563eb;--cal-accent-hover:#1d4ed8;--cal-accent-light:#eff6ff;--cal-success:#059669;--cal-success-bg:#ecfdf5;--cal-success-border:#a7f3d0;--cal-warning:#d97706;--cal-warning-bg:#fffbeb;--cal-warning-border:#fde68a;--cal-danger:#dc2626;--cal-danger-bg:#fef2f2;--cal-danger-border:#fecaca;--cal-radius:8px;--cal-radius-lg:12px;--cal-shadow-sm:0 1px 2px #0000000a;--cal-shadow-md:0 4px 6px -1px #0000000f,0 2px 4px -2px #0000000d;--cal-shadow-lg:0 10px 15px -3px #00000014,0 4px 6px -4px #0000000a;--cal-transition:150ms cubic-bezier(0.4,0,0.2,1)}.cal-dashboard{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f8f9fb;background:var(--cal-bg);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;margin:0 auto;max-width:1560px;min-height:100vh;padding:32px}.cal-dashboard,.cal-header{color:#0f172a;color:var(--cal-text-primary)}.cal-header{background:#0000;border-bottom:1px solid #e8ecf1;border-bottom:1px solid var(--cal-border);border-radius:0;box-shadow:none;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:32px;padding:0 0 24px}.cal-header,.cal-header-left{align-items:center;display:flex}.cal-header-left{gap:16px}.cal-header-icon{align-items:center;background:linear-gradient(135deg,#2563eb,#7c3aed);background:linear-gradient(135deg,var(--cal-accent),#7c3aed);border-radius:12px;border-radius:var(--cal-radius-lg);box-shadow:0 4px 12px #2563eb40;color:#fff;display:flex;font-size:22px;height:48px;justify-content:center;width:48px}.cal-header h1{color:#0f172a;color:var(--cal-text-primary);font-size:24px;font-weight:800;letter-spacing:-.5px;margin:0}.cal-header p{color:#94a3b8;color:var(--cal-text-muted);font-size:14px;font-weight:400;margin:4px 0 0}.cal-header-right{display:flex;flex-wrap:wrap;gap:8px}.cal-btn{align-items:center;background:#fff;background:var(--cal-surface);border:1px solid #e8ecf1;border:1px solid var(--cal-border);border-radius:8px;border-radius:var(--cal-radius);color:#475569;color:var(--cal-text-secondary);cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:600;gap:6px;line-height:1.4;padding:8px 16px;transition:all .15s cubic-bezier(.4,0,.2,1);transition:all var(--cal-transition);white-space:nowrap}.cal-btn:hover{background:#f1f5f9;border-color:#cbd5e1;color:#0f172a;color:var(--cal-text-primary)}.cal-btn span{align-items:center;display:flex;font-size:14px;line-height:1}.cal-btn-primary{background:#fff;background:var(--cal-surface);border:1px solid #e8ecf1;border:1px solid var(--cal-border);color:#475569;color:var(--cal-text-secondary)}.cal-btn-primary:hover{background:#f1f5f9;border-color:#cbd5e1}.cal-btn-secondary{background:#fff;background:var(--cal-surface);border:1px solid #e8ecf1;border:1px solid var(--cal-border);color:#475569;color:var(--cal-text-secondary)}.cal-btn-secondary:hover{background:#f1f5f9;border-color:#cbd5e1}.cal-btn-success{background:#2563eb;background:var(--cal-accent);border-color:#2563eb;border-color:var(--cal-accent);color:#fff}.cal-btn-success:hover{background:#1d4ed8;background:var(--cal-accent-hover);border-color:#1d4ed8;border-color:var(--cal-accent-hover);box-shadow:0 2px 8px #2563eb40}.cal-btn-ai{background:linear-gradient(135deg,#7c3aed,#6366f1);border:none;color:#fff}.cal-btn-ai:hover{box-shadow:0 2px 10px #7c3aed4d;opacity:.9}.cal-btn-danger{background:#dc2626;background:var(--cal-danger);border-color:#dc2626;border-color:var(--cal-danger);color:#fff}.cal-btn-danger:hover{background:#b91c1c;border-color:#b91c1c}.cal-stats-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin-bottom:28px}.cal-stat-card{align-items:center;background:#fff;background:var(--cal-surface);border:1px solid #e8ecf1;border:1px solid var(--cal-border);border-radius:12px;border-radius:var(--cal-radius-lg);box-shadow:0 1px 2px #0000000a;box-shadow:var(--cal-shadow-sm);display:flex;gap:16px;overflow:hidden;padding:24px;position:relative;transition:all .15s cubic-bezier(.4,0,.2,1);transition:all var(--cal-transition)}.cal-stat-card:before{bottom:0;content:"";left:0;position:absolute;top:0;width:3px}.cal-stat-card:hover{box-shadow:0 4px 6px -1px #0000000f,0 2px 4px -2px #0000000d;box-shadow:var(--cal-shadow-md)}.cal-stat-card.total:before{background:#2563eb;background:var(--cal-accent)}.cal-stat-card.valid:before{background:#059669;background:var(--cal-success)}.cal-stat-card.due-soon:before{background:#d97706;background:var(--cal-warning)}.cal-stat-card.overdue:before{background:#dc2626;background:var(--cal-danger)}.cal-stat-card.due-soon,.cal-stat-card.overdue,.cal-stat-card.total,.cal-stat-card.valid{border-left:none}.cal-stat-icon{align-items:center;border-radius:10px;display:flex;flex-shrink:0;font-size:20px;height:44px;justify-content:center;width:44px}.cal-stat-card.total .cal-stat-icon{background:#eff6ff;background:var(--cal-accent-light);color:#2563eb;color:var(--cal-accent)}.cal-stat-card.valid .cal-stat-icon{background:#ecfdf5;background:var(--cal-success-bg);color:#059669;color:var(--cal-success)}.cal-stat-card.due-soon .cal-stat-icon{background:#fffbeb;background:var(--cal-warning-bg);color:#d97706;color:var(--cal-warning)}.cal-stat-card.overdue .cal-stat-icon{background:#fef2f2;background:var(--cal-danger-bg);color:#dc2626;color:var(--cal-danger)}.cal-stat-info{display:flex;flex-direction:column;min-width:0}.cal-stat-number{color:#0f172a;color:var(--cal-text-primary);font-size:30px;font-weight:800;letter-spacing:-.5px;line-height:1}.cal-stat-label{color:#94a3b8;color:var(--cal-text-muted);font-size:12px;font-weight:500;letter-spacing:.02em;margin-top:4px}.cal-alert{align-items:center;border:1px solid;border-radius:8px;border-radius:var(--cal-radius);display:flex;font-size:14px;font-weight:500;justify-content:space-between;margin-bottom:20px;padding:12px 16px}.cal-alert button{background:none;border:none;cursor:pointer;font-size:18px;opacity:.5;padding:0 2px;transition:opacity .15s cubic-bezier(.4,0,.2,1);transition:opacity var(--cal-transition)}.cal-alert button:hover{opacity:1}.cal-alert-success{background:#ecfdf5;background:var(--cal-success-bg);border-color:#a7f3d0;border-color:var(--cal-success-border);color:#065f46}.cal-alert-error{background:#fef2f2;background:var(--cal-danger-bg);border-color:#fecaca;border-color:var(--cal-danger-border);color:#991b1b}.cal-alert-warning{background:#fffbeb;background:var(--cal-warning-bg);border-color:#fde68a;border-color:var(--cal-warning-border);color:#92400e}.cal-toolbar{flex-wrap:wrap;gap:12px;margin-bottom:20px}.cal-search-box,.cal-toolbar{align-items:center;display:flex}.cal-search-box{background:#fff;background:var(--cal-surface);border:1px solid #e8ecf1;border:1px solid var(--cal-border);border-radius:8px;border-radius:var(--cal-radius);flex:1 1;height:40px;min-width:280px;padding:0 14px;transition:all .15s cubic-bezier(.4,0,.2,1);transition:all var(--cal-transition)}.cal-search-box:focus-within{border-color:#2563eb;border-color:var(--cal-accent);box-shadow:0 0 0 3px #2563eb14}.cal-search-box .search-icon{color:#94a3b8;color:var(--cal-text-muted);flex-shrink:0;margin-right:10px}.cal-search-box .search-icon svg{stroke:currentColor;stroke-width:2;fill:none;height:16px;width:16px}.cal-search-box span{color:#94a3b8;color:var(--cal-text-muted);font-size:15px;margin-right:10px}.cal-search-box input{background:#0000;border:none;color:#0f172a;color:var(--cal-text-primary);flex:1 1;font-family:inherit;font-size:13px;height:100%;outline:none;padding:0}.cal-search-box button,.cal-search-box input::placeholder{color:#94a3b8;color:var(--cal-text-muted)}.cal-search-box button{align-items:center;background:none;border:none;cursor:pointer;display:flex;font-size:16px;padding:0}.cal-search-box button:hover{color:#475569;color:var(--cal-text-secondary)}.cal-filters{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.cal-filters select{-webkit-appearance:none;appearance:none;background:#fff;background:var(--cal-surface);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;border:1px solid #e8ecf1;border:1px solid var(--cal-border);border-radius:8px;border-radius:var(--cal-radius);color:#475569;color:var(--cal-text-secondary);cursor:pointer;font-family:inherit;font-size:13px;font-weight:500;height:40px;min-width:130px;outline:none;padding:0 30px 0 12px}.cal-filters select:focus{border-color:#2563eb;border-color:var(--cal-accent);box-shadow:0 0 0 3px #2563eb14}.cal-view-btns{border:1px solid #e8ecf1;border:1px solid var(--cal-border);border-radius:8px;border-radius:var(--cal-radius);display:flex;height:40px;overflow:hidden}.cal-view-btns button{align-items:center;background:#fff;background:var(--cal-surface);border:none;border-right:1px solid #e8ecf1;border-right:1px solid var(--cal-border);color:#94a3b8;color:var(--cal-text-muted);cursor:pointer;display:flex;font-size:16px;padding:0 14px;transition:all .15s cubic-bezier(.4,0,.2,1);transition:all var(--cal-transition)}.cal-view-btns button:last-child{border-right:none}.cal-view-btns button.active{background:#2563eb;background:var(--cal-accent);color:#fff}.cal-view-btns button:hover:not(.active){background:#f8fafc;color:#475569;color:var(--cal-text-secondary)}.cal-loading{align-items:center;color:#94a3b8;color:var(--cal-text-muted);display:flex;flex-direction:column;padding:80px 20px}.cal-spinner{animation:cal-spin .7s linear infinite;border:2.5px solid #e8ecf1;border-top-color:#2563eb;border:2.5px solid var(--cal-border);border-radius:50%;border-top-color:var(--cal-accent);height:32px;width:32px}@keyframes cal-spin{to{transform:rotate(1turn)}}.cal-loading p{font-size:14px;font-weight:500;margin-top:16px}.cal-table-container{background:#fff;background:var(--cal-surface);border:1px solid #e8ecf1;border:1px solid var(--cal-border);border-radius:12px;border-radius:var(--cal-radius-lg);box-shadow:0 1px 2px #0000000a;box-shadow:var(--cal-shadow-sm);overflow:hidden}.cal-table{border-collapse:collapse;width:100%}.cal-table th{background:#fafbfc;border-bottom:1px solid #e8ecf1;border-bottom:1px solid var(--cal-border);color:#94a3b8;color:var(--cal-text-muted);font-size:11px;font-weight:600;letter-spacing:.06em;padding:10px 16px;position:-webkit-sticky;position:sticky;text-align:left;text-transform:uppercase;top:0;white-space:nowrap;z-index:1}.cal-table td{border-bottom:1px solid #f1f3f6;border-bottom:1px solid var(--cal-border-light);color:#475569;color:var(--cal-text-secondary);font-size:13px;padding:12px 16px}.cal-table tbody tr{transition:background .15s cubic-bezier(.4,0,.2,1);transition:background var(--cal-transition)}.cal-table tbody tr:last-child td{border-bottom:none}.cal-table tbody tr:hover{background:#f8fafc}.cal-table tr.row-overdue{background:#fef8f8}.cal-table tr.row-overdue:hover{background:#fef2f2}.cal-table tr.row-due_soon{background:#fffdf7}.cal-table tr.row-due_soon:hover{background:#fffbeb}.cal-id{color:#2563eb;color:var(--cal-accent);font-size:13px;font-weight:600;letter-spacing:-.01em}.cal-tag{background:#f1f5f9;border:1px solid #e8ecf1;border:1px solid var(--cal-border);border-radius:100px;color:#475569;color:var(--cal-text-secondary);display:inline-block;font-size:12px;font-weight:500;padding:3px 10px}.cal-cert{color:#94a3b8;color:var(--cal-text-muted)}.cal-cert,.cal-cert-link{font-family:SF Mono,Cascadia Code,Fira Code,monospace;font-size:12px}.cal-cert-link{align-items:center;background:#eff6ff;background:var(--cal-accent-light);border:1px solid #0000;border-radius:8px;border-radius:var(--cal-radius);color:#2563eb;color:var(--cal-accent);display:inline-flex;font-weight:500;gap:4px;padding:4px 10px;text-decoration:none;transition:all .15s cubic-bezier(.4,0,.2,1);transition:all var(--cal-transition)}.cal-cert-link:hover{background:#dbeafe;border-color:#bfdbfe;color:#1d4ed8;color:var(--cal-accent-hover)}.cal-photo-btn.download-btn{align-items:center;background:#ecfdf5;background:var(--cal-success-bg);border:1px solid #a7f3d0;border:1px solid var(--cal-success-border);color:#059669;color:var(--cal-success);display:inline-flex;justify-content:center;text-decoration:none}.cal-photo-btn.download-btn:hover{background:#d1fae5}.cal-status-badge{align-items:center;border:1px solid;border-radius:100px;display:inline-flex;font-size:12px;font-weight:600;gap:6px;padding:4px 10px;white-space:nowrap}.cal-status-badge:before{border-radius:50%;content:"";flex-shrink:0;height:6px;width:6px}.cal-status-badge.status-valid{background:#ecfdf5;background:var(--cal-success-bg);border-color:#a7f3d0;border-color:var(--cal-success-border);color:#047857}.cal-status-badge.status-valid:before{background:#059669;background:var(--cal-success)}.cal-status-badge.status-due-soon{background:#fffbeb;background:var(--cal-warning-bg);border-color:#fde68a;border-color:var(--cal-warning-border);color:#b45309}.cal-status-badge.status-due-soon:before{background:#d97706;background:var(--cal-warning)}.cal-status-badge.status-overdue{background:#fef2f2;background:var(--cal-danger-bg);border-color:#fecaca;border-color:var(--cal-danger-border);color:#b91c1c}.cal-status-badge.status-overdue:before{background:#dc2626;background:var(--cal-danger)}.cal-status-badge.status-unknown{background:#f8fafc;border-color:#e8ecf1;border-color:var(--cal-border);color:#94a3b8;color:var(--cal-text-muted)}.cal-status-badge.status-unknown:before{background:#94a3b8;background:var(--cal-text-muted)}.cal-days-badge{background:#0000000f;border-radius:100px;font-size:10px;font-weight:600;margin-left:2px;padding:1px 6px}.cal-photo-btn{align-items:center;border:1px solid #0000;border-radius:8px;border-radius:var(--cal-radius);cursor:pointer;display:inline-flex;font-size:14px;height:34px;justify-content:center;transition:all .15s cubic-bezier(.4,0,.2,1);transition:all var(--cal-transition);width:34px}.cal-photo-btn.has-photo{background:#eff6ff;background:var(--cal-accent-light);border-color:#bfdbfe;color:#2563eb;color:var(--cal-accent)}.cal-photo-btn.has-photo:hover{background:#dbeafe}.cal-photo-btn.no-photo{background:#fafbfc;border:1px dashed #d1d5db;color:#94a3b8;color:var(--cal-text-muted)}.cal-photo-btn.no-photo:hover{background:#eff6ff;background:var(--cal-accent-light);border-color:#2563eb;border-color:var(--cal-accent);color:#2563eb;color:var(--cal-accent)}.cal-actions{display:flex;gap:4px}.cal-action-btn{align-items:center;background:#0000;border:1px solid #0000;border-radius:6px;cursor:pointer;display:inline-flex;font-size:13px;height:32px;justify-content:center;transition:all .15s cubic-bezier(.4,0,.2,1);transition:all var(--cal-transition);width:32px}.cal-action-btn:hover{transform:none}.cal-action-btn.view{color:#94a3b8;color:var(--cal-text-muted)}.cal-action-btn.view:hover{background:#eff6ff;background:var(--cal-accent-light);border-color:#bfdbfe;color:#2563eb;color:var(--cal-accent)}.cal-action-btn.edit{color:#94a3b8;color:var(--cal-text-muted)}.cal-action-btn.edit:hover{background:#fffbeb;background:var(--cal-warning-bg);border-color:#fde68a;border-color:var(--cal-warning-border);color:#d97706;color:var(--cal-warning)}.cal-action-btn.delete{color:#94a3b8;color:var(--cal-text-muted)}.cal-action-btn.delete:hover{background:#fef2f2;background:var(--cal-danger-bg);border-color:#fecaca;border-color:var(--cal-danger-border);color:#dc2626;color:var(--cal-danger)}.cal-empty{padding:64px 20px!important}.cal-empty-state{color:#94a3b8;color:var(--cal-text-muted);text-align:center}.cal-empty-state .empty-icon{align-items:center;background:#f1f5f9;border-radius:12px;border-radius:var(--cal-radius-lg);color:#94a3b8;color:var(--cal-text-muted);display:flex;font-size:24px;height:48px;justify-content:center;margin:0 auto 16px;width:48px}.cal-empty-state span{display:block;font-size:36px;margin-bottom:12px;opacity:.35}.cal-empty-state h3{color:#475569;color:var(--cal-text-secondary);font-size:15px;font-weight:600;margin:0 0 6px}.cal-empty-state p{color:#94a3b8;color:var(--cal-text-muted);font-size:13px;margin:0}.cal-cards-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.cal-card{background:#fff;background:var(--cal-surface);border:1px solid #e8ecf1;border:1px solid var(--cal-border);border-radius:12px;border-radius:var(--cal-radius-lg);box-shadow:0 1px 2px #0000000a;box-shadow:var(--cal-shadow-sm);overflow:hidden;transition:all .15s cubic-bezier(.4,0,.2,1);transition:all var(--cal-transition)}.cal-card:hover{box-shadow:0 4px 6px -1px #0000000f,0 2px 4px -2px #0000000d;box-shadow:var(--cal-shadow-md)}.cal-card.status-valid{border-top:3px solid #059669;border-top:3px solid var(--cal-success)}.cal-card.status-due_soon{border-top:3px solid #d97706;border-top:3px solid var(--cal-warning)}.cal-card.status-overdue{border-top:3px solid #dc2626;border-top:3px solid var(--cal-danger)}.cal-card-top{align-items:center;border-bottom:1px solid #f1f3f6;border-bottom:1px solid var(--cal-border-light);display:flex;justify-content:space-between;padding:14px 18px}.cal-card-id{color:#2563eb;color:var(--cal-accent);font-size:13px;font-weight:700;letter-spacing:-.01em}.cal-card-img{background:#fafbfc;cursor:pointer;height:180px;overflow:hidden}.cal-card-img img{height:100%;object-fit:cover;transition:transform .3s ease;width:100%}.cal-card-img:hover img{transform:scale(1.03)}.cal-card-no-img{align-items:center;background:#fafbfc;display:flex;height:140px;justify-content:center}.cal-card-no-img label{border:1px dashed #d1d5db;border-radius:8px;border-radius:var(--cal-radius);cursor:pointer;padding:16px 24px;text-align:center;transition:all .15s cubic-bezier(.4,0,.2,1);transition:all var(--cal-transition)}.cal-card-no-img label:hover{background:#eff6ff;background:var(--cal-accent-light);border-color:#2563eb;border-color:var(--cal-accent)}.cal-card-no-img span{display:block;font-size:24px;opacity:.4}.cal-card-no-img p{color:#94a3b8;color:var(--cal-text-muted);font-size:12px;font-weight:500;margin:4px 0 0}.cal-card-content{padding:18px}.cal-card-content h3{color:#0f172a;color:var(--cal-text-primary);font-size:15px;font-weight:600;letter-spacing:-.01em;margin:0 0 12px}.cal-card-details{display:flex;flex-direction:column;gap:8px}.cal-card-details>div{display:flex;font-size:13px;justify-content:space-between}.cal-card-details span{color:#94a3b8;color:var(--cal-text-muted);font-weight:500}.cal-card-details strong{color:#0f172a;color:var(--cal-text-primary);font-weight:500}.cal-card-actions{border-top:1px solid #f1f3f6;border-top:1px solid var(--cal-border-light);display:flex;gap:0}.cal-card-actions button{background:#0000;border:none;border-right:1px solid #f1f3f6;border-right:1px solid var(--cal-border-light);color:#475569;color:var(--cal-text-secondary);cursor:pointer;flex:1 1;font-family:inherit;font-size:13px;font-weight:500;padding:12px;transition:all .15s cubic-bezier(.4,0,.2,1);transition:all var(--cal-transition)}.cal-card-actions button:last-child{border-right:none}.cal-card-actions button:hover{background:#eff6ff;background:var(--cal-accent-light);color:#2563eb;color:var(--cal-accent)}.cal-card-actions button.delete:hover{background:#fef2f2;background:var(--cal-danger-bg);color:#dc2626;color:var(--cal-danger)}.cal-empty-cards{background:#fff;background:var(--cal-surface);border:1px solid #e8ecf1;border:1px solid var(--cal-border);border-radius:12px;border-radius:var(--cal-radius-lg);color:#94a3b8;color:var(--cal-text-muted);grid-column:1/-1;padding:64px;text-align:center}.cal-empty-cards span{display:block;font-size:36px;margin-bottom:12px;opacity:.35}.cal-empty-cards h3{color:#475569;color:var(--cal-text-secondary);font-weight:600;margin:0 0 6px}.cal-empty-cards p{font-size:13px;margin:0}.cal-modal-bg{align-items:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172a80;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.cal-modal{animation:cal-modal-in .2s ease-out;background:#fff;background:var(--cal-surface);border-radius:16px;box-shadow:0 24px 48px -12px #0000002e;max-height:90vh;max-width:700px;overflow:hidden;width:100%}.cal-modal-lg{max-width:900px}@keyframes cal-modal-in{0%{opacity:0;transform:translateY(-12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.cal-modal-head{align-items:center;border-bottom:1px solid #e8ecf1;border-bottom:1px solid var(--cal-border);display:flex;justify-content:space-between;padding:20px 24px}.cal-modal-head h2{color:#0f172a;color:var(--cal-text-primary);font-size:18px;font-weight:700;letter-spacing:-.3px;margin:0}.cal-modal-head button{align-items:center;background:#f1f5f9;border:none;border-radius:8px;border-radius:var(--cal-radius);color:#94a3b8;color:var(--cal-text-muted);cursor:pointer;display:flex;font-size:18px;height:32px;justify-content:center;transition:all .15s cubic-bezier(.4,0,.2,1);transition:all var(--cal-transition);width:32px}.cal-modal-head button:hover{background:#e8ecf1;background:var(--cal-border);color:#0f172a;color:var(--cal-text-primary)}.cal-modal-body{max-height:calc(90vh - 150px);overflow-y:auto;padding:24px}.cal-modal-foot{background:#fafbfc;border-top:1px solid #e8ecf1;border-top:1px solid var(--cal-border);display:flex;gap:10px;justify-content:flex-end;padding:16px 24px}.cal-form{display:flex;flex-direction:column;gap:16px}.cal-form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,1fr)}.cal-form-row.full{grid-template-columns:1fr}.cal-form-field{display:flex;flex-direction:column}.cal-form-field label{color:#475569;color:var(--cal-text-secondary);font-size:13px;font-weight:600;margin-bottom:6px}.cal-form-field label span{color:#dc2626;color:var(--cal-danger)}.cal-form-field input,.cal-form-field select,.cal-form-field textarea{background:#fff;background:var(--cal-surface);border:1px solid #e8ecf1;border:1px solid var(--cal-border);border-radius:8px;border-radius:var(--cal-radius);color:#0f172a;color:var(--cal-text-primary);font-family:inherit;font-size:14px;padding:9px 12px;transition:all .15s cubic-bezier(.4,0,.2,1);transition:all var(--cal-transition)}.cal-form-field input:focus,.cal-form-field select:focus,.cal-form-field textarea:focus{border-color:#2563eb;border-color:var(--cal-accent);box-shadow:0 0 0 3px #2563eb14;outline:none}.cal-form-field input::placeholder{color:#94a3b8;color:var(--cal-text-muted)}.cal-btn-cancel{background:#fff;background:var(--cal-surface);border:1px solid #e8ecf1;border:1px solid var(--cal-border);border-radius:8px;border-radius:var(--cal-radius);color:#475569;color:var(--cal-text-secondary);cursor:pointer;font-family:inherit;font-size:14px;font-weight:600;padding:9px 18px;transition:all .15s cubic-bezier(.4,0,.2,1);transition:all var(--cal-transition)}.cal-btn-cancel:hover{background:#f1f5f9}.cal-btn-save{background:#2563eb;background:var(--cal-accent);border:none;border-radius:8px;border-radius:var(--cal-radius);color:#fff;cursor:pointer;font-family:inherit;font-size:14px;font-weight:600;padding:9px 18px;transition:all .15s cubic-bezier(.4,0,.2,1);transition:all var(--cal-transition)}.cal-btn-save:hover{background:#1d4ed8;background:var(--cal-accent-hover);box-shadow:0 2px 8px #2563eb40}.cal-btn-save:disabled{cursor:not-allowed;opacity:.5}.cal-detail-layout{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr 1fr}.cal-detail-left{position:relative}.cal-detail-img{background:#fafbfc;border:1px solid #e8ecf1;border:1px solid var(--cal-border);border-radius:8px;border-radius:var(--cal-radius);overflow:hidden}.cal-detail-img img{max-height:350px;object-fit:contain;width:100%}.cal-img-btns{display:flex;gap:8px;margin-top:10px}.cal-img-btn{border:1px solid #e8ecf1;border:1px solid var(--cal-border);border-radius:8px;border-radius:var(--cal-radius);cursor:pointer;flex:1 1;font-family:inherit;font-size:12px;font-weight:600;padding:8px;text-align:center;transition:all .15s cubic-bezier(.4,0,.2,1);transition:all var(--cal-transition)}.cal-img-btn.change{background:#eff6ff;background:var(--cal-accent-light);border-color:#bfdbfe;color:#2563eb;color:var(--cal-accent)}.cal-img-btn.change:hover{background:#dbeafe}.cal-img-btn.delete{background:#fef2f2;background:var(--cal-danger-bg);border-color:#fecaca;border-color:var(--cal-danger-border);color:#dc2626;color:var(--cal-danger)}.cal-img-btn.delete:hover{background:#fee2e2}.cal-detail-no-img{align-items:center;background:#fafbfc;border:1px dashed #d1d5db;border-radius:8px;border-radius:var(--cal-radius);display:flex;flex-direction:column;height:300px;justify-content:center;text-align:center}.cal-detail-no-img span{font-size:40px;margin-bottom:12px;opacity:.3}.cal-detail-no-img p{color:#94a3b8;color:var(--cal-text-muted);font-size:13px;margin:0 0 12px}.cal-upload-btn{background:#2563eb;background:var(--cal-accent);border-radius:8px;border-radius:var(--cal-radius);color:#fff;cursor:pointer;display:inline-block;font-family:inherit;font-size:13px;font-weight:600;padding:9px 20px;transition:all .15s cubic-bezier(.4,0,.2,1);transition:all var(--cal-transition)}.cal-upload-btn:hover{background:#1d4ed8;background:var(--cal-accent-hover)}.cal-upload-loading{align-items:center;background:#ffffffeb;border-radius:8px;border-radius:var(--cal-radius);bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:absolute;right:0;top:0}.cal-upload-loading p{color:#94a3b8;color:var(--cal-text-muted);font-size:13px;font-weight:500;margin-top:12px}.cal-detail-right{display:flex;flex-direction:column;gap:0}.cal-detail-item{align-items:center;border-bottom:1px solid #f1f3f6;border-bottom:1px solid var(--cal-border-light);display:flex;justify-content:space-between;padding:12px 0}.cal-detail-item:last-child{border-bottom:none}.cal-detail-item.full{align-items:flex-start;flex-direction:column;gap:4px}.cal-detail-item span{color:#94a3b8;color:var(--cal-text-muted);font-size:13px;font-weight:500}.cal-detail-item strong{color:#0f172a;color:var(--cal-text-primary);font-size:14px}.cal-help{align-items:flex-start;background:#eff6ff;background:var(--cal-accent-light);border:1px solid #bfdbfe;border-radius:8px;border-radius:var(--cal-radius);display:flex;gap:14px;margin-top:24px;padding:16px 20px}.cal-help span{font-size:18px;margin-top:1px}.cal-help strong{color:#1d4ed8;color:var(--cal-accent-hover);display:block;font-size:13px;margin-bottom:4px}.cal-help p{color:#475569;color:var(--cal-text-secondary);font-size:13px;line-height:1.6;margin:0}.cal-certificate-upload{margin-top:8px}.cal-cert-dropzone{align-items:center;background:#fafbfc;border:1px dashed #d1d5db;border-radius:8px;border-radius:var(--cal-radius);cursor:pointer;display:flex;flex-direction:column;justify-content:center;padding:24px;transition:all .15s cubic-bezier(.4,0,.2,1);transition:all var(--cal-transition)}.cal-cert-dropzone:hover{background:#eff6ff;background:var(--cal-accent-light);border-color:#2563eb;border-color:var(--cal-accent)}.cal-cert-placeholder{text-align:center}.cal-cert-placeholder span{display:block;font-size:28px;margin-bottom:8px;opacity:.4}.cal-cert-placeholder p{color:#475569;color:var(--cal-text-secondary);font-size:13px;font-weight:500;margin:0}.cal-cert-placeholder small{color:#94a3b8;color:var(--cal-text-muted);display:block;font-size:11px;margin-top:4px}.cal-cert-preview{align-items:center;background:#ecfdf5;background:var(--cal-success-bg);border:1px solid #a7f3d0;border:1px solid var(--cal-success-border);border-radius:8px;border-radius:var(--cal-radius);display:flex;gap:12px;padding:12px 16px}.cal-cert-preview-file{align-items:center;color:#0f172a;color:var(--cal-text-primary);display:flex;font-size:13px;font-weight:500;gap:8px}.cal-cert-thumb{border:1px solid #e8ecf1;border:1px solid var(--cal-border);border-radius:4px;max-height:60px;max-width:80px;object-fit:cover}.cal-cert-remove{background:#dc2626;background:var(--cal-danger);border:none;border-radius:8px;border-radius:var(--cal-radius);color:#fff;cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;margin-left:auto;padding:6px 14px;transition:background .15s cubic-bezier(.4,0,.2,1);transition:background var(--cal-transition)}.cal-cert-remove:hover{background:#b91c1c}.cal-scan-section{background:#0f172a;border:1px solid #1e293b;border-radius:12px;border-radius:var(--cal-radius-lg);color:#fff;margin-bottom:24px;padding:24px}.cal-scan-header{align-items:center;display:flex;gap:16px;margin-bottom:16px}.cal-scan-header span{background:#6366f133;border-radius:8px;border-radius:var(--cal-radius);font-size:24px;line-height:1;padding:10px}.cal-scan-header h3{font-size:16px;font-weight:700;letter-spacing:-.02em;margin:0}.cal-scan-header p{font-size:13px;margin:3px 0 0;opacity:.55}.cal-scan-upload{text-align:center}.cal-scan-btn{align-items:center;background:#6366f126;border:1px dashed #6366f166;border-radius:8px;border-radius:var(--cal-radius);color:#a5b4fc;cursor:pointer;display:inline-flex;font-family:inherit;font-size:14px;font-weight:600;gap:10px;justify-content:center;min-width:280px;padding:14px 32px;transition:all .15s cubic-bezier(.4,0,.2,1);transition:all var(--cal-transition)}.cal-scan-btn:hover:not(.scanning){background:#6366f140;border-color:#6366f199;color:#fff}.cal-scan-btn.scanning{cursor:wait;opacity:.6}.cal-scan-btn span:first-child{font-size:18px}.cal-scan-spinner{animation:cal-spin .7s linear infinite;border:2px solid #a5b4fc33;border-radius:50%;border-top-color:#a5b4fc;height:18px;width:18px}.cal-scan-hint{font-size:12px;margin:10px 0 0;opacity:.4}.cal-scan-result{background:#10b98114;border:1px solid #10b98133;border-radius:8px;border-radius:var(--cal-radius);display:flex;flex-direction:column;font-size:13px;font-weight:500;gap:8px;margin-top:14px;padding:14px 18px}.cal-scan-result.partial{background:#f59e0b14;border-color:#f59e0b33}.cal-scan-result-header{align-items:center;display:flex;gap:8px;justify-content:center}.cal-scan-result-header span:first-child{font-size:16px}.cal-scan-fields{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.cal-scan-field-tag{background:#6366f11f;border:1px solid #6366f133;border-radius:100px;color:#a5b4fc;font-size:11px;padding:3px 10px;text-transform:capitalize}.cal-modal-wide{max-width:900px!important;width:95%}.cal-photo-actions{display:flex;gap:4px;justify-content:center}.cal-photo-btn.delete-photo{background:#fef2f2;background:var(--cal-danger-bg);border:1px solid #fecaca;border:1px solid var(--cal-danger-border);color:#dc2626;color:var(--cal-danger)}.cal-photo-btn.delete-photo:hover{background:#fee2e2}@media (max-width:1100px){.cal-stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:900px){.cal-detail-layout{grid-template-columns:1fr}}@media (max-width:768px){.cal-dashboard{padding:20px 16px}.cal-header h1{font-size:20px}.cal-stats-grid{gap:10px;grid-template-columns:repeat(2,1fr)}.cal-stat-card{padding:18px}.cal-stat-number{font-size:24px}.cal-toolbar{align-items:stretch;flex-direction:column}.cal-search-box{min-width:100%}.cal-filters{justify-content:space-between}.cal-cards-grid,.cal-form-row{grid-template-columns:1fr}.cal-table-container{overflow-x:auto}.cal-table{min-width:900px}}@media (max-width:480px){.cal-header{padding-bottom:20px}.cal-header-right{width:100%}.cal-btn{flex:1 1;font-size:12px;justify-content:center;padding:8px 10px}.cal-stats-grid{grid-template-columns:1fr}.cal-header-icon{font-size:18px;height:40px;width:40px}}.audit-tool-container{color:#1e293b;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;position:relative}.aq-loading{align-items:center;color:#64748b;display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:400px}.aq-spinner{animation:aqSpin .8s linear infinite;border:3px solid #e2e8f0;border-radius:50%;border-top-color:#6366f1;height:36px;width:36px}@keyframes aqSpin{to{transform:rotate(1turn)}}.aq-message{animation:aqSlideIn .3s ease;border-radius:10px;box-shadow:0 8px 24px #0000001f;font-size:13px;font-weight:600;padding:12px 20px;position:fixed;right:20px;top:20px;z-index:9999}.aq-message.success{background:#ecfdf5;border:1px solid #a7f3d0;color:#059669}.aq-message.error{background:#fef2f2;border:1px solid #fecaca;color:#dc2626}@keyframes aqSlideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.aq-btn-primary{align-items:center;background:linear-gradient(135deg,#6366f1,#4f46e5);border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:6px;padding:10px 20px;transition:all .2s}.aq-btn-primary:hover{box-shadow:0 4px 12px #6366f166;transform:translateY(-1px)}.aq-btn-primary:disabled{cursor:not-allowed;opacity:.5;transform:none}.aq-btn-secondary{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#4f46e5;cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:6px;padding:8px 16px;transition:all .2s}.aq-btn-secondary:hover{background:#f8fafc;border-color:#6366f1}.aq-btn-ghost{background:none;border:none;border-radius:6px;color:#64748b;cursor:pointer;font-size:13px;font-weight:600;padding:8px 12px;transition:all .2s}.aq-btn-ghost:hover{background:#f1f5f9;color:#1e293b}.at-tabs{background:#f1f5f9;border-radius:12px;display:flex;gap:4px;margin-bottom:24px;padding:4px}.at-tabs button{background:#0000;border:none;border-radius:8px;color:#64748b;cursor:pointer;flex:1 1;font-size:13px;font-weight:600;padding:10px 16px;transition:all .2s}.at-tabs button.active{background:#fff;box-shadow:0 2px 8px #0000000f;color:#4f46e5}.at-tabs button:hover:not(.active){background:#ffffff80;color:#1e293b}.audit-list-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.audit-list-header h2{color:#1e293b;font-size:22px;font-weight:700;margin:0}.audit-list-subtitle{color:#64748b;font-size:14px;margin:4px 0 0}.new-audit-form{animation:aqSlideDown .3s ease;background:#fff;border:1px solid #e2e8f0;border-radius:16px;margin-bottom:24px;padding:28px}@keyframes aqSlideDown{0%{opacity:0;transform:translateY(-12px)}}.new-audit-form h3{font-size:17px;font-weight:700;margin:0 0 20px}.naf-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.naf-group label{color:#64748b;display:block;font-size:12px;font-weight:600;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.naf-group input,.naf-group select{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;box-sizing:border-box;font-family:inherit;font-size:14px;padding:10px 14px;transition:border-color .2s;width:100%}.naf-group input:focus,.naf-group select:focus{background:#fff;border-color:#6366f1;outline:none}.naf-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:20px}.audit-empty{align-items:center;color:#94a3b8;display:flex;flex-direction:column;gap:12px;justify-content:center;min-height:300px;text-align:center}.audit-empty h3{color:#475569;font-size:18px;margin:0}.audit-empty p{line-height:1.6;max-width:400px}.audit-cards-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.audit-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;cursor:pointer;padding:22px;position:relative;transition:all .25s}.audit-card:hover{border-color:#c7d2fe;box-shadow:0 8px 24px #00000014;transform:translateY(-3px)}.ac-top{display:flex;justify-content:space-between;margin-bottom:12px}.ac-type{border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.5px;padding:4px 10px;text-transform:uppercase}.ac-type.initial-assessment{background:#ede9fe;color:#7c3aed}.ac-type.surveillance-audit{background:#dbeafe;color:#2563eb}.ac-type.re-audit{background:#fef3c7;color:#d97706}.ac-type.customer-audit{background:#dcfce7;color:#16a34a}.ac-status{border-radius:20px;font-size:11px;font-weight:600;padding:4px 10px}.ac-status.draft{background:#f1f5f9;color:#64748b}.ac-status.in-progress{background:#dbeafe;color:#2563eb}.ac-status.completed{background:#dcfce7;color:#16a34a}.ac-name{color:#1e293b;font-size:16px;font-weight:700;margin:0 0 4px}.ac-partner{color:#64748b;font-size:13px;margin:0 0 16px}.ac-score-bar{margin-bottom:14px}.ac-bar-track{background:#f1f5f9;border-radius:10px;height:8px;overflow:hidden}.ac-bar-fill{border-radius:10px;height:100%;transition:width .5s ease}.ac-score-info{display:flex;justify-content:space-between;margin-top:6px}.ac-pct{font-size:18px;font-weight:800}.ac-score-detail{font-weight:600}.ac-meta,.ac-score-detail{color:#94a3b8;font-size:12px}.ac-meta{display:flex;justify-content:space-between;margin-bottom:12px}.ac-actions-row{display:flex;gap:8px}.ac-action{background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#4f46e5;cursor:pointer;flex:1 1;font-size:12px;font-weight:600;padding:8px;transition:all .2s}.ac-action:hover{background:#f8fafc;border-color:#6366f1}.ac-action.ac-del{color:#dc2626}.ac-action.ac-del:hover{background:#fef2f2;border-color:#dc2626}.scoring-topbar{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:20px;padding:16px 0}.scoring-topbar-info{flex:1 1}.scoring-topbar-info h2{font-size:18px;font-weight:700;margin:0}.stb-partner{color:#64748b;font-size:13px}.scoring-topbar-actions{display:flex;flex-wrap:wrap;gap:8px}.overall-score-strip{align-items:center;background:linear-gradient(135deg,#fafafe,#f1f0ff);border:1px solid #e0e7ff;border-radius:14px;display:flex;flex-wrap:wrap;gap:28px;margin-bottom:24px;padding:16px 24px}.oss-item{display:flex;flex-direction:column;gap:2px}.oss-label{color:#64748b;font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.oss-value{font-size:24px;font-weight:800}.oss-rating{border-radius:20px;display:inline-block;font-size:13px;font-weight:700;padding:4px 14px}.oss-bar-wrap{flex:1 1;min-width:200px}.oss-bar-track{background:#e2e8f0;border-radius:10px;height:10px;overflow:hidden}.oss-bar-fill{border-radius:10px;height:100%;transition:width .6s ease}.excellent,.gs-rating.excellent{background:#dcfce7;color:#059669}.good,.gs-rating.good{background:#dbeafe;color:#2563eb}.acceptable,.gs-rating.acceptable{background:#fef3c7;color:#d97706}.gs-rating.needs-improvement,.needs-improvement{background:#fed7aa;color:#ea580c}.critical,.gs-rating.critical{background:#fecaca;color:#dc2626}.scoring-layout{display:flex;gap:24px}.scoring-sidebar{background:#fff;border:1px solid #e2e8f0;border-radius:14px;flex-shrink:0;max-height:calc(100vh - 260px);overflow-y:auto;padding:16px;width:280px}.scoring-sidebar h4{color:#64748b;font-size:12px;letter-spacing:.5px;margin:0 0 12px;text-transform:uppercase}.ss-item{border-radius:10px;cursor:pointer;margin-bottom:4px;transition:all .2s}.ss-item-main{align-items:center;border-radius:10px;display:flex;gap:10px;padding:10px 12px;transition:background .2s}.ss-item-main:hover{background:#f8fafc}.ss-item.active .ss-item-main{background:#eef2ff}.ss-item.skipped .ss-item-main{opacity:.5}.ss-num{align-items:center;background:#f1f5f9;border-radius:8px;color:#64748b;display:flex;flex-shrink:0;font-size:12px;font-weight:700;height:28px;justify-content:center;width:28px}.ss-item.active .ss-num{background:#6366f1;color:#fff}.ss-info{flex:1 1;min-width:0}.ss-title{color:#1e293b;display:block;font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ss-progress{color:#94a3b8;font-size:11px}.ss-mini-bar{background:#e2e8f0;border-radius:10px;flex-shrink:0;height:4px;overflow:hidden;width:36px}.ss-mini-fill{border-radius:10px;height:100%;transition:width .4s}.ss-skip{align-items:center;color:#94a3b8;display:flex;font-size:11px;gap:4px;padding:4px 12px}.ss-skip,.ss-skip input{cursor:pointer}.scoring-main{flex:1 1;min-width:0}.sm-header{align-items:center;border-bottom:2px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:16px}.sm-header h3{font-size:17px;font-weight:700;margin:0}.sm-header-score{align-items:baseline;display:flex;gap:8px}.sm-score-pct{font-size:22px;font-weight:800}.sm-score-pts{color:#94a3b8;font-size:13px;font-weight:600}.question-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:12px;overflow:hidden;transition:all .2s}.question-card:hover{border-color:#c7d2fe}.question-card.scored{border-left:3px solid #6366f1}.qc-header{align-items:center;cursor:pointer;display:flex;gap:12px;padding:16px 18px;transition:background .2s}.qc-header:hover{background:#fafafa}.qc-num{align-items:center;background:#f1f5f9;border-radius:8px;color:#6366f1;display:flex;flex-shrink:0;font-size:13px;font-weight:700;height:32px;justify-content:center;width:32px}.qc-text{color:#334155;flex:1 1;font-size:13.5px;font-weight:500;line-height:1.5}.qc-score-badge{border-radius:20px;color:#fff;flex-shrink:0;font-size:12px;font-weight:700;padding:4px 12px}.qc-chevron{color:#94a3b8;flex-shrink:0;font-size:11px;transition:transform .3s}.qc-chevron.open{transform:rotate(180deg)}.qc-body{animation:aqSlideDown .3s ease;border-top:1px solid #f1f5f9;padding:0 18px 18px}.score-buttons{align-items:center;display:flex;gap:8px;padding:16px 0}.sb-label{color:#64748b;font-size:13px;font-weight:600;margin-right:4px}.score-btn{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:10px;cursor:pointer;display:flex;font-size:16px;font-weight:700;height:44px;justify-content:center;transition:all .2s;width:44px}.score-btn:hover{transform:scale(1.08)}.score-btn.score-0{color:#dc2626}.score-btn.score-1{color:#ef4444}.score-btn.score-2{color:#d97706}.score-btn.score-3{color:#2563eb}.score-btn.score-4{color:#059669}.score-btn.selected.score-0{background:#dc2626;border-color:#dc2626;color:#fff}.score-btn.selected.score-1{background:#ef4444;border-color:#ef4444;color:#fff}.score-btn.selected.score-2{background:#d97706;border-color:#d97706;color:#fff}.score-btn.selected.score-3{background:#2563eb;border-color:#2563eb;color:#fff}.score-btn.selected.score-4{background:#059669;border-color:#059669;color:#fff}.criteria-table{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:14px;padding:14px}.ct-title{color:#64748b;font-size:12px;font-weight:700;letter-spacing:.5px;margin-bottom:10px;text-transform:uppercase}.ct-grid{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(5,1fr)}.ct-cell{background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;padding:8px;text-align:center;transition:all .2s}.ct-cell:hover{background:#fafafe;border-color:#6366f1}.ct-cell.highlighted{background:#eef2ff;border-color:#6366f1;box-shadow:0 0 0 2px #6366f133}.ct-score{color:#4f46e5;display:block;font-size:16px;font-weight:800;margin-bottom:4px}.ct-text{color:#64748b;display:block;font-size:10.5px;line-height:1.4}.what-to-look{background:linear-gradient(135deg,#fffbeb,#fef3c7);border:1px solid #fde68a;border-radius:10px;margin-bottom:14px;padding:14px}.wtl-title{color:#92400e;font-size:12px;font-weight:700;margin-bottom:6px}.what-to-look p{color:#78350f;font-size:13px;line-height:1.6;margin:0}.qc-inputs{display:flex;flex-direction:column;gap:12px}.qc-input-group label{color:#64748b;display:block;font-size:12px;font-weight:600;margin-bottom:6px}.qc-input-group input,.qc-input-group textarea{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;box-sizing:border-box;font-family:inherit;font-size:13px;padding:10px 12px;resize:vertical;transition:all .2s;width:100%}.qc-input-group input:focus,.qc-input-group textarea:focus{background:#fff;border-color:#6366f1;outline:none}.qc-input-row{display:flex;gap:12px}.qc-input-row .qc-input-group{flex:1 1}.section-nav{border-top:1px solid #e2e8f0;display:flex;gap:12px;margin-top:24px;padding-top:20px}.section-skipped{color:#94a3b8;flex-direction:column;justify-content:center;min-height:200px;text-align:center}.gap-topbar,.section-skipped{align-items:center;display:flex;gap:16px}.gap-topbar{border-bottom:1px solid #e2e8f0;flex-wrap:wrap;margin-bottom:24px;padding:16px 0}.gap-topbar h2{flex:1 1;font-size:20px;font-weight:700;margin:0}.gap-topbar-actions{display:flex;gap:8px}.gap-summary{grid-gap:16px;display:grid;gap:16px;grid-template-columns:2fr repeat(3,1fr);margin-bottom:28px}.gs-card{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:14px;display:flex;padding:22px}.gs-overall{gap:20px}.gs-circle{align-items:center;border:4px solid;border-radius:50%;display:flex;flex-shrink:0;height:80px;justify-content:center;width:80px}.gs-circle-pct{font-size:22px;font-weight:800}.gs-info{display:flex;flex-direction:column;gap:4px}.gs-info h3{color:#64748b;font-size:14px;font-weight:600;margin:0}.gs-pts{color:#94a3b8;font-size:13px}.gs-stat{flex-direction:column;gap:4px;text-align:center}.gs-stat-number{font-size:32px;font-weight:800}.gs-stat-label{color:#64748b;font-size:12px;font-weight:600}.gap-section-chart{background:#fff;border:1px solid #e2e8f0;border-radius:14px;margin-bottom:24px;padding:22px}.gap-section-chart h3{font-size:15px;font-weight:700;margin:0 0 16px}.gsc-bars{display:flex;flex-direction:column;gap:10px}.gsc-bar-row{align-items:center;display:flex;gap:12px}.gsc-label{color:#475569;flex-shrink:0;font-size:12.5px;font-weight:600;text-align:right;width:240px}.gsc-bar-track{background:#f1f5f9;border-radius:10px;flex:1 1;height:20px;overflow:hidden}.gsc-bar-fill{border-radius:10px;height:100%;min-width:2px;transition:width .6s ease}.gsc-pct{font-size:14px;font-weight:800;text-align:right;width:44px}.gap-items{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:22px}.gap-items h3{font-size:15px;font-weight:700;margin:0 0 16px}.no-gaps{align-items:center;color:#059669;display:flex;flex-direction:column;gap:12px;padding:40px}.gap-table-wrap{overflow-x:auto}.gap-table{border-collapse:collapse;font-size:13px;width:100%}.gap-table th{background:#f8fafc;border-bottom:2px solid #e2e8f0;color:#64748b;font-size:11px;font-weight:700;letter-spacing:.5px;padding:10px 14px;text-align:left;text-transform:uppercase}.gap-table td{border-bottom:1px solid #f1f5f9;padding:10px 14px;vertical-align:top}.gap-table tbody tr:hover{background:#fafafe}.gap-qnum{color:#6366f1;font-weight:700}.gap-question{line-height:1.4;max-width:220px}.gap-score-badge{border-radius:20px;color:#fff;display:inline-block;font-size:12px;font-weight:700;padding:3px 10px}.gap-score-badge.score-0{background:#dc2626}.gap-score-badge.score-1{background:#ef4444}.gap-score-badge.score-2{background:#d97706}.gap-priority{border-radius:20px;display:inline-block;font-size:11px;font-weight:700;padding:3px 10px}.gap-priority.critical{background:#fef2f2;color:#dc2626}.gap-priority.high{background:#fef3c7;color:#d97706}.ap-topbar{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:24px;padding:16px 0}.ap-topbar h2{flex:1 1;font-size:20px;font-weight:700;margin:0}.ap-stats{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:24px}.ap-stat{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:12px;display:flex;flex-direction:column;gap:4px;min-width:100px;padding:16px 24px}.ap-stat-num{font-size:28px;font-weight:800}.ap-stat span:last-child{color:#64748b;font-size:12px;font-weight:600}.ap-empty{color:#94a3b8;padding:40px;text-align:center}.ap-list{display:flex;flex-direction:column;gap:14px}.ap-card{background:#fff;border:1px solid #e2e8f0;border-left-width:4px;border-radius:12px;padding:20px;transition:all .2s}.ap-card:hover{box-shadow:0 4px 12px #0000000f}.ap-card.priority-critical{border-left-color:#dc2626}.ap-card.priority-high{border-left-color:#d97706}.ap-card.priority-medium{border-left-color:#2563eb}.ap-card.priority-low{border-left-color:#16a34a}.ap-card-header{align-items:center;display:flex;gap:10px;margin-bottom:10px}.ap-qid{color:#6366f1;font-size:14px;font-weight:700}.ap-priority{border-radius:20px;font-size:11px;font-weight:700;padding:3px 10px}.ap-priority.critical{background:#fef2f2;color:#dc2626}.ap-priority.high{background:#fef3c7;color:#d97706}.ap-priority.medium{background:#dbeafe;color:#2563eb}.ap-priority.low{background:#dcfce7;color:#16a34a}.ap-card-status{border-radius:20px;font-size:11px;font-weight:700;margin-left:auto;padding:3px 10px}.ap-card-status.open{background:#fef2f2;color:#dc2626}.ap-card-status.in-progress{background:#dbeafe;color:#2563eb}.ap-card-status.completed{background:#dcfce7;color:#16a34a}.ap-card-status.verified{background:#ede9fe;color:#7c3aed}.ap-question{color:#475569;font-size:13px;line-height:1.5;margin:0 0 8px}.ap-score-line{color:#64748b;display:flex;font-size:13px;gap:8px;margin-bottom:8px}.ap-gap-desc{color:#94a3b8;font-size:12px;line-height:1.4;margin:0 0 12px}.ap-card-details p{font-size:13px;line-height:1.5;margin:0 0 8px}.ap-card-meta{color:#94a3b8;display:flex;font-size:12px;gap:16px;margin-bottom:10px}.ap-edit-btn{font-size:12px!important;padding:6px 14px!important}.ap-edit-form{background:#f8fafc;border-radius:10px;margin-top:12px;padding:16px}.ap-edit-row{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px}.ap-edit-group{flex:1 1;min-width:160px}.ap-edit-group label{color:#64748b;display:block;font-size:11px;font-weight:600;margin-bottom:4px;text-transform:uppercase}.ap-edit-group input,.ap-edit-group select,.ap-edit-group textarea{background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-sizing:border-box;font-family:inherit;font-size:13px;padding:8px 12px;width:100%}.ap-edit-group input:focus,.ap-edit-group select:focus,.ap-edit-group textarea:focus{border-color:#6366f1;outline:none}.ap-edit-actions{display:flex;gap:8px;justify-content:flex-end}.history-view{padding:0}.history-header{margin-bottom:24px}.history-header h2{font-size:22px;font-weight:700;margin:0}.history-header p{color:#64748b;font-size:14px;margin:4px 0 0}.history-chart{background:#fff;border:1px solid #e2e8f0;border-radius:14px;margin-bottom:24px;padding:24px}.history-chart h3{font-size:15px;font-weight:700;margin:0 0 20px}.hc-bars{align-items:flex-end;display:flex;gap:24px;min-height:200px;overflow-x:auto;padding:0 20px}.hc-bar-col{align-items:center;display:flex;flex-direction:column;gap:6px;min-width:80px}.hc-bar-wrapper{align-items:flex-end;display:flex;height:180px;width:48px}.hc-bar{border-radius:8px 8px 2px 2px;min-height:4px;transition:height .6s ease;width:100%}.hc-bar-pct{font-size:14px;font-weight:800}.hc-bar-label{color:#475569;font-size:11px;font-weight:600;max-width:80px;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.hc-bar-date{color:#94a3b8;font-size:10px}.history-table-wrap{overflow-x:auto}.history-table-wrap .gap-table tbody tr{cursor:pointer}.history-table-wrap .gap-table tbody tr:hover{background:#f8fafc}@media (max-width:1024px){.scoring-layout{flex-direction:column}.scoring-sidebar{max-height:none;width:100%}.gap-summary{grid-template-columns:1fr 1fr}.gsc-label{font-size:11px;width:140px}.ct-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:768px){.at-tabs{flex-wrap:wrap}.at-tabs button{flex:none;font-size:12px;padding:8px 12px}.scoring-topbar{align-items:flex-start;flex-direction:column}.scoring-topbar-actions{width:100%}.overall-score-strip{flex-direction:column;gap:12px}.gap-summary,.naf-grid{grid-template-columns:1fr}.qc-input-row{flex-direction:column}.ct-grid{grid-template-columns:1fr 1fr}.audit-cards-grid{grid-template-columns:1fr}.ap-edit-row{flex-direction:column}.hc-bars{gap:12px}}@media print{.ac-actions-row,.ap-edit-btn,.ap-edit-form,.aq-btn-ghost,.at-tabs,.gap-topbar-actions,.scoring-topbar-actions,.section-nav{display:none!important}.audit-tool-container{padding:0}.gap-summary{grid-template-columns:repeat(4,1fr)}.gap-table{font-size:11px}.gap-table td,.gap-table th{padding:6px 8px}.scoring-sidebar{display:none}.scoring-main{width:100%}.question-card{break-inside:avoid;page-break-inside:avoid}}.qa2-overlay{animation:qa2FadeIn .2s ease;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#0006;bottom:0;display:flex;justify-content:flex-end;left:0;position:fixed;right:0;top:0;z-index:10000}@keyframes qa2FadeIn{0%{opacity:0}to{opacity:1}}.qa2-panel{animation:qa2SlideIn .3s cubic-bezier(.16,1,.3,1);background:#0f0f14;box-shadow:-8px 0 40px #00000080;display:flex;flex-direction:column;height:100vh;max-width:100vw;overflow:hidden;position:relative;width:480px}@keyframes qa2SlideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.qa2-panel:before{animation:qa2Gradient 4s linear infinite;background:linear-gradient(90deg,#667eea,#764ba2,#f093fb,#667eea);background-size:300% 100%;content:"";height:2px;left:0;position:absolute;right:0;top:0;z-index:10}@keyframes qa2Gradient{0%{background-position:0 50%}to{background-position:300% 50%}}.qa2-head{background:#16161ef2;border-bottom:1px solid #ffffff0f;justify-content:space-between;padding:14px 16px;position:relative;z-index:5}.qa2-head,.qa2-head-left{align-items:center;display:flex}.qa2-head-left{gap:10px}.qa2-head-logo{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:10px;color:#fff;display:flex;height:36px;justify-content:center;width:36px}.qa2-head-title{color:#e8e8ed;font-size:15px;font-weight:700;letter-spacing:-.2px;margin:0}.qa2-head-sub{align-items:center;color:#8b8b9e;display:flex;font-size:11px;gap:5px}.qa2-dot-on{animation:qa2Pulse 2s infinite;background:#22c55e;box-shadow:0 0 6px #22c55e}.qa2-dot-off,.qa2-dot-on{border-radius:50%;display:inline-block;height:6px;width:6px}.qa2-dot-off{background:#f59e0b}@keyframes qa2Pulse{0%,to{opacity:1}50%{opacity:.4}}.qa2-head-btns{display:flex;gap:4px}.qa2-hbtn{align-items:center;background:#ffffff0a;border:1px solid #ffffff14;border-radius:8px;color:#8b8b9e;cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s;width:32px}.qa2-hbtn:hover{background:#ffffff1a;border-color:#ffffff26;color:#e8e8ed}.qa2-hbtn-close:hover{background:#ef444433;border-color:#ef44444d;color:#ef4444}.qa2-hbtn:disabled{cursor:not-allowed;opacity:.4}.qa2-chat{display:flex;flex:1 1;flex-direction:column;gap:16px;overflow-y:auto;padding:16px;scroll-behavior:smooth}.qa2-chat::-webkit-scrollbar{width:4px}.qa2-chat::-webkit-scrollbar-track{background:#0000}.qa2-chat::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.qa2-greeting{padding:30px 20px;position:relative;text-align:center}.qa2-greeting-glow{background:radial-gradient(circle,#667eea26 0,#0000 70%);border-radius:50%;height:200px;left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:200px}.qa2-greeting-icon{margin-bottom:16px;position:relative;z-index:1}.qa2-brain-pulse{animation:qa2Float 3s ease-in-out infinite;display:inline-flex}@keyframes qa2Float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.qa2-greeting-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2,#f093fb);-webkit-background-clip:text;background-clip:text;font-size:22px;font-weight:800;margin:0 0 8px;position:relative;z-index:1}.qa2-greeting-sub{color:#8b8b9e;font-size:13px;margin:0 0 24px;position:relative;z-index:1}.qa2-stats-row{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(4,1fr);margin-bottom:16px;position:relative;z-index:1}.qa2-stat-card{align-items:center;background:#ffffff0a;border:1px solid #ffffff0f;border-radius:10px;display:flex;flex-direction:column;gap:4px;padding:12px 8px;transition:all .2s}.qa2-stat-card:hover{background:#ffffff12;border-color:#667eea4d}.qa2-stat-num{color:#e8e8ed;font-size:16px;font-weight:700}.qa2-stat-lbl{color:#6b6b80;font-size:10px;letter-spacing:.5px;text-transform:uppercase}.qa2-extract-cta{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:10px;color:#fff;cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:8px;padding:10px 20px;position:relative;transition:all .3s;z-index:1}.qa2-extract-cta:hover{box-shadow:0 4px 20px #667eea66;transform:translateY(-1px)}.qa2-extract-cta:disabled{cursor:not-allowed;opacity:.6;transform:none}.qa2-spin{animation:qa2Spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;display:inline-block;height:14px;width:14px}@keyframes qa2Spin{to{transform:rotate(1turn)}}.qa2-sug-grid{grid-gap:8px;animation:qa2FadeUp .4s ease;display:grid;gap:8px;grid-template-columns:1fr 1fr;padding:0 4px}@keyframes qa2FadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.qa2-sug-card{background:#ffffff08;border:1px solid #ffffff0f;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;gap:6px;padding:14px 12px;text-align:left;transition:all .25s}.qa2-sug-card:hover{background:#667eea14;border-color:#667eea40;transform:translateY(-2px)}.qa2-sug-icon{font-size:20px}.qa2-sug-text{color:#c8c8d8;font-size:12px;line-height:1.4}.qa2-sug-cat{color:#667eea;font-size:10px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.qa2-msg{animation:qa2MsgIn .3s ease;display:flex;gap:10px}@keyframes qa2MsgIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.qa2-msg-user{justify-content:flex-end}.qa2-user-bubble{background:linear-gradient(135deg,#667eea,#5a67d8);border-radius:18px 18px 4px 18px;color:#fff;max-width:80%;padding:12px 16px}.qa2-user-text{font-size:14px;line-height:1.5;word-break:break-word}.qa2-msg-bot{align-items:flex-start}.qa2-bot-ava{align-items:center;background:#667eea26;border-radius:10px;color:#667eea;display:flex;flex-shrink:0;height:32px;justify-content:center;margin-top:2px;width:32px}.qa2-ava-think{animation:qa2Pulse 1.5s infinite}.qa2-bot-body{flex:1 1;min-width:0}.qa2-ai-tag{align-items:center;background:#667eea1a;border:1px solid #667eea33;border-radius:20px;color:#667eea;display:inline-flex;font-size:11px;gap:6px;margin-bottom:8px;padding:3px 10px}.qa2-ai-pulse{animation:qa2Pulse 1.5s infinite;background:#667eea;border-radius:50%;display:inline-block;height:6px;width:6px}.qa2-conf{border-radius:6px;display:inline-block;font-size:11px;margin-bottom:8px;padding:2px 8px}.qa2-conf-high{background:#22c55e1a;color:#22c55e}.qa2-conf-medium{background:#f59e0b1a;color:#f59e0b}.qa2-conf-low{background:#ef44441a;color:#ef4444}.qa2-bot-text{color:#d1d1e0;font-size:14px;line-height:1.7;word-break:break-word}.qa2-bot-text strong{color:#e8e8ed;font-weight:600}.qa2-bot-text em{color:#a5a5c0}.qa2-bot-text .qa2-h3{color:#e8e8ed;font-size:16px;font-weight:700;margin:12px 0 6px}.qa2-bot-text .qa2-h4{color:#d8d8ed;font-size:14px;font-weight:700;margin:10px 0 4px}.qa2-bot-text .qa2-bullet{display:flex;gap:8px;padding:2px 0}.qa2-bot-text .qa2-bdot{color:#667eea;flex-shrink:0;font-weight:700}.qa2-bot-text .qa2-numlist{display:flex;gap:8px;padding:2px 0}.qa2-bot-text .qa2-nnum{color:#667eea;flex-shrink:0;font-weight:700;min-width:20px}.qa2-bot-text .qa2-hr{border:none;border-top:1px solid #ffffff14;margin:12px 0}.qa2-bot-text .qa2-code{background:#0006;border:1px solid #ffffff14;border-radius:8px;color:#c8c8e0;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;margin:8px 0;overflow-x:auto;padding:12px}.qa2-blink-cursor{animation:qa2Blink .8s step-end infinite;color:#667eea;font-size:18px;font-weight:300}@keyframes qa2Blink{0%,to{opacity:1}50%{opacity:0}}.qa2-time{color:#4a4a60;display:block;font-size:10px;margin-top:6px}.qa2-src-section{border-top:1px solid #ffffff0f;margin-top:12px;padding-top:12px}.qa2-src-head{color:#8b8b9e;font-size:12px;font-weight:600;margin-bottom:8px}.qa2-src-list{display:flex;flex-direction:column;gap:6px}.qa2-src-chip{align-items:center;background:#ffffff08;border:1px solid #ffffff0f;border-radius:10px;cursor:pointer;display:flex;gap:10px;padding:8px 12px;text-align:left;transition:all .2s;width:100%}.qa2-src-chip:hover{background:#667eea14;border-color:#667eea40}.qa2-src-idx{align-items:center;background:#667eea26;border-radius:6px;color:#667eea;display:flex;flex-shrink:0;font-size:11px;font-weight:700;height:22px;justify-content:center;width:22px}.qa2-src-info{flex:1 1;min-width:0}.qa2-src-title{color:#c8c8d8;display:block;font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qa2-src-meta{color:#6b6b80;display:block;font-size:10px}.qa2-src-pct{background:#22c55e1a;border-radius:4px;color:#22c55e;flex-shrink:0;font-size:11px;font-weight:700;padding:2px 6px}.qa2-followups{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.qa2-follow-chip{background:#ffffff08;border:1px solid #ffffff14;border-radius:20px;color:#a5a5c0;cursor:pointer;font-size:12px;padding:6px 12px;transition:all .2s;white-space:nowrap}.qa2-follow-chip:hover{background:#667eea1a;border-color:#667eea4d;color:#c8c8e8}.qa2-thinking{background:#ffffff05;border:1px solid #ffffff0a;border-radius:14px;padding:14px}.qa2-think-row{align-items:center;display:flex;gap:8px;margin-bottom:10px}.qa2-think-brain{animation:qa2Float 1.5s ease-in-out infinite;font-size:20px}.qa2-think-label{color:#a5a5c0;font-size:14px;font-weight:500}.qa2-dots span{animation:qa2DotBounce 1.4s infinite;color:#667eea;display:inline-block;font-weight:700}.qa2-dots span:nth-child(2){animation-delay:.2s}.qa2-dots span:nth-child(3){animation-delay:.4s}@keyframes qa2DotBounce{0%,80%,to{opacity:.2}40%{opacity:1}}.qa2-think-steps{display:flex;gap:8px}.qa2-step{background:#ffffff08;border-radius:6px;color:#6b6b80;font-size:11px;padding:3px 8px}.qa2-step.s1{animation:qa2StepGlow 2s ease infinite;background:#667eea1a;color:#667eea}.qa2-step.s2{animation:qa2StepGlow 2s ease .7s infinite}.qa2-step.s3{animation:qa2StepGlow 2s ease 1.4s infinite}@keyframes qa2StepGlow{0%,to{background:#ffffff08;color:#6b6b80}30%,70%{background:#667eea1f;color:#667eea}}.qa2-error-hint{background:#ef444414;border-radius:6px;color:#ef4444;display:inline-block;font-size:11px;margin-top:6px;padding:4px 8px}.qa2-footer{background:#16161ef2;border-top:1px solid #ffffff0f;padding:12px 16px 16px}.qa2-input-box{align-items:flex-end;background:#ffffff0a;border:1px solid #ffffff14;border-radius:14px;display:flex;gap:8px;padding:6px 6px 6px 14px;transition:all .2s}.qa2-input-box:focus-within{background:#ffffff0f;border-color:#667eea66;box-shadow:0 0 0 3px #667eea1a}.qa2-input-box textarea{background:#0000;border:none;color:#e8e8ed;flex:1 1;font-family:inherit;font-size:14px;line-height:1.5;max-height:100px;outline:none;padding:6px 0;resize:none}.qa2-input-box textarea::placeholder,.qa2-send{color:#4a4a60}.qa2-send{align-items:center;background:#ffffff0f;border:none;border-radius:10px;cursor:pointer;display:flex;flex-shrink:0;height:36px;justify-content:center;transition:all .2s;width:36px}.qa2-send.active{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 12px #667eea4d;color:#fff}.qa2-send.active:hover{box-shadow:0 4px 16px #667eea66;transform:scale(1.05)}.qa2-send:disabled{cursor:not-allowed;opacity:.4;transform:none!important}.qa2-foot-info{color:#4a4a60;display:flex;font-size:10px;justify-content:space-between;padding:8px 4px 0}.qa2-foot-brand{color:#667eea;font-weight:500}@media (max-width:520px){.qa2-panel{width:100vw}.qa2-sug-grid{grid-template-columns:1fr}.qa2-stats-row{grid-template-columns:repeat(2,1fr)}.qa2-think-steps{flex-wrap:wrap}}:root{--qms-primary:#1a56db;--qms-primary-hover:#1244b0;--qms-primary-light:#e8effc;--qms-success:#059669;--qms-success-light:#ecfdf5;--qms-warning:#d97706;--qms-warning-light:#fffbeb;--qms-danger:#dc2626;--qms-danger-light:#fef2f2;--qms-info:#0891b2;--qms-info-light:#ecfeff;--qms-bg:#f8fafc;--qms-surface:#fff;--qms-border:#e2e8f0;--qms-text:#0f172a;--qms-text-secondary:#64748b;--qms-text-muted:#94a3b8;--qms-shadow-sm:0 1px 2px #0000000d;--qms-shadow:0 1px 3px #00000014,0 1px 2px #0000000a;--qms-shadow-md:0 4px 6px -1px #00000014,0 2px 4px -1px #0000000a;--qms-shadow-lg:0 10px 15px -3px #00000014,0 4px 6px -2px #0000000a;--qms-radius:8px;--qms-radius-lg:12px;--qms-transition:all 0.2s ease}.qms-container{-webkit-font-smoothing:antialiased;background:#f8fafc;background:var(--qms-bg);color:#0f172a;color:var(--qms-text);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;min-height:100vh}.qms-header{background:linear-gradient(135deg,#1e3a5f,#1a56db);color:#fff;justify-content:space-between;padding:24px 32px}.qms-header,.qms-header-left{align-items:center;display:flex}.qms-header-left{gap:16px}.qms-logo{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border-radius:12px;border-radius:var(--qms-radius-lg);display:flex;height:48px;justify-content:center;width:48px}.qms-logo svg{color:#fff;height:26px;width:26px}.qms-header h1{font-size:22px;font-weight:700;letter-spacing:-.3px;margin:0}.qms-subtitle{font-size:13px;font-weight:400;margin:2px 0 0;opacity:.75}.qms-nav-tabs{background:#fff;background:var(--qms-surface);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--qms-border);display:flex;gap:4px;padding:0 32px}.qms-nav-tabs button{align-items:center;background:none;border:none;border-bottom:2px solid #0000;color:#64748b;color:var(--qms-text-secondary);cursor:pointer;display:flex;font-family:inherit;font-size:14px;font-weight:500;gap:8px;padding:14px 20px;transition:all .2s ease;transition:var(--qms-transition)}.qms-nav-tabs button:hover{color:#0f172a;color:var(--qms-text)}.qms-nav-tabs button.active{border-bottom-color:#1a56db;border-bottom-color:var(--qms-primary);color:#1a56db;color:var(--qms-primary)}.qms-nav-tabs button svg{height:16px;width:16px}.qms-content{margin:0 auto;max-width:1400px;padding:24px 32px}.qms-message{align-items:center;animation:qmsSlideDown .3s ease;border-radius:8px;border-radius:var(--qms-radius);display:flex;font-size:14px;font-weight:500;gap:8px;margin:16px 32px 0;padding:12px 16px}.qms-message.success{background:#ecfdf5;background:var(--qms-success-light);border:1px solid #a7f3d0;color:#059669;color:var(--qms-success)}.qms-message.error{background:#fef2f2;background:var(--qms-danger-light);border:1px solid #fca5a5;color:#dc2626;color:var(--qms-danger)}@keyframes qmsSlideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.qms-loading{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:400px}.loading-spinner{animation:qmsSpin .8s linear infinite;border:3px solid #e2e8f0;border-top-color:#1a56db;border:3px solid var(--qms-border);border-radius:50%;border-top-color:var(--qms-primary);height:40px;width:40px}@keyframes qmsSpin{to{transform:rotate(1turn)}}.qms-btn-primary{align-items:center;background:#1a56db;background:var(--qms-primary);border:none;border-radius:8px;border-radius:var(--qms-radius);color:#fff;cursor:pointer;display:inline-flex;font-family:inherit;font-size:14px;font-weight:600;gap:8px;padding:10px 20px;transition:all .2s ease;transition:var(--qms-transition);white-space:nowrap}.qms-btn-primary:hover{background:#1244b0;background:var(--qms-primary-hover);box-shadow:0 4px 6px -1px #00000014,0 2px 4px -1px #0000000a;box-shadow:var(--qms-shadow-md)}.qms-btn-secondary{align-items:center;background:#fff;background:var(--qms-surface);border:1px solid #e2e8f0;border:1px solid var(--qms-border);border-radius:8px;border-radius:var(--qms-radius);color:#0f172a;color:var(--qms-text);cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:500;gap:6px;padding:8px 16px;transition:all .2s ease;transition:var(--qms-transition)}.qms-btn-secondary:hover{background:#f8fafc;background:var(--qms-bg);border-color:#94a3b8;border-color:var(--qms-text-muted)}.qms-btn-ghost{background:none;border:none;color:#64748b;color:var(--qms-text-secondary);cursor:pointer;font-family:inherit;font-size:14px;font-weight:500;padding:8px 12px;transition:all .2s ease;transition:var(--qms-transition)}.qms-btn-ghost:hover{color:#1a56db;color:var(--qms-primary)}.qms-stats-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin-bottom:32px}.qms-stat-card{align-items:center;background:#fff;background:var(--qms-surface);border:1px solid #e2e8f0;border:1px solid var(--qms-border);border-radius:12px;border-radius:var(--qms-radius-lg);cursor:pointer;display:flex;gap:16px;padding:20px;transition:all .2s ease;transition:var(--qms-transition)}.qms-stat-card:hover{box-shadow:0 4px 6px -1px #00000014,0 2px 4px -1px #0000000a;box-shadow:var(--qms-shadow-md);transform:translateY(-2px)}.stat-icon{align-items:center;border-radius:8px;border-radius:var(--qms-radius);display:flex;height:48px;justify-content:center;width:48px}.stat-total .stat-icon{background:#e8effc;background:var(--qms-primary-light);color:#1a56db;color:var(--qms-primary)}.stat-approved .stat-icon{background:#ecfdf5;background:var(--qms-success-light);color:#059669;color:var(--qms-success)}.stat-review .stat-icon{background:#fffbeb;background:var(--qms-warning-light);color:#d97706;color:var(--qms-warning)}.stat-draft .stat-icon{background:#ecfeff;background:var(--qms-info-light);color:#0891b2;color:var(--qms-info)}.stat-info{display:flex;flex-direction:column}.stat-number{font-size:28px;font-weight:700;letter-spacing:-1px;line-height:1}.stat-label{color:#64748b;color:var(--qms-text-secondary);font-size:13px;font-weight:500;margin-top:4px}.qms-section{margin-bottom:32px}.qms-section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.qms-section-header h2{align-items:center;display:flex;font-size:16px;font-weight:600;gap:8px;margin:0}.qms-section-header h2 svg{color:#64748b;color:var(--qms-text-secondary)}.qms-section-subtitle{color:#94a3b8;color:var(--qms-text-muted);font-size:13px}.qms-category-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.qms-category-card{background:#fff;background:var(--qms-surface);border:1px solid #e2e8f0;border:1px solid var(--qms-border);border-radius:12px;border-radius:var(--qms-radius-lg);cursor:pointer;padding:18px;transition:all .2s ease;transition:var(--qms-transition)}.qms-category-card:hover{border-color:#1a56db;border-color:var(--qms-primary);box-shadow:0 4px 6px -1px #00000014,0 2px 4px -1px #0000000a;box-shadow:var(--qms-shadow-md)}.category-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.category-icon{align-items:center;background:#e8effc;background:var(--qms-primary-light);border-radius:8px;border-radius:var(--qms-radius);display:flex;height:36px;justify-content:center;width:36px}.category-count,.category-icon{color:#1a56db;color:var(--qms-primary)}.category-count{font-size:20px;font-weight:700}.category-name{color:#0f172a;color:var(--qms-text);font-size:14px;font-weight:600;margin:0 0 4px}.category-clause{color:#94a3b8;color:var(--qms-text-muted);font-size:12px;margin:0 0 10px}.category-subs{display:flex;flex-wrap:wrap;gap:4px}.sub-tag{background:#f8fafc;background:var(--qms-bg);border:1px solid #e2e8f0;border:1px solid var(--qms-border);border-radius:100px;color:#64748b;color:var(--qms-text-secondary);font-size:11px;padding:2px 8px}.sub-tag.more{background:#e8effc;background:var(--qms-primary-light);border-color:#0000;color:#1a56db;color:var(--qms-primary);font-weight:500}.sub-tag.dept-tag{background:#ede9fe;border-color:#ddd6fe;color:#6d28d9;font-weight:600}.sub-tag.total-tag{background:#ecfdf5;border-color:#a7f3d0;color:#059669;font-weight:600}.qms-activity-list{background:#fff;background:var(--qms-surface);border:1px solid #e2e8f0;border:1px solid var(--qms-border);border-radius:12px;border-radius:var(--qms-radius-lg);padding:16px 20px}.activity-item{align-items:flex-start;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--qms-border);display:flex;gap:12px;padding:10px 0}.activity-item:last-child{border-bottom:none}.activity-dot{background:#1a56db;background:var(--qms-primary);border-radius:50%;flex-shrink:0;height:8px;margin-top:6px;width:8px}.activity-content{display:flex;flex-direction:column;gap:2px}.activity-action{color:#0f172a;color:var(--qms-text);font-size:13px;font-weight:600}.activity-detail{color:#64748b;color:var(--qms-text-secondary);font-size:12px}.activity-time{color:#94a3b8;color:var(--qms-text-muted);font-size:11px}.qms-empty-state{background:#fff;background:var(--qms-surface);border:1px solid #e2e8f0;border:1px solid var(--qms-border);border-radius:12px;border-radius:var(--qms-radius-lg);padding:48px 24px;text-align:center}.empty-icon{color:#94a3b8;color:var(--qms-text-muted);display:block;margin-bottom:12px}.empty-icon svg{height:40px;width:40px}.qms-empty-state h3{font-size:16px;margin:0 0 8px}.qms-empty-state p{color:#64748b;color:var(--qms-text-secondary);font-size:14px;margin:0 0 20px}.qms-toolbar{gap:12px;justify-content:space-between;margin-bottom:20px}.qms-toolbar,.toolbar-left{align-items:center;display:flex;flex-wrap:wrap}.toolbar-left{flex:1 1;gap:10px}.toolbar-right{gap:10px}.qms-search-box,.toolbar-right{align-items:center;display:flex}.qms-search-box{background:#fff;background:var(--qms-surface);border:1px solid #e2e8f0;border:1px solid var(--qms-border);border-radius:8px;border-radius:var(--qms-radius);gap:8px;min-width:240px;padding:0 12px;transition:all .2s ease;transition:var(--qms-transition)}.qms-search-box:focus-within{border-color:#1a56db;border-color:var(--qms-primary);box-shadow:0 0 0 3px #1a56db1a}.qms-search-box svg{color:#94a3b8;color:var(--qms-text-muted);flex-shrink:0}.qms-search-box input{background:#0000;border:none;color:#0f172a;color:var(--qms-text);font-family:inherit;font-size:14px;outline:none;padding:10px 0;width:100%}.qms-select{-webkit-appearance:auto;appearance:auto;background:#fff;background:var(--qms-surface);color:#0f172a;color:var(--qms-text);cursor:pointer;font-family:inherit;font-size:13px;padding:10px 12px}.qms-select,.view-toggle{border:1px solid #e2e8f0;border:1px solid var(--qms-border);border-radius:8px;border-radius:var(--qms-radius)}.view-toggle{display:flex;overflow:hidden}.view-toggle button{align-items:center;background:#fff;background:var(--qms-surface);border:none;color:#94a3b8;color:var(--qms-text-muted);cursor:pointer;display:flex;padding:8px 12px;transition:all .2s ease;transition:var(--qms-transition)}.view-toggle button:first-child{border-right:1px solid #e2e8f0;border-right:1px solid var(--qms-border)}.view-toggle button.active{background:#e8effc;background:var(--qms-primary-light);color:#1a56db;color:var(--qms-primary)}.view-toggle button:hover:not(.active){background:#f8fafc;background:var(--qms-bg)}.qms-table-wrap{background:#fff;background:var(--qms-surface);border:1px solid #e2e8f0;border:1px solid var(--qms-border);border-radius:12px;border-radius:var(--qms-radius-lg);overflow-x:auto}.qms-table{border-collapse:collapse;font-size:13px;width:100%}.qms-table thead{background:#f8fafc;background:var(--qms-bg);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--qms-border)}.qms-table th{color:#64748b;color:var(--qms-text-secondary);font-size:12px;font-weight:600;letter-spacing:.5px;padding:12px 14px;text-align:left;text-transform:uppercase;white-space:nowrap}.qms-table td{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--qms-border);color:#0f172a;color:var(--qms-text);padding:12px 14px}.qms-table tbody tr:hover{background:#f8faff}.qms-table tbody tr:last-child td{border-bottom:none}.doc-number{color:#1a56db;color:var(--qms-primary);cursor:pointer;font-weight:600;white-space:nowrap}.doc-number:hover{text-decoration:underline}.doc-title{cursor:pointer;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-title:hover{color:#1a56db;color:var(--qms-primary)}.doc-version{color:#94a3b8;color:var(--qms-text-muted);font-size:12px}.cat-label{background:#f8fafc;background:var(--qms-bg);border:1px solid #e2e8f0;border:1px solid var(--qms-border);border-radius:100px;padding:3px 8px}.cat-label,.file-indicator{font-size:12px;white-space:nowrap}.file-indicator{color:#64748b;color:var(--qms-text-secondary)}.qms-status-badge{border-radius:100px;font-size:12px;font-weight:600;padding:3px 10px;white-space:nowrap}.status-draft{background:#ecfeff;background:var(--qms-info-light);color:#0891b2;color:var(--qms-info)}.status-under-review{background:#fffbeb;background:var(--qms-warning-light);color:#d97706;color:var(--qms-warning)}.status-approved{background:#ecfdf5;background:var(--qms-success-light);color:#059669;color:var(--qms-success)}.status-obsolete{background:#fef2f2;background:var(--qms-danger-light);color:#dc2626;color:var(--qms-danger)}.qms-actions{display:flex;gap:4px}.act-btn{align-items:center;background:none;border:1px solid #0000;border-radius:6px;color:#94a3b8;color:var(--qms-text-muted);cursor:pointer;display:flex;padding:6px;transition:all .2s ease;transition:var(--qms-transition)}.act-btn:hover{background:#f8fafc;background:var(--qms-bg);border-color:#e2e8f0;border-color:var(--qms-border);color:#1a56db;color:var(--qms-primary)}.act-btn.act-delete:hover{background:#fef2f2;background:var(--qms-danger-light);border-color:#fca5a5;color:#dc2626;color:var(--qms-danger)}.qms-docs-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.qms-doc-card{background:#fff;background:var(--qms-surface);border:1px solid #e2e8f0;border:1px solid var(--qms-border);border-radius:12px;border-radius:var(--qms-radius-lg);padding:18px;transition:all .2s ease;transition:var(--qms-transition)}.qms-doc-card:hover{box-shadow:0 4px 6px -1px #00000014,0 2px 4px -1px #0000000a;box-shadow:var(--qms-shadow-md)}.doc-card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.doc-card-number{color:#1a56db;color:var(--qms-primary);font-size:12px;font-weight:600}.doc-card-title{color:#0f172a;color:var(--qms-text);cursor:pointer;font-size:15px;font-weight:600;line-height:1.4;margin:0 0 6px}.doc-card-title:hover{color:#1a56db;color:var(--qms-primary)}.doc-card-category{color:#94a3b8;color:var(--qms-text-muted);font-size:12px;margin:0 0 10px}.doc-card-meta{display:flex;gap:12px;margin-bottom:10px}.doc-card-file,.doc-card-meta{color:#64748b;color:var(--qms-text-secondary);font-size:12px}.doc-card-file{background:#f8fafc;background:var(--qms-bg);border-radius:8px;border-radius:var(--qms-radius);margin-bottom:12px;overflow:hidden;padding:6px 10px;text-overflow:ellipsis;white-space:nowrap}.doc-card-actions{border-top:1px solid #e2e8f0;border-top:1px solid var(--qms-border);display:flex;gap:4px;padding-top:10px}.detail-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.detail-actions-top{display:flex;gap:8px}.detail-main{background:#fff;background:var(--qms-surface);border:1px solid #e2e8f0;border:1px solid var(--qms-border);border-radius:12px;border-radius:var(--qms-radius-lg);padding:28px}.detail-top{margin-bottom:24px}.detail-doc-number{color:#1a56db;color:var(--qms-primary);display:block;font-size:13px;font-weight:600;margin-bottom:4px}.detail-title-block h2{font-size:22px;font-weight:700;letter-spacing:-.3px;margin:0 0 12px}.detail-badges{align-items:center;display:flex;gap:8px}.version-badge{background:#f8fafc;background:var(--qms-bg);border:1px solid #e2e8f0;border:1px solid var(--qms-border);border-radius:100px;color:#64748b;color:var(--qms-text-secondary);font-size:12px;font-weight:500;padding:3px 10px}.controlled-badge{align-items:center;color:#1a56db;color:var(--qms-primary);display:flex;font-size:12px;font-weight:600;gap:4px}.controlled-badge svg{height:14px;width:14px}.detail-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(3,1fr);margin-bottom:24px}.detail-section{background:#f8fafc;background:var(--qms-bg);border-radius:8px;border-radius:var(--qms-radius);padding:18px}.detail-section.full-width{grid-column:1/-1}.detail-section h3{color:#64748b;color:var(--qms-text-secondary);font-size:13px;font-weight:600;letter-spacing:.5px;margin:0 0 14px;text-transform:uppercase}.detail-fields{display:flex;flex-direction:column;gap:10px}.detail-field{align-items:center;display:flex;gap:12px;justify-content:space-between}.detail-field label{color:#94a3b8;color:var(--qms-text-muted);font-size:13px;white-space:nowrap}.detail-field span{color:#0f172a;color:var(--qms-text);font-size:13px;font-weight:500;text-align:right}.detail-file-card{align-items:center;background:#fff;background:var(--qms-surface);border:1px solid #e2e8f0;border:1px solid var(--qms-border);border-radius:8px;border-radius:var(--qms-radius);display:flex;gap:14px;padding:14px}.file-icon-large{font-size:28px}.file-details{display:flex;flex:1 1;flex-direction:column}.file-name-detail{font-size:14px;font-weight:500}.file-size-detail{color:#94a3b8;color:var(--qms-text-muted);font-size:12px}.detail-description{color:#64748b;color:var(--qms-text-secondary);font-size:14px;line-height:1.6;margin:0}.workflow-steps{gap:0;justify-content:center;padding:16px 0}.workflow-step,.workflow-steps{align-items:center;display:flex}.workflow-step{flex:1 1;flex-direction:column;position:relative}.workflow-step:not(:last-child):after{background:#e2e8f0;background:var(--qms-border);content:"";height:2px;left:50%;position:absolute;top:18px;width:100%;z-index:0}.workflow-step.active:not(:last-child):after,.workflow-step.completed:not(:last-child):after{background:#1a56db;background:var(--qms-primary)}.step-circle{align-items:center;background:#fff;background:var(--qms-surface);border:2px solid #e2e8f0;border:2px solid var(--qms-border);border-radius:50%;color:#94a3b8;color:var(--qms-text-muted);cursor:pointer;display:flex;font-size:14px;font-weight:600;height:36px;justify-content:center;transition:all .2s ease;transition:var(--qms-transition);width:36px;z-index:1}.workflow-step.active .step-circle{background:#1a56db;background:var(--qms-primary);border-color:#1a56db;border-color:var(--qms-primary);color:#fff}.workflow-step.completed .step-circle{background:#059669;background:var(--qms-success);border-color:#059669;border-color:var(--qms-success);color:#fff}.step-circle:hover{box-shadow:0 4px 6px -1px #00000014,0 2px 4px -1px #0000000a;box-shadow:var(--qms-shadow-md);transform:scale(1.1)}.step-label{color:#94a3b8;color:var(--qms-text-muted);font-size:12px;font-weight:500;margin-top:8px}.workflow-step.active .step-label{color:#1a56db;color:var(--qms-primary);font-weight:600}.workflow-step.completed .step-label{color:#059669;color:var(--qms-success)}.qms-modal-overlay{align-items:flex-start;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a99;display:flex;inset:0;justify-content:center;overflow-y:auto;padding:40px 20px;position:fixed;z-index:1000}.qms-modal{animation:qmsModalIn .3s ease;background:#fff;background:var(--qms-surface);border-radius:12px;border-radius:var(--qms-radius-lg);box-shadow:0 10px 15px -3px #00000014,0 4px 6px -2px #0000000a;box-shadow:var(--qms-shadow-lg);max-width:780px;width:100%}.qms-modal-sm{max-width:560px}@keyframes qmsModalIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.modal-header{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--qms-border);padding:20px 24px}.modal-header h2{align-items:center;display:flex;font-size:18px;font-weight:600;gap:8px}.modal-close{background:none;border:none;border-radius:6px;color:#94a3b8;color:var(--qms-text-muted);cursor:pointer;padding:4px;transition:all .2s ease;transition:var(--qms-transition)}.modal-close:hover{background:#f8fafc;background:var(--qms-bg);color:#0f172a;color:var(--qms-text)}.modal-form{padding:24px}.form-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,1fr)}.form-group{gap:6px}.form-group.full-width{grid-column:1/-1}.form-group label{color:#64748b;color:var(--qms-text-secondary)}.form-group input[type=date],.form-group input[type=text],.form-group select,.form-group textarea{background:#fff;background:var(--qms-surface);border:1px solid #e2e8f0;border:1px solid var(--qms-border);border-radius:8px;border-radius:var(--qms-radius);box-sizing:border-box;color:#0f172a;color:var(--qms-text);font-family:inherit;font-size:14px;padding:9px 12px;transition:all .2s ease;transition:var(--qms-transition);width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#1a56db;border-color:var(--qms-primary);box-shadow:0 0 0 3px #1a56db1a;outline:none}.form-group textarea{resize:vertical}.file-upload-zone{position:relative}.file-upload-zone input[type=file]{cursor:pointer;inset:0;opacity:0;position:absolute;z-index:2}.file-upload-label{align-items:center;background:#f8fafc;background:var(--qms-bg);border:2px dashed #e2e8f0;border:2px dashed var(--qms-border);border-radius:8px;border-radius:var(--qms-radius);color:#64748b;color:var(--qms-text-secondary);cursor:pointer;display:flex;flex-direction:column;gap:6px;justify-content:center;padding:24px;transition:all .2s ease;transition:var(--qms-transition)}.file-upload-label:hover{background:#e8effc;background:var(--qms-primary-light);border-color:#1a56db;border-color:var(--qms-primary)}.file-upload-label span{font-size:14px;font-weight:500}.file-upload-label small{color:#94a3b8;color:var(--qms-text-muted);font-size:12px}.checkbox-label{align-items:center;cursor:pointer;display:flex!important;flex-direction:row!important;font-size:14px!important;gap:8px!important}.checkbox-label input[type=checkbox]{accent-color:#1a56db;accent-color:var(--qms-primary);height:16px;width:16px}.modal-footer{border-top:1px solid #e2e8f0;border-top:1px solid var(--qms-border);display:flex;gap:10px;justify-content:flex-end;margin-top:20px;padding-top:20px}.audit-log-content{max-height:500px;overflow-y:auto;padding:20px 24px}.empty-audit{color:#94a3b8;color:var(--qms-text-muted);padding:24px;text-align:center}.audit-timeline{display:flex;flex-direction:column;gap:0}.audit-entry{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--qms-border);display:flex;gap:14px;padding:14px 0}.audit-entry:last-child{border-bottom:none}.audit-dot{background:#1a56db;background:var(--qms-primary);border-radius:50%;flex-shrink:0;height:10px;margin-top:4px;width:10px}.audit-info{display:flex;flex-direction:column;gap:3px}.audit-action{color:#0f172a;color:var(--qms-text);font-size:14px;font-weight:600}.audit-detail{color:#64748b;color:var(--qms-text-secondary);font-size:13px}.audit-meta{color:#94a3b8;color:var(--qms-text-muted);display:flex;font-size:12px;gap:16px}@media (max-width:1024px){.detail-grid,.form-grid,.qms-stats-grid{grid-template-columns:repeat(2,1fr)}.qms-category-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}@media (max-width:768px){.qms-content,.qms-header{padding:16px 20px}.qms-nav-tabs{padding:0 16px}.qms-stats-grid{grid-template-columns:1fr 1fr}.detail-grid,.form-grid{grid-template-columns:1fr}.toolbar-left,.toolbar-right{width:100%}.qms-search-box{min-width:100%}.detail-header{align-items:flex-start;flex-direction:column;gap:12px}.detail-actions-top{flex-wrap:wrap}.qms-docs-grid{grid-template-columns:1fr}}@media (max-width:480px){.qms-stats-grid{grid-template-columns:1fr}.stat-number{font-size:22px}.qms-header h1{font-size:18px}.workflow-steps{flex-wrap:wrap;gap:16px}.workflow-step:not(:last-child):after{display:none}}.dispatch-tracker{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);min-height:100vh;padding:16px}.dispatch-header{background:linear-gradient(135deg,#0ea5e9,#0284c7);border-radius:12px;box-shadow:0 4px 16px #0ea5e933;margin-bottom:16px;padding:16px 24px}.dispatch-header h1{align-items:center;color:#fff;display:flex;font-size:22px;font-weight:700;gap:8px;margin:0 0 4px}.dispatch-header p{color:#ffffffe6;font-size:13px;margin:0}.company-dropdown-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;margin:0 auto 16px;max-width:1600px;padding:14px 18px}.dropdown-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.dropdown-actions{display:flex;gap:10px}.add-company-btn,.refresh-companies-btn{border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:all .3s}.refresh-companies-btn{background:#f1f5f9;color:#475569}.refresh-companies-btn:hover{background:#0ea5e9;border-color:#0ea5e9;color:#fff}.add-company-btn{background:linear-gradient(135deg,#10b981,#059669);border-color:#10b981;color:#fff}.add-company-btn:hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 4px 12px #10b9814d;transform:translateY(-2px)}.company-dropdown-container label{color:#1e293b;display:block;font-size:15px;font-weight:600}.company-dropdown{background:#fff;border:2px solid #e2e8f0;border-radius:8px;color:#1e293b;cursor:pointer;font-size:14px;padding:10px 14px;transition:all .3s;width:100%}.company-dropdown:hover{border-color:#0ea5e9}.company-dropdown:focus{border-color:#0ea5e9;box-shadow:0 0 0 3px #0ea5e91a;outline:none}.company-dropdown option{padding:12px}.dispatch-content{margin:0 auto;max-width:1600px}.company-selector-panel{background:#fff;border-radius:16px;box-shadow:0 4px 16px #00000014;height:-webkit-fit-content;height:fit-content;max-height:calc(100vh - 180px);overflow-y:auto;padding:20px}.search-box input{border:2px solid #e2e8f0;border-radius:10px;font-size:14px;margin-bottom:16px;padding:12px 16px;transition:all .3s;width:100%}.search-box input:focus{border-color:#0ea5e9;box-shadow:0 0 0 3px #0ea5e91a;outline:none}.company-list{display:flex;flex-direction:column;gap:12px}.company-card{background:#fff;border:2px solid #e2e8f0;border-radius:12px;cursor:pointer;padding:16px;transition:all .3s}.company-card:hover{background:#f0f9ff;border-color:#0ea5e9;transform:translateX(4px)}.company-card.active{background:linear-gradient(135deg,#0ea5e9,#0284c7);border-color:#0ea5e9;box-shadow:0 4px 16px #0ea5e94d;color:#fff}.company-name{font-size:15px;font-weight:600;margin-bottom:6px}.company-meta{font-size:12px;opacity:.8}.dispatch-details-panel{background:#fff;border-radius:16px;box-shadow:0 4px 16px #00000014;min-height:400px;padding:20px}.company-header{align-items:center;border-bottom:2px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:12px;padding-bottom:10px}.company-header h2{color:#0f172a;font-size:20px;font-weight:700;margin:0}.refresh-btn{background:#f1f5f9;border:2px solid #e2e8f0;border-radius:8px;color:#475569;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .3s}.refresh-btn:hover{background:#0ea5e9;border-color:#0ea5e9;color:#fff}.summary-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-bottom:16px}.stat-card{align-items:center;border-radius:10px;box-shadow:0 2px 8px #0000000f;display:flex;gap:10px;padding:10px 14px;transition:all .2s}.stat-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.stat-card.dispatched{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.stat-card.pallets{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.stat-card.remaining{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.stat-card.total{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff}.stat-icon{font-size:28px;opacity:.9}.stat-content{flex:1 1}.stat-label{font-size:11px;font-weight:600;letter-spacing:.3px;margin-bottom:2px;opacity:.9;text-transform:uppercase}.stat-value{font-size:22px;font-weight:700;line-height:1;margin-bottom:2px}.stat-percent,.stat-sub{font-size:11px;margin-top:2px;opacity:.8}.section{margin-bottom:16px}.section h3{border-bottom:2px solid #e2e8f0;color:#0f172a;font-size:18px;font-weight:700;margin:0 0 16px;padding-bottom:12px}.pallet-table-container{border:2px solid #e2e8f0;border-radius:12px;overflow-x:auto}.pallet-table{background:#fff;border-collapse:collapse;width:100%}.pallet-table thead th{background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff;font-size:13px;font-weight:600;letter-spacing:.5px;padding:14px 16px;text-align:left;text-transform:uppercase}.pallet-table tbody tr{border-bottom:1px solid #f1f5f9;transition:all .2s}.pallet-table tbody tr:hover{background:#f8fafc}.pallet-table tbody td{color:#475569;font-size:14px;padding:14px 16px}.vehicle-no{color:#0f172a;font-weight:600}.pdi-number,.vehicle-no{font-family:JetBrains Mono,Courier New,monospace}.pdi-number{color:#0ea5e9;font-size:15px;font-weight:700}.module-count{font-weight:600}.badge{background:#0ea5e9;border-radius:12px;color:#fff;font-size:13px;padding:4px 10px}.badge.packed-badge{background:#f59e0b}.badge.pending-badge{background:#ef4444}.status-badge{border-radius:20px;font-size:12px;font-weight:700;letter-spacing:.5px;padding:6px 14px;text-transform:uppercase}.status-badge.dispatched{background:#d1fae5;border:1px solid #34d399;color:#065f46}.status-badge.packed{background:#fef3c7;border:1px solid #fbbf24;color:#92400e}.status-badge.pending{background:#fee2e2;border:1px solid #f87171;color:#991b1b}.view-details-btn{background:#f1f5f9;border:1px solid #cbd5e1;border-radius:6px;color:#475569;cursor:pointer;font-size:13px;font-weight:600;padding:6px 14px;transition:all .2s}.view-details-btn:hover{background:#0ea5e9;border-color:#0ea5e9;color:#fff}.packed-summary,.pending-summary{background:#f8fafc;border:2px solid #e2e8f0;border-radius:12px;padding:20px}.packed-count,.pending-count{color:#0f172a;font-size:28px;font-weight:700;margin-bottom:8px}.packed-summary p,.pending-summary p{color:#64748b;font-size:14px;margin:0}.empty-state,.error-state,.loading-state{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:400px;text-align:center}.empty-icon,.error-icon{font-size:80px;margin-bottom:16px;opacity:.6}.empty-state h3,.error-state h3{color:#0f172a;font-size:24px;margin:0 0 8px}.empty-state p,.error-state p{color:#64748b;font-size:15px;margin:0}.error-state button{background:#ef4444;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;margin-top:20px;padding:12px 24px}.error-state button:hover{background:#dc2626}.spinner{animation:spin 1s linear infinite;border:4px solid #e2e8f0;border-radius:50%;border-top-color:#0ea5e9;height:50px;margin-bottom:16px;width:50px}@keyframes spin{to{transform:rotate(1turn)}}.loading-state p{color:#64748b;font-size:15px}.modal-overlay{align-items:center;animation:fadeIn .2s;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{animation:slideUp .3s;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:500px;overflow-y:auto;padding:32px;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{align-items:center;border-bottom:2px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.modal-header h2{color:#0f172a;font-size:24px;font-weight:700;margin:0}.close-btn{align-items:center;background:#f1f5f9;border:none;border-radius:50%;color:#64748b;cursor:pointer;display:flex;font-size:20px;height:36px;justify-content:center;transition:all .2s;width:36px}.close-btn:hover{background:#ef4444;color:#fff}.form-group{margin-bottom:20px}.form-group label{color:#1e293b;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.form-group input{border:2px solid #e2e8f0;border-radius:8px;box-sizing:border-box;color:#1e293b;font-size:14px;padding:12px 16px;transition:all .3s;width:100%}.form-group input:focus{border-color:#0ea5e9;box-shadow:0 0 0 3px #0ea5e91a;outline:none}.modal-actions{border-top:2px solid #e2e8f0;display:flex;gap:12px;justify-content:flex-end;margin-top:28px;padding-top:20px}.cancel-btn{background:#f1f5f9;border:2px solid #e2e8f0;border-radius:8px;color:#475569;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:all .3s}.cancel-btn:hover{background:#e2e8f0}.submit-btn{background:linear-gradient(135deg,#0ea5e9,#0284c7);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:all .3s}.submit-btn:hover:not(:disabled){background:linear-gradient(135deg,#0284c7,#0369a1);box-shadow:0 4px 12px #0ea5e94d;transform:translateY(-2px)}.submit-btn:disabled{cursor:not-allowed;opacity:.6}@media (max-width:768px){.dispatch-header{padding:20px}.dispatch-header h1{font-size:24px}.summary-grid{grid-template-columns:1fr}.dispatch-details-panel{padding:20px}.company-dropdown-container{padding:16px}.dropdown-header{align-items:flex-start;flex-direction:column;gap:12px}.dropdown-actions{width:100%}.add-company-btn,.refresh-companies-btn{flex:1 1;font-size:13px;padding:8px 12px}.pallet-table-container{overflow-x:scroll}.modal-content{padding:24px}.modal-header h2{font-size:20px}}.tab-switcher{border-bottom:2px solid #e2e8f0;display:flex;gap:8px;margin-bottom:24px;padding-bottom:0}.tab-btn{background:#0000;border:none;border-bottom:3px solid #0000;color:#64748b;cursor:pointer;font-size:14px;font-weight:600;margin-bottom:-2px;padding:10px 20px;transition:all .2s}.tab-btn:hover{background:#f0f7ff;border-radius:8px 8px 0 0;color:#3b82f6}.tab-btn.active{background:#eff6ff;border-bottom-color:#2563eb;border-radius:8px 8px 0 0;color:#2563eb}.progress-bar-container{display:flex;flex-direction:column;gap:4px;min-width:140px}.progress-bar{background:#f1f5f9;border-radius:5px;display:flex;height:10px;overflow:hidden}.progress-dispatched{background:linear-gradient(135deg,#22c55e,#16a34a);height:100%;transition:width .5s ease}.progress-packed{background:linear-gradient(135deg,#3b82f6,#2563eb);height:100%;transition:width .5s ease}.progress-text{color:#64748b;font-size:11px;text-align:center}.pdi-number{color:#2563eb}.stat-sub{color:#94a3b8;font-size:11px;margin-top:2px}.clickable-badge{cursor:pointer;transition:transform .15s,box-shadow .15s}.clickable-badge:hover{box-shadow:0 2px 8px #0003;transform:scale(1.1)}.tab-switcher{-webkit-overflow-scrolling:touch;overflow-x:auto;scrollbar-width:thin}.tab-btn{flex-shrink:0;white-space:nowrap}.expanded-row{background:#f0f7ff!important}.expanded-row td{border-bottom-color:#bfdbfe}.recharts-wrapper{font-size:12px}.search-results-scroll{max-height:200px;overflow-y:auto;scrollbar-width:thin}@keyframes pulse-green{0%,to{opacity:1}50%{opacity:.5}}.auto-refresh-active{animation:pulse-green 2s ease-in-out infinite}.data-health-card:hover{box-shadow:0 4px 12px #0000001a}.timeline-date{color:#0f172a;font-family:JetBrains Mono,Courier New,monospace;font-weight:600}.vehicle-badge{background:#e0e7ff;border-radius:4px;color:#3730a3;font-family:monospace;font-size:11px;font-weight:600;padding:2px 8px}@media print{.company-dropdown-container,.dispatch-header,.refresh-btn,.tab-switcher{display:none!important}.dispatch-tracker{background:#fff!important;padding:0}.dispatch-details-panel{box-shadow:none;padding:0}}.rfid-page{background:#fff;box-sizing:border-box;color:#000;font-family:Times New Roman,Times,serif;margin:0 auto;min-height:297mm;padding:10mm 12mm;position:relative;width:210mm}.rfid-header{margin-bottom:4mm}.rfid-logo-row{margin-bottom:1mm;text-align:center}.rfid-logo{height:auto;width:55mm}.rfid-company-block{text-align:center}.rfid-company-name{color:#00f;font-size:12pt;font-weight:700;margin-bottom:1px}.rfid-company-addr{color:#00f;font-size:9pt;font-weight:700;line-height:1.45}.rfid-serial-block{margin:2mm 0 3mm}.rfid-serial-line{margin-bottom:.5mm}.rfid-serial-label{font-weight:700;margin-right:2mm}.rfid-serial-label,.rfid-serial-val{color:#3e3e3e;font-size:9.5pt}.rfid-spec-heading{color:#00f;font-size:9.5pt;font-weight:700;margin-bottom:1mm;text-decoration:underline}.rfid-spec-line{background:#c00;border:none;height:2px;margin-bottom:2mm}.rfid-spec-table{border-collapse:collapse;font-size:9pt;margin-bottom:3mm;width:100%}.rfid-spec-table th{border:.5pt solid #000;color:#ffc600;font-size:9pt;font-weight:700;padding:2pt 4pt;text-align:left}.rfid-col-sno{text-align:center;width:7%}.rfid-col-spec{width:58%}.rfid-col-val{width:35%}.rfid-spec-table td{border:.5pt solid #000;color:#000;font-size:9pt;line-height:1.35;padding:1.5pt 4pt}.rfid-cell-sno{text-align:center}.rfid-iv-heading{color:#00f;font-size:9.5pt;font-weight:700;margin:2mm 0;text-decoration:underline}.rfid-graph-box{align-items:center;display:flex;height:82mm;justify-content:center;width:100%}.rfid-graph-img{max-height:82mm;max-width:100%;object-fit:contain}.rfid-graph-empty{color:#999;font-size:11pt}@media print{.rfid-page{box-shadow:none;margin:0;page-break-after:always}}.rfid-page *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.bulk-rfid-container{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin:20px auto;max-width:1200px;padding:30px}.bulk-rfid-container h2{color:#333;font-size:28px;margin-bottom:30px;text-align:center}.rfid-defaults-section{background:#f0f7ff;border:1px solid #bfdbfe;border-radius:10px;margin-bottom:25px;padding:20px}.rfid-defaults-section h3{color:#1e3a8a;font-size:16px;margin:0 0 15px}.rfid-defaults-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.rfid-default-field label{color:#475569;display:block;font-size:11px;font-weight:600;letter-spacing:.3px;margin-bottom:4px;text-transform:uppercase}.rfid-default-field input{border:1px solid #cbd5e1;border-radius:6px;box-sizing:border-box;font-size:13px;padding:8px 10px;transition:border-color .2s;width:100%}.rfid-default-field input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626;outline:none}.bulk-rfid-container .upload-section{grid-gap:30px;display:grid;gap:30px;grid-template-columns:1fr 1fr;margin-bottom:30px}.bulk-rfid-container .upload-box{background:#f9f9f9;border:2px dashed #ddd;border-radius:8px;padding:25px}.bulk-rfid-container .upload-box h3{color:#1e3a8a;font-size:20px;margin-bottom:10px;margin-top:0}.bulk-rfid-container .file-input{border:1px solid #ddd;border-radius:4px;cursor:pointer;display:block;font-size:14px;padding:12px;width:100%}.bulk-rfid-container .success-msg{background:#d4edda;border:1px solid #c3e6cb;border-radius:4px;color:#155724;font-size:14px;margin-top:15px;padding:12px}.bulk-rfid-container .generate-section{margin:30px 0;text-align:center}.bulk-rfid-container .generate-btn{background:#1e3a8a;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:18px;padding:15px 40px;transition:all .3s}.bulk-rfid-container .generate-btn:hover:not(:disabled){background:#1e40af;box-shadow:0 4px 12px #1e3a8a4d;transform:translateY(-2px)}.bulk-rfid-container .generate-btn:disabled{background:#ccc;cursor:not-allowed}.bulk-rfid-container .progress-bar{background:#e0e0e0;border-radius:15px;height:30px;margin-top:20px;overflow:hidden;width:100%}.bulk-rfid-container .progress-fill{align-items:center;background:linear-gradient(90deg,#1e3a8a,#3b82f6);color:#fff;display:flex;font-weight:700;height:100%;justify-content:center;transition:width .3s}.bulk-rfid-container .data-table-section{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin:24px 0;padding:20px}.bulk-rfid-container .table-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.bulk-rfid-container .table-header h3{color:#1e3a8a;font-size:18px;margin:0}.bulk-rfid-container .btn-clear{background:#dc2626;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px}.bulk-rfid-container .table-container{overflow-x:auto}.bulk-rfid-container .data-table{border-collapse:collapse;font-size:14px;width:100%}.bulk-rfid-container .data-table th{background:#f8fafc;border-bottom:2px solid #e5e7eb;color:#374151;font-weight:600;padding:12px 8px;text-align:left}.bulk-rfid-container .data-table td{border-bottom:1px solid #e5e7eb;padding:10px 8px}.bulk-rfid-container .data-table tbody tr:hover{background:#f8fafc}.bulk-rfid-container .btn-cancel,.bulk-rfid-container .btn-delete,.bulk-rfid-container .btn-edit,.bulk-rfid-container .btn-save{border:none;border-radius:4px;cursor:pointer;font-size:14px;margin:0 4px;padding:6px 10px;transition:all .2s}.bulk-rfid-container .btn-edit{background:#3b82f6;color:#fff}.bulk-rfid-container .btn-delete{background:#ef4444;color:#fff}.bulk-rfid-container .btn-save{background:#10b981;color:#fff;font-weight:700}.bulk-rfid-container .btn-cancel{background:#6b7280;color:#fff;font-weight:700}@media (max-width:768px){.bulk-rfid-container{margin:10px;padding:15px}.bulk-rfid-container h2{font-size:22px}.bulk-rfid-container .upload-section{gap:15px;grid-template-columns:1fr}.rfid-defaults-grid{grid-template-columns:1fr 1fr}.bulk-rfid-container .generate-btn{font-size:16px;padding:14px;width:100%}.bulk-rfid-container .data-table{font-size:12px}}@media (max-width:480px){.rfid-defaults-grid{grid-template-columns:1fr}}.login-container{align-items:center;background:#0f172a;display:flex;justify-content:center;min-height:100vh;overflow:hidden;padding:20px;position:relative}.login-container:before{background-image:radial-gradient(circle at 25% 25%,#0ea5e90d 0,#0000 50%),radial-gradient(circle at 75% 75%,#0ea5e908 0,#0000 50%);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.login-box{animation:loginFadeIn .4s ease;background:#fff;border-radius:16px;box-shadow:0 25px 50px -12px #00000040;max-width:420px;padding:40px;position:relative;width:100%;z-index:1}@keyframes loginFadeIn{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.login-header{margin-bottom:32px;text-align:center}.login-header h1{color:#0f172a;font-family:Inter,sans-serif;font-size:24px;font-weight:800;letter-spacing:-.5px;margin-bottom:6px}.login-header h2{color:#64748b;font-size:14px;font-weight:400;margin:0}.login-form{margin-top:24px}.login-form .form-group{margin-bottom:18px}.login-form label{color:#334155;display:block;font-family:Inter,sans-serif;font-size:13px;font-weight:600;margin-bottom:6px}.login-form input{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;color:#1e293b;font-family:Inter,sans-serif;font-size:14px;outline:none;padding:11px 14px;transition:all .2s ease;width:100%}.login-form input:focus{background:#fff;border-color:#0ea5e9;box-shadow:0 0 0 3px #0ea5e91a}.login-form input::placeholder{color:#94a3b8}.error-message{align-items:center;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;display:flex;font-size:13px;font-weight:500;gap:8px;margin-bottom:16px;padding:10px 14px}.btn-login{background:#0ea5e9;border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:Inter,sans-serif;font-size:14px;font-weight:600;margin-top:8px;padding:12px;transition:all .2s ease;width:100%}.btn-login:hover:not(:disabled){background:#0284c7;box-shadow:0 4px 12px #0ea5e94d}.btn-login:active:not(:disabled){transform:scale(.99)}.btn-login:disabled{cursor:not-allowed;opacity:.6}.user-info-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin-top:24px;padding:18px}.user-info-box h3{color:#334155;font-size:13px;font-weight:600;letter-spacing:.5px;margin-bottom:12px;text-transform:uppercase}.credential-item{background:#fff;border:1px solid #e2e8f0;border-left:3px solid #0ea5e9;border-radius:6px;margin-bottom:8px;padding:10px 12px}.credential-item:last-child{border-left-color:#10b981;margin-bottom:0}.credential-item strong{color:#1e293b;display:block;font-size:13px;margin-bottom:4px}.credential-item p{color:#64748b;font-size:12px;margin:2px 0}.credential-item code{background:#f1f5f9;border-radius:4px;color:#0ea5e9;font-family:JetBrains Mono,Courier New,monospace;font-size:12px;font-weight:600;padding:2px 6px}.badge{border-radius:4px;display:inline-block;font-size:10px;font-weight:700;letter-spacing:.5px;margin-top:4px;padding:3px 8px;text-transform:uppercase}.badge-admin{background:#0f172a;color:#fff}.badge-user{background:#10b981;color:#fff}.login-footer{border-top:1px solid #f1f5f9;margin-top:24px;padding-top:16px;text-align:center}.login-footer p{color:#94a3b8;font-size:12px;margin:0}@media (max-width:768px){.login-container{align-items:flex-start;padding:60px 16px 16px}.login-box{border-radius:12px;padding:28px 22px}.login-header h1{font-size:22px}.login-header h2{font-size:13px}.login-form input{font-size:16px;padding:12px}.btn-login{padding:13px}}@media (max-width:480px){.login-container{padding:40px 12px 12px}.login-box{padding:24px 18px}.login-header h1{font-size:20px}}.App{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}.App,.sidebar{display:flex;height:100vh}.sidebar{background:#0f172a;border-right:1px solid #1e293b;color:#94a3b8;flex-direction:column;left:0;position:fixed;top:0;transition:width .25s ease,left .25s ease;width:260px;z-index:1000}.sidebar.collapsed{width:72px}.sidebar-header{align-items:center;border-bottom:1px solid #1e293b;display:flex;justify-content:space-between;min-height:64px;padding:20px 20px 16px}.sidebar-header h2{color:#f1f5f9;font-size:17px;font-weight:700;letter-spacing:.5px;margin:0;white-space:nowrap}.toggle-btn{align-items:center;background:#0000;border:1px solid #334155;border-radius:6px;color:#94a3b8;cursor:pointer;display:flex;flex-shrink:0;font-size:16px;height:32px;justify-content:center;transition:all .2s ease;width:32px}.toggle-btn:hover{background:#1e293b;border-color:#475569;color:#e2e8f0}.user-role-badge{align-items:center;background:#1e293b;border:1px solid #334155;border-radius:8px;display:flex;gap:10px;margin:12px 12px 4px;padding:14px 16px}.user-role-badge.collapsed{justify-content:center;margin:8px;padding:10px}.user-role-badge .role-icon{align-items:center;background:#0ea5e9;border-radius:6px;color:#fff;display:flex;flex-shrink:0;font-size:13px;font-weight:700;height:32px;justify-content:center;width:32px}.user-role-badge .role-text{color:#cbd5e1;font-size:11px;font-weight:600;letter-spacing:.8px;text-transform:uppercase}.user-role-badge .user-name{color:#f1f5f9;font-size:13px;font-weight:500;margin-top:2px}.sidebar-menu{display:flex;flex:1 1;flex-direction:column;gap:2px;list-style:none;margin:0;overflow-y:auto;padding:8px}.sidebar-menu::-webkit-scrollbar{width:4px}.sidebar-menu::-webkit-scrollbar-track{background:#0000}.sidebar-menu::-webkit-scrollbar-thumb{background:#334155;border-radius:4px}.sidebar-menu li{align-items:center;border-left:3px solid #0000;border-radius:6px;color:#94a3b8;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:12px;padding:10px 12px;transition:all .15s ease}.sidebar-menu li:hover{background:#1e293b;color:#e2e8f0}.sidebar-menu li.active{background:#0ea5e914;border-left-color:#0ea5e9;color:#38bdf8}.sidebar-menu li .icon{align-items:center;display:flex;font-size:18px;justify-content:center;min-width:24px;text-align:center}.sidebar-menu li .label{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-menu li.logout-btn{border-radius:6px;border-top:1px solid #1e293b;color:#ef4444;margin-top:auto}.sidebar-menu li.logout-btn:hover{background:#ef444414;border-left-color:#0000;color:#f87171}.main-content{background:#f8fafc;height:100vh;margin-left:260px;overflow-y:auto;transition:all .25s ease;width:calc(100% - 260px)}.main-content.expanded{margin-left:72px;width:calc(100% - 72px)}.main-content::-webkit-scrollbar{width:6px}.main-content::-webkit-scrollbar-track{background:#f1f5f9}.main-content::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.main-content::-webkit-scrollbar-thumb:hover{background:#94a3b8}.section-placeholder{align-items:center;display:flex;flex-direction:column;height:100vh;justify-content:center;text-align:center}.section-placeholder h2{color:#1e293b;font-size:28px;font-weight:700;margin-bottom:8px}.section-placeholder p{color:#64748b;font-size:15px}@media (max-width:1024px){.sidebar{width:220px}.main-content{margin-left:220px;width:calc(100% - 220px)}}@media (max-width:768px){.sidebar{height:100vh;left:-280px;position:fixed;top:0;transition:left .25s ease;width:280px;z-index:1000}.sidebar.mobile-open{left:0}.sidebar.collapsed{left:-280px;overflow:hidden;width:0}.main-content{padding-top:56px}.main-content,.main-content.expanded{margin-left:0;width:100%}.toggle-btn{background:#0f172a;border:1px solid #334155;border-radius:8px;box-shadow:0 2px 8px #0003;color:#e2e8f0;left:12px;padding:10px;position:fixed;top:12px;z-index:1001}.sidebar-menu li{padding:12px 14px}.sidebar-menu li .label{font-size:14px}.sidebar-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0009;display:none;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:999}.sidebar-overlay.active{display:block}}@media (max-width:480px){.sidebar{left:-100%;width:100%}.sidebar.mobile-open{left:0}.main-content{padding:56px 8px 8px}}:root{--primary:#0ea5e9;--primary-dark:#0284c7;--primary-light:#e0f2fe;--success:#10b981;--success-light:#d1fae5;--danger:#ef4444;--danger-light:#fee2e2;--warning:#f59e0b;--warning-light:#fef3c7;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #00000012,0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #00000014,0 4px 6px -4px #00000008;--font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box;margin:0;padding:0}body,html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f8fafc;background:var(--gray-50);color:#1e293b;color:var(--gray-800);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font);overflow-x:hidden;width:100%}@media (max-width:768px){*{-webkit-tap-highlight-color:transparent}button,input,select,textarea{-webkit-appearance:none;appearance:none}}.content-section{background:#fff;border:1px solid #e2e8f0;border:1px solid var(--gray-200);border-radius:12px;border-radius:var(--radius-lg);box-shadow:0 1px 2px #0000000d;box-shadow:var(--shadow-sm);padding:28px}.section-header{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--gray-200);margin-bottom:24px;padding-bottom:16px}.section-header h2{color:#0f172a;color:var(--gray-900);font-size:22px;font-weight:700;margin-bottom:4px}.section-header p{color:#64748b;color:var(--gray-500);font-size:14px;font-weight:400}.input-section{background:#f8fafc;background:var(--gray-50);border:1px solid #e2e8f0;border:1px solid var(--gray-200);border-radius:8px;border-radius:var(--radius-md);margin-bottom:24px;padding:20px}.basic-params h3,.limits-section h3,.module-selection h3{color:#1e293b;color:var(--gray-800);font-size:15px;font-weight:600;margin-bottom:12px}.form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-bottom:12px}.form-group{display:flex;flex-direction:column}.form-group label{color:#475569;color:var(--gray-600);font-size:13px;font-weight:500;margin-bottom:6px}.form-group input,.form-group select,.module-dropdown{background:#fff;border:1px solid #cbd5e1;border:1px solid var(--gray-300);border-radius:6px;border-radius:var(--radius-sm);color:#1e293b;color:var(--gray-800);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font);font-size:14px;padding:9px 12px;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus,.module-dropdown:focus{border-color:#0ea5e9;border-color:var(--primary);box-shadow:0 0 0 3px #0ea5e91a;outline:none}.form-group input::placeholder{color:#94a3b8;color:var(--gray-400)}.module-info,.specs-info{background:#fff;border:1px solid #e2e8f0;border:1px solid var(--gray-200);border-left:3px solid var(--primary);border-radius:8px;border-radius:var(--radius-md);margin-top:12px;padding:14px 16px}.module-info h4,.specs-info h5{color:#1e293b;color:var(--gray-800);font-size:14px;font-weight:600;margin-bottom:8px}.info-grid,.specs-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.info-grid div,.specs-grid div{color:#475569;color:var(--gray-600);font-size:13px}.limits-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.limit-group{background:#fff;border:1px solid #e2e8f0;border:1px solid var(--gray-200);border-radius:6px;border-radius:var(--radius-sm);padding:14px}.limit-group h4{color:#0ea5e9;color:var(--primary);font-size:12px;font-weight:700;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.limit-inputs{display:flex;gap:8px}.limit-inputs .form-group{flex:1 1}.action-buttons{display:flex;gap:12px;justify-content:center;margin-top:20px}.export-btn,.generate-btn{border:none;border-radius:6px;border-radius:var(--radius-sm);cursor:pointer;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font);font-size:14px;font-weight:600;padding:10px 28px;transition:all .2s ease}.generate-btn{background:#0ea5e9;background:var(--primary);color:#fff}.generate-btn:hover{background:#0284c7;background:var(--primary-dark);box-shadow:0 2px 8px #0ea5e940}.generate-btn:disabled{cursor:not-allowed;opacity:.5}.export-btn{background:#10b981;background:var(--success);color:#fff}.export-btn:hover{background:#059669;box-shadow:0 2px 8px #10b98140}.table-container{border:1px solid #e2e8f0;border:1px solid var(--gray-200);border-radius:8px;border-radius:var(--radius-md);overflow-x:auto}.results-table{background:#fff;border-collapse:collapse;width:100%}.results-table thead{background:#0f172a;background:var(--gray-900);color:#fff}.results-table th{font-size:12px;font-weight:600;letter-spacing:.5px;padding:12px 14px;text-align:left;text-transform:uppercase}.results-table td{border-bottom:1px solid #f1f5f9;border-bottom:1px solid var(--gray-100);color:#475569;color:var(--gray-600);font-size:13px;padding:10px 14px}.results-table tbody tr:hover{background:#f8fafc;background:var(--gray-50)}.results-table tbody tr:last-child td{border-bottom:none}.loading{align-items:center;color:#64748b;color:var(--gray-500);display:flex;font-size:14px;gap:8px;justify-content:center;padding:40px}@media (max-width:768px){.content-section{border-radius:8px;border-radius:var(--radius-md);padding:16px}.section-header{margin-bottom:16px;padding-bottom:12px}.section-header h2{font-size:18px}.input-section{padding:14px}.form-row,.limits-grid{grid-template-columns:1fr}.form-group input,.form-group select,.module-dropdown{font-size:16px;padding:12px}.action-buttons,.limit-inputs{flex-direction:column}.export-btn,.generate-btn{padding:14px;width:100%}.table-container{border-left:none;border-radius:0;border-right:none;margin:0 -16px}.results-table td,.results-table th{font-size:12px;padding:8px 10px}}@media (max-width:480px){.content-section{padding:12px}.section-header h2{font-size:16px}.form-group label{font-size:12px}}
/*# sourceMappingURL=main.a37c7dfb.css.map*/