@import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@400;500;600;700&display=swap');
html, body { max-width: 100%; overflow-x: hidden; }
body { font-family: Vazirmatn, Tahoma, sans-serif; min-height: 100vh; }
.auth-shell { display: grid; place-items: center; min-height: 100vh; padding: 1.5rem; background: radial-gradient(circle at top right, #00174f, #00174f 42%, #e0f2fe); }
.auth-card { width: min(100%, 440px); border-radius: 1.25rem; }
.brand-mark { display: inline-grid; place-items: center; width: 3.5rem; height: 3.5rem; border-radius: 1rem; background: #0d6efd; color: #fff; font-size: 2rem; font-weight: 700; }
.brand-logo { width: 7rem; height: 5rem; }
.login-logo { width: 10rem; height: 7rem; }
.form-control { border-radius: .7rem; }
.btn { border-radius: .7rem; }
.progress-lg { height: .8rem; border-radius: 1rem; }
.upload-drop-zone { border: 2px dashed #9db9df; border-radius: 1rem; padding: 2rem 1rem; text-align: center; cursor: pointer; transition: .2s ease; }
.upload-drop-zone.is-dragover { background: #edf4ff; border-color: #0d6efd; }
.upload-symbol { display: grid; place-items: center; width: 3rem; height: 3rem; margin: 0 auto 1rem; border-radius: 50%; background: #e8f0fe; color: #0d6efd; font-size: 1.6rem; font-weight: 700; }
.selected-file { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .55rem 0; border-bottom: 1px solid #edf0f5; }
.storage-stat { padding: .75rem .25rem; border-radius: .75rem; background: #f8f9fa; }
.storage-stat strong, .storage-stat span { display: block; }
.storage-stat strong { font-size: .9rem; }
.storage-stat span { margin-top: .25rem; color: #6c757d; font-size: .75rem; }
.file-sort { width: auto; min-width: 9rem; }
.file-actions { display: flex; justify-content: flex-end; gap: .35rem; }
.link-help { border-right: 3px solid #0d6efd; padding: .75rem 1rem; color: #5d6777; background: #f8f9fa; border-radius: .5rem; font-size: .875rem; }
.app-footer { color: #6c757d; border-top: 1px solid #dee2e6; background: #fff; }
.metric-card span, .metric-card strong { display: block; }
.metric-card span { color: #6c757d; font-size: .85rem; }
.metric-card strong { margin-top: .45rem; font-size: 1.25rem; }
.usage-row + .usage-row { margin-top: 1rem; }
.storage-donut { --donut-bg: #e9ecef; position: relative; display: grid; place-items: center; width: 10rem; height: 10rem; margin: 1rem auto; border-radius: 50%; background: conic-gradient(#0d6efd calc(var(--usage) * 1%), var(--donut-bg) 0); }
.storage-donut::before { content: ''; position: absolute; width: 7.2rem; height: 7.2rem; border-radius: 50%; background: var(--bs-body-bg); }
.storage-donut span { position: relative; font-weight: 700; }
body.dark-theme { --bs-body-bg: #101722; --bs-body-color: #edf2fa; --bs-tertiary-bg: #172131; --bs-card-bg: #182334; --bs-border-color: #33465f; }
body.dark-theme .text-secondary, body.dark-theme .storage-stat span, body.dark-theme .metric-card span { color: #b8c5d8 !important; }
body.dark-theme .storage-stat { background: #243248; }
body.dark-theme .upload-drop-zone.is-dragover { background: #1d3b67; }
body.dark-theme .app-footer, body.dark-theme .link-help { background: #172131; border-color: #33465f; color: #c2ccda; }
@media (max-width: 767.98px) { .navbar .container { align-items: flex-start; } .navbar-brand { margin-bottom: .5rem; } .file-actions { flex-wrap: wrap; } .file-sort { width: 100%; } }
.navbar.bg-primary {
  background-color: #12355b !important;
}