/* =============================================================
   TIRTA HIDAYAH — Roundcube Custom Theme
   Perumda Tirta Hidayah  |  tirtahidayah.com
============================================================= */

/* ── CSS Variables ─────────────────────────────────────────── */
:root {
    --th-blue:        #0077ad;
    --th-blue-dark:   #075979;
    --th-blue-deep:   #0a2540;
    --th-cyan:        #21b8e7;
    --th-sky:         #0ea5e9;
    --th-soft:        #e7f5fb;
    --th-ink:         #0f2233;
    --th-muted:       #607386;
    --th-border:      #d5e6ef;
    --th-bg:          #f4f8fb;
    --th-white:       #ffffff;
    --th-radius:      10px;
    --th-shadow:      0 2px 8px rgba(7,89,121,.10);
    --th-transition:  .15s ease;

    /* Sidebar */
    --th-sb-bg-from:  #0a2540;
    --th-sb-bg-to:    #071828;
    --th-sb-text:     rgba(255,255,255,.78);
    --th-sb-active:   rgba(33,184,231,.22);
    --th-sb-hover:    rgba(255,255,255,.09);
    --th-sb-accent:   #21b8e7;
}

/* ── Scrollbar ─────────────────────────────────────────────── */
::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--th-border); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--th-blue); }

/* ── Base body ─────────────────────────────────────────────── */
body:not(.task-login) {
    font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
    background: var(--th-bg);
    color: var(--th-ink);
}


/* =============================================================
   SIDEBAR — narrow icon rail (#layout-menu / #taskmenu)
============================================================= */

#layout-menu {
    background: linear-gradient(180deg, var(--th-sb-bg-from) 0%, var(--th-sb-bg-to) 100%) !important;
    box-shadow: 2px 0 12px rgba(7,89,121,.28) !important;
    overflow: hidden !important;
    z-index: 200 !important;
    position: relative !important;
}

/* Sembunyikan semua header/logo bawaan di dalam layout-menu */
#layout-menu .popover-header,
#layout-menu .header,
#layout-menu #logo,
#taskmenu .header,
#taskmenu .header-logo,
#taskmenu #logo,
#taskmenu .minmodetoggle {
    display: none !important;
}

/* Container utama taskmenu */
#taskmenu {
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
}

/* ── Avatar ──────────────────────────────────────────────── */
#taskmenu::before {
    content: "" !important;
    display: block !important;
    width: 46px !important;
    height: 46px !important;
    margin: 12px auto 8px !important;
    border-radius: 50% !important;
    background-image: var(--avatar-url, url("../images/default-avatar.png")) !important;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    border: 2px solid rgba(255,255,255,.20) !important;
    box-shadow: 0 3px 10px rgba(0,0,0,.30) !important;
    pointer-events: none !important;
    flex-shrink: 0 !important;
}

/* ── Tombol Compose ──────────────────────────────────────── */
#taskmenu .action-buttons {
    padding: 0 8px 8px !important;
    border-bottom: 1px solid rgba(255,255,255,.10) !important;
    margin-bottom: 4px !important;
}

#taskmenu .action-buttons > a.compose {
    display: block !important;
    width: 100% !important;
    padding: 7px 6px !important;
    border-radius: 8px !important;
    background: linear-gradient(135deg, var(--th-cyan), var(--th-sky)) !important;
    color: #fff !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    text-align: center !important;
    text-decoration: none !important;
    text-transform: uppercase !important;
    letter-spacing: .05em !important;
    box-shadow: 0 3px 10px rgba(14,165,233,.40) !important;
    transition: filter var(--th-transition) !important;
    border: none !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}
#taskmenu .action-buttons > a.compose:hover {
    filter: brightness(1.12) !important;
    color: #fff !important;
}

/* Span .inner di dalam tombol compose */
#taskmenu .action-buttons > a.compose .inner {
    color: inherit !important;
    font-size: inherit !important;
}

