/**
 * Greenlandec workspace theme
 * Visual-only overrides for Drive, Mail and authentication.
 */

:root {
    /* These aliases intentionally inherit the palette configured in Appearance. */
    --gx-primary: var(--color-primary);
    --gx-primary-hover: var(--color-primary-darker);
    --gx-primary-soft: hsl(var(--base-color-primary), 94%);
    --gx-primary-ring: hsla(var(--base-color-primary), var(--base-l-primary), .18);
    --gx-navy: var(--color-dark);
    --gx-text: var(--color-light-text);
    --gx-muted: var(--color-light-link);
    --gx-border: var(--color-light-darker);
    --gx-border-strong: hsl(var(--base-color-light), 84%);
    --gx-surface: var(--color-light);
    --gx-canvas: var(--color-light-darker);
    --gx-surface-muted: var(--color-light);
    --gx-danger: #c93d4b;
    --gx-danger-hover: #aa2f3c;
    --gx-warning: #b87508;
    --gx-radius-sm: 8px;
    --gx-radius: 12px;
    --gx-radius-lg: 18px;
    --gx-shadow-sm: 0 1px 2px rgba(16, 24, 40, .04), 0 5px 18px rgba(16, 24, 40, .05);
    --gx-shadow: 0 14px 36px rgba(16, 24, 40, .09);
    --gx-transition: 160ms ease;
}

html { scroll-behavior: smooth; }

body.vfm-body {
    color: var(--gx-text);
    background: var(--gx-canvas);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: .9375rem;
    line-height: 1.5;
}

body.vfm-body ::selection { background: var(--gx-primary-soft); color: var(--gx-primary-hover); }

body.vfm-body a,
body.vfm-body button,
body.vfm-body input,
body.vfm-body select,
body.vfm-body textarea { transition: color var(--gx-transition), background-color var(--gx-transition), border-color var(--gx-transition), box-shadow var(--gx-transition), transform var(--gx-transition); }

body.vfm-body :focus-visible { outline: 3px solid var(--gx-primary-ring); outline-offset: 2px; }

body.vfm-body .container { max-width: 1440px; }

/* Navigation */
body.vfm-body .navbar.bg-dark {
    min-height: 68px;
    padding-block: 10px;
    color: var(--color-dark-text) !important;
    background: var(--gx-navy) !important;
    border-bottom: 1px solid rgba(255,255,255,.08);
    box-shadow: 0 4px 18px rgba(10, 24, 34, .14) !important;
}

