/* PLAY v1.0 — Dark Liquid Glass */
*{box-sizing:border-box;margin:0;padding:0}

:root{
  --bg:#050607;
  --surface:#0D1117;
  --surface2:#141A22;
  --border:rgba(255,255,255,0.07);
  --border2:rgba(255,255,255,0.12);
  --accent:#3B82F6;
  --accent-h:rgba(59,130,246,0.8);
  --danger:#EF4444;
  --text:#E6E8EA;
  --text2:rgba(255,255,255,0.5);
  --text3:rgba(255,255,255,0.3);
  --glass:rgba(13,17,23,0.7);
  --glass2:rgba(20,26,34,0.85);
  --radius:12px;
  --radius-sm:8px;
  --gap:10px;
}

html,body{height:100%;background:var(--bg);color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Segoe UI',system-ui,sans-serif;
  font-size:14px;line-height:1.5;overflow:hidden}

/* HEADER */
#hdr{
  position:fixed;top:0;left:0;right:0;height:52px;z-index:100;
  display:flex;align-items:center;gap:12px;padding:0 16px;
  background:rgba(5,6,7,0.8);
  border-bottom:1px solid var(--border);
  backdrop-filter:blur(20px) saturate(180%);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
}
.hdr-left,.hdr-right{display:flex;align-items:center;gap:8px;flex-shrink:0}
.hdr-center{flex:1;max-width:480px;margin:0 auto}

.logo{display:flex;align-items:center;gap:9px}
.logo-icon{
  width:32px;height:32px;border-radius:9px;
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.12);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.logo-icon svg{width:16px;height:16px}
.logo-text{font-size:15px;font-weight:700;letter-spacing:.04em}

.search-wrap{
  position:relative;display:flex;align-items:center;
}
.search-icon{position:absolute;left:10px;width:15px;height:15px;color:var(--text3);pointer-events:none}
#search-input{
  width:100%;padding:7px 32px 7px 34px;
  background:rgba(255,255,255,0.05);
  border:1px solid var(--border);border-radius:10px;
  color:var(--text);font-size:14px;outline:none;
  transition:border-color .2s,box-shadow .2s;
}
#search-input:focus{border-color:rgba(59,130,246,0.4);box-shadow:0 0 0 3px rgba(59,130,246,0.08)}
.search-clear{position:absolute;right:8px;background:none;border:none;color:var(--text3);cursor:pointer;font-size:12px;padding:2px 4px}

.view-btns{display:flex;gap:2px;background:rgba(255,255,255,0.04);border-radius:10px;padding:3px}
.view-btn{
  display:flex;align-items:center;gap:4px;
  padding:4px 8px;border-radius:7px;border:none;
  background:none;color:var(--text2);cursor:pointer;
  font-size:11px;font-weight:600;letter-spacing:.04em;
  transition:background .15s,color .15s;
}
.view-btn svg{width:14px;height:14px}
.view-btn:hover{background:rgba(255,255,255,0.07);color:var(--text)}
.view-btn.active{background:rgba(255,255,255,0.1);color:var(--text)}

.icon-btn{
  width:32px;height:32px;border-radius:8px;border:none;
  background:none;color:var(--text2);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .15s,color .15s;
}
.icon-btn svg{width:16px;height:16px}
.icon-btn:hover{background:rgba(255,255,255,0.07);color:var(--text)}

/* LAYOUT */
#app{
  display:grid;grid-template-columns:200px 1fr;
  height:calc(100vh - 52px);margin-top:52px;overflow:hidden;
}

/* SIDEBAR */
#sidebar{
  background:var(--surface);border-right:1px solid var(--border);
  overflow-y:auto;padding:12px 8px;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.1) transparent;
}
.sidebar-section{margin-bottom:16px}
.sidebar-label{
  font-size:10px;font-weight:600;color:var(--text3);
  text-transform:uppercase;letter-spacing:.08em;
  padding:0 8px;margin-bottom:6px;
}
.source-item{
  display:flex;align-items:center;gap:8px;
  padding:8px 10px;border-radius:var(--radius-sm);
  cursor:pointer;transition:background .15s;
  user-select:none;
}
.source-item:hover{background:rgba(255,255,255,0.05)}
.source-item.active{background:rgba(59,130,246,0.15);color:var(--accent)}
.source-item svg{width:16px;height:16px;flex-shrink:0;opacity:.7}
.source-name{font-size:13px;font-weight:500;flex:1}
.source-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.source-dot.on{background:#34D399}
.source-dot.off{background:rgba(255,255,255,0.2)}

/* MAIN CONTENT */
#main{overflow-y:auto;padding:12px 16px 24px;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.1) transparent;
}