/* ── Menu items (Mail, Kontak, Settings, dll) ────────────── */
#taskmenu > a {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 52px !important;
    padding: 8px 4px !important;
    color: var(--th-sb-text) !important;
    text-decoration: none !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    letter-spacing: .01em !important;
    border-left: 3px solid transparent !important;
    border-right: none !important;
    border-top: none !important;
    border-bottom: none !important;
    background: transparent !important;
    transition: background var(--th-transition), color var(--th-transition), border-color var(--th-transition) !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

/* Icon pseudo-element di dalam menu items */
#taskmenu > a::before {
    opacity: .82;
    margin-bottom: 3px;
    font-size: 17px !important;
}

/* Label teks menu item */
#taskmenu > a .inner {
    color: inherit !important;
    font-size: 9.5px !important;
    line-height: 1.1 !important;
    text-align: center !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: 100% !important;
    display: block !important;
}

#taskmenu > a:hover {
    background: var(--th-sb-hover) !important;
    color: #fff !important;
    border-left-color: rgba(33,184,231,.45) !important;
}

#taskmenu > a.selected,
#taskmenu > a.active {
    background: var(--th-sb-active) !important;
    color: #fff !important;
    border-left-color: var(--th-sb-accent) !important;
}

/* ── Special buttons (logout, about, dark mode) ──────────── */
#taskmenu .special-buttons {
    margin-top: auto !important;
    width: 100% !important;
    border-top: 1px solid rgba(255,255,255,.10) !important;
    padding-top: 2px !important;
}

#taskmenu .special-buttons > a {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 48px !important;
    padding: 7px 4px !important;
    color: rgba(255,255,255,.55) !important;
    font-size: 9.5px !important;
    font-weight: 400 !important;
    text-decoration: none !important;
    border-left: 3px solid transparent !important;
    background: transparent !important;
    transition: all var(--th-transition) !important;
    overflow: hidden !important;
}

#taskmenu .special-buttons > a .inner {
    color: inherit !important;
    font-size: 9px !important;
    line-height: 1.1 !important;
    text-align: center !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: 100% !important;
    display: block !important;
}

#taskmenu .special-buttons > a:hover {
    background: rgba(255,255,255,.08) !important;
    color: rgba(255,255,255,.85) !important;
    border-left-color: rgba(255,255,255,.25) !important;
}

#taskmenu .special-buttons > a.logout:hover {
    background: rgba(220,38,38,.18) !important;
    color: #fca5a5 !important;
    border-left-color: #f87171 !important;
}

/* ── Floating Action Button (FAB) — sembunyikan, sudah ada di sidebar ── */
.floating-action-buttons {
    display: none !important;
}


/* =============================================================
   LAYOUT — containers
============================================================= */

#layout {
    overflow: hidden !important;
}

#layout-sidebar {
    background: var(--th-white) !important;
    border-right: 1px solid var(--th-border) !important;
    overflow: hidden !important;
    z-index: 100 !important;
}

#layout-sidebar .header {
    background: var(--th-white) !important;
    border-bottom: 1px solid var(--th-border) !important;
    box-shadow: none !important;
}

#layout-sidebar .header .username {
    color: var(--th-blue-dark) !important;
    font-weight: 600 !important;
    font-size: 12.5px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

#layout-list {
    background: var(--th-white) !important;
    border-right: 1px solid var(--th-border) !important;
    overflow: hidden !important;
}

#layout-content,
#messagecontframe,
#messagepartframe {
    background: var(--th-white) !important;
    overflow: hidden !important;
}

/* ── Quota bar ─────────────────────────────────────────────── */
.quota-widget .progressbar .bar {
    background: var(--th-blue) !important;
}


/* =============================================================
   HEADER / TOOLBAR
============================================================= */

.toolbar,
.header {
    background: var(--th-white) !important;
    border-bottom: 1px solid var(--th-border) !important;
    box-shadow: 0 1px 4px rgba(7,89,121,.07) !important;
}

