@charset "UTF-8";body{background-color:hsla(0,0%,78%,.8);color:rgba(0,0,0,.8);display:grid;font-family:Helvetica;grid-template-columns:[col-1] 200px [col-2] auto [col-3];grid-template-rows:[head] 60px [main] auto [footer] 60px}body .base-brand{align-items:center;background-color:#1a1d23;border-bottom:1px solid #3a3f4b;border-right:1px solid #3a3f4b;display:flex;grid-column-end:col-1;grid-column-start:col-1;grid-row-end:main;grid-row-start:head;justify-content:center;padding:1rem}body .base-brand .brand{color:#e4e6eb;font-size:1.5rem;font-weight:600;margin:0}body .base-header{align-items:center;background-color:#1a1d23;border-bottom:1px solid #3a3f4b;display:flex;grid-column-end:col-2;grid-column-start:col-2;grid-row-end:main;grid-row-start:head;padding:5px}body .base-header .page-title h1{color:#e4e6eb;font-size:1.5rem;font-weight:600;margin:0}body .base-header__menu{align-items:center;background-color:#999;color:#000;display:flex;font-size:1.1rem;height:100%;justify-content:flex-end;padding-right:10rem;text-decoration:none}body .base-header__menu>a{color:#fff;font-weight:700;height:inherit;line-height:3rem;padding:0 1rem;text-decoration:none;transition:.4s}body .base-header__menu>a:hover{background-color:#fff;border-bottom:1px solid hsla(0,0%,96%,.973);color:#999;height:inherit;text-align:center}body .base-left-menu{background-color:#1a1d23;border-right:1px solid #3a3f4b;grid-column-end:col-1;grid-column-start:col-1;grid-row-end:main;grid-row-start:main;height:100%;padding:1rem}body .base-left-menu .base-left-menu__items{display:flex;flex-direction:column;gap:.5rem}body .base-left-menu .base-left-menu__items li{border-radius:6px;list-style-type:none;margin:0;padding:0;transition:all .2s}body .base-left-menu .base-left-menu__items li.active a{background-color:#3b82f6;color:#fff;font-weight:500}body .base-left-menu .base-left-menu__items a{border-radius:6px;color:#b0b3b8;display:block;font-size:.875rem;font-weight:400;padding:.75rem 1rem;text-decoration:none;transition:all .2s}body .base-left-menu .base-left-menu__items a:hover{background-color:#2d3139;color:#e4e6eb}body .base-main{grid-column-end:col-2;grid-column-start:col-2;grid-row-end:footer;grid-row-start:main;padding:5px}body .base-main:has(.crons-container),body .base-main:has(.dashboard-container),body .base-main:has(.logs-container),body .base-main:has(.users-container){background-color:#1a1d23;padding:0}body .brand{text-align:center}table:not(.crons-table):not(.users-table):not(.logs-table){width:100%}table:not(.crons-table):not(.users-table):not(.logs-table) tr:nth-child(odd){background:hsla(0,0%,96%,.973)}table:not(.crons-table):not(.users-table):not(.logs-table) tr{display:table;font-size:small;table-layout:fixed;width:100%}table:not(.crons-table):not(.users-table):not(.logs-table) td{border-right:1px solid #000;padding:0 1rem}table:not(.crons-table):not(.users-table):not(.logs-table) th{text-align:center}table:not(.crons-table):not(.users-table):not(.logs-table) tbody{display:block;height:73vh;overflow:auto}table:not(.crons-table):not(.users-table):not(.logs-table) thead{display:table;table-layout:fixed;width:100%}form:not(.login-form):not(.users-filter-form):not(.crons-filter-form):not(.logs-filter-form){background-color:beige;margin:2rem auto 0;padding:2rem;width:50vw}form:not(.login-form):not(.users-filter-form):not(.crons-filter-form):not(.logs-filter-form) .form-cron{background-color:beige;display:grid;height:100%;width:100%}form:not(.login-form):not(.users-filter-form):not(.crons-filter-form):not(.logs-filter-form) .form-group{display:flex;flex-direction:column;margin:.5rem}form:not(.login-form):not(.users-filter-form):not(.crons-filter-form):not(.logs-filter-form) .form-group label{font-size:smaller;font-style:italic}form:not(.login-form):not(.users-filter-form):not(.crons-filter-form):not(.logs-filter-form) .form-group input,form:not(.login-form):not(.users-filter-form):not(.crons-filter-form):not(.logs-filter-form) .form-group select{font-weight:bolder;height:2rem;padding:0 1rem;text-align:center}form:not(.login-form):not(.users-filter-form):not(.crons-filter-form):not(.logs-filter-form) .form-group .error-message{color:#c82829;font-size:smaller;font-style:italic;height:.8rem}.form-search{display:flex;flex-direction:row;margin:0;padding:0;width:100%}.form-search label,.form-search span{display:none}.cron-form{width:100%}.cron-form .form-cron{display:grid;grid-template-columns:auto auto;justify-items:left;width:100%}.cron-form .form-cron div{grid-template-columns:1fr 1fr}.cron-form .form-cron div label{align-content:center}.cron-form .form-cron button{min-width:150px}.dashboard-container{background-color:#1a1d23;color:#e4e6eb;min-height:100vh;padding:1rem}.dashboard-grid{display:grid;gap:.75rem;grid-template-columns:repeat(2,1fr)}@media (max-width:1200px){.dashboard-grid{grid-template-columns:1fr}}.chart-card{background:#2d3139;border-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.3);padding:.75rem;transition:transform .2s,box-shadow .2s}.chart-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.4);transform:translateY(-2px)}.chart-card{grid-column:span 1}@media (max-width:1200px){.chart-card{grid-column:span 1}}.chart-wrapper{display:flex;flex-direction:column;height:100%;min-height:200px;width:100%}.chart-wrapper canvas{max-height:300px}.users-container{background-color:#1a1d23;color:#e4e6eb;max-width:100%;min-height:100vh;padding:1rem}.users-filter{background:#2d3139;border-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.3);margin-bottom:.75rem;padding:.75rem}.users-filter-form{align-items:flex-end;background:transparent!important;display:flex;gap:.5rem}@media (max-width:1024px){.users-filter-form{flex-wrap:wrap}}.users-filter-form .form-group{display:flex;flex:1;flex-direction:column;min-width:150px}@media (max-width:640px){.users-filter-form .form-group{min-width:100%}}.users-filter-form .form-group label{color:#b0b3b8;font-size:.75rem;font-weight:500;margin-bottom:.25rem;white-space:nowrap}.users-filter-form .form-group input,.users-filter-form .form-group select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#1a1d23!important;border:1px solid #3a3f4b;border-radius:4px;box-sizing:border-box;color:#e4e6eb;font-size:.75rem;height:auto;line-height:1.5;padding:.3rem .5rem;transition:border-color .2s}.users-filter-form .form-group input:focus,.users-filter-form .form-group select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.users-filter-form .form-group input::placeholder,.users-filter-form .form-group select::placeholder{color:#6b7280}.users-filter-form .form-group input:-webkit-autofill,.users-filter-form .form-group input:-webkit-autofill:focus,.users-filter-form .form-group input:-webkit-autofill:hover,.users-filter-form .form-group select:-webkit-autofill,.users-filter-form .form-group select:-webkit-autofill:focus,.users-filter-form .form-group select:-webkit-autofill:hover{-webkit-text-fill-color:#e4e6eb!important;-webkit-box-shadow:inset 0 0 0 1000px #1a1d23!important;box-shadow:inset 0 0 0 1000px #1a1d23!important}.users-filter-form .form-group.form-group-button{flex:0 0 auto}.users-filter-form .form-group.form-group-button .btn-primary{background:#3b82f6;border:none;border-radius:4px;box-sizing:border-box;color:#fff;cursor:pointer;font-size:.75rem;font-weight:500;height:auto;line-height:1.5;padding:.3rem .75rem;transition:background-color .2s;white-space:nowrap}.users-filter-form .form-group.form-group-button .btn-primary:hover{background:#2563eb}.users-stats{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:.75rem}.users-stats .stat-card{align-items:center;background:#2d3139;border-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.3);display:flex;gap:.5rem;padding:.5rem .75rem}.users-stats .stat-card .stat-label{color:#b0b3b8;font-size:.75rem;font-weight:500;letter-spacing:.3px;text-transform:uppercase}.users-stats .stat-card .stat-value{color:#10b981;font-size:1rem;font-weight:600}.users-table-container{background:#2d3139;border-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.3);padding:.75rem}.users-table{border-collapse:separate;border-spacing:0;font-size:.875rem;table-layout:fixed;width:100%}.users-table thead{position:sticky;top:0;z-index:10}.users-table thead,.users-table thead tr{background:#3b82f6!important}.users-table thead tr th{background:transparent;border-bottom:2px solid #2563eb;color:#fff!important;font-size:.75rem;font-weight:600;padding:.5rem;text-align:left;white-space:nowrap}.users-table thead tr.col-index{width:5%}.users-table thead tr.col-id{width:10%}.users-table thead tr.col-nickname{width:15%}.users-table thead tr.col-role,.users-table thead tr.col-token{width:10%}.users-table thead tr.col-date{width:12%}.users-table tbody tr{background:#2d3139;transition:background-color .15s}.users-table tbody tr:nth-child(2n){background:#242830}.users-table tbody tr:hover{background:#353a45}.users-table tbody tr td{border-bottom:1px solid #3a3f4b;color:#e4e6eb;font-size:.75rem;padding:.5rem}.users-table tbody tr td.col-index{color:#b0b3b8;font-weight:500}.users-table tbody tr td.col-id{color:#b0b3b8;font-family:monospace}.users-table tbody tr td.col-nickname a{color:#3b82f6;font-weight:500;text-decoration:none;transition:color .2s}.users-table tbody tr td.col-nickname a:hover{color:#2563eb;text-decoration:underline}.users-table tbody tr td.col-date{color:#b0b3b8;font-family:monospace;font-size:.8125rem}.role-badge{border-radius:4px;display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:.25rem .75rem;text-transform:uppercase}.role-badge.role-admin{background:rgba(239,68,68,.2);color:#ef4444}.role-badge.role-user{background:rgba(59,130,246,.2);color:#3b82f6}.token-status{border-radius:4px;display:inline-block;font-size:.75rem;font-weight:500;padding:.25rem .5rem}.token-status.token-active{background:rgba(16,185,129,.2);color:#10b981}.token-status.token-inactive{background:hsla(220,9%,46%,.2);color:#6b7280}body:has(.login-container){background:#1a1d23;display:block!important}body:has(.login-container) .base-brand,body:has(.login-container) .base-footer,body:has(.login-container) .base-header,body:has(.login-container) .base-left-menu{display:none!important}body:has(.login-container) .base-main{background:transparent!important;padding:0!important}.login-container{align-items:center;background:linear-gradient(135deg,#1a1d23,#242830);display:flex;justify-content:center;min-height:100vh;padding:2rem}.login-card{background:#2d3139;border:1px solid #3a3f4b;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.4);max-width:420px;padding:3rem;width:100%}@media (max-width:640px){.login-card{max-width:100%;padding:2rem}}.login-brand{margin-bottom:2rem;text-align:center}.login-brand .brand-logo{color:#3b82f6;font-size:2rem;font-weight:700;letter-spacing:-.5px;margin:0 0 .5rem}.login-brand .brand-subtitle{color:#b0b3b8;font-size:.875rem;margin:0}.login-header{margin-bottom:2rem}.login-header h1{color:#e4e6eb;font-size:1.5rem;font-weight:600;margin:0 0 .5rem}.login-header p{color:#b0b3b8;font-size:.875rem;margin:0}.login-alert{align-items:flex-start;background:rgba(239,68,68,.1);border:1px solid #ef4444;border-radius:8px;color:#ef4444;display:flex;font-size:.875rem;gap:.75rem;margin-bottom:1.5rem;padding:1rem}.login-alert:before{content:"⚠";flex-shrink:0;font-size:1.25rem}.login-notice{background:rgba(59,130,246,.1);border:1px solid #3b82f6;border-radius:8px;color:#e4e6eb;font-size:.875rem;margin-bottom:1.5rem;padding:1rem}.login-notice a{color:#3b82f6;font-weight:500;text-decoration:none}.login-notice a:hover{text-decoration:underline}.login-form{display:flex;flex-direction:column;gap:1.25rem}.login-form .form-group{display:flex;flex-direction:column;gap:.5rem}.login-form .form-group label{color:#b0b3b8;font-size:.875rem;font-weight:500}.login-form .form-group input[type=password],.login-form .form-group input[type=text]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#1a1d23;border:1px solid #3a3f4b;border-radius:8px;color:#e4e6eb;font-size:.9375rem;padding:.875rem 1rem;transition:all .2s}.login-form .form-group input[type=password]::placeholder,.login-form .form-group input[type=text]::placeholder{color:#6b7280}.login-form .form-group input[type=password]:focus,.login-form .form-group input[type=text]:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.login-form .form-group input[type=password]:-webkit-autofill,.login-form .form-group input[type=password]:-webkit-autofill:focus,.login-form .form-group input[type=password]:-webkit-autofill:hover,.login-form .form-group input[type=text]:-webkit-autofill,.login-form .form-group input[type=text]:-webkit-autofill:focus,.login-form .form-group input[type=text]:-webkit-autofill:hover{-webkit-text-fill-color:#e4e6eb!important;-webkit-box-shadow:inset 0 0 0 1000px #1a1d23!important;box-shadow:inset 0 0 0 1000px #1a1d23!important}.login-form .form-submit{margin-top:.5rem}.login-form .form-submit button,.login-form .form-submit input[type=submit]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9375rem;font-weight:600;padding:.875rem 1.5rem;transition:all .2s;width:100%}.login-form .form-submit button:hover,.login-form .form-submit input[type=submit]:hover{background:#2563eb;box-shadow:0 4px 12px rgba(59,130,246,.3);transform:translateY(-1px)}.login-form .form-submit button:active,.login-form .form-submit input[type=submit]:active{transform:translateY(0)}.login-footer{border-top:1px solid #3a3f4b;margin-top:2rem;padding-top:1.5rem;text-align:center}.login-footer p{color:#b0b3b8;font-size:.8125rem;margin:0}.login-footer p a{color:#3b82f6;font-weight:500;text-decoration:none}.login-footer p a:hover{text-decoration:underline}.crons-container{background-color:#1a1d23;color:#e4e6eb;max-width:100%;min-height:100vh;padding:1rem}.crons-filter{background:#2d3139;border-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.3);margin-bottom:.75rem;padding:.75rem}.crons-filter-form{align-items:flex-end;display:flex;gap:.5rem}.crons-filter-form .filter-group{display:flex;flex:1;flex-direction:column}.crons-filter-form .filter-group label{color:#b0b3b8;font-size:.75rem;font-weight:500;margin-bottom:.25rem}.crons-filter-form .filter-group .filter-select{background:#1a1d23;border:1px solid #3a3f4b;border-radius:4px;color:#e4e6eb;font-size:.75rem;padding:.3rem .5rem;transition:border-color .2s}.crons-filter-form .filter-group .filter-select:focus{border-color:#3b82f6;box-shadow:0 0 0 2px rgba(59,130,246,.1);outline:none}.crons-filter-form .filter-actions .btn-primary{background:#3b82f6;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.75rem;font-weight:500;padding:.3rem .75rem;transition:background-color .2s}.crons-filter-form .filter-actions .btn-primary:hover{background:#2563eb}.crons-stats{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:.75rem}.crons-stats .stat-card{align-items:center;background:#2d3139;border-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.3);display:flex;gap:.5rem;padding:.5rem .75rem}.crons-stats .stat-card .stat-label{color:#b0b3b8;font-size:.75rem;letter-spacing:.3px;text-transform:uppercase}.crons-stats .stat-card .stat-value{color:#10b981;font-size:1rem;font-weight:600}.crons-table-container{background:#2d3139;border-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.3);padding:.75rem}.table-wrapper{max-height:600px;overflow-x:auto;overflow-y:auto}.crons-table{border-collapse:separate;border-spacing:0;font-size:.875rem;table-layout:fixed;width:100%}.crons-table thead{background:#3b82f6!important;position:sticky;top:0;z-index:10}.crons-table thead tr th{border-bottom:2px solid #2563eb;color:#fff!important;font-size:.75rem;font-weight:600;padding:.5rem;text-align:left;white-space:nowrap}.crons-table thead tr th.col-end,.crons-table thead tr th.col-start{width:15%}.crons-table thead tr th.col-name{width:25%}.crons-table thead tr th.col-info{width:45%}.crons-table tbody tr{background:#2d3139;transition:background-color .15s}.crons-table tbody tr:nth-child(2n){background:#242830}.crons-table tbody tr:hover{background:#353a45}.crons-table tbody tr td{border-bottom:1px solid #3a3f4b;color:#e4e6eb;font-size:.75rem;padding:.5rem}.crons-table tbody tr td.col-end,.crons-table tbody tr td.col-start{color:#b0b3b8;font-family:monospace}.crons-table tbody tr td.col-name{color:#3b82f6;font-weight:500}.crons-table tbody tr td.col-info{word-wrap:break-word;color:#b0b3b8}