@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--bg-dark: #0f111a;--bg-card: #151822;--bg-hover: #1b1e2a;--border-color: #2a2f3a;--text-main: #f3f4f6;--text-muted: #9ca3af;--text-light-muted: #6b7280;--primary-blue: #3b82f6;--primary-hover: #2563eb;--sidebar-w: 240px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,sans-serif;background-color:var(--bg-dark);color:var(--text-main);line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select{font-family:inherit}a{text-decoration:none;color:inherit}.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}.auth-header{text-align:center;margin-bottom:32px}.auth-logo-box{width:48px;height:48px;background-color:var(--primary-blue);border-radius:4px;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.auth-header h1{font-size:24px;font-weight:700;margin-bottom:4px;color:#fff}.auth-header p{color:var(--text-muted);font-size:14px}.auth-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:4px;width:100%;max-width:420px;padding:32px}.auth-card h2{font-size:18px;font-weight:600;margin-bottom:24px;color:#fff}.form-group{margin-bottom:16px;position:relative}.form-group label{display:block;font-size:13px;font-weight:600;margin-bottom:8px;color:#fff}.form-input{width:100%;background-color:var(--bg-dark);border:1px solid var(--border-color);border-radius:4px;padding:10px 12px;color:var(--text-main);font-size:14px;transition:border-color .2s}.form-input:focus{outline:none;border-color:var(--primary-blue)}.form-checkbox{display:flex;align-items:center;gap:8px;margin:24px 0;font-size:14px;color:var(--text-muted)}.btn-primary{width:100%;background-color:var(--primary-blue);color:#fff;border:none;border-radius:4px;padding:12px;font-size:15px;font-weight:600;cursor:pointer;transition:background-color .2s}.btn-primary:hover{background-color:var(--primary-hover)}.auth-footer{margin-top:48px;font-size:13px;color:var(--text-light-muted)}.app-container{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);background-color:var(--bg-card);border-right:1px solid var(--border-color);display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;z-index:10}.sidebar-header{height:64px;display:flex;align-items:center;padding:0 20px;gap:12px;font-weight:700;font-size:16px;color:#fff;border-bottom:1px solid var(--border-color)}.sidebar-logo{flex-shrink:0;width:28px;height:28px;background-color:var(--primary-blue);border-radius:4px;display:flex;align-items:center;justify-content:center;color:#fff}.sidebar-nav{padding:24px 16px;flex:1;overflow-y:auto}.nav-group{margin-bottom:24px}.nav-label{font-size:11px;font-weight:600;color:var(--text-light-muted);text-transform:uppercase;margin-bottom:8px;padding:0 12px;letter-spacing:.5px}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;color:var(--text-muted);font-size:14px;font-weight:500;border-radius:4px;cursor:pointer;transition:all .2s;background:transparent;border:none;width:100%;text-align:left;margin-bottom:4px}.nav-item:hover{background-color:var(--bg-hover);color:var(--text-main)}.nav-item.active{background-color:var(--bg-hover);color:#fff}.nav-icon{width:20px;height:20px;color:currentColor}.sidebar-footer{padding:16px 20px;border-top:1px solid var(--border-color);display:flex;align-items:center;gap:12px}.user-avatar{width:36px;height:36px;border-radius:50%;background-color:var(--primary-blue);display:flex;align-items:center;justify-content:center;font-weight:600;color:#fff}.user-info{display:flex;flex-direction:column}.user-name{font-size:14px;font-weight:600;color:#fff}.user-role{font-size:12px;color:var(--text-light-muted)}.main-area{flex:1;margin-left:var(--sidebar-w);display:flex;flex-direction:column;background-color:var(--bg-dark)}.top-bar{height:64px;background-color:var(--bg-dark);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 32px}.top-bar h1{font-size:18px;font-weight:700;color:#fff}.btn-upload{display:flex;align-items:center;gap:8px;background-color:var(--primary-blue);border:none;color:#fff;padding:8px 16px;border-radius:4px;font-size:14px;font-weight:600;cursor:pointer}.btn-upload:hover{background-color:var(--primary-hover)}.btn-upload input{display:none}.content-wrapper{padding:32px;background-color:var(--bg-dark)}.stats-container{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:24px}.stat-box{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:4px;padding:20px}.stat-label{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;margin-bottom:12px;letter-spacing:.5px}.stat-value{font-size:28px;font-weight:700;color:#fff}.data-panel{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:4px;overflow:hidden}.data-toolbar{padding:16px 20px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.toolbar-left,.toolbar-right{display:flex;gap:12px;align-items:center}.search-box{position:relative;width:240px}.search-box svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);width:16px;height:16px}.search-input{width:100%;background-color:var(--bg-dark);border:1px solid var(--border-color);border-radius:4px;padding:8px 12px 8px 36px;color:#fff;font-size:13px}.filter-select{background-color:var(--bg-dark);border:1px solid var(--border-color);border-radius:4px;padding:8px 36px 8px 12px;color:#fff;font-size:13px;font-weight:500;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%239ca3af'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px;cursor:pointer}.view-toggles{display:flex;background-color:var(--bg-dark);border:1px solid var(--border-color);border-radius:4px;overflow:hidden}.view-btn{padding:8px 12px;background:none;border:none;color:var(--text-muted);cursor:pointer;border-right:1px solid var(--border-color)}.view-btn:last-child{border-right:none}.view-btn.active{background-color:var(--primary-blue);color:#fff}.data-table-wrap{width:100%;overflow-x:auto}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;padding:16px 20px;font-size:11px;font-weight:700;color:var(--text-light-muted);text-transform:uppercase;border-bottom:1px solid var(--border-color);letter-spacing:.5px}.data-table td{padding:16px 20px;font-size:14px;color:#fff;border-bottom:1px solid var(--border-color);vertical-align:middle}.data-table tbody tr:hover{background-color:#ffffff05}.td-image img{width:40px;height:40px;border-radius:4px;object-fit:cover;background-color:var(--bg-dark);border:1px solid var(--border-color)}.file-link{color:var(--primary-blue);text-decoration:none;font-weight:500}.file-link:hover{text-decoration:underline}.badge-folder{display:inline-block;padding:4px 10px;background-color:#10b98126;color:#10b981;border-radius:4px;font-size:11px;font-weight:700;text-transform:uppercase}.td-size,.td-dim{color:var(--text-muted)}.action-btns{display:flex;gap:12px}.action-btn{background:none;border:none;color:var(--text-muted);cursor:pointer}.action-btn:hover{color:#fff}.error-msg{color:#ef4444;font-size:14px;margin-top:12px;text-align:center}input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-color:var(--bg-dark);border:1px solid var(--border-color);border-radius:4px;width:18px;height:18px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease;margin:0;vertical-align:middle}input[type=checkbox]:after{content:"";display:none;width:5px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg);margin-bottom:2px}input[type=checkbox]:checked{background-color:var(--primary-blue);border-color:var(--primary-blue)}input[type=checkbox]:checked:after{display:block}input[type=checkbox]:hover{border-color:var(--primary-blue)}