.toolbar a.button,
.toolbar button,
.toolbar a {
    border-radius: 6px !important;
    transition: background var(--th-transition), color var(--th-transition) !important;
}

.toolbar a.button.active,
.toolbar a.button:not(.disabled):hover {
    background: var(--th-soft) !important;
    color: var(--th-blue-dark) !important;
}


/* =============================================================
   FOLDER LIST (sidebar folder tree)
============================================================= */

#mailboxlist a,
.folderlist a {
    border-radius: 6px !important;
    margin: 1px 5px !important;
    padding: 6px 10px !important;
    color: var(--th-ink) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    transition: background var(--th-transition) !important;
    display: flex !important;
    align-items: center !important;
}

#mailboxlist a:hover,
.folderlist a:hover {
    background: var(--th-soft) !important;
    color: var(--th-blue-dark) !important;
    text-decoration: none !important;
}

#mailboxlist li.selected > a,
#mailboxlist li.focused > a,
.folderlist li.selected > a {
    background: var(--th-soft) !important;
    color: var(--th-blue-dark) !important;
    font-weight: 700 !important;
}

.unreadcount {
    background: var(--th-blue) !important;
    color: #fff !important;
    border-radius: 20px !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    padding: 1px 6px !important;
    min-width: 18px !important;
    text-align: center !important;
    margin-left: auto !important;
}


/* =============================================================
   EMAIL LIST
============================================================= */

table.messagelist { border-collapse: collapse !important; }

table.messagelist tr,
.listing li {
    border-bottom: 1px solid #f0f7fb !important;
    transition: background var(--th-transition) !important;
}

table.messagelist tr:hover td,
.listing li:hover {
    background: #f0f8fd !important;
}

table.messagelist tr.selected td,
.listing li.selected,
.listing tr.selected td {
    background: var(--th-soft) !important;
    color: var(--th-blue-dark) !important;
}

/* Unread */
table.messagelist tr.unread td.subject,
.messagelist li.unread .subject {
    font-weight: 700 !important;
    color: var(--th-ink) !important;
}

table.messagelist td.sender { font-weight: 600; font-size: 13px; }
table.messagelist td.date   { color: var(--th-muted); font-size: 11.5px; }
table.messagelist td.subject { font-size: 13px; color: #2c4a5e; }


/* =============================================================
   MESSAGE VIEW
============================================================= */

#message-header {
    padding: 18px 20px 14px !important;
    border-bottom: 1px solid var(--th-border) !important;
    background: var(--th-white) !important;
}

#message-header h2.subject,
.message-subject {
    font-size: 17px !important;
    font-weight: 700 !important;
    color: var(--th-ink) !important;
    margin-bottom: 10px !important;
}

.header-headers td { color: var(--th-muted) !important; font-size: 12.5px !important; }
.header-headers th { color: var(--th-blue-dark) !important; font-weight: 600 !important; font-size: 12.5px !important; }

#messagebody {
    padding: 20px !important;
    font-size: 14px !important;
    line-height: 1.75 !important;
    color: var(--th-ink) !important;
}

#messagebody blockquote {
    border-left: 3px solid var(--th-cyan) !important;
    padding-left: 12px !important;
    color: var(--th-muted) !important;
    margin: 10px 0 !important;
}

/* Lampiran */
#attachment-list {
    padding: 8px 20px !important;
    border-top: 1px solid var(--th-border) !important;
    background: #fafcfe !important;
}

.attachmentslist li a.filename {
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    padding: 4px 12px !important;
    border-radius: 20px !important;
    background: var(--th-soft) !important;
    color: var(--th-blue-dark) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    border: 1px solid var(--th-border) !important;
    margin: 2px 3px !important;
    text-decoration: none !important;
    transition: all var(--th-transition) !important;
}

.attachmentslist li a.filename:hover {
    background: var(--th-blue) !important;
    color: #fff !important;
    border-color: var(--th-blue) !important;
}


/* =============================================================
   COMPOSE
============================================================= */

