:root{--bg-primary:#fff;--bg-secondary:#f5f5f7;--bg-tertiary:#fafafa;--bg-elevated:#fff;--text-primary:#1d1d1f;--text-secondary:#86868b;--text-tertiary:#aeaeb2;--text-link:#06c;--accent:#06c;--accent-hover:#004c99;--green:#34c759;--green-bg:#34c75914;--red:#ff3b30;--red-bg:#ff3b3012;--orange:#ff9500;--orange-bg:#ff950014;--gold:#b8860b;--gold-bg:#b8860b1a;--blue-bg:#0066cc0f;--purple:#af52de;--purple-bg:#af52de14;--border:#e8e8ed;--border-focus:#06c;--shadow-sm:0 1px 3px #0000000a;--shadow-md:0 4px 12px #0000000f;--shadow-lg:0 8px 30px #00000014;--shadow-card:0 2px 8px #0000000a;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-pill:980px;--ease:cubic-bezier(.25, .1, .25, 1);--duration:.2s}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}body{background:var(--bg-primary);color:var(--text-primary);min-height:100vh;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5}a{color:var(--text-link);transition:opacity var(--duration) var(--ease);text-decoration:none}a:hover{opacity:.78}::selection{background:#0066cc26}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#d1d1d6;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#aeaeb2}h1,h2,h3,h4,h5,h6{letter-spacing:-.025em;color:var(--text-primary);font-weight:700;line-height:1.15}.page-container{background:var(--bg-secondary);flex-direction:column;min-height:100vh;display:flex}.navbar{-webkit-backdrop-filter:saturate(180%)blur(20px);border-bottom:1px solid var(--border);height:52px;padding:0 max(24px, env(safe-area-inset-left));z-index:100;background:#ffffffb8;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.navbar .logo{color:var(--text-primary);letter-spacing:-.02em;align-items:center;gap:8px;font-size:17px;font-weight:700;display:flex}.navbar .logo .icon{font-size:20px}.navbar-actions{align-items:center;gap:20px;display:flex}.navbar .user-info{align-items:center;gap:10px;display:flex}.navbar .user-name{color:var(--text-primary);font-size:13px;font-weight:600}.navbar .user-role{color:var(--text-secondary);font-size:11px}.content{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:48px 24px 64px}.page-header{margin-bottom:48px}.page-header h1{letter-spacing:-.035em;margin-bottom:6px;font-size:34px;font-weight:800}.page-header p{color:var(--text-secondary);font-size:17px;font-weight:400}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:box-shadow var(--duration) var(--ease);padding:32px}.card:hover{box-shadow:var(--shadow-md)}.stat-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:transform var(--duration) var(--ease), box-shadow var(--duration) var(--ease);padding:28px 32px;position:relative}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card .stat-icon{border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;margin-bottom:20px;font-size:18px;display:flex}.stat-card .stat-icon.blue{background:var(--blue-bg)}.stat-card .stat-icon.green{background:var(--green-bg)}.stat-card .stat-icon.orange{background:var(--orange-bg)}.stat-card .stat-icon.purple{background:var(--purple-bg)}.stat-card .stat-value{letter-spacing:-.035em;color:var(--text-primary);margin-bottom:6px;font-size:36px;font-weight:800;line-height:1}.stat-card .stat-label{color:var(--text-secondary);letter-spacing:0;font-size:13px;font-weight:500}.btn{border-radius:var(--radius-pill);cursor:pointer;transition:all var(--duration) var(--ease);white-space:nowrap;border:none;outline:none;justify-content:center;align-items:center;gap:6px;padding:10px 20px;font-family:inherit;font-size:14px;font-weight:600;line-height:1.3;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--text-primary);color:#fff}.btn-primary:hover:not(:disabled){background:#000}.btn-accent{background:var(--accent);color:#fff}.btn-accent:hover:not(:disabled){background:var(--accent-hover)}.btn-success{background:var(--text-primary);color:#fff}.btn-success:hover:not(:disabled){background:#000}.btn-danger{background:var(--red);color:#fff}.btn-danger:hover:not(:disabled){opacity:.85}.btn-ghost{color:var(--text-link);background:0 0;padding:10px 16px}.btn-ghost:hover:not(:disabled){background:var(--blue-bg)}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:#ececee}.btn-sm{padding:7px 14px;font-size:13px}.btn-lg{padding:14px 28px;font-size:16px}.btn-icon{border-radius:10px;width:34px;height:34px;padding:0;font-size:15px}.input-group{flex-direction:column;gap:6px;display:flex}.input-group label{color:var(--text-primary);letter-spacing:0;font-size:13px;font-weight:600}.input{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);transition:border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);outline:none;padding:11px 16px;font-family:inherit;font-size:15px}.input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #0066cc1f}.input::placeholder{color:var(--text-tertiary)}select.input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2386868B' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:36px}.table-container{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-primary);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}thead{background:var(--bg-secondary)}th{text-align:left;color:var(--text-secondary);letter-spacing:.02em;white-space:nowrap;border-bottom:1px solid var(--border);padding:10px 20px;font-size:12px;font-weight:600}td{border-top:1px solid var(--border);color:var(--text-primary);padding:14px 20px;font-size:14px}tr:first-child td{border-top:none}tr:hover td{background:var(--bg-tertiary)}.badge{border-radius:var(--radius-pill);letter-spacing:0;align-items:center;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge-blue{background:var(--blue-bg);color:var(--accent)}.badge-green{background:var(--green-bg);color:#248a3d}.badge-red{background:var(--red-bg);color:#d70015}.badge-orange{background:var(--orange-bg);color:#c93400}.badge-purple{background:var(--purple-bg);color:#8944ab}.badge-gray{color:var(--text-secondary);background:#8e8e931a}.modal-overlay{-webkit-backdrop-filter:blur(6px);z-index:1000;animation:fadeIn .18s var(--ease);background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-elevated);border-radius:var(--radius-xl);width:90%;max-width:480px;max-height:90vh;box-shadow:var(--shadow-lg);animation:modalSlideUp .28s var(--ease);padding:36px;overflow-y:auto}.modal h2{letter-spacing:-.02em;margin-bottom:24px;font-size:20px;font-weight:700}.modal-actions{justify-content:flex-end;gap:10px;margin-top:28px;display:flex}.alert{border-radius:var(--radius-md);animation:fadeIn .2s var(--ease);margin-bottom:20px;padding:13px 18px;font-size:14px;font-weight:500}.alert-success{background:var(--green-bg);color:#248a3d;border:1px solid #34c75933}.alert-error{background:var(--red-bg);color:#d70015;border:1px solid #ff3b3026}.alert-info{background:var(--blue-bg);color:var(--accent);border:1px solid #0066cc1f}.tabs{border-bottom:1px solid var(--border);gap:0;margin-bottom:32px;display:flex}.tab{color:var(--text-secondary);cursor:pointer;transition:all var(--duration) var(--ease);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:12px 20px;font-family:inherit;font-size:14px;font-weight:600}.tab.active{color:var(--text-primary);border-bottom-color:var(--text-primary)}.tab:hover:not(.active){color:var(--text-primary)}.grid-2{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.grid-4{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.flex-between{justify-content:space-between;align-items:center;display:flex}.flex-center{justify-content:center;align-items:center;display:flex}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-24{gap:24px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}.pagination{justify-content:center;align-items:center;gap:4px;margin-top:28px;display:flex}.pagination button{border-radius:var(--radius-sm);min-width:36px;height:36px;color:var(--text-secondary);cursor:pointer;transition:all var(--duration) var(--ease);background:0 0;border:none;padding:0 10px;font-family:inherit;font-size:14px;font-weight:500}.pagination button:hover:not(:disabled):not(.active){background:var(--bg-secondary);color:var(--text-primary)}.pagination button.active{background:var(--text-primary);color:#fff;font-weight:600}.pagination button:disabled{opacity:.3;cursor:not-allowed}.empty-state{text-align:center;color:var(--text-tertiary);padding:72px 24px}.empty-state .icon{opacity:.6;margin-bottom:16px;font-size:40px}.empty-state p{color:var(--text-secondary);font-size:15px}.spinner{border:2px solid #0000001a;border-top-color:var(--text-primary);border-radius:50%;width:18px;height:18px;animation:.6s linear infinite spin}.spinner-white{border-color:#fff #ffffff40 #ffffff40}@keyframes spin{to{transform:rotate(360deg)}}.login-container{background:var(--bg-secondary);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-xl);width:90%;max-width:400px;box-shadow:var(--shadow-lg);padding:48px 44px}.login-card .logo-icon{text-align:center;margin-bottom:28px;font-size:44px}.login-card h1{text-align:center;letter-spacing:-.03em;color:var(--text-primary);margin-bottom:6px;font-size:26px;font-weight:800}.login-card .subtitle{text-align:center;color:var(--text-secondary);margin-bottom:36px;font-size:15px}.login-card form{flex-direction:column;gap:20px;display:flex}.change-password-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-xl);width:90%;max-width:400px;box-shadow:var(--shadow-lg);padding:48px 44px}.change-password-card h1{text-align:center;letter-spacing:-.02em;margin-bottom:6px;font-size:22px;font-weight:800}.change-password-card .subtitle{text-align:center;color:var(--text-secondary);margin-bottom:36px;font-size:15px}.change-password-card form{flex-direction:column;gap:20px;display:flex}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.toolbar .search-bar{flex:1;min-width:200px}.search-bar{position:relative}.search-bar .search-icon{color:var(--text-tertiary);pointer-events:none;font-size:15px;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search-bar input{width:100%;padding-left:40px}.checkbox-group{align-items:center;gap:10px;display:flex}.checkbox-group input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;border-radius:4px}.checkbox-group label{color:var(--text-primary);cursor:pointer;font-size:14px}.sync-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding:24px 32px;display:flex}.sync-card .sync-info strong{color:var(--text-primary);margin-bottom:3px;font-size:15px;font-weight:600;display:block}.sync-card .sync-info p{color:var(--text-secondary);font-size:13px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(16px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .35s var(--ease)}.animate-slide-up{animation:slideUp .4s var(--ease)}@media (max-width:1024px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.content{padding:32px 16px 48px}.navbar{padding:0 16px}.page-header{margin-bottom:32px}.page-header h1{font-size:26px}.stat-card .stat-value{font-size:28px}.modal{width:95%;padding:28px}.login-card,.change-password-card{padding:36px 28px}.sync-card{padding:20px 24px}.flex-between.responsive{flex-direction:column;align-items:flex-start;gap:12px}}.logo-img{object-fit:contain;width:auto;height:28px;display:block}.logo-img-large{object-fit:contain;width:auto;height:60px;margin:0 auto 20px;display:block}.stats-compact{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);align-items:center;padding:28px 0;display:flex}.stats-compact-item{text-align:center;flex:1;padding:0 20px}.stats-compact-value{letter-spacing:-.03em;color:var(--text-primary);font-feature-settings:"tnum";margin-bottom:4px;font-size:28px;font-weight:800;line-height:1}.stats-compact-label{color:var(--text-secondary);letter-spacing:0;font-size:12px;font-weight:500}.stats-compact-divider{background:var(--border);flex-shrink:0;width:1px;height:36px}@media (max-width:480px){.stats-compact-value{font-size:22px}.stats-compact-item{padding:0 12px}}.stats-gold{background:linear-gradient(135deg,#b8860b,#e5a93b);-webkit-text-fill-color:transparent;text-shadow:0 1px 2px #b8860b0d;-webkit-background-clip:text;color:#b8860b!important}.stats-blue{background:linear-gradient(135deg, var(--accent), #38d);-webkit-text-fill-color:transparent;text-shadow:0 1px 2px #0066cc0d;-webkit-background-clip:text;color:var(--accent)!important}
