.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:16px}.login-page__card{background:#1e293bb3;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:40px 24px;width:100%;max-width:400px;box-shadow:0 25px 50px #00000080}.login-page__title{font-size:28px;font-weight:700;margin-bottom:4px;letter-spacing:-.02em;background:linear-gradient(135deg,#f8fafc 60%,#94a3b8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-page__subtitle{font-size:14px;color:#94a3b8;margin-bottom:40px}.login-page__field{margin-bottom:16px}.login-page__field label{display:block;font-size:12px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.login-page__field input{width:100%;background:#33415580;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:8px 16px;font-size:14px;color:#f8fafc;outline:none;transition:border-color .2s,box-shadow .2s}.login-page__field input:focus{border-color:#06b6d4;box-shadow:0 0 0 3px #06b6d426}.login-page__error{background:#ef44441f;border:1px solid rgba(239,68,68,.3);border-radius:12px;color:#ef4444;font-size:12px;padding:8px 16px;margin-bottom:16px}.login-page__submit{width:100%;background:linear-gradient(135deg,#06b6d4,#0594ac);color:#0f172a;border:none;border-radius:12px;padding:8px 16px;font-size:14px;font-weight:700;margin-top:8px;transition:opacity .15s,box-shadow .15s;box-shadow:0 4px 15px #06b6d44d}.login-page__submit:hover{opacity:.9;box-shadow:0 4px 20px #06b6d473}.login-page__submit:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.navbar{height:60px;background:#0f172ad9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:space-between;padding:0 24px;flex-shrink:0;position:sticky;top:0;z-index:100}.navbar__brand{font-size:16px;font-weight:700;letter-spacing:-.02em;background:linear-gradient(135deg,#06b6d4,#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.navbar__logout{background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:12px;color:#94a3b8;font-size:12px;padding:4px 16px;transition:color .15s,background .15s,border-color .15s}.navbar__logout:hover{color:#f8fafc;background:#ffffff14;border-color:#ffffff26}.userlist-page{padding:24px;flex:1}.userlist-page__header{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:24px}.userlist-page__header h1{font-size:20px;font-weight:700}.userlist-page__header p{color:#94a3b8;font-size:14px}.userlist-page__chart-wrap{background:#1e293b80;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:24px 24px 8px;margin-bottom:24px;box-shadow:0 10px 30px #0000004d}.userlist-page__chart-title{font-size:14px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.06em;margin-bottom:16px}.userlist-page__toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap}.userlist-page__search{flex:1;min-width:200px;max-width:320px;background:#33415580;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:4px 16px;font-size:14px;color:#f8fafc;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;outline:none;transition:border-color .2s,box-shadow .2s}.userlist-page__search::placeholder{color:#94a3b8}.userlist-page__search:focus{border-color:#06b6d4;box-shadow:0 0 0 3px #06b6d426}.userlist-page__timeframe{background:#33415580;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:4px 32px 4px 16px;font-size:14px;color:#f8fafc;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;outline:none;cursor:pointer;transition:border-color .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394a3b8' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.userlist-page__timeframe:focus{border-color:#06b6d4}.userlist-page__timeframe option{background:#1e293b;color:#f8fafc}.userlist-page__table-wrap{overflow-x:auto;border:1px solid rgba(255,255,255,.08);border-radius:20px;background:#1e293b80;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 10px 30px #0000004d}.userlist-page__table{width:100%;border-collapse:collapse}.userlist-page__table th{background:#0f172a80;color:#94a3b8;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;text-align:left;padding:8px 16px;border-bottom:1px solid rgba(255,255,255,.08);white-space:nowrap;-webkit-user-select:none;user-select:none}.userlist-page__table th.sortable{cursor:pointer}.userlist-page__table th.sortable:hover{color:#f8fafc}.userlist-page__table th.sorted{color:#06b6d4}.userlist-page__table td{padding:8px 16px;border-bottom:1px solid rgba(255,255,255,.08);font-size:14px;color:#f8fafc}.userlist-page__table tbody tr{cursor:pointer;transition:background .15s}.userlist-page__table tbody tr:last-child td{border-bottom:none}.userlist-page__table tbody tr:hover td{background:#06b6d40d}.userlist-page__badge{display:inline-block;background:#06b6d426;color:#06b6d4;border:1px solid rgba(6,182,212,.25);border-radius:12px;padding:2px 8px;font-size:12px;font-weight:600}.userlist-page__tooltip{background:#0f172af2;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:8px 16px;font-size:12px}.userlist-page__tooltip p{margin:2px 0}.userlist-page__tooltip-label{color:#94a3b8;margin-bottom:4px!important}.userlist-page__loading,.userlist-page__error{padding:40px;text-align:center;color:#94a3b8}.userlist-page__error{color:#ef4444}.userdetail-page{padding:24px;flex:1}.userdetail-page__top-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.userdetail-page__timeframe{background:#33415580;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:4px 32px 4px 16px;font-size:14px;color:#f8fafc;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;outline:none;cursor:pointer;transition:border-color .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394a3b8' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.userdetail-page__timeframe:focus{border-color:#06b6d4}.userdetail-page__timeframe option{background:#1e293b;color:#f8fafc}.userdetail-page__chart-wrap{background:#1e293b80;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:24px 24px 8px;margin-bottom:24px;box-shadow:0 10px 30px #0000004d}.userdetail-page__chart-title{font-size:14px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.06em;margin-bottom:16px}.userdetail-page__tooltip{background:#0f172af2;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:8px 16px;font-size:12px}.userdetail-page__tooltip p{margin:2px 0}.userdetail-page__tooltip-label{color:#94a3b8;margin-bottom:4px!important}.userdetail-page__back{display:inline-flex;align-items:center;gap:4px;background:none;border:none;color:#94a3b8;font-size:14px;margin-bottom:24px;padding:0;transition:color .15s}.userdetail-page__back:hover{color:#f8fafc}.userdetail-page__header{background:#1e293b99;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:24px;margin-bottom:24px;box-shadow:0 10px 30px #0000004d}.userdetail-page__header h1{font-size:20px;font-weight:700;margin-bottom:4px;letter-spacing:-.02em}.userdetail-page__header p{color:#94a3b8;font-size:14px}.userdetail-page__stats{display:flex;gap:16px;margin-top:16px;flex-wrap:wrap}.userdetail-page__stat{background:#06b6d40f;border:1px solid rgba(6,182,212,.2);border-radius:12px;padding:8px 16px;text-align:center;min-width:100px}.userdetail-page__stat span:first-child{display:block;font-size:28px;font-weight:700;background:linear-gradient(135deg,#06b6d4,#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.userdetail-page__stat span:last-child{font-size:12px;color:#94a3b8}.userdetail-page__section-title{font-size:16px;font-weight:600;margin-bottom:16px}.userdetail-page__table-wrap{overflow-x:auto;border:1px solid rgba(255,255,255,.08);border-radius:20px;background:#1e293b80;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 10px 30px #0000004d}.userdetail-page__table{width:100%;border-collapse:collapse}.userdetail-page__table th{background:#0f172a80;color:#94a3b8;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;text-align:left;padding:8px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.userdetail-page__table td{padding:8px 16px;border-bottom:1px solid rgba(255,255,255,.08);font-size:14px;color:#f8fafc}.userdetail-page__table tbody tr:last-child td{border-bottom:none}.userdetail-page__status{display:inline-block;border-radius:12px;padding:2px 8px;font-size:12px;font-weight:600}.userdetail-page__status--done{background:#10b98126;color:#10b981}.userdetail-page__status--incomplete{background:#f59e0b26;color:#f59e0b}.userdetail-page__loading,.userdetail-page__error{padding:40px;text-align:center;color:#94a3b8}.userdetail-page__error{color:#ef4444}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;background-color:#0f172a;color:#f8fafc;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}#root{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(ellipse at top left,rgba(6,182,212,.08) 0%,transparent 50%),radial-gradient(ellipse at bottom right,rgba(139,92,246,.06) 0%,transparent 50%),#0f172a}