#compose-content { background: var(--th-white) !important; }

#compose-headers .header-row {
    border-bottom: 1px solid #f0f7fb !important;
}

#compose-headers input.form-control {
    border: none !important;
    border-bottom: 1px solid var(--th-border) !important;
    border-radius: 0 !important;
    padding: 8px 12px !important;
    font-size: 13.5px !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--th-ink) !important;
}

#compose-headers input.form-control:focus {
    border-bottom-color: var(--th-cyan) !important;
    background: #fafeff !important;
    box-shadow: none !important;
}

#compose-subject { font-size: 15px !important; font-weight: 600 !important; }


/* =============================================================
   SEARCH
============================================================= */

.searchbar {
    background: var(--th-white) !important;
    border-bottom: 1px solid var(--th-border) !important;
}

.searchbar input.form-control,
#mailsearchform input {
    background: var(--th-bg) !important;
    border-color: var(--th-border) !important;
    border-radius: 20px !important;
    font-size: 13px !important;
}

.searchbar input.form-control:focus,
#mailsearchform input:focus {
    background: var(--th-white) !important;
    border-color: var(--th-cyan) !important;
    box-shadow: 0 0 0 3px rgba(33,184,231,.13) !important;
}


/* =============================================================
   BUTTONS
============================================================= */

.btn-primary {
    background: linear-gradient(135deg, var(--th-blue), var(--th-sky)) !important;
    border-color: var(--th-blue) !important;
    border-radius: 7px !important;
    font-weight: 600 !important;
    box-shadow: 0 2px 8px rgba(0,119,173,.20) !important;
}

.btn-primary:hover {
    background: linear-gradient(135deg, var(--th-blue-dark), var(--th-blue)) !important;
    border-color: var(--th-blue-dark) !important;
}

.btn-secondary {
    border-color: var(--th-border) !important;
    color: var(--th-ink) !important;
    border-radius: 7px !important;
}

.btn-secondary:hover {
    background: var(--th-soft) !important;
    border-color: var(--th-blue) !important;
    color: var(--th-blue-dark) !important;
}


/* =============================================================
   FORMS & INPUTS
============================================================= */

.form-control {
    border-color: var(--th-border) !important;
    border-radius: 7px !important;
    color: var(--th-ink) !important;
    transition: border-color var(--th-transition), box-shadow var(--th-transition) !important;
}

.form-control:focus,
#mailsearchform .form-control:focus {
    border-color: var(--th-cyan) !important;
    box-shadow: 0 0 0 3px rgba(33,184,231,.14) !important;
    background: var(--th-white) !important;
}

.input-group-text {
    border-color: var(--th-border) !important;
    background: var(--th-soft) !important;
    color: var(--th-blue-dark) !important;
}


/* =============================================================
   POPOVER / DROPDOWN
============================================================= */

.popover, .dropdown-menu {
    border: 1px solid var(--th-border) !important;
    border-radius: var(--th-radius) !important;
    box-shadow: 0 6px 24px rgba(7,89,121,.14) !important;
}

.dropdown-item:hover { background: var(--th-soft) !important; color: var(--th-blue-dark) !important; }

