*{margin:0;padding:0;box-sizing:border-box}html,body{margin:0;padding:0;height:100%;width:100%}#root{height:100%;width:100%}:root{--primary: #2563eb;--primary-dark: #1e40af;--secondary: #64748b;--bg-body: #f8fafc;--card-bg: #ffffff;--border: #e2e8f0;--surface: #ffffff;--surface-2: #f8fafc;--text: #0f172a;--text-muted: #475569;--row-hover: #f1f5f9;--magic-gradient: linear-gradient(135deg, #8b5cf6 0%, #d946ef 100%)}body.dark{--primary: #60a5fa;--primary-dark: #1d4ed8;--secondary: #9ca3af;--bg-body: #020617;--card-bg: #020617;--border: #1f2937;--surface: #0b1220;--surface-2: #0f172a;--text: #e5e7eb;--text-muted: #9ca3af;--row-hover: rgba(255,255,255,.04);--magic-gradient: linear-gradient(135deg, #4f46e5 0%, #ec4899 50%, #f97316 100%)}body{font-family:Plus Jakarta Sans,sans-serif;background:var(--bg-body);margin:0;color:#0f172a;height:100vh;overflow:hidden}body.dark{color:#e5e7eb}#root{display:flex;height:100%;width:100%;overflow:hidden}aside{width:260px;background:#fff;border-right:1px solid var(--border);padding:20px;display:flex;flex-direction:column;z-index:10}body.dark aside{background:#020617;border-right-color:var(--border)}.brand{font-size:20px;font-weight:800;color:var(--primary);margin-bottom:30px;display:flex;align-items:center;gap:10px;justify-content:space-between}.brand-left{display:inline-flex;align-items:center;gap:10px}.theme-toggle-btn{border:1px solid var(--border);background:#f1f5f9;border-radius:999px;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--secondary);font-size:14px;transition:background .2s,color .2s,border-color .2s,transform .1s}.theme-toggle-btn:hover{background:#e5e7eb;color:var(--primary);border-color:var(--primary);transform:translateY(-1px)}body.dark .theme-toggle-btn{background:#020617;border-color:#1f2937;color:#e5e7eb}body.dark .theme-toggle-btn:hover{background:#111827}.module-list{flex-grow:1;overflow-y:auto}.nav-item{padding:10px;margin-bottom:5px;border-radius:8px;font-size:13px;color:var(--secondary);cursor:pointer;display:flex;align-items:center;gap:10px;transition:all .2s}.nav-item:hover{background:#eff6ff;color:var(--primary)}body.dark .nav-item:hover{background:#60a5fa1a;color:var(--primary)}.nav-item.active{background:#eff6ff;color:var(--primary);font-weight:600}body.dark .nav-item.active{background:#60a5fa26;color:var(--primary);font-weight:600}.sidebar-section-title{font-size:11px;font-weight:700;color:#94a3b8;margin-bottom:10px}body.dark .sidebar-section-title{color:#64748b}.sidebar-empty-message{text-align:center;padding:20px;color:#cbd5e1;font-size:12px;font-style:italic}body.dark .sidebar-empty-message{color:#475569}.add-box{background:#f1f5f9;padding:15px;border-radius:12px;border:1px dashed #cbd5e1;margin-top:auto}body.dark .add-box{background:#020617;border-color:#1f2937}main{flex:1;padding:30px 40px;overflow-y:auto}.card{background:#fff;border-radius:16px;border:1px solid var(--border);padding:24px;margin-bottom:24px;box-shadow:0 2px 4px #00000005;animation:slideIn .3s ease-out;position:relative}body.dark .card{background:#020617;border-color:var(--border);box-shadow:none}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid #f1f5f9}.revise-count-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--primary);background:#eff6ff;padding:4px 8px;border-radius:8px;border:1px solid #bfdbfe}.revise-count-badge i{font-size:10px}.card-title{font-weight:700;font-size:16px;display:flex;align-items:center;gap:10px}.icon-box{width:32px;height:32px;background:#eff6ff;color:var(--primary);border-radius:8px;display:flex;align-items:center;justify-content:center}label{display:block;font-size:11px;font-weight:700;color:var(--secondary);text-transform:uppercase;margin-bottom:6px;letter-spacing:.5px}input,textarea,select{width:100%;padding:12px;border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:14px;box-sizing:border-box;background:#fff;transition:border .2s,background .2s,color .2s}body.dark input,body.dark textarea,body.dark select{background:#020617;color:#e5e7eb;border-color:#1f2937}body.dark label{color:#9ca3af}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.btn{border:none;padding:10px 16px;border-radius:8px;font-weight:600;cursor:pointer;font-size:13px;display:inline-flex;align-items:center;gap:8px;transition:all .2s}.btn-primary{background:var(--primary);color:#fff;width:100%;justify-content:center}.btn-primary:hover{background:var(--primary-dark)}.btn-magic{background:var(--magic-gradient);color:#fff;width:100%;justify-content:center;padding:14px}.btn-magic:hover{opacity:.9;transform:translateY(-1px)}.btn:disabled,.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none;pointer-events:none}.btn-magic:disabled,.btn-magic[disabled]{background:var(--border);color:var(--secondary)}.btn-outline{background:#fff;border:1px solid var(--border);color:var(--secondary)}.btn-outline:hover{border-color:var(--primary);color:var(--primary)}body.dark .btn-outline{background:transparent;border-color:#374151;color:#e5e7eb}body.dark .btn-outline:hover{border-color:var(--primary);color:var(--primary)}.btn-pdf-download{background:#b91c1c;color:#fff;border:none;text-decoration:none}.btn-pdf-download:hover{background:#991b1b;color:#fff}.bottom-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:10001;display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;font-size:13px;font-weight:600;max-width:calc(100vw - 32px);box-shadow:0 10px 25px #00000029;animation:toastSlideIn .2s ease-out}.bottom-toast-success{color:#fff;background:#16a34a;border:1px solid #15803d}.bottom-toast-error{color:#fff;background:#dc2626;border:1px solid #b91c1c}body.dark .bottom-toast-success{background:#15803d;border-color:#166534}body.dark .bottom-toast-error{background:#b91c1c;border-color:#991b1b}@keyframes toastSlideIn{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}.settings-container{margin-top:15px;border-top:1px solid #f1f5f9;padding-top:15px;display:none}.settings-container.active{display:block;animation:slideIn .2s}.settings-toggle-btn{background:none;border:none;color:var(--secondary);cursor:pointer;font-size:16px;transition:transform .3s}.settings-toggle-btn:hover{color:var(--primary);transform:rotate(90deg)}.drag-handle-btn{background:none;border:none;color:var(--secondary);cursor:grab;padding:4px;font-size:14px}.drag-handle-btn:active{cursor:grabbing}.module-description-row{margin-top:-8px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;color:var(--secondary);font-size:12px}.module-order-box{display:inline-flex;align-items:center;gap:6px;color:var(--secondary);font-size:12px}.module-order-input{width:42px;min-width:42px;padding:6px 8px;text-align:center;font-size:12px;border-radius:6px}.revise-bar{display:flex;gap:10px;background:#f8fafc;padding:8px;border:1px solid var(--border);border-radius:10px;margin-bottom:15px}.revise-input{flex-grow:1;border:none;background:transparent;font-size:13px;padding:5px}.revise-input:focus{box-shadow:none;border:none}.revise-btn{background:#fff;border:1px solid var(--border);color:#0f172a;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.revise-btn:hover{border-color:var(--primary);color:var(--primary)}body.dark .revise-bar{background:#020617;border-color:#1f2937}body.dark .revise-input{color:#e5e7eb}body.dark .revise-btn{background:#020617;border-color:#374151;color:#e5e7eb}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:var(--secondary);padding:10px;border-bottom:1px solid var(--border);font-size:11px;text-transform:uppercase;font-weight:700}td{padding:12px 10px;border-bottom:1px solid #f1f5f9;color:#334155}.entry-new-row td{background:#ecfdf3}.entry-new-row td[contenteditable=true]:hover{background:#dcfce7}body.dark th{color:#9ca3af;border-bottom-color:#1f2937}body.dark td{border-bottom-color:#111827;color:#e5e7eb}body.dark .entry-new-row td{background:#22c55e24}body.dark .entry-new-row td[contenteditable=true]:hover{background:#22c55e33}body.dark .card table td,body.dark .card table td div,body.dark .card table td span,body.dark .card table td p{color:var(--text)!important}body.dark .card table th{color:var(--text-muted)!important}body.dark .card table a{color:var(--primary)!important}body.dark .card table button i.fa-pen{color:#3b82f6!important}body.dark .card table button i.fa-trash{color:#ef4444!important}body.dark td[contenteditable=true]:hover{background:#ffffff0a}td[contenteditable=true]{cursor:text}td[contenteditable=true]:hover{background:#f8fafc}tr:last-child td{border:none}.tag{padding:2px 8px;border-radius:4px;font-size:10px;font-weight:700;text-transform:uppercase}.tag-blue{background:#eff6ff;color:var(--primary)}.tag-orange{background:#fff7ed;color:#ea580c}.upload-mini-btn{width:28px;height:28px;border-radius:6px;border:1px solid var(--border);background:#fff;color:var(--secondary);display:flex;align-items:center;justify-content:center;cursor:pointer}.upload-mini-btn:hover{border-color:var(--primary);color:var(--primary)}.ai-result-area{display:none;margin-top:20px}.ai-result-area.active{display:block;animation:slideIn .3s}.rad-row{display:grid;grid-template-columns:1.5fr 1.5fr 1.5fr 1fr auto;gap:15px;background:#fff;padding:15px;border:1px solid var(--border);border-radius:10px;margin-bottom:10px;align-items:start}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:15px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:15px}.mb-10{margin-bottom:10px}.mb-15{margin-bottom:15px}.mb-20{margin-bottom:20px}.mt-10{margin-top:10px}.mt-15{margin-top:15px}.text-center{text-align:center}.flex{display:flex}.flex-center{display:flex;align-items:center;justify-content:center}.gap-10{gap:10px}.gap-15{gap:15px}body.dark .manual-add-row-btn{border-color:var(--primary)!important;color:var(--primary)!important}body.dark .manual-add-area{border-top-color:#1f2937!important}body.dark .manual-add-form-wrapper{background:var(--surface-2)!important;border-color:#374151!important}body.dark .manual-add-file-cell{background:var(--surface)!important;border-color:#374151!important}body.dark .manual-add-form-wrapper input[style]{border-color:#374151!important;background:var(--surface)!important;color:var(--text)!important}body.dark .feedback-text-display,body.dark .feedback-text-area{background:var(--surface-2)!important;border-color:#475569!important;color:var(--text)!important}.empty-section-note{padding:14px 16px;text-align:center;color:var(--secondary);font-size:14px;background:#f8fafc;border-radius:8px;border:1px dashed #e2e8f0}body.dark .empty-section-note{background:linear-gradient(180deg,#0f172aeb,#020617fa)!important;border:1px dashed #334155!important;color:#cbd5e1!important;box-shadow:inset 0 0 0 1px #60a5fa1f}body.dark .empty-section-note i{color:var(--primary)!important}.edit-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.edit-modal-dialog{background:#fff;border-radius:12px;padding:24px;max-width:560px;width:90%;max-height:90vh;overflow:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;position:relative;border:1px solid var(--border)}body.dark .edit-modal-dialog{background:var(--surface-2);box-shadow:0 20px 60px #0009;border-color:#1f2937}.edit-modal-title{font-size:18px;font-weight:600;color:var(--text);margin:0 0 20px}.edit-modal-body{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}body.dark .edit-modal-body label{color:var(--text-muted)!important}body.dark .edit-modal-body img{border-color:#374151!important}.edit-modal-footer{display:flex;gap:12px;justify-content:flex-end}.edit-modal-cancel-btn{padding:10px 18px;font-size:14px;background:var(--surface);border:1px solid var(--border);color:var(--text-muted)}.edit-modal-cancel-btn:hover{border-color:var(--primary);color:var(--primary)}body.dark .edit-modal-cancel-btn{background:#111827;border-color:#374151;color:#e5e7eb}body.dark .edit-modal-cancel-btn:hover{border-color:var(--primary);color:var(--primary)}.edit-modal-save-btn{padding:10px 18px;font-size:14px;width:auto}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .2s ease-in-out}.modal-dialog{background:#fff;border-radius:12px;padding:30px;max-width:450px;width:90%;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;animation:slideUp .3s ease-out;position:relative;border:1px solid var(--border)}body.dark .modal-dialog{background:var(--surface-2);box-shadow:0 20px 60px #000000b3;border-color:#374151}.modal-content{text-align:center;margin-bottom:20px}.modal-icon-circle{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;animation:scaleIn .4s ease-out}body.dark .modal-icon-circle{background-color:#3b82f61a!important;border-color:#3b82f64d!important}.modal-title{font-size:20px;font-weight:600;color:var(--text);margin:0 0 8px}.modal-description{font-size:14px;color:var(--text-muted);margin:0;line-height:1.6}.modal-buttons{display:flex;gap:12px;margin-top:8px}.modal-buttons.two-buttons{flex-direction:row}.modal-buttons.single-button{flex-direction:column}.modal-cancel-btn,.modal-accept-btn,.modal-single-btn{padding:12px;font-size:15px;font-weight:500;justify-content:center}.modal-buttons.two-buttons .modal-cancel-btn,.modal-buttons.two-buttons .modal-accept-btn{flex:1}.modal-buttons.single-button .modal-cancel-btn,.modal-buttons.single-button .modal-accept-btn,.modal-single-btn{width:100%}.modal-cancel-btn{background:var(--surface);border:1px solid var(--border);color:var(--text-muted)}.modal-cancel-btn:hover{border-color:var(--primary);color:var(--primary)}body.dark .modal-cancel-btn{background:#111827;border-color:#374151;color:#e5e7eb}body.dark .modal-cancel-btn:hover{border-color:var(--primary);color:var(--primary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes scaleIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}
