:root{--bg:#f3f4f6;--panel:#fff;--head:#1f2937;--text:#374151;--border:#e5e7eb;--p:#3b82f6;--g:#10b981;--r:#ef4444;--w:#f59e0b;}
body{margin:0;font-family:'Segoe UI',sans-serif;display:flex;flex-direction:column;height:100vh;background:var(--bg);color:var(--text);overflow:hidden}
*{box-sizing:border-box}

/* LAYOUT */
header{background:var(--head);color:#fff;padding:0 15px;height:55px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;box-shadow:0 2px 4px rgba(0,0,0,0.1)}
.path{font-family:'Consolas',monospace;color:#9ca3af;margin-left:15px;font-size:14px}
.main{display:flex;flex:1;overflow:hidden}
.side{width:260px;background:var(--panel);border-right:1px solid var(--border);overflow:auto;padding:10px;font-size:13px}
.pane{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}
.bar{padding:10px 15px;background:var(--panel);border-bottom:1px solid var(--border);display:flex;gap:10px;align-items:center}
.view{flex:1;padding:20px;overflow:auto;background:var(--bg);padding-bottom:70px}

/* SEARCH BOX */
.search-box{display:flex;gap:5px;align-items:center;background:#111;padding:3px 3px 3px 10px;border-radius:6px;border:1px solid #4b5563;margin-left:20px}
.search-box input{background:transparent;border:none;color:#fff;font-size:13px;width:150px;padding:4px}
.search-box input:focus{box-shadow:none}

/* UPLOAD BOX */
.up-box{position:fixed;bottom:20px;right:20px;width:250px;background:#fff;padding:15px;border-radius:8px;box-shadow:0 5px 20px rgba(0,0,0,0.2);z-index:100;border:1px solid #ddd;animation:slideUp 0.3s}
.up-bar-bg{height:6px;background:#eee;border-radius:3px;overflow:hidden}
.up-bar-fill{height:100%;background:var(--p);width:0;transition:width 0.2s}
@keyframes slideUp{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}

/* COMPONENTS */
.btn{padding:6px 14px;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;transition:0.2s;display:inline-flex;align-items:center;justify-content:center;gap:5px}
.btn:hover{opacity:0.9;transform:translateY(-1px)}
.btn.p{background:var(--p)} .btn.g{background:var(--g)} .btn.r{background:var(--r)} .btn.w{background:var(--w)} .btn.gy{background:#6b7280}
.btn.sm{padding:4px 10px;font-size:11px}
.btn:disabled{opacity:0.5;cursor:not-allowed}

input,select,textarea{padding:8px 10px;border:1px solid #d1d5db;border-radius:6px;outline:none;font-size:13px;font-family:inherit}
input:focus,textarea:focus{border-color:var(--p);box-shadow:0 0 0 2px rgba(59,130,246,0.1)}

/* LOGIN */
.login-box{background:var(--panel);padding:30px;border-radius:12px;box-shadow:0 10px 25px -5px rgba(0,0,0,0.1);width:100%;max-width:350px;text-align:center;border:1px solid var(--border)}
@keyframes shake {
  0% { transform: translateX(0); }
  25% { transform: translateX(-5px); }
  50% { transform: translateX(5px); }
  75% { transform: translateX(-5px); }
  100% { transform: translateX(0); }
}

/* TREE */
.side ul{list-style:none;padding-left:16px;margin:0}
.side li{white-space:nowrap;line-height:1.8}
.arr{cursor:pointer;display:inline-block;width:16px;color:#9ca3af;text-align:center;font-size:10px}
.td span,.tf span{margin-right:5px;opacity:0.7}
.td a,.tf a{cursor:pointer;color:var(--text);text-decoration:none;transition:0.2s}
.td a:hover,.tf a:hover{color:var(--p)}
.td.ex a{text-decoration:line-through;color:#d1d5db}

/* GRID */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:15px}
.item{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:15px 10px;text-align:center;cursor:pointer;position:relative;height:120px;display:flex;flex-direction:column;justify-content:center;transition:all 0.1s;user-select:none}
.item:hover{border-color:var(--p);box-shadow:0 4px 6px -1px rgba(0,0,0,0.1)}

/* IMPROVED SELECTION STYLES */
.item.sel{border:2px solid var(--p);background:#e0f2fe;box-shadow:0 0 5px rgba(59,130,246,0.3);transform:scale(0.98)}
.item.sel .txt{font-weight:700;color:var(--p)}
.item.sel .ico{transform:scale(1.1);transition:transform 0.2s}

.item.ex{opacity:0.6;background:#f9fafb;border-style:dashed}
.item.back{background:#e5e7eb;height:60px;flex-direction:row;align-items:center;justify-content:center;gap:10px}
.item.err{border-color:var(--r);background:#fef2f2} .item.ok{border-color:var(--g);background:#ecfdf5}
.ico{font-size:32px;margin-bottom:8px} .back .ico{font-size:20px;margin:0}
.txt{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-weight:500}
.sub{font-size:10px;color:#6b7280;margin-top:4px}

/* ACTIONS */
.act{position:absolute;bottom:5px;left:0;width:100%;display:none;justify-content:center;gap:5px;padding:0 5px}
.item:hover .act{display:flex}
.act a,.act b{display:inline-flex;width:22px;height:22px;background:#fff;border:1px solid #d1d5db;align-items:center;justify-content:center;font-size:11px;border-radius:4px;cursor:pointer;text-decoration:none;color:#4b5563;box-shadow:0 1px 2px rgba(0,0,0,0.05)}
.act b:hover{background:#f3f4f6;color:var(--p);border-color:var(--p)} 
.act b.red:hover{background:var(--r);color:#fff;border-color:var(--r)}

/* CHECKBOX OVERLAY */
.chk-wrap{position:absolute;top:0;left:0;width:35px;height:35px;z-index:2;display:flex;align-items:center;justify-content:center;cursor:cell}
.chk{width:16px;height:16px;border:1px solid #9ca3af;border-radius:4px;background:rgba(255,255,255,0.8);transition:all 0.1s}
.item:hover .chk{border-color:var(--p);background:#fff}

/* Checked state visual */
.item.sel .chk{background:var(--p);border-color:var(--p);box-shadow:0 2px 4px rgba(0,0,0,0.2)}
.item.sel .chk::after{content:'✓';color:#fff;font-size:11px;position:relative;top:-3px;font-weight:bold;display:block;text-align:center;line-height:16px}

/* BULK BAR */
.bulk-bar{position:absolute;bottom:20px;left:50%;transform:translateX(-50%) translateY(100px);background:#fff;padding:10px 20px;border-radius:50px;box-shadow:0 5px 20px rgba(0,0,0,0.2);display:flex;gap:10px;align-items:center;transition:0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);border:1px solid #e5e7eb;z-index:10}
.bulk-bar.active{transform:translateX(-50%) translateY(0)}

/* MODALS */
.modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);z-index:99;backdrop-filter:blur(3px);align-items:center;justify-content:center}
.box{background:var(--panel);width:90%;max-width:850px;max-height:90vh;display:flex;flex-direction:column;border-radius:10px;box-shadow:0 20px 25px -5px rgba(0,0,0,0.1);overflow:hidden}
.box-head{padding:12px 20px;background:var(--head);color:#fff;display:flex;justify-content:space-between;align-items:center;font-weight:600}
.box-body{padding:20px;overflow:auto;display:flex;flex-direction:column;gap:15px}
.full-editor{flex:1;font-family:'Consolas','Monaco',monospace;font-size:13px;line-height:1.5;resize:none;min-height:300px;background:#1e1e1e;color:#d4d4d4;border:none;padding:15px}
.prompt-editor{font-family:'Consolas',monospace;font-size:12px;min-height:150px;background:#f9fafb}

/* TERMINAL & LOG VIEWER */
.term-out{flex:1;background:#000;color:#ccc;padding:15px;font-family:'Consolas',monospace;font-size:12px;overflow-y:auto;white-space:pre-wrap}
.term-bar{background:#111;padding:10px;display:flex;align-items:center}
.term-in{flex:1;background:transparent;border:none;color:#fff;font-family:'Consolas',monospace;font-size:12px;padding:0}
.term-in:focus{box-shadow:none}

/* UNDO */
.undo-item{display:flex;justify-content:space-between;align-items:center;padding:10px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;font-size:13px}
.undo-item:hover{background:#f3f4f6;border-color:#d1d5db}

.batch-head{grid-column:1/-1;background:#eff6ff;color:#1e40af;padding:15px;border-radius:8px;display:flex;justify-content:space-between;align-items:center;border:1px solid #dbeafe}
.prog{height:3px;background:var(--g);width:0;position:absolute;top:55px;left:0;transition:width 0.2s}
.drag{border:2px dashed var(--p);background:#eff6ff}
.hint{font-size:11px;color:#6b7280;margin-top:4px}
.pill{background:#e5e7eb;padding:2px 6px;border-radius:4px;font-size:10px;font-family:monospace}

/* SERVER INFO & DB */
.progress{height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden;margin-top:5px}
.progress .fill{height:100%;background:var(--g)}
.grid-info{display:grid;grid-template-columns:1fr 1fr;gap:15px;font-size:13px}
.db-tbl{padding:5px 8px;cursor:pointer;border-bottom:1px solid #e5e7eb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.db-tbl:hover{background:#e0f2fe;color:var(--p)}
.db-res-tbl{width:100%;border-collapse:collapse}
.db-res-tbl th{text-align:left;background:#f3f4f6;padding:5px;border-bottom:2px solid #ddd}
.db-res-tbl td{padding:5px;border-bottom:1px solid #eee}