body.vfm-body .navbar-brand { display: inline-flex; align-items: center; font-weight: 750; letter-spacing: -.02em; opacity: 1; }
body.vfm-body .navbar-brand > img { height: 38px; border-radius: 10px !important; }
body.vfm-body .navbar .nav-link { display: flex; align-items: center; gap: 7px; min-height: 42px; margin: 0 2px; padding: 8px 11px; color: var(--color-dark-link) !important; border-radius: 9px; font-size: .875rem; font-weight: 600; opacity: .88; }
body.vfm-body .navbar .nav-link:hover,
body.vfm-body .navbar .nav-link:focus,
body.vfm-body .navbar .nav-link.show { color: #fff !important; background: rgba(255,255,255,.1); opacity: 1; }
body.vfm-body .navbar .nav-link .avatar { width: 30px; height: 30px; border: 2px solid rgba(255,255,255,.65); }
body.vfm-body .navbar-toggler { width: 42px; height: 42px; padding: 0; color: white; border: 1px solid rgba(255,255,255,.22); border-radius: 10px; }
body.vfm-body .navbar-toggler:focus { box-shadow: 0 0 0 3px rgba(255,255,255,.13); }
body.vfm-body .navbar .badge { min-width: 20px; padding: 4px 6px; font-size: .68rem; }

body.vfm-body .dropdown-menu,
body.vfm-body .navbar .dropdown-menu,
body.vfm-body .navbar .dropdown-item {
    color: var(--gx-text) !important;
    background: var(--gx-surface) !important;
}
body.vfm-body .dropdown-menu { min-width: 210px; padding: 7px; border: 1px solid var(--gx-border); border-radius: var(--gx-radius); box-shadow: var(--gx-shadow); }
body.vfm-body .dropdown-item { padding: 9px 11px; border-radius: 8px; font-size: .875rem; }
body.vfm-body .dropdown-item:hover,
body.vfm-body .dropdown-item:focus { color: var(--gx-primary-hover) !important; background: var(--gx-primary-soft) !important; }

/* App shell and Drive */
body.vfm-body .main-content { padding-top: 28px; padding-bottom: 36px; }
body.vfm-body .vfm-header { background: var(--gx-surface); border-bottom: 1px solid var(--gx-border); }
body.vfm-body .head-banner img { max-height: 74px; object-fit: contain; }
body.vfm-body .description { margin-block: 8px 18px; color: var(--gx-muted); font-size: 1rem; }

body.vfm-body .tableblock,
body.vfm-body .hidetable > section {
    background: var(--gx-surface) !important;
    border: 1px solid var(--gx-border);
    border-radius: var(--gx-radius-lg);
    box-shadow: var(--gx-shadow-sm) !important;
}
body.vfm-body .tableblock { padding: 16px !important; overflow: hidden; }
body.vfm-body .action-group { align-items: center; gap: 8px; padding-bottom: 13px; margin-bottom: 4px !important; border-bottom: 1px solid var(--gx-border); }
body.vfm-body .switchview { border-radius: 9px; }

body.vfm-body .table { --bs-table-bg: transparent; margin-bottom: 0; color: var(--gx-text); vertical-align: middle; }
body.vfm-body .table > :not(caption) > * > * { padding: 12px 11px; border-bottom-color: #e8eeeb; }
body.vfm-body .table thead td,
body.vfm-body .table thead th { color: var(--gx-muted); background: var(--gx-surface-muted); font-size: .75rem; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
body.vfm-body .table tbody tr { transition: background-color var(--gx-transition), box-shadow var(--gx-transition); }
body.vfm-body .table tbody tr:hover { background: #f3f8f5; }
body.vfm-body .table tbody tr.selected,
body.vfm-body .table tbody tr.ui-selected { background: var(--gx-primary-soft); box-shadow: inset 3px 0 var(--gx-primary); }
body.vfm-body #foldertable tbody tr td:first-child,
body.vfm-body #filetable tbody tr td.icon { color: #d0932f; font-size: 1.25rem; }
body.vfm-body .gridview tbody tr { border: 1px solid var(--gx-border); border-radius: 13px; background: #fff; box-shadow: 0 2px 9px rgba(16,24,40,.04); }
body.vfm-body .gridview tbody tr:hover { border-color: #b8cec1; transform: translateY(-2px); box-shadow: var(--gx-shadow-sm); }

body.vfm-body .uploadarea { margin-bottom: 12px; }
body.vfm-body .uploadarea .input-group { padding: 5px; background: var(--gx-surface); border: 1px solid var(--gx-border); border-radius: 12px; box-shadow: var(--gx-shadow-sm); }
body.vfm-body .uploadarea .input-group > * { border-color: transparent; }
body.vfm-body .uploadarea .input-group-text { background: transparent; color: var(--gx-primary); }
body.vfm-body .uploadarea .form-control { background: transparent; }
body.vfm-body .breadcrumb { padding: 10px 13px; background: rgba(255,255,255,.75); border: 1px solid var(--gx-border); border-radius: 11px; }
body.vfm-body .breadcrumb-item a { color: var(--gx-primary); font-weight: 600; }
body.vfm-body .disk-space { color: var(--gx-muted); }

/* Controls */
body.vfm-body .btn { min-height: 40px; padding: 8px 14px; border-radius: 9px; font-weight: 650; font-size: .875rem; box-shadow: none; }
body.vfm-body .btn-sm { min-height: 34px; padding: 6px 10px; border-radius: 8px; }
body.vfm-body .btn-lg { min-height: 48px; padding: 11px 18px; border-radius: 11px; }
body.vfm-body .btn-primary { color: #fff; background: var(--gx-primary); border-color: var(--gx-primary); }
body.vfm-body .btn-primary:hover,
body.vfm-body .btn-primary:focus { color: #fff; background: var(--gx-primary-hover); border-color: var(--gx-primary-hover); transform: translateY(-1px); box-shadow: 0 5px 14px rgba(40,115,74,.18); }
body.vfm-body .btn-secondary,
body.vfm-body .btn-light { color: #334155; background: #fff; border-color: var(--gx-border-strong); }
body.vfm-body .btn-secondary:hover,
body.vfm-body .btn-light:hover { color: var(--gx-text); background: var(--gx-surface-muted); border-color: #aebfb6; }
body.vfm-body .btn-danger { background: var(--gx-danger); border-color: var(--gx-danger); }
body.vfm-body .btn-danger:hover { background: var(--gx-danger-hover); border-color: var(--gx-danger-hover); }
body.vfm-body .btn:disabled,
body.vfm-body .btn.disabled { transform: none; box-shadow: none; opacity: .52; cursor: not-allowed; }

body.vfm-body .form-control,
body.vfm-body .form-select,
body.vfm-body .input-group-text { min-height: 42px; color: var(--gx-text); background: #fff; border-color: var(--gx-border-strong); border-radius: 9px; }
body.vfm-body textarea.form-control { min-height: 110px; }
body.vfm-body .form-control::placeholder { color: #94a3b8; }
body.vfm-body .form-control:focus,
body.vfm-body .form-select:focus { color: var(--gx-text); background: #fff; border-color: var(--gx-primary); box-shadow: 0 0 0 3px var(--gx-primary-ring); }
body.vfm-body .form-check-input { border-color: #aebcb4; }
body.vfm-body .form-check-input:checked { background-color: var(--gx-primary); border-color: var(--gx-primary); }
body.vfm-body .form-check-input:focus { border-color: var(--gx-primary); box-shadow: 0 0 0 3px var(--gx-primary-ring); }
body.vfm-body label,
body.vfm-body .form-label { color: #344054; font-weight: 600; }

/* Cards, dialogs and feedback */
body.vfm-body .card { border: 1px solid var(--gx-border); border-radius: var(--gx-radius); box-shadow: var(--gx-shadow-sm); overflow: hidden; }
body.vfm-body .card-header { padding: 14px 17px; background: var(--gx-surface-muted); border-bottom: 1px solid var(--gx-border); font-weight: 700; }
body.vfm-body .card-body { padding: 18px; }
body.vfm-body .modal-backdrop.show { opacity: .44; }
body.vfm-body .modal-content { border: 1px solid rgba(255,255,255,.5); border-radius: 16px; box-shadow: 0 24px 70px rgba(16,24,40,.2); overflow: hidden; }
body.vfm-body .modal-header { padding: 17px 20px; background: var(--gx-surface-muted); border-bottom-color: var(--gx-border); }
body.vfm-body .modal-title { font-weight: 750; letter-spacing: -.01em; }
body.vfm-body .modal-body { padding: 21px; }
body.vfm-body .modal-footer { padding: 14px 20px; background: var(--gx-surface-muted); border-top-color: var(--gx-border); }
body.vfm-body .alert { border: 1px solid transparent; border-radius: 11px; }
body.vfm-body .alert-success { color: #185c39; background: #e9f6ef; border-color: #c6e7d4; }
body.vfm-body .alert-danger { color: #8e2632; background: #fff0f1; border-color: #f4c9cd; }
body.vfm-body .alert-info { color: #24566d; background: #eef8fc; border-color: #cce8f2; }
body.vfm-body .toast { border: 0; border-radius: 11px; box-shadow: var(--gx-shadow); }
body.vfm-body .spinner-border { color: var(--gx-primary); }

/* Authentication */
body.vfm-body.unlogged { background: #eef5f1; }
body.vfm-body.unlogged .navbar,
body.vfm-body.unlogged .vfm-header,
body.vfm-body.unlogged footer { display: none; }
body.vfm-body.unlogged .login-wrapper { min-height: 100vh; padding: 28px; background: radial-gradient(circle at 12% 10%, rgba(80,153,111,.14), transparent 28%), #eef5f1; }
body.vfm-body.unlogged .login-container { max-width: 1080px; min-height: 620px; border: 1px solid rgba(255,255,255,.8); border-radius: 24px; box-shadow: 0 24px 70px rgba(20,54,38,.15) !important; }
body.vfm-body.unlogged .login-left { padding: clamp(32px, 6vw, 72px); }
body.vfm-body.unlogged .login-left h2 { color: var(--gx-text); font-size: clamp(1.75rem, 3vw, 2.35rem); letter-spacing: -.035em; }
body.vfm-body.unlogged .brand { color: var(--gx-primary); font-size: 1rem; letter-spacing: .02em; text-transform: uppercase; }
body.vfm-body.unlogged .login-right { background-position: center; }
body.vfm-body.unlogged .glass-card { color: #173d29; background: rgba(255,255,255,.8); border: 1px solid rgba(255,255,255,.75); border-radius: 16px; box-shadow: var(--gx-shadow-sm); backdrop-filter: blur(16px); }
body.vfm-body.unlogged .modern-input { border: 1px solid var(--gx-border-strong); border-radius: 11px; overflow: hidden; }
body.vfm-body.unlogged .modern-input:focus-within { border-color: var(--gx-primary); box-shadow: 0 0 0 3px var(--gx-primary-ring); }
body.vfm-body.unlogged .modern-input .form-control,
body.vfm-body.unlogged .modern-input .input-group-text { min-height: 48px; background: #fff; border: 0; }
body.vfm-body.unlogged .login-btn { min-height: 50px; color: #fff; background: var(--gx-primary); border-radius: 11px !important; box-shadow: 0 8px 20px rgba(40,115,74,.18); }
body.vfm-body.unlogged .login-btn:hover { background: var(--gx-primary-hover); box-shadow: 0 11px 24px rgba(40,115,74,.24); }

/* Mail shell */
body.vfm-body .mail-layout { min-height: 680px; height: calc(100vh - 130px); background: var(--gx-surface); border: 1px solid var(--gx-border); border-radius: var(--gx-radius-lg); box-shadow: var(--gx-shadow-sm); }
body.vfm-body .mail-sidebar { width: 250px; padding: 18px 14px; background: var(--color-dark); }
body.vfm-body .mail-user { padding: 4px 8px 14px; color: var(--color-dark-link); opacity: 1; }
body.vfm-body .mail-folder { display: flex; align-items: center; gap: 10px; min-height: 42px; margin: 2px 0; padding: 9px 11px; color: var(--color-dark-link); border-radius: 9px; font-weight: 550; }
body.vfm-body .mail-folder:hover { color: #fff; background: rgba(255,255,255,.1); }
body.vfm-body .mail-folder.active { color: var(--color-primary-text); background: var(--color-primary); box-shadow: 0 4px 12px rgba(7,31,19,.16); font-weight: 700; }
body.vfm-body .mail-sidebar .btn { margin-bottom: 12px; color: var(--color-primary-text); background: var(--color-primary); border-color: var(--color-primary); }
body.vfm-body .mail-content { min-width: 0; background: #fff; }
body.vfm-body .mail-header { min-height: 68px; padding: 13px 18px; background: #fff; border-bottom-color: var(--gx-border); flex-wrap: wrap; }
body.vfm-body .mail-header h4 { color: var(--gx-text); font-size: 1.12rem; font-weight: 750; letter-spacing: -.02em; }
body.vfm-body #mailSearch { max-width: 520px; min-height: 42px; background: var(--gx-surface-muted); border-color: transparent; }
body.vfm-body #mailSearch:focus { background: #fff; border-color: var(--gx-primary); }
body.vfm-body .mail-list { background: #fff; }
body.vfm-body .mail-item { min-height: 76px; padding: 12px 18px; gap: 2px; border-bottom-color: #edf1ef; }
body.vfm-body .mail-item:hover { background: #f5f9f7; box-shadow: inset 3px 0 var(--gx-primary); }
body.vfm-body .mail-item.unread { background: #f3faf6; }
body.vfm-body .mail-item.unread .mail-from,
body.vfm-body .mail-item.unread .mail-subject { font-weight: 750; }
body.vfm-body .mail-avatar,
body.vfm-body .mail-read-avatar { flex: 0 0 auto; background: var(--gx-primary); box-shadow: inset 0 0 0 1px rgba(255,255,255,.22); }
body.vfm-body .mail-info { min-width: 0; }
body.vfm-body .mail-from { color: #26343e; }
body.vfm-body .mail-date { color: var(--gx-muted); white-space: nowrap; }
body.vfm-body .mail-subject a { display: block; color: var(--gx-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.vfm-body .mail-subject a:hover { color: var(--gx-primary); text-decoration: none; }
body.vfm-body .mail-actions a { padding: 7px 10px; color: var(--gx-muted); background: transparent; border-radius: 8px; }
body.vfm-body .mail-actions a:hover { color: var(--gx-danger); background: #fff0f1; box-shadow: none; transform: none; }
body.vfm-body .mail-empty { margin: auto; padding: 72px 24px; color: var(--gx-muted); }

body.vfm-body .mail-read-wrapper { padding: 28px 20px; background: var(--gx-canvas); }
body.vfm-body .mail-read-card,
body.vfm-body .mail-compose,
body.vfm-body .mail-settings-panel,
body.vfm-body .mail-settings-locked { border: 1px solid var(--gx-border); border-radius: var(--gx-radius-lg); box-shadow: var(--gx-shadow-sm); }
body.vfm-body .mail-read-card { padding: clamp(22px, 4vw, 38px); }
body.vfm-body .mail-read-title,
body.vfm-body .mail-read-subject { color: var(--gx-text); font-size: clamp(1.35rem, 2.4vw, 1.8rem); letter-spacing: -.025em; }
body.vfm-body .mail-read-meta { border-bottom-color: var(--gx-border); }
body.vfm-body .mail-iframe { border: 1px solid var(--gx-border); border-radius: 10px; }
body.vfm-body .mail-attachment-card,
body.vfm-body .attachment-card { background: var(--gx-surface-muted); border: 1px solid var(--gx-border); border-radius: 11px; }
body.vfm-body .mail-attachment-btn,
body.vfm-body .attachment-link,
body.vfm-body .btn-send { color: #fff; background: var(--gx-primary); border-radius: 9px; }
body.vfm-body .mail-compose { max-width: 1120px; padding: clamp(20px, 4vw, 34px); }
body.vfm-body .compose-title { color: var(--gx-text); letter-spacing: -.025em; }
body.vfm-body .form-control-modern,
body.vfm-body .email-input-wrapper { min-height: 44px; border-color: var(--gx-border-strong); border-radius: 9px; }
body.vfm-body .form-control-modern:focus,
body.vfm-body .email-input-wrapper:focus-within { border-color: var(--gx-primary); box-shadow: 0 0 0 3px var(--gx-primary-ring); }
body.vfm-body .email-chip { color: var(--gx-primary-hover); background: var(--gx-primary-soft); }
body.vfm-body .file-upload-box { background: var(--gx-surface-muted); border-color: var(--gx-border-strong); border-radius: 11px; }
body.vfm-body .compose-actions { border-top-color: var(--gx-border); }
body.vfm-body .btn-cancel { border-radius: 9px; }
body.vfm-body .progress-bar { background: var(--gx-primary); }

@media (max-width: 991.98px) {
    body.vfm-body .navbar-collapse { margin-top: 10px; padding: 8px; background: rgba(255,255,255,.05); border-radius: 12px; }
    body.vfm-body .navbar .nav-link { margin: 2px 0; }
    body.vfm-body .main-content { padding-top: 20px; }
    body.vfm-body .mail-layout { height: auto; min-height: 0; flex-direction: column; }
    body.vfm-body .mail-sidebar { width: 100%; padding: 12px; flex-direction: row; flex-wrap: wrap; gap: 6px; }
    body.vfm-body .mail-user { width: 100%; margin: 0; padding-bottom: 8px; }
    body.vfm-body .mail-folder { flex: 1 1 145px; justify-content: center; margin: 0; }
    body.vfm-body .mail-sidebar .btn { width: 100%; margin: 0 0 4px; }
}

@media (max-width: 767.98px) {
    body.vfm-body .container { padding-inline: 14px; }
    body.vfm-body .main-content { padding-top: 14px; padding-bottom: 24px; }
    body.vfm-body .tableblock { padding: 10px !important; border-radius: 14px; }
    body.vfm-body .action-group .btn { padding-inline: 10px; }
    body.vfm-body .table > :not(caption) > * > * { padding: 10px 7px; }
    body.vfm-body .modal-dialog { margin: 10px; }
    body.vfm-body .modal-body { padding: 17px; }
    body.vfm-body.unlogged .login-wrapper { padding: 12px; }
    body.vfm-body.unlogged .login-container { min-height: calc(100vh - 24px); border-radius: 18px; }
    body.vfm-body.unlogged .login-left { padding: 28px 22px; }
    body.vfm-body.unlogged .login-right { display: none; }
    body.vfm-body .mail-sidebar { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; }
    body.vfm-body .mail-sidebar .mail-folder { flex: 0 0 auto; white-space: nowrap; }
    body.vfm-body .mail-header { align-items: stretch; flex-direction: column; }
    body.vfm-body #mailSearch { width: 100%; max-width: none; }
    body.vfm-body .mail-item { position: relative; min-height: 0; padding: 14px; padding-left: 62px; }
    body.vfm-body .mail-avatar { position: absolute; top: 14px; left: 14px; width: 36px; height: 36px; }
    body.vfm-body .mail-top { flex-direction: row; align-items: baseline; gap: 8px; }
    body.vfm-body .mail-actions { text-align: left; }
    body.vfm-body .mail-read-wrapper { padding: 12px; }
    body.vfm-body .mail-read-card,
    body.vfm-body .mail-compose,
    body.vfm-body .mail-settings-panel,
    body.vfm-body .mail-settings-locked { margin: 0; border-radius: 14px; }
    body.vfm-body .mail-read-meta { align-items: flex-start; flex-direction: column; gap: 12px; }
    body.vfm-body .compose-actions { flex-direction: column-reverse; }
    body.vfm-body .compose-actions > * { width: 100%; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    body.vfm-body *, body.vfm-body *::before, body.vfm-body *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
