/* CloudServer Upload Manager. Uses the shared CloudServer design tokens. */
.upload-workspace { max-width: 1180px; margin: 0 auto; color: var(--text); }
.upload-top { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:20px; }
.upload-top h1 { margin:0 0 5px; font-size:28px; font-weight:600; letter-spacing:-.02em; }
.upload-top p { margin:0; color:var(--text-secondary); font-size:14px; }
.upload-destination-bar { display:flex; align-items:center; gap:12px; padding:12px 14px; background:var(--surface); border:1px solid var(--border); border-radius:8px; margin-bottom:18px; box-shadow:0 1px 2px rgba(25,35,45,.04); }
.upload-folder-icon { width:34px; height:34px; border-radius:7px; display:grid; place-items:center; background:var(--hover); font-size:17px; flex:0 0 auto; }
.upload-destination-copy { min-width:0; flex:1; }
.upload-destination-label { font-size:11px; color:var(--text-muted); text-transform:uppercase; letter-spacing:.06em; margin-bottom:2px; }
.upload-destination-value { font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.upload-link-btn, .upload-text-btn { border:0; background:transparent; color:var(--primary); font:inherit; cursor:pointer; padding:7px 9px; border-radius:5px; }
.upload-link-btn:hover, .upload-text-btn:hover { background:var(--hover); }
.upload-main-grid { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:18px; align-items:start; }
.upload-card { background:var(--surface); border:1px solid var(--border); border-radius:8px; overflow:hidden; box-shadow:0 1px 2px rgba(25,35,45,.04); }
.upload-card-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:15px 18px; border-bottom:1px solid var(--border-soft); }
.upload-card-head h2 { margin:0; font-size:16px; font-weight:600; }
.upload-card-body { padding:18px; }
.upload-dropzone { border:1px dashed var(--border); border-radius:8px; min-height:160px; display:flex; align-items:center; justify-content:center; text-align:center; background:var(--surface-soft); transition:border-color .15s, background .15s; cursor:pointer; }
.upload-dropzone:hover, .upload-dropzone.is-dragging { border-color:var(--primary); background:var(--primary-soft); }
.upload-drop-inner { max-width:430px; padding:22px; }
.upload-cloud { width:42px; height:42px; margin:0 auto 12px; border-radius:50%; background:var(--hover); display:grid; place-items:center; font-size:20px; }
.upload-drop-title { font-size:15px; font-weight:600; margin-bottom:5px; }
.upload-drop-sub { color:var(--text-secondary); font-size:13px; line-height:1.5; }
.upload-queue { margin-top:18px; border:1px solid var(--border); border-radius:7px; overflow:hidden; }
.upload-queue-head, .upload-row { display:grid; grid-template-columns:minmax(0,1fr) 100px 110px 42px; align-items:center; gap:12px; }
.upload-queue-head { padding:9px 12px; background:var(--surface-soft); color:var(--text-secondary); font-size:11px; text-transform:uppercase; letter-spacing:.05em; }
.upload-row { padding:11px 12px; border-top:1px solid var(--border-soft); font-size:13px; }
.upload-file-name { min-width:0; display:flex; align-items:center; gap:9px; }
.upload-file-name strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:500; }
.upload-file-icon { width:28px; height:28px; border-radius:5px; background:var(--hover); display:grid; place-items:center; flex:0 0 auto; }
.upload-muted { color:var(--text-secondary); font-size:12px; }
.upload-remove { width:30px; height:30px; border:0; background:transparent; border-radius:5px; cursor:pointer; color:var(--text-secondary); font-size:18px; }
.upload-remove:hover { background:var(--hover); color:var(--text); }
.upload-actions-bar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:18px; }
.upload-primary { border:0; border-radius:6px; background:var(--primary); color:#ffffff; padding:9px 17px; font:600 14px inherit; cursor:pointer; }
.upload-primary:hover:not(:disabled) { background:var(--primary-hover); }
.upload-primary:disabled { opacity:.45; cursor:not-allowed; }
.upload-secondary-btn { border:1px solid var(--border); border-radius:6px; background:var(--surface); color:var(--text); padding:8px 13px; font:500 13px inherit; cursor:pointer; }
.upload-secondary-btn:hover:not(:disabled) { background:var(--surface-soft); }
.upload-secondary-btn:disabled { opacity:.5; cursor:not-allowed; }
.upload-side-section { padding:16px 18px; border-bottom:1px solid var(--border-soft); }
.upload-side-section:last-child { border-bottom:0; }
.upload-side-title { color:var(--text-secondary); font-size:11px; text-transform:uppercase; letter-spacing:.06em; margin-bottom:8px; }
.upload-status-line { display:flex; justify-content:space-between; gap:12px; font-size:13px; margin-bottom:8px; }
.upload-status { font-weight:600; }
.upload-progress { height:7px; background:var(--border-soft); border-radius:999px; overflow:hidden; }
.upload-progress-fill { height:100%; width:0; background:var(--primary); transition:width .18s ease; }
.upload-progress-meta { display:flex; justify-content:space-between; margin-top:7px; color:var(--text-secondary); font-size:12px; }
.upload-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.upload-detail span { display:block; color:var(--text-muted); font-size:11px; margin-bottom:3px; }
.upload-detail strong { display:block; font-size:13px; font-weight:500; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.upload-log { max-height:140px; overflow:auto; font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace; color:var(--text-secondary); white-space:pre-wrap; }
.upload-empty { padding:18px; text-align:center; color:var(--text-muted); font-size:13px; }
.upload-modal-backdrop { position:fixed; inset:0; background:rgba(48,52,59,.42); display:none; align-items:center; justify-content:center; z-index:1000; padding:20px; }
.upload-modal-backdrop.open { display:flex; }
.upload-modal { width:min(620px,100%); max-height:min(720px,90vh); background:var(--surface); border-radius:10px; box-shadow:var(--shadow-medium); display:flex; flex-direction:column; overflow:hidden; }
.upload-modal-head { display:flex; align-items:center; justify-content:space-between; padding:17px 20px; border-bottom:1px solid var(--border-soft); }
.upload-modal-head h2 { margin:0; font-size:18px; font-weight:600; }
.upload-close { border:0; background:transparent; font-size:22px; cursor:pointer; color:var(--text-secondary); width:34px; height:34px; border-radius:50%; }
.upload-close:hover { background:var(--hover); }
.upload-modal-toolbar { padding:12px 20px; border-bottom:1px solid var(--border-soft); }
.upload-folder-search { width:100%; box-sizing:border-box; padding:9px 11px; border:1px solid var(--border); border-radius:6px; font:14px inherit; }
.upload-folder-list { overflow:auto; padding:8px 10px; min-height:220px; }
.upload-folder-option { width:100%; display:flex; align-items:center; gap:10px; border:0; background:var(--surface); padding:10px; text-align:left; border-radius:6px; cursor:pointer; font:14px inherit; }
.upload-folder-option:hover, .upload-folder-option.selected { background:var(--hover); }
.upload-folder-option .folder-name { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.upload-folder-option .folder-path { color:var(--text-muted); font-size:12px; }
.upload-modal-foot { display:flex; align-items:center; justify-content:flex-end; gap:9px; padding:13px 20px; border-top:1px solid var(--border-soft); }
.upload-mobile-hide { display:block; }
@media(max-width:900px) { .upload-main-grid { grid-template-columns:1fr; } .upload-top { align-items:flex-start; flex-direction:column; } }
@media(max-width:650px) { .upload-queue-head { display:none; } .upload-row { grid-template-columns:minmax(0,1fr) 70px 36px; } .upload-row .upload-row-status { display:none; } .upload-actions-bar { align-items:stretch; flex-direction:column; } .upload-primary, .upload-secondary-btn { width:100%; } }

/* =========================================================
   PROFESSIONAL DESTINATION PICKER
   ========================================================= */
.upload-folder-icon svg,
.upload-cloud svg,
.upload-file-icon svg,
.upload-file-name svg,
.upload-close svg,
.upload-folder-option .folder-icon svg {
    width: 18px;
    height: 18px;
    display: block;
}

.upload-folder-icon {
    color: var(--primary);
    background: var(--primary-soft);
}

.upload-cloud {
    color: var(--primary);
}

.upload-remove {
    display: grid;
    place-items: center;
    padding: 0;
}

.upload-remove svg {
    width: 16px;
    height: 16px;
}

.upload-modal-backdrop {
    background: rgba(28, 33, 40, .48);
    backdrop-filter: blur(2px);
}

.upload-modal {
    width: min(680px, 100%);
    max-height: min(700px, 88vh);
    border: 1px solid var(--border);
    border-radius: 14px;
    box-shadow: 0 24px 70px rgba(31, 38, 48, .20);
}

.upload-modal-head {
    padding: 20px 22px 17px;
}

.upload-modal-head h2 {
    font-size: 19px;
    letter-spacing: -.01em;
}

.upload-close {
    display: grid;
    place-items: center;
    padding: 0;
}

.upload-close svg {
    width: 18px;
    height: 18px;
}

.upload-modal-toolbar {
    padding: 13px 22px;
}

.upload-folder-search-wrap {
    position: relative;
    display: flex;
    align-items: center;
}

.upload-folder-search-wrap > svg {
    position: absolute;
    left: 12px;
    width: 17px;
    height: 17px;
    color: var(--text-muted);
    pointer-events: none;
}

.upload-folder-search {
    padding: 10px 12px 10px 38px;
    height: 40px;
    border-radius: 8px;
    background: var(--surface-soft);
}

.upload-folder-search:focus {
    outline: none;
    border-color: var(--primary);
    background: var(--surface);
    box-shadow: 0 0 0 3px rgba(79, 117, 184, .10);
}

.upload-folder-list {
    min-height: 260px;
    padding: 8px 14px 12px;
    scrollbar-width: thin;
}

.upload-folder-option {
    position: relative;
    min-height: 48px;
    margin: 2px 0;
    gap: 12px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--text);
    border-radius: 9px;
    padding-top: 8px;
    padding-bottom: 8px;
}

.upload-folder-option:hover {
    background: var(--surface-soft);
    border-color: var(--border-soft);
}

.upload-folder-option.selected {
    background: var(--primary-soft);
    border-color: rgba(79, 117, 184, .28);
    color: var(--text);
}

.upload-folder-option .folder-icon {
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    flex: 0 0 28px;
    color: var(--primary);
}

.upload-folder-option .folder-name {
    font-weight: 600;
}

.upload-folder-option .folder-path {
    max-width: 42%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--text-muted);
}

.upload-folder-option.selected .folder-path {
    color: var(--primary);
}

.upload-modal-foot {
    padding: 14px 22px 17px;
}

/* =========================================================
   UPLOAD FOLDER PICKER — ISOLATED CONTROL RESET
   The authenticated user-theme stylesheet applies broad button
   rules after this stylesheet. Keep picker controls isolated so
   those rules cannot turn folder rows or icon buttons into solid
   blue blocks.
   ========================================================= */
.upload-modal .upload-close {
    appearance: none !important;
    -webkit-appearance: none !important;
    display: grid !important;
    place-items: center !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    padding: 0 !important;
    border: 1px solid var(--border) !important;
    border-radius: 9px !important;
    background: var(--surface) !important;
    color: var(--text-secondary) !important;
    box-shadow: none !important;
    font: inherit !important;
}

.upload-modal .upload-close:hover {
    background: var(--hover) !important;
    border-color: var(--border) !important;
    color: var(--text) !important;
    filter: none !important;
}

.upload-modal .upload-close svg {
    width: 18px !important;
    height: 18px !important;
}

.upload-modal .upload-folder-option,
.upload-modal .upload-folder-option:hover,
.upload-modal .upload-folder-option:focus,
.upload-modal .upload-folder-option.selected {
    appearance: none !important;
    -webkit-appearance: none !important;
    width: 100% !important;
    min-height: 48px !important;
    margin: 2px 0 !important;
    padding-top: 8px !important;
    padding-bottom: 8px !important;
    border: 1px solid transparent !important;
    border-radius: 9px !important;
    background: transparent !important;
    color: var(--text) !important;
    box-shadow: none !important;
    filter: none !important;
    text-align: left !important;
}

.upload-modal .upload-folder-option:hover,
.upload-modal .upload-folder-option:focus-visible {
    background: var(--surface-soft) !important;
    border-color: var(--border-soft) !important;
    color: var(--text) !important;
}

.upload-modal .upload-folder-option.selected {
    background: var(--primary-soft) !important;
    border-color: rgba(79, 117, 184, .28) !important;
    color: var(--text) !important;
}

.upload-modal .upload-folder-option .folder-icon {
    color: var(--primary) !important;
}

.upload-modal .upload-folder-option .folder-path,
.upload-modal .upload-folder-option.selected .folder-path {
    color: var(--text-muted) !important;
}

.upload-modal .upload-folder-option.selected .folder-icon {
    color: var(--primary) !important;
}

.upload-modal .upload-secondary-btn {
    appearance: none !important;
    -webkit-appearance: none !important;
    border: 1px solid var(--border) !important;
    background: var(--surface) !important;
    color: var(--text) !important;
    box-shadow: none !important;
    filter: none !important;
}

.upload-modal .upload-secondary-btn:hover:not(:disabled) {
    background: var(--surface-soft) !important;
    border-color: var(--border) !important;
    color: var(--text) !important;
    filter: none !important;
}

.upload-modal .upload-primary {
    appearance: none !important;
    -webkit-appearance: none !important;
    border: 1px solid var(--primary) !important;
    background: var(--primary) !important;
    color: #ffffff !important;
    box-shadow: none !important;
    filter: none !important;
}

.upload-modal .upload-primary:hover:not(:disabled) {
    background: var(--primary-hover) !important;
    border-color: var(--primary-hover) !important;
    color: #ffffff !important;
    filter: none !important;
}

.upload-modal .upload-folder-search {
    appearance: none !important;
    -webkit-appearance: none !important;
    background: var(--surface-soft) !important;
    color: var(--text) !important;
}

.upload-modal .upload-folder-search:focus {
    background: var(--surface) !important;
    border-color: var(--primary) !important;
}

/* =========================================================
   UPLOAD MANAGER — ISOLATED CONTROL RESET
   Protect this page from broad application/theme button rules.
   ========================================================= */
.upload-workspace button.upload-link-btn,
.upload-workspace button.upload-text-btn,
.upload-workspace button.upload-primary,
.upload-workspace button.upload-secondary-btn,
.upload-workspace button.upload-remove {
    appearance: none !important;
    -webkit-appearance: none !important;
    box-sizing: border-box !important;
    font-family: var(--font-family) !important;
    text-shadow: none !important;
    filter: none !important;
}

.upload-workspace button.upload-link-btn,
.upload-workspace button.upload-text-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    min-width: 0 !important;
    min-height: 36px !important;
    padding: 7px 11px !important;
    border: 1px solid var(--border) !important;
    border-radius: 8px !important;
    background: var(--surface) !important;
    color: var(--text) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    box-shadow: none !important;
}

