:root{--bg-base:#000;--bg-card:#111;--bg-element:#0a0a0a;--text-primary:#fff;--text-secondary:#a1a1aa;--text-muted:#71717a;--accent:#ff6b00;--border:#27272a;--font-primary:"Goldman", sans-serif;--font-secondary:"Michroma", sans-serif;--border-radius:6px;--shadow-subtle:0 4px 6px -1px #0000001a;--shadow-glow:0 0 30px #ff6b001f}[data-theme=light]{--bg-base:#f4f4f5;--bg-card:#fff;--bg-element:#fafafa;--text-primary:#18181b;--text-secondary:#52525b;--text-muted:#71717a;--border:#d4d4d8;--shadow-glow:0 4px 20px #0000000d}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-secondary);background-color:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;line-height:1.5;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-primary);color:var(--text-primary)}a{color:var(--accent);text-decoration:none}.text-muted{color:var(--text-muted)}.text-accent{color:var(--accent)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-base)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#3f3f46}button{font-family:var(--font-secondary);cursor:pointer;border-radius:var(--border-radius);background:0 0;border:none;font-weight:500;transition:all .2s}button:disabled{cursor:not-allowed;opacity:.6}.primary{background-color:var(--accent);color:#000;letter-spacing:.02em;padding:.5rem 1.25rem;font-weight:700}.primary:hover:not(:disabled){opacity:.9;transform:translateY(-1px);box-shadow:0 4px 20px #ff6b004d}.secondary-btn{color:#fff;border:1px solid var(--border);background-color:#27272a;padding:.5rem 1.25rem}.secondary-btn:hover:not(:disabled){background-color:#3f3f46}.danger-btn{color:#f87171;background-color:#ef444426;border:1px solid #ef44444d;padding:.4rem .9rem;font-size:.8rem}.danger-btn:hover:not(:disabled){background-color:#ef444440}.icon-btn-ghost{color:var(--text-muted);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;display:flex}.icon-btn-ghost:hover{color:var(--text-primary);background:#80808026}.page-container{box-sizing:border-box;width:100%;padding:2rem;overflow-x:hidden}.main-content{flex:1;min-width:0;min-height:100vh;margin-left:260px;overflow-x:hidden}@media (width<=1024px){.main-content{margin-left:0;padding-top:60px}.page-container{padding:1rem}}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.page-title{margin:0;font-size:1.5rem}.card-container{background-color:var(--bg-card);border:1px solid var(--border);border-radius:var(--border-radius);padding:1.5rem}.stat-card{background-color:var(--bg-card);border:1px solid var(--border);border-radius:var(--border-radius);padding:1.5rem;transition:border-color .2s,transform .2s;position:relative;overflow:hidden}.stat-card:hover{border-color:#ff6b004d;transform:translateY(-2px)}.stat-card:before{content:"";background:linear-gradient(90deg, transparent, var(--accent), transparent);opacity:0;height:2px;transition:opacity .2s;position:absolute;top:0;left:0;right:0}.stat-card:hover:before{opacity:1}.stat-value{font-family:var(--font-primary);color:var(--text-primary);font-size:2rem;line-height:1.2}.stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-top:.25rem;font-size:.8rem}.stat-icon{width:40px;height:40px;color:var(--accent);background:#ff6b001a;border-radius:8px;justify-content:center;align-items:center;font-size:1.1rem;display:flex;position:absolute;top:1.25rem;right:1.25rem}.stats-grid{grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem;display:grid}.grid-2{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}.table-responsive{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.data-table{border-collapse:collapse;width:100%}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border);padding:1rem}.data-table th{color:var(--text-secondary);font-size:.8rem;font-weight:500;font-family:var(--font-secondary);text-transform:uppercase;letter-spacing:.06em}.data-table td{font-family:var(--font-secondary);color:var(--text-primary);font-size:.875rem}.data-table tbody tr:hover{background-color:#ffffff05}.data-table.dense th,.data-table.dense td{white-space:nowrap;padding:.75rem 1rem}.table-toolbar{border-bottom:1px solid var(--border);background-color:var(--bg-element);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:1rem 1.25rem;display:flex}.toolbar-filters{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.search-box{align-items:center;display:flex;position:relative}.search-box i{color:var(--text-muted);font-size:.875rem;position:absolute;left:.875rem}.search-box input{background-color:var(--bg-base);border:1px solid var(--border);color:var(--text-primary);font-family:var(--font-secondary);border-radius:6px;width:260px;padding:.5rem 1rem .5rem 2.5rem;font-size:.875rem;transition:border-color .2s}.search-box input:focus{border-color:var(--accent);outline:none}.filter-select{background-color:var(--bg-base);border:1px solid var(--border);color:var(--text-primary);font-family:var(--font-secondary);cursor:pointer;border-radius:6px;padding:.5rem 1rem;font-size:.875rem;transition:border-color .2s}.filter-select:focus{border-color:var(--accent);outline:none}.badge{font-size:.7rem;font-weight:600;font-family:var(--font-secondary);text-transform:uppercase;letter-spacing:.04em;border-radius:9999px;padding:.25rem .75rem;display:inline-block}.badge.active{color:#4ade80;background-color:#22c55e26;border:1px solid #22c55e40}.badge.inactive,.badge.expired{color:#f87171;background-color:#ef444426;border:1px solid #ef444440}.badge.pending,.badge.expiring{color:#facc15;background-color:#eab30826;border:1px solid #eab30840}.badge.permanent{color:#a78bfa;background-color:#6366f126;border:1px solid #6366f140}.form-group{flex-direction:column;gap:.5rem;margin-bottom:1.25rem;display:flex}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:500}.form-input,.form-select,.form-textarea{background-color:var(--bg-element);border:1px solid var(--border);color:var(--text-primary);border-radius:var(--border-radius);font-family:var(--font-secondary);width:100%;padding:.625rem .875rem;font-size:.875rem;transition:border-color .2s,box-shadow .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #ff6b0014}.form-input::placeholder{color:var(--text-muted)}.form-select{cursor:pointer}.form-select option{background-color:var(--bg-card)}.progress-bar-wrapper{background-color:var(--border);border-radius:9999px;width:100%;height:6px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--accent), #ff9940);border-radius:9999px;height:100%;transition:width .15s;position:relative}.progress-bar-fill:after{content:"";background:linear-gradient(90deg,#0000,#fff6);width:20px;height:100%;animation:1s infinite shimmer;position:absolute;top:0;right:0}@keyframes shimmer{0%{opacity:1}50%{opacity:.3}to{opacity:1}}.toast-container{z-index:9999;flex-direction:column;gap:.75rem;display:flex;position:fixed;bottom:2rem;right:2rem}.toast{background-color:var(--bg-card);border:1px solid var(--border);border-radius:8px;align-items:flex-start;gap:.75rem;min-width:300px;max-width:400px;padding:1rem 1.25rem;animation:.3s slideIn;display:flex;box-shadow:0 8px 24px #0006}.toast.success{border-left:3px solid #4ade80}.toast.error{border-left:3px solid #f87171}.toast.info{border-left:3px solid var(--accent)}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000bf;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-box{background-color:var(--bg-card);border:1px solid var(--border);width:100%;max-width:520px;max-height:90vh;box-shadow:var(--shadow-glow);border-radius:12px;padding:2rem;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.drop-zone{border:2px dashed var(--border);text-align:center;cursor:pointer;border-radius:12px;padding:3rem 2rem;transition:border-color .2s,background-color .2s;position:relative}.drop-zone:hover,.drop-zone.drag-over{border-color:var(--accent);background-color:#ff6b000a}.drop-zone-icon{color:var(--text-muted);margin-bottom:1rem;font-size:3rem;transition:color .2s}.drop-zone:hover .drop-zone-icon,.drop-zone.drag-over .drop-zone-icon{color:var(--accent)}.divider{background-color:var(--border);height:1px;margin:1.5rem 0}.empty-state{text-align:center;color:var(--text-muted);padding:4rem 2rem}.empty-state i{opacity:.4;margin-bottom:1rem;font-size:3rem}.file-item{border:1px solid var(--border);background:var(--bg-element);border-radius:6px;align-items:center;gap:1rem;margin-bottom:.5rem;padding:.875rem 1rem;transition:border-color .2s;display:flex}.file-item:hover{border-color:#ff6b004d}.file-icon{width:40px;height:40px;color:var(--accent);background:#ff6b001a;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;display:flex}.file-info{flex:1;min-width:0}.file-name{white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:500;overflow:hidden}.file-meta{color:var(--text-muted);margin-top:.2rem;font-size:.75rem}.file-actions{flex-shrink:0;gap:.5rem;display:flex}.client-card{background:var(--bg-card);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:1.25rem;transition:all .2s;position:relative}.client-card:hover{border-color:var(--accent);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.client-card-header{align-items:center;gap:.875rem;margin-bottom:.75rem;display:flex}.client-avatar{background:linear-gradient(135deg, var(--accent), #ff9940);width:44px;height:44px;font-family:var(--font-primary);color:#000;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;font-weight:700;display:flex}.client-name{font-family:var(--font-primary);font-size:.95rem}.client-slug{color:var(--text-muted);margin-top:.1rem;font-size:.75rem}.client-files-count{color:var(--text-secondary);align-items:center;gap:.5rem;font-size:.8rem;display:flex}.clients-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}@media (width<=1200px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.stats-grid,.grid-2{grid-template-columns:1fr}.table-responsive{border:1px solid var(--border);border-radius:var(--border-radius);margin-bottom:1rem}.data-table th,.data-table td{padding:.625rem .75rem;font-size:.8rem}.search-box input{width:100%}.toolbar-filters{flex-direction:column;align-items:flex-start;width:100%}.filter-select{width:100%}.toast-container{bottom:1rem;left:1rem;right:1rem}.toast{min-width:unset;max-width:unset}.modal-box{padding:1.25rem}}.app-sidebar{background-color:var(--bg-card);border-right:1px solid var(--border);z-index:50;flex-direction:column;width:260px;height:100vh;transition:transform .3s;display:flex;position:fixed;top:0;left:0;overflow:hidden}@media (width<=1024px){.app-sidebar{transform:translate(-100%)}.app-sidebar.open{transform:translate(0)}}.sidebar-overlay{z-index:40;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#000000a6;position:fixed;inset:0}.sidebar-brand{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;height:72px;padding:0 1.5rem;display:flex}.sidebar-brand img{width:100%!important;height:fit-content!important;padding:10px!important}.brand-logo-text{font-family:var(--font-primary);letter-spacing:.5px;color:#fff;white-space:nowrap;font-size:1.1rem}.brand-logo-text strong{color:var(--accent)}.sidebar-menu-wrapper{flex:1;padding:1.25rem 0;overflow-y:auto}.sidebar-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;font-weight:600;font-family:var(--font-secondary);padding:.375rem 1.5rem .5rem}.sidebar-menu{margin:0 0 1.5rem;padding:0;list-style:none}.sidebar-item a{color:var(--text-secondary);font-size:.875rem;font-family:var(--font-secondary);border-right:3px solid #0000;align-items:center;gap:.875rem;padding:.7rem 1.5rem;text-decoration:none;transition:background-color .15s,color .15s;display:flex}.sidebar-item a:hover{color:var(--text-primary);background-color:#ff6b000f}.sidebar-item a.active{color:var(--accent);border-right-color:var(--accent);background-color:#ff6b0014}.sidebar-item a .sidebar-icon{flex-shrink:0;justify-content:center;align-items:center;width:20px;font-size:.9rem;display:flex}.sidebar-footer{border-top:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:.5rem;padding:1.25rem 1.5rem;display:flex}.sidebar-user-info{border-bottom:1px solid var(--border);align-items:center;gap:.75rem;margin-bottom:.5rem;padding:.75rem 0;display:flex}.sidebar-user-avatar{background:linear-gradient(135deg, var(--accent), #ff9940);width:34px;height:34px;font-family:var(--font-primary);color:#000;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:flex}.sidebar-user-name{color:var(--text-primary);font-size:.8rem;font-weight:500}.sidebar-user-role{color:var(--accent);margin-top:.1rem;font-size:.7rem}.sidebar-logout-btn{color:var(--text-muted);cursor:pointer;font-family:var(--font-secondary);text-align:left;background:0 0;border:none;align-items:center;gap:.75rem;width:100%;padding:.5rem 0;font-size:.875rem;transition:color .2s;display:flex}.sidebar-logout-btn:hover{color:#f87171}.mobile-header{z-index:30;background-color:#111;border-bottom:1px solid #27272a;justify-content:space-between;align-items:center;height:60px;padding:0 1rem;display:none;position:fixed;top:0;left:0;right:0}@media (width<=1024px){.mobile-header{display:flex}}.mobile-header-brand{font-family:var(--font-primary);color:#fff;font-size:1rem}.mobile-header-brand strong{color:var(--accent)}.hamburger-btn{color:#fff;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.25rem;transition:background-color .2s;display:flex}.hamburger-btn:hover{background-color:#ffffff14}.login-page{background-color:var(--bg-base);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex;position:relative;overflow:hidden}.login-bg-glow{pointer-events:none;z-index:0;background:radial-gradient(#ff6b001f 0%,#0000 70%);width:600px;height:400px;position:absolute;top:30%;left:50%;transform:translate(-50%,-50%)}.login-card{background-color:var(--bg-card);border:1px solid var(--border);z-index:1;border-radius:16px;width:100%;max-width:420px;padding:2.5rem;position:relative;box-shadow:0 0 60px #0009,0 0 40px #ff6b000f}.login-logo{text-align:center;margin-bottom:2rem}.login-logo-icon{width:64px;height:64px;color:var(--accent);background:linear-gradient(135deg,#ff6b0033,#ff6b000d);border:1px solid #ff6b004d;border-radius:16px;justify-content:center;align-items:center;margin:0 auto 1.25rem;font-size:1.75rem;display:flex}.login-title{font-family:var(--font-primary);color:var(--text-primary);margin-bottom:.4rem;font-size:1.5rem}.login-title span{color:var(--accent)}.login-subtitle{color:var(--text-muted);letter-spacing:.05em;font-size:.8rem}.login-divider{background:var(--border);height:1px;margin-bottom:1.75rem}.login-input-wrapper{align-items:center;display:flex;position:relative}.login-input-wrapper>i:first-child{color:var(--text-muted);z-index:1;font-size:.875rem;position:absolute;left:.875rem}.login-input{padding-left:2.5rem!important}.login-input-password{padding-right:2.75rem!important}.login-eye-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:.875rem;transition:color .2s;position:absolute;right:.75rem}.login-eye-btn:hover{color:var(--text-primary)}.login-submit-btn{border-radius:8px;justify-content:center;align-items:center;gap:.5rem;width:100%;margin-top:.5rem;padding:.75rem;font-size:.9rem;display:flex}.login-notice{text-align:center;color:var(--text-muted);margin-top:1.5rem;font-size:.75rem}.skeleton-line{background:linear-gradient(90deg,#1a1a1a 25%,#222 50%,#1a1a1a 75%) 0 0/200% 100%;border-radius:4px;animation:1.5s infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.upload-layout{grid-template-columns:1fr 360px;align-items:start;gap:1.5rem;display:grid}@media (width<=1100px){.upload-layout{grid-template-columns:1fr}}.upload-left{flex-direction:column;gap:1rem;display:flex}.upload-right{position:sticky;top:1.5rem}.upload-file-list{flex-direction:column;display:flex}.upload-file-item{border-radius:8px;transition:border-color .2s}.upload-file-item.done{border-color:#4ade804d}.upload-file-item.error{border-color:#f871714d}.upload-file-item.uploading{border-color:#ff6b004d}.upload-config-card{border-radius:10px}.upload-client-toggle{border:1px solid var(--border);background:#0a0a0a;border-radius:6px;gap:3px;padding:3px;display:flex}.upload-client-toggle button{font-size:.8rem;font-family:var(--font-secondary);color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:1;padding:.4rem .75rem;transition:all .2s}.upload-client-toggle button.active{background:var(--accent);color:#000;font-weight:700}.upload-url-preview{background:#ff6b000f;border:1px solid #ff6b0033;border-radius:6px;flex-direction:column;gap:.25rem;margin-top:-.5rem;margin-bottom:1rem;padding:.625rem .875rem;display:flex}.download-page{background-color:var(--bg-base);justify-content:center;align-items:flex-start;min-height:100vh;padding:2rem 1rem;display:flex;position:relative;overflow:hidden}.download-bg-glow{pointer-events:none;background:radial-gradient(#ff6b0014 0%,#0000 70%);width:800px;height:400px;position:fixed;top:-100px;left:50%;transform:translate(-50%)}.download-container{z-index:1;width:100%;max-width:720px;position:relative}.download-header{margin-bottom:2rem}.download-logo{text-align:center;border-bottom:1px solid var(--border);margin-bottom:2rem;padding:1rem 0}.download-client-info{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;align-items:center;gap:1.25rem;padding:1.5rem;display:flex}.download-client-avatar{background:linear-gradient(135deg, var(--accent), #ff9940);width:64px;height:64px;font-family:var(--font-primary);color:#000;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.75rem;font-weight:700;display:flex}.download-client-name{font-family:var(--font-primary);margin:0 0 .25rem;font-size:1.4rem}.download-client-subtitle{color:var(--text-secondary);font-size:.875rem}.download-files-list{flex-direction:column;gap:.75rem;margin-bottom:2rem;display:flex}.download-file-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;align-items:center;gap:1rem;padding:1.25rem;transition:border-color .2s,transform .2s;animation:.3s both fadeInUp;display:flex}.download-file-card:hover{border-color:#ff6b0059;transform:translate(4px)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.download-file-icon{width:48px;height:48px;color:var(--accent);background:#ff6b001a;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.25rem;display:flex}.download-file-info{flex:1;min-width:0}.download-file-name{white-space:nowrap;text-overflow:ellipsis;margin-bottom:.3rem;font-size:.925rem;font-weight:500;overflow:hidden}.download-file-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.75rem;display:flex}.download-btn{background:var(--accent);color:#000;font-family:var(--font-secondary);white-space:nowrap;border-radius:8px;flex-shrink:0;align-items:center;gap:.5rem;padding:.6rem 1.25rem;font-size:.875rem;font-weight:700;text-decoration:none;transition:all .2s;display:flex}.download-btn:hover{opacity:.9;color:#000;transform:translateY(-2px);box-shadow:0 4px 20px #ff6b004d}.download-loading,.download-empty,.download-notfound{text-align:center;color:var(--text-muted);padding:4rem 2rem}.download-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:48px;height:48px;margin:0 auto 1rem;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.download-notfound-icon{opacity:.3;margin-bottom:1rem;font-size:4rem}.download-notfound h1{margin-bottom:.5rem;font-size:1.5rem}.download-footer{text-align:center;border-top:1px solid var(--border);color:var(--text-muted);padding:1.5rem 0;font-size:.8rem}@media (width<=600px){.download-client-info{text-align:center;flex-direction:column}.download-file-card{flex-wrap:wrap}.download-btn{justify-content:center;width:100%}}
