:root {
    color-scheme: dark;
    --bg: #0f1218;
    --panel: #151a22;
    --panel-2: #1b212b;
    --panel-3: #222a36;
    --border: #2a3341;
    --text: #edf1f7;
    --muted: #94a0b2;
    --accent: #5c8dff;
    --accent-hover: #79a2ff;
    --danger: #d95a64;
    --shadow: 0 14px 35px rgba(0,0,0,.28);
    --sidebar-width: 310px;
    --scroll-track: #10151d;
    --scroll-thumb: #566273;
    --scroll-thumb-hover: #7188ad;
}

html[data-theme="light"] {
    color-scheme: light;
    --bg: #eef2f7;
    --panel: #ffffff;
    --panel-2: #f7f9fc;
    --panel-3: #edf2f8;
    --border: #d9e0e8;
    --text: #202733;
    --muted: #657184;
    --accent: #376fdd;
    --accent-hover: #245fc8;
    --danger: #bd3945;
    --shadow: 0 14px 35px rgba(38,51,68,.12);
    --scroll-track: #e3e8ef;
    --scroll-thumb: #9aa7b8;
    --scroll-thumb-hover: #7189ab;
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; font-family: Inter, "Segoe UI", Arial, sans-serif; background: var(--bg); color: var(--text); }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button { color: inherit; }