.popover-header {
    background: linear-gradient(135deg, var(--th-soft), #fff) !important;
    border-bottom: 1px solid var(--th-border) !important;
    color: var(--th-blue-dark) !important;
    font-weight: 700 !important;
    border-radius: var(--th-radius) var(--th-radius) 0 0 !important;
}


/* =============================================================
   SETTINGS
============================================================= */

.settings-box {
    border: 1px solid var(--th-border) !important;
    border-radius: var(--th-radius) !important;
    box-shadow: var(--th-shadow) !important;
}

.settings-box .header {
    background: linear-gradient(135deg, var(--th-soft), #fff) !important;
    border-bottom: 1px solid var(--th-border) !important;
    font-weight: 700 !important;
    color: var(--th-blue-dark) !important;
}


/* =============================================================
   NOTIFICATIONS
============================================================= */

#messagestack { z-index: 9999 !important; }


/* =============================================================
   LOGIN PAGE
============================================================= */

body.task-login {
    background:
        radial-gradient(circle at 18% 20%, rgba(33,184,231,.18), transparent 30%),
        linear-gradient(135deg, #f5fbff 0%, #ffffff 48%, #edf8fc 100%);
}

body.task-login #layout-content {
    min-height: 100vh;
    padding: clamp(28px, 6vh, 64px) 16px;
}

body.task-login #layout-content::before {
    content: "Perumda Tirta Hidayah";
    display: block;
    margin: 0 auto 4px;
    color: var(--th-blue);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

body.task-login #layout-content::after {
    content: "Melayani dengan Tulus, Mengalir untuk Semua";
    display: block;
    margin: 10px auto 0;
    color: var(--th-muted);
    font-size: 13px;
}

body.task-login #logo,
body.task-login #logo a { pointer-events: none !important; cursor: default !important; }

body.task-login #logo {
    top: auto;
    width: 110px; max-width: 110px; max-height: 110px;
    margin: 20px auto 18px;
    padding: 10px;
    border-radius: 999px;
    background: var(--th-white);
    box-shadow: 0 16px 40px rgba(7,89,121,.16);
}

#login-form {
    top: auto;
    max-width: 360px;
    padding: 26px;
    border: 1px solid var(--th-border);
    border-radius: 20px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 20px 56px rgba(7,89,121,.13);
}

#login-form::before {
    content: "Masuk Webmail";
    display: block;
    margin: 0 0 16px;
    color: var(--th-ink);
    font-size: 20px; font-weight: 800;
    text-align: center;
}

#login-form .input-group { margin-bottom: 12px; position: relative; }
#login-form .form-control {
    min-height: 44px;
    border-color: var(--th-border);
    background: #f8fcff;
    font-size: 14.5px;
}
#login-form .form-control:focus {
    border-color: var(--th-cyan);
    background: var(--th-white);
    box-shadow: 0 0 0 3px rgba(33,184,231,.16);
}

#rcmloginsubmit {
    min-height: 46px;
    border: 0;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--th-blue) 0%, var(--th-cyan) 100%);
    box-shadow: 0 10px 22px rgba(0,119,173,.24);
    color: #fff;
    font-weight: 800;
    letter-spacing: .03em;
}

#login-footer { margin-top: 16px; color: var(--th-muted); font-size: 13px; }
#login-footer a { color: var(--th-blue); font-weight: 700; }

/* ── Password toggle ── */
.pwd-toggle-btn {
    position: absolute; top: 50%; right: 10px;
    transform: translateY(-50%);
    background: none; border: none; padding: 4px;
    cursor: pointer; color: var(--th-muted);
    line-height: 0; z-index: 5;
    transition: color .2s;
}
.pwd-toggle-btn:hover { color: var(--th-blue); }
.pwd-toggle-btn:focus { outline: 2px solid var(--th-cyan); border-radius: 4px; }
.eye-icon { width: 18px; height: 18px; display: block; pointer-events: none; }

/* ── Error notif ── */
#tirta-login-notif {
    display: flex; align-items: center; gap: 8px;
    margin-bottom: 14px; padding: 10px 14px;
    border-radius: 10px;
    background: #fff2f2; border: 1px solid #fca5a5; color: #b91c1c;
    font-size: 13px; font-weight: 600;
    animation: th-slide-in .22s ease;
}
@keyframes th-slide-in {
    from { opacity: 0; transform: translateY(-5px); }
    to   { opacity: 1; transform: translateY(0); }
}


/* =============================================================
   MOBILE
============================================================= */
@media screen and (max-width: 768px) {
    body.task-login #logo { width: 88px; max-width: 88px; max-height: 88px; }
    #login-form { max-width: 330px; padding: 20px; }
    #taskmenu::before { width: 40px !important; height: 40px !important; }
}