/* BREADCRUMBS */
.breadcrumbs{display:flex;align-items:center;gap:4px;flex-wrap:wrap;
  margin-bottom:12px;min-height:24px;}
.crumb{
  font-size:12px;color:var(--text2);cursor:pointer;padding:2px 6px;border-radius:5px;
  white-space:nowrap;transition:color .15s,background .15s;
}
.crumb:hover{color:var(--text);background:rgba(255,255,255,0.05)}
.crumb.last{color:var(--text);pointer-events:none}
.crumb-sep{color:var(--text3);font-size:11px}

/* FILE GRID */
.file-grid{display:grid;gap:var(--gap)}
.file-grid.grid-s{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
.file-grid.grid-m{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.file-grid.grid-l{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.file-grid.list-view{grid-template-columns:1fr;gap:2px}

.file-item{
  border-radius:var(--radius);
  background:var(--surface);
  border:1px solid var(--border);
  cursor:pointer;overflow:hidden;
  transition:border-color .2s,box-shadow .2s,transform .15s;
  position:relative;
}
.file-item:hover{border-color:var(--border2);box-shadow:0 4px 20px rgba(0,0,0,0.4);transform:translateY(-1px)}
.file-item.selected{border-color:var(--accent);box-shadow:0 0 0 2px rgba(59,130,246,0.2)}
.file-item.directory{background:var(--surface2)}

.thumb-wrap{aspect-ratio:16/9;background:rgba(255,255,255,0.03);position:relative;overflow:hidden}
.thumb-wrap img{width:100%;height:100%;object-fit:cover;display:block}
.thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.thumb-placeholder svg{width:32px;height:32px;opacity:.2}
.duration-badge{
  position:absolute;bottom:6px;right:6px;
  background:rgba(0,0,0,0.75);backdrop-filter:blur(4px);
  color:#fff;font-size:11px;font-weight:500;
  padding:2px 6px;border-radius:4px;
}
.file-info{padding:8px 10px}
.file-name{font-size:12px;font-weight:500;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  margin-bottom:2px;
}
.file-meta{font-size:11px;color:var(--text2)}

.grid-s .thumb-wrap{aspect-ratio:16/9}
.grid-s .file-info{padding:6px 8px}
.grid-s .file-name{font-size:11px}
.grid-l .file-name{font-size:13px}

/* List view */
.file-grid.list-view .file-item{
  display:grid;
  grid-template-columns:80px 1fr auto auto auto auto;
  align-items:center;gap:12px;padding:6px 10px;
  border-radius:var(--radius-sm);
}
.file-grid.list-view .thumb-wrap{
  width:80px;height:45px;border-radius:6px;aspect-ratio:unset;flex-shrink:0;
}
.file-grid.list-view .file-info{padding:0;min-width:0}
.file-grid.list-view .file-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}
.file-grid.list-view .file-meta{display:none}
.list-col{font-size:12px;color:var(--text2);white-space:nowrap;text-align:right}

/* Directory items */
.dir-item{
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;
  border-radius:var(--radius);
  background:var(--surface2);
  border:1px solid var(--border);
  cursor:pointer;
  transition:background .15s,border-color .15s;
}
.dir-item:hover{background:rgba(255,255,255,0.05);border-color:var(--border2)}
.dir-item svg{width:20px;height:20px;color:var(--text2);flex-shrink:0}
.dir-item-name{font-size:13px;font-weight:500}

/* EMPTY STATE */
.empty-state{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  height:300px;gap:16px;color:var(--text3);
}
.empty-state p{font-size:14px}

/* PLAYER OVERLAY */
.player-overlay{
  position:fixed;inset:0;z-index:200;
  display:flex;flex-direction:column;
  background:#000;
}
.player-overlay[hidden]{display:none}
.player-bg{
  position:absolute;inset:0;background:#000;
  transition:background .3s;
}
.player-container{
  position:relative;z-index:1;
  display:flex;flex-direction:column;height:100%;
}
.player-top{
  display:flex;align-items:center;gap:12px;padding:12px 16px;
  background:linear-gradient(to bottom,rgba(0,0,0,0.8) 0%,transparent 100%);
  position:absolute;top:0;left:0;right:0;z-index:10;
}
.player-back{
  background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.1);
  border-radius:8px;width:34px;height:34px;
  display:flex;align-items:center;justify-content:center;
  color:#fff;cursor:pointer;transition:background .15s;
  flex-shrink:0;
}
.player-back:hover{background:rgba(255,255,255,0.15)}
.player-back svg{width:18px;height:18px}
.player-filename{
  font-size:14px;font-weight:500;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;
  color:#fff;
}
.player-meta{
  display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap;
}
.meta-chip{
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.1);
  border-radius:5px;padding:2px 8px;font-size:11px;color:rgba(255,255,255,0.7);
  white-space:nowrap;
}

