:root,body,button,input,select,textarea{font-family:Segoe UI,Arial,sans-serif}body{margin:0}.app-shell{min-height:100vh;background:#f3f6fb;color:#1f2937;display:grid;grid-template-columns:260px 1fr}.sidebar{background:linear-gradient(180deg,#0f172a,#111827);color:#e5e7eb;padding:24px 14px;border-right:1px solid #1f2937}.brand{font-size:20px;font-weight:700;letter-spacing:.2px;margin-bottom:4px}.brand-sub{color:#94a3b8;font-size:13px;margin-bottom:24px}.menu{display:grid;gap:16px}.menu-group{display:grid;gap:8px}.menu-group-title{font-size:11px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:#94a3b8;padding:0 8px}.menu-btn{display:flex;align-items:center;gap:10px;width:100%;border:0;border-radius:10px;padding:11px 12px;background:transparent;color:#cbd5e1;cursor:pointer;text-align:left;font-size:14px}.menu-btn:hover{background:#94a3b81f}.menu-btn.active{background:linear-gradient(90deg,#2563eb,#1d4ed8);color:#fff}.content{padding:28px;min-width:0}.page-title{margin:0 0 4px;font-size:24px;font-weight:700}.page-subtitle{margin:0 0 20px;color:#64748b}.card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:18px;box-shadow:0 8px 24px #0f172a0f;min-width:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.full{grid-column:1 / -1}.field{display:grid;gap:6px}.field label{font-size:13px;font-weight:600;color:#334155}.required-label,.required-mark{color:#dc2626;font-weight:700}.field input,.field select,.field textarea,.search-input{width:100%;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px;font-size:14px;outline:none;background:#fff}.field input:focus,.field select:focus,.field textarea:focus,.search-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.report-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin-bottom:12px}.report-toolbar .search-input{flex:1;min-width:220px}.excel-export-btn{flex:0 0 auto;border:0;border-radius:10px;padding:10px 16px;background:#15803d;color:#fff;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}.excel-export-btn:hover{background:#166534}.excel-export-btn:disabled{cursor:not-allowed;opacity:.5}.report-total{display:flex;align-items:center;gap:12px;min-width:180px;padding:9px 14px;border:1px solid #bfdbfe;border-radius:10px;background:#eff6ff;color:#1e3a8a}.report-total span{font-size:13px;font-weight:600}.report-total strong{margin-left:auto;font-size:20px;line-height:1}.field input[disabled]{background:#f8fafc;color:#475569}.btn-primary{border:0;border-radius:10px;padding:10px 14px;background:linear-gradient(90deg,#2563eb,#1d4ed8);color:#fff;font-weight:600;cursor:pointer}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{border:1px solid #cbd5e1;border-radius:7px;padding:5px 9px;background:#fff;color:#334155;font-size:12px;cursor:pointer}.btn-secondary:hover{background:#f1f5f9}.btn-danger{border:0;border-radius:10px;padding:10px 14px;background:#dc2626;color:#fff;font-weight:600;cursor:pointer}.btn-danger:hover{background:#b91c1c}.btn-danger:disabled{opacity:.6;cursor:not-allowed}.alert-error{color:#b91c1c;margin-bottom:10px}.alert-success{color:#166534;margin-bottom:10px}.search-results{border:1px solid #e2e8f0;border-radius:10px;margin-top:6px;max-height:180px;overflow:auto;background:#fff}.search-option{width:100%;border:0;border-bottom:1px solid #f1f5f9;background:#fff;padding:8px 10px;text-align:left;cursor:pointer}.search-option:hover{background:#eff6ff}.company-layout{display:grid;grid-template-columns:1fr 1fr;gap:16px}.list-panel{max-height:420px;overflow:auto;border:1px solid #e2e8f0;border-radius:10px;padding:8px}.list-item{padding:7px 4px;border-bottom:1px solid #f1f5f9}.list-title{font-weight:600}.list-subtitle{font-size:12px;color:#64748b}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:9999}.modal-card{width:min(460px,calc(100vw - 32px));background:#fff;border-radius:16px;border:1px solid #e2e8f0;padding:22px 20px 16px;box-shadow:0 18px 40px #02061733;position:relative}.modal-close{position:absolute;right:10px;top:10px;border:0;background:#f1f5f9;color:#334155;width:28px;height:28px;border-radius:999px;cursor:pointer;display:grid;place-items:center}.modal-icon{width:48px;height:48px;border-radius:999px;display:grid;place-items:center;margin-bottom:12px}.modal-icon.success{background:#dcfce7;color:#15803d}.modal-icon.error{background:#fee2e2;color:#b91c1c}.modal-title{margin:0 0 6px;font-size:19px;font-weight:700}.modal-message{margin:0;color:#475569;line-height:1.45}.modal-actions{margin-top:18px;display:flex;justify-content:flex-end}.report-table-wrap{width:100%;max-height:calc(100vh - 220px);overflow:auto;border:1px solid #e2e8f0;border-radius:10px;background:#fff}.report-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0}.report-table-wide{min-width:2200px}.report-table thead th{position:sticky;z-index:3;background:#f8fafc;color:#475569;font-size:12px;text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid #e2e8f0;padding:10px 12px;text-align:left;white-space:nowrap}.report-table thead tr:first-child th{top:0}.report-table thead tr.report-filter-row th{top:41px;padding:6px;background:#fff;z-index:3}.report-filter{width:100%;min-width:110px;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:6px;padding:6px 8px;background:#fff;color:#334155;font-size:12px;font-weight:400;text-transform:none;outline:none}.report-filter:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb1f}.report-table tbody td{border-bottom:1px solid #f1f5f9;padding:10px 12px;font-size:14px;background:#fff;white-space:nowrap}.report-table tbody tr{cursor:pointer}.report-table tbody tr:hover td{background:#eff6ff}.report-table th:first-child,.report-table td:first-child{position:sticky;left:0;z-index:2;min-width:220px;max-width:320px;box-shadow:2px 0 6px #0f172a14}.report-table thead tr:first-child th:first-child{z-index:5;background:#f8fafc}.report-table thead tr.report-filter-row th:first-child{z-index:5;background:#fff}.report-table tbody td:first-child{z-index:2;background:#fff;font-weight:600;white-space:normal}.report-table tbody tr:hover td:first-child{background:#eff6ff}
