:root{--header-h: 55px;} .header-container{min-height: var(--header-h);} img.logo{width:50px; height:50px; display:block;} .is-visually-hidden{visibility: hidden; pointer-events: none;} #userPanelModal .modal-content, #adminPanelModal .modal-content, #userPermissionsModal .modal-content, #userFlagsModal .modal-content, #userGroupsModal .modal-content, #groupAclModal .modal-content{border-radius: var(--menu-radius);} #fr-login-tip{min-height: 40px; max-width: 520px; margin: 8px auto 0; border-radius: var(--menu-radius); padding: 10px 12px; text-align: left; margin-bottom: 10px;} .main-wrapper{display:flex; gap:5px; align-items:flex-start;} body{font-family: 'Roboto', sans-serif; background-color: #f5f5f5; margin: 0; transition: background-color 0.3s, color 0.3s;} body{letter-spacing: 0.2px; overflow-x: hidden;} .custom-dash{display: inline-block; transform: scaleX(1.5); padding-left: 2px !important; padding-right: 2px !important;} .container, .container-fluid{margin-top: 10px; padding-right: 4px !important; padding-left: 4px !important;} @media (min-width: 1300px) { .container-fluid{padding-left: 20px !important; padding-right: 20px !important;} } @media (max-width: 600px) { .zones-toggle{left: 85px !important;} } :root{--filr-accent-500:#008CB4; --filr-accent-600:#00789A; --filr-accent-700:#006882; --filr-accent-ring:rgba(0,140,180,.4);} .btn-color-folder{display:inline-flex; align-items:center; gap:6px; background:var(--filr-accent-500); border:1px solid var(--filr-accent-700); color:#fff;} .btn-color-folder .material-icons{color:currentColor;} .btn-color-folder:hover, .btn-color-folder:focus-visible{background:var(--filr-accent-600); border-color:var(--filr-accent-700);} .btn-color-folder:active{background:var(--filr-accent-700);} .btn-color-folder:focus-visible{outline:2px solid var(--filr-accent-ring); outline-offset:2px;} .dark-mode .btn-color-folder{background:var(--filr-accent-600); border-color:var(--filr-accent-700); color:#fff;} .dark-mode .btn-color-folder:hover, .dark-mode .btn-color-folder:focus-visible{background:var(--filr-accent-700);} .btn-login{margin-top: 10px;} .orange-icon{color: #2196F3 !important; font-size: 34px !important; transform: translateY(-3px) !important;} .red-icon{width: 34px !important; display: inline-block !important; font-size: 34px !important; color: red !important; transform: translateY(-3px) !important;} .header-container{ display: flex; align-items: center; justify-content: space-between; width: 100%; height: 55px; padding: 10px 20px; background-color: var(--header-bg-light, #2196F3); transition: background-color 0.3s ease; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); } .dark-mode .header-container{ background-color: var(--header-bg-dark, #1f1f1f); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.7); } .admin-core-badge, .admin-pro-badge { font-size: 12px; padding: 2px 6px; vertical-align: middle; position: relative; top: -1px; margin-left: 6px; } #adminPanelModal .section-content .pro-card { margin: 8px 10px; border-radius: 12px; } #adminPanelModal .section-content { margin: 0px 10px; } .pro-license-meta { margin-top: 6px; padding: 6px 10px; border-radius: 6px; font-size: 11px; font-weight: 500; background-color: rgba(40, 167, 69, 0.08); /* light green tint */ border: 1px solid rgba(40, 167, 69, 0.4); color: #2e7d32; } .pro-license-meta div + div { margin-top: 2px; } /* Dark mode tweak so it doesn't glow too bright */ .dark-mode .pro-license-meta { background-color: rgba(40, 167, 69, 0.18); border-color: rgba(40, 167, 69, 0.6); color: #c8e6c9; } /* FileRise Pro button styling (admin) */ .btn-pro-admin { background: linear-gradient(135deg, #ff9800, #ff5722); border-color: #ff9800; color: #1b0f00 !important; font-weight: 600; box-shadow: 0 0 10px rgba(255, 152, 0, 0.4); } .btn-pro-admin:hover { filter: brightness(1.05); } /* User management action bar */ .admin-user-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; } .admin-user-actions .btn { border-radius: 999px; font-size: 12px; padding: 6px 12px; display: inline-flex; align-items: center; gap: 4px; } .admin-user-actions .btn .material-icons { font-size: 16px; line-height: 1; } /* ---------- Pro buttons + pill ---------- */ .admin-user-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 6px; } .btn-pro-wrapper { position: relative; display: inline-block; } .btn-pro-admin:disabled { opacity: 0.9; } .btn-pro-pill { position: absolute; top: -7px; right: -4px; font-size: 10px; line-height: 1.2; padding: 2px 6px; border-radius: 999px; background: #ffc107; color: black; box-shadow: 0 1px 3px rgba(0,0,0,0.3); pointer-events: none; white-space: nowrap; font-weight: 600; } #userManagementContent { margin-top: 10px !important; } #darkModeIcon{color: #fff;} .header-logo{max-height: 50px; width: auto; display: block;} .header-logo svg{height: 50px; width: auto;} .dark-mode header{background-color: #1f1f1f; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.7);} .header-left{display: flex; align-items: center; flex: 1; min-width: 100px;} .header-title{position: absolute; left: 50%; transform: translateX(-50%); text-align: center; white-space: nowrap;} .header-title h1{font-size: 2rem; color: #fff; margin: 0;} .header-buttons{display: flex; align-items: center; justify-content: flex-end; flex: 1; min-width: 150px; gap: 0px;} .header-buttons button{background: none; border: none; cursor: pointer; color: #fff; transition: background-color 0.2s ease, box-shadow 0.2s ease;} .header-buttons button:not(#userDropdownToggle){border-radius: 50%; padding: 9px;} #userDropdownToggle{border-radius: 4px !important; padding: 6px 10px !important;} #headerDropArea.header-drop-zone{display: flex; justify-content: flex-end; align-items: center; min-height: 40px;} .header-buttons button:hover{background-color: rgba(122,179,255,.14); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); color: #fff;} @media (max-width: 600px) { header{flex-direction: column; text-align: center; height: auto; padding: 10px;} .header-left, .header-buttons{justify-content: center; flex: unset;} .header-title{order: 1; width: 100%; margin-bottom: 10px; position: relative; left: auto; transform: none;} .header-buttons{order: 2; flex-wrap: wrap; justify-content: center;} } .header-buttons button i{font-size: 24px;} .dark-mode-toggle{background-color: #424242; border: 1px solid #fff; color: #fff; padding: 6px 14px; border-radius: 6px; cursor: pointer; font-size: 0.9em; transition: background 0.3s;} .dark-mode-toggle:hover{background-color: rgba(255, 255, 255, 0.2);} .folder-help-tooltip{background-color: #fff; color: #333; border: 1px solid #ccc; border-radius: 4px; padding: 10px; box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.2);} .dark-mode .folder-help-tooltip{background-color: #333 !important; color: #eee !important; border: 1px solid #555 !important;} #folderHelpBtn i.material-icons.folder-help-icon{-webkit-text-fill-color: orange !important; color: inherit !important; padding-right: 10px !important;} .dark-mode #folderHelpBtn i.material-icons.folder-help-icon{-webkit-text-fill-color: #ffa500 !important; padding-right: 10px !important;} @media (max-width: 790px) { .header-container{flex-wrap: wrap; height: auto;} .header-title{text-align: center; flex-basis: 100%; order: 2;} .header-right{order: 3; flex-basis: 100%; justify-content: center; margin-top: 10px;} } @media (max-width: 600px) { .header-container{flex-direction: column; text-align: center;} .header-left{justify-content: center; flex-basis: 100%;} .header-title{font-size: 1.7rem; margin-top: 5px;} .header-buttons{flex-direction: row; justify-content: center; gap: 5px; margin-top: 5px;} } .material-icons{font-size: 24px; vertical-align: middle; color: white;} .material-icons.folder-icon, .material-icons.gallery-icon{color: black; margin-right: 5px;} .dark-mode .material-icons.folder-icon, .dark-mode .material-icons.gallery-icon{color: white; margin-right: 5px;} .remove-file-btn{width: 24px; height: 24px; line-height: 24px; text-align: center; background: transparent; border: none; color: red; cursor: pointer; margin-right: 0px; padding: 0; border-radius: 50%; transition: background-color 0.3s;} .remove-file-btn:hover{background-color: red; color: white;} .remember-me-container{margin-top: 20px !important;} #loginForm{margin: 0 auto; max-width: 400px; background: white; padding: 20px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); border-radius: var(--menu-radius);} .dark-mode #loginForm{background-color: #2c2c2c; color: #e0e0e0; padding: 20px; border-radius: var(--menu-radius); box-shadow: 0 2px 4px rgba(255, 255, 255, 0.2);} .dark-mode #loginForm input{background-color: #333; color: #fff; border: 1px solid #555;} .dark-mode #loginForm label{color: #ddd;} .dark-mode #loginForm button{background-color: #007bff; color: white; border: none;} .dark-mode #loginForm button:hover{background-color: #0056b3;} #restoreFilesModal .modal-content{position: fixed !important; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%) !important; margin: 0 !important; z-index: 10000 !important; width: 95% !important; max-width: 800px !important; background: transparent !important;} #restoreFilesModal .modal-content{background: #fff !important; padding: 20px; border: 1px solid #ccc; border-radius: var(--menu-radius);} .dark-mode #restoreFilesModal .modal-content{background: #2c2c2c !important; border: 1px solid #555 !important; color: #f0f0f0; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.6) !important;} #restoreSelectedBtn, #restoreAllBtn, #deleteTrashSelectedBtn, #deleteAllBtn, #closeRestoreModal{padding: 10px 20px !important; font-size: 16px !important; border-radius: 4px !important; transition: background-color 0.3s ease !important; border: none !important; margin-bottom: 10px !important;} #restoreSelectedBtn{background-color: #007bff !important; color: #ffffff !important;} #restoreSelectedBtn:hover{background-color: #0056b3 !important; color: #ffffff !important;} #restoreAllBtn{background-color: #6c757d !important; color: #ffffff !important;} #restoreAllBtn:hover{background-color: #5a6268 !important; color: #ffffff !important;} #deleteTrashSelectedBtn{background-color: #ffc107 !important; color: #212529 !important;} #deleteTrashSelectedBtn:hover{background-color: #e0a800 !important; color: #212529 !important;} #deleteAllBtn{background-color: #dc3545 !important; color: #ffffff !important;} #deleteAllBtn:hover{background-color: #c82333 !important; color: #ffffff !important;} #closeRestoreModal{background-color: #343a40 !important; color: #ffffff !important;} #closeRestoreModal:hover{background-color: #23272b !important; color: #ffffff !important;} .modal{display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); z-index: 1050;} .modal .modal-content{position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); background: #fff; padding: 20px; border: 1px solid #ccc; border-radius: var(--menu-radius); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); max-width: 400px; width: 90%; overflow-y: auto; white-space: normal; word-wrap: break-word; overflow-wrap: break-word; height: auto; max-height: 90vh;} @media (max-width: 600px) { .modal .modal-content{transform: translate(-50%, -70%);} } .dark-mode .modal .modal-content{background-color: #2c2c2c; color: #e0e0e0; border-color: #444;} .editor-close-btn{position: absolute; top: 10px; right: 10px; display: flex; justify-content: center; align-items: center; font-size: 20px; font-weight: bold; cursor: pointer; z-index: 1000; width: 32px; height: 32px; border-radius: 50%; text-align: center; line-height: 30px; color: #ff4d4d; background-color: rgba(255, 255, 255, 0.9); border: 2px solid transparent; transition: all 0.3s ease-in-out;} .editor-close-btn:hover{color: white; background-color: #ff4d4d; box-shadow: 0px 0px 6px rgba(255, 77, 77, 0.8); transform: scale(1.05);} .dark-mode .editor-close-btn{background-color: rgba(0, 0, 0, 0.7); color: #ff6666;} .dark-mode .editor-close-btn:hover{background-color: #ff6666; color: #000;} .editor-modal{position: fixed; top: 2%; left: 5%; width: 90vw; height: 90vh; background-color: #fff; padding: 10px 20px 20px 20px; border: 1px solid #ccc; border-radius: var(--menu-radius); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2) !important; z-index: 1100 !important; display: flex !important; flex-direction: column !important; overflow: hidden !important; resize: both !important;} .editor-textarea{flex-grow: 1 !important; width: 100% !important; resize: none !important; overflow: auto !important;} .dark-mode .editor-modal{background-color: #2c2c2c; color: #e0e0e0; border-color: #444;} @media (max-width: 768px) { .editor-modal{top: 0%; left: 0%; transform: translate(4%, 4%) !important; width: 90vw !important; max-height: 90vh; padding: 15px; min-width: auto !important;} } .editor-header{display: flex; align-items: center; justify-content: space-between; height: 33px; padding: 0 10px; margin-bottom: 7px;} .editor-title{margin: 0; line-height: 33px;} .dark-mode .editor-header{background-color: #2c2c2c;} @media (max-width: 600px) { .editor-title{font-size: 1.2rem; max-width: 95%;} } .editor-controls{text-align: right; margin-right: 30px; margin-bottom: 5px;} .editor-footer{margin-top: 5px; text-align: right;} .modal-content .button-container{display: flex !important; justify-content: flex-end; gap: 5px; margin-top: 20px;} .logout-container{position: absolute; top: 10px; right: 10px; display: flex; flex-direction: column; align-items: flex-end; gap: 5px;} #uploadBtn{font-size: 20px; padding: 10px 22px; align-items: center;} .card-body.d-flex.flex-column{padding: 0.75rem !important;} #customChooseBtn{background-color: #9E9E9E; color: #fff; border: none; border-radius: 4px; padding: 8px 18px; font-size: 16px; cursor: pointer; white-space: nowrap;} @media (max-width: 768px) { #customChooseBtn{font-size: 14px; padding: 6px 14px;} } .pause-resume-btn{background: none; border: none; padding: 0; margin: 0; cursor: pointer; outline: none; margin-right: 5px;} .material-icons.pauseResumeBtn{color: black !important; padding: 4px; border-radius: 4px; transition: background-color 0.2s ease, color 0.2s ease;} .dark-mode .material-icons.pauseResumeBtn{color: white !important;} .dark-mode .material-icons.pauseResumeBtn:hover{background-color: rgba(255, 215, 0, 0.3); color: #fff;} body:not(.dark-mode) .material-icons.pauseResumeBtn:hover{background-color: rgba(0, 0, 0, 0.1); color: #000;} #uploadProgressContainer ul{list-style: none; padding: 0; margin: 0;} #uploadProgressContainer li{display: flex; align-items: center; margin-bottom: 10px; flex-wrap: wrap;} #uploadProgressContainer .file-preview{width: 32px !important; height: 32px !important; margin-right: 0; flex-shrink: 0;} #uploadProgressContainer .file-preview img{width: 32px !important; height: 32px !important; object-fit: cover;} #uploadProgressContainer .file-name{margin: 0 20px 0 2px; flex-grow: 1; word-break: break-word;} #uploadProgressContainer .progress{background-color: #e9ecef; border-radius: 5px; overflow: hidden; margin: 5px 0 10px; height: 24px; width: 250px;} #uploadProgressContainer .progress-bar{background-color: #007bff; height: 100%; line-height: 24px; color: #000; text-align: center; transition: width 0.4s ease; font-size: 0.9rem;} #uploadProgressContainer{margin-top: 20px;} @media (max-width: 768px) { .logout-container{position: static; align-items: flex-end; text-align: right; margin-top: 10px;} .logout-container button{width: auto; min-width: 120px;} .hide-small{display: none;} } @media (min-width: 768px) and (max-width: 991px) { .hide-medium{display: none !important;} } .btn{font-size: 0.9rem; border: none; border-radius: 4px; padding: 8px 16px; cursor: pointer; white-space: nowrap; text-decoration: none; display: inline-block;} .btn:hover{opacity: 0.9;} #deleteSelectedBtn{background-color: #f44336; color: white;} #deleteSelectedBtn:hover{background-color: #d32f2f;} #copySelectedBtn{background-color: #9E9E9E; color: white;} #copySelectedBtn:hover{background-color: #757575;} #moveSelectedBtn{background-color: #ff9800; color: white;} #moveSelectedBtn:hover{background-color: #fb8c00;} #downloadZipBtn{background-color: #009688; color: white;} #downloadZipBtn:hover{background-color: #00796B;} #createBtn{background-color: #007bff; color: white;} .dark-mode .dropdown-menu{background-color: #2c2c2c !important; border-color: #444 !important; color: #e0e0e0!important;} .dark-mode .dropdown-menu .dropdown-item{color: #e0e0e0 !important;} .dropdown-item:hover{background-color: rgba(0,0,0,0.05);} .dark-mode .dropdown-item:hover{background-color: rgba(255,255,255,0.1);} #fileList button.edit-btn{background-color: #007bff; color: white;} .rename-btn .material-icons, #renameFolderBtn .material-icons{color: black !important;} #fileList table{background-color: transparent; border-collapse: collapse !important; border-spacing: 0 !important; table-layout: auto !important; width: 100% !important;} #fileList table tr:nth-child(even){background-color: transparent;} :root{--filr-row-hover-bg: rgba(122,179,255,.14); --filr-row-selected-bg: rgba(122,179,255,.24);} #fileList table{border-collapse: separate; border-spacing: 0;} #fileList table tbody tr, #fileList table tbody tr > td{background-color: transparent !important;} #fileList table.table-hover tbody tr:hover > *{background-color: transparent !important;} #fileList table.table-striped > tbody > tr:nth-of-type(odd) > *{background-color: transparent !important;} #fileList table.filr-table tbody tr, #fileList table.filr-table tbody td{transition: background-color .12s ease;} #fileList table.filr-table tbody tr:hover:not(.selected, .row-selected, .selected-row, .is-selected) > td{background: var(--filr-row-hover-bg) !important;} #fileList table.filr-table tbody tr.selected > td, #fileList table.filr-table tbody tr.row-selected > td, #fileList table.filr-table tbody tr.selected-row > td, #fileList table.filr-table tbody tr.is-selected > td{background: var(--filr-row-selected-bg) !important; box-shadow: inset 0 0 0 1px rgba(122,179,255,.45);} #fileList table.filr-table tbody tr:hover:not(.selected, .row-selected, .selected-row, .is-selected) > td:first-child, #fileList table.filr-table tbody tr.selected > td:first-child, #fileList table.filr-table tbody tr.row-selected > td:first-child, #fileList table.filr-table tbody tr.selected-row > td:first-child, #fileList table.filr-table tbody tr.is-selected > td:first-child{border-top-left-radius: 8px; border-bottom-left-radius: 8px;} #fileList table.filr-table tbody tr:hover:not(.selected, .row-selected, .selected-row, .is-selected) > td:last-child, #fileList table.filr-table tbody tr.selected > td:last-child, #fileList table.filr-table tbody tr.row-selected > td:last-child, #fileList table.filr-table tbody tr.selected-row > td:last-child, #fileList table.filr-table tbody tr.is-selected > td:last-child{border-top-right-radius: 8px; border-bottom-right-radius: 8px;} #fileList table.filr-table tbody tr:focus-within > td{outline: 2px solid #8ab4f8; outline-offset: -2px; border-top-left-radius: 8px; border-bottom-left-radius: 8px; border-top-right-radius: 8px; border-bottom-right-radius: 8px;} .dark-mode #fileList table.filr-table tbody tr:hover:not(.selected, .row-selected, .selected-row, .is-selected) > td{background: var(--filr-row-hover-bg) !important;} .dark-mode #fileList table.filr-table tbody tr.selected > td, .dark-mode #fileList table.filr-table tbody tr.row-selected > td, .dark-mode #fileList table.filr-table tbody tr.selected-row > td, .dark-mode #fileList table.filr-table tbody tr.is-selected > td{background: var(--filr-row-selected-bg) !important;} #fileList table.filr-table{--bs-table-hover-color: inherit; --bs-table-striped-color: inherit;} #fileList table.table-hover tbody tr:hover, #fileList table.table-hover tbody tr:hover > td{color: inherit !important;} .dark-mode #fileList table.filr-table tbody td a, .dark-mode #fileList table.filr-table tbody td a:hover{color: inherit !important;} :root{--filr-row-outline: rgba(122,179,255,.45); --filr-row-outline-hover: rgba(122,179,255,.35);} #fileList table.filr-table > :not(caption) > * > *{border: 0 !important;} #fileList table.filr-table td, #fileList table.filr-table th{box-shadow: none !important;} #fileList table.filr-table tbody tr.selected > td, #fileList table.filr-table tbody tr.row-selected > td, #fileList table.filr-table tbody tr.selected-row > td, #fileList table.filr-table tbody tr.is-selected > td{background: var(--filr-row-selected-bg) !important; box-shadow: inset 0 1px 0 var(--filr-row-outline), inset 0 -1px 0 var(--filr-row-outline);} #fileList table.filr-table tbody tr.selected > td:first-child, #fileList table.filr-table tbody tr.row-selected > td:first-child, #fileList table.filr-table tbody tr.selected-row > td:first-child, #fileList table.filr-table tbody tr.is-selected > td:first-child{box-shadow: inset 1px 0 0 var(--filr-row-outline), inset 0 1px 0 var(--filr-row-outline), inset 0 -1px 0 var(--filr-row-outline); border-top-left-radius: 8px; border-bottom-left-radius: 8px;} #fileList table.filr-table tbody tr.selected > td:last-child, #fileList table.filr-table tbody tr.row-selected > td:last-child, #fileList table.filr-table tbody tr.selected-row > td:last-child, #fileList table.filr-table tbody tr.is-selected > td:last-child{box-shadow: inset -1px 0 0 var(--filr-row-outline), inset 0 1px 0 var(--filr-row-outline), inset 0 -1px 0 var(--filr-row-outline); border-top-right-radius: 8px; border-bottom-right-radius: 8px;} #fileList table.filr-table tbody tr:hover:not(.selected, .row-selected, .selected-row, .is-selected) > td{background: var(--filr-row-hover-bg) !important; box-shadow: inset 0 1px 0 var(--filr-row-outline-hover), inset 0 -1px 0 var(--filr-row-outline-hover);} #fileList table.filr-table tbody tr:hover:not(.selected, .row-selected, .selected-row, .is-selected) > td:first-child{box-shadow: inset 1px 0 0 var(--filr-row-outline-hover), inset 0 1px 0 var(--filr-row-outline-hover), inset 0 -1px 0 var(--filr-row-outline-hover); border-top-left-radius: 8px; border-bottom-left-radius: 8px;} #fileList table.filr-table tbody tr:hover:not(.selected, .row-selected, .selected-row, .is-selected) > td:last-child{box-shadow: inset -1px 0 0 var(--filr-row-outline-hover), inset 0 1px 0 var(--filr-row-outline-hover), inset 0 -1px 0 var(--filr-row-outline-hover); border-top-right-radius: 8px; border-bottom-right-radius: 8px;} #fileList table.filr-table tbody tr:focus-within > td{outline: none;} #fileList table.filr-table tbody tr:focus-within > td:first-child, #fileList table.filr-table tbody tr:focus-within > td:last-child{outline: 2px solid #8ab4f8; outline-offset: -2px;} #fileListTitle{white-space: normal !important; word-wrap: break-word !important; overflow-wrap: break-word !important; max-width: 100% !important; display: block !important; text-align: left !important;} @media (max-width: 600px) { #fileListTitle{font-size: 1.4rem !important;} } #fileList table tr{box-shadow: none; border: none !important; outline: none !important;} .dark-mode #fileList table tr{box-shadow: none; border: none !important; outline: none !important;} #fileList table th, #fileList table td{border: none !important; white-space: nowrap;} #fileList table th[data-column="name"], #fileList table td:nth-child(2){white-space: normal !important; word-wrap: break-word !important; overflow-wrap: break-word !important; word-break: break-word !important; text-align: left !important; line-height: 1.2 !important; vertical-align: middle !important; padding: 8px 10px !important; max-width: 250px !important; min-width: 120px !important;} @media (min-width: 500px) { #fileList table th[data-column="name"], #fileList table td:nth-child(2){max-width: 250px !important; min-width: 120px !important;} } @media (min-width: 1024px) { #fileList table th[data-column="name"], #fileList table td:nth-child(2){max-width: 280px !important; min-width: 120px !important;} } @media (min-width: 1440px) { #fileList table th[data-column="name"], #fileList table td:nth-child(2){max-width: 510px !important; min-width: 240px !important;} } #fileList table th:not([data-column="name"]), #fileList table td:not(:nth-child(2)){white-space: nowrap !important;} #fileList table td{vertical-align: middle !important; padding: 8px 10px !important;} :root{--file-row-height: 48px;} #fileList table.table tbody tr{height: auto !important; min-height: var(--file-row-height) !important;} #fileList table.table tbody td:not(.file-name-cell){height: var(--file-row-height) !important; line-height: var(--file-row-height) !important; padding-top: 0 !important; padding-bottom: 0 !important; vertical-align: middle;} #fileList table.table tbody td.file-name-cell{white-space: normal; word-break: break-word; line-height: 1.2em !important; height: auto !important;} h2{font-size: 2em;} .form-group{margin-bottom: 10px;} label{font-size: 0.9rem;} .align-items-center{display: flex; align-items: center;} .table th button{background: none; border: none; color: inherit; cursor: pointer; padding: 0;} #uploadForm{display: none;} .folder-actions{display: flex; justify-content: center; align-items: center; gap: 2px; flex-wrap: wrap; white-space: normal; margin: 0;} @media (min-width: 600px) and (max-width: 992px) { .folder-actions{white-space: nowrap;} } .folder-actions .btn{padding: 10px 12px; font-size: 0.85rem; line-height: 1.1; border-radius: 6px;} .folder-actions .material-icons{font-size: 24px; vertical-align: -2px;} .folder-actions .btn{font-size: 0.85rem; line-height: 1.1; border-radius: 6px; transform: scale(1); transform-origin: center; transition: transform 120ms ease, box-shadow 120ms ease; will-change: transform;} .folder-actions .material-icons{font-size: 20px; vertical-align: -2px; transition: transform 120ms ease;} .folder-actions .btn:hover, .folder-actions .btn:focus-visible{transform: scale(1.06); box-shadow: 0 2px 8px rgba(0,0,0,0.12);} .folder-actions .btn:hover .material-icons, .folder-actions .btn:focus-visible .material-icons{transform: scale(1.05);} .folder-actions .btn:focus-visible{outline: 2px solid rgba(33,150,243,0.6); outline-offset: 2px;} @media (prefers-reduced-motion: reduce) { .folder-actions .btn, .folder-actions .material-icons{transition: none;} } #moveFolderBtn{background-color: #ff9800; border-color: #ff9800; color: #fff;} .row-selected{background-color: #f2f2f2 !important;} .dark-mode .row-selected{background-color: #444 !important; color: #fff !important;} .custom-prev-next-btn{background-color: #e0e0e0; color: #000; border: none; padding: 6px 12px; font-size: 14px; border-radius: 4px; margin: 0 4px; cursor: pointer;} .custom-prev-next-btn:hover:not(:disabled){background-color: #d5d5d5;} .dark-mode .custom-prev-next-btn{background-color: #444; color: #fff; border: none;} .dark-mode .custom-prev-next-btn:hover:not(:disabled){background-color: #555;} #customToast{position: fixed; bottom: 20px; right: 20px; background: #333; color: #fff; padding: 15px; border-radius: 4px; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3); opacity: 0; transition: opacity 0.5s ease; z-index: 9999; min-width: 250px; display: none;} #customToast.show{opacity: 0.9;} .button-wrap{display: flex; flex-wrap: nowrap; row-gap: 5px; column-gap: 0px;} @media (max-width: 500px) { .button-wrap{width: 100%;} } .button-wrap .btn{align-items: center; height: 32px !important; font-size: 14px !important;} .button-wrap .btn i.material-icons{font-size: 16px !important; line-height: 1 !important; vertical-align: middle !important;} #fileListContainer{border: 1px solid #e0e0e0; background: white; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); border-radius: var(--menu-radius); max-width: 100%; padding-bottom: 10px !important; padding-left: 5px !important; padding-right: 5px !important; margin: 0 auto 20px;} @media (max-width: 750px) { #fileListContainer{width: 99%;} } .dark-mode #fileListContainer{background-color: #2c2c2c; color: #e0e0e0; border: 1px solid #444; border-radius: var(--menu-radius);} #fileListContainer>h2, #fileListContainer>.file-list-actions, #fileListContainer>#fileList{margin-left: 15px;} @media (max-width: 768px) { #fileListContainer>h2, #fileListContainer>.file-list-actions, #fileListContainer>#fileList{margin-left: 1px;} } .col-12.col-md-4.text-left{margin-left: -17px;} @media (max-width: 600px) { .col-12.col-md-4.text-left{margin-left: -15px;} } #fileListTitle{font-size: 1.8em; margin-top: 10px; margin-bottom: 10px;} .file-list-actions{display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 20px;} .file-list-actions .action-btn{flex: 0 1 auto;} .modal-footer{margin-top: 15px; text-align: right;} .modal-input{width: 100%; margin-top: 10px;} @media (max-width: 600px) { #fileListTitle{font-size: 1.4em;} .file-list-actions{flex-direction: column; align-items: stretch;} .file-list-actions .action-btn{width: 100%;} .modal-content{width: 95%; margin: 20% auto;} } @media (hover:hover) and (pointer:fine) { #uploadBtn, #createBtn, #deleteSelectedBtn, #copySelectedBtn, #moveSelectedBtn, #downloadZipBtn, #extractZipBtn, #customChooseBtn{transition: transform 120ms ease, box-shadow 120ms ease; transform-origin: center; will-change: transform;} #uploadBtn:hover, #createBtn:hover, #deleteSelectedBtn:hover, #copySelectedBtn:hover, #moveSelectedBtn:hover, #downloadZipBtn:hover, #extractZipBtn:hover, #customChooseBtn:hover{transform: scale(1.08); box-shadow: 0 2px 10px rgba(0,0,0,.12);} #uploadBtn:active, #createBtn:active, #deleteSelectedBtn:active, #copySelectedBtn:active, #moveSelectedBtn:active, #downloadZipBtn:active, #extractZipBtn:active, #customChooseBtn:active{transform: scale(1.04);} #uploadBtn:focus-visible, #createBtn:focus-visible, #deleteSelectedBtn:focus-visible, #copySelectedBtn:focus-visible, #moveSelectedBtn:focus-visible, #downloadZipBtn:focus-visible, #extractZipBtn:focus-visible, #customChooseBtn:focus-visible{outline: none; transform: scale(1.08); box-shadow: 0 0 0 3px rgba(0,123,255,.25);} } @media (prefers-reduced-motion: reduce) { #uploadBtn, #createBtn, #deleteSelectedBtn, #copySelectedBtn, #moveSelectedBtn, #downloadZipBtn, #extractZipBtn, #customChooseBtn{transition: none !important; transform: none !important; box-shadow: none !important;} } .btn-group.btn-group-sm[aria-label="File actions"] .btn{padding: .2rem !important; width: 32px; height: 32px; line-height: 1 !important; display: inline-flex; align-items: center; justify-content: center;} .btn-group.btn-group-sm[aria-label="File actions"] .btn .material-icons, .btn-group.btn-group-sm[aria-label="File actions"] .btn .material-symbols-rounded{font-size: 20px !important; line-height: 1 !important;} .btn-group.btn-group-sm[aria-label="File actions"] .btn + .btn{margin-left: 2px;} .btn-group.btn-group-sm[aria-label="File actions"] .btn{transition: transform 120ms ease, box-shadow 120ms ease; transform-origin: center; transform: translateZ(0); will-change: transform;} .btn-group.btn-group-sm[aria-label="File actions"] .btn:hover{transform: scale(1.12); box-shadow: 0 0 0 2px rgba(0,0,0,0.04);} .btn-group.btn-group-sm[aria-label="File actions"] .btn:active{transform: scale(1.06);} .btn-group.btn-group-sm[aria-label="File actions"] .btn:focus-visible{transform: scale(1.12); outline: none; box-shadow: 0 0 0 3px rgba(0,123,255,.25);} .btn-group.btn-group-sm[aria-label="File actions"] .btn .material-icons, .btn-group.btn-group-sm[aria-label="File actions"] .btn .material-symbols-rounded{transition: transform 120ms ease;} .btn-group.btn-group-sm[aria-label="File actions"] .btn:hover .material-icons, .btn-group.btn-group-sm[aria-label="File actions"] .btn:hover .material-symbols-rounded{transform: scale(1.02);} @media (prefers-reduced-motion: reduce) { .btn-group.btn-group-sm[aria-label="File actions"] .btn, .btn-group.btn-group-sm[aria-label="File actions"] .btn .material-icons, .btn-group.btn-group-sm[aria-label="File actions"] .btn .material-symbols-rounded{transition: none !important; transform: none !important;} } .breadcrumb-link{cursor: pointer; color: #007bff; text-decoration: underline;} .breadcrumb-link:hover{color: #0056b3;} .breadcrumb-link.selected{background-color: #e9ecef; font-weight: bold; padding: 2px 4px; border-radius: 4px;} .folder-tree{list-style-type: none; padding-left: 5px; margin: 0;} .folder-tree.collapsed{display: none;} .folder-tree.expanded{display: block;} .folder-item{margin: 2px 0; display: block;} .folder-toggle{cursor: pointer; margin-right: 5px; display: inline-block; width: 25px; text-align: right;} .folder-indent-placeholder{display: inline-block; width: 5px;} #folderTreeContainer{display: block; margin-left: 10px;} .folder-option{cursor: pointer;} .folder-option:hover{background-color: #f0f0f0; padding: 2px 4px;} .folder-option.selected{background-color: #d0d0d0; border-radius: 4px; padding: 2px 4px;} .dark-mode .folder-option.selected{background-color: #444; color: #fff; border-radius: 4px; padding: 2px 4px;} .dark-mode .folder-option:hover{background-color: #333; color: #fff; padding: 2px 4px;} .image-modal-header{display: flex; align-items: center; justify-content: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; height: 25px; padding: 5px; margin-bottom: 10px; max-width: 90%;} .image-preview-modal-content{max-width: fit-content !important; max-height: 90vh; background: #fff; padding: 20px !important; border-radius: var(--menu-radius); overflow: hidden !important; margin: auto; position: relative; display: inline-flex !important; flex-direction: column; align-items: center; justify-content: center;} @media (max-width: 600px) { .image-preview-modal-content{max-width: fit-content !important; padding: 5px !important; overflow: hidden !important; display: inline-flex !important;} } .image-modal-img{max-width: 100%; max-height: 80vh; object-fit: contain; display: block; margin: 0 auto;} .close-image-modal{position: absolute; top: 10px; right: 15px; font-size: 24px; font-weight: bold; cursor: pointer; z-index: 1000; color: #ff4d4d; background-color: rgba(255, 255, 255, 0.8); border-radius: 50%; width: 32px; height: 32px; display: flex; justify-content: center; align-items: center; line-height: 1; padding-bottom: 2px; transition: all 0.3s ease-in-out;} .close-image-modal:hover{color: white; background-color: #ff4d4d; box-shadow: 0px 0px 6px rgba(255, 77, 77, 0.8); transform: scale(1.05);} .share-modal-content{width: 600px !important; max-width: 90vw !important;} .dark-mode .close-image-modal{background-color: rgba(0, 0, 0, 0.6); color: #ff6666;} .dark-mode .close-image-modal:hover{background-color: #ff6666; color: #000;} .dark-mode .image-preview-modal-content{background: #2c2c2c; border-color: #444;} .page-indicator{margin: 0 8px; white-space: nowrap;} .clickable-row{cursor: pointer;} .file-icon{color: #333; margin-right: 0; margin-left: 0; font-size: 32px;} .dark-mode .file-icon{color: white;} .bottom-select{display: inline-block; width: auto !important; font-size: 16px !important; height: 28px !important; padding: 2px 8px !important; line-height: 1.2 !important; border-radius: 4px !important; vertical-align: middle !important;} .label-inline{display: inline-flex; align-items: center; height: 28px !important; font-size: 16px !important; line-height: 1.2; margin-bottom: 0;} .items-per-page-text{display: inline-flex; align-items: center; height: 28px !important; font-size: 16px !important; line-height: 1.2; margin-left: 8px;} .upload-instruction{margin-bottom: 10px; font-size: 16px;} .upload-file-row{display: flex; align-items: center; justify-content: center; word-break: break-word;} .file-info-wrapper{display: flex; flex-direction: column; justify-content: center !important; align-items: center !important; margin-top: 10px;} .file-info-container{display: flex; flex-wrap: wrap !important; justify-content: center !important; align-items: center; flex-wrap: wrap; gap: 5px;} .file-preview-container{display: flex !important; flex-wrap: wrap !important; justify-content: center !important; align-items: center !important; gap: 5px !important; max-width: 100% !important; text-align: center !important;} .file-preview-img{max-width: 100px; max-height: 100px; margin-right: 5px; justify-content: center !important; height: auto; display: block !important;} @media (max-width: 600px) { .file-preview-container{justify-content: center !important;} } .file-name-display{vertical-align: middle; margin-left: 5px;} .upload-progress-wrapper{max-height: 300px; overflow-y: auto;} .upload-progress-list{list-style: none; padding: 0;} .upload-progress-item{padding-top: 10px; margin-bottom: 10px; display: flex; align-items: center; flex-wrap: wrap;} .upload-progress-extra{padding-top: 10px; margin-bottom: 10px; display: flex;} .upload-file-name{flex-grow: 1; margin-left: 5px; word-break: break-word;} .upload-progress-div{flex: 0 0 250px; margin-left: 5px;} .dark-mode{background-color: #121212; color: #e0e0e0;} .dark-mode .container{background-color: transparent !important;} .dark-mode .btn-primary{background-color: #007bff; color: #fff; border-color: #007bff;} .dark-mode .btn-secondary{background-color: #6c757d; color: #fff; border-color: #6c757d;} .dark-mode .btn-danger{background-color: #dc3545; color: #fff; border-color: #dc3545;} .dark-mode .modal .modal-content, .dark-mode .editor-modal{background-color: #2c2c2c; color: #e0e0e0; border: 1px solid #444;} .dark-mode table{background-color: #2c2c2c; color: #e0e0e0;} .dark-mode #uploadProgressContainer .progress{background-color: #333;} .dark-mode #uploadProgressContainer .progress-bar{background-color: #007bff; color: #e0e0e0;} .dark-mode-toggle{background-color: transparent !important; border: 1px solid transparent !important; color: white !important; padding: 6px 12px !important; border-radius: 6px !important; font-size: 0.9em !important; font-weight: 500 !important; cursor: pointer !important; transition: background 0.3s, border 0.3s !important;} .dark-mode-toggle:hover{background-color: rgba(255, 255, 255, 0.15) !important;} .dark-mode-toggle:active{background-color: rgba(255, 255, 255, 0.25) !important;} .dark-mode .dark-mode-toggle{background-color: transparent !important; color: white !important;} .dark-mode .dark-mode-toggle:hover{background-color: rgba(255, 255, 255, 0.15) !important;} .dark-mode-toggle:focus{outline: none !important; box-shadow: none !important;} .folder-help-details{margin-top: 2px; font-size: 12px; color: #555; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px; padding: 10px;} .folder-help-summary{cursor: pointer; list-style: none; color: #000; background: #f9f9f9; padding: 2px; display: inline-block;} .folder-help-icon{vertical-align: middle; color: #d96601; font-size: 24px !important;} .folder-help-list{margin: 0; padding-left: 20px;} .dark-mode .folder-help-details{color: #ddd; background-color: #2c2c2c; border-color: #444;} .dark-mode .folder-help-summary{color: #ddd; background: #2c2c2c;} .dark-mode .folder-help-icon{color: #f6a72c; font-size: 20px;} .dark-mode .CodeMirror{background: #1e1e1e !important; color: #ffffff !important;} .dark-mode .CodeMirror-cursor{border-left: 2px solid #ffffff !important;} .dark-mode .CodeMirror-gutters{background: #252526 !important; border-right: 1px solid #444 !important;} .dark-mode .CodeMirror-linenumber{color: #aaaaaa !important;} .dark-mode .CodeMirror-selected{background: rgba(255, 255, 255, 0.2) !important;} .dark-mode .CodeMirror-matchingbracket{background-color: rgba(255, 255, 255, 0.1) !important; border-bottom: 1px solid #ffffff !important;} .zoom_in, .zoom_out, .rotate_left, .rotate_right{background: rgba(80, 80, 80, 0.6) !important; border: none !important; color: white !important; cursor: pointer !important; border-radius: 4px !important; transition: background 0.3s ease, box-shadow 0.3s ease !important; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) !important; transform: translateY(-10px);} .gallery-nav-btn{background: rgba(80, 80, 80, 0.6) !important; border: none !important; color: white !important; font-size: 48px !important; cursor: pointer !important; padding: 10px 15px !important; border-radius: 4px !important; transition: background 0.3s ease, box-shadow 0.3s ease !important; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) !important;} .gallery-nav-btn:hover, .zoom_in:hover, .zoom_out:hover, .rotate_left:hover, .rotate_right:hover{background: rgba(80, 80, 80, 0.8) !important; box-shadow: 0 3px 6px rgba(0, 0, 0, 0.4) !important;} .drop-hover{background-color: #e0e0e0; border: 1px dashed #666;} .dark-mode .drop-hover{background-color: rgba(255, 255, 255, 0.1) !important; border-bottom: 1px dashed #ffffff !important;} #restoreFilesList li{display: flex !important; align-items: center !important; margin-bottom: 5px;} #restoreFilesList li input[type="checkbox"]{margin: 0 !important; transform: translateY(-3px) !important;} #restoreFilesList li label{margin-left: 8px !important;} .filr-menu{position: fixed; z-index: 9999; min-width: 220px; max-width: min(320px, 90vw); height: auto; max-height: calc(100vh - 16px); overflow: auto; padding: 6px; border-radius: 10px; border: 1px solid var(--ctx-sep, rgba(0,0,0,.08)); background: var(--ctx-bg, #fff); color: var(--ctx-fg, #1a1a1a); box-shadow: 0 8px 24px rgba(0,0,0,.18), 0 2px 6px rgba(0,0,0,.10);} .filr-menu{--ctx-bg:#fff; --ctx-fg:#1a1a1a; --ctx-sep:rgba(0,0,0,.08);} .dark-mode .filr-menu{--ctx-bg:#2c2c2c; --ctx-fg:#eaeaea; --ctx-sep:rgba(255,255,255,.12);} .filr-menu .mi{display: flex; align-items: center; gap: 10px; width: 100%; padding: 8px 10px; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; border-radius: 8px; user-select: none;} .filr-menu .mi:focus{outline: none;} .filr-menu .mi:hover, .filr-menu .mi:focus-visible{background: var(--filr-row-hover-bg, rgba(122,179,255,.14)); box-shadow: inset 0 0 0 1px var(--filr-row-outline-hover, rgba(122,179,255,.35));} .filr-menu .mi .material-icons{font-size: 18px; line-height: 1; color: currentColor;} .filr-menu .mi span{flex: 1 1 auto;} .filr-menu .sep{height: 1px; margin: 6px 4px; background: var(--ctx-sep);} .filr-menu, .filr-menu *{--bs-body-color: inherit; --bs-dropdown-link-hover-color: inherit;} .dark-mode #fileContextMenu{background: #2c2c2c; border-color: #555; box-shadow: 0 8px 24px rgba(0,0,0,.45);} #fileContextMenu{z-index: 1039;} #fileContextMenu[hidden]{display:none !important; pointer-events:none !important;} #folderContextMenu.filr-menu{max-height: min(calc(100vh - 16px), 420px); overflow-y: auto;} #folderContextMenu .material-icons{color: currentColor; opacity: .9;} .drop-target-sidebar{display: none; background-color: #f8f9fa; border-right: 2px dashed #1565C0; margin-top: 10px; margin-left: 10px;} @media (min-width: 769px) { .drop-target-sidebar{display: block;} } .drop-target-sidebar.active, .drag-header.active{width: 350px; height: 750px;} #sidebarDropArea{width: 350px; min-width: 350px; max-width: 350px; flex: 0 0 350px; box-sizing: border-box;} .main-column{flex: 1; transition: margin-left 0.3s ease;} #uploadFolderRow{display: flex; flex-wrap: nowrap; gap: 1rem;} @media (max-width: 768px) { #uploadFolderRow{gap: 0px;} } #leftCol, #rightCol{display: flex; justify-content: center; min-width: 370px; align-self: flex-start;} #leftCol{flex: 0 1 60%;} #rightCol{flex: 0 1 40%;} @media (max-width: 768px) { .main-wrapper{flex-direction: column;} .drop-target-sidebar{display: none !important;} #uploadFolderRow{flex-wrap: wrap;} #leftCol, #rightCol{flex: 0 1 100% !important;} #rightCol{margin-bottom: 0;} } #sidebarDropArea.highlight, #uploadFolderRow.highlight{border: 2px dashed #1565C0; background-color: #eef;} .drag-header{cursor: grab; user-select: none; position: relative;} .drag-header::after{content: '⋮⋮'; position: absolute; right: 10px; top: 50%; transform: translateY(-50%); font-size: 16px; color: #1565C0; pointer-events: none;} .dragging{transform: scale(1.05); box-shadow: 0 20px 30px rgba(0, 0, 0, 0.3); transition: transform 0.2s ease, box-shadow 0.2s ease; z-index: 10000;} :root{--menu-radius: 12px;} .filr-menu{border-radius: var(--menu-radius);} #uploadCard, #folderManagementCard{transition: transform 0.3s ease, opacity 0.3s ease; width: 100%; margin-bottom: 20px; min-height: 320px; border-radius: var(--menu-radius); overflow: hidden; border: 1px solid var(--card-border, #e5e7eb); background: var(--card-bg, #fff); box-shadow: 0 8px 24px rgba(0,0,0,.08);} body.dark-mode #uploadCard, body.dark-mode #folderManagementCard{border-color: var(--card-border-dark, #3a3a3a); background: var(--card-bg-dark, #2c2c2c); box-shadow: 0 12px 28px rgba(0,0,0,.35);} #uploadFolderRow.highlight{min-height: 320px; margin-bottom: 20px;} #sidebarDropArea, #uploadFolderRow{background-color: transparent;} .dark-mode #sidebarDropArea, .dark-mode #uploadFolderRow{background-color: transparent;} .dark-mode #sidebarDropArea.highlight, .dark-mode #uploadFolderRow.highlight{background-color: #333; border: 2px dashed #555; color: #fff;} .drop-target-sidebar.highlight{margin-top: 10px;} .drop-target-sidebar:not(.highlight){border: none !important;} .dragging:focus{outline: none;} .card{background-color: #fff; color: #000; border: 1px solid #ddd; max-width: 900px; width: 100%; margin: 0 auto;} .dark-mode .card{background-color: #2c2c2c; color: #e0e0e0; border: 1px solid #444;} .card-header{font-size: 1.2rem; font-weight: bold;} .custom-folder-card-body{padding-top: 5px !important; padding-right: 0 !important; padding-left: 0 !important;} #addUserModal, #removeUserModal{z-index: 5000 !important;} #customConfirmModal{z-index: 12000 !important;} .admin-panel-content{background: #fff; color: #000;} .dark-mode .admin-panel-content{background: #2c2c2c; color: #e0e0e0; border: 1px solid #444;} .dark-mode .admin-panel-content input, .dark-mode .admin-panel-content select, .dark-mode .admin-panel-content textarea{background: #3a3a3a; color: #e0e0e0; border: 1px solid #555;} .dark-mode .admin-panel-content label{color: #e0e0e0;} #openChangePasswordModalBtn{width: max-content; padding: 6px 12px; font-size: 14px;} #changePasswordModal{z-index: 9999;} @keyframes spin { 0%{transform: rotate(0deg);} 100%{transform: rotate(360deg);} } .spinning{animation: spin 1s linear infinite;} .download-spinner{font-size: 48px; animation: spin 2s linear infinite; color: var(--download-spinner-color, #000);} body:not(.dark-mode){--download-spinner-color: #000;} .dark-mode{--download-spinner-color: #fff;} .rise-effect{transform: translateY(-20px); transition: transform 0.3s ease;} .toggle-modal-btn, .collapse-btn{background: none; border: none; outline: none; cursor: pointer; padding: 8px; font-size: 24px; color: #616161; border-radius: 50%; transition: background 0.3s ease;} .toggle-modal-btn:hover, .collapse-btn:hover{background: rgba(0, 0, 0, 0.1);} .toggle-modal-btn:focus, .collapse-btn:focus{outline: none;} .header-drop-zone{width: 66px; height: 36px; align-items: center; justify-content: center; gap: 5px; display: inline-flex;} .header-drop-zone.drag-active{border: 2px dashed #1565C0; background-color: #eef; background-color: transparent; transition: width 0.3s ease; box-sizing: border-box;} .dark-mode .header-drop-zone.drag-active{background-color: #333; border: 2px dashed #555; color: #fff;} .header-drop-zone.drag-active:empty::before{content: "Drop Zone"; font-size: 10px; padding-right: 6px; color: #aaa;} #fileList tbody tr.clickable-row{-webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none;} #fileSummary{color: black;} @media only screen and (max-width: 600px) { #fileSummary, #rowHeightSliderContainer, #viewSliderContainer{float: none !important; margin: 0 auto !important; text-align: center !important; display: block !important;} } #viewSliderContainer label, #viewSliderContainer span{line-height: 1; margin: 0; padding: 0;} .dark-mode #fileSummary{color: white;} #searchIcon{border-radius: 4px; padding: 4px 8px;} .dark-mode #searchIcon{background-color: #444; border: 1px solid #555; color: #fff;} .dark-mode #searchInput{background-color: #333; color: #e0e0e0; border: 1px solid #555;} .btn-icon{background: transparent; border: none; padding: 6px 8px; margin: 0; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: background 0.2s, color 0.2s;} .btn-icon .material-icons, #searchIcon .material-icons{font-size: 24px; line-height: 1; margin: 0; padding: 0; color: #333;} .btn-icon:hover, .btn-icon:focus{background: var(--filr-row-hover-bg) !important; outline: none; box-shadow: inset 0 1px 0 var(--filr-row-outline-hover), inset 0 -1px 0 var(--filr-row-outline-hover);} .dark-mode .btn-icon .material-icons, .dark-mode #searchIcon .material-icons{color: #fff;} .dark-mode .btn-icon:hover, .dark-mode .btn-icon:focus{background: rgba(255, 255, 255, 0.1);} .user-dropdown{position: relative; display: inline-block;} .user-dropdown .user-menu{display: none; position: absolute; right: 0; margin-top: 0.25rem; background: var(--bs-body-bg, #fff); border: 1px solid #ccc; border-radius: var(--menu-radius); min-width: 150px; box-shadow: 0 2px 6px rgba(0,0,0,0.2); z-index: 1000;} .user-dropdown .user-menu.show{display: block;} .user-dropdown .user-menu .item{padding: 0.5rem 0.75rem; cursor: pointer; white-space: nowrap;} .user-dropdown .dropdown-caret{border-top: 5px solid currentColor; border-left: 5px solid transparent; border-right: 5px solid transparent; display: inline-block; vertical-align: middle; margin-left: 0.25rem;} .dark-mode .user-dropdown .user-menu{background: #2c2c2c; border-color: #444;} .dark-mode .user-dropdown .user-menu .item{color: #e0e0e0;} .user-dropdown .dropdown-username{margin: 0 8px; font-weight: 500; vertical-align: middle; white-space: nowrap;} .user-dropdown .user-menu{border-radius: var(--menu-radius); overflow: hidden; backdrop-filter: saturate(140%) blur(2px);} .user-dropdown .user-menu .item{padding: 0.5rem 0.75rem; cursor: pointer; white-space: nowrap; transition: background-color .12s ease, box-shadow .12s ease;} .user-dropdown .user-menu .item:hover{background: var(--filr-row-hover-bg) !important; box-shadow: inset 0 1px 0 var(--filr-row-outline-hover), inset 0 -1px 0 var(--filr-row-outline-hover);} .user-dropdown .user-menu .item:first-child:hover{border-top-left-radius: var(--menu-radius); border-top-right-radius: var(--menu-radius);} .user-dropdown .user-menu .item:last-child:hover{border-bottom-left-radius: var(--menu-radius); border-bottom-right-radius: var(--menu-radius);} .dark-mode .user-dropdown .user-menu{background: #2c2c2c; border-color: #444;} .folder-strip-container{display: flex; padding-top: 0px !important; flex-wrap: wrap; gap: 10px 14px; align-content: flex-start; padding: 6px 4px;} .folder-strip-container .folder-item{display: flex; padding-top: 0px !important; flex-direction: column; align-items: center; justify-content: center; min-width: 0; gap: 2px !important; padding: 6px 8px; box-sizing: border-box; border-radius: 10px; color: inherit; font-size: 0.85em; transition: transform .12s ease, box-shadow .12s ease, background-color .12s ease; max-width: 180px;} .folder-strip-container .folder-item .folder-svg{line-height: 0; margin-bottom: 0px;} .folder-strip-container .folder-item .folder-svg svg{width: 48px; height: 48px; display: block;} .folder-strip-container .folder-name{display: block; width: 100%; max-width: 100%; white-space: normal !important; overflow-wrap: anywhere; word-break: break-word; hyphens: auto; text-align: center; overflow: visible; text-overflow: clip; transform: translateX(2px); line-height: 1.2;} .folder-strip-container .folder-item:hover{transform: translateY(-1px) scale(1.04); background-color: rgba(0, 0, 0, 0.04); box-shadow: 0 4px 10px rgba(0, 0, 0, .15);} body.dark-mode .folder-strip-container .folder-item:hover{background-color: rgba(255, 255, 255, 0.06); box-shadow: 0 6px 16px rgba(0, 0, 0, .45);} .folder-strip-container .folder-item:focus-visible{outline: 2px solid #8ab4f8; outline-offset: 2px;} :root{--perm-caret: #444;} .dark-mode{--perm-caret: #ccc;} #zonesToggleFloating, #sidebarToggleFloating{transition: transform 160ms cubic-bezier(.2,.0,.2,1), box-shadow 160ms cubic-bezier(.2,.0,.2,1), border-color 160ms cubic-bezier(.2,.0,.2,1), background-color 160ms cubic-bezier(.2,.0,.2,1);} :root{--toggle-icon-color: #333;} .dark-mode{--toggle-icon-color: #eee;} #zonesToggleFloating .material-icons, #zonesToggleFloating .material-icons-outlined, #sidebarToggleFloating .material-icons, #sidebarToggleFloating .material-icons-outlined{color: var(--toggle-icon-color); font-size: 22px; line-height: 1; display: block;} #zonesToggleFloating:hover, #sidebarToggleFloating:hover{transform: translateY(-1px); box-shadow: 0 6px 16px rgba(0,0,0,.14); border-color: #cfcfcf;} #zonesToggleFloating:active, #sidebarToggleFloating:active{transform: translateY(0) scale(.96); box-shadow: 0 3px 8px rgba(0,0,0,.12);} #zonesToggleFloating:focus-visible, #sidebarToggleFloating:focus-visible{outline: none; box-shadow: 0 6px 16px rgba(0,0,0,.14), 0 0 0 3px rgba(25,118,210,.25);} #zonesToggleFloating::after, #sidebarToggleFloating::after{content: ''; position: absolute; inset: 0; border-radius: inherit; background: radial-gradient(circle, rgba(0,0,0,.12) 0%, rgba(0,0,0,0) 60%); transform: scale(0); opacity: 0; transition: transform 300ms ease, opacity 450ms ease; pointer-events: none;} #zonesToggleFloating:active::after, #sidebarToggleFloating:active::after{transform: scale(1.4); opacity: 1;} #zonesToggleFloating.is-collapsed, #sidebarToggleFloating.is-collapsed{background: #fafafa; border-color: #e2e2e2;} .media-modal{background: #2c2c2c;} .media-header-bar .btn{padding: 6px 10px;} .gallery-nav-btn{color: #fff; opacity: 0.85;} .gallery-nav-btn:hover{opacity: 1; transform: scale(1.05);} .status-badge{display: inline-block; margin-left: 6px; padding: 2px 6px; font-size: 11px; line-height: 1.3; border-radius: 999px; border: 1px solid rgba(255,255,255,.15); background: rgba(255,255,255,.08); color: #fff;} .status-badge.watched{border-color: rgba(34,197,94,.45); background: rgba(34,197,94,.15);} .status-badge.progress{border-color: rgba(234,88,12,.55); background: rgba(234,88,12,.18);} #downloadProgressModal .modal-body, #downloadProgressModal .rise-modal-body, #downloadProgressModal .modal-content{min-height: 88px; overflow: hidden;} #downloadProgressText{white-space: nowrap; overflow: hidden; text-overflow: ellipsis;} #downloadProgressBarOuter{height: 10px;} #folderTreeContainer{--filr-folder-front: #f6b84e; --filr-folder-back: #ffd36e; --filr-folder-stroke:#a87312; --filr-paper-fill: #ffffff; --filr-paper-stroke: #9fb3d6; --row-h: 28px; --twisty: 24px; --twisty-gap: -5px; --icon-size: 24px; --icon-gap: 6px; --indent: 10px;} #folderTreeContainer .folder-item{position: static; padding-left: 0;} #folderTreeContainer .folder-item > .folder-tree{margin-left: var(--indent);} #folderTreeContainer .folder-row{position: relative; display: flex; align-items: center; min-height: var(--row-h); height: auto; padding-left: calc(var(--twisty) + var(--twisty-gap));} #folderTreeContainer .folder-row > button.folder-toggle, #folderTreeContainer .folder-row > .folder-spacer{position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: var(--twisty); height: var(--twisty); display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 6px; background: transparent; cursor: pointer;} #folderTreeContainer .folder-row > button.folder-toggle::before{content: "▸"; font-size: calc(var(--twisty) * 0.8); line-height: 1;} #folderTreeContainer li[role="treeitem"][aria-expanded="true"] > .folder-row > button.folder-toggle::before, #rootRow[aria-expanded="true"] > button.folder-toggle::before{content: "▾";} #folderTreeContainer .folder-row > button.folder-toggle:hover{border-color: color-mix(in srgb, #7ab3ff 35%, transparent);} #folderTreeContainer .folder-option{display: inline-flex; flex: 0 1 auto; align-items: center; gap: var(--icon-gap); height: auto; min-height: var(--row-h); padding: 0 8px; border-radius: 8px; line-height: 1.2; user-select: none; max-width: 100%; white-space: normal;} #folderTreeContainer .folder-option:hover{background: rgba(122,179,255,.14);} #folderTreeContainer .folder-option.selected{background: rgba(122,179,255,.24); box-shadow: inset 0 0 0 1px rgba(122,179,255,.45);} #folderTreeContainer .folder-label{ flex: 1 1 120px; min-width: 0; white-space: normal; overflow-wrap: anywhere; word-break: break-word; line-height: 1.2; margin-top: 2px; } #folderTreeContainer .folder-icon{flex: 0 0 var(--icon-size); width: var(--icon-size); height: var(--icon-size); display: inline-flex; align-items: center; justify-content: center;} #folderTreeContainer .folder-icon svg{width: 100%; height: 100%; display: block; shape-rendering: geometricPrecision;} #folderTreeContainer .folder-icon .folder-front, #folderTreeContainer .folder-icon .folder-back{fill: currentColor; stroke: var(--filr-folder-stroke); stroke-width: .5; paint-order: fill stroke; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke;} #folderTreeContainer .folder-icon .folder-front{color: var(--filr-folder-front);} #folderTreeContainer .folder-icon .folder-back{color: var(--filr-folder-back);} #folderTreeContainer .folder-icon .paper{fill: var(--filr-paper-fill); stroke: var(--filr-paper-stroke); stroke-width: 1.5; paint-order: stroke fill;} #folderTreeContainer .folder-icon .paper-fold{fill: var(--filr-paper-stroke);} #folderTreeContainer .folder-icon .paper-line{stroke: var(--filr-paper-stroke); stroke-width: 1.5; stroke-linecap: round; fill: none; opacity: .95;} #folderTreeContainer .folder-icon .lip-highlight{fill: none; vector-effect: non-scaling-stroke;} #folderTreeContainer .folder-icon, #folderTreeContainer .folder-label{transform: none !important;} .folder-strip-container .folder-svg svg{display: block; shape-rendering: crispEdges;} .folder-strip-container .folder-item{--filr-folder-front: #f6b84e; --filr-folder-back: #ffd36e; --filr-folder-stroke: #a87312;} .folder-strip-container .folder-svg .folder-front, .folder-strip-container .folder-svg .folder-back{fill: currentColor; stroke: var(--filr-folder-stroke); stroke-width: .5; paint-order: fill stroke; stroke-linejoin: round; stroke-linecap: round;} .folder-strip-container .folder-svg .folder-front{color: var(--filr-folder-front);} .folder-strip-container .folder-svg .folder-back{color: var(--filr-folder-back);} .folder-strip-container .folder-svg .paper{fill: #fff; stroke: #b2c2db; stroke-width: 1; vector-effect: non-scaling-stroke;} .folder-strip-container .folder-svg .paper-fold{fill: #b2c2db;} .folder-strip-container .folder-svg .paper-line{stroke: #b2c2db; stroke-width: 1; stroke-linecap: round; fill: none; vector-effect: non-scaling-stroke;} .folder-strip-container .folder-svg .lip-highlight{fill: none; vector-effect: non-scaling-stroke;} #folderTreeContainer .folder-icon .folder-front, #folderTreeContainer .folder-icon .folder-back, .folder-strip-container .folder-svg .folder-front, .folder-strip-container .folder-svg .folder-back, #folderTreeContainer .folder-icon .lip-highlight, .folder-strip-container .folder-svg .lip-highlight{stroke-linejoin: round; stroke-linecap: round;} .folder-strip-container .folder-svg svg, #folderTreeContainer .folder-icon svg{shape-rendering: geometricPrecision !important;} @media (max-resolution: 1.5dppx) { #folderTreeContainer .folder-icon .folder-front, #folderTreeContainer .folder-icon .folder-back{stroke-width: .6;} } #folderTreeContainer .folder-icon .paper-ink, .folder-strip-container .folder-svg .paper-ink{stroke: #4da3ff; stroke-width: .9; stroke-linecap: round; stroke-linejoin: round; fill: none; opacity: .85; paint-order: normal;} #folderTreeContainer .folder-icon .folder-front, #folderTreeContainer .folder-icon .folder-back, #folderTreeContainer .folder-icon .paper-line, #folderTreeContainer .folder-icon .paper-ink, #folderTreeContainer .folder-icon .lip-highlight{stroke-width: .6px;} .folder-strip-container .folder-svg .folder-front, .folder-strip-container .folder-svg .folder-back, .folder-strip-container .folder-svg .paper-line, .folder-strip-container .folder-svg .paper-ink, .folder-strip-container .folder-svg .lip-highlight{stroke-width: 1.1px;} #folderTreeContainer .folder-option.locked{opacity: .9; font-style: italic;} #folderTreeContainer .folder-icon .lock-body{fill: var(--filr-folder-stroke, #6b6b6b); opacity: .95;} #folderTreeContainer .folder-icon .lock-shackle{fill: none; stroke: var(--filr-folder-stroke, #6b6b6b); stroke-width: 1.4; stroke-linecap: round;} #folderTreeContainer .folder-icon .lock-keyhole{fill: rgba(0,0,0,.28);} body.dark-mode #folderTreeContainer .folder-icon .lock-keyhole{fill: rgba(255,255,255,.28);} #folderTreeContainer li.load-more{padding: 4px 0 4px 28px; list-style: none;} #folderTreeContainer li.load-more > .btn.btn-ghost{width: calc(100% - 8px); margin: 0 4px; display: flex; align-items: center; gap: 8px; justify-content: center; border-radius: 10px; border: 1px solid var(--tree-ghost-border); background: var(--tree-ghost-bg); color: var(--tree-ghost-fg); padding: 6px 10px; font-size: 12.5px;} #folderTreeContainer li.load-more > .btn.btn-ghost:hover{background: var(--tree-ghost-hover-bg);} #folderTreeContainer li.load-more > .btn.btn-ghost:focus-visible{outline: 2px solid #8ab4f8; outline-offset: 2px;} #folderTreeContainer li.load-more > .btn[aria-busy="true"]::before{content: ""; width: 12px; height: 12px; border-radius: 50%; border: 2px solid currentColor; border-right-color: transparent; display: inline-block; animation: filr-spin .8s linear infinite;} @keyframes filr-spin { to{transform: rotate(360deg);} } #resumableDraftBanner.upload-resume-banner{margin: 8px 12px 12px;} .upload-resume-banner-inner{display: flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 10px; background: rgba(255, 152, 0, 0.06); border: 1px solid rgba(255, 152, 0, 0.55); font-size: 0.9rem;} .upload-resume-banner-inner .material-icons, .folder-badge .material-icons{font-size: 20px; margin-right: 6px; vertical-align: middle; background-color: transparent; color: #111;} .dark-mode .upload-resume-banner-inner .material-icons, .dark-mode .folder-badge .material-icons{background-color: transparent; color: #f5f5f5;} /* Base strip container */ .folder-strip-container { margin-bottom: 6px; } /* Base item layout */ .folder-strip-container .folder-item { display: flex; min-width: 0; } .folder-strip-container .folder-svg { flex: 0 0 auto; line-height: 0; } .folder-strip-container .folder-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* --- Desktop: chips, icon above name --- */ .folder-strip-container.folder-strip-desktop { display: flex; align-items: center; overflow-x: auto; padding: 4px 8px; } .folder-strip-container.folder-strip-desktop .folder-item { flex-direction: column; /* icon on top, name under */ align-items: center; gap: 4px; } .folder-strip-container.folder-strip-desktop .folder-name { text-align: center; max-width: 120px; } /* --- Mobile: stacked rows, icon left of name --- */ .folder-strip-container.folder-strip-mobile { display: block; max-height: 220px; overflow-y: auto; padding: 6px 8px; border-radius: 8px; border: 1px solid rgba(0,0,0,.08); background: rgba(0,0,0,.02); } .folder-strip-container.folder-strip-mobile .folder-item { width: 100%; flex-direction: row; /* icon left, name right */ align-items: center; gap: 6px; padding: 8px 8px; border-radius: 6px; margin-bottom: 4px; } .folder-strip-container.folder-strip-mobile .folder-name { flex: 1 1 auto; text-align: left; transform: translate(8px, 4px); } .folder-strip-container.folder-strip-mobile .folder-item:hover { background: rgba(0,0,0,.04); } .folder-strip-container.folder-strip-mobile .folder-item.selected { background: rgba(59,130,246,.12); } /* Load-more button */ .folder-strip-load-more { display: block; width: 100%; margin: 4px 0 0; padding: 6px 10px; border-radius: 6px; border: 1px solid rgba(0,0,0,.15); background: rgba(0,0,0,.02); font-size: 0.85rem; text-align: center; cursor: pointer; }