.player-area{
  flex:1;position:relative;display:flex;align-items:center;justify-content:center;
}
#video-el{
  width:100%;height:100%;object-fit:contain;
  cursor:pointer;
}
.player-controls{
  position:absolute;bottom:0;left:0;right:0;
  background:linear-gradient(to top,rgba(0,0,0,0.85) 0%,transparent 100%);
  padding:48px 16px 16px;
  opacity:1;transition:opacity .3s;
}
.player-overlay.controls-hidden .player-controls{opacity:0}
.player-overlay.controls-hidden .player-top{opacity:0}
.player-overlay.controls-hidden #video-el{cursor:none}

.progress-bar-wrap{
  position:relative;height:4px;border-radius:2px;
  margin-bottom:12px;cursor:pointer;
}
.progress-bg{position:absolute;inset:0;background:rgba(255,255,255,0.15);border-radius:2px}
.progress-fill{
  position:absolute;top:0;left:0;bottom:0;
  background:var(--accent);border-radius:2px;pointer-events:none;
}
.progress-thumb{
  position:absolute;top:50%;transform:translate(-50%,-50%);
  width:12px;height:12px;border-radius:50%;background:#fff;
  pointer-events:none;box-shadow:0 0 4px rgba(0,0,0,0.5);
}
.progress-bar-wrap:hover .progress-bg{height:6px;margin-top:-1px}

.controls-row{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
}
.ctrl-left,.ctrl-right{display:flex;align-items:center;gap:4px}
.ctrl-btn{
  width:36px;height:36px;border-radius:8px;border:none;
  background:rgba(255,255,255,0.06);color:#fff;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:background .15s;flex-shrink:0;
}
.ctrl-btn svg{width:18px;height:18px}
.ctrl-btn:hover{background:rgba(255,255,255,0.14)}
.ctrl-btn.ctrl-play{width:40px;height:40px;background:rgba(59,130,246,0.8)}
.ctrl-btn.ctrl-play:hover{background:var(--accent)}
.ctrl-btn.danger:hover{background:rgba(239,68,68,0.3)}
.time-display{font-size:12px;color:rgba(255,255,255,0.7);padding:0 4px;white-space:nowrap}
.volume-wrap{display:flex;align-items:center;gap:4px}
.vol-range{
  width:70px;height:4px;-webkit-appearance:none;appearance:none;
  background:rgba(255,255,255,0.2);border-radius:2px;outline:none;cursor:pointer;
}
.vol-range::-webkit-slider-thumb{
  -webkit-appearance:none;width:12px;height:12px;border-radius:50%;
  background:#fff;cursor:pointer;
}

/* SETTINGS PANEL */
.panel{
  position:fixed;top:52px;right:0;bottom:0;width:320px;z-index:150;
  background:var(--glass2);
  border-left:1px solid var(--border);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  display:flex;flex-direction:column;
}
.panel[hidden]{display:none}
.panel-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 16px;border-bottom:1px solid var(--border);
  font-size:14px;font-weight:600;
}
.panel-body{overflow-y:auto;flex:1;padding:16px}
.panel-section-label{
  font-size:10px;font-weight:600;color:var(--text3);
  text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px;
}
.panel-backdrop{
  position:fixed;inset:0;z-index:149;background:rgba(0,0,0,0.3);
  backdrop-filter:blur(2px);
}
.panel-backdrop[hidden]{display:none}