.upload-workspace button.upload-link-btn:hover:not(:disabled),
.upload-workspace button.upload-text-btn:hover:not(:disabled) {
    background: var(--surface-soft) !important;
    border-color: var(--border) !important;
    color: var(--text) !important;
}

.upload-workspace button.upload-link-btn svg,
.upload-workspace button.upload-text-btn svg {
    width: 17px !important;
    height: 17px !important;
    flex: 0 0 17px !important;
    display: block !important;
    color: var(--primary) !important;
    stroke: currentColor !important;
}

.upload-workspace button.upload-primary,
.upload-workspace button.upload-secondary-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    min-height: 38px !important;
    padding: 9px 15px !important;
    border-radius: 8px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    box-shadow: none !important;
}

.upload-workspace button.upload-primary {
    border: 1px solid var(--primary) !important;
    background: var(--primary) !important;
    color: #ffffff !important;
}

.upload-workspace button.upload-primary:hover:not(:disabled) {
    border-color: var(--primary-hover) !important;
    background: var(--primary-hover) !important;
    color: #ffffff !important;
}

.upload-workspace button.upload-secondary-btn {
    border: 1px solid var(--border) !important;
    background: var(--surface) !important;
    color: var(--text) !important;
}

.upload-workspace button.upload-secondary-btn:hover:not(:disabled) {
    border-color: var(--border) !important;
    background: var(--surface-soft) !important;
    color: var(--text) !important;
}

.upload-workspace button.upload-primary svg,
.upload-workspace button.upload-secondary-btn svg {
    width: 17px !important;
    height: 17px !important;
    flex: 0 0 17px !important;
    display: block !important;
    stroke: currentColor !important;
}

.upload-workspace button.upload-primary:disabled,
.upload-workspace button.upload-secondary-btn:disabled,
.upload-workspace button.upload-link-btn:disabled,
.upload-workspace button.upload-text-btn:disabled {
    opacity: .5 !important;
    cursor: not-allowed !important;
}

.upload-workspace .upload-destination-bar button.upload-link-btn {
    flex: 0 0 auto !important;
}

.upload-workspace .upload-actions-bar button {
    position: relative !important;
    z-index: 1 !important;
}
