:root{--primary: #27d3cc;--secondary: #c2547e;--navy: #042551;--bg: #f7f8fa;--surface: #fafbfc;--text: #1a1a2e;--muted: #888888;--border: #e2e8f0;--success: #10b981;--error: #ef4444;--warning: #f59e0b;--blue: #378add;--green: #96d199;--yellow: #ffb746;--coral: #e84c3d;--pink: #d4537e;--amber: #ba7517;--white: #ffffff}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Manrope,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}h1,h2,h3,h4,h5,h6{margin:0;font-weight:700;color:var(--text)}button{font-family:inherit}.app-shell{display:flex;min-height:100vh}.app-main{flex:1;display:flex;flex-direction:column;min-width:0}.app-content{padding:28px 32px;flex:1;overflow-y:auto;overflow-x:hidden}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;gap:16px;flex-wrap:wrap}.page-title{font-size:22px;font-weight:700;margin:0}.page-subtitle{color:var(--muted);font-size:13px;margin-top:4px}@media (max-width: 640px){.app-content{padding:16px}.page-header{flex-direction:column;margin-bottom:16px}.page-title{font-size:18px}}.sidebar{width:260px;background:var(--navy);color:var(--white);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:100}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}.sidebar-logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:18px;letter-spacing:.2px}.sidebar-logo-mark{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--primary),#1aa6a0);display:flex;align-items:center;justify-content:center;color:var(--navy);font-weight:800;flex-shrink:0}.sidebar-close{display:none;background:none;border:none;color:var(--white);cursor:pointer;padding:8px;border-radius:6px;align-items:center;justify-content:center;height:40px;width:40px;flex-shrink:0;transition:background .2s ease}.sidebar-close:hover{background:#ffffff1a}.sidebar-close:active{background:#ffffff26}.sidebar-section-title{text-transform:uppercase;font-size:11px;letter-spacing:1.2px;color:#ffffff80;padding:0 22px;margin:14px 0 8px}.sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:0 12px;flex:1;overflow-y:auto}.sidebar-link{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:8px;color:#ffffffd9;font-weight:500;font-size:14px;cursor:pointer;border-left:3px solid transparent;transition:background .12s ease;white-space:nowrap}.sidebar-link:hover{background:#ffffff0f}.sidebar-link.active{background:#27d3cc33;border-left-color:var(--primary);color:var(--white)}.sidebar-footer{margin-top:auto;padding:18px 22px;border-top:1px solid rgba(255,255,255,.08);font-size:12px;color:#ffffff8c;text-align:center}.topnav-hamburger{display:none;background:none;border:none;color:var(--text);cursor:pointer;padding:8px 12px;border-radius:6px;z-index:50;align-items:center;justify-content:center;height:44px;width:44px;flex-shrink:0;transition:all .2s cubic-bezier(.4,0,.2,1)}.topnav-hamburger:hover{background:var(--bg)}.topnav-hamburger:active{background:#0000000d}.sidebar-toggle{display:none}.sidebar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:99;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}@media (max-width: 1024px){.sidebar{position:fixed;left:0;top:0;width:260px;height:100vh;transform:translate(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);box-shadow:2px 0 10px #0003;z-index:100}.sidebar.open{transform:translate(0)}.topnav-hamburger{display:flex}.app-shell{flex-direction:column}.topnav{padding:14px 16px}}@media (max-width: 640px){.sidebar{width:100%}.sidebar-header{padding:12px 16px}.sidebar-logo{flex:1}.sidebar-logo span{display:none}.sidebar-logo-mark{width:32px;height:32px}.sidebar-close{display:flex}.sidebar-section-title{padding:0 16px}.sidebar-nav{padding:0 8px}.sidebar-link{font-size:13px;padding:10px 12px;gap:10px}.sidebar-footer{padding:12px 16px;font-size:11px}.topnav{padding:12px 16px;gap:12px}.topnav-hamburger{width:40px;height:40px;padding:6px 10px}.topnav-search{max-width:none;flex:1;min-width:auto}.topnav-user{gap:8px}}@media (min-width: 1025px){.topnav-hamburger,.sidebar-close{display:none}}.topnav{display:flex;align-items:center;justify-content:space-between;padding:14px 32px;background:var(--white);border-bottom:1px solid var(--border);gap:16px;flex-wrap:wrap}.topnav-search{flex:1;max-width:420px;position:relative;min-width:200px}.topnav-search input{width:100%;padding:10px 14px 10px 38px;border:1.5px solid var(--border);border-radius:10px;font-size:13px;background:var(--bg);outline:none}.topnav-search input:focus{border-color:var(--primary);background:var(--white)}.topnav-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted)}.topnav-user{display:flex;align-items:center;gap:12px;margin-left:auto}.avatar{width:38px;height:38px;border-radius:50%;background:var(--primary);color:var(--navy);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0}.avatar.lg{width:56px;height:56px;font-size:18px}.avatar.secondary{background:var(--secondary);color:var(--white)}.avatar.navy{background:var(--navy);color:var(--white)}@media (max-width: 1024px){.topnav{padding:12px 16px}.topnav-search{flex:1;min-width:150px;max-width:280px}.topnav-user .avatar{width:36px;height:36px;font-size:12px}}@media (max-width: 768px){.topnav-search{display:none}.topnav-user{gap:8px}}@media (max-width: 640px){.topnav{padding:10px 12px;gap:8px}.topnav-user{gap:6px}.topnav-user .avatar{width:32px;height:32px;font-size:11px}.topnav-user>div:not(.avatar){display:none}.btn-sm{padding:6px 10px;font-size:12px}}.card{background:var(--white);border-radius:14px;box-shadow:0 2px 12px #00000012;border:1px solid var(--border);padding:20px}.card-clickable{cursor:pointer;transition:transform .14s ease,box-shadow .14s ease}.card-clickable:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00000017}.stat-card{display:flex;flex-direction:column;gap:6px}.stat-card .label{color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.8px}.stat-card .value{font-size:28px;font-weight:800;line-height:1}.stat-card .delta{font-size:12px;color:var(--success);margin-top:4px}.grid{display:grid;gap:18px}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}@media (max-width: 1280px){.grid.cols-4{grid-template-columns:repeat(3,1fr)}}@media (max-width: 1024px){.grid.cols-4,.grid.cols-3{grid-template-columns:repeat(2,1fr)}.card{padding:16px}}@media (max-width: 768px){.grid.cols-4,.grid.cols-3,.grid.cols-2{grid-template-columns:1fr}.grid{gap:12px}.card{padding:12px}.stat-card .value{font-size:24px}}@media (max-width: 640px){.card{padding:12px;border-radius:10px}.stat-card .label{font-size:11px}.stat-card .value{font-size:20px}.stat-card .delta{font-size:11px}}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:13px;font-weight:600;color:var(--text)}.field .hint{font-size:12px;color:var(--muted)}.input,.select,.textarea{width:100%;padding:10px 12px;border:1.5px solid var(--border);border-radius:8px;font-size:14px;font-family:inherit;outline:none;background:var(--white);color:var(--text);transition:border-color .12s ease,box-shadow .12s ease}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #27d3cc2e}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-section-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin:18px 0 8px}.select-wrapper{position:relative;display:flex;align-items:center}.select-wrapper select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:32px}.select-wrapper select:disabled{background-color:var(--muted);opacity:.5;cursor:not-allowed}.select-icon{position:absolute;right:12px;pointer-events:none;color:var(--text)}@media (max-width: 768px){.form-row{grid-template-columns:1fr}.input,.select,.textarea{font-size:16px;padding:12px}.field{margin-bottom:12px}.field label{font-size:12px}}@media (max-width: 640px){.field{margin-bottom:10px}.field label{font-size:12px}.input,.select,.textarea{font-size:16px;padding:12px 10px;border-radius:6px}.form-section-title{font-size:11px;margin:14px 0 6px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:8px;font-weight:600;font-size:14px;border:1.5px solid transparent;cursor:pointer;transition:filter .12s ease,background .12s ease,transform .12s ease;font-family:inherit;min-height:40px}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--white)}.btn-primary:hover:not(:disabled){filter:brightness(.95)}.btn-secondary{background:var(--secondary);color:var(--white)}.btn-navy{background:var(--navy);color:var(--white)}.btn-ghost{background:transparent;color:var(--text);border-color:var(--border);min-height:auto}.btn-ghost:hover:not(:disabled){background:var(--bg)}.btn-danger{background:var(--error);color:var(--white)}.btn-block{width:100%}.btn-sm{padding:7px 12px;font-size:13px;min-height:32px}@media (max-width: 768px){.btn{min-height:44px;padding:11px 14px}.btn-sm{min-height:36px;padding:8px 10px}}@media (max-width: 640px){.btn{font-size:13px;padding:10px 12px}.btn span:not(.dot){font-size:13px}}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600}.badge.primary{background:#27d3cc26;color:#0e7c77}.badge.secondary{background:#c2547e26;color:var(--secondary)}.badge.success{background:#10b98126;color:var(--success)}.badge.error{background:#ef444426;color:var(--error)}.badge.warning{background:#f59e0b2e;color:#b6770a}.badge.muted{background:#f1f5f9;color:var(--muted)}.badge.blue{background:#378add26;color:var(--blue)}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.table-wrap{background:var(--white);border-radius:14px;box-shadow:0 2px 12px #00000012;overflow:auto;-webkit-overflow-scrolling:touch}table.data-table{width:100%;border-collapse:collapse;min-width:600px}.data-table thead th{text-align:left;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);padding:14px 18px;background:#fafbfc;border-bottom:1px solid var(--border);white-space:nowrap}.data-table tbody td{padding:14px 18px;border-bottom:1px solid var(--border);font-size:14px}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr.clickable{cursor:pointer}.data-table tbody tr.clickable:hover{background:#fafbfc}@media (max-width: 768px){.table-wrap{border-radius:10px;overflow:auto}table.data-table{font-size:13px;min-width:auto}.data-table thead th{padding:10px 12px;font-size:11px}.data-table tbody td{padding:10px 12px;font-size:13px}}@media (max-width: 640px){.table-wrap{border-radius:8px}.data-table{font-size:12px}.data-table thead th{padding:8px 10px;font-size:10px}.data-table tbody td{padding:8px 10px;font-size:12px}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px;animation:fade-in .14s ease}.modal{background:var(--white);border-radius:18px;width:100%;max-width:560px;max-height:88vh;overflow-y:auto;box-shadow:0 20px 60px #00000040;animation:pop-in .16s ease}.modal.lg{max-width:760px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border)}.modal-title{font-size:18px;font-weight:700}.modal-close{background:none;border:none;cursor:pointer;color:var(--muted);padding:4px;border-radius:6px;display:inline-flex;min-width:32px;min-height:32px;align-items:center;justify-content:center}.modal-close:hover{background:var(--bg);color:var(--text)}.modal-body{padding:22px 24px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid var(--border);flex-wrap:wrap}@media (max-width: 768px){.modal-backdrop{padding:12px}.modal{max-width:100%;border-radius:16px;max-height:90vh}.modal-header{padding:16px 20px}.modal-title{font-size:16px}.modal-body{padding:16px 20px}.modal-footer{padding:12px 20px;gap:8px}.modal-footer .btn{flex:1;min-width:80px}}@media (max-width: 640px){.modal{max-height:95vh;border-radius:14px}.modal-title{font-size:15px}.modal-footer .btn{font-size:12px;padding:8px 10px}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{transform:translateY(8px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.toast-container{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:10px;z-index:2000;pointer-events:none}.toast{min-width:260px;max-width:380px;padding:12px 16px;border-radius:10px;color:var(--white);font-weight:500;font-size:13px;box-shadow:0 8px 24px #0003;display:flex;align-items:flex-start;gap:10px;animation:slide-in .18s ease;pointer-events:auto}.toast.success{background:var(--success)}.toast.error{background:var(--error)}.toast.warning{background:var(--warning)}.toast.info{background:var(--blue)}@media (max-width: 640px){.toast-container{bottom:16px;right:16px;left:16px}.toast{min-width:auto;max-width:none;width:100%}}@keyframes slide-in{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:24px;background-image:radial-gradient(circle at 0% 0%,rgba(39,211,204,.12),transparent 40%),radial-gradient(circle at 100% 100%,rgba(194,84,126,.1),transparent 40%)}.login-card{width:100%;max-width:420px;background:var(--white);border-radius:18px;padding:36px 32px;box-shadow:0 12px 40px #00000014}.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:22px}.login-title{font-size:22px;font-weight:800;margin-bottom:4px}.login-sub{color:var(--muted);font-size:13px;margin-bottom:24px}@media (max-width: 768px){.login-card{padding:28px 24px}.login-title{font-size:20px}}@media (max-width: 640px){.login-screen{padding:16px}.login-card{padding:24px 20px;border-radius:14px}.login-brand{margin-bottom:18px}.login-title{font-size:18px;margin-bottom:2px}.login-sub{font-size:12px;margin-bottom:20px}}.dropzone{border:2px dashed var(--border);border-radius:14px;padding:36px;text-align:center;background:var(--bg);cursor:pointer;transition:border-color .14s ease,background .14s ease}.dropzone:hover,.dropzone.drag{border-color:var(--primary);background:#27d3cc0f}.dropzone .icon{width:56px;height:56px;border-radius:14px;background:#27d3cc2e;color:var(--primary);display:inline-flex;align-items:center;justify-content:center;margin-bottom:12px}@media (max-width: 640px){.dropzone{padding:24px;border-radius:10px}.dropzone .icon{width:44px;height:44px;margin-bottom:10px}}.progress{height:8px;background:var(--border);border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),#1aa6a0);border-radius:999px;transition:width .3s ease}.row{display:flex;align-items:center;gap:12px}.between{display:flex;align-items:center;justify-content:space-between}.muted{color:var(--muted)}.text-error{color:var(--error)}.text-success{color:var(--success)}.mb-0{margin-bottom:0}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:18px}.mt-3{margin-top:12px}.mt-4{margin-top:18px}.error-text{color:var(--error);font-size:13px;margin-top:8px}.empty-state{text-align:center;padding:48px 20px;color:var(--muted)}.empty-state p{margin:8px 0;font-size:14px}.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.spin{animation:spin .7s linear infinite}.skeleton-wrap{display:flex;flex-direction:column;gap:10px}.skeleton-line{height:14px;border-radius:6px;background:linear-gradient(90deg,#e2e8f0 25%,#f1f5f9,#e2e8f0 75%);background-size:200% 100%;animation:skeleton-pulse 1.4s ease infinite}.skeleton-avatar{width:40px;height:40px;border-radius:50%;background:#e2e8f0;animation:skeleton-pulse 1.4s ease infinite}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes spin{to{transform:rotate(360deg)}}