.source-card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius);padding:12px 14px;margin-bottom:8px;
}
.source-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.source-card-name{font-size:14px;font-weight:600}
.source-card-path{font-size:11px;color:var(--text2);margin-bottom:10px;word-break:break-all}
.source-card-actions{display:flex;gap:6px}
.btn-small{
  padding:5px 10px;border-radius:6px;font-size:12px;border:1px solid;cursor:pointer;
  transition:background .15s,color .15s;
}
.btn-enable{background:rgba(52,211,153,0.1);border-color:rgba(52,211,153,0.3);color:#34D399}
.btn-enable:hover{background:rgba(52,211,153,0.2)}
.btn-disable{background:rgba(255,255,255,0.05);border-color:rgba(255,255,255,0.1);color:var(--text2)}
.btn-disable:hover{background:rgba(255,255,255,0.1)}
.btn-remove{background:rgba(239,68,68,0.1);border-color:rgba(239,68,68,0.25);color:#f87171}
.btn-remove:hover{background:rgba(239,68,68,0.2)}

/* DIALOG */
.dialog{
  position:fixed;inset:0;z-index:300;
  display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,0.6);backdrop-filter:blur(4px);
}
.dialog[hidden]{display:none}
.dialog-box{
  background:var(--surface);border:1px solid var(--border2);border-radius:16px;
  width:400px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;
}
.dialog-header{padding:14px 16px;font-size:15px;font-weight:600;border-bottom:1px solid var(--border)}
.dialog-body{padding:14px 16px;overflow-y:auto;flex:1}
.dialog-label{font-size:12px;color:var(--text2);margin-bottom:8px}
.dialog-footer{
  padding:12px 16px;border-top:1px solid var(--border);
  display:flex;justify-content:flex-end;gap:8px;
}
.move-tree{display:flex;flex-direction:column;gap:2px}
.move-tree-item{
  padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer;
  font-size:13px;transition:background .1s;
}
.move-tree-item:hover{background:rgba(255,255,255,0.06)}
.move-tree-item.selected{background:rgba(59,130,246,0.15);color:var(--accent)}

.btn-primary{
  padding:8px 16px;border-radius:8px;border:none;
  background:var(--accent);color:#fff;font-size:13px;font-weight:600;cursor:pointer;
}
.btn-primary:hover{background:var(--accent-h)}
.btn-secondary{
  padding:8px 16px;border-radius:8px;
  background:rgba(255,255,255,0.06);border:1px solid var(--border);
  color:var(--text);font-size:13px;cursor:pointer;
}
.btn-secondary:hover{background:rgba(255,255,255,0.1)}

/* CHANGE PASSWORD PAGE */
.fullpage{
  position:fixed;inset:0;z-index:500;
  background:var(--bg);display:flex;align-items:center;justify-content:center;
}
.fullpage[hidden]{display:none}
.card-center{
  background:rgba(13,17,23,0.9);border:1px solid var(--border2);
  border-radius:20px;padding:36px;width:360px;max-width:90vw;
  backdrop-filter:blur(24px);
}
.field{margin-bottom:14px}
label{display:block;font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}
input[type="text"],input[type="password"],input[type="search"]:not(#search-input){
  width:100%;padding:10px 12px;
  background:rgba(255,255,255,0.05);border:1px solid var(--border);border-radius:9px;
  color:var(--text);font-size:14px;outline:none;
  transition:border-color .2s;
}
input[type="text"]:focus,input[type="password"]:focus{border-color:rgba(59,130,246,0.4)}
.error-msg{color:#f87171;font-size:12px;margin-top:8px}

/* TOAST */
.toast{
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%);
  background:rgba(20,26,34,0.95);border:1px solid var(--border2);
  border-radius:10px;padding:10px 18px;font-size:13px;
  backdrop-filter:blur(12px);z-index:400;
  transition:opacity .3s;white-space:nowrap;
}
.toast[hidden]{display:none}
.toast.error{border-color:rgba(239,68,68,0.4);color:#f87171}

/* SCROLLBARS */
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.1);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,0.2)}

/* TRANSITIONS */
.player-overlay{transition:opacity .2s}