.app-shell { display: grid; grid-template-columns: var(--sidebar-width) minmax(0,1fr); height: 100vh; overflow: hidden; }
.sidebar { background: #10151d; border-right: 1px solid var(--border); overflow: auto; }
html[data-theme="light"] .sidebar { background: #f7f9fc; }
.brand { height: 72px; display: flex; align-items: center; gap: 12px; padding: 0 20px; border-bottom: 1px solid var(--border); position: sticky; top: 0; background: inherit; z-index: 4; }
.brand-mark { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; background: var(--accent); color: white; font-size: 20px; box-shadow: 0 8px 18px rgba(54,111,221,.25); }
.brand-title { font-weight: 700; letter-spacing: .2px; }
.brand-subtitle { font-size: 12px; color: var(--muted); margin-top: 2px; }

.main-shell { min-width: 0; display: grid; grid-template-rows: 64px minmax(0,1fr); }
.topbar { display: flex; align-items: center; gap: 20px; padding: 0 18px 0 24px; background: var(--panel); border-bottom: 1px solid var(--border); }
.topbar-search { height: 38px; max-width: 560px; flex: 1; border: 1px solid var(--border); border-radius: 9px; display: flex; align-items: center; gap: 9px; padding: 0 12px; color: var(--muted); background: var(--panel-2); }
.topbar-actions { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.user-badge { display: flex; align-items: center; gap: 8px; border-left: 1px solid var(--border); padding-left: 14px; white-space: nowrap; }
.user-dot { width: 9px; height: 9px; border-radius: 999px; background: #48b879; box-shadow: 0 0 0 4px rgba(72,184,121,.12); }
.admin-link, .theme-select, .icon-button { border: 1px solid var(--border); background: var(--panel-2); border-radius: 8px; height: 34px; padding: 0 10px; display: inline-flex; align-items: center; }
.icon-button { cursor: pointer; min-width: 34px; justify-content: center; }
.theme-select { color: var(--text); outline: none; }
.content-shell { overflow: auto; min-width: 0; min-height: 0; background: var(--bg); }

.mail-tree { padding: 14px 10px 24px; }
.tree-section-title { font-size: 10px; letter-spacing: 1.3px; font-weight: 700; color: var(--muted); padding: 10px 10px 7px; }
.mailbox-title { margin-top: 10px; }
.tree-special { display: flex; padding: 9px 11px; border-radius: 8px; color: var(--text); font-size: 13px; }
.tree-special:hover { background: var(--panel-2); }
.tree-muted { padding: 10px; color: var(--muted); font-size: 13px; }
.mailbox-node { margin-bottom: 2px; }
.mailbox-header { width: 100%; border: 0; background: transparent; display: grid; grid-template-columns: 14px 22px minmax(0,1fr); align-items: center; gap: 4px; padding: 8px 8px; border-radius: 8px; cursor: pointer; text-align: left; }
.mailbox-header:hover { background: var(--panel-2); }
.caret { color: var(--muted); }
.mailbox-address { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 13px; }
.mailbox-icon { font-size: 14px; }
.folder-list { margin: 0 0 6px 30px; border-left: 1px solid var(--border); padding-left: 7px; }
.folder-link, .new-folder { display: flex; align-items: center; gap: 8px; width: 100%; padding: 6px 8px; border: 0; background: transparent; color: var(--muted); border-radius: 7px; font-size: 12px; text-align: left; }
.folder-link:hover, .new-folder:hover { color: var(--text); background: var(--panel-2); }
.new-folder { cursor: default; opacity: .65; }

.page-heading { display: flex; justify-content: space-between; align-items: center; padding: 28px 30px 18px; }
h1 { font-size: 24px; margin: 0; }
.page-heading p, .mail-pane-header p { color: var(--muted); margin: 6px 0 0; font-size: 13px; }
.primary-button { border: 0; background: var(--accent); color: white; border-radius: 9px; padding: 11px 16px; font-weight: 600; cursor: pointer; box-shadow: 0 7px 18px rgba(54,111,221,.2); }
.primary-button:hover:not(:disabled) { background: var(--accent-hover); }
.primary-button:disabled { opacity: .5; cursor: default; }
.primary-button.compact { padding: 9px 13px; }
.primary-button.inline { display: inline-flex; margin-top: 12px; }

.summary-grid { display: grid; grid-template-columns: repeat(4, minmax(130px,1fr)); gap: 12px; padding: 0 30px 18px; }
.summary-card { background: var(--panel); border: 1px solid var(--border); border-radius: 12px; padding: 15px 17px; display: flex; align-items: baseline; justify-content: space-between; }
.summary-card strong { font-size: 25px; }
.summary-label { color: var(--muted); font-size: 12px; }
.panel { margin: 0 30px 24px; background: var(--panel); border: 1px solid var(--border); border-radius: 12px; overflow: hidden; box-shadow: var(--shadow); }
.panel-title { padding: 13px 16px; font-size: 13px; font-weight: 700; border-bottom: 1px solid var(--border); background: var(--panel-2); }

.message-table { display: flex; flex-direction: column; }
.message-row { border: 0; border-bottom: 1px solid rgba(255,255,255,.08); min-height: 58px; padding: 8px 13px; display: grid; grid-template-columns: minmax(130px, .8fr) minmax(260px, 2.2fr) minmax(130px,.9fr) 100px 85px; align-items: center; gap: 12px; text-align: left; transition: filter .12s ease, outline .12s ease; }
html[data-theme="light"] .message-row { border-bottom-color: rgba(0,0,0,.07); }
.message-row:hover { filter: brightness(1.08); }
.message-row:last-child { border-bottom: 0; }
.sender, .subject { font-size: 13px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.unread { font-weight: 750; }
.subject-cell { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.snippet { font-size: 11px; opacity: .72; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.mailbox-chip { font-size: 10px; border: 1px solid currentColor; opacity: .75; border-radius: 999px; padding: 4px 7px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.assigned, .date, .assignment-mini { font-size: 11px; text-align: right; opacity: .82; }

.mailbox-workspace { display: grid; grid-template-columns: minmax(520px, 48%) minmax(380px, 52%); height: calc(100vh - 64px); min-height: 0; overflow: hidden; }
.mail-list-pane { min-width: 0; min-height: 0; border-right: 1px solid var(--border); background: var(--panel); display: flex; flex-direction: column; overflow: hidden; }
.mail-pane-header { min-height: 82px; padding: 17px 18px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--border); }
.mail-pane-header h1 { font-size: 20px; }
.mail-list-toolbar { height: 38px; display: flex; align-items: center; gap: 8px; padding: 0 12px; border-bottom: 1px solid var(--border); color: var(--muted); font-size: 11px; background: var(--panel-2); }
.mail-list-toolbar button, .preview-actions button { border: 1px solid var(--border); background: var(--panel); color: var(--muted); border-radius: 7px; padding: 5px 8px; }
.toolbar-spacer { flex: 1; }
.mailbox-table .message-row { grid-template-columns: minmax(110px,.75fr) minmax(250px,2.3fr) 105px 70px; width: 100%; cursor: pointer; }
.message-row.selectable.selected { outline: 2px solid rgba(255,255,255,.62); outline-offset: -2px; }
html[data-theme="light"] .message-row.selectable.selected { outline-color: rgba(0,0,0,.52); }
.preview-pane { min-width: 0; min-height: 0; background: var(--bg); overflow: auto; }
.preview-header { padding: 22px 26px 17px; border-bottom: 1px solid var(--border); background: var(--panel); }
.preview-actions { display: flex; gap: 7px; margin-bottom: 19px; }
.preview-header h2 { margin: 0 0 13px; font-size: 21px; }
.message-meta { color: var(--muted); font-size: 12px; display: flex; flex-wrap: wrap; gap: 8px 16px; }
.message-meta strong { color: var(--text); }
.work-strip { margin-top: 14px; display: flex; gap: 9px; align-items: center; flex-wrap: wrap; color: var(--muted); font-size: 11px; }
.category-pill { color: white; padding: 5px 8px; border-radius: 999px; font-weight: 700; }
.mail-body { padding: 26px; max-width: 900px; line-height: 1.6; font-size: 14px; }

.empty-state { min-height: 60vh; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--muted); text-align: center; padding: 40px; }
.empty-state h1, .empty-state h2 { color: var(--text); margin-bottom: 7px; }
.empty-state p { margin: 0; }
.empty-state.compact-empty { min-height: 140px; }
.preview-empty { min-height: 60%; }
.empty-icon { font-size: 44px; opacity: .45; }

.admin-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 18px; padding: 0 30px 18px; }
.admin-grid .panel { margin: 0; }
.admin-permissions-panel { margin-top: 0; }
.admin-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.admin-table th, .admin-table td { padding: 10px 12px; border-bottom: 1px solid var(--border); text-align: left; }
.admin-table th { color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .6px; }
.admin-table small { color: var(--muted); margin-left: 6px; }
.admin-note { color: var(--muted); font-size: 11px; padding: 0 14px 12px; }

.login-shell { min-height: 100vh; display: grid; place-items: center; background: radial-gradient(circle at 30% 20%, rgba(92,141,255,.13), transparent 36%), var(--bg); padding: 24px; }
.login-card { width: min(420px, 100%); background: var(--panel); border: 1px solid var(--border); border-radius: 18px; padding: 34px; box-shadow: var(--shadow); }
.login-logo { width: 52px; height: 52px; display: grid; place-items: center; margin: 0 auto 14px; border-radius: 15px; background: var(--accent); color: white; font-size: 25px; }
.login-card h1 { text-align: center; font-size: 27px; }
.login-subtitle { color: var(--muted); text-align: center; margin: 7px 0 25px; font-size: 13px; }
.login-form { display: flex; flex-direction: column; gap: 8px; }
.login-form label { color: var(--muted); font-size: 11px; margin-top: 6px; }
.login-form input:not([type="checkbox"]) { width: 100%; border: 1px solid var(--border); background: var(--panel-2); color: var(--text); border-radius: 9px; padding: 11px 12px; outline: none; }
.login-form input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(92,141,255,.12); }
.remember-row { display: flex; align-items: center; gap: 8px; margin: 4px 0 7px; }
.login-error { border: 1px solid rgba(217,90,100,.45); background: rgba(217,90,100,.1); color: #ff9da5; border-radius: 8px; padding: 9px 10px; font-size: 12px; margin-bottom: 12px; }

@media (max-width: 1050px) {
    :root { --sidebar-width: 250px; }
    .message-row { grid-template-columns: 120px minmax(200px,1fr) 80px; }
    .message-row .mailbox-chip, .message-row .assigned { display: none; }
    .mailbox-workspace { grid-template-columns: minmax(420px, 52%) minmax(340px,48%); }
}

@media (max-width: 760px) {
    .app-shell { grid-template-columns: 1fr; }
    .sidebar { display: none; }
    .topbar-search { display: none; }
    .main-shell { grid-template-rows: 56px minmax(0,1fr); }
    .summary-grid { grid-template-columns: 1fr 1fr; padding-left: 14px; padding-right: 14px; }
    .page-heading { padding-left: 14px; padding-right: 14px; }
    .panel { margin-left: 14px; margin-right: 14px; }
    .mailbox-workspace { grid-template-columns: 1fr; }
    .preview-pane { display: none; }
    .mail-list-pane { border-right: 0; }
    .admin-grid { grid-template-columns: 1fr; padding-left: 14px; padding-right: 14px; }
}

/* Phase 1.1 mail list refinement */
.mail-table-header {
    min-height: 30px;
    padding: 0 13px;
    display: grid;
    align-items: center;
    gap: 12px;
    border-bottom: 1px solid var(--border);
    background: var(--panel-2);
    color: var(--muted);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .55px;
    text-transform: uppercase;
}
.mailbox-columns {
    grid-template-columns: 28px minmax(115px,.78fr) minmax(250px,2.3fr) 105px 70px !important;
}
.message-row {
    background: transparent;
}
.mailbox-table .message-row:hover {
    background: rgba(255,255,255,.035);
    filter: none;
}
html[data-theme="light"] .mailbox-table .message-row:hover {
    background: rgba(0,0,0,.035);
}
.attachment-column {
    text-align: center;
    font-size: 13px;
    opacity: .82;
    min-width: 0;
}
.mail-table-header .attachment-column { opacity: .7; font-size: 12px; }
.right-header { text-align: right; }
.category-text { font-weight: 700; }
.attachment-strip { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
.attachment-chip { border: 1px solid var(--border); border-radius: 8px; background: var(--panel-2); color: var(--text); padding: 6px 9px; font-size: 11px; }

/* Phase 1.1 admin mailbox editor */
.admin-mailbox-layout {
    display: grid;
    grid-template-columns: minmax(280px, .7fr) minmax(560px, 1.7fr);
    gap: 18px;
    padding: 0 30px 18px;
}
.admin-mailbox-layout .panel { margin: 0; }
.admin-mailbox-list { min-width: 0; }
.admin-mailbox-row {
    width: 100%;
    border: 0;
    border-bottom: 1px solid var(--border);
    background: transparent;
    color: var(--text);
    display: grid;
    grid-template-columns: 28px minmax(0,1fr) auto;
    align-items: center;
    gap: 9px;
    padding: 11px 13px;
    text-align: left;
    cursor: pointer;
}
.admin-mailbox-row:hover { background: var(--panel-2); }
.admin-mailbox-row.active { background: rgba(92,141,255,.12); box-shadow: inset 3px 0 0 var(--accent); }
.mailbox-list-icon { text-align: center; opacity: .82; }
.mailbox-list-main { display: flex; flex-direction: column; min-width: 0; gap: 3px; }
.mailbox-list-main strong { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 12px; }
.mailbox-list-main small { color: var(--muted); font-size: 10px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.mailbox-list-protocol { color: var(--muted); font-size: 10px; }
.admin-form { padding: 16px; }
.admin-form-grid { display: grid; gap: 12px; align-items: end; }
.admin-form-grid.two { grid-template-columns: 1fr 1fr; }
.admin-form-grid.three { grid-template-columns: minmax(240px,1fr) 110px 80px; }
.admin-form-grid.four { grid-template-columns: 120px minmax(240px,1fr) 110px 80px; }
.admin-form label { display: flex; flex-direction: column; gap: 6px; color: var(--muted); font-size: 10px; }
.admin-form input:not([type="checkbox"]), .admin-form select {
    width: 100%;
    height: 38px;
    border: 1px solid var(--border);
    background: var(--panel-2);
    color: var(--text);
    border-radius: 8px;
    padding: 0 10px;
    outline: none;
}
.admin-form input:focus, .admin-form select:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(92,141,255,.1); }
.admin-check-row { display: flex; gap: 22px; margin: 13px 0 4px; }
.admin-check-row label, .checkbox-field { flex-direction: row !important; align-items: center; gap: 7px !important; min-height: 38px; }
.form-section-title { margin: 18px 0 9px; border-top: 1px solid var(--border); padding-top: 13px; font-size: 11px; font-weight: 700; color: var(--text); }
.retention-row { margin-top: 14px; align-items: end; }
.phase-note { color: var(--muted); font-size: 10px; line-height: 1.45; padding-bottom: 4px; }
.admin-form-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; }
.secondary-button { border: 1px solid var(--border); background: var(--panel-2); color: var(--text); border-radius: 9px; padding: 10px 13px; cursor: pointer; }
.secondary-button:hover:not(:disabled) { border-color: var(--accent); }
.secondary-button:disabled { opacity: .48; cursor: default; }
.admin-status { margin-top: 14px; border-radius: 8px; padding: 10px 12px; font-size: 11px; }
.admin-status.success { border: 1px solid rgba(72,184,121,.4); background: rgba(72,184,121,.09); color: #74d59c; }
.admin-status.error { border: 1px solid rgba(217,90,100,.4); background: rgba(217,90,100,.09); color: #ff9da5; }
.admin-secondary-grid { padding-top: 0; }

@media (max-width: 1050px) {
    .admin-mailbox-layout { grid-template-columns: 1fr; }
    .admin-form-grid.four { grid-template-columns: 110px 1fr 90px 70px; }
}

@media (max-width: 760px) {
    .mailbox-columns { grid-template-columns: 26px 110px minmax(190px,1fr) 68px !important; }
    .mailbox-columns .assignment-mini, .mail-table-header .right-header:first-of-type { display: none; }
    .admin-mailbox-layout { padding-left: 14px; padding-right: 14px; }
    .admin-form-grid.two, .admin-form-grid.three, .admin-form-grid.four { grid-template-columns: 1fr; }
}
.permission-editor-list { border: 1px solid var(--border); border-radius: 9px; overflow: hidden; }
.permission-editor-row { display: grid; grid-template-columns: minmax(140px,1fr) 150px 90px 100px; align-items: center; gap: 10px; padding: 9px 10px; border-bottom: 1px solid var(--border); font-size: 10px; }
.permission-editor-row:last-child { border-bottom: 0; }
.permission-editor-row > label { flex-direction: row; align-items: center; gap: 7px; }
.permission-editor-row select { height: 32px; }
.permission-editor-row select:disabled, .permission-editor-row input:disabled { opacity: .45; }
.permission-user strong { color: var(--text); font-size: 11px; }
@media (max-width: 760px) { .permission-editor-row { grid-template-columns: 1fr; } }

/* Phase 1.1.2 global send/receive */
.send-receive-button {
    height: 34px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 0 11px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--panel-2);
    color: var(--text);
    cursor: pointer;
    font-size: 11px;
    font-weight: 650;
    white-space: nowrap;
}
.send-receive-button:hover:not(:disabled) { border-color: var(--accent); background: var(--panel-3); }
.send-receive-button:disabled { opacity: .72; cursor: wait; }
.send-receive-button.sync-error { border-color: rgba(217,90,100,.65); color: #ff9da5; }
.sync-icon { display: inline-block; font-size: 15px; line-height: 1; }
.sync-icon.spinning { animation: companymail-spin .8s linear infinite; }
@keyframes companymail-spin { to { transform: rotate(360deg); } }


/* Phase 1.1.3 - scroll, HTML preview and double-click message window */
.mailbox-table {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-gutter: stable;
}
.mailbox-table .message-row { flex: 0 0 auto; }
.mail-body { max-width: none; min-height: 0; }
.mail-html-frame {
    display: block;
    width: 100%;
    min-height: 520px;
    height: calc(100vh - 310px);
    border: 1px solid var(--border);
    border-radius: 9px;
    background: #fff;
}
.mail-plain-body {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    line-height: 1.6;
}
.message-window-shell {
    min-height: 100vh;
    background: var(--bg);
    color: var(--text);
}
.message-window {
    height: 100vh;
    min-height: 0;
    display: grid;
    grid-template-rows: auto minmax(0,1fr);
    overflow: hidden;
}
.message-window-header {
    padding: 18px 22px 14px;
    border-bottom: 1px solid var(--border);
    background: var(--panel);
}
.message-window-header h1 {
    margin: 11px 0 12px;
    font-size: 22px;
}
.message-window-actions {
    display: flex;
    align-items: center;
    gap: 7px;
}
.message-window-actions button {
    border: 1px solid var(--border);
    background: var(--panel-2);
    color: var(--text);
    border-radius: 7px;
    padding: 6px 9px;
}
.message-window-actions button:disabled { color: var(--muted); }
.message-window-spacer { flex: 1; }
.message-window-body {
    min-height: 0;
    overflow: auto;
    padding: 18px 22px 22px;
}
.mail-html-frame.full-window {
    min-height: 100%;
    height: 100%;
}
.message-window-loading {
    min-height: 100vh;
    display: grid;
    place-items: center;
    color: var(--muted);
}
@media (max-width: 760px) {
    .mailbox-workspace { height: calc(100vh - 56px); }
    .mail-html-frame { height: calc(100vh - 230px); min-height: 420px; }
}

/* Phase 1.1.4 - resizable reading pane, search, attachments, compose */
.button-link { display: inline-flex; align-items: center; justify-content: center; }
.topbar-search { padding-right: 4px; }
.topbar-search input {
    flex: 1;
    min-width: 80px;
    height: 34px;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--text);
}
.topbar-search input::placeholder { color: var(--muted); }
.topbar-search button {
    height: 30px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--muted);
    padding: 0 9px;
    cursor: pointer;
}
.topbar-search button:hover { background: var(--panel-3); color: var(--text); }
.topbar-new {
    height: 34px;
    display: inline-flex;
    align-items: center;
    padding: 0 11px;
    border-radius: 8px;
    background: var(--accent);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}
.topbar-new:hover { background: var(--accent-hover); }

.mailbox-workspace {
    grid-template-columns: var(--mail-list-width, 48%) 10px minmax(0, 1fr);
}
.mail-list-pane { border-right: 0; }
.mail-pane-header, .mail-list-toolbar, .mail-action-status, .mail-table-header { flex: 0 0 auto; }
.mail-splitter {
    min-width: 10px;
    min-height: 0;
    background: var(--panel-2);
    border-left: 1px solid var(--border);
    border-right: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    cursor: col-resize;
    user-select: none;
    touch-action: none;
    z-index: 5;
}
.splitter-grip {
    width: 3px;
    height: 40px;
    border-radius: 999px;
    background: var(--border);
}
.splitter-button {
    width: 18px;
    height: 24px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
    font-size: 10px;
}
.splitter-button:hover { color: var(--text); background: var(--panel-3); }
.mailbox-workspace.preview-collapsed { grid-template-columns: minmax(0,1fr) 10px 0; }
.mailbox-workspace.preview-collapsed .preview-pane { display: none; }
.resizing-mail-pane, .resizing-mail-pane * { cursor: col-resize !important; user-select: none !important; }
/* Mail HTML runs in an iframe. While resizing the reading pane, keep the iframe
   out of pointer hit-testing and painting; otherwise Chromium can lose pointerup
   at the frame boundary and repainting the full message on every pixel causes lag. */
.resizing-mail-pane iframe[data-mail-frame] { pointer-events: none !important; visibility: hidden !important; }

.attachment-actions { display: inline-flex; align-items: center; gap: 4px; padding: 0; overflow: hidden; }
.attachment-actions > a:first-child { padding: 6px 8px 6px 9px; }
.attachment-actions > a:first-child:hover { background: var(--panel-3); }
.attachment-download {
    display: inline-grid;
    place-items: center;
    min-width: 28px;
    align-self: stretch;
    border-left: 1px solid var(--border);
    color: var(--muted);
}
.attachment-download:hover { color: var(--text); background: var(--panel-3); }

.search-panel { min-height: 260px; }
.search-columns { grid-template-columns: 28px minmax(130px,.8fr) minmax(260px,2.3fr) minmax(150px,.9fr) 90px !important; }
.search-results-table { max-height: calc(100vh - 225px); overflow-y: auto; }

.compose-page { min-height: 100%; padding-bottom: 28px; }
.compose-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 24px 30px 16px;
}
.compose-header h1 { margin: 0; }
.compose-header p { margin: 5px 0 0; color: var(--muted); font-size: 12px; }
.compose-header-actions { display: flex; gap: 8px; }
.compose-card {
    margin: 0 30px;
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 12px;
    box-shadow: var(--shadow);
    overflow: hidden;
}
.compose-fields {
    display: grid;
    grid-template-columns: 126px minmax(0,1fr);
    align-items: center;
    border-bottom: 1px solid var(--border);
}
.compose-label {
    padding: 0 12px 0 16px;
    color: var(--muted);
    font-size: 11px;
    text-align: right;
}
.compose-input {
    width: 100%;
    min-height: 42px;
    border: 0;
    border-bottom: 1px solid var(--border);
    background: transparent;
    color: var(--text);
    padding: 8px 12px;
    outline: none;
}
.compose-fields .compose-input:last-child { border-bottom: 0; }
.compose-input:focus { background: var(--panel-2); }
.compose-toolbar {
    min-height: 42px;
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 5px 10px;
    background: var(--panel-2);
    border-bottom: 1px solid var(--border);
}
.compose-toolbar > button {
    min-width: 32px;
    height: 30px;
    border: 1px solid transparent;
    border-radius: 6px;
    background: transparent;
    color: var(--text);
    cursor: pointer;
}
.compose-toolbar > button:hover { border-color: var(--border); background: var(--panel-3); }
.compose-toolbar-separator { width: 1px; height: 24px; background: var(--border); margin: 0 5px; }
.compose-attach-button {
    height: 30px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 0 9px;
    cursor: pointer;
    font-size: 11px;
}
.compose-attach-button:hover { background: var(--panel-3); }
.compose-attach-button input { display: none; }
.compose-editor {
    min-height: 360px;
    padding: 20px 22px;
    outline: none;
    background: var(--panel);
    color: var(--text);
    line-height: 1.55;
    overflow: auto;
}
.compose-editor:empty::before { content: attr(data-placeholder); color: var(--muted); pointer-events: none; }
.compose-attachments { display: flex; flex-wrap: wrap; gap: 7px; padding: 10px 14px; border-top: 1px solid var(--border); background: var(--panel-2); }
.compose-attachment-chip { padding-left: 9px; }
.compose-attachment-chip small { color: var(--muted); }
.compose-attachment-chip button { border: 0; background: transparent; color: var(--muted); cursor: pointer; padding: 3px 6px; }
.compose-attachment-chip button:hover { color: var(--danger); }
.compose-card > .admin-status { margin: 12px 14px 14px; }

@media (max-width: 1050px) {
    .mailbox-workspace { grid-template-columns: var(--mail-list-width, 52%) 10px minmax(0,1fr); }
    .topbar-new { padding: 0 8px; }
}

@media (max-width: 760px) {
    .mailbox-workspace { grid-template-columns: 1fr !important; }
    .mail-splitter, .preview-pane { display: none !important; }
    .compose-header { padding-left: 14px; padding-right: 14px; align-items: flex-start; }
    .compose-card { margin-left: 14px; margin-right: 14px; }
    .compose-fields { grid-template-columns: 108px minmax(0,1fr); }
    .compose-label { padding-left: 6px; padding-right: 7px; }
    .compose-label-with-toggle { gap:6px; }
    .compose-copy-toggle { height:26px; padding:0 7px; font-size:10px; }
    .topbar-new { display: inline-flex; }
    .search-panel { margin-left: 14px; margin-right: 14px; }
    .search-columns { grid-template-columns: 25px 110px minmax(180px,1fr) 75px !important; }
    .search-columns .mailbox-chip { display: none; }
}

/* Phase 1.2.0 - Outlook workflow, mailbox personalization and folders */
:root {
    --unread-mail: #86c9a0;
    --read-mail: #b7c0cc;
}
html[data-theme="light"] {
    --unread-mail: #2e7d4f;
    --read-mail: #4e5968;
}

.mailbox-columns {
    grid-template-columns: 28px minmax(130px,.85fr) minmax(240px,2.25fr) 105px 72px 30px !important;
}
.mail-table-header .delete-column { min-width: 0; }
.message-row.unread-message { color: var(--unread-mail); }
.message-row.unread-message .sender,
.message-row.unread-message .subject { font-weight: 760; }
.message-row.read-message { color: var(--read-mail); }
.message-row.selectable { position: relative; }
.message-row.message-dragging { opacity: .45; }
.row-delete {
    width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #7f8997;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    opacity: 0;
    transition: opacity .12s ease, color .12s ease, background .12s ease;
}
.message-row:hover .row-delete,
.message-row.selected .row-delete { opacity: 1; }
.row-delete:hover { color: #ff5d67; background: rgba(217,90,100,.12); }
.delete-column { display: grid; place-items: center; min-width: 0; }
.keyboard-hint { opacity: .68; }
.mail-list-pane:focus { outline: none; }
.mailbox-real-address { opacity: .58; margin-left: 7px; }

.mail-html-frame {
    background: #11151c;
}
html[data-theme="light"] .mail-html-frame { background: #fff; }

/* mailbox tree */
.mailbox-header-wrap {
    display: grid;
    grid-template-columns: minmax(0,1fr) 28px;
    align-items: center;
    border-radius: 8px;
}
.mailbox-header-wrap:hover { background: var(--panel-2); }
.mailbox-header-main {
    width: 100%;
    border: 0;
    background: transparent;
    display: grid;
    grid-template-columns: 14px 22px minmax(0,1fr);
    align-items: center;
    gap: 4px;
    padding: 8px 4px 8px 8px;
    cursor: pointer;
    text-align: left;
    color: var(--text);
}
.default-mailbox-star {
    width: 26px;
    height: 26px;
    border: 0;
    background: transparent;
    color: #657081;
    cursor: pointer;
    border-radius: 6px;
    opacity: .42;
}
.mailbox-header-wrap:hover .default-mailbox-star,
.default-mailbox-star.active { opacity: 1; }
.default-mailbox-star.active { color: #d7ae4b; }
.default-mailbox-star:hover { background: var(--panel-3); }
.mailbox-draggable { transition: transform .1s ease, opacity .1s ease; }
.mailbox-draggable.dragging { opacity: .42; }
.mailbox-address { font-weight: 650; }

.folder-list { padding-bottom: 3px; }
.system-folder-link { color: var(--muted); }
.folder-node { min-width: 0; }
.folder-row {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: center;
    border-radius: 7px;
    padding-left: calc(var(--folder-depth, 0) * 11px);
}
.folder-row:hover { background: var(--panel-2); }
.folder-row .folder-link { background: transparent !important; }
.folder-actions {
    display: flex;
    align-items: center;
    gap: 1px;
    opacity: 0;
    padding-right: 3px;
}
.folder-row:hover .folder-actions { opacity: 1; }
.folder-actions button {
    width: 21px;
    height: 21px;
    border: 0;
    border-radius: 5px;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
    padding: 0;
}
.folder-actions button:hover { background: var(--panel-3); color: var(--text); }
.folder-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.new-folder { cursor: pointer; opacity: .82; }
.inline-folder-editor {
    display: grid;
    grid-template-columns: minmax(0,1fr) 24px 24px;
    gap: 3px;
    align-items: center;
    padding: 4px 4px 4px 8px;
}
.inline-folder-editor input {
    min-width: 0;
    height: 29px;
    border: 1px solid var(--accent);
    border-radius: 6px;
    background: var(--panel-2);
    color: var(--text);
    padding: 0 7px;
    outline: none;
    font-size: 11px;
}
.inline-folder-editor button {
    width: 24px; height: 24px; border: 0; border-radius: 5px;
    background: transparent; color: var(--muted); cursor: pointer;
}
.inline-folder-editor button:hover { background: var(--panel-3); color: var(--text); }
.folder-drop-active {
    outline: 1px solid var(--accent);
    background: rgba(92,141,255,.12) !important;
}
.tree-status { padding: 8px 10px; color: var(--muted); font-size: 10px; line-height: 1.4; }

/* admin */
.admin-mailbox-list { max-height: 640px; overflow-y: auto; }
.admin-table-scroll { max-height: 300px; overflow: auto; scrollbar-gutter: stable; }
.color-editor { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 8px; align-items: center; }
.admin-form .color-editor input[type="color"] { width: 48px; padding: 3px; cursor: pointer; }
.mailbox-appearance-row { align-items: center; margin-top: 10px; }
.danger-button {
    border: 1px solid rgba(217,90,100,.45);
    background: rgba(217,90,100,.08);
    color: #ef8d95;
    border-radius: 9px;
    padding: 10px 13px;
    cursor: pointer;
    margin-left: auto;
}
.danger-button:hover:not(:disabled) { background: rgba(217,90,100,.17); color: #ff6974; }

/* live search */
.live-search button { font-size: 18px; line-height: 1; }

/* compose file drop */
.compose-card { position: relative; }
.compose-drop-hint {
    display: none;
    position: absolute;
    inset: 10px;
    z-index: 20;
    border: 2px dashed var(--accent);
    border-radius: 10px;
    background: rgba(15,18,24,.92);
    color: #cfe0ff;
    place-items: center;
    font-size: 15px;
    font-weight: 700;
    pointer-events: none;
}
html[data-theme="light"] .compose-drop-hint { background: rgba(247,249,252,.94); color: #2f5fac; }
.compose-card.compose-drag-over .compose-drop-hint { display: grid; }

@media (max-width: 760px) {
    .mailbox-columns { grid-template-columns: 26px 110px minmax(190px,1fr) 68px 28px !important; }
    .mailbox-columns .assignment-mini,
    .mail-table-header .right-header:first-of-type { display: none; }
    .keyboard-hint { display: none; }
}
.permission-editor-list { max-height: 260px; overflow-y: auto; scrollbar-gutter: stable; }
.sender-name-row { margin-top: 10px; align-items: center; }

/* Phase 1.2.1 - power-user selection, labels, assignment, per-user mailbox prefs */
.message-row.selectable.selected {
    background: rgba(92,141,255,.11);
    outline: 1px solid rgba(117,158,255,.62);
    outline-offset: -1px;
}
.message-row.selectable.focused { box-shadow: inset 3px 0 0 var(--accent); }
html[data-theme="light"] .message-row.selectable.selected { background: rgba(55,111,221,.10); }
.selection-count { color: var(--accent); font-size: 11px; }

.row-delete {
    width: 30px;
    height: 30px;
    border-radius: 7px;
    font-size: 23px;
    font-weight: 400;
}
.row-delete:hover { color: #ff4e59; background: rgba(217,90,100,.16); transform: scale(1.06); }

.toolbar-menu-wrap { position: relative; }
.toolbar-menu {
    position: absolute;
    z-index: 80;
    top: calc(100% + 5px);
    left: 0;
    min-width: 205px;
    padding: 5px;
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 9px;
    box-shadow: var(--shadow);
}
.toolbar-menu button { width: 100%; display: flex; gap: 8px; align-items: center; border: 0; background: transparent; color: var(--text); padding: 8px 9px; text-align: left; cursor: pointer; border-radius: 6px; }
.toolbar-menu button:hover { background: var(--panel-2); }
.toolbar-menu hr { border: 0; border-top: 1px solid var(--border); margin: 4px 2px; }

.modal-backdrop { position: fixed; inset: 0; z-index: 200; background: rgba(0,0,0,.56); display: grid; place-items: center; padding: 24px; }
.modal-card { width: min(580px, calc(100vw - 36px)); max-height: min(760px, calc(100vh - 48px)); overflow: auto; background: var(--panel); border: 1px solid var(--border); border-radius: 13px; box-shadow: 0 24px 70px rgba(0,0,0,.48); }
.modal-title { min-height: 48px; display: flex; align-items: center; justify-content: space-between; padding: 0 15px; border-bottom: 1px solid var(--border); background: var(--panel-2); }
.modal-title button { width: 30px; height: 30px; border: 0; border-radius: 7px; background: transparent; color: var(--muted); cursor: pointer; font-size: 20px; }
.modal-title button:hover { background: var(--panel-3); color: var(--danger); }
.modal-body { padding: 16px; }
.modal-actions { padding: 12px 16px 16px; display: flex; justify-content: flex-end; gap: 8px; }
.assignment-form { display: grid; gap: 12px; }
.assignment-form label { display: grid; gap: 5px; font-size: 11px; color: var(--muted); }
.assignment-form select, .assignment-form input, .assignment-form textarea { width: 100%; border: 1px solid var(--border); border-radius: 7px; background: var(--panel-2); color: var(--text); padding: 8px 9px; outline: none; }
.category-edit-row { display: grid; grid-template-columns: 42px minmax(150px,1fr) auto 34px; gap: 7px; align-items: center; padding: 6px 0; border-bottom: 1px solid var(--border); }
.category-edit-row:last-child { border-bottom: 0; }
.category-edit-row input[type="color"] { width: 40px; height: 34px; padding: 2px; border: 1px solid var(--border); border-radius: 6px; background: var(--panel-2); }
.category-edit-row input:not([type="color"]) { min-width: 0; height: 34px; border: 1px solid var(--border); border-radius: 6px; background: var(--panel-2); color: var(--text); padding: 0 8px; }
.category-edit-row button { height: 32px; border: 1px solid var(--border); border-radius: 6px; background: var(--panel-2); color: var(--text); cursor: pointer; }
.category-edit-row .danger-icon:hover { color: #ff5d67; }

.attachment-actions { display: inline-flex; align-items: center; gap: 2px; padding: 2px 4px; }
.attachment-open-button { border: 0; background: transparent; color: var(--text); cursor: default; padding: 5px 7px; border-radius: 6px; }
.attachment-open-button:hover { background: var(--panel-3); }
.attachment-download { padding: 5px 7px; border-radius: 6px; color: var(--muted); }
.attachment-download:hover { color: var(--accent); background: var(--panel-3); }

.mailbox-header-wrap { grid-template-columns: 24px minmax(0,1fr) 28px 28px; }
.mailbox-drag-handle { width: 22px; height: 28px; display: grid; place-items: center; color: #667284; cursor: grab; user-select: none; opacity: .45; font-size: 13px; }
.mailbox-header-wrap:hover .mailbox-drag-handle { opacity: .95; }
.mailbox-drag-handle:active { cursor: grabbing; }
.mailbox-node.dragging { opacity: .42; }
.mailbox-settings-link { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 6px; color: #697587; opacity: 0; font-size: 12px; }
.mailbox-header-wrap:hover .mailbox-settings-link { opacity: 1; }
.mailbox-settings-link:hover { background: var(--panel-3); color: var(--text); }
.user-mailbox-settings { max-width: 980px; }

.permission-editor-row { grid-template-columns: minmax(140px,1fr) 145px 82px 92px 92px; }

/* A softer status palette for long working sessions. */
:root { --unread-mail: #83c79b; --read-mail: #aeb8c5; }
html[data-theme="light"] { --unread-mail: #347b50; --read-mail: #566170; }

/* Strong dark background behind all HTML mail, including loading/transparent areas. */
.mail-html-frame { background: #11151c !important; color-scheme: dark; }
html[data-theme="light"] .mail-html-frame { background: #fff !important; color-scheme: light; }

@media (max-width: 900px) {
    .mailbox-header-wrap { grid-template-columns: 22px minmax(0,1fr) 26px 26px; }
    .category-edit-row { grid-template-columns: 38px minmax(120px,1fr) auto 32px; }
}
.mailbox-node.mailbox-drop-before { box-shadow: inset 0 2px 0 var(--accent); }
.mailbox-node.mailbox-drop-after { box-shadow: inset 0 -2px 0 var(--accent); }
.category-edit-row.builtin { opacity: .72; }
.category-builtin-label { font-size: 10px; color: var(--muted); text-align: center; }

/* v1.2.2 mailbox navigation hotfix */
.mailbox-header-wrap {
    grid-template-columns: 24px 22px minmax(0,1fr) 28px 28px;
}
.mailbox-caret-button {
    width: 22px;
    height: 28px;
    border: 0;
    padding: 0;
    border-radius: 6px;
    display: grid;
    place-items: center;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
}
.mailbox-caret-button:hover { background: var(--panel-3); color: var(--text); }
.mailbox-header-main {
    min-width: 0;
    height: 32px;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0 4px;
    border-radius: 6px;
    color: inherit;
    text-decoration: none;
}
.mailbox-header-main:hover { background: var(--panel-3); text-decoration: none; }
.mailbox-node.dragging { pointer-events: none; }
@media (max-width: 900px) {
    .mailbox-header-wrap { grid-template-columns: 22px 20px minmax(0,1fr) 26px 26px; }
}

/* ========================================================================== */
/* CompanyMail v1.2.3 — professional UI pass                                  */
/* ========================================================================== */
:root {
    --bg: #0b0f14;
    --panel: #111720;
    --panel-2: #171e28;
    --panel-3: #202936;
    --border: #27313e;
    --text: #eef3f8;
    --muted: #98a6b8;
    --accent: #4f8cff;
    --accent-hover: #6b9dff;
    --row-unread: #8ad6a6;
    --row-read: #d6dee9;
    --sidebar-width: 324px;
}
html[data-theme="light"] {
    --bg: #f2f5f9;
    --panel: #ffffff;
    --panel-2: #f7f9fc;
    --panel-3: #edf2f8;
    --border: #d9e1eb;
    --text: #1e2936;
    --muted: #6a778a;
    --accent: #2f68d8;
    --accent-hover: #2459bd;
    --row-unread: #176b3d;
    --row-read: #344154;
}
html,body { font-size: 15px; letter-spacing: .005em; }
.ui-icon { width: 17px; height: 17px; flex: 0 0 auto; display: inline-block; vertical-align: -3px; }
.empty-svg { width: 48px; height: 48px; opacity: .36; }
button,a,input,select { -webkit-tap-highlight-color: transparent; }

.brand { height: 76px; padding: 0 19px; gap: 13px; }
.brand-mark { width: 41px; height: 41px; border-radius: 12px; }
.brand-mark .ui-icon { width: 23px; height: 23px; }
.brand-title { font-size: 16px; font-weight: 760; }
.brand-subtitle { font-size: 11px; }
.main-shell { grid-template-rows: 68px minmax(0,1fr); }
.topbar { display:grid; grid-template-columns:auto minmax(260px,620px) auto; justify-content:space-between; gap:16px; padding:0 18px; }
.topbar-left-actions,.topbar-actions { display:flex; align-items:center; gap:9px; }
.topbar-search { max-width:none; width:100%; height:40px; border-radius:10px; padding:0 10px 0 13px; }
.topbar-search .ui-icon { color:var(--muted); }
.topbar-new,.send-receive-button { height:38px; border-radius:9px; font-size:12px; gap:7px; padding:0 12px; }
.topbar-new .ui-icon,.send-receive-button .ui-icon { width:16px;height:16px; }
.topbar-icon-link,.admin-link,.icon-button { height:36px; border:1px solid var(--border); background:var(--panel-2); border-radius:9px; display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:0 10px; }
.topbar-icon-link { width:36px; padding:0; }
.user-badge { font-size:12px; }

.mail-tree { padding:14px 11px 28px; }
.tree-top-shortcuts { display:flex; align-items:center; gap:7px; padding:1px 8px 7px; position:relative; z-index:20; }
.tree-top-icon-link { position:relative; width:36px; height:36px; display:grid; place-items:center; border:1px solid var(--border); border-radius:9px; color:var(--muted); background:transparent; transition:background .14s ease,color .14s ease,border-color .14s ease,box-shadow .14s ease,transform .14s ease; }
.tree-top-icon-link .ui-icon { width:19px; height:19px; display:block; color:currentColor; }
.tree-top-icon-link:hover { color:var(--text); background:var(--panel-2); border-color:color-mix(in srgb,var(--accent) 28%,var(--border)); }
.tree-top-icon-link.active { color:var(--text); background:color-mix(in srgb,var(--accent) 12%,var(--panel-2)); border-color:color-mix(in srgb,var(--accent) 42%,var(--border)); box-shadow:inset 3px 0 0 color-mix(in srgb,var(--accent) 85%,white 0%),0 0 0 1px rgba(255,255,255,.015); }
.tree-top-icon-link.active .ui-icon { color:var(--accent); }
.tree-top-icon-link:active { transform:translateY(1px); }
.tree-top-icon-link::after { content:attr(data-tooltip); position:absolute; left:50%; top:calc(100% + 7px); transform:translate(-50%,-3px); padding:5px 8px; border:1px solid var(--border); border-radius:6px; background:var(--panel-3); color:var(--text); font-size:11px; font-weight:600; line-height:1; white-space:nowrap; box-shadow:0 7px 18px rgba(0,0,0,.28); opacity:0; visibility:hidden; pointer-events:none; transition:opacity .12s ease,transform .12s ease,visibility .12s ease; z-index:200; }
.tree-top-icon-link:hover::after,.tree-top-icon-link:focus-visible::after { opacity:1; visibility:visible; transform:translate(-50%,0); }
.tree-section-title { font-size:10px; letter-spacing:1.45px; padding:12px 10px 8px; }
.tree-special { align-items:center; gap:10px; min-height:38px; padding:8px 10px; border-radius:9px; font-size:13px; }
.tree-special .ui-icon { color:var(--muted); }
.mailbox-node { margin-bottom:3px; border-radius:10px; }
.mailbox-header-wrap { min-height:42px; display:grid; grid-template-columns:18px 27px minmax(0,1fr) 30px 30px; align-items:center; gap:2px; border-radius:9px; padding:2px 3px; }
.mailbox-header-wrap:hover { background:var(--panel-2); }
.mailbox-drag-handle { width:16px; height:24px; display:grid; grid-template-columns:repeat(2,3px); grid-auto-rows:3px; gap:3px; place-content:center; cursor:grab; opacity:.38; touch-action:none; user-select:none; outline:none; }
.mailbox-drag-handle:hover,.mailbox-drag-handle:focus-visible { opacity:.95; }
.mailbox-drag-handle span { width:3px;height:3px;background:currentColor;border-radius:50%; }
.mailbox-caret-button,.mailbox-settings-link,.default-mailbox-star { width:28px;height:28px; display:grid;place-items:center; border:0;background:transparent;color:var(--muted);border-radius:7px; }
.mailbox-caret-button:hover,.mailbox-settings-link:hover,.default-mailbox-star:hover { background:var(--panel-3);color:var(--text); }
.default-mailbox-star.active { color:#f5be4f; }
.mailbox-header-main { min-width:0; display:flex; align-items:center; gap:9px; height:36px; }
.mailbox-header-main>.ui-icon { color:var(--muted); }
.mailbox-address { font-size:13.5px; font-weight:650; }
.folder-list { margin-left:36px; padding-left:8px; border-left:1px solid var(--mailbox-nav-color, var(--border)); }
.folder-link,.new-folder { min-height:34px; gap:9px; padding:6px 9px; font-size:12.5px; }
.folder-link .ui-icon,.new-folder .ui-icon { width:15px;height:15px; }
.folder-drop-active { outline:1px solid var(--accent); background:color-mix(in srgb,var(--accent) 11%,transparent)!important; }
.mailbox-node.mailbox-drop-before { box-shadow:0 -2px 0 var(--accent); }
.mailbox-node.mailbox-drop-after { box-shadow:0 2px 0 var(--accent); }
.mailbox-node.dragging { opacity:.52; }
body.companymail-mailbox-dragging { cursor:grabbing!important; user-select:none!important; }
body.companymail-mailbox-dragging * { cursor:grabbing!important; }

.page-heading { padding:27px 30px 18px; }
h1 { font-size:25px; letter-spacing:-.02em; }
.panel { border-radius:14px; box-shadow:0 10px 28px rgba(0,0,0,.18); }
html[data-theme="light"] .panel { box-shadow:0 8px 24px rgba(33,50,72,.08); }
.panel-title { min-height:48px; display:flex;align-items:center;gap:9px; padding:13px 17px; font-size:13px; }

.mailbox-workspace { height:calc(100vh - 68px); }
.modern-mail-header { height:84px; min-height:84px; max-height:84px; padding:16px 18px; box-sizing:border-box; }
.mail-folder-title { display:flex;align-items:center;gap:9px; }
.mail-folder-title h1 { font-size:21px; }
.message-count-badge { min-width:24px;height:22px;display:grid;place-items:center;padding:0 6px;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:10px;background:var(--panel-2); }
.mailbox-real-address { margin-left:6px; font-size:11px; }
.shared-note { color:var(--muted); }
.modern-toolbar { height:44px; min-height:44px; max-height:44px; padding:6px 11px; gap:6px; box-sizing:border-box; }
.mail-list-pane > .mail-table-header { height:30px; min-height:30px; max-height:30px; box-sizing:border-box; }
.toolbar-action,.preview-actions button { min-height:31px; display:inline-flex;align-items:center;gap:6px; border:1px solid transparent!important; background:transparent!important; color:var(--muted)!important; border-radius:7px!important; padding:5px 8px!important; cursor:pointer; }
.toolbar-action:hover:not(:disabled),.preview-actions button:hover:not(:disabled) { color:var(--text)!important;background:var(--panel-3)!important;border-color:var(--border)!important; }
.toolbar-action:disabled { opacity:.38; }
.toolbar-action .ui-icon { width:15px;height:15px; }
.selection-count { color:var(--accent); font-size:11px; }
.keyboard-hint { font-size:10px; opacity:.65; }
.mail-table-header { min-height:38px; align-items:center; padding-top:0!important;padding-bottom:0!important; color:var(--muted); font-size:10px!important; letter-spacing:.03em; text-transform:uppercase; background:var(--panel-2); border-bottom:1px solid var(--border); }
.mailbox-columns { display:grid; grid-template-columns:32px minmax(130px,.82fr) minmax(220px,2fr) minmax(90px,.7fr) 82px 42px!important; column-gap:10px; }
.mailbox-table .message-row { grid-template-columns:32px minmax(130px,.82fr) minmax(220px,2fr) minmax(90px,.7fr) 82px 42px!important; min-height:48px; padding:7px 10px; gap:10px; color:var(--row-read); background:transparent; }
.message-row:hover { filter:none; background:color-mix(in srgb,var(--panel-3) 67%,transparent); }
.message-row.unread-message:not(.categorized) { color:var(--row-unread); font-weight:720; }
.message-row.categorized { color:var(--cat-dark); }
html[data-theme="light"] .message-row.categorized { color:var(--cat-light); }
.message-row.category-bold { font-weight:730; }
.message-row.category-strike { text-decoration:line-through; font-weight:400; opacity:.78; }
.message-row.category-strike .row-delete,.message-row.category-strike .attachment-column { text-decoration:none; }
.message-row.selectable.selected { outline:1px solid color-mix(in srgb,var(--accent) 70%,transparent); outline-offset:-1px; background:color-mix(in srgb,var(--accent) 11%,var(--panel)); }
.message-row.selectable.focused { box-shadow:inset 3px 0 0 var(--accent); }
.sender,.subject { font-size:13.5px; }
.subject-cell { gap:2px; }
.snippet { display:-webkit-box; -webkit-box-orient:vertical; white-space:normal; line-height:1.25; font-size:11px; color:var(--muted); opacity:.78; }
.preview-lines-0 .snippet { display:none; }
.assignment-mini,.date { font-size:11px; }
.attachment-column { display:grid;place-items:center;color:var(--muted); }
.attachment-column .ui-icon { width:15px;height:15px; }
.row-delete { width:34px!important;height:34px!important;padding:0!important;border:0!important;background:transparent!important;color:#7d8999!important;border-radius:8px!important;display:grid!important;place-items:center!important;opacity:.62;cursor:pointer; }
.row-delete .ui-icon { width:19px;height:19px; }
.message-row:hover .row-delete { opacity:1; }
.row-delete:hover { color:#f05d68!important;background:rgba(240,93,104,.11)!important; }

.preview-pane { background:var(--bg); }
.preview-header { padding:21px 25px 16px; }
.preview-header h2 { font-size:22px; letter-spacing:-.015em; }
.message-meta { font-size:12px; line-height:1.5; }
.work-strip { font-size:12px; }
.category-text { color:var(--cat-dark); }
html[data-theme="light"] .category-text { color:var(--cat-light); }
.category-text.bold { font-weight:730; }
.mail-body { padding:18px 24px 24px; font-size:14px; }
.mail-html-frame { background:var(--bg)!important; border:0; border-radius:0; min-height:520px; }
.mail-plain-body { color:var(--text); }

.attachment-strip { display:flex;flex-wrap:wrap;gap:8px;margin-top:14px; }
.attachment-chip { border:1px solid var(--border); background:var(--panel-2); border-radius:9px; }
.attachment-open-button { min-height:38px; border:0;background:transparent;color:var(--text);display:flex;align-items:center;gap:7px;padding:6px 9px;cursor:pointer; }
.attachment-open-button .ui-icon { width:18px;height:18px;color:var(--accent); }
.attachment-open-button small { color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.05em; }

.toolbar-menu { min-width:220px; border:1px solid var(--border); border-radius:10px; background:var(--panel); box-shadow:0 18px 42px rgba(0,0,0,.35); padding:5px; z-index:60; }
.toolbar-menu button,.toolbar-menu a { width:100%;min-height:34px;display:flex;align-items:center;gap:9px;padding:6px 9px;border:0;background:transparent;color:var(--text);border-radius:7px;text-align:left;font-size:12px; }
.toolbar-menu button:hover,.toolbar-menu a:hover { background:var(--panel-3); }
.category-dot { width:10px;height:10px;border-radius:50%;background:var(--cat-dark);display:inline-block; }
html[data-theme="light"] .category-dot { background:var(--cat-light); }

.mail-context-menu { position:fixed; z-index:1002; width:230px; padding:5px; border:1px solid var(--border); border-radius:11px; background:var(--panel); box-shadow:0 18px 50px rgba(0,0,0,.42); }
.context-dismiss-layer { position:fixed; inset:0; z-index:1001; background:transparent; }
.mail-context-menu button { width:100%;min-height:35px;display:flex;align-items:center;gap:9px;padding:7px 9px;border:0;border-radius:7px;background:transparent;color:var(--text);text-align:left;font-size:12px;cursor:pointer; }
.mail-context-menu button:hover:not(:disabled) { background:var(--panel-3); }
.mail-context-menu button:disabled { opacity:.38; }
.mail-context-menu hr,.toolbar-menu hr { border:0;border-top:1px solid var(--border);margin:4px 3px; }
.mail-context-menu .ui-icon { width:15px;height:15px;color:var(--muted); }
.danger-context:hover { color:#ff7780!important;background:rgba(240,93,104,.10)!important; }
.context-submenu { position:relative; }
.context-submenu>button>span:last-child { margin-left:auto; }
.context-submenu-panel { display:none; position:absolute; left:calc(100% - 3px); top:-5px; width:230px; padding:5px; border:1px solid var(--border);border-radius:10px;background:var(--panel);box-shadow:0 18px 50px rgba(0,0,0,.4); }
.context-submenu:hover>.context-submenu-panel { display:block; }

.search-columns { display:grid;grid-template-columns:32px minmax(140px,.9fr) minmax(250px,2fr) minmax(140px,.8fr) 92px 42px!important;gap:10px; }
.search-results-table .message-row { grid-template-columns:32px minmax(140px,.9fr) minmax(250px,2fr) minmax(140px,.8fr) 92px 42px!important; min-height:48px; padding:7px 10px; }
.search-actions { margin:0; }
.danger-soft:hover:not(:disabled){color:#ff7780!important;}

.settings-panel { padding-bottom:4px; }
.settings-row { display:grid; grid-template-columns:minmax(260px,1fr) 220px auto; align-items:center;gap:16px;padding:18px; }
.settings-row small,.settings-help { display:block;color:var(--muted);font-size:11px;margin-top:4px; }
.settings-row select,.category-name-input { height:38px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);color:var(--text);padding:0 10px; }
.category-settings-list { padding:8px 14px 16px; }
.category-settings-row { display:grid;grid-template-columns:minmax(190px,1fr) 125px 125px minmax(150px,.8fr) auto;gap:10px;align-items:center;padding:8px 4px;border-bottom:1px solid var(--border); }
.category-settings-row label { display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px; }
.category-settings-row input[type=color] { width:34px;height:30px;border:0;background:transparent; }
.category-preview { color:var(--cat-dark); }
html[data-theme="light"] .category-preview { color:var(--cat-light); }
.secondary-button.compact { padding:7px 10px; }

.admin-table-wrap,.permission-editor-list { max-height:420px; overflow:auto; scrollbar-gutter:stable; }
.admin-table { font-size:12.5px; }
.admin-table th { position:sticky;top:0;background:var(--panel-2);z-index:2; }
.admin-form input,.admin-form select { min-height:39px; }
.compose-card { border-radius:14px; }
.compose-input { min-height:46px;font-size:13px; }
.compose-editor { min-height:360px;font-size:14px;line-height:1.55; }
.compose-drop-hint { font-size:11px; }

/* dark mail frame: do not leave a white canvas around HTML messages */
html[data-theme="dark"] .mail-html-frame { background:#0b0f14!important; }

@media (max-width:1200px){.topbar{grid-template-columns:auto minmax(220px,1fr) auto}.keyboard-hint{display:none}.mailbox-columns{grid-template-columns:28px minmax(115px,.75fr) minmax(180px,2fr) 78px 40px!important}.mailbox-columns .assignment-mini,.mail-table-header .right-header:first-of-type{display:none}.search-columns{grid-template-columns:28px minmax(120px,.8fr) minmax(200px,2fr) minmax(120px,.7fr) 80px 40px!important}}
.admin-table-scroll { max-height: 430px; overflow:auto; scrollbar-gutter:stable; }
.category-settings-actions { display:flex;align-items:center;gap:5px; }
.category-new-row { margin:0 14px 16px; padding:12px 4px; }
.category-menu-label.bold { font-weight: 730; }
.category-menu-label.strike { font-weight: 400; text-decoration: line-through; opacity: .78; }

/* v1.2.5 - Admin page must always be vertically reachable, independent of viewport height. */
.admin-page-scroll {
    height: 100%;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-gutter: stable;
    padding-bottom: 28px;
}
.admin-page-scroll .admin-secondary-grid { margin-bottom: 0; }
@media (max-width:760px) { .admin-page-scroll { height:100%; } }

/* v1.2.6 - clearly visible active folder in the mailbox tree */
.folder-link.active {
    color: var(--text) !important;
    background: color-mix(in srgb, var(--accent) 12%, var(--panel-2)) !important;
    border: 1px solid color-mix(in srgb, var(--accent) 42%, var(--border));
    box-shadow: inset 3px 0 0 color-mix(in srgb, var(--accent) 85%, white 0%), 0 0 0 1px rgba(255,255,255,.015);
    font-weight: 650;
}
.folder-link.active .ui-icon { color: var(--accent); }
html[data-theme="light"] .folder-link.active {
    background: color-mix(in srgb, var(--accent) 9%, white) !important;
    border-color: color-mix(in srgb, var(--accent) 35%, #c8d1df);
}

/* Context menu: keep full width and let submenus escape the parent.
   Do NOT put overflow:auto on the root menu: that clips the submenu and creates
   the horizontal scrollbar seen near the bottom of the viewport. */
.mail-context-menu {
    width: 250px;
    min-width: 250px;
    max-width: 250px;
    overflow: visible;
    white-space: nowrap;
}
.mail-context-menu button {
    min-width: 0;
}
.context-submenu-panel {
    top: -5px;
    bottom: auto;
    width: 270px;
    min-width: 270px;
    max-width: 270px;
    max-height: min(420px, calc(100vh - 16px));
    overflow-y: auto;
    overflow-x: hidden;
    white-space: nowrap;
}

/* Interactive Admin user management */
.admin-user-panel { display:grid; gap:14px; }
.admin-user-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.admin-user-editor { border-top:1px solid var(--border); padding-top:14px; display:grid; gap:12px; }
.admin-user-actions { display:flex; flex-wrap:wrap; gap:8px; }
.admin-table .row-action { min-height:30px; padding:5px 9px; font-size:11.5px; }
.admin-role-badge { display:inline-flex; align-items:center; min-height:23px; padding:2px 8px; border-radius:999px; background:var(--panel-3); color:var(--text); font-weight:650; font-size:10.5px; }
.admin-role-badge.admin { color:#8fb3ff; background:rgba(92,141,255,.12); }
.bridge-note { color:var(--muted); font-size:11px; margin-top:8px; }
.mail-context-menu.submenu-left .context-submenu-panel { left:auto; right:calc(100% - 3px); }

/* v1.2.9 - Admin is a real tab workspace. Each tab owns its vertical scroll. */
.admin-tabs-shell {
    height: 100%;
    min-height: 0;
    display: grid;
    grid-template-rows: auto auto minmax(0,1fr);
    overflow: hidden;
}
.admin-heading-compact { padding-top: 20px; padding-bottom: 12px; }
.admin-tabbar {
    display: flex;
    gap: 5px;
    padding: 0 30px 10px;
    border-bottom: 1px solid var(--border);
    overflow-x: auto;
    scrollbar-width: auto;
}
.admin-tab-button {
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 0 13px;
    border: 1px solid transparent;
    border-radius: 9px;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
    white-space: nowrap;
    font-weight: 600;
    font-size: 12.5px;
}
.admin-tab-button:hover { color: var(--text); background: var(--panel-2); }
.admin-tab-button.active {
    color: var(--text);
    background: color-mix(in srgb, var(--accent) 13%, var(--panel-2));
    border-color: color-mix(in srgb, var(--accent) 40%, var(--border));
    box-shadow: inset 0 -2px 0 var(--accent);
}
.admin-tab-button.active .ui-icon { color: var(--accent); }
.admin-tab-body { min-height: 0; overflow-y: auto; overflow-x: hidden; scrollbar-gutter: stable; }
.admin-tab-content { min-height: 100%; padding: 18px 0 30px; }
.admin-tab-toolbar { display:flex; justify-content:space-between; align-items:center; padding:0 30px 12px; }
.admin-summary-grid { padding-top: 0; }
.admin-simple-panel { margin: 0 30px 18px; }
.admin-general-row { padding: 20px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.admin-general-row p { margin:6px 0; color:var(--muted); }
.admin-general-row small { color:var(--muted); }
.admin-mailbox-layout-tab, .admin-rights-layout { padding-bottom: 0; align-items: stretch; }
.admin-mailbox-layout-tab .panel, .admin-rights-layout .panel { min-height: 560px; max-height: calc(100vh - 215px); overflow:hidden; }
.admin-mailbox-list { display:flex; flex-direction:column; min-height:0; }
.admin-list-scroll { overflow:auto; min-height:0; flex:1; scrollbar-gutter:stable; }
.admin-editor-scroll { overflow:auto; min-height:0; max-height: calc(100vh - 265px); padding-bottom:18px; scrollbar-gutter:stable; }
.admin-full-panel { margin:0 30px 18px; }
.admin-users-layout { display:grid; grid-template-columns:minmax(430px,1fr) minmax(430px,1fr); gap:18px; padding:0 16px 18px; }
.admin-table-scroll.tall { max-height: calc(100vh - 290px); }
.admin-user-editor-card { border:1px solid var(--border); border-radius:11px; padding:16px; background:var(--panel-2); align-self:start; }
.admin-table tr.active-row td { background: color-mix(in srgb, var(--accent) 8%, transparent); }
.rights-editor { padding: 10px 16px 18px; }
.rights-list { max-height: calc(100vh - 350px); }
.pst-import-panel { max-width: 1180px; }
.pst-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; padding:18px 18px 6px; }
.pst-grid label { display:flex; flex-direction:column; gap:6px; color:var(--muted); font-size:11px; }
.pst-grid input, .pst-grid select { min-height:40px; border:1px solid var(--border); background:var(--panel-2); color:var(--text); border-radius:8px; padding:8px 10px; }
.pst-file-label { grid-column:1/-1; }
.pst-file-label input { padding:7px; }
.pst-options { padding: 12px 18px; }
.pst-job-card { margin: 14px 18px 18px; border:1px solid var(--border); background:var(--panel-2); border-radius:10px; padding:14px; }
.pst-job-head { display:flex; justify-content:space-between; gap:10px; }
.pst-job-card progress { width:100%; height:8px; margin:12px 0; accent-color:var(--accent); }
.pst-job-card p { color:var(--muted); margin:4px 0; }
.pst-stats { display:flex; gap:18px; flex-wrap:wrap; margin-top:10px; }
@media(max-width:1100px){
    .admin-users-layout { grid-template-columns:1fr; }
    .admin-mailbox-layout-tab,.admin-rights-layout { grid-template-columns:1fr; }
    .admin-mailbox-layout-tab .panel,.admin-rights-layout .panel { max-height:none; min-height:0; }
    .admin-editor-scroll { max-height:none; }
}
@media(max-width:760px){
    .admin-tabbar { padding-left:14px; padding-right:14px; }
    .admin-simple-panel,.admin-full-panel { margin-left:14px; margin-right:14px; }
    .admin-tab-toolbar { padding-left:14px; padding-right:14px; }
    .pst-grid { grid-template-columns:1fr; }
}
.admin-tab-body::-webkit-scrollbar,
.admin-list-scroll::-webkit-scrollbar,
.admin-editor-scroll::-webkit-scrollbar,
.admin-table-scroll::-webkit-scrollbar,
.permission-editor-list::-webkit-scrollbar { width: 10px; height: 10px; }
.admin-tab-body::-webkit-scrollbar-track,
.admin-list-scroll::-webkit-scrollbar-track,
.admin-editor-scroll::-webkit-scrollbar-track,
.admin-table-scroll::-webkit-scrollbar-track,
.permission-editor-list::-webkit-scrollbar-track { background: color-mix(in srgb, var(--panel) 86%, black); }
.admin-tab-body::-webkit-scrollbar-thumb,
.admin-list-scroll::-webkit-scrollbar-thumb,
.admin-editor-scroll::-webkit-scrollbar-thumb,
.admin-table-scroll::-webkit-scrollbar-thumb,
.permission-editor-list::-webkit-scrollbar-thumb { background: color-mix(in srgb, var(--muted) 48%, var(--panel-2)); border-radius: 999px; border: 2px solid var(--panel); }
.admin-tab-body::-webkit-scrollbar-thumb:hover,
.admin-list-scroll::-webkit-scrollbar-thumb:hover,
.admin-editor-scroll::-webkit-scrollbar-thumb:hover,
.admin-table-scroll::-webkit-scrollbar-thumb:hover,
.permission-editor-list::-webkit-scrollbar-thumb:hover { background: color-mix(in srgb, var(--accent) 55%, var(--muted)); }

/* v1.3.0 - large PST import */
.pst-large-import{margin-top:18px;padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--panel-2)}
.pst-large-import h3{margin:0 0 7px;font-size:14px;color:var(--text)}
.pst-large-import code{font-family:Consolas,monospace;color:var(--accent)}
.pst-inline-actions{align-items:flex-end;gap:8px;margin-top:18px}


/* v1.3.1 - Outlook-like date groups */
.date-group-band{position:sticky;top:0;z-index:5;display:flex;align-items:center;min-height:29px;padding:4px 12px;margin:0;border-top:1px solid color-mix(in srgb,var(--border) 72%,transparent);border-bottom:1px solid color-mix(in srgb,var(--border) 62%,transparent);background:color-mix(in srgb,var(--panel-2) 91%,var(--accent) 9%);color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.035em;text-transform:uppercase;box-shadow:0 1px 0 color-mix(in srgb,var(--panel) 72%,transparent)}
[data-theme="light"] .date-group-band{background:color-mix(in srgb,var(--panel-2) 95%,var(--accent) 5%);color:color-mix(in srgb,var(--text) 70%,var(--muted))}
.settings-toggle{display:inline-flex;align-items:center;gap:9px;white-space:nowrap;color:var(--text)}
.settings-toggle input{width:17px;height:17px;accent-color:var(--accent)}


/* v1.3.4 desktop-class controls */
.auto-sync-row { align-items:center; gap:18px; }
.auto-sync-controls { display:flex; align-items:end; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.auto-sync-controls > label:not(.settings-toggle) { display:grid; gap:5px; min-width:120px; color:var(--muted); font-size:11px; }
.auto-sync-controls input[type="number"] { width:120px; }

/* v1.3.5 - antivirus / diagnostics */
.attachment-security{display:inline-flex;align-items:center;white-space:nowrap;font-size:10.5px;font-weight:650;padding:2px 7px;border-radius:999px;border:1px solid var(--border);margin-left:4px}
.attachment-security.clean{color:#8fe3ad;background:rgba(59,180,105,.10);border-color:rgba(83,202,126,.24)}
.attachment-security.infected{color:#ff8b8b;background:rgba(210,55,55,.13);border-color:rgba(255,104,104,.32)}
.attachment-security.error{color:#ffd27f;background:rgba(197,140,35,.12);border-color:rgba(235,177,68,.28)}
.attachment-security.pending{color:var(--muted);background:var(--panel-2)}
.attachment-open-button:disabled{opacity:.55;cursor:not-allowed}
.antivirus-admin-row{align-items:flex-start}
.antivirus-health{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;padding:9px 11px;border:1px solid var(--border);border-radius:9px;background:var(--panel-2)}
.antivirus-health.clean{border-color:rgba(83,202,126,.26)}
.antivirus-health.error{border-color:rgba(255,104,104,.30)}
.antivirus-health small{width:100%;padding-left:24px}
.admin-action-stack{display:flex;flex-direction:column;gap:8px;min-width:220px}
.diagnostic-log{margin:0 18px 18px;max-height:260px;overflow:auto;white-space:pre-wrap;word-break:break-word;background:#0c1016;color:#b9c5d3;border:1px solid var(--border);border-radius:9px;padding:12px;font:11px/1.5 Consolas,"Cascadia Mono",monospace;scrollbar-gutter:stable}
[data-theme="light"] .diagnostic-log{background:#f4f6f8;color:#25303c}
@media(max-width:760px){.antivirus-admin-row{flex-direction:column}.admin-action-stack{width:100%}}

/* v1.3.6 rich compose + signatures ---------------------------------------- */
.rich-toolbar { display:flex; flex-wrap:wrap; gap:4px; align-items:center; }
.rich-toolbar select { min-width:78px; height:30px; border:1px solid var(--border); background:var(--panel-2); color:var(--text); border-radius:6px; padding:0 7px; }
.rich-toolbar select:first-child { min-width:125px; }
.rich-color { position:relative; display:inline-flex; align-items:center; justify-content:center; min-width:34px; height:30px; padding:0 6px; border:1px solid transparent; border-radius:6px; background:transparent; font-weight:700; cursor:pointer; }
.rich-color:hover { border-color:var(--border); background:var(--panel-3); }
.rich-color input[type=color] { position:absolute; inset:auto 3px 2px 3px; width:calc(100% - 6px); height:5px; padding:0; border:0; opacity:.95; cursor:pointer; }
.rich-image-button input[type=file] { display:none; }
.rich-editor { outline:none; }
.rich-editor:focus { border-color:color-mix(in srgb, var(--accent) 65%, var(--border)); box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 16%, transparent); }
.rich-editor img { max-width:min(100%, 760px); height:auto; }
[data-companymail-signature-container] { margin-top:12px; }

.signature-settings-panel { overflow:visible; }
.signature-layout { display:grid; grid-template-columns:220px minmax(0,1fr); gap:14px; min-height:430px; }
.signature-list { border:1px solid var(--border); border-radius:10px; background:var(--panel-2); padding:8px; overflow:auto; max-height:560px; }
.signature-new { width:100%; margin-bottom:8px; }
.signature-empty { color:var(--muted); padding:14px 8px; font-size:13px; }
.signature-list-item { width:100%; display:flex; flex-direction:column; align-items:flex-start; gap:3px; padding:9px 10px; margin:2px 0; border:1px solid transparent; border-radius:8px; background:transparent; color:var(--text); text-align:left; cursor:pointer; }
.signature-list-item:hover { background:var(--panel-3); }
.signature-list-item.active { background:var(--panel-3); border-color:var(--border-strong,var(--border)); }
.signature-list-item small { color:var(--muted); }
.signature-editor-pane { min-width:0; }
.signature-form-grid { display:grid; grid-template-columns:minmax(180px,1fr) minmax(220px,1fr); gap:10px 14px; margin-bottom:10px; }
.signature-form-grid > label { display:flex; flex-direction:column; gap:5px; color:var(--muted); font-size:12px; }
.signature-form-grid .settings-toggle { flex-direction:row; align-items:center; color:var(--text); font-size:13px; }
.signature-toolbar { margin-bottom:0; border-radius:8px 8px 0 0; }
.signature-rich-editor { min-height:220px; max-height:420px; overflow:auto; border-top-left-radius:0; border-top-right-radius:0; }
.signature-actions { display:flex; gap:8px; margin-top:10px; }
.download-all-attachments { display:inline-flex; align-items:center; gap:6px; min-height:32px; padding:5px 10px; border:1px solid var(--border); border-radius:8px; background:var(--panel-2); color:var(--text); text-decoration:none; font-size:12px; font-weight:650; }
.download-all-attachments:hover { background:var(--panel-3); border-color:var(--border-strong,var(--border)); }
.download-all-attachments svg { width:15px; height:15px; }

@media (max-width: 900px) {
  .signature-layout { grid-template-columns:1fr; }
  .signature-list { max-height:200px; }
  .signature-form-grid { grid-template-columns:1fr; }
}

/* v1.3.7 compose usability ------------------------------------------------ */
.compose-page { height:100%; min-height:0; overflow-y:auto; scrollbar-gutter:stable; }
.compose-recipient-main { display:flex; align-items:stretch; min-width:0; border-bottom:1px solid var(--border); }
.compose-recipient-main .compose-input { min-width:0; border-bottom:0; }
.compose-label-with-toggle { display:flex; align-items:center; justify-content:flex-end; gap:8px; white-space:nowrap; }
.compose-label-with-toggle > span:first-child { flex:0 0 auto; }
.compose-copy-toggle { flex:0 0 auto; height:28px; min-width:auto; border:1px solid var(--border); border-radius:8px; background:transparent; color:var(--muted); padding:0 9px; cursor:pointer; display:inline-flex; align-items:center; gap:6px; font-size:11px; line-height:1; transition:background .14s ease,color .14s ease,border-color .14s ease,box-shadow .14s ease,transform .14s ease; }
.compose-copy-toggle:hover { color:var(--text); background:var(--panel-2); border-color:color-mix(in srgb,var(--accent) 28%,var(--border)); }
.compose-copy-toggle.active { color:var(--text); background:color-mix(in srgb,var(--accent) 12%,var(--panel-2)); border-color:color-mix(in srgb,var(--accent) 42%,var(--border)); box-shadow:inset 2px 0 0 color-mix(in srgb,var(--accent) 85%,white 0%),0 0 0 1px rgba(255,255,255,.015); }
.compose-copy-toggle:active { transform:translateY(1px); }
.compose-copy-toggle-arrow { font-size:10px; transform:translateY(-1px); }
.compose-select { appearance:none; -webkit-appearance:none; -moz-appearance:none; padding-right:40px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.2 4.25 6 8.05l3.8-3.8' fill='none' stroke='%239aabc0' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; background-size:12px 12px; }
.compose-select::-ms-expand { display:none; }
.compose-editor:not(.signature-rich-editor) { height:clamp(280px,48vh,620px); min-height:280px; max-height:620px; overflow:auto; scrollbar-gutter:stable; }
.compose-attachments { max-height:150px; overflow:auto; scrollbar-gutter:stable; }

.rich-color-button { position:relative; width:34px; min-width:34px !important; height:30px; display:inline-flex; flex-direction:column; justify-content:center; align-items:center; border:1px solid transparent; border-radius:6px; background:transparent; color:var(--text); cursor:pointer; padding:1px 5px 3px; }
.rich-color-button:hover { border-color:var(--border); background:var(--panel-3); }
.rich-color-letter,.rich-highlight-symbol { line-height:17px; font-weight:750; }
.rich-color-bar { width:20px; height:3px; border-radius:2px; background:currentColor; opacity:.9; }
.rich-highlight-button .rich-color-bar { background:#fff2a8; border:1px solid rgba(0,0,0,.16); height:4px; }
.rich-color-palette-float { position:fixed; z-index:10000; width:190px; padding:9px; border:1px solid var(--border); border-radius:9px; background:var(--panel); color:var(--text); box-shadow:0 14px 38px rgba(0,0,0,.38); }
.rich-color-palette-title { font-size:11px; color:var(--muted); margin:0 0 7px; }
.rich-color-palette-grid { display:grid; grid-template-columns:repeat(6,24px); gap:5px; }
.rich-color-swatch { width:24px; height:24px; border-radius:5px; border:1px solid color-mix(in srgb, var(--border) 80%, #fff 20%); background:var(--swatch); cursor:pointer; padding:0; }
.rich-color-swatch:hover { outline:2px solid var(--accent); outline-offset:1px; }
.rich-color-palette-more { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:9px; padding-top:8px; border-top:1px solid var(--border); font-size:12px; cursor:pointer; }
.rich-color-palette-more input[type=color] { width:34px; height:24px; padding:1px; border:1px solid var(--border); border-radius:5px; background:var(--panel-2); cursor:pointer; }

.rich-table-menu { position:relative; }
.rich-table-menu > summary { list-style:none; height:30px; display:inline-flex; align-items:center; padding:0 8px; border:1px solid transparent; border-radius:6px; font-size:11px; cursor:pointer; user-select:none; }
.rich-table-menu > summary::-webkit-details-marker { display:none; }
.rich-table-menu > summary:hover,.rich-table-menu[open] > summary { border-color:var(--border); background:var(--panel-3); }
.rich-table-popover { position:absolute; z-index:40; left:0; top:34px; min-width:165px; display:grid; gap:2px; padding:6px; border:1px solid var(--border); border-radius:8px; background:var(--panel); box-shadow:0 12px 30px rgba(0,0,0,.35); }
.rich-table-popover button { min-height:29px; border:0; border-radius:5px; padding:5px 8px; background:transparent; color:var(--text); text-align:left; font-size:11px; cursor:pointer; }
.rich-table-popover button:hover { background:var(--panel-3); }
.rich-table-popover button.danger:hover { color:#ff9a9f; }
.rich-table-popover hr { width:100%; border:0; border-top:1px solid var(--border); margin:3px 0; }

.rich-editor table { max-width:100%; border-collapse:collapse; border-spacing:0; }
.rich-editor td,.rich-editor th { padding:2px 4px; line-height:1.2; min-width:12px; }
.rich-editor td p,.rich-editor th p { margin-top:0 !important; margin-bottom:0 !important; line-height:1.2 !important; }
.rich-editor img { max-width:100%; height:auto; cursor:nwse-resize; }
.rich-image-resize-overlay { position:fixed; z-index:9998; pointer-events:none; border:2px solid var(--accent); border-radius:2px; box-shadow:0 0 0 1px rgba(255,255,255,.25); }
.rich-image-resize-handle { position:absolute; right:-7px; bottom:-7px; width:14px; height:14px; border:2px solid #fff; border-radius:3px; background:var(--accent); cursor:nwse-resize; pointer-events:auto; box-shadow:0 1px 4px rgba(0,0,0,.4); }
.rich-image-size-badge { position:absolute; right:0; top:-24px; min-width:max-content; padding:3px 6px; border-radius:5px; background:rgba(15,18,24,.92); color:#fff; font-size:10px; line-height:14px; pointer-events:none; }

@media(max-width:760px){
  .compose-editor:not(.signature-rich-editor){height:42vh;min-height:240px}
  .compose-copy-toggle{min-width:76px;padding:0 7px;font-size:11px}
}

/* v1.3.8 rules, unread counters and address book ------------------------- */
.folder-link { display:flex; align-items:center; }
.folder-context-host { display: contents; }
.folder-link > span:not(.folder-unread-badge) { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.folder-unread-badge {
    flex:0 0 auto;
    margin-left:auto;
    min-width:22px;
    height:20px;
    padding:0 6px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid color-mix(in srgb,var(--row-unread) 58%,var(--border));
    border-radius:999px;
    color:var(--row-unread);
    background:color-mix(in srgb,var(--row-unread) 12%,transparent);
    font-size:10px;
    line-height:1;
    font-weight:760;
}
html[data-theme="light"] .folder-unread-badge {
    border-color:color-mix(in srgb,var(--row-unread) 64%,var(--border));
    color:var(--row-unread);
    background:color-mix(in srgb,var(--row-unread) 10%,white);
}

.mail-action-status { padding:7px 13px; border-bottom:1px solid var(--border); background:color-mix(in srgb,var(--accent) 7%,var(--panel)); color:var(--muted); font-size:11px; }
.context-menu-caption { padding:5px 9px 3px; color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.06em; }
.context-menu-empty { padding:8px 9px; color:var(--muted); font-size:11px; }
.rules-submenu-panel { max-height:min(440px,calc(100vh - 18px)); }
.spam-context { color:#ff8891 !important; }
.spam-context .ui-icon { color:#ff737c !important; }

.page-header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:26px 30px 18px; }
.page-header h1 { margin:0; }
.page-header p { margin:5px 0 0; color:var(--muted); font-size:12px; }
.directory-page,.rules-page { min-height:100%; padding-bottom:32px; overflow:auto; }
.directory-toolbar { margin:0 30px 12px; min-height:44px; display:flex; align-items:center; gap:12px; }
.directory-search { flex:1; height:40px; display:flex; align-items:center; gap:8px; padding:0 11px; border:1px solid var(--border); border-radius:9px; background:var(--panel-2); }
.directory-search .ui-icon { width:16px; height:16px; color:var(--muted); }
.directory-search input { flex:1; min-width:0; border:0; outline:0; background:transparent; color:var(--text); }
.directory-count { color:var(--muted); font-size:11px; }
.directory-list,.rules-list { margin:0 30px; border:1px solid var(--border); border-radius:12px; overflow:hidden; background:var(--panel); }
.directory-row { display:grid; grid-template-columns:minmax(180px,1.1fr) minmax(200px,1.1fr) minmax(150px,.9fr) minmax(120px,.65fr) 112px; gap:12px; align-items:center; min-height:58px; padding:7px 12px; border-bottom:1px solid var(--border); font-size:12px; }
.directory-row:last-child { border-bottom:0; }
.directory-list-head { min-height:36px; background:var(--panel-2); color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.04em; }
.directory-name { display:flex; align-items:center; gap:9px; min-width:0; border:0; background:transparent; color:var(--text); text-align:left; cursor:pointer; padding:0; }
.directory-name > span:last-child { display:flex; flex-direction:column; min-width:0; }
.directory-name strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.directory-name small { color:var(--muted); font-size:10.5px; margin-top:2px; }
.contact-avatar { width:30px; height:30px; flex:0 0 auto; display:grid; place-items:center; border-radius:50%; background:var(--panel-3); color:var(--accent); font-size:10px; font-weight:800; }
.directory-email { color:var(--accent); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.directory-actions { display:flex; justify-content:flex-end; gap:4px; }
.directory-actions button,.icon-link-button { width:30px; height:30px; display:grid; place-items:center; border:0; border-radius:7px; background:transparent; color:var(--muted); cursor:pointer; }
.directory-actions button:hover,.icon-link-button:hover { background:var(--panel-3); color:var(--text); }
.directory-actions .ui-icon,.icon-link-button .ui-icon { width:15px; height:15px; }

.contact-editor-modal { width:min(760px,calc(100vw - 34px)); }
.contact-editor-body { max-height:min(72vh,700px); overflow:auto; }
.contact-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:11px 14px; }
.contact-form-grid label { display:flex; flex-direction:column; gap:5px; color:var(--muted); font-size:11px; }
.contact-form-grid label.wide { grid-column:1/-1; }
.contact-form-grid input,.contact-form-grid textarea,.contact-form-grid select { width:100%; border:1px solid var(--border); border-radius:8px; background:var(--panel-2); color:var(--text); padding:8px 9px; outline:none; }
.contact-form-grid input,.contact-form-grid select { height:38px; }
.directory-name small.contact-scope { color:var(--accent); opacity:.9; }
.contact-form-grid input:focus,.contact-form-grid textarea:focus,.contact-form-grid select:focus { border-color:var(--accent); }
.modal-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:14px; }

.rules-info { margin:0 30px 12px; min-height:42px; display:flex; align-items:center; gap:9px; padding:9px 11px; border:1px solid var(--border); border-radius:9px; background:var(--panel-2); color:var(--muted); font-size:11.5px; }
.rules-info .ui-icon { width:16px; height:16px; color:var(--accent); }
.rule-row { display:grid; grid-template-columns:90px minmax(160px,.8fr) minmax(220px,1.1fr) minmax(240px,1.25fr) 40px; gap:12px; align-items:center; min-height:50px; padding:7px 12px; border-bottom:1px solid var(--border); font-size:12px; }
.rule-row:last-child { border-bottom:0; }
.rule-head { min-height:36px; background:var(--panel-2); color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.04em; }
.rule-toggle { display:flex; align-items:center; gap:7px; color:var(--muted); }
.rule-action-text { color:var(--muted); }
.rule-row .danger-icon { justify-self:end; width:30px; height:30px; display:grid; place-items:center; border:0; border-radius:7px; background:transparent; color:#df6972; cursor:pointer; }
.rule-row .danger-icon:hover { background:rgba(223,105,114,.1); }

@media(max-width:900px){
  .directory-row { grid-template-columns:minmax(170px,1fr) minmax(190px,1fr) 96px; }
  .directory-row > span:nth-child(3),.directory-row > span:nth-child(4),.directory-list-head > span:nth-child(3),.directory-list-head > span:nth-child(4) { display:none; }
  .rule-row { grid-template-columns:72px minmax(150px,.8fr) minmax(180px,1fr) 36px; }
  .rule-row > span:nth-child(4),.rule-head > span:nth-child(4) { display:none; }
}
@media(max-width:650px){
  .page-header,.directory-toolbar,.directory-list,.rules-list,.rules-info { margin-left:14px; margin-right:14px; }
  .page-header { padding-left:14px; padding-right:14px; }
  .contact-form-grid { grid-template-columns:1fr; }
  .contact-form-grid label.wide { grid-column:auto; }
}

/* v1.3.9 rules + contacts ------------------------------------------------- */
.compose-recipient-autocomplete { position:relative; min-width:0; }
.compose-recipient-main .compose-recipient-autocomplete { flex:1 1 auto; }
.compose-recipient-autocomplete.standalone { width:100%; }
.compose-recipient-autocomplete.standalone .compose-input { display:block; }
.recipient-suggestions { position:absolute; z-index:120; left:6px; top:calc(100% - 2px); width:min(520px,calc(100vw - 130px)); max-height:300px; overflow:auto; padding:5px; border:1px solid var(--border); border-radius:9px; background:var(--panel); box-shadow:0 14px 36px rgba(0,0,0,.38); }
.recipient-suggestions button { width:100%; min-height:44px; display:flex; align-items:center; gap:9px; border:0; border-radius:7px; padding:5px 7px; background:transparent; color:var(--text); text-align:left; cursor:pointer; }
.recipient-suggestions button:hover { background:var(--panel-3); }
.recipient-suggestions button > span:last-child { min-width:0; display:flex; flex-direction:column; }
.recipient-suggestions strong,.recipient-suggestions small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.recipient-suggestions small { margin-top:2px; color:var(--muted); font-size:10.5px; }
.recipient-suggestion-avatar { width:29px; height:29px; flex:0 0 auto; display:grid; place-items:center; border-radius:50%; background:var(--panel-3); color:var(--accent); font-size:9.5px; font-weight:800; }

.directory-email-list { min-width:0; display:flex; flex-direction:column; gap:2px; }
.directory-email.secondary { color:var(--muted); font-size:10.5px; }

.advanced-rule-row { grid-template-columns:118px minmax(150px,.72fr) minmax(260px,1.35fr) minmax(230px,1.05fr) 116px; min-height:62px; }
.rule-order-cell { display:flex; align-items:center; gap:4px; }
.rule-order-cell > button,.rule-row-actions > button { width:28px; height:28px; display:grid; place-items:center; border:0; border-radius:6px; background:transparent; color:var(--muted); cursor:pointer; }
.rule-order-cell > button:hover,.rule-row-actions > button:hover { background:var(--panel-3); color:var(--text); }
.rule-order-cell .rule-toggle { width:24px; justify-content:center; }
.rule-description-button { min-width:0; display:flex; flex-direction:column; align-items:flex-start; gap:3px; border:0; background:transparent; color:var(--text); padding:3px 0; text-align:left; cursor:pointer; }
.rule-description-button strong { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rule-description-button small { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--muted); font-size:10.5px; }
.rule-mailbox { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rule-row-actions { display:flex; justify-content:flex-end; align-items:center; gap:3px; }
.rule-row-actions .ui-icon { width:14px; height:14px; }
.rule-row-actions .danger-icon { margin:0; }
.rule-disabled { opacity:.56; }
.rules-status { margin:12px 30px 0; }

.rule-editor-modal { width:min(860px,calc(100vw - 34px)); }
.rule-editor-body { max-height:min(78vh,760px); overflow:auto; }
.rule-editor-section { padding:2px 0 15px; margin-bottom:14px; border-bottom:1px solid var(--border); }
.rule-editor-section:last-of-type { margin-bottom:0; }
.rule-editor-section h3 { margin:0 0 10px; font-size:13px; }
.rule-editor-section h3 small { margin-left:6px; color:var(--muted); font-size:10.5px; font-weight:400; }
.rule-editor-grid { display:grid; grid-template-columns:1fr 1fr; gap:11px 14px; }
.rule-editor-grid label { display:flex; flex-direction:column; gap:5px; color:var(--muted); font-size:11px; }
.rule-editor-grid label.wide { grid-column:1/-1; }
.rule-editor-grid input:not([type=checkbox]),.rule-editor-grid select { width:100%; height:38px; border:1px solid var(--border); border-radius:8px; padding:0 9px; background:var(--panel-2); color:var(--text); outline:none; }
.rule-editor-grid input:focus,.rule-editor-grid select:focus { border-color:var(--accent); }
.rule-editor-grid .check-label { min-height:38px; flex-direction:row; align-items:center; gap:8px; padding:7px 9px; border:1px solid var(--border); border-radius:8px; background:var(--panel-2); color:var(--text); }
.rule-editor-grid .check-label input { width:16px; height:16px; }
.rule-editor-grid .check-label.emphasized { border-color:color-mix(in srgb,var(--accent) 45%,var(--border)); }
.context-primary-action { font-weight:700 !important; color:var(--text) !important; }

@media(max-width:1050px){
  .advanced-rule-row { grid-template-columns:100px minmax(140px,.65fr) minmax(220px,1.2fr) 104px; }
  .advanced-rule-row > .rule-action-text,.advanced-rule-row.rule-head > span:nth-child(4) { display:none; }
}
@media(max-width:720px){
  .rule-editor-grid { grid-template-columns:1fr; }
  .rule-editor-grid label.wide { grid-column:auto; }
  .advanced-rule-row { grid-template-columns:94px minmax(180px,1fr) 100px; }
  .advanced-rule-row > .rule-mailbox,.advanced-rule-row.rule-head > span:nth-child(2) { display:none; }
  .recipient-suggestions { width:min(430px,calc(100vw - 40px)); left:0; }
  .rules-status { margin-left:14px; margin-right:14px; }
}


/* Assigned workflow: exact-message rows and manual completion */
.assigned-message-row { grid-template-columns:minmax(130px,.8fr) minmax(260px,2.2fr) minmax(130px,.9fr) 100px 85px 42px; cursor:pointer; }
.assigned-message-row:focus-visible { outline:1px solid color-mix(in srgb,var(--accent) 70%,transparent); outline-offset:-1px; }
.assigned-complete-button { width:36px; height:36px; display:grid; place-items:center; justify-self:end; border:1px solid var(--border); border-radius:9px; color:#42c879; background:transparent; cursor:pointer; transition:background .14s ease,color .14s ease,border-color .14s ease,box-shadow .14s ease,transform .14s ease; }
.assigned-complete-button .ui-icon { width:19px; height:19px; color:currentColor; }
.assigned-complete-button:hover { background:color-mix(in srgb,#42c879 10%,var(--panel-2)); border-color:color-mix(in srgb,#42c879 48%,var(--border)); color:#54df8d; box-shadow:inset 3px 0 0 color-mix(in srgb,#42c879 82%,white 0%); }
.assigned-complete-button:active { transform:translateY(1px); }

/* Mail list indicators: completed check appears immediately before attachment */
.mailbox-columns { grid-template-columns:68px minmax(130px,.82fr) minmax(220px,2fr) minmax(90px,.7fr) 82px 42px!important; }
.mailbox-table .message-row { grid-template-columns:68px minmax(130px,.82fr) minmax(220px,2fr) minmax(90px,.7fr) 82px 42px!important; }
.mail-indicators-column { display:grid!important; grid-template-columns:20px 20px 20px; gap:2px; place-items:center; }
.mail-indicators-column .indicator-slot { width:20px; height:20px; display:grid; place-items:center; text-decoration:none; }
.mail-indicators-column .ui-icon { width:15px; height:15px; }
.completed-indicator { color:#42c879; }
.completed-indicator .ui-icon { stroke-width:2.1; }

@media (max-width:1200px){
    .assigned-message-row { grid-template-columns:minmax(120px,.8fr) minmax(210px,1.8fr) minmax(120px,.8fr) 78px 42px; }
    .assigned-message-row .assigned { display:none; }
    .mailbox-columns { grid-template-columns:44px minmax(115px,.75fr) minmax(180px,2fr) 78px 40px!important; }
}

/* v1.3.9 FIX7 - send reply and complete assigned mail */
.send-complete-button {
    min-height:38px; display:inline-flex; align-items:center; justify-content:center; gap:7px;
    padding:0 12px; border-radius:9px; border:1px solid #42b883; background:transparent;
    color:#57d79b; font-size:12px; font-weight:650; cursor:pointer;
}
.send-complete-button:hover:not(:disabled) { background:rgba(66,184,131,.10); }
.send-complete-button:disabled { opacity:.45; cursor:default; }
.send-complete-button .ui-icon { width:16px; height:16px; }
html[data-theme="light"] .send-complete-button { color:#19764d; border-color:#2d9a68; }
html[data-theme="light"] .send-complete-button:hover:not(:disabled) { background:rgba(45,154,104,.09); }

/* v1.3.9 FIX10 - Public / Personal address book -------------------------- */
.directory-scope-filter { height:40px; min-width:118px; border:1px solid var(--border); border-radius:9px; background:var(--panel-2); color:var(--text); padding:0 9px; outline:none; }
.directory-scope-filter:focus { border-color:var(--accent); }
.contact-name-line,.recipient-suggestion-name { min-width:0; display:flex; align-items:center; gap:6px; }
.contact-name-line strong,.recipient-suggestion-name strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.contact-scope-badge { width:20px; height:20px; flex:0 0 auto; display:inline-grid; place-items:center; border:1px solid var(--border); border-radius:6px; font-size:9px; line-height:1; font-weight:850; }
.contact-scope-badge.public { color:#65d18a; border-color:color-mix(in srgb,#65d18a 58%,var(--border)); background:color-mix(in srgb,#65d18a 10%,transparent); }
.contact-scope-badge.personal { color:var(--muted); background:var(--panel-2); }
.contact-scope-badge.mini { width:18px; height:18px; border-radius:5px; font-size:8px; }
.inline-status-action { margin-left:10px; border:1px solid currentColor; border-radius:6px; background:transparent; color:inherit; padding:4px 8px; cursor:pointer; font-size:10.5px; }
.inline-status-action:hover { background:color-mix(in srgb,currentColor 9%,transparent); }


/* FIX13 - Vsa moja prejeta: Inbox-like fixed layout, own scrollbar and mailbox color marker */
.all-inbox-page {
    height: calc(100vh - 68px);
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.all-inbox-heading { flex: 0 0 auto; }
.all-inbox-summary { flex: 0 0 auto; }
.all-inbox-panel {
    flex: 1 1 auto;
    min-height: 0;
    margin-bottom: 18px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.all-inbox-panel > .panel-title,
.all-inbox-panel > .mail-table-header { flex: 0 0 auto; }
.all-inbox-table {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-gutter: stable;
}
.all-inbox-columns {
    display: grid;
    grid-template-columns: 7px 44px minmax(130px,.85fr) minmax(260px,2.25fr) minmax(125px,.9fr) 105px 88px;
    gap: 11px;
    align-items: center;
}
.all-inbox-table .message-row {
    width: 100%;
    min-height: 58px;
    grid-template-columns: 7px 44px minmax(130px,.85fr) minmax(260px,2.25fr) minmax(125px,.9fr) 105px 88px;
}
.mailbox-color-marker {
    width: 4px;
    height: calc(100% - 10px);
    min-height: 32px;
    max-height: 46px;
    justify-self: center;
    border-radius: 999px;
    background: var(--mailbox-row-color, #c5ceda);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--mailbox-row-color, #c5ceda) 45%, transparent);
}
@media (max-width: 900px) {
    .all-inbox-columns, .all-inbox-table .message-row {
        grid-template-columns: 6px 42px 120px minmax(190px,1fr) 82px;
    }
    .all-inbox-columns > :nth-child(6), .all-inbox-columns > :nth-child(7),
    .all-inbox-table .message-row > :nth-child(6), .all-inbox-table .message-row > :nth-child(7) { display:none; }
}

/* FIX15 - sortable mail columns + size column + all-inbox popup rows */
.mail-sort-button {
    min-width:0;
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    gap:4px;
    padding:0;
    border:0;
    background:transparent;
    color:inherit;
    font:inherit;
    font-weight:inherit;
    letter-spacing:inherit;
    text-transform:inherit;
    text-align:left;
    cursor:pointer;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.mail-sort-button.right { justify-content:flex-end; text-align:right; }
.mail-sort-button:hover,
.mail-sort-button.active { color:var(--text); }
.mail-sort-button.active { font-weight:850; }
.mail-indicator-sorters { opacity:1!important; }
.indicator-sort-button {
    width:20px;
    height:20px;
    display:grid;
    place-items:center;
    padding:0;
    border:0;
    border-radius:5px;
    background:transparent;
    color:var(--muted);
    cursor:pointer;
}
.indicator-sort-button .ui-icon { width:14px!important; height:14px!important; }
.indicator-sort-button:hover,
.indicator-sort-button.active { color:var(--text); background:color-mix(in srgb,var(--accent) 11%,transparent); }
.indicator-sort-button:first-child:hover,
.indicator-sort-button:first-child.active { color:#42c879; }
.message-size {
    min-width:0;
    text-align:right;
    white-space:nowrap;
    font-variant-numeric:tabular-nums;
    color:inherit;
    font-size:11px;
    opacity:.82;
}

/* Every real mailbox folder: indicators | sender/recipient | subject | assigned | size | date | delete */
.mailbox-columns,
.mailbox-table .message-row {
    grid-template-columns:64px minmax(130px,.82fr) minmax(220px,2fr) minmax(90px,.7fr) 74px 82px 42px!important;
}

/* All my inboxes: mailbox is identified by the colored marker, so the former Mailbox column is now Size. */
.all-inbox-columns,
.all-inbox-table .message-row {
    grid-template-columns:7px 44px minmax(130px,.85fr) minmax(260px,2.25fr) 78px 105px 88px!important;
}
.all-inbox-message-row { cursor:default; user-select:none; }
.all-inbox-message-row:focus-visible { outline:1px solid color-mix(in srgb,var(--accent) 70%,transparent); outline-offset:-1px; }

@media (max-width:1200px) {
    .mailbox-columns,
    .mailbox-table .message-row {
        grid-template-columns:64px minmax(115px,.75fr) minmax(180px,2fr) 70px 78px 40px!important;
    }
    .mailbox-columns .assignment-mini,
    .mailbox-columns .mail-assigned-header { display:none; }
}

@media (max-width:900px) {
    .all-inbox-columns,
    .all-inbox-table .message-row {
        grid-template-columns:6px 42px 120px minmax(190px,1fr) 70px 78px!important;
    }
    .all-inbox-columns > :nth-child(6),
    .all-inbox-table .message-row > :nth-child(6) { display:none; }
}
@media (max-width:900px) {
    .all-inbox-panel > .mail-table-header > :nth-child(7) { display:flex; }
    .all-inbox-table .message-row > :nth-child(7) { display:block; }
}


/* v1.4.0 - assignment workflow dashboard -------------------------------- */
.assigned-work-page { height:calc(100vh - 68px); min-height:0; display:flex; flex-direction:column; overflow:hidden; }
.assigned-work-heading { flex:0 0 auto; }
.assigned-summary-grid { flex:0 0 auto; }
.workflow-summary-card { appearance:none; text-align:left; color:inherit; cursor:pointer; transition:border-color .14s ease,background .14s ease,transform .14s ease; }
.workflow-summary-card:hover,.workflow-summary-card.active { border-color:color-mix(in srgb,var(--accent) 46%,var(--border)); background:color-mix(in srgb,var(--accent) 7%,var(--panel)); }
.workflow-summary-card:active { transform:translateY(1px); }
.assigned-work-panel { min-height:0; flex:1 1 auto; display:flex; flex-direction:column; overflow:hidden; }
.assigned-work-toolbar { flex:0 0 auto; min-height:52px; display:flex; align-items:center; gap:10px; padding:8px 12px; border-bottom:1px solid var(--border); }
.assigned-view-tabs { display:flex; gap:4px; padding:3px; border:1px solid var(--border); border-radius:10px; background:var(--panel-2); }
.assigned-view-tabs button { min-height:31px; border:0; border-radius:7px; background:transparent; color:var(--muted); padding:0 11px; font-size:11.5px; cursor:pointer; }
.assigned-view-tabs button:hover { color:var(--text); }
.assigned-view-tabs button.active { color:var(--text); background:color-mix(in srgb,var(--accent) 13%,var(--panel)); box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 30%,var(--border)); }
.assigned-filter-select { height:38px; min-width:146px; border:1px solid var(--border); border-radius:9px; background:var(--panel-2); color:var(--text); padding:0 9px; outline:none; }
.assigned-search-box { margin-left:auto; min-width:260px; max-width:440px; flex:1 1 360px; height:38px; display:flex; align-items:center; gap:7px; padding:0 9px; border:1px solid var(--border); border-radius:9px; background:var(--panel-2); }
.assigned-search-box > .ui-icon { width:15px; height:15px; color:var(--muted); flex:0 0 auto; }
.assigned-search-box input { min-width:0; flex:1; border:0; outline:0; background:transparent; color:var(--text); font-size:12px; }
.assigned-search-box button { width:26px; height:26px; display:grid; place-items:center; border:0; background:transparent; color:var(--muted); border-radius:6px; cursor:pointer; }
.assigned-search-box button:hover { color:var(--text); background:var(--hover); }
.assigned-search-box button .ui-icon { width:13px; height:13px; }
.assigned-work-columns,.assigned-work-row { grid-template-columns:40px minmax(130px,.85fr) minmax(280px,2.1fr) minmax(130px,.85fr) 142px 142px 44px!important; }
.assigned-work-columns { flex:0 0 auto; min-height:35px; display:grid; align-items:center; gap:0; padding:0 10px; border-bottom:1px solid var(--border); color:var(--muted); font-size:10.5px; font-weight:650; }
.assigned-work-columns > div { min-width:0; padding:0 8px; }
.workflow-indicator-head { display:grid; place-items:center; padding:0!important; }
.workflow-indicator-head .ui-icon { width:14px; height:14px; }
.assigned-work-table { min-height:0; flex:1 1 auto; overflow:auto; overscroll-behavior:contain; }
.assigned-work-row { min-height:52px; cursor:pointer; }
.assigned-work-row:focus-visible { outline:1px solid color-mix(in srgb,var(--accent) 70%,transparent); outline-offset:-1px; }
.workflow-indicators { display:grid; place-items:center; }
.workflow-check { width:25px; height:25px; display:grid; place-items:center; border-radius:7px; }
.workflow-check .ui-icon { width:15px; height:15px; }
.workflow-check.completed { color:#45cf7f; background:color-mix(in srgb,#45cf7f 9%,transparent); }
.workflow-check.replied { color:#77a7ff; background:color-mix(in srgb,#77a7ff 9%,transparent); }
.assigned-mailbox { min-width:0; display:flex; align-items:center; gap:7px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--muted); font-size:11px; }
.assigned-mailbox-color { width:4px; height:27px; flex:0 0 auto; border-radius:4px; }
.assigned-status-cell { padding-right:6px; }
.work-status-select { width:100%; height:31px; border:1px solid var(--border); border-radius:8px; background:var(--panel-2); color:var(--text); padding:0 7px; font-size:10.5px; outline:none; cursor:pointer; }
.work-status-select:focus { border-color:var(--accent); }
.work-status-select.status-1 { color:#9eb5d8; }
.work-status-select.status-2 { color:#b89cff; }
.work-status-select.status-3 { color:#e3b956; }
.work-status-select.status-4 { color:#57d79b; }
.assigned-due { text-align:right; color:var(--muted); font-size:10.5px; white-space:nowrap; }
.assigned-due.overdue { color:#ff7878; font-weight:700; }
.assigned-due.completed { color:#59c98a; }
.assigned-row-actions { display:grid; place-items:center; }
.assigned-reopen-button { width:36px; height:36px; display:grid; place-items:center; border:1px solid var(--border); border-radius:9px; color:var(--muted); background:transparent; cursor:pointer; }
.assigned-reopen-button:hover { color:var(--text); background:var(--panel-2); border-color:color-mix(in srgb,var(--accent) 35%,var(--border)); }
.assigned-reopen-button .ui-icon { width:17px; height:17px; }
.workflow-completed-row { opacity:.78; }
.workflow-completed-row:hover { opacity:1; }
.workflow-overdue-row { box-shadow:inset 3px 0 0 color-mix(in srgb,#ff6f6f 74%,transparent); }
@media(max-width:1180px){
  .assigned-work-columns,.assigned-work-row { grid-template-columns:38px minmax(120px,.8fr) minmax(240px,2fr) 132px 132px 42px!important; }
  .assigned-work-columns > div:nth-child(4),.assigned-work-row > .assigned-mailbox { display:none; }
}
@media(max-width:850px){
  .assigned-work-toolbar { flex-wrap:wrap; }
  .assigned-search-box { min-width:100%; order:3; }
  .assigned-work-columns,.assigned-work-row { grid-template-columns:34px minmax(110px,.75fr) minmax(210px,2fr) 120px 42px!important; }
  .assigned-work-columns > div:nth-child(6),.assigned-work-row > .assigned-due { display:none; }
}

/* v1.4.1 - central assignment management -------------------------------- */
.all-assignments-page { height:calc(100vh - 68px); min-height:0; display:flex; flex-direction:column; overflow:hidden; }
.all-assignments-panel { min-height:0; flex:1 1 auto; display:flex; flex-direction:column; overflow:hidden; }
.all-assignments-toolbar { flex:0 0 auto; min-height:54px; display:flex; align-items:center; gap:8px; padding:8px 12px; border-bottom:1px solid var(--border); }
.all-assignment-search { min-width:260px; }
.all-assignments-columns,.all-assignment-row { grid-template-columns:38px minmax(142px,.9fr) minmax(135px,.9fr) minmax(245px,1.8fr) minmax(110px,.7fr) 128px 132px 84px!important; }
.all-assignments-columns { flex:0 0 auto; min-height:35px; display:grid; align-items:center; padding:0 10px; border-bottom:1px solid var(--border); color:var(--muted); font-size:10.5px; font-weight:650; }
.all-assignments-columns > div { min-width:0; padding:0 7px; }
.all-assignments-table { min-height:0; flex:1 1 auto; overflow:auto; overscroll-behavior:contain; }
.all-assignment-row { min-height:56px; cursor:default; }
.all-assignment-row:hover { background:var(--hover); }
.assignment-user-cell { min-width:0; display:flex; flex-direction:column; gap:3px; padding-right:7px; }
.assignment-user-select { min-width:0; width:100%; height:29px; border:1px solid var(--border); border-radius:7px; background:var(--panel-2); color:var(--text); padding:0 6px; font-size:10.5px; outline:none; cursor:pointer; }
.assignment-user-select:focus { border-color:var(--accent); }
.assignment-audit-mini { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--muted); font-size:9.5px; }
.assignment-due-editor { padding-right:6px; }
.assignment-due-editor input { width:100%; min-width:0; height:31px; border:1px solid var(--border); border-radius:8px; background:var(--panel-2); color:var(--muted); padding:0 6px; font-size:9.8px; outline:none; color-scheme:dark; }
body.light .assignment-due-editor input { color-scheme:light; }
.assignment-due-editor input:focus { border-color:var(--accent); color:var(--text); }
.assignment-due-editor.overdue input { color:#ff7878; border-color:color-mix(in srgb,#ff7878 45%,var(--border)); }
.assignment-due-editor.completed input { color:#59c98a; }
.all-assignment-actions { display:flex; align-items:center; justify-content:flex-end; gap:5px; }
.all-assignment-actions .assigned-reopen-button,.all-assignment-actions .assigned-complete-button { width:34px; height:34px; }
.assignment-history-button { color:var(--accent); }
.assignment-admin-right { margin-top:10px; padding:9px 10px; border:1px solid var(--border); border-radius:9px; background:var(--panel-2); align-items:center; }
.assignment-admin-right .inline-note { margin-left:auto; }
.assignment-history-backdrop { position:fixed; inset:0; z-index:950; background:rgba(0,0,0,.48); }
.assignment-history-dialog { position:fixed; z-index:951; left:50%; top:50%; transform:translate(-50%,-50%); width:min(650px,calc(100vw - 36px)); max-height:min(720px,calc(100vh - 50px)); display:flex; flex-direction:column; border:1px solid var(--border); border-radius:14px; background:var(--panel); box-shadow:0 24px 70px rgba(0,0,0,.45); overflow:hidden; }
.assignment-history-dialog > header { min-height:64px; display:flex; align-items:center; gap:12px; padding:10px 14px; border-bottom:1px solid var(--border); }
.assignment-history-dialog > header > div { min-width:0; display:flex; flex-direction:column; gap:3px; }
.assignment-history-dialog > header strong { font-size:14px; }
.assignment-history-dialog > header span { color:var(--muted); font-size:11px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.assignment-history-dialog > header button { margin-left:auto; width:34px; height:34px; display:grid; place-items:center; border:1px solid var(--border); border-radius:8px; background:transparent; color:var(--muted); cursor:pointer; }
.assignment-history-body { min-height:120px; overflow:auto; padding:10px 14px 14px; }
.assignment-history-entry { display:grid; grid-template-columns:12px minmax(0,1fr) 126px; gap:10px; align-items:start; padding:10px 0; border-bottom:1px solid color-mix(in srgb,var(--border) 75%,transparent); }
.assignment-history-entry:last-child { border-bottom:0; }
.assignment-history-dot { width:8px; height:8px; margin-top:5px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent); }
.assignment-history-entry > div { min-width:0; display:flex; flex-direction:column; gap:3px; }
.assignment-history-entry strong { font-size:11.5px; }
.assignment-history-entry span,.assignment-history-entry time { color:var(--muted); font-size:10px; }
.assignment-history-entry time { text-align:right; white-space:nowrap; }
@media(max-width:1450px){
  .all-assignments-columns,.all-assignment-row { grid-template-columns:36px minmax(132px,.9fr) minmax(128px,.85fr) minmax(220px,1.7fr) 122px 124px 78px!important; }
  .all-assignments-columns > div:nth-child(5),.all-assignment-row > .assigned-mailbox { display:none; }
  .all-assignments-toolbar { flex-wrap:wrap; }
  .all-assignment-search { flex:1 1 320px; }
}
@media(max-width:1050px){
  .all-assignments-columns,.all-assignment-row { grid-template-columns:34px minmax(125px,.9fr) minmax(200px,1.7fr) 118px 122px 76px!important; }
  .all-assignments-columns > div:nth-child(3),.all-assignment-row > .sender { display:none; }
}

/* v1.4.2 - standardized Administration workspace + storage/archive */
.admin-tabs-shell { background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 88%,transparent),var(--bg)); }
.admin-heading-compact h1 { letter-spacing:-.02em; }
.admin-heading-compact p { color:var(--muted); margin-top:4px; }
.admin-tabbar { gap:7px; background:color-mix(in srgb,var(--panel) 82%,transparent); padding-top:2px; }
.admin-tab-button { border-color:color-mix(in srgb,var(--border) 65%,transparent); background:color-mix(in srgb,var(--panel-2) 45%,transparent); }
.admin-tab-button:hover { border-color:color-mix(in srgb,var(--accent) 24%,var(--border)); }
.admin-tab-button.active { box-shadow:inset 0 -2px 0 var(--accent),0 4px 18px rgba(0,0,0,.08); }
.admin-tab-content > .panel,.admin-mailbox-layout-tab > .panel,.admin-rights-layout > .panel { border-radius:13px; box-shadow:0 8px 26px rgba(0,0,0,.055); }
.admin-summary-grid-modern { grid-template-columns:repeat(5,minmax(130px,1fr)); }
.admin-kpi-card { position:relative; overflow:hidden; min-height:92px; display:flex; flex-direction:column; justify-content:center; gap:3px; }
.admin-kpi-card::after { content:""; position:absolute; inset:auto 0 0 0; height:2px; background:color-mix(in srgb,var(--accent) 52%,transparent); opacity:.42; }
.admin-kpi-card > span { font-size:10.5px; text-transform:uppercase; letter-spacing:.055em; color:var(--muted); }
.admin-kpi-card > strong { font-size:21px; letter-spacing:-.02em; }
.admin-kpi-card > small { color:var(--muted); font-size:10px; }
.storage-kpi::after { opacity:.7; }

.admin-storage-tab { max-width:1500px; margin:0 auto; width:100%; }
.admin-storage-hero { margin:0 30px 18px; padding:20px 22px; border:1px solid var(--border); border-radius:14px; background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 8%,var(--panel)),var(--panel)); display:flex; justify-content:space-between; align-items:center; gap:24px; }
.admin-storage-hero h2 { margin:3px 0 6px; font-size:20px; letter-spacing:-.02em; }
.admin-storage-hero p { margin:0; color:var(--muted); max-width:820px; line-height:1.55; }
.admin-section-eyebrow { font-size:9.5px; font-weight:800; letter-spacing:.13em; color:var(--accent); }
.admin-refresh-button { flex:0 0 auto; }
.storage-summary-grid { grid-template-columns:repeat(4,minmax(150px,1fr)); }
.storage-control-panel,.storage-table-panel { overflow:hidden; }
.storage-control-row { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:18px 20px 14px; }
.storage-control-row .panel-title { padding:0; }
.storage-control-row .settings-help { margin:6px 0 0; max-width:760px; }
.storage-archive-controls { display:flex; align-items:flex-end; gap:10px; flex:0 0 auto; }
.storage-archive-controls label { display:flex; flex-direction:column; gap:6px; color:var(--muted); font-size:10px; }
.storage-archive-controls select { height:39px; min-width:160px; border:1px solid var(--border); border-radius:8px; background:var(--panel-2); color:var(--text); padding:0 10px; }
.storage-safe-note { margin:0 20px 18px; padding:10px 12px; border:1px solid color-mix(in srgb,#48b879 36%,var(--border)); background:color-mix(in srgb,#48b879 7%,var(--panel-2)); border-radius:9px; color:var(--muted); display:flex; align-items:flex-start; gap:9px; font-size:10.5px; line-height:1.5; }
.storage-safe-note .ui-icon { color:#62c98d; width:17px; height:17px; margin-top:1px; flex:0 0 auto; }
.storage-table-head { padding:17px 20px 12px; display:flex; align-items:center; justify-content:space-between; gap:16px; border-bottom:1px solid var(--border); }
.storage-table-head .panel-title { padding:0; }
.storage-table-head small { display:block; color:var(--muted); margin-top:5px; font-size:10px; }
.storage-table-head > strong { font-size:16px; white-space:nowrap; }
.storage-table-scroll { max-height:calc(100vh - 510px); min-height:250px; }
.storage-table { width:100%; border-collapse:collapse; }
.storage-table th,.storage-table td { padding:10px 12px; vertical-align:middle; white-space:nowrap; }
.storage-table th:first-child,.storage-table td:first-child { min-width:250px; }
.storage-mailbox-cell { display:flex; align-items:stretch; gap:10px; min-width:0; }
.storage-mailbox-mark { width:4px; border-radius:3px; background:var(--mailbox-color,var(--accent)); flex:0 0 4px; }
.storage-mailbox-cell > span:last-child { display:flex; flex-direction:column; min-width:0; gap:2px; }
.storage-mailbox-cell strong { overflow:hidden; text-overflow:ellipsis; font-size:11.5px; }
.storage-mailbox-cell small { color:var(--muted); font-size:9.5px; overflow:hidden; text-overflow:ellipsis; }
.storage-size,.storage-total { font-variant-numeric:tabular-nums; }
.storage-total { color:var(--text); }
.storage-share { display:grid; grid-template-columns:74px 42px; align-items:center; gap:7px; }
.storage-share-track { height:5px; border-radius:99px; overflow:hidden; background:var(--panel-3); }
.storage-share-track span { display:block; height:100%; min-width:2px; background:var(--accent); border-radius:inherit; }
.storage-share small { color:var(--muted); font-size:9.5px; font-variant-numeric:tabular-nums; text-align:right; }
.storage-actions { text-align:right; }
.storage-actions .secondary-button { min-height:32px; padding:6px 9px; font-size:10px; }
.storage-actions .ui-icon { width:14px; height:14px; }

/* Labels: compact, perfectly aligned columns. Name input is intentionally ~50% narrower. */
.admin-labels-grid { padding-top:4px; }
.category-settings-row { grid-template-columns:220px 118px 118px minmax(150px,220px) minmax(105px,auto); column-gap:14px; }
.category-settings-header { padding-top:5px; padding-bottom:7px; color:var(--muted); font-size:9.5px; font-weight:750; text-transform:uppercase; letter-spacing:.055em; background:color-mix(in srgb,var(--panel-2) 56%,transparent); border-radius:7px 7px 0 0; }
.category-settings-header > span { padding-left:1px; }
.category-name-input { width:220px; max-width:220px; }
.category-color-cell { width:118px; display:grid!important; grid-template-columns:34px 1fr; align-items:center; gap:7px!important; }
.category-color-cell code { font-size:9px; color:var(--muted); background:transparent; padding:0; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; }
.category-settings-row input[type=color] { width:34px; height:29px; padding:0; }
.category-preview { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.category-new-row { margin:0; padding:10px 4px; border-top:1px solid var(--border); border-bottom:0; background:color-mix(in srgb,var(--accent) 3%,transparent); }
.category-settings-actions { justify-content:flex-start; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }

@media(max-width:1250px){
  .admin-summary-grid-modern { grid-template-columns:repeat(3,minmax(140px,1fr)); }
  .category-settings-row { grid-template-columns:190px 105px 105px minmax(130px,1fr) auto; gap:9px; }
  .category-name-input { width:190px; max-width:190px; }
  .category-color-cell { width:105px; }
}
@media(max-width:900px){
  .storage-summary-grid { grid-template-columns:repeat(2,minmax(140px,1fr)); }
  .storage-control-row,.admin-storage-hero { align-items:stretch; flex-direction:column; }
  .storage-archive-controls { align-items:stretch; flex-wrap:wrap; }
  .storage-table-scroll { max-height:none; }
  .category-settings-header { display:none; }
  .category-settings-row { grid-template-columns:1fr 1fr; }
  .category-name-input { width:100%; max-width:none; grid-column:1/-1; }
  .category-preview { grid-column:1/-1; }
}
@media(max-width:760px){
  .admin-storage-hero { margin-left:14px; margin-right:14px; }
  .admin-summary-grid-modern,.storage-summary-grid { grid-template-columns:1fr 1fr; }
}
.admin-mailbox-row .mailbox-list-protocol { display:flex; flex-direction:column; align-items:flex-end; gap:2px; }
.admin-mailbox-row .mailbox-list-protocol strong { font-size:9.5px; font-weight:650; color:var(--muted); }
.admin-mailbox-row .mailbox-list-protocol small { font-size:9px; color:var(--muted); font-variant-numeric:tabular-nums; }

/* v1.4.2 FIX2 - cross-browser standardized scroll behavior -----------------
   Every full-height workspace owns a bounded scrolling surface. Scrollbars use
   overflow:auto, so they appear only when the content is larger than the area. */
html, body {
    width: 100%;
    height: 100%;
    min-height: 100%;
    overflow: hidden;
}
.app-shell {
    height: 100vh;
    height: 100dvh;
    min-height: 0;
}
.main-shell {
    height: 100%;
    min-height: 0;
    overflow: hidden;
}
.content-shell {
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    overflow-x: auto;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

/* Ordinary long pages: Settings and per-mailbox Settings now always have
   their own vertical scrolling area instead of depending on document scroll. */
.page-scroll-surface,
.settings-page,
.mailbox-settings-page {
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

/* Workspaces already have their own internal scrolling lists. Tie their outer
   height to content-shell rather than recalculating the viewport/topbar height. */
.mailbox-workspace,
.all-inbox-page,
.assigned-work-page,
.all-assignments-page {
    height: 100%;
    min-height: 0;
}
.directory-page,
.rules-page,
.compose-page {
    height: 100%;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

/* Tables/lists that can grow are always independently reachable. */
.preview-pane,
.mailbox-table-scroll,
.all-inbox-table,
.assigned-work-table,
.all-assignments-table,
.search-results-table,
.admin-tab-body,
.admin-list-scroll,
.admin-editor-scroll,
.admin-table-scroll,
.admin-table-wrap,
.permission-editor-list,
.signature-list,
.signature-rich-editor,
.compose-editor,
.compose-attachments,
.modal-card,
.rule-editor-body,
.assignment-history-body,
.message-window-body,
.recipient-suggestions,
.context-submenu-panel,
.diagnostic-log {
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

/* Cross-browser scrollbar policy. Chromium/Chrome/Edge/Brave/Safari use the
   WebKit pseudo-elements below; Firefox keeps its native scrollbar. */
:where(
    .sidebar,
    .content-shell,
    .admin-tabbar,
    .page-scroll-surface,
    .directory-page,
    .rules-page,
    .compose-page,
    .preview-pane,
    .mailbox-table-scroll,
    .all-inbox-table,
    .assigned-work-table,
    .all-assignments-table,
    .search-results-table,
    .admin-tab-body,
    .admin-list-scroll,
    .admin-editor-scroll,
    .admin-table-scroll,
    .admin-table-wrap,
    .permission-editor-list,
    .signature-list,
    .signature-rich-editor,
    .compose-editor,
    .compose-attachments,
    .modal-card,
    .rule-editor-body,
    .assignment-history-body,
    .message-window-body,
    .recipient-suggestions,
    .context-submenu-panel,
    .diagnostic-log
) {
    /* Keep standards properties at auto on Chromium. Newer Chrome supports
       scrollbar-width/color and a non-auto value suppresses ::-webkit-scrollbar
       styling, which made the bar effectively disappear on some installations. */
    scrollbar-width: auto !important;
    scrollbar-color: auto !important;
}
:where(
    .sidebar,
    .content-shell,
    .admin-tabbar,
    .page-scroll-surface,
    .directory-page,
    .rules-page,
    .compose-page,
    .preview-pane,
    .mailbox-table-scroll,
    .all-inbox-table,
    .assigned-work-table,
    .all-assignments-table,
    .search-results-table,
    .admin-tab-body,
    .admin-list-scroll,
    .admin-editor-scroll,
    .admin-table-scroll,
    .admin-table-wrap,
    .permission-editor-list,
    .signature-list,
    .signature-rich-editor,
    .compose-editor,
    .compose-attachments,
    .modal-card,
    .rule-editor-body,
    .assignment-history-body,
    .message-window-body,
    .recipient-suggestions,
    .context-submenu-panel,
    .diagnostic-log
)::-webkit-scrollbar {
    width: 12px;
    height: 12px;
}
:where(
    .sidebar,
    .content-shell,
    .admin-tabbar,
    .page-scroll-surface,
    .directory-page,
    .rules-page,
    .compose-page,
    .preview-pane,
    .mailbox-table-scroll,
    .all-inbox-table,
    .assigned-work-table,
    .all-assignments-table,
    .search-results-table,
    .admin-tab-body,
    .admin-list-scroll,
    .admin-editor-scroll,
    .admin-table-scroll,
    .admin-table-wrap,
    .permission-editor-list,
    .signature-list,
    .signature-rich-editor,
    .compose-editor,
    .compose-attachments,
    .modal-card,
    .rule-editor-body,
    .assignment-history-body,
    .message-window-body,
    .recipient-suggestions,
    .context-submenu-panel,
    .diagnostic-log
)::-webkit-scrollbar-track {
    border-radius: 999px;
    background: var(--scroll-track) !important;
}
:where(
    .sidebar,
    .content-shell,
    .admin-tabbar,
    .page-scroll-surface,
    .directory-page,
    .rules-page,
    .compose-page,
    .preview-pane,
    .mailbox-table-scroll,
    .all-inbox-table,
    .assigned-work-table,
    .all-assignments-table,
    .search-results-table,
    .admin-tab-body,
    .admin-list-scroll,
    .admin-editor-scroll,
    .admin-table-scroll,
    .admin-table-wrap,
    .permission-editor-list,
    .signature-list,
    .signature-rich-editor,
    .compose-editor,
    .compose-attachments,
    .modal-card,
    .rule-editor-body,
    .assignment-history-body,
    .message-window-body,
    .recipient-suggestions,
    .context-submenu-panel,
    .diagnostic-log
)::-webkit-scrollbar-thumb {
    min-height: 38px;
    min-width: 38px;
    background: var(--scroll-thumb) !important;
    border: 2px solid var(--scroll-track) !important;
    border-radius: 999px;
}
:where(
    .sidebar,
    .content-shell,
    .admin-tabbar,
    .page-scroll-surface,
    .directory-page,
    .rules-page,
    .compose-page,
    .preview-pane,
    .mailbox-table-scroll,
    .all-inbox-table,
    .assigned-work-table,
    .all-assignments-table,
    .search-results-table,
    .admin-tab-body,
    .admin-list-scroll,
    .admin-editor-scroll,
    .admin-table-scroll,
    .admin-table-wrap,
    .permission-editor-list,
    .signature-list,
    .signature-rich-editor,
    .compose-editor,
    .compose-attachments,
    .modal-card,
    .rule-editor-body,
    .assignment-history-body,
    .message-window-body,
    .recipient-suggestions,
    .context-submenu-panel,
    .diagnostic-log
)::-webkit-scrollbar-thumb:hover {
    background: var(--scroll-thumb-hover) !important;
}
:where(
    .sidebar,
    .content-shell,
    .admin-tabbar,
    .page-scroll-surface,
    .directory-page,
    .rules-page,
    .compose-page,
    .preview-pane,
    .mailbox-table-scroll,
    .all-inbox-table,
    .assigned-work-table,
    .all-assignments-table,
    .search-results-table,
    .admin-tab-body,
    .admin-list-scroll,
    .admin-editor-scroll,
    .admin-table-scroll,
    .admin-table-wrap,
    .permission-editor-list,
    .signature-list,
    .signature-rich-editor,
    .compose-editor,
    .compose-attachments,
    .modal-card,
    .rule-editor-body,
    .assignment-history-body,
    .message-window-body,
    .recipient-suggestions,
    .context-submenu-panel,
    .diagnostic-log
)::-webkit-scrollbar-corner {
    background: var(--scroll-track) !important;
}

/* Firefox keeps its native cross-platform scrollbar. It remains visible and
   functional without using the Chromium-specific pseudo-elements. */


/* v1.4.2 FIX4 - Standardne oznake: popolnoma poravnan levi rob + levi Shrani */
.labels-panel > .panel-title {
    padding-left: 18px;
    padding-right: 18px;
}
.labels-panel > .settings-help {
    margin-left: 0;
    margin-right: 0;
    padding-left: 18px;
    padding-right: 18px;
}
.labels-panel > .category-settings-list,
.labels-panel .admin-labels-grid {
    margin-left: 18px;
    margin-right: 18px;
    width: auto;
}
.labels-panel .category-settings-row {
    padding-left: 0;
    padding-right: 0;
}
.labels-panel .category-settings-header > span {
    padding-left: 0;
}
.labels-panel .category-new-row {
    margin-left: 0;
    margin-right: 0;
}
.category-new-row .category-add-button {
    justify-self: start;
    width: auto;
    min-width: 108px;
    max-width: 132px;
    white-space: nowrap;
}
.category-save-all-row {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    margin: 12px 18px 16px 32px;
    padding-top: 2px;
}
.category-save-all-button {
    width: auto;
    min-width: 158px;
    white-space: nowrap;
}
@media(max-width:900px) {
    .labels-panel > .category-settings-list,
    .labels-panel .admin-labels-grid { margin-left: 14px; margin-right: 14px; }
    .labels-panel > .settings-help,
    .labels-panel > .panel-title { padding-left: 14px; padding-right: 14px; }
    .category-save-all-row { margin-left: 28px; margin-right: 14px; }
    .category-new-row .category-add-button { justify-self: start; }
}


/* v1.4.2 FIX5 - nested right-click menus never leave the viewport.
   JS calculates only the required vertical correction from the real rendered
   submenu size; horizontal left/right flipping remains handled by the root menu. */
.context-submenu-panel {
    transform: translateY(var(--context-submenu-shift-y, 0px));
    z-index: 1004;
}

/* v1.4.2 FIX6 - unified modern application header --------------------------
   Brand and global header now share one baseline. Search is centered, while
   Settings/Admin/Theme/Logout live in one compact account menu on the right. */
:root { --app-header-height: 68px; }
.brand,
.main-shell { min-height: 0; }
.brand {
    height: var(--app-header-height) !important;
    min-height: var(--app-header-height);
    padding: 0 18px;
    border-bottom: 1px solid var(--border);
}
.brand-mark {
    width: 38px;
    height: 38px;
    border-radius: 11px;
}
.brand-mark .ui-icon { width: 21px; height: 21px; }
.brand-copy { min-width: 0; }
.brand-title { line-height: 1.1; }
.brand-subtitle { line-height: 1.15; margin-top: 4px; }
.main-shell {
    grid-template-rows: var(--app-header-height) minmax(0,1fr) !important;
}
.global-topbar {
    position: relative;
    z-index: 120;
    min-height: var(--app-header-height);
    display: grid !important;
    grid-template-columns: minmax(220px,1fr) minmax(320px,680px) minmax(220px,1fr) !important;
    align-items: center;
    gap: 18px;
    padding: 0 18px !important;
    background: var(--panel);
    border-bottom: 1px solid var(--border);
    overflow: visible;
}
.global-primary-actions {
    min-width: 0;
    justify-self: start;
    display: flex;
    align-items: center;
    gap: 9px;
}
.global-primary-actions .topbar-new {
    min-width: 112px;
    justify-content: center;
    background: var(--accent);
    border-color: transparent;
    color: #fff;
    font-weight: 700;
    box-shadow: 0 7px 18px color-mix(in srgb,var(--accent) 22%,transparent);
}
.global-primary-actions .topbar-new:hover { background: var(--accent-hover); }
.global-search-slot {
    position: relative;
    width: 100%;
    min-width: 0;
    justify-self: center;
}
.global-search-slot .topbar-search {
    width: 100%;
    max-width: none;
    height: 42px;
    padding-right: 67px;
    border-radius: 12px;
    background: color-mix(in srgb,var(--panel-2) 94%,transparent);
    border-color: color-mix(in srgb,var(--border) 86%,var(--accent) 14%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.015);
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.global-search-slot .topbar-search:focus-within {
    border-color: color-mix(in srgb,var(--accent) 58%,var(--border));
    background: var(--panel-2);
    box-shadow: 0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent);
}
.global-search-hint {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 24px;
    min-width: 47px;
    padding: 0 7px;
    border: 1px solid var(--border);
    border-bottom-color: color-mix(in srgb,var(--border) 70%,black 30%);
    border-radius: 6px;
    background: var(--panel-3);
    color: var(--muted);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .02em;
    pointer-events: none;
}
.global-account-actions {
    justify-self: end;
    margin-left: 0 !important;
    min-width: 0;
}
.account-menu {
    position: relative;
    margin: 0;
}
.account-menu > summary { list-style: none; }
.account-menu > summary::-webkit-details-marker { display: none; }
.account-menu-trigger {
    height: 42px;
    min-width: 172px;
    max-width: 230px;
    display: grid;
    grid-template-columns: 30px minmax(0,1fr) 15px;
    align-items: center;
    gap: 9px;
    padding: 0 10px 0 7px;
    border: 1px solid transparent;
    border-radius: 11px;
    cursor: pointer;
    color: var(--text);
    user-select: none;
    transition: background .14s ease,border-color .14s ease;
}
.account-menu-trigger:hover,
.account-menu[open] .account-menu-trigger {
    background: var(--panel-2);
    border-color: var(--border);
}
.account-avatar {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: color-mix(in srgb,var(--accent) 24%,var(--panel-3));
    color: color-mix(in srgb,var(--accent) 78%,white 22%);
    border: 1px solid color-mix(in srgb,var(--accent) 40%,var(--border));
    font-size: 11px;
    font-weight: 800;
}
.account-avatar.large { width: 38px; height: 38px; font-size: 13px; }
.account-trigger-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}
.account-trigger-copy strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12px;
    font-weight: 720;
}
.account-trigger-copy small { color: var(--muted); font-size: 9.5px; margin-top: 2px; }
.account-chevron { width: 14px !important; height: 14px !important; color: var(--muted); transition: transform .16s ease; }
.account-menu[open] .account-chevron { transform: rotate(180deg); }
.account-menu-panel {
    position: absolute;
    top: calc(100% + 9px);
    right: 0;
    width: 286px;
    padding: 9px;
    border: 1px solid var(--border);
    border-radius: 13px;
    background: color-mix(in srgb,var(--panel) 97%,transparent);
    box-shadow: 0 18px 48px rgba(0,0,0,.36);
    z-index: 1000;
    overflow: hidden;
}
html[data-theme="light"] .account-menu-panel { box-shadow: 0 18px 44px rgba(31,49,72,.18); }
.account-menu-heading {
    display: grid;
    grid-template-columns: 38px minmax(0,1fr);
    align-items: center;
    gap: 10px;
    padding: 8px 9px 9px;
}
.account-menu-heading > div { min-width: 0; display: flex; flex-direction: column; }
.account-menu-heading strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.account-menu-heading span:not(.account-avatar) { margin-top: 3px; color: var(--muted); font-size: 10px; }
.account-menu-separator { height: 1px; background: var(--border); margin: 5px 3px; }
.account-menu-item,
.account-theme-row {
    width: 100%;
    min-height: 48px;
    display: grid;
    grid-template-columns: 28px minmax(0,1fr);
    align-items: center;
    gap: 8px;
    padding: 7px 9px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--text);
    text-align: left;
}
.account-menu-item { cursor: pointer; }
.account-menu-item:hover { background: var(--panel-2); }
.account-menu-item > .ui-icon { width: 17px; height: 17px; color: var(--muted); justify-self: center; }
.account-menu-item > span,
.account-theme-label > span:last-child {
    min-width: 0;
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}
.account-menu-item strong,
.account-theme-label strong { font-size: 11.5px; font-weight: 690; }
.account-menu-item small,
.account-theme-label small { margin-top: 3px; color: var(--muted); font-size: 9.5px; }
.account-theme-row {
    grid-template-columns: minmax(0,1fr);
    gap: 7px;
    padding-bottom: 9px;
}
.account-theme-label {
    display: grid;
    grid-template-columns: 28px minmax(0,1fr);
    align-items: center;
    gap: 8px;
}
.theme-symbol { width: 28px; text-align: center; color: var(--muted); font-size: 16px; }
.account-theme-row .theme-select {
    width: 100%;
    height: 34px;
    padding: 0 9px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--panel-2);
    color: var(--text);
    outline: none;
    font-size: 11px;
}
.account-logout-form { margin: 0; }
.account-logout-button { font: inherit; }
.account-logout-button:hover { background: color-mix(in srgb,var(--danger) 10%,var(--panel-2)); }
.account-logout-button > .ui-icon { color: color-mix(in srgb,var(--danger) 72%,var(--muted)); }

@media (max-width: 1180px) {
    .global-topbar {
        grid-template-columns: auto minmax(260px,1fr) auto !important;
        gap: 12px;
    }
    .global-primary-actions .send-receive-button span { display: none; }
    .global-primary-actions .send-receive-button { width: 38px; padding: 0; justify-content: center; }
    .account-menu-trigger { min-width: 42px; width: 42px; padding: 0 5px; grid-template-columns: 30px; }
    .account-trigger-copy,.account-menu-trigger > .account-chevron { display: none; }
}
@media (max-width: 860px) {
    .global-topbar { grid-template-columns: auto minmax(180px,1fr) auto !important; padding: 0 12px !important; }
    .global-primary-actions .topbar-new { min-width: 42px; width: 42px; padding: 0; }
    .global-primary-actions .topbar-new span { display: none; }
    .global-search-hint { display: none; }
    .global-search-slot .topbar-search { padding-right: 8px; }
}
@media (max-width: 760px) {
    :root { --app-header-height: 56px; }
    .global-topbar { grid-template-columns: auto 1fr auto !important; gap: 8px; }
    .global-search-slot { display: none; }
    .account-menu-panel { position: fixed; top: 62px; right: 10px; width: min(286px,calc(100vw - 20px)); }
}


/* v1.4.2 FIX9 - standalone compose window ------------------------------- */
/* A new message opened from the global action uses the same standalone
   window shell as a double-clicked mail: no mailbox tree, no global topbar. */
.compose-window-shell {
    height: 100vh;
    min-height: 0;
    overflow: hidden;
    background: var(--bg);
}
.compose-window-shell .compose-page {
    height: 100vh;
    min-height: 0;
    overflow-y: auto;
    padding-bottom: 22px;
}
.compose-window-shell .compose-header {
    padding-top: 18px;
}


/* v1.4.2 FIX10 - compact standalone compose popup ----------------------- */
/* Popup compose naj skoraj v celoti zapolni okno. */
.compose-window-shell .compose-page {
    height: 100vh;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0 0 8px;
    scrollbar-gutter: auto;
}

.compose-window-shell .compose-header {
    flex: 0 0 auto;
    min-height: 0;
    padding: 10px 12px 8px;
    gap: 12px;
    align-items: center;
}

.compose-window-shell .compose-header h1 {
    margin: 0;
    line-height: 1.15;
}

/* FocusOnNavigate postavi fokus na H1; v popup oknu ne želimo bele
   browser focus obrobe okoli naslova "Novo sporočilo". */
.compose-window-shell .compose-header h1:focus,
.compose-window-shell .compose-header h1:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}

.compose-window-shell .compose-header p {
    margin-top: 3px;
}

.compose-window-shell .compose-card {
    flex: 1 1 auto;
    min-height: 0;
    margin: 0 10px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.compose-window-shell .compose-fields,
.compose-window-shell .compose-toolbar,
.compose-window-shell .compose-attachments,
.compose-window-shell .compose-card > .admin-status {
    flex: 0 0 auto;
}

/* Telo sporočila prevzame ves preostali prostor okna. */
.compose-window-shell .compose-editor:not(.signature-rich-editor) {
    flex: 1 1 auto;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    padding: 12px 16px;
    overflow: auto;
}

/* Pri manjših popupih ohranimo enako gosto postavitev. */
@media (max-width: 760px) {
    .compose-window-shell .compose-header {
        padding: 8px 10px 7px;
    }
    .compose-window-shell .compose-card {
        margin-left: 8px;
        margin-right: 8px;
    }
    .compose-window-shell .compose-page {
        padding-bottom: 8px;
    }
}


/* v1.4.2 FIX11 - compose popup field alignment */
.compose-window-shell .compose-header { padding-top: 8px; }
.compose-window-shell .compose-fields { grid-template-columns: 128px minmax(0,1fr); }
.compose-window-shell .compose-label { padding-left: 8px; padding-right: 10px; }
.compose-window-shell .compose-label-with-toggle { gap:8px; }
.compose-window-shell .compose-select { background-position:right 14px center; }


/* v1.4.2 FIX13 - Admin Phase 2 health dashboard ------------------------- */
.admin-health-hero { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; padding:4px 2px 2px; }
.admin-health-hero h2 { margin:2px 0 4px; font-size:20px; }
.admin-health-hero p { margin:0; color:var(--muted); font-size:11px; }
.admin-health-hero-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.admin-health-summary-grid { grid-template-columns:repeat(6,minmax(125px,1fr)); }
.admin-kpi-card.ok-kpi { border-color:color-mix(in srgb,#57d79b 34%,var(--border)); }
.admin-kpi-card.warning-kpi { border-color:color-mix(in srgb,#e3b956 54%,var(--border)); box-shadow:inset 0 2px 0 color-mix(in srgb,#e3b956 65%,transparent); }
.admin-kpi-card.critical-kpi { border-color:color-mix(in srgb,#ff737c 58%,var(--border)); box-shadow:inset 0 2px 0 color-mix(in srgb,#ff737c 70%,transparent); }
.admin-health-alerts-panel { padding-bottom:8px; }
.admin-health-alert-list { display:grid; gap:6px; padding:0 14px 10px; }
.admin-health-alert { min-height:42px; display:flex; align-items:flex-start; gap:10px; padding:8px 10px; border:1px solid var(--border); border-radius:9px; background:var(--panel-2); }
.admin-health-alert .health-dot { width:8px; height:8px; flex:0 0 8px; border-radius:50%; margin-top:5px; background:var(--muted); }
.admin-health-alert.warning .health-dot { background:#e3b956; box-shadow:0 0 0 3px color-mix(in srgb,#e3b956 16%,transparent); }
.admin-health-alert.critical .health-dot { background:#ff737c; box-shadow:0 0 0 3px color-mix(in srgb,#ff737c 16%,transparent); }
.admin-health-alert > div { min-width:0; display:flex; flex-direction:column; gap:2px; }
.admin-health-alert strong { font-size:11px; }
.admin-health-alert small { color:var(--muted); font-size:10px; line-height:1.35; }
.admin-mailbox-health-panel { overflow:hidden; }
.health-table-toolbar { padding:11px 14px; align-items:flex-end; }
.health-table-toolbar .panel-title { padding:0; margin:0 0 2px; }
.health-table-scroll { max-height:430px; }
.health-table { min-width:1120px; }
.health-table th { white-space:nowrap; }
.health-table td { vertical-align:middle; }
.health-status-pill { display:inline-flex; align-items:center; gap:6px; min-width:70px; height:24px; padding:0 8px; border:1px solid var(--border); border-radius:999px; font-size:9.5px; font-weight:720; white-space:nowrap; }
.health-status-pill > span { width:7px; height:7px; border-radius:50%; background:var(--muted); }
.health-status-pill.ok { color:#67d995; border-color:color-mix(in srgb,#67d995 38%,var(--border)); background:color-mix(in srgb,#67d995 7%,transparent); }
.health-status-pill.ok > span { background:#67d995; }
.health-status-pill.warning { color:#e4bc62; border-color:color-mix(in srgb,#e4bc62 42%,var(--border)); background:color-mix(in srgb,#e4bc62 8%,transparent); }
.health-status-pill.warning > span { background:#e4bc62; }
.health-status-pill.error { color:#ff7f87; border-color:color-mix(in srgb,#ff7f87 42%,var(--border)); background:color-mix(in srgb,#ff7f87 8%,transparent); }
.health-status-pill.error > span { background:#ff7f87; }
.health-status-pill.unknown { color:var(--muted); }
.health-time { display:block; white-space:nowrap; font-size:10.5px; }
.health-subtime { display:block; margin-top:2px; color:var(--muted); font-size:9px; white-space:nowrap; }
.health-result { display:block; max-width:220px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10px; }
.health-result.ok { color:#67d995; }
.health-result.warning { color:#e4bc62; }
.health-result.error { color:#ff7f87; }
.health-result.unknown { color:var(--muted); }
.health-quota-track { width:110px; height:4px; overflow:hidden; margin-top:5px; border-radius:999px; background:var(--panel-3); }
.health-quota-track > span { display:block; height:100%; min-width:0; max-width:100%; border-radius:inherit; background:var(--accent); }
.health-row-warning .health-quota-track > span { background:#e4bc62; }
.health-row-critical .health-quota-track > span { background:#ff737c; }
.health-row-error td:first-child { box-shadow:inset 2px 0 0 color-mix(in srgb,#ff737c 75%,transparent); }
.health-row-warning td:first-child { box-shadow:inset 2px 0 0 color-mix(in srgb,#e4bc62 75%,transparent); }
.health-row-actions { display:flex; align-items:center; gap:4px; white-space:nowrap; }
.health-action-button { min-width:30px; height:28px; display:inline-flex; align-items:center; justify-content:center; gap:4px; padding:0 7px; border:1px solid var(--border); border-radius:7px; background:transparent; color:var(--muted); font-size:9px; font-weight:700; cursor:pointer; }
.health-action-button .ui-icon { width:13px; height:13px; }
.health-action-button:hover:not(:disabled) { color:var(--text); background:var(--panel-2); border-color:color-mix(in srgb,var(--accent) 30%,var(--border)); }
.health-action-button:disabled { opacity:.45; cursor:wait; }
html[data-theme="light"] .health-status-pill.ok { color:#176b3d; }
html[data-theme="light"] .health-status-pill.warning { color:#8a5b00; }
html[data-theme="light"] .health-status-pill.error { color:#b4232f; }
html[data-theme="light"] .health-result.ok { color:#176b3d; }
html[data-theme="light"] .health-result.warning { color:#8a5b00; }
html[data-theme="light"] .health-result.error { color:#b4232f; }
@media(max-width:1200px){ .admin-health-summary-grid { grid-template-columns:repeat(3,minmax(150px,1fr)); } }
@media(max-width:760px){ .admin-health-hero { align-items:stretch; flex-direction:column; } .admin-health-hero-actions { justify-content:flex-start; } .admin-health-summary-grid { grid-template-columns:repeat(2,minmax(130px,1fr)); } }


/* v1.4.2 FIX14 - Phase 3A: nested folder DnD + emoji -------------------- */
.custom-folder-row[draggable="True"],
.custom-folder-row[draggable="true"] { cursor: grab; }
.custom-folder-row.folder-dragging { opacity: .42; cursor: grabbing; }
.folder-tree-drop-active {
    background: color-mix(in srgb,var(--accent) 15%,var(--panel-2)) !important;
    outline: 1px solid color-mix(in srgb,var(--accent) 65%,var(--border));
    outline-offset: -1px;
}
.folder-root-drop-target {
    display: none;
    align-items: center;
    gap: 7px;
    min-height: 30px;
    margin: 5px 3px 3px;
    padding: 5px 8px;
    border: 1px dashed color-mix(in srgb,var(--accent) 52%,var(--border));
    border-radius: 7px;
    color: var(--muted);
    background: color-mix(in srgb,var(--accent) 5%,transparent);
    font-size: 11px;
}
.companymail-folder-dragging .folder-root-drop-target { display:flex; }
.folder-root-drop-target.folder-tree-drop-active { color:var(--text); }
.system-folder-row { --folder-depth:0; }
.system-folder-row .folder-link { min-width:0; }

.rich-emoji-button { font-size:17px !important; line-height:1; }
.rich-emoji-palette-float {
    position:fixed;
    z-index:10020;
    width:292px;
    max-height:min(330px,calc(100vh - 16px));
    overflow:auto;
    padding:9px;
    border:1px solid var(--border);
    border-radius:10px;
    background:var(--panel);
    color:var(--text);
    box-shadow:0 16px 40px rgba(0,0,0,.40);
}
.rich-emoji-palette-title {
    margin:2px 3px 6px;
    color:var(--muted);
    font-size:10px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.05em;
}
.rich-emoji-palette-grid {
    display:grid;
    grid-template-columns:repeat(8,30px);
    gap:3px;
    margin-bottom:9px;
}
.rich-emoji-choice {
    width:30px;
    height:30px;
    display:grid;
    place-items:center;
    border:1px solid transparent;
    border-radius:6px;
    background:transparent;
    font-size:18px;
    cursor:pointer;
    padding:0;
}
.rich-emoji-choice:hover {
    border-color:var(--border);
    background:var(--panel-3);
}

/* v1.4.2 FIX15 - typed emoticon conversion is implemented in mail-ui.js. */


/* v1.4.2 FIX16 / Phase 3 - true cold archive */
.storage-summary-grid { grid-template-columns: repeat(6,minmax(135px,1fr)); }
.storage-cold-size { display:block; margin-top:3px; color:var(--muted); white-space:nowrap; }
.storage-row-actions { display:flex; align-items:center; gap:6px; justify-content:flex-end; }
.cold-archive-note code { color:var(--text); background:var(--panel-3); border:1px solid var(--border); border-radius:5px; padding:2px 5px; }
.cold-archive-badge { display:inline-flex; align-items:center; gap:5px; color:#8fb3ff; border:1px solid color-mix(in srgb,#8fb3ff 48%,var(--border)); background:color-mix(in srgb,#8fb3ff 10%,transparent); border-radius:7px; padding:4px 7px; font-size:10px; font-weight:700; }
html[data-theme="light"] .cold-archive-badge { color:#315f9d; border-color:color-mix(in srgb,#315f9d 45%,var(--border)); background:color-mix(in srgb,#315f9d 8%,white); }
@media(max-width:1250px){.storage-summary-grid{grid-template-columns:repeat(3,minmax(150px,1fr));}.storage-row-actions{flex-direction:column;align-items:stretch;}}
@media(max-width:760px){.storage-summary-grid{grid-template-columns:1fr 1fr;}}


/* v1.4.2 FIX17 - Phase 4 workflow + Phase 5 rules automation ---------------- */
.assignment-team-summary { display:flex; gap:8px; overflow-x:auto; padding:0 0 10px; scrollbar-width:thin; }
.assignment-team-card { flex:0 0 auto; min-width:170px; display:grid; grid-template-columns:1fr auto; gap:3px 12px; align-items:center; padding:9px 11px; border:1px solid var(--border); border-radius:10px; background:var(--panel); color:var(--text); text-align:left; cursor:pointer; }
.assignment-team-card:hover { background:var(--panel-2); border-color:color-mix(in srgb,var(--accent) 30%,var(--border)); }
.assignment-team-card.active { background:color-mix(in srgb,var(--accent) 11%,var(--panel)); border-color:color-mix(in srgb,var(--accent) 48%,var(--border)); box-shadow:inset 3px 0 0 var(--accent); }
.assignment-team-card strong { grid-column:1/-1; font-size:11.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.assignment-team-card span { font-size:9.5px; color:var(--muted); white-space:nowrap; }
.assignment-team-card span b { color:var(--text); }
.assignment-team-card .danger { color:#e68b78; }
.rule-test-result { margin:10px 0; padding:9px 11px; border:1px solid var(--border); border-radius:9px; background:var(--panel-2); font-size:11px; }
.rule-test-result.success { border-color:color-mix(in srgb,#58c58a 42%,var(--border)); }
.rule-test-result.error { border-color:color-mix(in srgb,#df6c73 45%,var(--border)); }
.rule-test-samples { display:grid; gap:5px; margin-top:8px; }
.rule-test-samples > div { display:grid; grid-template-columns:80px 150px minmax(0,1fr); gap:8px; align-items:center; padding-top:5px; border-top:1px solid var(--border); min-width:0; }
.rule-test-samples span,.rule-test-samples strong,.rule-test-samples em { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rule-test-samples span { color:var(--muted); font-size:9.5px; }
.rule-test-samples strong { font-size:10.5px; }
.rule-test-samples em { color:var(--muted); font-style:normal; }
@media(max-width:760px){ .rule-test-samples > div { grid-template-columns:70px minmax(0,1fr); } .rule-test-samples em { grid-column:1/-1; } }


/* v1.4.2 FIX18 - workflow status colors ---------------------------------
   Status is deliberately subtle: a 4px left bar + a light row tint.
   Read/unread typography and user categories remain independent.
   Completed has no row tint because the existing green check is enough. */
:root {
    --workflow-new: #6aaeff;
    --workflow-inprogress: #e8ad4d;
    --workflow-waiting: #b28cff;
    --workflow-overdue: #ff7077;
}
html[data-theme="light"] {
    --workflow-new: #3274bd;
    --workflow-inprogress: #a66508;
    --workflow-waiting: #7551b7;
    --workflow-overdue: #c43e49;
}

.message-row.workflow-new-row {
    background: color-mix(in srgb, var(--workflow-new) 7%, transparent);
    box-shadow: inset 4px 0 0 var(--workflow-new);
}
.message-row.workflow-inprogress-row {
    background: color-mix(in srgb, var(--workflow-inprogress) 8%, transparent);
    box-shadow: inset 4px 0 0 var(--workflow-inprogress);
}
.message-row.workflow-waiting-row {
    background: color-mix(in srgb, var(--workflow-waiting) 7%, transparent);
    box-shadow: inset 4px 0 0 var(--workflow-waiting);
}
.message-row.workflow-overdue-row {
    background: color-mix(in srgb, var(--workflow-overdue) 9%, transparent);
    box-shadow: inset 4px 0 0 var(--workflow-overdue);
}

/* Keep the state visible on hover, just slightly strengthen the tint. */
.message-row.workflow-new-row:hover {
    background: color-mix(in srgb, var(--workflow-new) 11%, var(--panel));
}
.message-row.workflow-inprogress-row:hover {
    background: color-mix(in srgb, var(--workflow-inprogress) 12%, var(--panel));
}
.message-row.workflow-waiting-row:hover {
    background: color-mix(in srgb, var(--workflow-waiting) 11%, var(--panel));
}
.message-row.workflow-overdue-row:hover {
    background: color-mix(in srgb, var(--workflow-overdue) 13%, var(--panel));
}

/* Selected/focused mail remains clearly selected while preserving its status bar. */
.message-row.selectable.selected.workflow-new-row,
.message-row.selectable.focused.workflow-new-row {
    box-shadow: inset 4px 0 0 var(--workflow-new);
}
.message-row.selectable.selected.workflow-inprogress-row,
.message-row.selectable.focused.workflow-inprogress-row {
    box-shadow: inset 4px 0 0 var(--workflow-inprogress);
}
.message-row.selectable.selected.workflow-waiting-row,
.message-row.selectable.focused.workflow-waiting-row {
    box-shadow: inset 4px 0 0 var(--workflow-waiting);
}
.message-row.selectable.selected.workflow-overdue-row,
.message-row.selectable.focused.workflow-overdue-row {
    box-shadow: inset 4px 0 0 var(--workflow-overdue);
}

/* Old completed-row styling is intentionally neutralized: completion is shown
   by the already established green check only. */
.message-row.workflow-completed-row {
    opacity: 1;
    box-shadow: none;
}


/* v1.4.2 FIX19 - one-click self assignment ------------------------------ */
.assignment-mini,
.message-row .assigned {
    min-width: 0;
}

.assignment-name {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.claim-mail-button {
    min-width: 66px;
    height: 26px;
    padding: 0 9px;
    border: 1px solid color-mix(in srgb, var(--accent) 32%, var(--border));
    border-radius: 8px;
    background: transparent;
    color: var(--muted);
    font-size: 10.5px;
    font-weight: 650;
    line-height: 1;
    cursor: pointer;
    transition: background .14s ease, color .14s ease, border-color .14s ease, box-shadow .14s ease, transform .14s ease;
}

.claim-mail-button:hover {
    color: var(--text);
    background: color-mix(in srgb, var(--accent) 10%, var(--panel-2));
    border-color: color-mix(in srgb, var(--accent) 46%, var(--border));
    box-shadow: inset 3px 0 0 color-mix(in srgb, var(--accent) 80%, white 0%);
}

.claim-mail-button:active {
    transform: translateY(1px);
}

.assignment-mini .claim-mail-button,
.message-row .assigned .claim-mail-button {
    margin-left: auto;
}


/* v1.4.2 FIX20 - private/shared mailbox contract ------------------------- */
.mailbox-type-editor {
    margin: 4px 0 14px;
    padding: 12px 14px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: color-mix(in srgb,var(--panel-2) 75%,transparent);
}
.mailbox-type-label { display:block; margin-bottom:8px; color:var(--muted); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.mailbox-type-options { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.mailbox-type-option {
    min-width:0; min-height:60px; display:grid; grid-template-columns:20px 22px minmax(0,1fr); align-items:center; gap:8px;
    padding:9px 10px; border:1px solid var(--border); border-radius:9px; background:transparent; color:var(--muted); cursor:pointer;
    transition:background .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease;
}
.mailbox-type-option:hover { color:var(--text); background:var(--panel-2); border-color:color-mix(in srgb,var(--accent) 28%,var(--border)); }
.mailbox-type-option.active { color:var(--text); background:color-mix(in srgb,var(--accent) 9%,var(--panel-2)); border-color:color-mix(in srgb,var(--accent) 42%,var(--border)); box-shadow:inset 3px 0 0 color-mix(in srgb,var(--accent) 82%,transparent); }
.mailbox-type-option input { margin:0; }
.mailbox-type-option .ui-icon { width:19px; height:19px; }
.mailbox-type-option span { min-width:0; display:flex; flex-direction:column; gap:2px; }
.mailbox-type-option strong { font-size:12px; }
.mailbox-type-option small { color:var(--muted); font-size:10px; line-height:1.35; }
.permission-private-note { color:var(--muted); font-size:10px; white-space:nowrap; }

/* Private mailbox has no Dodeljeno column. Indicator/check + categories stay. */
.mailbox-columns.private-mailbox-columns,
.mailbox-table .message-row.private-mailbox-columns {
    grid-template-columns:68px minmax(130px,.82fr) minmax(220px,2fr) 74px 82px 42px!important;
}
/* In Vsa moja prejeta, if user has no shared mailbox at all, omit Dodeljeno. */
.all-inbox-columns.private-only-inbox-columns,
.all-inbox-table .message-row.private-only-inbox-columns {
    grid-template-columns:7px 44px minmax(130px,.85fr) minmax(260px,2.25fr) 78px 88px!important;
}
@media (max-width:1200px) {
    .mailbox-columns.private-mailbox-columns,
    .mailbox-table .message-row.private-mailbox-columns {
        grid-template-columns:64px minmax(115px,.75fr) minmax(180px,2fr) 70px 78px 40px!important;
    }
}
@media (max-width:900px) {
    .mailbox-type-options { grid-template-columns:1fr; }
    .all-inbox-columns.private-only-inbox-columns,
    .all-inbox-table .message-row.private-only-inbox-columns {
        grid-template-columns:6px 42px 120px minmax(190px,1fr) 70px 78px!important;
    }
}

/* v1.4.2 FIX22 / Phase 6 Search ------------------------------------------- */
.search-page { min-height:100%; padding-bottom:24px; }
.search-heading-actions { display:flex; align-items:center; gap:8px; }
.search-panel { margin-bottom:20px; overflow:visible; }
.search-saved-bar { display:flex; align-items:center; gap:14px; min-height:54px; padding:9px 12px; border-bottom:1px solid var(--border); background:var(--panel-2); }
.search-saved-title { min-width:142px; display:flex; flex-direction:column; gap:2px; }
.search-saved-title strong { font-size:12px; }
.search-saved-title small,.search-saved-empty { color:var(--muted); font-size:10px; }
.search-saved-list { display:flex; align-items:center; gap:7px; flex-wrap:wrap; min-width:0; }
.saved-search-chip { display:inline-flex; align-items:stretch; overflow:hidden; border:1px solid var(--border); border-radius:999px; background:var(--panel); }
.saved-search-chip button { border:0; background:transparent; color:var(--text); cursor:pointer; }
.saved-search-apply { min-height:30px; padding:5px 10px 5px 12px; font-size:11px; }
.saved-search-apply:hover { background:var(--panel-3); }
.saved-search-delete { width:29px; display:grid; place-items:center; border-left:1px solid var(--border)!important; color:var(--muted)!important; }
.saved-search-delete:hover { color:#ff7780!important; background:rgba(240,93,104,.10)!important; }
.saved-search-delete .ui-icon { width:12px; height:12px; }
.advanced-search-card { padding:14px; border-bottom:1px solid var(--border); background:color-mix(in srgb,var(--panel-2) 78%,transparent); }
.advanced-search-grid { display:grid; grid-template-columns:repeat(4,minmax(160px,1fr)); gap:10px 12px; }
.search-field { display:flex; min-width:0; flex-direction:column; gap:5px; }
.search-field-wide { grid-column:span 2; }
.search-field > span { color:var(--muted); font-size:10px; font-weight:650; }
.search-field input,.search-field select,.saved-search-name { width:100%; min-width:0; height:36px; border:1px solid var(--border); border-radius:8px; background:var(--panel); color:var(--text); padding:0 10px; outline:none; font-size:12px; }
.search-field input:focus,.search-field select:focus,.saved-search-name:focus { border-color:var(--accent); box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 16%,transparent); }
.advanced-search-actions { display:flex; align-items:center; gap:8px; padding-top:12px; }
.advanced-search-spacer { flex:1; }
.saved-search-name { width:220px; }
.search-filter-status { padding-top:9px; color:var(--muted); font-size:11px; }
.search-filter-status.error { color:#ff7780; }
.search-result-meta { display:block; min-height:13px; margin-top:2px; overflow:hidden; color:var(--muted); font-size:9.5px; font-weight:500; text-overflow:ellipsis; white-space:nowrap; }
.search-results-table { max-height:none; }

@media (max-width:1350px){
  .advanced-search-grid { grid-template-columns:repeat(3,minmax(150px,1fr)); }
  .search-field-wide { grid-column:span 2; }
}
@media (max-width:1000px){
  .search-saved-bar { align-items:flex-start; flex-direction:column; }
  .advanced-search-grid { grid-template-columns:repeat(2,minmax(150px,1fr)); }
  .advanced-search-actions { flex-wrap:wrap; }
  .advanced-search-spacer { display:none; }
  .saved-search-name { width:min(100%,260px); }
}

/* v1.4.2 FIX25 - planner, reminders and visible build version ---------------- */
.brand-title { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.brand-version { display:inline-flex; align-items:center; min-height:18px; padding:1px 6px; border:1px solid color-mix(in srgb,var(--accent) 34%,var(--border)); border-radius:999px; background:color-mix(in srgb,var(--accent) 9%,transparent); color:var(--muted); font-size:9px; font-weight:750; letter-spacing:.02em; }

.planner-reminder-host { position:relative; }
.planner-reminder-trigger { position:relative; width:38px; height:38px; display:grid; place-items:center; border:1px solid var(--border); border-radius:10px; background:transparent; color:var(--muted); cursor:pointer; }
.planner-reminder-trigger:hover,.planner-reminder-trigger.has-alerts { color:var(--text); background:var(--panel-2); }
.planner-reminder-trigger.has-alerts { border-color:color-mix(in srgb,#e8ad4d 55%,var(--border)); }
.planner-reminder-trigger .ui-icon { width:18px; height:18px; }
.planner-reminder-badge { position:absolute; right:-5px; top:-5px; min-width:18px; height:18px; padding:0 4px; display:grid; place-items:center; border-radius:999px; border:2px solid var(--panel); background:#e9636c; color:white; font-size:9px; font-weight:800; }
.planner-reminder-panel { position:absolute; z-index:300; top:46px; right:0; width:min(370px,calc(100vw - 24px)); max-height:480px; overflow:auto; border:1px solid var(--border); border-radius:12px; background:var(--panel); box-shadow:0 18px 50px rgba(0,0,0,.28); }
.planner-reminder-heading { position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 13px; border-bottom:1px solid var(--border); background:var(--panel); }
.planner-reminder-heading > div { display:flex; flex-direction:column; gap:2px; }
.planner-reminder-heading strong { font-size:12px; }
.planner-reminder-heading small { color:var(--muted); font-size:9.5px; }
.planner-reminder-heading a { color:var(--accent); font-size:10.5px; text-decoration:none; }
.planner-reminder-empty { padding:24px 14px; color:var(--muted); font-size:11px; text-align:center; }
.planner-reminder-item { display:flex; flex-direction:column; gap:4px; padding:11px 13px; border-bottom:1px solid var(--border); }
.planner-reminder-item:last-child { border-bottom:0; }
.planner-reminder-time { display:flex; align-items:center; gap:5px; color:#e8ad4d; font-size:9.5px; font-weight:700; }
.planner-reminder-time .ui-icon { width:12px; height:12px; }
.planner-reminder-item > strong { font-size:12px; }
.planner-reminder-item > span { color:var(--muted); font-size:10px; }
.planner-reminder-actions { display:flex; justify-content:flex-end; gap:6px; padding-top:4px; }
.planner-reminder-actions a,.planner-reminder-actions button { min-height:28px; padding:4px 9px; border:1px solid var(--border); border-radius:7px; background:var(--panel-2); color:var(--text); font-size:10px; text-decoration:none; cursor:pointer; }

.planner-page { min-height:100%; padding-bottom:28px; }
.planner-page-heading { align-items:flex-end; }
.planner-page-heading h1 { margin-bottom:4px; }
.planner-page-heading p { margin:0; color:var(--muted); font-size:11px; }
.planner-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:12px; padding:8px 10px; }
.planner-view-switch { display:flex; align-items:center; gap:5px; }
.planner-view-switch button { min-height:34px; display:flex; align-items:center; gap:6px; padding:6px 10px; border:1px solid transparent; border-radius:8px; background:transparent; color:var(--muted); font-size:10.5px; cursor:pointer; }
.planner-view-switch button:hover { color:var(--text); background:var(--panel-2); }
.planner-view-switch button.active { color:var(--text); border-color:var(--border); background:var(--panel-2); box-shadow:inset 3px 0 0 var(--accent); }
.planner-view-switch .ui-icon { width:15px; height:15px; }
.planner-toolbar-info { display:flex; gap:14px; color:var(--muted); font-size:9.5px; }
.planner-toolbar-info strong { color:var(--text); }
.planner-status { margin:0 0 10px; padding:8px 11px; border:1px solid color-mix(in srgb,#62b985 38%,var(--border)); border-radius:8px; background:color-mix(in srgb,#62b985 7%,transparent); font-size:10.5px; }
.planner-status.error { border-color:color-mix(in srgb,#e9636c 46%,var(--border)); background:color-mix(in srgb,#e9636c 8%,transparent); color:#ff8b91; }
.planner-loading,.planner-empty { padding:30px; color:var(--muted); text-align:center; }

.planner-editor-backdrop { position:fixed; z-index:450; inset:0; background:rgba(0,0,0,.44); }
.planner-editor { position:fixed; z-index:451; top:50%; left:50%; width:min(820px,calc(100vw - 28px)); max-height:calc(100vh - 36px); overflow:auto; transform:translate(-50%,-50%); background:var(--panel); border:1px solid var(--border); border-radius:12px; box-shadow:0 24px 80px rgba(0,0,0,.58); isolation:isolate; }
.planner-editor-heading { position:sticky; z-index:2; top:0; display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:14px 15px; border-bottom:1px solid var(--border); background:var(--panel); }
.planner-editor-heading h2 { margin:0 0 3px; font-size:16px; }
.planner-editor-heading small { color:var(--muted); font-size:9.5px; }
.planner-editor-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px 12px; padding:14px 15px; background:var(--panel); }
.planner-field { display:flex; min-width:0; flex-direction:column; gap:5px; }
.planner-field-wide { grid-column:1/-1; }
.planner-field > span:first-child { color:var(--muted); font-size:9.5px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; }
.planner-field input:not([type="checkbox"]),.planner-field select,.planner-field textarea { width:100%; min-width:0; border:1px solid var(--border); border-radius:8px; background:var(--panel-2)!important; color:var(--text); outline:none; font:inherit; font-size:11.5px; opacity:1; }
.planner-field input:not([type="checkbox"]),.planner-field select { height:36px; padding:0 9px; }
.planner-field textarea { resize:vertical; min-height:96px; padding:8px 9px; }
.planner-field input:focus,.planner-field select:focus,.planner-field textarea:focus { border-color:var(--accent); box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 13%,transparent); }
.planner-field small { color:var(--muted); font-size:9.5px; line-height:1.4; }
.planner-reminder-inputs { display:grid; grid-template-columns:minmax(80px,1fr) 120px; gap:7px; }
.planner-checkbox-field { justify-content:flex-end; }
.planner-check-line { min-height:36px; display:flex; align-items:center; gap:8px; padding:0 9px; border:1px solid var(--border); border-radius:8px; background:var(--panel-2); color:var(--text)!important; font-size:10.5px!important; font-weight:500!important; text-transform:none!important; letter-spacing:0!important; }
.planner-assignee-list { display:flex; flex-wrap:wrap; gap:7px; }
.planner-assignee-list label { display:flex; align-items:center; gap:6px; min-height:31px; padding:5px 9px; border:1px solid var(--border); border-radius:8px; background:var(--panel-2); font-size:10.5px; cursor:pointer; }
.planner-editor-actions { display:grid; grid-template-columns:auto 1fr auto auto; gap:8px; align-items:center; padding:11px 15px; border-top:1px solid var(--border); background:var(--panel); }

.planner-calendar-card { overflow:hidden; }
.planner-calendar-nav,.planner-availability-nav { display:flex; align-items:center; gap:8px; min-height:52px; padding:8px 11px; border-bottom:1px solid var(--border); }
.planner-calendar-nav h2,.planner-availability-nav h2 { min-width:210px; margin:0; font-size:14px; text-transform:capitalize; }
.planner-calendar-nav button,.planner-availability-nav button { width:31px; height:31px; display:grid; place-items:center; border:1px solid var(--border); border-radius:8px; background:var(--panel-2); color:var(--text); cursor:pointer; }
.planner-calendar-nav .planner-today-button,.planner-availability-nav .planner-today-button { width:auto; padding:0 9px; margin-left:auto; font-size:10px; }
.planner-weekdays { display:grid; grid-template-columns:repeat(7,1fr); border-bottom:1px solid var(--border); background:var(--panel-2); }
.planner-weekdays span { padding:7px 8px; color:var(--muted); font-size:9px; font-weight:750; text-align:center; }
.planner-month-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.planner-day { min-width:0; min-height:122px; padding:5px; border-right:1px solid var(--border); border-bottom:1px solid var(--border); background:var(--panel); }
.planner-day:nth-child(7n) { border-right:0; }
.planner-day.outside { background:color-mix(in srgb,var(--panel-2) 58%,transparent); opacity:.62; }
.planner-day.today { box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 60%,transparent); }
.planner-day-heading { display:flex; justify-content:space-between; align-items:center; min-height:22px; }
.planner-day-heading > span { width:23px; height:23px; display:grid; place-items:center; border-radius:50%; color:var(--muted); font-size:9.5px; font-weight:700; }
.planner-day.today .planner-day-heading > span { background:var(--accent); color:white; }
.planner-day-heading button { width:22px; height:22px; display:grid; place-items:center; border:0; border-radius:6px; background:transparent; color:transparent; cursor:pointer; }
.planner-day:hover .planner-day-heading button { color:var(--muted); }
.planner-day-heading button:hover { background:var(--panel-3); color:var(--text)!important; }
.planner-day-heading .ui-icon { width:12px; height:12px; }
.planner-day-items { display:flex; flex-direction:column; gap:3px; min-width:0; }
.planner-calendar-item { width:100%; min-width:0; display:grid; grid-template-columns:36px minmax(0,1fr); gap:1px 5px; align-items:center; padding:4px 5px; border:1px solid var(--border); border-left:3px solid var(--accent); border-radius:6px; background:var(--panel-2); color:var(--text); text-align:left; cursor:pointer; }
.planner-calendar-item.shared { border-left-color:#b28cff; }
.planner-calendar-item.inprogress { border-left-color:#e8ad4d; }
.planner-calendar-item.completed { opacity:.55; border-left-color:#62b985; }
.planner-calendar-item.cancelled { opacity:.45; text-decoration:line-through; }
.planner-calendar-time { color:var(--muted); font-size:8.5px; }
.planner-calendar-item strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:9.5px; }
.planner-calendar-item small { grid-column:2; min-width:0; overflow:hidden; color:var(--muted); font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
.planner-more { padding:2px 4px; color:var(--muted); font-size:8.5px; }
.planner-unscheduled { padding:10px 11px; border-top:1px solid var(--border); }
.planner-unscheduled > strong { display:block; margin-bottom:6px; font-size:10.5px; }
.planner-unscheduled > div { display:flex; flex-wrap:wrap; gap:6px; }
.planner-unscheduled button { display:flex; align-items:center; gap:5px; min-height:28px; padding:4px 8px; border:1px solid var(--border); border-radius:7px; background:var(--panel-2); color:var(--text); font-size:9.5px; cursor:pointer; }
.planner-unscheduled button small { color:var(--muted); }
.planner-unscheduled .ui-icon { width:12px; height:12px; }

.planner-list-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:11px 13px; border-bottom:1px solid var(--border); }
.planner-list-heading h2 { margin:0; font-size:13px; }
.planner-list-filters { color:var(--muted); font-size:10px; }
.planner-list { display:flex; flex-direction:column; }
.planner-list-item { width:100%; min-height:58px; display:grid; grid-template-columns:5px minmax(240px,1.6fr) minmax(150px,.8fr) 125px; gap:10px; align-items:center; padding:8px 12px; border:0; border-bottom:1px solid var(--border); background:transparent; color:var(--text); text-align:left; cursor:pointer; }
.planner-list-item:hover { background:var(--panel-2); }
.planner-list-state { width:4px; height:34px; border-radius:4px; background:var(--accent); }
.planner-list-state.inprogress { background:#e8ad4d; }.planner-list-state.completed{background:#62b985}.planner-list-state.cancelled{background:#888}
.planner-list-main,.planner-list-scope,.planner-list-date { min-width:0; display:flex; flex-direction:column; gap:2px; }
.planner-list-main strong,.planner-list-scope strong,.planner-list-date strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10.5px; }
.planner-list-main small,.planner-list-scope small,.planner-list-date small { overflow:hidden; color:var(--muted); font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.planner-list-date { text-align:right; }

.planner-availability-card { overflow:auto; }
.planner-availability-grid { min-width:1060px; display:grid; grid-template-columns:160px repeat(7,minmax(125px,1fr)); }
.planner-availability-header { min-height:44px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; padding:6px; border-right:1px solid var(--border); border-bottom:1px solid var(--border); background:var(--panel-2); }
.planner-availability-header.user { align-items:flex-start; padding-left:11px; }
.planner-availability-header strong { font-size:9.5px; text-transform:uppercase; }.planner-availability-header span{color:var(--muted);font-size:8.5px}
.planner-availability-user { min-height:76px; display:flex; align-items:flex-start; padding:9px 10px; border-right:1px solid var(--border); border-bottom:1px solid var(--border); }
.planner-availability-user strong { font-size:10.5px; }
.planner-availability-day { min-height:76px; display:flex; flex-direction:column; gap:4px; padding:5px; border-right:1px solid var(--border); border-bottom:1px solid var(--border); }
.planner-availability-day.today { background:color-mix(in srgb,var(--accent) 4%,transparent); }
.planner-busy-block { display:flex; min-width:0; flex-direction:column; gap:1px; padding:4px 5px; border:1px solid var(--border); border-left:3px solid #808897; border-radius:6px; background:var(--panel-2); color:var(--text); text-align:left; cursor:default; }
.planner-busy-block.details { border-left-color:#b28cff; cursor:pointer; }
.planner-busy-block strong { font-size:8.5px; }.planner-busy-block span{overflow:hidden;font-size:9px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.planner-busy-block small{overflow:hidden;color:var(--muted);font-size:7.8px;text-overflow:ellipsis;white-space:nowrap}
.planner-privacy-note { display:flex; align-items:center; gap:6px; margin:0; padding:9px 11px; color:var(--muted); font-size:9.5px; }
.planner-privacy-note .ui-icon { width:13px; height:13px; }

@media(max-width:1100px){
  .planner-toolbar { align-items:flex-start; flex-direction:column; }
  .planner-toolbar-info { flex-wrap:wrap; }
  .planner-day { min-height:105px; }
  .planner-calendar-item { grid-template-columns:1fr; }.planner-calendar-time{display:none}.planner-calendar-item small{grid-column:1}
}
@media(max-width:760px){
  .planner-editor-grid { grid-template-columns:1fr; }.planner-field-wide{grid-column:1}
  .planner-month-grid,.planner-weekdays { min-width:760px; }.planner-calendar-card{overflow:auto}
  .planner-list-item { grid-template-columns:4px minmax(160px,1fr) 100px; }.planner-list-scope{display:none}
  .planner-view-switch { flex-wrap:wrap; }
}
.login-card h1 { display:flex; align-items:center; justify-content:center; gap:8px; flex-wrap:wrap; }
.login-build-version { display:inline-flex; padding:2px 7px; border:1px solid color-mix(in srgb,var(--accent) 34%,var(--border)); border-radius:999px; color:var(--muted); font-size:9px; font-weight:750; }

/* FIX30 / Phase 7: security + audit --------------------------------------- */
.admin-tabbar a.admin-tab-button { text-decoration:none; }
.page-heading-actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.audit-filter-panel, .audit-panel, .security-users-panel { margin:0 30px 18px; }
.audit-filter-grid { padding:18px; display:grid; grid-template-columns:minmax(190px,1.5fr) repeat(4,minmax(145px,1fr)) auto; gap:12px; align-items:end; }
.audit-filter-grid label { display:grid; gap:6px; min-width:0; }
.audit-filter-grid label > span { color:var(--muted); font-size:12px; font-weight:700; }
.audit-filter-grid input, .audit-filter-grid select,
.security-settings-list input { min-height:38px; border:1px solid var(--border); background:var(--panel-2); color:var(--text); border-radius:8px; padding:0 10px; }
.audit-filter-actions { display:flex; gap:8px; align-items:center; }
.audit-table-scroll { max-height:calc(100vh - 330px); }
.audit-table { min-width:1080px; }
.audit-time { white-space:nowrap; font-variant-numeric:tabular-nums; }
.audit-details { max-width:520px; white-space:normal; word-break:break-word; }
.audit-event { font-weight:700; }
.audit-result { display:inline-flex; align-items:center; border-radius:999px; padding:3px 8px; font-size:11px; font-weight:800; }
.audit-result.ok { color:var(--success); background:color-mix(in srgb,var(--success) 12%,transparent); }
.audit-result.error { color:var(--danger); background:color-mix(in srgb,var(--danger) 12%,transparent); }
.security-grid { padding:0 30px 18px; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr); gap:18px; }
.security-panel { margin:0; overflow:hidden; }
.security-settings-list { display:grid; }
.security-settings-list > label { min-height:76px; padding:14px 18px; border-top:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; gap:18px; }
.security-settings-list > label > span { display:grid; gap:4px; min-width:0; }
.security-settings-list small { color:var(--muted); font-weight:400; }
.security-settings-list input { width:110px; }
.security-unit-input { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:12px; }
.security-panel .panel-actions { display:flex; justify-content:flex-end; padding:14px 18px; border-top:1px solid var(--border); }
.security-integrity-copy { padding:18px; color:var(--muted); line-height:1.55; }
.integrity-result { margin:0 18px 18px; border:1px solid var(--border); border-radius:10px; padding:14px; display:grid; gap:5px; }
.integrity-result.ok { border-color:color-mix(in srgb,var(--success) 42%,var(--border)); background:color-mix(in srgb,var(--success) 8%,var(--panel)); }
.integrity-result.error { border-color:color-mix(in srgb,var(--danger) 42%,var(--border)); background:color-mix(in srgb,var(--danger) 8%,var(--panel)); }
.integrity-result small { color:var(--muted); }
.table-secondary { display:block; color:var(--muted); margin-top:3px; }
.security-lock.active { color:var(--danger); font-weight:700; }
.secondary-button.compact { min-height:32px; padding:0 10px; font-size:12px; }
@media (max-width:1100px) {
  .audit-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .audit-filter-actions { grid-column:1 / -1; }
  .security-grid { grid-template-columns:1fr; }
}
@media (max-width:680px) {
  .audit-filter-panel, .audit-panel, .security-users-panel { margin-left:14px; margin-right:14px; }
  .audit-filter-grid { grid-template-columns:1fr; }
  .security-grid { padding-left:14px; padding-right:14px; }
  .security-settings-list > label { align-items:flex-start; flex-direction:column; }
}
.security-backup-panel { margin:0 30px 18px; }
.security-backup-note { padding:14px 18px; color:var(--muted); border-bottom:1px solid var(--border); }
.backup-settings-grid { padding:18px; display:grid; grid-template-columns:minmax(260px,2fr) 150px 120px minmax(160px,1fr) auto; gap:12px; align-items:end; }
.backup-settings-grid label { display:grid; gap:6px; }
.backup-settings-grid label > span { color:var(--muted); font-size:12px; font-weight:700; }
.backup-settings-grid input[type="text"], .backup-settings-grid input[type="time"], .backup-settings-grid input[type="number"], .backup-settings-grid input:not([type]) { min-height:38px; border:1px solid var(--border); background:var(--panel-2); color:var(--text); border-radius:8px; padding:0 10px; }
.backup-check { display:flex !important; align-items:center; grid-auto-flow:column; justify-content:start; min-height:38px; }
.backup-check input { width:auto; }
.backup-actions { display:flex; align-items:end; }
@media (max-width:1100px) { .backup-settings-grid { grid-template-columns:1fr 1fr; } .backup-settings-grid .wide, .backup-actions { grid-column:1/-1; } }
@media (max-width:680px) { .security-backup-panel { margin-left:14px; margin-right:14px; } .backup-settings-grid { grid-template-columns:1fr; } .backup-settings-grid .wide, .backup-actions { grid-column:auto; } }


/* FIX34 / Phase 7: unified conversation thread -------------------------- */
.conversation-thread { min-width:0; }
.conversation-thread.has-replies { padding:18px 20px 28px; display:grid; gap:14px; }
.conversation-thread-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:34px; padding:0 2px; }
.conversation-thread-heading > div { display:flex; align-items:center; gap:8px; color:var(--text); font-size:13px; font-weight:850; }
.conversation-thread-heading .ui-icon { width:16px; height:16px; color:var(--accent); }
.conversation-thread-count { display:inline-flex; align-items:center; min-height:25px; padding:0 9px; border:1px solid var(--border); border-radius:999px; background:var(--panel-2); color:var(--muted); font-size:10.5px; font-weight:750; white-space:nowrap; }
.thread-message { min-width:0; }
.conversation-thread.has-replies .thread-original-message { border:1px solid var(--border); border-radius:12px; overflow:hidden; background:var(--panel); }
.thread-original-label { min-height:48px; padding:9px 13px; display:flex; align-items:center; gap:10px; border-bottom:1px solid var(--border); background:var(--panel-2); }
.thread-original-label > div { min-width:0; display:grid; gap:2px; }
.thread-original-label strong { font-size:12px; }
.thread-original-label div > span { color:var(--muted); font-size:10.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.thread-marker { flex:0 0 auto; width:29px; height:29px; display:grid; place-items:center; border-radius:50%; border:1px solid var(--border); background:var(--panel-3); color:var(--muted); }
.thread-marker .ui-icon { width:14px; height:14px; }
.thread-marker.original { color:var(--accent); background:color-mix(in srgb,var(--accent) 10%,var(--panel-2)); border-color:color-mix(in srgb,var(--accent) 32%,var(--border)); }
.thread-marker.reply { color:var(--accent); background:color-mix(in srgb,var(--accent) 13%,var(--panel)); border-color:color-mix(in srgb,var(--accent) 38%,var(--border)); box-shadow:0 0 0 4px var(--bg); }
.conversation-thread.has-replies .thread-original-body.mail-body { padding:14px 16px 16px; }
.message-window-thread .thread-original-body { padding:14px 16px 16px; }
.conversation-thread.has-replies .thread-content-frame { width:100%; height:180px; min-height:90px !important; border:0 !important; border-radius:0; display:block; overflow:hidden; }
.conversation-thread.has-replies .thread-original-body .thread-content-frame { min-height:150px !important; }

.reply-history { margin:0; padding:0; border:0; min-width:0; }
.reply-thread-list { display:grid; gap:0; min-width:0; }
.reply-history-item { min-width:0; display:grid; grid-template-columns:38px minmax(0,1fr); align-items:stretch; overflow:visible; background:transparent; border:0; border-radius:0; }
.reply-thread-rail { position:relative; display:flex; flex-direction:column; align-items:center; min-height:100%; padding-top:10px; }
.reply-thread-line { width:1px; flex:1 1 auto; min-height:18px; margin-top:5px; background:linear-gradient(var(--border),color-mix(in srgb,var(--accent) 24%,var(--border))); }
.reply-history-card { min-width:0; margin:0 0 12px 0; overflow:hidden; border:1px solid var(--border); border-radius:12px; background:var(--panel); box-shadow:0 5px 18px rgba(0,0,0,.07); }
.reply-history-header { min-height:48px; padding:9px 12px; display:flex; align-items:center; gap:12px; border-bottom:1px solid var(--border); background:var(--panel-2); }
.reply-history-author { min-width:0; display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.reply-history-author strong { color:var(--text); font-size:12.5px; }
.reply-history-number { color:var(--accent); font-size:10.5px; font-weight:850; white-space:nowrap; }
.reply-history-time { margin-left:auto; color:var(--muted); font-size:10.5px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.reply-history-meta { padding:7px 12px; border-bottom:1px solid var(--border); background:color-mix(in srgb,var(--panel-2) 72%,transparent); color:var(--muted); font-size:10.5px; overflow-wrap:anywhere; }
.reply-history-meta > span { color:var(--text); font-weight:700; }
.reply-history-body { min-width:0; padding:11px 13px 13px; background:var(--panel); }
.reply-history-frame { width:100%; height:130px; min-height:80px !important; max-height:none !important; border:0 !important; display:block; overflow:hidden; background:var(--panel)!important; }
.reply-history-plain { min-height:54px; padding:4px 2px; white-space:pre-wrap; overflow-wrap:anywhere; }
.reply-history-empty { padding:10px 2px; color:var(--muted); font-size:11px; font-style:italic; }
.message-window-reply-history { margin:0; }
.message-window-body.message-window-thread { padding:18px 22px 28px; overflow:auto; }
.message-window-thread .thread-original-message { border:1px solid var(--border); border-radius:12px; overflow:hidden; background:var(--panel); }
.message-window-thread .mail-html-frame.full-window { min-height:150px; height:180px; }

@media (max-width:680px) {
  .conversation-thread.has-replies { padding:12px 10px 20px; }
  .conversation-thread-heading { align-items:flex-start; }
  .reply-history-item { grid-template-columns:32px minmax(0,1fr); }
  .thread-marker { width:25px; height:25px; }
  .reply-history-header { align-items:flex-start; flex-wrap:wrap; }
  .reply-history-time { margin-left:0; width:100%; }
  .reply-history-body { padding:9px 10px 11px; }
}


/* FIX35 / Phase 7: full-height message window + unmistakable reply author ---- */
/* A standalone message (including a sent Re: message) must use the whole
   available content area, not a short iframe band with empty space below. */
.message-window-body:not(.has-replies) {
    overflow:hidden;
    padding:14px 16px 16px;
}
.message-window-body:not(.has-replies) .thread-original-message {
    height:100%;
    min-height:0;
    display:flex;
    flex-direction:column;
}
.message-window-body:not(.has-replies) .thread-original-body {
    flex:1 1 auto;
    min-height:0;
    height:100%;
}
.message-window-body:not(.has-replies) .mail-html-frame.full-window {
    width:100%;
    height:100% !important;
    min-height:100% !important;
    max-height:none !important;
    border:0;
    border-radius:0;
}
.message-window-body:not(.has-replies) .thread-original-body > .mail-plain-body {
    height:100%;
    overflow:auto;
    padding:8px 10px;
}

/* When the opened item is itself a sent reply, show its actor prominently in
   the fixed message header, even though it is not the source mail of a thread. */
.message-window-reply-actor {
    margin-top:10px;
    display:flex;
    align-items:center;
    gap:8px;
    width:max-content;
    max-width:100%;
    min-height:34px;
    padding:6px 11px;
    border:1px solid color-mix(in srgb,var(--accent) 42%,var(--border));
    border-radius:9px;
    background:color-mix(in srgb,var(--accent) 10%,var(--panel-2));
}
.message-window-reply-actor-label {
    color:var(--muted);
    font-size:9.5px;
    font-weight:900;
    letter-spacing:.09em;
}
.message-window-reply-actor strong {
    color:var(--text);
    font-size:13.5px;
    font-weight:900;
}
.message-window-reply-actor-time {
    color:var(--muted);
    font-size:10.5px;
    font-variant-numeric:tabular-nums;
    white-space:nowrap;
}

/* Reply cards: the person who answered must be the strongest visual datum. */
.reply-history-header {
    border-left:3px solid color-mix(in srgb,var(--accent) 72%,var(--border));
}
.reply-history-author {
    min-width:0;
    display:grid;
    grid-template-columns:auto auto auto;
    align-items:center;
    gap:6px 8px;
}
.reply-history-author-label {
    color:var(--muted);
    font-size:9px;
    font-weight:900;
    letter-spacing:.09em;
}
.reply-history-author-name {
    color:var(--text) !important;
    font-size:14px !important;
    font-weight:900 !important;
}
.reply-history-number {
    display:inline-flex;
    align-items:center;
    min-height:22px;
    padding:0 7px;
    border:1px solid color-mix(in srgb,var(--accent) 32%,var(--border));
    border-radius:999px;
    background:color-mix(in srgb,var(--accent) 9%,var(--panel));
}

@media (max-width:760px) {
    .message-window-body:not(.has-replies) { padding:8px; }
    .message-window-reply-actor { width:100%; flex-wrap:wrap; }
    .message-window-reply-actor-time { width:100%; }
    .reply-history-author { grid-template-columns:auto 1fr; }
    .reply-history-number { grid-column:1 / -1; width:max-content; }
}


/* FIX36 - fixed CompanyMail header + recursive folder tree ---------------- */
.sidebar {
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: 0;
}
.sidebar > .brand {
    position: relative;
    top: auto;
    flex: 0 0 auto;
    z-index: 30;
    background: #10151d;
}
html[data-theme="light"] .sidebar > .brand { background: #f7f9fc; }
.sidebar > .mail-tree {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}
.tree-folder-row {
    grid-template-columns: 22px minmax(0,1fr) auto;
    gap: 1px;
}
.folder-caret-button,
.folder-caret-spacer {
    width: 22px;
    height: 28px;
    flex: 0 0 22px;
}
.folder-caret-button {
    display: grid;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
}
.folder-caret-button .ui-icon { width: 13px; height: 13px; }
.folder-caret-button:hover,
.folder-caret-button:focus-visible {
    color: var(--text);
    background: var(--panel-3);
    outline: none;
}
.folder-caret-spacer { display: block; }
.tree-folder-row > .folder-link { min-width: 0; }

/* FIX37 - attachment multi-select + drag-out -------------------------------- */
.attachment-selection-strip {
    align-items: center;
}
.attachment-selection-strip .attachment-selectable {
    cursor: grab;
    user-select: none;
    transition: border-color .12s ease, background-color .12s ease, box-shadow .12s ease, transform .12s ease;
}
.attachment-selection-strip .attachment-selectable:active,
.attachment-selection-strip.attachment-drag-active .attachment-selectable.is-selected {
    cursor: grabbing;
}
.attachment-selection-strip .attachment-selectable.is-selected {
    border-color: var(--accent);
    background: color-mix(in srgb, var(--accent) 14%, var(--panel-2));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 45%, transparent);
}
.attachment-selection-strip .attachment-selectable.is-selected .attachment-open-button {
    color: var(--text);
}
.attachment-select-surface {
    cursor: default !important;
}
.attachment-open-now {
    width: 30px;
    min-width: 30px;
    height: 30px;
    display: inline-grid;
    place-items: center;
    border: 0;
    border-left: 1px solid var(--border);
    background: transparent;
    color: var(--muted);
    cursor: pointer;
}
.attachment-open-now:hover {
    color: var(--accent);
    background: var(--panel-3);
}
.attachment-open-now .ui-icon {
    width: 15px;
    height: 15px;
}
.download-selected-attachments {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 32px;
    padding: 5px 10px;
    border: 1px solid color-mix(in srgb, var(--accent) 55%, var(--border));
    border-radius: 8px;
    background: color-mix(in srgb, var(--accent) 12%, var(--panel-2));
    color: var(--text);
    font-size: 12px;
    font-weight: 650;
    cursor: pointer;
}
.download-selected-attachments[hidden] {
    display: none !important;
}
.download-selected-attachments:hover {
    background: color-mix(in srgb, var(--accent) 19%, var(--panel-2));
}
.download-selected-attachments .ui-icon {
    width: 15px;
    height: 15px;
}
.attachment-selection-status {
    min-height: 18px;
    display: inline-flex;
    align-items: center;
    color: var(--muted);
    font-size: 10.5px;
    font-weight: 600;
    white-space: nowrap;
}
.attachment-drag-image {
    position: fixed;
    left: -10000px;
    top: -10000px;
    z-index: -1;
    padding: 7px 10px;
    border: 1px solid var(--accent);
    border-radius: 8px;
    background: var(--panel-2);
    color: var(--text);
    font: 600 12px/1.2 system-ui, sans-serif;
    white-space: nowrap;
}


/* FIX38 - system manager separation ----------------------------------------- */
.system-manager-topbar-note{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 12px;
  border:1px solid var(--border);
  border-radius:8px;
  color:var(--muted);
  background:var(--panel);
  font-size:12px;
  font-weight:600;
}
.system-manager-tree .tree-muted{
  margin:10px 12px;
  line-height:1.45;
}

/* FIX39 - long-press reorder + more room in left tree ---------------------- */
.mail-tree { padding-left: 7px; padding-right: 8px; }
.mailbox-header-wrap {
    grid-template-columns: 27px minmax(0,1fr) 30px 30px;
    padding-left: 0;
}
.mailbox-header-main,
.folder-link-custom {
    touch-action: manipulation;
    user-select: none;
}
.mailbox-header-main { padding-left: 1px; }
.folder-list {
    margin-left: 18px;
    padding-left: 5px;
}
.mailbox-node.longpress-reorder-armed,
.folder-order-drop-before,
.folder-order-drop-after,
.custom-folder-row.longpress-reorder-armed {
    position: relative;
}
.mailbox-node.longpress-reorder-armed,
.custom-folder-row.longpress-reorder-armed {
    background: color-mix(in srgb,var(--accent) 10%,var(--panel-2));
    outline: 1px solid color-mix(in srgb,var(--accent) 48%,var(--border));
    outline-offset: -1px;
}
.folder-order-drop-before { box-shadow: 0 -2px 0 var(--accent); }
.folder-order-drop-after { box-shadow: 0 2px 0 var(--accent); }
body.companymail-folder-order-dragging,
body.companymail-folder-order-dragging * { cursor: grabbing !important; user-select: none !important; }
.context-danger { color: #ff737c !important; }
.context-danger:hover { background: color-mix(in srgb,#ff737c 12%,var(--panel-2)) !important; color:#ff8f96 !important; }


/* FIX41 - Outlook-style important flag + robust folder click/long-press ---- */
.folder-link-custom[data-folder-longpress] { user-select:none; -webkit-user-drag:none; }
.important-header-indicator {
    width:20px; height:20px; display:grid; place-items:center; color:var(--muted);
}
.important-header-indicator .ui-icon { width:15px!important; height:15px!important; }
.important-toggle-button {
    width:20px; height:20px; padding:0; border:0; border-radius:5px;
    display:grid; place-items:center; background:transparent; color:#ff737c;
    cursor:pointer; text-decoration:none!important; opacity:0;
    transition:opacity .12s ease, background .12s ease, color .12s ease, transform .12s ease;
}
.important-toggle-button .ui-icon { width:15px!important; height:15px!important; }
/* Prazna zastavica je vidna samo, ko je kazalec nad njenim poljem. */
.important-toggle-button:hover:not(:disabled),
.important-toggle-button:focus-visible { opacity:1; background:rgba(226,74,83,.11); }
/* Označena zastavica ostane stalno vidna. */
.important-toggle-button.active { opacity:1; background:transparent; color:#ff626d; }
.important-toggle-button.active:hover:not(:disabled) { background:rgba(226,74,83,.11); }
.important-toggle-button:active:not(:disabled) { transform:translateY(1px); }
.important-toggle-button:disabled { cursor:default; }
.important-toggle-button.active:disabled { opacity:.7; }
.message-row.important-message-row,
.message-row.important-message-row.selected {
    background:color-mix(in srgb,#e24a53 15%,transparent)!important;
}
.message-row.important-message-row:hover {
    background:color-mix(in srgb,#e24a53 21%,var(--panel-2))!important;
}
html[data-theme="light"] .message-row.important-message-row,
html[data-theme="light"] .message-row.important-message-row.selected {
    background:color-mix(in srgb,#d83b45 12%,white)!important;
}
.message-drag-count-badge {
    position:fixed; left:-10000px; top:-10000px; z-index:-1;
    padding:7px 11px; border:1px solid var(--accent); border-radius:8px;
    background:var(--panel-2); color:var(--text); font:700 12px/1.2 system-ui,sans-serif;
    white-space:nowrap;
}
.danger-strong { font-weight:760!important; }

/* FIX42 - quick completed checkmark, visually aligned with the Important flag */
.completed-toggle-button {
    width:20px; height:20px; padding:0; border:0; border-radius:5px;
    display:grid; place-items:center; background:transparent; color:#42c879;
    cursor:pointer; text-decoration:none!important; opacity:0;
    transition:opacity .12s ease, background .12s ease, color .12s ease, transform .12s ease;
}
.completed-toggle-button .ui-icon { width:15px!important; height:15px!important; }
.completed-toggle-button:hover:not(:disabled),
.completed-toggle-button:focus-visible { opacity:1; background:rgba(66,200,121,.11); }
.completed-toggle-button.active { opacity:1; color:#42c879; }
.completed-toggle-button.active:hover:not(:disabled) { background:rgba(66,200,121,.11); }
.completed-toggle-button:active:not(:disabled) { transform:translateY(1px); }
.completed-toggle-button:disabled { cursor:default; }
.completed-toggle-button.active:disabled { opacity:.72; }

/* A replied-but-not-completed mail keeps a discreet blue reply marker. On hover
   the same slot changes to the green check preview, so click always means
   'Zaključeno' and the two states cannot be confused. */
.completed-toggle-button.replied { opacity:1; color:#77a7ff; }
.completed-toggle-button.replied .replied-state-icon,
.completed-toggle-button.replied .complete-hover-icon { width:20px; height:20px; place-items:center; }
.completed-toggle-button.replied .replied-state-icon { display:grid; }
.completed-toggle-button.replied .complete-hover-icon { display:none; color:#42c879; }
.completed-toggle-button.replied:hover .replied-state-icon,
.completed-toggle-button.replied:focus-visible .replied-state-icon { display:none; }
.completed-toggle-button.replied:hover .complete-hover-icon,
.completed-toggle-button.replied:focus-visible .complete-hover-icon { display:grid; }

/* FIX43 - global Rspamd anti-spam */
.antispam-list-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:14px}.antispam-list-grid label{display:flex;flex-direction:column;gap:8px}.antispam-list-grid label>span{display:flex;flex-direction:column;gap:4px}.antispam-list-grid textarea{width:100%;min-height:210px;resize:vertical}.antispam-health-row{align-items:center}.spam-verdict-strip{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:7px 10px;border:1px solid rgba(255,90,90,.28);background:rgba(190,35,35,.08);border-radius:7px;font-size:.83rem}.spam-verdict-strip .spam-score{font-weight:700;color:#ff8585}.spam-verdict-strip .auth-pass{color:#74d69b}.spam-verdict-strip .auth-fail{color:#ff7d7d}.spam-verdict-strip .spam-summary{opacity:.8;flex-basis:100%}@media(max-width:900px){.antispam-list-grid{grid-template-columns:1fr}}


/* FIX45 - sidebar scrollbar strictly follows pointer hover; anti-spam shield + mailbox colors retained */
/* The mailbox navigation keeps scrolling with the wheel at all times. The
   scrollbar thumb is visible only while the pointer is physically inside the
   left sidebar; keyboard/focus state must never keep it visible. */
.sidebar > .mail-tree {
    scrollbar-width: thin;
    scrollbar-color: transparent transparent;
    scrollbar-gutter: stable;
}
.sidebar:hover > .mail-tree {
    scrollbar-color: var(--scroll-thumb) transparent;
}
.sidebar > .mail-tree::-webkit-scrollbar { width: 7px; height: 7px; }
.sidebar > .mail-tree::-webkit-scrollbar-track { background: transparent; }
.sidebar > .mail-tree::-webkit-scrollbar-thumb {
    background: transparent;
    border-radius: 999px;
}
.sidebar:hover > .mail-tree::-webkit-scrollbar-thumb {
    background: color-mix(in srgb, var(--scroll-thumb) 78%, transparent);
}
.sidebar:hover > .mail-tree::-webkit-scrollbar-thumb:hover {
    background: var(--scroll-thumb-hover);
}

/* Caret + mailbox/shared icon inherit the user-selected mailbox color. */
.mailbox-node .mailbox-caret-button,
.mailbox-node .mailbox-header-main > .ui-icon {
    color: var(--mailbox-nav-color, var(--muted));
    opacity: .92;
}
.mailbox-node .mailbox-caret-button:hover,
.mailbox-node .mailbox-caret-button:focus-visible {
    color: var(--mailbox-nav-color, var(--text));
    background: color-mix(in srgb, var(--mailbox-nav-color, var(--accent)) 10%, var(--panel-3));
}

/* A normal Rspamd result no longer renders as a red banner. The shield is
   green only when the message is below the spam verdict and there is no
   explicit SPF/DKIM/DMARC FAIL or scan error. */
.spam-shield {
    position: relative;
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    margin-left: 1px;
    color: inherit;
}
.spam-shield > summary {
    list-style: none;
    width: 26px;
    height: 26px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 1px solid currentColor;
    border-radius: 7px;
    background: color-mix(in srgb, currentColor 6%, transparent);
    cursor: pointer;
    opacity: .92;
    transition: background .12s ease, box-shadow .12s ease, opacity .12s ease;
}
.spam-shield > summary::-webkit-details-marker { display: none; }
.spam-shield > summary::marker { content: ""; }
.spam-shield > summary .ui-icon { width: 16px; height: 16px; }
.spam-shield.ok { color: #45c77a; }
.spam-shield.warning { color: #ff6570; }
.spam-shield > summary:hover,
.spam-shield[open] > summary {
    opacity: 1;
    background: color-mix(in srgb, currentColor 12%, var(--panel-2));
    box-shadow: 0 0 0 2px color-mix(in srgb, currentColor 11%, transparent);
}
.spam-shield-panel {
    position: absolute;
    z-index: 120;
    top: calc(100% + 7px);
    right: 0;
    width: min(560px, calc(100vw - 42px));
    display: grid;
    gap: 9px;
    padding: 11px 12px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--panel-2);
    color: var(--text);
    box-shadow: 0 14px 34px rgba(0,0,0,.32);
    font-size: 11.5px;
    line-height: 1.4;
    text-align: left;
}
.spam-shield.ok .spam-shield-panel {
    border-color: color-mix(in srgb, #45c77a 36%, var(--border));
}
.spam-shield.warning .spam-shield-panel {
    border-color: color-mix(in srgb, #ff6570 42%, var(--border));
}
.spam-shield-heading {
    display: flex;
    align-items: center;
    gap: 7px;
    color: inherit;
}
.spam-shield-heading .ui-icon { width: 16px; height: 16px; }
.spam-shield-score-row {
    display: flex;
    align-items: baseline;
    gap: 7px;
    color: var(--muted);
}
.spam-shield-score-row strong { color: var(--text); font-size: 13px; }
.spam-shield-action { margin-left: auto; color: var(--muted); }
.spam-auth-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 7px;
}
.spam-auth-grid > span {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    padding: 6px 8px;
    border: 1px solid var(--border);
    border-radius: 7px;
    background: var(--panel);
    color: var(--muted);
}
.spam-auth-grid strong.good,
.spam-shield-note.good { color: #62d493; }
.spam-auth-grid strong.bad,
.spam-shield-note.bad { color: #ff7b84; }
.spam-auth-grid strong.neutral { color: var(--muted); }
.spam-shield-note { font-weight: 650; }
.spam-shield-summary {
    padding-top: 7px;
    border-top: 1px solid var(--border);
    color: var(--muted);
    overflow-wrap: anywhere;
}
@media (max-width: 700px) {
    .spam-auth-grid { grid-template-columns: 1fr; }
    .spam-shield-panel { width: min(430px, calc(100vw - 28px)); }
}

/* FIX47 - Phase 8 backup progress + polished admin UI */
.backup-page-grid,.backup-transfer-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,.75fr);gap:18px;margin:0 30px 18px}
.backup-main-panel,.backup-info-panel,.backup-history-panel,.config-transfer-panel{overflow:hidden;margin:0}
.backup-panel-heading{min-height:66px;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--panel-2) 48%,var(--panel))}
.backup-panel-heading.compact{min-height:62px}
.backup-panel-heading>div{min-width:0;display:grid;gap:3px}
.backup-panel-heading .panel-title{padding:0;border:0;min-height:0}
.backup-panel-heading small{color:var(--muted);line-height:1.35}
.backup-state-pill{flex:0 0 auto;display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border:1px solid var(--border);border-radius:999px;background:var(--panel-2);color:var(--muted);font-size:11px;font-weight:800;white-space:nowrap}
.backup-state-pill.running{border-color:color-mix(in srgb,var(--accent) 40%,var(--border));background:color-mix(in srgb,var(--accent) 10%,var(--panel-2));color:var(--accent)}
.backup-state-pill.ok{border-color:color-mix(in srgb,var(--success) 42%,var(--border));background:color-mix(in srgb,var(--success) 9%,var(--panel-2));color:var(--success)}
.backup-settings-list{display:grid}
.backup-setting-row{min-height:72px;padding:13px 18px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,320px);align-items:center;gap:22px;cursor:default}
.backup-setting-row>span{display:grid;gap:3px;min-width:0}
.backup-setting-row>span strong{font-size:12.5px}
.backup-setting-row>span small{color:var(--muted);font-weight:400;line-height:1.35}
.backup-setting-row input{min-height:38px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:8px;padding:0 10px;outline:none;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}
.backup-setting-row input:focus{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent)}
.backup-setting-row input[type="checkbox"]{justify-self:end;width:17px;height:17px;min-height:17px;padding:0;accent-color:var(--accent)}
.backup-setting-row.compact-row{grid-template-columns:minmax(0,1fr) auto}
.backup-path-input{width:100%;min-width:0}
.backup-short-input{justify-self:end;width:150px}
.backup-actions-bar{min-height:62px;padding:12px 18px;display:flex;align-items:center;justify-content:flex-end;gap:10px;background:color-mix(in srgb,var(--panel-2) 34%,var(--panel))}
.backup-actions-bar .ui-icon{width:15px;height:15px}
.backup-live-progress{margin:0;border-top:1px solid var(--border);padding:16px 18px 17px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 7%,var(--panel)),var(--panel))}
.backup-progress-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:12px}
.backup-progress-title{min-width:0;display:flex;align-items:center;gap:11px}
.backup-progress-title>div{min-width:0;display:grid;gap:2px}
.backup-progress-title strong{font-size:12.5px}
.backup-progress-title small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.backup-progress-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 12%,transparent);animation:backupPulse 1.5s ease-in-out infinite}
@keyframes backupPulse{0%,100%{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 10%,transparent)}50%{box-shadow:0 0 0 7px color-mix(in srgb,var(--accent) 3%,transparent)}}
.backup-progress-percent{font-size:19px;font-variant-numeric:tabular-nums;color:var(--text)}
.backup-progress-track{height:8px;border:1px solid var(--border);border-radius:999px;background:var(--panel-3);overflow:hidden}
.backup-progress-fill{height:100%;border-radius:inherit;background:var(--accent);transition:width .35s ease}
.backup-progress-meta{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:10px;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}
.backup-progress-meta b{color:var(--text)}
.backup-progress-id{margin-left:auto;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px}
.backup-progress-note{display:block;margin-top:8px;color:var(--muted);line-height:1.35}
.backup-check-list{display:grid}
.backup-check-list>div{min-height:66px;padding:12px 18px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:center}
.backup-check-list>div>span:last-child{display:grid;gap:2px}
.backup-check-list small{color:var(--muted);line-height:1.35}
.backup-check-icon{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;border:1px solid color-mix(in srgb,var(--success) 35%,var(--border));background:color-mix(in srgb,var(--success) 9%,var(--panel-2));color:var(--success);font-size:12px;font-weight:900}
.backup-security-note{margin:14px 18px 0;padding:12px 13px;display:grid;gap:3px;border:1px solid color-mix(in srgb,var(--warning,#d9a441) 38%,var(--border));border-radius:9px;background:color-mix(in srgb,#d9a441 7%,var(--panel-2));line-height:1.4}
.backup-security-note span{color:var(--muted);font-size:11px}
.backup-restore-note,.config-exclusion-note{margin:12px 18px 18px;padding:12px 14px;border:1px solid var(--border);border-radius:9px;background:var(--panel-2);color:var(--muted);line-height:1.45}
.backup-history-panel{margin:0 30px 18px}
.backup-history-toolbar{min-height:66px;padding-top:10px;padding-bottom:10px;background:color-mix(in srgb,var(--panel-2) 36%,var(--panel))}
.backup-empty{padding:24px 18px;color:var(--muted)}
.backup-table td code{font-size:11px;word-break:break-all}
.backup-verify-pill{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:800;margin-bottom:4px}
.backup-verify-pill.ok{background:rgba(58,173,104,.15);color:#67d894;border:1px solid rgba(58,173,104,.35)}
.backup-verify-pill.bad{background:rgba(217,90,100,.14);color:#ff7b86;border:1px solid rgba(217,90,100,.34)}
.config-transfer-copy{padding:15px 18px 10px;color:var(--muted);line-height:1.52}
.config-transfer-copy p{margin:0 0 10px}
.config-export-form,.config-import-controls{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;padding:4px 18px 18px;align-items:end}
.config-export-form label,.config-import-controls label{display:grid;gap:6px}
.config-export-form label>span,.config-import-controls label>span{color:var(--muted);font-size:12px;font-weight:700}
.config-export-form input,.config-import-controls input[type="password"]{min-height:38px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:8px;padding:0 10px}
.config-import-controls input[type="file"]{max-width:100%;min-height:38px;color:var(--muted);font-size:11px}.config-import-controls input[type="file"]::file-selector-button{min-height:34px;margin-right:10px;padding:0 11px;border:1px solid var(--border);border-radius:7px;background:var(--panel-2);color:var(--text);cursor:pointer}.config-import-controls input[type="file"]::file-selector-button:hover{background:var(--panel-3)}
.config-preview-card{margin:0 18px 18px;padding:15px;border:1px solid var(--border);border-radius:10px;background:var(--panel-2)}
.config-preview-heading{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}.config-preview-heading span{color:var(--muted);font-size:12px}
.config-preview-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}.config-preview-stats span{padding:8px;border-radius:7px;background:rgba(255,255,255,.035);font-size:12px}.config-preview-stats b{font-size:16px;margin-right:4px}
.config-preview-warning{padding:10px 12px;border-radius:8px;margin:0 0 12px;font-size:12px;line-height:1.4}.config-preview-warning.ok{background:rgba(58,173,104,.1);border:1px solid rgba(58,173,104,.25)}.config-preview-warning.warning{background:rgba(217,90,100,.1);border:1px solid rgba(217,90,100,.25)}
.config-import-actions{display:flex;gap:10px;margin-bottom:10px}
@media(max-width:1200px){.backup-page-grid,.backup-transfer-grid{grid-template-columns:1fr}.config-export-form,.config-import-controls{grid-template-columns:1fr 1fr}.config-export-form button,.config-import-controls button{grid-column:1/-1}}
@media(max-width:760px){.backup-page-grid,.backup-transfer-grid,.backup-history-panel{margin-left:14px;margin-right:14px}.backup-setting-row{grid-template-columns:1fr;gap:9px;align-items:start}.backup-setting-row.compact-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}.backup-setting-row input:not([type="checkbox"]),.backup-short-input{justify-self:stretch;width:100%}.backup-panel-heading{align-items:flex-start;flex-direction:column}.backup-state-pill{align-self:flex-start}.config-export-form,.config-import-controls,.config-preview-stats{grid-template-columns:1fr}.config-export-form button,.config-import-controls button{grid-column:auto}.config-import-actions{display:grid}.backup-progress-meta{gap:8px 14px}.backup-progress-id{width:100%;margin-left:0}.backup-progress-title small{white-space:normal}}


/* FIX50 - Phase 8 dual backup profiles + FULL/incremental chains */
.backup-profile-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;margin:0 30px 18px}
.backup-profile-panel{overflow:hidden;margin:0}
.backup-inline-fields{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;min-width:0}
.backup-inline-fields>input,.backup-inline-fields>select{min-height:38px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:8px;padding:0 10px;outline:none;min-width:118px}
.backup-inline-fields>select{cursor:pointer}
.backup-inline-fields.network-address>input:first-child{min-width:190px;flex:1 1 180px}
.backup-inline-fields.network-address>input:nth-child(2){min-width:120px;flex:1 1 120px}
.backup-inline-fields.network-address>input:nth-child(3){min-width:140px;flex:1 1 140px}
.backup-inline-fields.credentials>input{min-width:150px;flex:1 1 145px}
.backup-inline-fields.credentials>select{min-width:112px}
.backup-mini-field{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;white-space:nowrap}
.backup-mini-field>span,.backup-mini-field>small{font-size:11px;color:var(--muted)}
.backup-mini-field>input{width:72px!important;min-width:72px!important;text-align:right}
.backup-actions-bar.split{justify-content:space-between}
.backup-actions-right{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.backup-global-progress{margin:0 30px 18px;border:1px solid var(--border);border-radius:10px;overflow:hidden}
.backup-global-status{margin:0 30px 18px}
.backup-info-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.backup-type-pill{display:inline-flex;align-items:center;padding:3px 8px;border:1px solid var(--border);border-radius:999px;font-size:10.5px;font-weight:900;letter-spacing:.03em}
.backup-type-pill.full{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--panel-2));border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}
.backup-type-pill.incremental{color:var(--success);background:color-mix(in srgb,var(--success) 10%,var(--panel-2));border-color:color-mix(in srgb,var(--success) 35%,var(--border))}
.backup-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;white-space:nowrap}
.backup-table .table-secondary{display:block;margin-top:3px;color:var(--muted);font-size:10.5px;line-height:1.25}
@media(max-width:1380px){.backup-profile-grid{grid-template-columns:1fr}.backup-info-grid{grid-template-columns:1fr}}
@media(max-width:760px){.backup-profile-grid,.backup-global-progress,.backup-global-status{margin-left:14px;margin-right:14px}.backup-inline-fields{justify-content:stretch}.backup-inline-fields>input,.backup-inline-fields>select{flex:1 1 100%;width:100%}.backup-actions-bar.split{align-items:stretch;flex-direction:column}.backup-actions-right{justify-content:stretch}.backup-actions-right>button,.backup-actions-bar.split>button{flex:1 1 auto}.backup-row-actions{align-items:stretch;flex-direction:column}}


/* FIX50 - simplified UNC SMB/NAS configuration */
.backup-setting-row.network-combined-row{align-items:start}
.backup-network-config{display:grid;gap:9px;min-width:0;width:100%}
.backup-network-path-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.backup-network-path-line .backup-path-input{min-width:0;width:100%;font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}
.backup-network-path-line .secondary-button{min-height:38px;white-space:nowrap}
.backup-inline-fields.network-credentials{justify-content:stretch}
.backup-inline-fields.network-credentials>input{min-width:145px;flex:1 1 145px}
.backup-inline-fields.network-credentials>select{min-width:130px;flex:0 1 145px}
@media(max-width:760px){.backup-network-path-line{grid-template-columns:1fr}.backup-network-path-line .secondary-button{width:100%}}

/* FIX52 - unified professional TAB workspace for Backup, Anti-Spam and Security */
.admin-module-page{min-height:100%;display:flex;flex-direction:column;min-width:0}
.admin-module-heading{padding-bottom:12px}
.admin-module-tabbar{display:flex;align-items:center;gap:6px;padding:0 30px 10px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:thin;background:color-mix(in srgb,var(--panel) 84%,transparent)}
.admin-module-tab-button{min-height:36px;display:inline-flex;align-items:center;gap:7px;padding:0 12px;border:1px solid color-mix(in srgb,var(--border) 70%,transparent);border-radius:8px;background:color-mix(in srgb,var(--panel-2) 42%,transparent);color:var(--muted);font-size:12px;font-weight:650;white-space:nowrap;cursor:pointer;transition:background .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease}
.admin-module-tab-button .ui-icon{width:14px;height:14px}
.admin-module-tab-button:hover{color:var(--text);border-color:color-mix(in srgb,var(--accent) 28%,var(--border));background:var(--panel-2)}
.admin-module-tab-button.active{color:var(--text);border-color:color-mix(in srgb,var(--accent) 42%,var(--border));background:color-mix(in srgb,var(--accent) 11%,var(--panel-2));box-shadow:inset 0 -2px 0 var(--accent),0 4px 14px rgba(0,0,0,.06)}
.admin-module-tab-button.active .ui-icon{color:var(--accent)}
.admin-module-tab-content{padding:18px 30px 30px;min-width:0}
.admin-module-panel,.module-contained-panel{margin:0;overflow:hidden}
.module-contained-grid{margin:0!important;padding:0!important;gap:16px}
.module-table-scroll{max-height:calc(100vh - 285px);min-height:260px}

/* Compact, consistent controls only inside the new admin module workspaces. */
.admin-pro-page .primary-button,.admin-pro-page .secondary-button,.admin-pro-page .danger-button{min-height:34px;padding:0 12px;border-radius:7px;font-size:12px;line-height:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}
.admin-pro-page .primary-button.compact,.admin-pro-page .secondary-button.compact,.admin-pro-page .danger-button.compact{min-height:30px;padding:0 9px;font-size:11.5px}
.admin-pro-page .primary-button .ui-icon,.admin-pro-page .secondary-button .ui-icon,.admin-pro-page .danger-button .ui-icon{width:14px;height:14px}
.admin-pro-page input:not([type="checkbox"]):not([type="radio"]),.admin-pro-page select{min-height:36px;border-radius:7px}
.admin-pro-page textarea{border-radius:8px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);padding:10px 11px;outline:none}
.admin-pro-page textarea:focus{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent)}
.admin-pro-page .panel-title{min-height:44px;padding-top:11px;padding-bottom:11px}
.admin-pro-page .admin-tab-toolbar{padding:11px 16px;border-bottom:1px solid var(--border);min-height:58px}
.admin-pro-page .admin-tab-toolbar .panel-title{min-height:0;padding:0}

/* Backup workspace: full-width form columns, so UNC paths remain readable. */
.admin-pro-page .backup-profile-panel{margin:0}
.admin-pro-page .backup-panel-heading{padding:11px 16px;min-height:58px}
.admin-pro-page .backup-setting-row{min-height:64px;padding:10px 16px;grid-template-columns:minmax(230px,330px) minmax(0,1fr);gap:24px}
.admin-pro-page .backup-setting-row.compact-row{grid-template-columns:minmax(230px,330px) minmax(0,1fr)}
.admin-pro-page .backup-setting-row.compact-row>input[type="checkbox"]{justify-self:end}
.admin-pro-page .backup-setting-row input{min-height:36px;border-radius:7px}
.admin-pro-page .backup-inline-fields{justify-content:flex-start}
.admin-pro-page .backup-inline-fields>input,.admin-pro-page .backup-inline-fields>select{min-height:36px;border-radius:7px}
.admin-pro-page .backup-short-input{justify-self:start;width:120px}
.admin-pro-page .backup-actions-bar{min-height:54px;padding:9px 16px}
.admin-pro-page .backup-network-config{gap:8px}
.admin-pro-page .backup-network-path-line{grid-template-columns:minmax(420px,1fr) max-content;gap:8px}
.admin-pro-page .backup-network-path-line .backup-path-input{font-size:12.5px;letter-spacing:.01em}
.admin-pro-page .backup-inline-fields.network-credentials{display:grid;grid-template-columns:minmax(160px,1.15fr) minmax(170px,1.15fr) minmax(160px,1fr) 150px;gap:8px}
.admin-pro-page .backup-inline-fields.network-credentials>input,.admin-pro-page .backup-inline-fields.network-credentials>select{width:100%;min-width:0}
.admin-pro-page .backup-global-progress,.admin-pro-page .backup-global-status{margin-left:30px;margin-right:30px}
.admin-pro-page .backup-history-panel{margin:0}
.admin-pro-page .backup-history-toolbar{background:color-mix(in srgb,var(--panel-2) 34%,var(--panel))}
.admin-pro-page .backup-info-grid,.admin-pro-page .backup-transfer-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.admin-pro-page .config-export-form,.admin-pro-page .config-import-controls{padding:12px 16px}

/* Anti-spam workspace */
.antispam-general-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr)}
.admin-pro-page .antispam-list-grid{padding:14px 16px;gap:16px}
.admin-pro-page .antispam-list-grid textarea{min-height:340px;font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;font-size:12px;line-height:1.45}
.admin-pro-page .antispam-stats-panel .admin-summary-grid{padding:14px 16px 18px}

/* Security workspace */
.admin-pro-page .security-users-panel,.admin-pro-page .security-backup-panel{margin:0}
.admin-pro-page .security-panel .panel-actions,.admin-pro-page .security-backup-panel .panel-actions{padding:10px 16px}
.admin-pro-page .security-settings-list>label{min-height:68px;padding:11px 16px}
.admin-pro-page .security-settings-list input{width:120px}
.admin-pro-page .security-integrity-copy,.admin-pro-page .security-backup-note{padding:14px 16px}
.admin-pro-page .integrity-result{margin:0 16px 16px}

@media(max-width:1100px){
  .antispam-general-grid,.admin-pro-page .backup-info-grid,.admin-pro-page .backup-transfer-grid{grid-template-columns:1fr}
  .admin-pro-page .backup-inline-fields.network-credentials{grid-template-columns:1fr 1fr}
}
@media(max-width:820px){
  .admin-module-tabbar{padding-left:14px;padding-right:14px}
  .admin-module-tab-content{padding:14px 14px 24px}
  .admin-pro-page .backup-global-progress,.admin-pro-page .backup-global-status{margin-left:14px;margin-right:14px}
  .admin-pro-page .backup-setting-row,.admin-pro-page .backup-setting-row.compact-row{grid-template-columns:1fr;gap:8px;align-items:start}
  .admin-pro-page .backup-setting-row.compact-row>input[type="checkbox"]{justify-self:start}
  .admin-pro-page .backup-network-path-line{grid-template-columns:1fr}
  .admin-pro-page .backup-network-path-line .secondary-button{justify-self:start;width:auto}
  .admin-pro-page .backup-inline-fields.network-credentials{grid-template-columns:1fr}
  .admin-pro-page .backup-short-input{width:100%}
  .admin-pro-page .backup-actions-bar.split{align-items:stretch;flex-direction:column}
  .admin-pro-page .backup-actions-right{justify-content:flex-start}
  .admin-pro-page .security-settings-list>label{align-items:flex-start;flex-direction:column}
  .admin-pro-page .security-settings-list input{width:100%}
}


/* FIX54 - administrator-only full restore */
.restore-tab-button.active{border-color:color-mix(in srgb,var(--warning,#d9a441) 48%,var(--border));box-shadow:inset 0 -2px 0 var(--warning,#d9a441),0 4px 14px rgba(0,0,0,.06)}
.restore-tab-button.active .ui-icon{color:var(--warning,#d9a441)}
.backup-restore-panel{margin:0;overflow:hidden}
.restore-admin-only-note{margin:14px 16px;display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:start;padding:12px 14px;border:1px solid color-mix(in srgb,var(--warning,#d9a441) 40%,var(--border));border-radius:9px;background:color-mix(in srgb,var(--warning,#d9a441) 7%,var(--panel-2))}
.restore-admin-only-note>.ui-icon{width:18px;height:18px;margin-top:2px;color:var(--warning,#d9a441)}
.restore-admin-only-note>div{display:grid;gap:3px}.restore-admin-only-note span{color:var(--muted);font-size:11.5px;line-height:1.45}
.restore-backup-list{border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.restore-selected-row{background:color-mix(in srgb,var(--accent) 7%,var(--panel))}
.restore-warning-text{color:var(--warning,#d9a441)!important}
.restore-selection-card{margin:16px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--panel-2)}
.restore-selection-summary{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px}.restore-selection-summary>div{min-width:0;display:grid;gap:4px}.restore-selection-summary span{font-size:10.5px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.restore-selection-summary strong{font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.restore-selection-summary>div:first-child strong{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.restore-prepare-actions{display:flex;align-items:center;justify-content:flex-end}
.restore-preview-card{margin:0 16px 16px;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--panel)}
.restore-preview-card.ready{border-color:color-mix(in srgb,var(--success) 35%,var(--border))}.restore-preview-card.blocked{border-color:color-mix(in srgb,var(--danger,#d95a64) 38%,var(--border))}
.restore-preview-title{display:grid;gap:4px;padding:13px 14px;border-bottom:1px solid var(--border);background:var(--panel-2)}.restore-preview-title span{color:var(--muted);font-size:11.5px;line-height:1.4}
.restore-preview-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--border)}.restore-preview-stats span{padding:11px 14px;background:var(--panel);font-size:11px;color:var(--muted)}.restore-preview-stats b{display:block;margin-bottom:2px;color:var(--text);font-size:13px}
.restore-danger-zone{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,280px) auto;gap:16px;align-items:end;padding:14px;background:color-mix(in srgb,var(--danger,#d95a64) 5%,var(--panel))}.restore-danger-zone>div{font-size:11.5px;line-height:1.45}.restore-danger-zone ul{margin:5px 0 0;padding-left:18px;color:var(--muted)}.restore-danger-zone label{display:grid;gap:6px}.restore-danger-zone label>span{font-size:11px;color:var(--muted)}.restore-danger-zone input{min-height:36px;border:1px solid color-mix(in srgb,var(--danger,#d95a64) 35%,var(--border));border-radius:7px;background:var(--panel-2);color:var(--text);padding:0 10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.restore-execute-button{white-space:nowrap;min-height:36px}.restore-status{margin:0 16px 16px}
@media(max-width:1180px){.restore-selection-card{grid-template-columns:1fr}.restore-selection-summary{grid-template-columns:1fr 1fr}.restore-prepare-actions{justify-content:flex-start}.restore-preview-stats{grid-template-columns:1fr 1fr}.restore-danger-zone{grid-template-columns:1fr 1fr}.restore-danger-zone>div{grid-column:1/-1}}
@media(max-width:700px){.restore-selection-summary,.restore-preview-stats,.restore-danger-zone{grid-template-columns:1fr}.restore-danger-zone>div{grid-column:auto}.restore-execute-button,.restore-prepare-actions>button{width:100%}}

/* v1.4.2 FIX57 - clear DR completeness state in Restore list */
.restore-dr-ok{display:block;color:var(--success,#16803c);font-weight:600;margin-top:3px}.restore-warning-text{display:block;margin-top:3px}.backup-row-actions button:disabled[title]{cursor:not-allowed}


/* v1.4.2 FIX58 - Restore progress + immediate operation feedback */
.restore-progress-panel{margin:16px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--border));border-radius:10px;background:color-mix(in srgb,var(--accent) 4%,var(--panel));box-shadow:0 8px 24px rgba(0,0,0,.05)}
.restore-progress-head{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:10px;align-items:center}.restore-progress-head>div{display:grid;gap:3px}.restore-progress-head strong{font-size:12.5px}.restore-progress-head span{font-size:11.5px;color:var(--muted);line-height:1.4}.restore-progress-head>b{font-size:12px;font-variant-numeric:tabular-nums}
.restore-spinner{width:18px;height:18px;border:2px solid color-mix(in srgb,var(--accent) 20%,var(--border));border-top-color:var(--accent);border-radius:50%;animation:restore-spin .75s linear infinite}@keyframes restore-spin{to{transform:rotate(360deg)}}
.restore-progress-track{height:7px;margin:12px 0 10px;border-radius:999px;overflow:hidden;background:var(--panel-2);border:1px solid var(--border)}.restore-progress-track>span{display:block;height:100%;min-width:2px;border-radius:inherit;background:var(--accent);transition:width .35s ease}
.restore-progress-steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.restore-progress-steps>span{display:flex;align-items:center;gap:5px;min-width:0;color:var(--muted);font-size:10.5px;white-space:nowrap}.restore-progress-steps i{display:inline-grid;place-items:center;flex:0 0 18px;width:18px;height:18px;border:1px solid var(--border);border-radius:50%;font-style:normal;font-size:9.5px;background:var(--panel)}.restore-progress-steps .active{color:var(--text);font-weight:700}.restore-progress-steps .active i{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent)}.restore-progress-steps .done{color:var(--success,#16803c)}.restore-progress-steps .done i{border-color:color-mix(in srgb,var(--success,#16803c) 45%,var(--border));background:color-mix(in srgb,var(--success,#16803c) 8%,var(--panel))}
@media(max-width:900px){.restore-progress-steps{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:8px}}@media(max-width:560px){.restore-progress-head{grid-template-columns:24px minmax(0,1fr)}.restore-progress-head>b{grid-column:2}.restore-progress-steps{grid-template-columns:1fr 1fr}}

/* FIX60 - System Manager only Clean Database / DR test reset */
.clean-db-tab-link{border-color:color-mix(in srgb,var(--danger,#d95a64) 32%,var(--border))!important;color:color-mix(in srgb,var(--danger,#d95a64) 78%,var(--text))!important}
.clean-db-tab-link:hover{background:color-mix(in srgb,var(--danger,#d95a64) 8%,var(--panel-2))!important}
.admin-clean-loading{padding:28px;color:var(--muted)}
.clean-db-hero{margin:16px;display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;align-items:start;padding:18px;border-color:color-mix(in srgb,var(--danger,#d95a64) 46%,var(--border));background:color-mix(in srgb,var(--danger,#d95a64) 5%,var(--panel))}
.clean-db-warning-icon{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;font-size:22px;font-weight:900;color:#fff;background:var(--danger,#d95a64);box-shadow:0 8px 20px color-mix(in srgb,var(--danger,#d95a64) 24%,transparent)}
.clean-db-hero h2{margin:2px 0 6px;font-size:20px}.clean-db-hero p{margin:0;color:var(--muted);line-height:1.55;max-width:1050px}
.clean-db-summary-grid{padding:0 16px 16px;grid-template-columns:repeat(6,minmax(120px,1fr))}
.clean-db-scope-panel,.clean-db-danger-zone,.clean-db-progress,.clean-db-result{margin:0 16px 16px;padding:16px}
.clean-db-scope-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:12px}.clean-db-scope{border:1px solid var(--border);border-radius:10px;padding:14px;background:var(--panel-2)}.clean-db-scope strong{display:block;margin-bottom:8px;font-size:11px;letter-spacing:.08em}.clean-db-scope.delete strong{color:var(--danger,#d95a64)}.clean-db-scope.keep strong{color:var(--success,#38ad68)}.clean-db-scope ul{margin:0;padding-left:18px;color:var(--muted);font-size:12px;line-height:1.65}
.clean-db-danger-zone{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,360px) auto;gap:18px;align-items:end;border-color:color-mix(in srgb,var(--danger,#d95a64) 44%,var(--border));background:color-mix(in srgb,var(--danger,#d95a64) 5%,var(--panel))}.clean-db-danger-zone p{margin:5px 0 10px;color:var(--muted);font-size:12px;line-height:1.5}.clean-db-check{display:flex!important;align-items:center;gap:8px;font-size:12px}.clean-db-confirm-input{display:grid;gap:6px}.clean-db-confirm-input>span{font-size:11px;color:var(--muted)}.clean-db-confirm-input input{min-height:36px;border:1px solid color-mix(in srgb,var(--danger,#d95a64) 38%,var(--border));border-radius:7px;background:var(--panel-2);color:var(--text);padding:0 10px;font-weight:800;letter-spacing:.06em}.clean-db-button{min-height:36px;white-space:nowrap}
.clean-db-progress{display:flex;align-items:center;gap:12px}.clean-db-progress strong,.clean-db-progress small{display:block}.clean-db-progress small{margin-top:3px;color:var(--muted)}.clean-db-spinner{width:22px;height:22px;border:3px solid color-mix(in srgb,var(--accent) 20%,var(--border));border-top-color:var(--accent);border-radius:50%;animation:clean-db-spin .8s linear infinite}@keyframes clean-db-spin{to{transform:rotate(360deg)}}
.clean-db-status{margin:0 16px 16px}.clean-db-result p{color:var(--muted)}.clean-db-result-meta{display:flex;gap:20px;flex-wrap:wrap;font-size:12px;margin:10px 0}.clean-db-result details{margin:12px 0;font-size:12px;color:var(--muted)}.clean-db-result details ul{max-height:180px;overflow:auto}.clean-db-next-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.clean-db-next-actions a{text-decoration:none}
@media(max-width:1300px){.clean-db-summary-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.clean-db-scope-grid,.clean-db-danger-zone{grid-template-columns:1fr}.clean-db-summary-grid{grid-template-columns:repeat(2,1fr)}.clean-db-button{width:100%}}
@media(max-width:600px){.clean-db-summary-grid{grid-template-columns:1fr}.clean-db-hero{grid-template-columns:1fr}.clean-db-warning-icon{width:34px;height:34px}}

/* FIX63 / Phase 9: central Backup & DR health center */
.phase9-dr-health-panel { overflow:hidden; }
.phase9-dr-toolbar { align-items:flex-start; padding-bottom:10px; }
.phase9-dr-toolbar .admin-tab-button { min-height:32px; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; }
.phase9-dr-error { margin:0 14px 10px; }
.phase9-dr-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; padding:0 14px 14px; }
.phase9-dr-card { min-width:0; padding:12px; border:1px solid var(--border); border-radius:10px; background:var(--panel-2); box-shadow:0 1px 0 color-mix(in srgb,#fff 3%,transparent) inset; }
.phase9-dr-card.ok { border-color:color-mix(in srgb,#57d79b 34%,var(--border)); }
.phase9-dr-card.warning { border-color:color-mix(in srgb,#e3b956 52%,var(--border)); }
.phase9-dr-card.critical { border-color:color-mix(in srgb,#ff737c 52%,var(--border)); }
.phase9-dr-card-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:9px; }
.phase9-dr-card-head > span:first-child { display:flex; align-items:center; gap:7px; min-width:0; font-size:11px; font-weight:700; }
.phase9-dr-card > strong { display:block; font-size:15px; line-height:1.25; margin-bottom:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.phase9-dr-card > small { display:block; color:var(--muted); font-size:10px; min-height:16px; }
.phase9-dr-meta { display:grid; gap:5px; margin-top:10px; padding-top:9px; border-top:1px solid color-mix(in srgb,var(--border) 72%,transparent); }
.phase9-dr-meta > span { display:flex; align-items:center; justify-content:space-between; gap:10px; color:var(--muted); font-size:10px; }
.phase9-dr-meta b { color:var(--text); font-weight:600; text-align:right; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.phase9-live-backup { margin:0 14px 14px; padding:10px 12px; border:1px solid color-mix(in srgb,var(--accent) 42%,var(--border)); border-radius:10px; background:color-mix(in srgb,var(--accent) 7%,var(--panel-2)); }
.phase9-live-backup-head { display:flex; justify-content:space-between; align-items:center; gap:12px; font-size:11px; margin-bottom:7px; }
.phase9-live-track { height:6px; overflow:hidden; border-radius:999px; background:color-mix(in srgb,var(--border) 78%,transparent); margin-bottom:7px; }
.phase9-live-track > span { display:block; height:100%; border-radius:inherit; background:var(--accent); transition:width .2s ease; }
.phase9-live-backup small { color:var(--muted); font-size:10px; }
@media(max-width:980px){ .phase9-dr-grid { grid-template-columns:1fr; } }

/* FIX64 / Phase 9 - Administration visual rhythm, symmetric actions and controls */
.admin-tabs-shell,
.admin-pro-page {
    --admin-control-h: 34px;
    --admin-control-radius: 7px;
    --admin-action-gap: 8px;
    --admin-section-gap: 16px;
    --admin-page-x: 30px;
}

/* One button system across every Administration surface. */
.admin-tabs-shell :is(.primary-button,.secondary-button,.danger-button),
.admin-pro-page :is(.primary-button,.secondary-button,.danger-button) {
    min-height: var(--admin-control-h);
    height: var(--admin-control-h);
    padding: 0 12px;
    border-radius: var(--admin-control-radius);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 12px;
    line-height: 1;
    white-space: nowrap;
    text-decoration: none;
    vertical-align: middle;
}
.admin-tabs-shell :is(.primary-button,.secondary-button,.danger-button).compact,
.admin-pro-page :is(.primary-button,.secondary-button,.danger-button).compact {
    min-height: 30px;
    height: 30px;
    padding-inline: 9px;
    font-size: 11px;
}
.admin-tabs-shell :is(.primary-button,.secondary-button,.danger-button) .ui-icon,
.admin-pro-page :is(.primary-button,.secondary-button,.danger-button) .ui-icon {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
}

/* Headings, tab strips and page gutters use the same horizontal rhythm. */
.admin-tabs-shell .admin-heading-compact,
.admin-pro-page .admin-module-heading {
    padding-left: var(--admin-page-x);
    padding-right: var(--admin-page-x);
}
.admin-pro-page .admin-module-heading {
    min-height: 78px;
    gap: 20px;
}
.admin-pro-page .admin-module-heading > .secondary-button,
.admin-pro-page .admin-module-heading > .page-heading-actions,
.admin-pro-page .admin-module-heading > div:last-child:not(:first-child) {
    flex: 0 0 auto;
}
.admin-tabbar,
.admin-module-tabbar {
    gap: 6px;
}
.admin-tabs-shell .admin-tab-button,
.admin-pro-page .admin-module-tab-button {
    min-height: 36px;
    height: 36px;
    padding: 0 12px;
    border-radius: 8px;
}

/* Main admin sections: equal vertical gaps and matching left/right edges. */
.admin-tabs-shell .admin-tab-content {
    padding-top: var(--admin-section-gap);
    padding-bottom: 28px;
}
.admin-tabs-shell .admin-simple-panel,
.admin-tabs-shell .admin-full-panel {
    margin-bottom: var(--admin-section-gap);
}
.admin-pro-page .admin-module-tab-content {
    padding-top: var(--admin-section-gap);
    padding-bottom: 28px;
}
.admin-pro-page .module-contained-grid {
    gap: var(--admin-section-gap) !important;
}

/* Toolbars and action bars all share one baseline. */
.admin-tabs-shell .admin-tab-toolbar,
.admin-pro-page .admin-tab-toolbar {
    min-height: 56px;
    padding: 10px 18px;
    gap: 16px;
    align-items: center;
}
.admin-tabs-shell :is(.admin-form-actions,.panel-actions,.backup-actions-bar,.backup-actions-right,.page-heading-actions,.audit-filter-actions,.clean-db-next-actions),
.admin-pro-page :is(.admin-form-actions,.panel-actions,.backup-actions-bar,.backup-actions-right,.page-heading-actions,.audit-filter-actions,.clean-db-next-actions) {
    gap: var(--admin-action-gap);
    align-items: center;
}
.admin-tabs-shell .admin-tab-toolbar > :is(button,a),
.admin-pro-page .admin-tab-toolbar > :is(button,a) {
    flex: 0 0 auto;
}
.admin-tabs-shell .panel-actions,
.admin-pro-page .panel-actions {
    min-height: 54px;
    display: flex;
    justify-content: flex-end;
    padding: 10px 18px;
}

/* General/System Health: text and action rail line up from panel to panel. */
.admin-tabs-shell .admin-health-hero {
    margin: 0 var(--admin-page-x) var(--admin-section-gap);
    padding: 0;
    align-items: center;
    gap: 24px;
}
.admin-tabs-shell .admin-health-hero-actions {
    min-width: 360px;
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: var(--admin-action-gap);
}
.admin-tabs-shell .admin-health-hero-actions > :is(button,a) {
    width: 100%;
}
.admin-tabs-shell .admin-general-row {
    min-height: 88px;
    padding: 16px 18px;
    gap: 24px;
    align-items: center;
}
.admin-tabs-shell .admin-general-row > :first-child {
    min-width: 0;
    flex: 1 1 auto;
}
.admin-tabs-shell .admin-general-row > :is(.primary-button,.secondary-button) {
    flex: 0 0 220px;
    width: 220px;
}
.admin-tabs-shell .admin-action-stack {
    flex: 0 0 220px;
    width: 220px;
    min-width: 220px;
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--admin-action-gap);
}
.admin-tabs-shell .admin-action-stack > :is(button,a) {
    width: 100%;
}
.admin-tabs-shell .auto-sync-controls {
    display: grid;
    grid-template-columns: max-content 120px 96px;
    align-items: end;
    justify-content: end;
    gap: var(--admin-action-gap);
}
.admin-tabs-shell .auto-sync-controls > .primary-button {
    width: 96px;
}

/* Tables: action cells use equal control footprints instead of mixed button sizes. */
.admin-tabs-shell .health-row-actions {
    display: grid;
    grid-template-columns: repeat(4,42px);
    justify-content: end;
    gap: 5px;
}
.admin-tabs-shell .health-action-button {
    width: 42px;
    min-width: 42px;
    height: 30px;
    padding: 0 5px;
    border-radius: 7px;
}
.admin-tabs-shell .admin-table th,
.admin-tabs-shell .admin-table td,
.admin-pro-page .admin-table th,
.admin-pro-page .admin-table td {
    vertical-align: middle;
}

/* Editors and two-column workspaces use one spacing scale. */
.admin-tabs-shell .admin-grid,
.admin-tabs-shell .admin-mailbox-layout,
.admin-tabs-shell .admin-users-layout,
.admin-tabs-shell .admin-rights-layout {
    gap: var(--admin-section-gap);
}
.admin-tabs-shell .admin-form-grid {
    gap: 10px 12px;
}
.admin-tabs-shell .admin-form-actions {
    margin-top: 14px;
}
.admin-tabs-shell .admin-form input:not([type="checkbox"]),
.admin-tabs-shell .admin-form select,
.admin-pro-page input:not([type="checkbox"]):not([type="radio"]),
.admin-pro-page select {
    min-height: 36px;
    height: 36px;
}

/* Backup / Anti-Spam / Security action symmetry. */
.admin-pro-page .backup-actions-bar {
    min-height: 54px;
    padding: 10px 16px;
}
.admin-pro-page .backup-actions-right {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: max-content;
    justify-content: end;
    gap: var(--admin-action-gap);
}
.admin-pro-page .antispam-health-row > :is(button,a) {
    min-width: 180px;
}
.admin-pro-page .security-panel .panel-actions > :is(button,a),
.admin-pro-page .security-backup-panel .panel-actions > :is(button,a) {
    min-width: 118px;
}

/* Audit now follows the same pro admin grid and action system. */
.admin-audit-page .audit-filter-panel,
.admin-audit-page .audit-panel {
    margin-left: var(--admin-page-x);
    margin-right: var(--admin-page-x);
    margin-bottom: var(--admin-section-gap);
}
.admin-audit-page .audit-filter-grid {
    gap: 12px;
}
.admin-audit-page .audit-filter-actions {
    display: grid;
    grid-template-columns: repeat(2,minmax(105px,1fr));
    align-self: end;
}
.admin-audit-page .audit-filter-actions > button {
    width: 100%;
}
.admin-audit-page .page-heading-actions {
    display: grid;
    grid-template-columns: repeat(2,max-content);
    gap: var(--admin-action-gap);
}

/* Clean Database destructive controls remain visually strong but aligned. */
.admin-pro-page .clean-db-danger-zone {
    gap: var(--admin-section-gap);
}
.admin-pro-page .clean-db-button {
    min-width: 154px;
}
.admin-pro-page .clean-db-next-actions > :is(a,button) {
    min-width: 150px;
}

@media(max-width:1050px) {
    .admin-tabs-shell .admin-health-hero {
        align-items: stretch;
        flex-direction: column;
    }
    .admin-tabs-shell .admin-health-hero-actions {
        width: 100%;
        min-width: 0;
        max-width: 520px;
    }
    .admin-tabs-shell .admin-general-row {
        align-items: stretch;
        flex-direction: column;
    }
    .admin-tabs-shell .admin-general-row > :is(.primary-button,.secondary-button),
    .admin-tabs-shell .admin-action-stack {
        flex-basis: auto;
        width: 100%;
        min-width: 0;
        max-width: 320px;
        align-self: flex-end;
    }
    .admin-tabs-shell .auto-sync-controls {
        width: 100%;
        justify-content: start;
        grid-template-columns: max-content 120px 96px;
    }
}
@media(max-width:820px) {
    .admin-tabs-shell,
    .admin-pro-page { --admin-page-x: 14px; }
    .admin-pro-page .admin-module-heading {
        align-items: flex-start;
        flex-direction: column;
        min-height: 0;
        gap: 10px;
    }
    .admin-tabs-shell .admin-health-hero-actions {
        grid-template-columns: 1fr;
        max-width: none;
    }
    .admin-tabs-shell .auto-sync-controls {
        grid-template-columns: 1fr;
    }
    .admin-tabs-shell .auto-sync-controls > *,
    .admin-tabs-shell .auto-sync-controls > .primary-button {
        width: 100%;
    }
    .admin-tabs-shell .admin-general-row > :is(.primary-button,.secondary-button),
    .admin-tabs-shell .admin-action-stack {
        max-width: none;
    }
    .admin-pro-page .backup-actions-right {
        grid-auto-flow: row;
        grid-auto-columns: 1fr;
        width: 100%;
    }
    .admin-pro-page .backup-actions-right > :is(button,a) {
        width: 100%;
    }
    .admin-audit-page .page-heading-actions {
        width: 100%;
        grid-template-columns: 1fr 1fr;
    }
    .admin-audit-page .page-heading-actions > a {
        width: 100%;
    }
}

/* FIX65 / Phase 9 - one Administration workspace + real tab panels */
.admin-workspace-heading {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}
.admin-workspace-heading > div:first-child { min-width:0; }
.admin-exit-form { margin:0; flex:0 0 auto; }
.admin-workspace-heading .admin-exit-button {
    min-width:164px;
    justify-content:center;
}

/* Primary Administration navigation is rendered as a connected tab strip. */
.admin-primary-tabs,
.admin-real-subtabs {
    align-items:flex-end;
    gap:2px !important;
    padding-bottom:0 !important;
    border-bottom:1px solid var(--border);
    background:color-mix(in srgb,var(--panel) 92%,transparent);
}
.admin-primary-tabs .admin-real-tab,
.admin-real-subtabs .admin-module-tab-button {
    min-height:38px !important;
    height:38px !important;
    margin:0 0 -1px 0;
    padding:0 13px !important;
    border:1px solid transparent !important;
    border-bottom:1px solid transparent !important;
    border-radius:8px 8px 0 0 !important;
    background:transparent !important;
    box-shadow:none !important;
    text-decoration:none;
    position:relative;
}
.admin-primary-tabs .admin-real-tab:hover,
.admin-real-subtabs .admin-module-tab-button:hover {
    color:var(--text);
    background:color-mix(in srgb,var(--panel-2) 72%,transparent) !important;
    border-color:color-mix(in srgb,var(--border) 78%,transparent) !important;
    border-bottom-color:var(--border) !important;
}
.admin-primary-tabs .admin-real-tab.active,
.admin-real-subtabs .admin-module-tab-button.active {
    color:var(--text);
    background:var(--panel) !important;
    border-color:var(--border) !important;
    border-bottom-color:var(--panel) !important;
    box-shadow:inset 0 2px 0 var(--accent) !important;
    z-index:2;
}
.admin-primary-tabs .admin-real-tab.active .ui-icon,
.admin-real-subtabs .admin-module-tab-button.active .ui-icon { color:var(--accent); }
.admin-primary-tabs .admin-real-tab:focus-visible,
.admin-real-subtabs .admin-module-tab-button:focus-visible {
    outline:2px solid color-mix(in srgb,var(--accent) 70%,white);
    outline-offset:-3px;
}

/* Routed modules are no longer separate pages visually: same header, same main tabs, same scroll body. */
.admin-routed-workspace {
    height:100%;
    min-height:0;
    display:grid;
    grid-template-rows:auto auto minmax(0,1fr);
    overflow:hidden;
}
.admin-routed-body {
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    scrollbar-gutter:stable;
}
.admin-embedded-module {
    min-height:100%;
    padding-bottom:28px;
}
.admin-embedded-module .admin-module-heading-inline {
    min-height:0;
    padding-top:16px;
    padding-bottom:12px;
    margin:0;
    border-bottom:0;
}
.admin-embedded-module .admin-module-heading-inline h1 { margin-bottom:3px; }
.admin-embedded-module .admin-module-heading-inline p { margin-bottom:0; }
.admin-embedded-module .admin-module-tabbar {
    padding-left:var(--admin-page-x);
    padding-right:var(--admin-page-x);
}
.admin-real-tabpanel {
    min-width:0;
    padding-top:var(--admin-section-gap) !important;
}

/* Audit and destructive tools use exactly the same in-workspace gutters. */
.admin-embedded-module.admin-audit-page > .audit-filter-panel,
.admin-embedded-module.admin-audit-page > .audit-panel,
.admin-embedded-module > .clean-db-hero,
.admin-embedded-module > .clean-db-scope-panel,
.admin-embedded-module > .clean-db-danger-zone,
.admin-embedded-module > .clean-db-progress,
.admin-embedded-module > .clean-db-result,
.admin-embedded-module > .clean-db-status {
    margin-left:var(--admin-page-x);
    margin-right:var(--admin-page-x);
}

@media (max-width: 900px) {
    .admin-workspace-heading { align-items:flex-start; }
    .admin-workspace-heading .admin-exit-button { min-width:0; }
    .admin-primary-tabs,
    .admin-real-subtabs { padding-left:14px !important; padding-right:14px !important; }
    .admin-embedded-module .admin-module-heading-inline { padding-left:14px; padding-right:14px; }
    .admin-embedded-module.admin-audit-page > .audit-filter-panel,
    .admin-embedded-module.admin-audit-page > .audit-panel,
    .admin-embedded-module > .clean-db-hero,
    .admin-embedded-module > .clean-db-scope-panel,
    .admin-embedded-module > .clean-db-danger-zone,
    .admin-embedded-module > .clean-db-progress,
    .admin-embedded-module > .clean-db-result,
    .admin-embedded-module > .clean-db-status { margin-left:14px; margin-right:14px; }
}

/* FIX67 / Phase 9 - tab strips must never create their own vertical scrollbar.
   Keep horizontal panning available on narrow screens, but hide the scrollbar chrome. */
.admin-tabbar,
.admin-module-tabbar,
.admin-primary-tabs,
.admin-real-subtabs {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none;
    overscroll-behavior-inline: contain;
}
.admin-tabbar::-webkit-scrollbar,
.admin-module-tabbar::-webkit-scrollbar,
.admin-primary-tabs::-webkit-scrollbar,
.admin-real-subtabs::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
    display: none;
}

/* FIX68 / Phase 9 - global Administration visual consistency pass -----------------
   One spacing/width/header/control language across all admin tabs and routed modules. */

/* 1) Keep the current real-tab geometry; change only the selected background tint.
   Match the subtle translucent accent used by the selected private/shared mailbox card. */
.admin-primary-tabs .admin-real-tab.active,
.admin-real-subtabs .admin-module-tab-button.active {
    background: color-mix(in srgb, var(--accent) 9%, var(--panel-2)) !important;
}

/* 2) Title bars are always full-width. A toolbar that contains a title is itself
   the title bar, so the title no longer renders as a short dark block inside it. */
.panel > .admin-tab-toolbar,
.panel > .storage-table-head,
.panel > .storage-control-row,
.panel > .backup-panel-heading {
    width: 100%;
    margin: 0;
    background: var(--panel-2);
    border-bottom: 1px solid var(--border);
}
.panel > .admin-tab-toolbar {
    min-height: 58px;
    padding: 10px 16px;
}
.panel > .admin-tab-toolbar .panel-title,
.panel > .storage-table-head .panel-title,
.panel > .storage-control-row .panel-title,
.panel > .backup-panel-heading .panel-title {
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}
.panel > .panel-title {
    width: 100%;
}
.admin-panel-title-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}
.admin-panel-title-actions > span:first-child {
    min-width: 0;
}
.admin-panel-title-actions > :is(button,a) {
    flex: 0 0 auto;
}

/* 3) Every Administration tab uses the same page width. Storage used to have a
   separate 1500px centered cap which made the content jump when switching tabs. */
.admin-tabs-shell .admin-tab-content,
.admin-routed-workspace .admin-pro-page,
.admin-routed-workspace .admin-module-page {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
}
.admin-tabs-shell .admin-storage-tab {
    width: 100%;
    max-width: none !important;
    margin: 0 !important;
}

/* 4) Nested admin lists/editors may scroll themselves when necessary, but they must
   hand the wheel back to the page at their top/bottom edge. This fixes the case where
   the main Administration page stopped scrolling while the pointer was over a panel. */
.admin-tabs-shell :is(.admin-list-scroll,.admin-editor-scroll,.admin-table-scroll,.admin-table-wrap,.permission-editor-list),
.admin-routed-workspace :is(.admin-list-scroll,.admin-editor-scroll,.admin-table-scroll,.admin-table-wrap,.permission-editor-list) {
    overscroll-behavior-y: auto !important;
}
.admin-tabs-shell .admin-mailbox-list {
    overflow: hidden !important;
}

/* 5) Mailbox/User split workspaces share the same geometry. */
.admin-user-mailbox-layout {
    align-items: stretch;
}
.admin-user-mailbox-layout > .panel {
    min-height: 560px;
    max-height: calc(100vh - 215px);
    overflow: hidden;
}
.admin-user-list-panel {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.admin-user-row {
    grid-template-columns: 28px minmax(0,1fr) auto;
}
.admin-user-list-role {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    white-space: nowrap;
}
.admin-user-editor-panel {
    min-width: 0;
}
.admin-user-editor {
    border-top: 0 !important;
    padding: 16px !important;
    display: grid;
    gap: 12px;
}
.admin-user-intro-note {
    margin: 0 0 2px;
    padding: 0 0 12px;
    border-bottom: 1px solid var(--border);
}
.admin-user-flags {
    min-height: 36px;
    margin: 0;
    align-items: center;
    align-self: end;
    flex-wrap: wrap;
}
.admin-user-actions {
    margin-top: 4px;
}

/* 6) Rights page: same split geometry, tighter vertical rhythm and no artificial
   560px empty editor when only a few users exist. */
.admin-rights-layout {
    padding-bottom: var(--admin-section-gap) !important;
}
.admin-rights-layout > .panel {
    min-height: 360px !important;
    max-height: min(520px, calc(100vh - 260px)) !important;
}
.admin-rights-editor-panel .rights-editor {
    padding: 16px !important;
}
.admin-rights-editor-panel .rights-editor > .admin-note {
    margin: 0 0 14px;
}
.admin-rights-editor-panel .rights-list {
    max-height: 300px;
}
.admin-rights-editor-panel .permission-editor-row {
    min-height: 48px;
    padding: 8px 12px;
    gap: 12px;
}
.admin-rights-editor-panel .admin-form-actions {
    margin-top: 14px;
    padding-top: 2px;
}
.admin-rights-summary-panel {
    margin-top: 0 !important;
}

/* 7) One CompanyMail form-control style in every Administration surface.
   Disabled/read-only fields stay in-theme instead of falling back to grey browser UI. */
.admin-tabs-shell :is(
    input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]),
    select,
    textarea
),
.admin-routed-workspace :is(
    input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]),
    select,
    textarea
) {
    border: 1px solid var(--border);
    background: var(--panel-2);
    color: var(--text);
    border-radius: var(--admin-control-radius, 7px);
    outline: none;
    box-shadow: none;
    transition: border-color .14s ease, background .14s ease, box-shadow .14s ease;
}
.admin-tabs-shell :is(
    input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]),
    select
),
.admin-routed-workspace :is(
    input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]),
    select
) {
    min-height: 36px;
    height: 36px;
    padding: 0 10px;
}
.admin-tabs-shell textarea,
.admin-routed-workspace textarea {
    padding: 9px 10px;
}
.admin-tabs-shell :is(input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]),select,textarea):focus,
.admin-routed-workspace :is(input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]),select,textarea):focus {
    border-color: color-mix(in srgb, var(--accent) 64%, var(--border));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 11%, transparent);
}
.admin-tabs-shell :is(input,textarea)::placeholder,
.admin-routed-workspace :is(input,textarea)::placeholder {
    color: color-mix(in srgb, var(--muted) 80%, transparent);
    opacity: 1;
}
.admin-tabs-shell :is(input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]),select,textarea):disabled,
.admin-tabs-shell :is(input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]),textarea)[readonly],
.admin-routed-workspace :is(input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]),select,textarea):disabled,
.admin-routed-workspace :is(input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]),textarea)[readonly] {
    background: color-mix(in srgb, var(--panel-3) 72%, var(--panel));
    border-color: color-mix(in srgb, var(--border) 86%, transparent);
    color: color-mix(in srgb, var(--text) 64%, var(--muted));
    -webkit-text-fill-color: color-mix(in srgb, var(--text) 64%, var(--muted));
    opacity: 1;
    cursor: default;
}
.admin-tabs-shell input[type="number"],
.admin-routed-workspace input[type="number"] {
    color-scheme: inherit;
}

/* Panel/table geometry must not jump between tabs. */
.admin-tabs-shell .admin-simple-panel,
.admin-tabs-shell .admin-full-panel,
.admin-tabs-shell .admin-health-hero,
.admin-tabs-shell .admin-storage-hero,
.admin-tabs-shell .summary-grid,
.admin-tabs-shell .admin-mailbox-layout {
    max-width: none;
}

@media (max-width: 1100px) {
    .admin-user-mailbox-layout {
        grid-template-columns: 1fr;
    }
    .admin-user-mailbox-layout > .panel,
    .admin-rights-layout > .panel {
        min-height: 0 !important;
        max-height: none !important;
    }
}

@media (max-width: 760px) {
    .admin-panel-title-actions {
        align-items: stretch;
        flex-direction: column;
    }
    .admin-panel-title-actions > :is(button,a) {
        align-self: flex-start;
    }
}


/* FIX72 / Phase 9 - sidebar glass tool rail alignment -------------------------------
   Match the shortcut rail to the final UI mockup: the first shortcut starts on the
   same left axis as the CompanyMail brand mark, all shortcuts are vertically centred
   inside one translucent/blurred full-width band, and only the content below scrolls. */
.sidebar > .mail-tree {
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden !important;
    padding: 0 !important;
    scrollbar-gutter: auto !important;
}
.tree-top-shortcuts {
    flex: 0 0 54px;
    width: 100%;
    height: 54px;
    box-sizing: border-box;
    margin: 0;
    padding: 0 18px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 7px;
    position: relative;
    z-index: 35;
    background:
        linear-gradient(90deg,
            color-mix(in srgb, var(--panel-2) 76%, transparent),
            color-mix(in srgb, var(--panel) 60%, transparent));
    border-bottom: 1px solid color-mix(in srgb, var(--border) 74%, transparent);
    box-shadow: 0 7px 18px rgba(0,0,0,.08);
    -webkit-backdrop-filter: blur(11px) saturate(114%);
    backdrop-filter: blur(11px) saturate(114%);
}
html[data-theme="light"] .tree-top-shortcuts {
    background:
        linear-gradient(90deg,
            color-mix(in srgb, #eef3fa 80%, transparent),
            color-mix(in srgb, #f7f9fc 65%, transparent));
    box-shadow: 0 7px 16px rgba(38,55,78,.06);
}
.tree-top-icon-link {
    width: 36px;
    height: 36px;
    margin: 0;
    transform: none;
    flex: 0 0 36px;
}
.tree-top-icon-link:active { transform: translateY(1px); }
.mail-tree-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior-y: contain;
    scrollbar-gutter: stable;
    padding: 0 11px 28px;
    scrollbar-width: thin;
    scrollbar-color: transparent transparent;
}
.sidebar:hover .mail-tree-scroll { scrollbar-color: var(--scroll-thumb) transparent; }
.mail-tree-scroll::-webkit-scrollbar { width: 7px; height: 7px; }
.mail-tree-scroll::-webkit-scrollbar-track { background: transparent; }
.mail-tree-scroll::-webkit-scrollbar-thumb { background: transparent; border-radius: 999px; }
.sidebar:hover .mail-tree-scroll::-webkit-scrollbar-thumb {
    background: color-mix(in srgb, var(--scroll-thumb) 78%, transparent);
}
.sidebar:hover .mail-tree-scroll::-webkit-scrollbar-thumb:hover { background: var(--scroll-thumb-hover); }

/* Rules: mailbox colour marker restored from FIX69. */
.advanced-rule-row:not(.rule-head) { position: relative; }
.advanced-rule-row:not(.rule-head)::before {
    content: "";
    position: absolute;
    left: 5px;
    top: 8px;
    bottom: 8px;
    width: 4px;
    border-radius: 999px;
    background: var(--mailbox-rule-color, #c5ceda);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--mailbox-rule-color, #c5ceda) 42%, transparent);
}

/* Send/Receive keeps its action label; outcome is a separate compact status. */
.send-receive-status {
    max-width: 128px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--muted);
    font-size: 11px;
    font-weight: 600;
}
.send-receive-status.error { color: #ff9da5; }
@media (max-width: 980px) { .send-receive-status { display: none; } }

/* JS-only bridge for Ctrl+A. It participates in layout only as an invisible command. */
.mail-select-all-trigger {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
    padding: 0 !important;
    margin: -1px !important;
}

/* v1.4.2 FIX73 - CompanyMail Large Files ------------------------------- */
.compose-attachment-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}
.compose-attachment-name {
    max-width: 280px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.compose-attachment-chip.large-file {
    border-color: color-mix(in srgb, var(--accent) 46%, var(--border));
    background: color-mix(in srgb, var(--accent) 10%, var(--panel-2));
}
.large-file-badge,
.regular-file-badge {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 2px 7px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 650;
    white-space: nowrap;
}
.large-file-badge {
    color: var(--accent-text, #a9c7ff);
    border: 1px solid color-mix(in srgb, var(--accent) 38%, transparent);
    background: color-mix(in srgb, var(--accent) 12%, transparent);
}
.regular-file-badge {
    color: var(--muted);
    border: 1px solid var(--border);
    background: color-mix(in srgb, var(--panel-3) 76%, transparent);
}
.compose-attachment-policy {
    flex-basis: 100%;
    padding: 2px 3px 0;
    color: var(--muted);
    font-size: 11px;
}
.compose-card.compose-uploading {
    position: relative;
}
.compose-card.compose-uploading::after {
    content: "Nalaganje in antivirusni pregled priponk ...";
    position: absolute;
    inset: 0;
    z-index: 30;
    display: grid;
    place-items: center;
    padding: 20px;
    border-radius: inherit;
    color: var(--text);
    font-weight: 700;
    letter-spacing: .01em;
    background: color-mix(in srgb, var(--panel) 82%, transparent);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}
.large-file-status-strip {
    display: grid;
    gap: 7px;
    padding: 9px 12px;
    border-top: 1px solid var(--border);
    background: color-mix(in srgb, var(--accent) 4%, var(--panel-2));
}
.large-file-status-item {
    display: grid;
    grid-template-columns: auto minmax(180px, 1fr) auto auto;
    align-items: center;
    gap: 9px 14px;
    min-width: 0;
    padding: 8px 10px;
    border: 1px solid color-mix(in srgb, var(--accent) 25%, var(--border));
    border-radius: 9px;
    background: color-mix(in srgb, var(--accent) 6%, var(--panel));
}
.large-file-status-icon {
    font-size: 18px;
    color: var(--accent-text, #a9c7ff);
}
.large-file-status-main {
    min-width: 0;
    display: grid;
    gap: 2px;
}
.large-file-status-main strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.large-file-status-main small,
.large-file-download-count,
.large-file-expiry {
    color: var(--muted);
    font-size: 11px;
    white-space: nowrap;
}
@media (max-width: 900px) {
    .large-file-status-item { grid-template-columns: auto minmax(0, 1fr); }
    .large-file-download-count,
    .large-file-expiry { grid-column: 2; }
}

/* FIX73 / Phase 9 - CompanyMail Large Files ----------------------------------- */
