:root{--color-bg:#0f0f12;--color-surface:#1a1a20;--color-border:#2d2d35;--color-text:#e8e8ec;--color-text-muted:#9090a0;--color-primary:#4a9eff;--color-primary-hover:#6bb1ff;--color-danger:#e85a5a;--color-success:#4ade80;--font-sans:"Segoe UI",system-ui,sans-serif;--radius:10px;--shadow:0 4px 24px rgba(0,0,0,.4)}*,:after,:before{box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);line-height:1.5}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-hover);text-decoration:underline}button{font-family:inherit;cursor:pointer}input,textarea{font-family:inherit;font-size:1rem}.btn-primary{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius);font-weight:600;transition:background .2s}.btn-primary:hover{background:var(--color-primary-hover);text-decoration:none}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);font-weight:500;transition:border-color .2s,background .2s}.btn-secondary:hover{background:#222228;border-color:var(--color-primary);text-decoration:none}.btn-danger{background:var(--color-danger);color:#fff;border:none;padding:.5rem 1rem;border-radius:var(--radius);font-size:.9rem}.btn-danger:hover{filter:brightness(1.1)}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 1rem}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.35rem;font-weight:500;color:var(--color-text-muted)}.form-group input,.form-group textarea{width:100%;padding:.6rem .75rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text)}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary)}.form-group textarea{min-height:100px;resize:vertical}.alert{padding:.75rem 1rem;border-radius:var(--radius);margin-bottom:1rem}.alert-error{background:rgba(232,90,90,.15);border:1px solid var(--color-danger);color:#f0a0a0}.alert-success{background:rgba(74,222,128,.15);border:1px solid var(--color-success);color:#90e0a0}.alert-info{background:rgba(74,158,255,.15);border:1px solid var(--color-primary);color:#a0c8ff}.login-layout,.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.login-card{max-width:400px;width:100%;text-align:center}.login-title{margin:0 0 .5rem;font-size:1.5rem}.login-subtitle{margin:0 0 1.5rem;color:var(--color-text-muted);font-size:.95rem}.login-btn{width:100%;padding:.85rem 1.5rem;font-size:1rem}.blocked-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.blocked-card{max-width:420px;text-align:center}.blocked-card h1{margin:0 0 .5rem;color:var(--color-danger)}.register-page{min-height:100vh;padding:2rem 1rem}.register-card{max-width:440px;margin:0 auto}.register-card h1{margin:0 0 .5rem}.register-card p{color:var(--color-text-muted);margin:0 0 1.5rem}.video-page{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,#c5d4e8,#e2eaf2 25%,#f0f4f8 50%,#e8eef4 75%,#d4dfea);background-attachment:fixed}.video-header{padding:1rem 1.5rem;flex-shrink:0;position:relative}.video-header,.video-header .logo-wrap{display:flex;align-items:center;justify-content:center}.video-header .logo-wrap{max-height:90px;max-width:380px}.video-header .logo-wrap img{max-height:90px;max-width:100%;height:auto;object-fit:contain;display:block}.video-header .logo-wrap span{color:#8b6b5c;font-size:1.25rem;font-weight:600}.video-header .btn-logout{position:absolute;left:1rem;top:50%;transform:translateY(-50%);padding:.5rem 1rem;background:rgba(139,107,92,.15);color:#6b4d40;border:1px solid rgba(139,107,92,.4);border-radius:var(--radius);font-size:.9rem}.video-header .btn-logout:hover{background:rgba(139,107,92,.25)}.video-main{flex:1 1;flex-direction:column;padding:0 1.5rem 1.5rem;max-width:1100px;margin:0 auto}.video-main,.video-wrapper{display:flex;min-height:400px;width:100%}.video-wrapper{position:relative;flex:1 1;background:#2a2a32;border-radius:8px;box-shadow:0 8px 32px rgba(0,0,0,.2);overflow:hidden;align-items:center;justify-content:center}.video-wrapper video{width:100%;height:100%;object-fit:contain}.video-player-container{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#2a2a32}.video-player-container:-webkit-full-screen{background:#000}.video-player-container:-webkit-full-screen,.video-player-container:fullscreen{background:#000}.video-player-container video{width:100%;height:100%;object-fit:contain}@keyframes watermark-drift{0%,to{transform:translateX(-3%)}50%{transform:translateX(3%)}}.video-watermark{top:25%;left:0;right:0;height:50%;justify-content:center;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;color:#e63946;font-size:clamp(24px,8vw,72px);font-weight:300;letter-spacing:.02em;text-shadow:0 1px 3px rgba(0,0,0,.3);z-index:2;overflow:hidden;animation:watermark-drift 12s ease-in-out infinite}.video-unmute-btn,.video-watermark{position:absolute;display:flex;align-items:center}.video-unmute-btn{top:50%;left:50%;transform:translate(-50%,-50%);padding:.75rem 1.5rem;border:none;border-radius:8px;background:rgba(0,0,0,.75);color:#fff;font-size:1rem;cursor:pointer;z-index:4;gap:.5rem;transition:background .2s}.video-unmute-btn:hover{background:rgba(0,0,0,.9)}.video-fullscreen-btn{position:absolute;bottom:1rem;right:1rem;width:40px;height:40px;border:none;border-radius:6px;background:rgba(0,0,0,.6);color:#fff;font-size:1.25rem;cursor:pointer;z-index:3;display:flex;align-items:center;justify-content:center;transition:background .2s}.video-fullscreen-btn:hover{background:rgba(0,0,0,.8)}.admin-layout{min-height:100vh;background:var(--color-bg)}.admin-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:.75rem 1rem}.admin-header-inner{max-width:1200px;margin:0 auto;align-items:center;justify-content:space-between}.admin-header-inner,.admin-nav{display:flex;flex-wrap:wrap;gap:.5rem}.admin-nav a{padding:.5rem .75rem;border-radius:var(--radius);color:var(--color-text-muted)}.admin-nav a:hover{background:var(--color-surface);color:var(--color-primary);text-decoration:none}.admin-content{max-width:1200px;margin:0 auto;padding:1.5rem 1rem}.admin-section .card{margin-bottom:1rem}.admin-section h2{margin:0 0 1rem;font-size:1.25rem}.list-table{width:100%;border-collapse:collapse}.list-table td,.list-table th{padding:.6rem .75rem;text-align:right;border-bottom:1px solid var(--color-border)}.list-table th{color:var(--color-text-muted);font-weight:600;font-size:.85rem}.list-table tr:hover td{background:hsla(0,0%,100%,.03)}.list-actions{display:flex;gap:.5rem;justify-content:flex-end}.add-row{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.add-row input{flex:1 1;min-width:200px;padding:.6rem .75rem;background:var(--color-bg);color:var(--color-text)}.add-row input,.whitelist-import{border:1px solid var(--color-border);border-radius:var(--radius)}.whitelist-import{margin-bottom:1rem;padding:1rem;background:hsla(0,0%,100%,.02)}.whitelist-import-header{font-size:.9rem;color:var(--color-text-muted);margin-bottom:.75rem}.whitelist-import-body{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.whitelist-import-file{cursor:pointer;margin:0;display:inline-flex}.whitelist-import-file input{display:none}.whitelist-import-divider{color:var(--color-text-muted);font-size:.9rem}.whitelist-import-body .import-paste{flex:1 1;min-width:180px;padding:.5rem .75rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);resize:vertical;max-height:80px}.upload-zone{border:2px dashed var(--color-border);border-radius:var(--radius);padding:2rem;text-align:center;background:var(--color-bg);margin-bottom:1rem}.upload-zone input[type=file]{display:none}.upload-zone label{cursor:pointer;color:var(--color-primary)}.upload-zone.has-file{border-color:var(--color-success);background:rgba(74,222,128,.08)}