.file_tree,#file_tree{user-select:none;-webkit-user-select:none}.project_header{display:flex;flex-wrap:wrap;align-items:center;background-color:var(--bg-menu);position:sticky;top:0;z-index:1;height:36px;gap:2px;padding-right:4px}.project_btn{display:flex;align-items:center;justify-content:center;cursor:pointer;width:24px;height:24px;border-radius:6px;opacity:0.85;font-size:18px}.project_btn:hover{background-color:var(--bg-hover)}.live_users_container{display:flex;align-items:center;margin-right:8px}.live_users_avatars{display:flex;gap:2px}.live_user_avatar{width:20px;height:20px;border-radius:50%;background:linear-gradient(45deg,#1976d2,#42a5f5);color:white;font-size:10px;font-weight:bold;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg-menu);margin-left:-2px}.live_user_avatar.self{background:linear-gradient(45deg,#1976d2,#42a5f5)}.live_user_avatar.connected{background:linear-gradient(45deg,#2e7d32,#4caf50)}.live_user_avatar.disconnected{background:linear-gradient(45deg,#d32f2f,#f44336)}.live_user_avatar:first-child{margin-left:0}.project_info{display:flex}.project_info_icon{font-size:14px;opacity:0.4;color:red;cursor:pointer}.restore_header_btn{background-color:#1976d2;color:white;border:0px solid #1976d2;font-size:10px;padding:6px 8px;font-weight:500;margin-left:6px;font-family:Inter;border-radius:10px;width:fit-content}.restore_header_btn:hover{background-color:#1565c0}#file_tree_container{position:relative;overflow-y:auto;max-height:100%;width:100%;padding:10px;background-color:#f9f9f9;border-radius:8px;box-shadow:0 2px 5px rgba(0,0,0,0.05)}#file_tree_header{padding:5px 0;border-bottom:1px solid #eee;margin-bottom:10px}.file_tree_actions{display:flex;gap:5px;margin-left:auto}#file_tree,.file_tree{font-size:15px;flex:1;overflow:scroll;transition:background-color 0.2s ease;padding:4px;border:2px dashed #ffffff00;border-radius:16px}.file_tree.drag_over{background-color:#fbfbfb63;border:2px dashed #ccc}.sync_file_list .folder,.file_tree .folder{margin-left:0;padding-left:0}@media (max-width:760px){#file_tree,.file_tree:after{content:'';display:block;height:100px}}.sync_file_list .folder>.folder_name .folder_icon::before,.file_tree .folder>.folder_name .folder_icon::before{content:'folder'}.sync_file_list .folder[open]>.folder_name .folder_icon::before,.file_tree .folder[open]>.folder_name .folder_icon::before{content:'folder_open'}.sync_file_list .folder_name,.file_tree .folder_name{padding:6px;cursor:pointer;user-select:none;display:flex;align-items:center}.sync_file_list .folder_name:hover,.file_tree .folder_name:hover{background-color:#f8f8f8}.sync_file_list .file,.file_tree .file{padding:6px;cursor:pointer;display:flex;align-items:center}.sync_file_list .file:hover,.file_tree .file:hover{background-color:#f8f8f8}.sync_file_list .folder_icon,.sync_file_list .file_icon,.file_tree .folder_icon,.file_tree .file_icon{margin-right:5px;margin-bottom:2px;font-size:16px}.sync_file_list .folder_icon,.file_tree .folder_icon{color:#ffc107}.sync_file_list .file_icon,.file_tree .file_icon{color:#2196f3}.orange{color:#ff9800!important}.sync_file_list .folder>.folder,.sync_file_list .folder>.file,.file_tree .folder>.folder,.file_tree .folder>.file{margin-left:20px}.sync_file_list .folder>.sync_file_row{margin-left:20px}.file_tree .error{color:#f44336;padding:10px;background-color:#ffebee;border-radius:4px;margin:10px 0}.file_tree_actions .share_project{background-color:#f5f5f5;border:1px solid #ddd;border-radius:4px;padding:5px;cursor:pointer;opacity:0.8;transition:opacity 0.2s}.file_tree_actions .share_project:hover{opacity:1;background-color:#e0e0e0}.file_tree_actions .share_project .material-symbols-outlined{font-size:18px;color:#4caf50}.version_timeline{padding:10px;overflow-y:auto;max-height:calc(100vh - 150px)}.version_entry{border:1px solid var(--border-color,#ddd);border-radius:4px;margin-bottom:15px;background:var(--bg-secondary,#f9f9f9);box-shadow:0 1px 3px rgba(0,0,0,0.05)}.version_header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border-color,#eee);background:var(--bg-tertiary,#f5f5f5)}.version_time{font-weight:bold;color:var(--text-primary,#333)}.version_files{padding:8px 12px;max-height:200px;overflow-y:auto}.file_item{display:flex;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid var(--border-color,#f0f0f0);transition:background-color 0.2s}.file_item:last-child{border-bottom:none}.file_item.newer-version{background-color:var(--bg-error-light,#fff5f5)}.file_name{flex:1;color:var(--text-primary,#333);font-family:monospace}.file_status{font-size:0.8em;padding:2px 6px;border-radius:3px;background:var(--bg-tertiary,#f0f0f0);color:var(--text-secondary,#666)}.status-active{background:var(--bg-success-light,#e8f5e9);color:var(--text-success,#388e3c)}.status-inactive{background:var(--bg-warning-light,#fff3e0);color:var(--text-warning,#f57c00)}.status-newer{background:var(--bg-error-light,#ffebee);color:var(--text-error,#d32f2f)}.switch_version{background:var(--bg-tertiary,#f0f0f0);border:1px solid var(--border-color,#ddd);border-radius:4px;padding:2px 5px;cursor:pointer;transition:background-color 0.2s}.switch_version:hover{background:var(--bg-hover,#e0e0e0)}.switch_version .material-symbols-outlined{font-size:16px;color:var(--text-link,#2196f3)}.branch_selector,.diff_selector,.sync_control{display:flex}.branch_select,.diff_select,.sync_select{width:120px;padding:4px 8px;border:1px solid var(--color-border,#ddd);border-radius:4px;background-color:var(--color-bg-secondary,#f9f9f9);color:var(--color-text,#333);font-size:14px;outline:none}.branch_select:hover,.diff_select:hover,.sync_select:hover{border-color:var(--color-primary,#2196f3)}.file_tree_header{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:8px}.branches_menu_content{position:absolute;z-index:1000;background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,0.08);margin-top:6px;min-width:160px}.branches_menu{display:flex;flex-direction:column;padding:6px 0}.branch_item{padding:8px 12px;cursor:pointer;display:flex;align-items:center;gap:8px}.branch_item:hover{background:#f7f7f7}.branch_item.active{background:#e8f5e9;font-weight:500;color:#2e7d32}.file_tree_context_menu{position:absolute;background:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 10px rgba(0,0,0,0.2);min-width:150px;z-index:1000}.context_menu_item{padding:8px 10px;display:flex;align-items:center;cursor:pointer}.context_menu_item:hover{background:#f5f5f5}.context_menu_item span.material-symbols-outlined{margin-right:8px;font-size:18px}.context_menu_divider{height:1px;background:#eee;margin:4px 0}.context_menu_item.delete{color:#f44336}.version_tree_graph{position:relative;height:300px;overflow:scroll;display:flex;flex-direction:column;gap:12px}.version_tree_row{display:flex;align-items:center;position:relative;cursor:pointer;transition:background 0.15s;z-index:1}.version_tree_row:hover{background:#f5faff}.version_tree_circle{width:14px;height:14px;border-radius:50%;margin:4px;margin-right:10px}.version_tree_circle.active{background:#2196f3;box-shadow:0 0 0 2px #2196f3}.version_tree_circle.inactive{background:#bbb;box-shadow:0 0 0 2px #bbb}.version_tree_branchline{position:absolute;left:6px;top:0;bottom:0;width:2px;background:#e0e0e0;z-index:0}.version_tree_row .version_tree_branchline{left:6px;top:-16px;bottom:16px}.version_tree_row .version_tree_branchline.branch-1{left:26px;background:#2196f3}.version_tree_row .version_tree_branchline.branch-2{left:46px;background:#ffc107}.version_tree_row .version_tree_branchline.branch-3{left:66px;background:#8bc34a}.version_tree_row .version_tree_circle.branch-1{background:#2196f3}.version_tree_row .version_tree_circle.branch-2{background:#ffc107}.version_tree_row .version_tree_circle.branch-3{background:#8bc34a}.version_tree_info{display:flex;flex-direction:column;z-index:2;align-items:flex-start}.version_tree_id{font-size:13px;font-family:monospace;color:#222;font-weight:500}.version_tree_time{font-size:11px;color:#888;margin-top:1px}.version_tree_tag{font-size:11px;color:#888;font-style:italic}.msg_history_btn{cursor:pointer}.msg_history_btn:hover{text-decoration:underline}.version_tree_modal{display:none;position:fixed;z-index:10000;left:0;top:0;width:100vw;height:100vh;background:rgba(0,0,0,0.08);align-items:center;justify-content:center}.version_tree_modal .modal-content{background:#fff;border-radius:10px;box-shadow:0 4px 24px rgba(0,0,0,0.10);min-width:340px;max-width:90vw;margin:10vh auto;padding:0}.version_tree_modal .modal-body{padding:24px 24px 12px 24px}.loading_indicator{display:flex;align-items:center;justify-content:center;padding:20px;gap:8px;color:#666}.loading_indicator .material-symbols-outlined{animation:spin 1.5s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.handle_info_container{display:flex;padding:8px 12px;border-radius:6px;background:#f4f9fd;gap:8px;font-family:monospace;flex-direction:column}.handle_info{display:flex;align-items:center;justify-content:space-between}.handle_info_small{font-size:12px}.handle_btn{font-size:20px!important;padding:0 4px!important;opacity:0.8}.handle_btn:hover{opacity:1}.ignored_files_details{display:flex;cursor:pointer;flex-direction:column}.ignored_files_summary{list-style:none}.ignored_files_summary::-webkit-details-marker{display:none}.ignored_files_details .ignore_type_details{font-size:12px;opacity:0.8}.ignored_files_details .ignore_type_summary{list-style:none;cursor:pointer;padding:2px 0}.ignored_files_details .ignore_type_summary::-webkit-details-marker{display:none}.ignored_files_details .ignore_files_list{padding-left:10px;max-height:120px;overflow-y:auto}.ignored_files_details .ignore_files_list div{padding:1px 0;font-size:11px;color:#adb5bd}.sync_message{display:flex;align-items:center;padding:12px;border-radius:6px;background:#e8f5e9;color:#2e7d32;gap:8px}.sync_message.warning{background:#fff3e0;color:#e65100}.sync_message.error{background:#ffebee;color:#c62828}.sync_errors{margin:10px 0 0 28px;padding:0;font-size:13px}.sync_file_list{display:flex;max-height:60vh;overflow-y:auto;border:1px solid #eee;border-radius:8px;padding:16px;flex-direction:column;gap:15px}.sync_group_section{display:flex;flex-direction:column;gap:2px}.sync_file_list h5{padding-bottom:4px;border-bottom:1px solid #f0f0f0;color:#424242;font-size:14px}.sync_file_list h5:first-child{margin-top:0}.sync_file_row{display:flex;align-items:center;padding:6px;border-radius:6px}.sync_file_row:hover{background-color:#f5f5f5}.sync_file_row.delete{background-color:#ffebee}.sync_file_row.ignored{opacity:0.5;font-style:italic;background:#f7f7f7}.file_path{flex:1;display:flex;font-family:monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;margin-right:12px;align-items:center}.file_status{font-size:12px;color:#757575;padding:2px 8px;margin:0 10px;background:#f5f5f5;border-radius:4px;white-space:nowrap}.file_actions{display:flex;gap:8px;margin-left:auto}.delete_indicator{color:#d32f2f;font-size:13px;display:flex;align-items:center;gap:4px}.btn_direction{font-size:12px!important;padding:4px 8px!important;display:flex;align-items:center;gap:4px;background:#f5f5f5;opacity:0.7;position:relative}.btn_direction.active{background:#556472;color:white;opacity:1;font-weight:500}.btn_direction.active .material-symbols-outlined{color:white}.btn_direction .material-symbols-outlined{font-size:14px}.folder_name:has(.btn_direction.delete.active),.sync_file_row:has(.btn_direction.delete.active){background:#ffebee!important}.folder_name:has(.btn_direction.ignore.active),.sync_file_row:has(.btn_direction.ignore.active){opacity:0.5;font-style:italic}.sync_global_actions{display:flex;align-items:center;gap:12px;margin:16px 0;padding:16px 0 0 0;border-top:1px solid #eee}.sync_global_actions span{color:#616161;font-weight:500}.sync_global_actions .btn_primary{padding:8px 12px;transition:all 0.2s ease;border:none;box-shadow:0 1px 3px rgba(0,0,0,0.1)}.sync_global_actions .btn_primary:hover{transform:translateY(-1px);box-shadow:0 3px 6px rgba(0,0,0,0.15)}.sync_actions{display:flex;justify-content:flex-end;gap:8px}.server_sync_button{background:#1976d2;color:#fff;border:none;border-radius:4px;cursor:pointer;padding:4px 8px;display:flex;align-items:center;margin-right:5px;transition:background 0.2s,color 0.2s}.server_sync_button:hover{background:#1565c0;color:#fff}.server_sync_button:active{background:#0d47a1;color:#fff}#projects_list{display:flex;flex-direction:column;gap:6px}.project_options{display:flex;justify-content:center;gap:10px}.project_option{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100px;height:100px;background-color:#f5f5f5;border-radius:8px;cursor:pointer;padding:10px;text-align:center}.project_option:hover{background-color:#e0e0e0}.project_option .material-symbols-outlined{font-size:32px;margin-bottom:8px}.project_option.new{background-color:#e8f5e9}.project_option.new .material-symbols-outlined{color:#4caf50}.project_option.local{background-color:#e3f2fd}.project_option.local .material-symbols-outlined{color:#2196f3}.project_option.ssh{background-color:#fff3e0}.project_option.ssh .material-symbols-outlined{color:#ff9800}.project_option.github{background-color:#dfdfdf}.project_option.github .material-symbols-outlined{color:#fff}.project_item{display:flex;background-color:#fbfbfb;border-radius:8px;padding:15px;cursor:pointer}.project_item:hover{background-color:#f9f9f9}.project_info{flex:1}.project_name{font-size:18px;font-weight:500}.project_description{font-size:14px;color:#666;margin-bottom:5px}.project_actions{display:flex;align-items:center}.source_sync_status{display:flex;align-items:center;font-size:12px;margin-top:5px}.source_sync_status .status_dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;background-color:#2196F3}.source_sync_status.synced .status_dot{background-color:#4CAF50}.source_sync_status.not-synced .status_dot{background-color:#FFC107}.source_sync_status.error .status_dot{background-color:#F44336}.source_sync_status .material-symbols-outlined{font-size:14px;margin-right:4px}.sync_time{font-size:12px;color:#888;margin-top:2px}.connection_form{display:none;background:white;padding:20px;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,0.1);width:100%;max-width:600px;margin:20px auto;position:relative}.connection_form h3{margin-top:0;font-size:20px;margin-bottom:15px;border-bottom:1px solid #eee;padding-bottom:10px}.form_row{margin-bottom:15px}.form_row label{display:block;margin-bottom:5px;font-weight:500}.form_row input[type="text"],.form_row input[type="password"],.form_row textarea{width:100%;padding:8px;border:1px solid #ddd;border-radius:4px}.form_row textarea{min-height:80px;resize:vertical}.form_actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.btn{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-weight:500}.btn_primary{background-color:#4caf50;color:white}.btn_primary:hover{background-color:#43a047}.btn_secondary{background-color:#f5f5f5;color:#333}.btn_secondary:hover{background-color:#e0e0e0}@media (max-width:760px){.project_options{flex-wrap:wrap}.project_option{width:calc(33.33% - 10px)}.project_item{flex-direction:column}.project_actions{margin-top:10px;justify-content:flex-end}}@media (max-width:480px){.project_option{width:calc(50% - 10px)}}.loading_spinner{width:50px;height:50px;border:5px solid #f3f3f3;border-top:5px solid #4caf50;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:15px}.loading_message{font-size:16px;color:#333;text-align:center;padding:0 20px}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.project_menu{position:relative;display:flex;align-items:center}.project_menu[open] .project_menu_content{display:block}.project_menu_content{display:none;padding:16px 0 8px 0;width:100%}.project_menu_setting{display:flex;align-items:center;justify-content:space-between}.project_menu_setting label{flex:1;font-weight:500}.project_menu_setting select{margin-left:10px;padding:4px 10px;border-radius:4px;border:1px solid #ccc;font-size:15px;background:#fafafa}.project_menu_setting .toggle_options{display:flex;gap:10px}.project_menu_setting .toggle_option{padding:4px 12px;background-color:#f5f5f5;border:1px solid #ddd;border-radius:4px;text-align:center;cursor:pointer;font-size:13px;transition:all 0.2s ease}.project_menu_setting .toggle_option.active{background-color:#1976d2;color:white;border-color:#1976d2}.project_menu_setting .toggle_option:hover:not(.active){background-color:#e0e0e0;border-color:#bbb}.project_menu_action{background:none;border:none;color:#d32f2f;padding:8px;font-size:15px;display:flex;align-items:center;gap:8px;cursor:pointer;border-radius:4px}.project_menu_action:hover{background:#f5f5f5}hr{border:none;border-top:1px solid #eee}