/* ── APP THEMES ── */
:root {
  /* DEFAULT: Clean light theme — white pages, navy accent */
  --ink: #1a2535;--ink2: #2e3d52;--ink3: #6b7a90;
  --page-cream: #ffffff;--line-color: #d8e2ef;
  --cover-dark: #f0f4fb;--cover-mid: #2e5492;--cover-accent: #5b8fd4;
  --gold: #3a6abf;--gold2: #1e3a5f;--bg: #edf1f7;
  --sidebar-bg: #ffffff;--sidebar-border: rgba(58,106,191,.15);
  --sidebar-w: 210px;--toolbar-h: 50px;
  --writing-font: 'Caveat', cursive;
  --module-font: 'DM Sans', sans-serif;
}
/* Topbar & sidebar for default light theme */
#topbar{background:var(--cover-dark)!important;border-bottom-color:#c8d8f0!important;}
#sidebar{background:var(--sidebar-bg)!important;border-right:1px solid var(--sidebar-border)!important;}
.sb-item{color:#4a5a72;}
.sb-item:hover{background:rgba(58,106,191,.07);color:#1e3a5f;}
.sb-item.active{background:rgba(58,106,191,.12);color:#1e3a5f;border-left-color:var(--gold);}
.sb-label{color:#8a9ab0;}
.sb-divider{background:rgba(58,106,191,.1);}
.nav-tab{color:#3a5a82;}
.nav-tab:hover{color:#1e3a5f;background:rgba(58,106,191,.09);}
.nav-tab.active{color:#1e3a5f;background:rgba(58,106,191,.13);border-bottom-color:#3a6abf;}
.icon-btn{border-color:rgba(58,106,191,.3);color:#3a5a82;}
.icon-btn:hover{border-color:#1e3a5f;color:#1e3a5f;}
.sb-toggle{border-color:rgba(58,106,191,.3);color:#3a5a82;}
.sb-toggle:hover{border-color:#1e3a5f;color:#1e3a5f;}
.search-bar{background:#fff;color:#1e3a5f;border-color:rgba(58,106,191,.25);}
.search-bar::placeholder{color:#8a9ab0;}
.search-bar:focus{border-color:#3a6abf;background:#fff;}
.diary-date-bar{background:rgba(58,106,191,.05);}
.diary-date-bar label{color:#3a5a82;}
.diary-date-inp{background:#fff;color:#1e3a5f;border-color:rgba(58,106,191,.25);}
.lang-btn{border-color:rgba(58,106,191,.25);color:#4a5a72;}
.lang-btn.sel{background:rgba(58,106,191,.15);color:#1e3a5f;border-color:rgba(58,106,191,.5);}
.theme-sw:hover,.theme-sw.sel{border-color:var(--gold);}
.brand{color:#0d1e35;}
.brand span{color:#1a50a0;}

/* Dark theme (was original default) */
body.theme-dark{
  --ink:#e8d4b0;--ink2:#c4a878;--ink3:#8a7255;
  --page-cream:#f5f0e8;--line-color:#c9bfaa;
  --cover-dark:#2c1810;--cover-mid:#6b3a2a;--cover-accent:#c17f4a;
  --gold:#c9a84c;--gold2:#e8c97a;--bg:#1a0f08;
  --sidebar-bg:#1e0e06;--sidebar-border:rgba(201,168,76,.18);
}
body.theme-dark #topbar{background:#2c1810!important;border-bottom-color:#c9a84c;}
body.theme-dark #sidebar{background:#1e0e06!important;border-color:rgba(201,168,76,.18)!important;}
body.theme-dark .sb-item{color:#9a8060;}
body.theme-dark .sb-item:hover{background:rgba(201,168,76,.06);color:#c4a870;}
body.theme-dark .sb-item.active{background:rgba(201,168,76,.1);color:#e8c97a;border-left-color:#c9a84c;}
body.theme-dark .sb-label{color:#6a5030;}
body.theme-dark .sb-divider{background:rgba(201,168,76,.1);}
body.theme-dark .nav-tab{color:#bba98a;}
body.theme-dark .nav-tab:hover{color:#e8c97a;}
body.theme-dark .nav-tab.active{color:#e8c97a;background:rgba(201,168,76,.12);border-bottom-color:#c9a84c;}
body.theme-dark .icon-btn{border-color:rgba(201,168,76,.3);color:#bba98a;}
body.theme-dark .icon-btn:hover{border-color:#c9a84c;color:#e8c97a;}
body.theme-dark .sb-toggle{border-color:rgba(201,168,76,.3);color:#bba98a;}
body.theme-dark .search-bar{background:rgba(255,255,255,.06);color:#c4a870;border-color:rgba(201,168,76,.25);}
body.theme-dark .search-bar::placeholder{color:#5a4030;}
body.theme-dark .lang-btn{border-color:rgba(201,168,76,.25);color:#9a8060;}
body.theme-dark .lang-btn.sel{background:rgba(201,168,76,.18);color:#e8c97a;border-color:rgba(201,168,76,.5);}
body.theme-dark .brand{color:#e8c97a;}
body.theme-dark .brand span{color:#c17f4a;}

/* Warm theme — soft cream & terracotta */
body.theme-warm{
  --ink:#3a2a1a;--ink2:#5a3e2a;--ink3:#8a6a52;
  --page-cream:#fdf8f2;--line-color:#e0ceb8;
  --cover-dark:#fdf0e8;--cover-mid:#a85a38;--cover-accent:#d4845a;
  --gold:#c06040;--gold2:#7a3a20;--bg:#f5ede2;
  --sidebar-bg:#fdf0e8;--sidebar-border:rgba(160,80,40,.18);
}
body.theme-warm #topbar{background:#fdf0e8!important;border-bottom-color:#d4845a!important;}
body.theme-warm #sidebar{background:#fdf0e8!important;border-color:rgba(160,80,40,.18)!important;}
body.theme-warm .sb-item{color:#7a5a42;}
body.theme-warm .sb-item:hover{background:rgba(160,80,40,.07);color:#5a2e10;}
body.theme-warm .sb-item.active{background:rgba(160,80,40,.13);color:#5a2e10;border-left-color:#c06040;}
body.theme-warm .sb-label{color:#a07858;}
body.theme-warm .sb-divider{background:rgba(160,80,40,.12);}
body.theme-warm .nav-tab{color:#7a4a28;}
body.theme-warm .nav-tab:hover{color:#5a2e10;background:rgba(160,80,40,.08);}
body.theme-warm .nav-tab.active{color:#5a2e10;background:rgba(160,80,40,.12);border-bottom-color:#c06040;}
body.theme-warm .icon-btn{border-color:rgba(160,80,40,.3);color:#7a4a28;}
body.theme-warm .icon-btn:hover{border-color:#5a2e10;color:#5a2e10;}
body.theme-warm .sb-toggle{border-color:rgba(160,80,40,.3);color:#7a4a28;}
body.theme-warm .search-bar{background:#fff;color:#5a3820;border-color:rgba(160,80,40,.25);}
body.theme-warm .search-bar::placeholder{color:#b09070;}
body.theme-warm .lang-btn{border-color:rgba(160,80,40,.2);color:#7a5a42;}
body.theme-warm .lang-btn.sel{background:rgba(160,80,40,.13);color:#5a2e10;border-color:rgba(160,80,40,.4);}
body.theme-warm .brand{color:#5a2e10;}
body.theme-warm .brand span{color:#c06040;}
body.theme-warm .diary-date-bar{background:rgba(160,80,40,.05);}
body.theme-warm .diary-date-bar label{color:#7a4a28;}
body.theme-warm .diary-date-inp{background:#fff;color:#5a3820;border-color:rgba(160,80,40,.25);}

/* Blue Night theme */
body.theme-blue{
  --ink:#d0e4f8;--ink2:#a8c8f0;--ink3:#6a90b8;
  --page-cream:#f0f6ff;--line-color:#c0d4ee;
  --cover-dark:#0a1628;--cover-mid:#1a3a6b;--cover-accent:#4a8abd;
  --gold:#4a8abd;--gold2:#7ab0dd;--bg:#0f1e35;
  --sidebar-bg:#0d1a2e;--sidebar-border:rgba(74,138,189,.2);
}
body.theme-blue #topbar{background:#0a1628!important;border-bottom-color:#4a8abd;}
body.theme-blue #sidebar{background:#0d1a2e!important;border-color:rgba(74,138,189,.2)!important;}
body.theme-blue .sb-item{color:#6a90b0;}
body.theme-blue .sb-item:hover{background:rgba(74,138,189,.1);color:#7ab0dd;}
body.theme-blue .sb-item.active{color:#7ab0dd;border-left-color:#4a8abd;background:rgba(74,138,189,.1);}
body.theme-blue .sb-label{color:#3a6080;}
body.theme-blue .nav-tab{color:#8ab0d0;}
body.theme-blue .nav-tab.active{color:#7ab0dd;border-bottom-color:#4a8abd;}
body.theme-blue .brand{color:#7ab0dd;}

/* Forest Green theme */
body.theme-green{
  --ink:#c8e8c8;--ink2:#a0c8a0;--ink3:#60986a;
  --page-cream:#f0faf0;--line-color:#b8d8b8;
  --cover-dark:#0a1a0b;--cover-mid:#1a4a1c;--cover-accent:#4a9a4c;
  --gold:#4a9a4c;--gold2:#7ac07c;--bg:#0f1e10;
  --sidebar-bg:#0d1e0e;--sidebar-border:rgba(74,154,76,.2);
}
body.theme-green #topbar{background:#0a1a0b!important;border-bottom-color:#4a9a4c;}
body.theme-green #sidebar{background:#0d1e0e!important;border-color:rgba(74,154,76,.2)!important;}
body.theme-green .sb-item{color:#6a906a;}
body.theme-green .sb-item:hover{background:rgba(74,154,76,.1);color:#7ac07c;}
body.theme-green .sb-item.active{color:#7ac07c;border-left-color:#4a9a4c;background:rgba(74,154,76,.1);}
body.theme-green .sb-label{color:#3a6040;}
body.theme-green .nav-tab{color:#8ab08a;}
body.theme-green .nav-tab.active{color:#7ac07c;border-bottom-color:#4a9a4c;}
body.theme-green .brand{color:#7ac07c;}

/* Lavender theme */
body.theme-lavender{
  --ink:#2a1a4a;--ink2:#4a3a6a;--ink3:#8a7aaa;
  --page-cream:#f8f5ff;--line-color:#d4c8f0;
  --cover-dark:#f0eaff;--cover-mid:#c8b8ee;--cover-accent:#8a6ac0;
  --gold:#7a5ab0;--gold2:#5a3a90;--bg:#ede8f8;
  --sidebar-bg:#faf8ff;--sidebar-border:rgba(122,90,176,.15);
}
body.theme-lavender #topbar{background:#f0eaff!important;border-bottom-color:#b8a0e0!important;}
body.theme-lavender #sidebar{background:#faf8ff!important;border-color:rgba(122,90,176,.15)!important;}
body.theme-lavender .sb-item{color:#6a4a9a;}
body.theme-lavender .sb-item:hover{background:rgba(122,90,176,.07);color:#4a2a7a;}
body.theme-lavender .sb-item.active{background:rgba(122,90,176,.12);color:#4a2a7a;border-left-color:#7a5ab0;}
body.theme-lavender .sb-label{color:#9a88c0;}
body.theme-lavender .sb-divider{background:rgba(122,90,176,.12);}
body.theme-lavender .nav-tab{color:#6a4a9a;}
body.theme-lavender .nav-tab:hover{color:#4a2a7a;background:rgba(122,90,176,.09);}
body.theme-lavender .nav-tab.active{color:#4a2a7a;background:rgba(122,90,176,.14);border-bottom-color:#7a5ab0;}
body.theme-lavender .icon-btn{border-color:rgba(122,90,176,.3);color:#6a4a9a;}
body.theme-lavender .icon-btn:hover{border-color:#4a2a7a;color:#4a2a7a;}
body.theme-lavender .sb-toggle{border-color:rgba(122,90,176,.3);color:#6a4a9a;}
body.theme-lavender .search-bar{background:#fff;color:#4a2a7a;border-color:rgba(122,90,176,.25);}
body.theme-lavender .search-bar::placeholder{color:#a898c8;}
body.theme-lavender .brand{color:#4a2a7a;}
body.theme-lavender .brand span{color:#8a6ac0;}

/* Rose theme */
body.theme-rose{
  --ink:#3a1020;--ink2:#5a2a38;--ink3:#9a6878;
  --page-cream:#fff5f7;--line-color:#f0d0d8;
  --cover-dark:#fff0f3;--cover-mid:#f4b0c0;--cover-accent:#c05870;
  --gold:#c06070;--gold2:#8a2a3a;--bg:#f8eef1;
  --sidebar-bg:#fff8fa;--sidebar-border:rgba(192,96,112,.15);
}
body.theme-rose #topbar{background:#fff0f3!important;border-bottom-color:#f0a0b4!important;}
body.theme-rose #sidebar{background:#fff8fa!important;border-color:rgba(192,96,112,.15)!important;}
body.theme-rose .sb-item{color:#8a4050;}
body.theme-rose .sb-item:hover{background:rgba(192,96,112,.07);color:#5a1a2a;}
body.theme-rose .sb-item.active{background:rgba(192,96,112,.12);color:#5a1a2a;border-left-color:#c06070;}
body.theme-rose .sb-label{color:#b08090;}
body.theme-rose .sb-divider{background:rgba(192,96,112,.12);}
body.theme-rose .nav-tab{color:#8a4050;}
body.theme-rose .nav-tab:hover{color:#5a1a2a;background:rgba(192,96,112,.09);}
body.theme-rose .nav-tab.active{color:#5a1a2a;background:rgba(192,96,112,.13);border-bottom-color:#c06070;}
body.theme-rose .icon-btn{border-color:rgba(192,96,112,.3);color:#8a4050;}
body.theme-rose .icon-btn:hover{border-color:#5a1a2a;color:#5a1a2a;}
body.theme-rose .sb-toggle{border-color:rgba(192,96,112,.3);color:#8a4050;}
body.theme-rose .search-bar{background:#fff;color:#5a1a2a;border-color:rgba(192,96,112,.25);}
body.theme-rose .search-bar::placeholder{color:#c098a8;}
body.theme-rose .brand{color:#5a1a2a;}
body.theme-rose .brand span{color:#c06070;}

/* Teal theme */
body.theme-teal{
  --ink:#062a2a;--ink2:#1a4a4a;--ink3:#4a8888;
  --page-cream:#f0fafa;--line-color:#b0d8d8;
  --cover-dark:#e4f6f6;--cover-mid:#8acaca;--cover-accent:#2a9090;
  --gold:#2a8888;--gold2:#065858;--bg:#e0f0f0;
  --sidebar-bg:#f0fafa;--sidebar-border:rgba(42,136,136,.15);
}
body.theme-teal #topbar{background:#e4f6f6!important;border-bottom-color:#8acaca!important;}
body.theme-teal #sidebar{background:#f0fafa!important;border-color:rgba(42,136,136,.15)!important;}
body.theme-teal .sb-item{color:#1a6060;}
body.theme-teal .sb-item:hover{background:rgba(42,136,136,.07);color:#064848;}
body.theme-teal .sb-item.active{background:rgba(42,136,136,.12);color:#064848;border-left-color:#2a8888;}
body.theme-teal .sb-label{color:#5a9898;}
body.theme-teal .sb-divider{background:rgba(42,136,136,.12);}
body.theme-teal .nav-tab{color:#1a6060;}
body.theme-teal .nav-tab:hover{color:#064848;background:rgba(42,136,136,.09);}
body.theme-teal .nav-tab.active{color:#064848;background:rgba(42,136,136,.13);border-bottom-color:#2a8888;}
body.theme-teal .icon-btn{border-color:rgba(42,136,136,.3);color:#1a6060;}
body.theme-teal .icon-btn:hover{border-color:#064848;color:#064848;}
body.theme-teal .sb-toggle{border-color:rgba(42,136,136,.3);color:#1a6060;}
body.theme-teal .search-bar{background:#fff;color:#064848;border-color:rgba(42,136,136,.25);}
body.theme-teal .search-bar::placeholder{color:#7ab8b8;}
body.theme-teal .brand{color:#064848;}
body.theme-teal .brand span{color:#2a9090;}

*{margin:0;padding:0;box-sizing:border-box;}
body{background:var(--bg);font-family:'DM Sans',sans-serif;color:var(--ink);height:100vh;overflow:hidden;display:flex;flex-direction:column;}
button{font-family:Georgia,serif;}

.mod-close-bar{position:fixed;top:10px;right:16px;z-index:200;}
.mod-close-btn{background:#fff;border:1px solid rgba(0,0,0,.15);border-radius:20px;padding:4px 12px;cursor:pointer;font-size:12px;color:#555;box-shadow:0 2px 8px rgba(0,0,0,.12);transition:background .15s,color .15s;}
.mod-close-btn:hover{background:#f0f4fb;color:#1e3a5f;border-color:#3a6abf;}

/* LAYOUT */
#main{display:flex;flex:1;overflow:hidden;}

/* LEFT NAV */
#leftnav{width:172px;background:var(--cover-dark);border-right:none;box-shadow:2px 0 12px rgba(0,0,0,.08);display:flex;flex-direction:column;padding:0 10px 8px;gap:2px;flex-shrink:0;z-index:50;overflow-y:auto;}
.lnav-brand{text-align:center;padding:14px 6px 8px;margin:0 -8px 4px;background:var(--cover-dark);position:sticky;top:0;z-index:1;border-bottom:1px solid var(--sidebar-border);}
.lnav-brand-sub{font-family:'Comfortaa',cursive;font-size:15px;font-weight:700;color:var(--gold2);margin-top:2px;letter-spacing:1px;}
.lnav-btn{display:flex;align-items:center;gap:9px;padding:10px 12px;border-radius:10px;cursor:pointer;font-size:13px;font-weight:500;border:none;background:transparent;color:var(--ink2);text-align:left;width:100%;transition:background .18s,color .18s,box-shadow .18s;white-space:nowrap;font-family:'DM Sans',sans-serif;}
.lnav-btn:hover{background:rgba(58,106,191,.09);color:var(--gold2);}
.lnav-btn.active{background:rgba(58,106,191,.13);color:var(--gold2);font-weight:700;border-left:3px solid var(--gold);padding-left:9px;box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 1px 4px rgba(58,106,191,.1);}
.lnav-lbl{font-size:12.5px;letter-spacing:.2px;}
.lnav-sep{height:1px;background:var(--sidebar-border);margin:6px 4px;flex-shrink:0;}
.lnav-spacer{flex:1;min-height:8px;}
.lnav-logout{color:#b03030!important;opacity:.85;}
.lnav-logout:hover{background:rgba(192,57,43,.08)!important;color:#c0392b!important;opacity:1;}
/* Theme overrides for leftnav */
body.theme-dark #leftnav{background:#2c1810;box-shadow:2px 0 16px rgba(0,0,0,.35);}
body.theme-dark .lnav-brand{background:#2c1810;}
body.theme-dark .lnav-btn{color:#9a8060;}
body.theme-dark .lnav-btn:hover{background:rgba(201,168,76,.1);color:#e8c97a;}
body.theme-dark .lnav-btn.active{background:rgba(201,168,76,.14);color:#e8c97a;border-left-color:#c9a84c;}
body.theme-dark .lnav-brand-sub{color:#c9a84c;}
body.theme-dark .lnav-brand-sub span{color:#c17f4a;}
body.theme-warm #leftnav{background:#fdf0e8;box-shadow:2px 0 12px rgba(160,80,40,.12);}
body.theme-warm .lnav-brand{background:#fdf0e8;}
body.theme-warm .lnav-btn{color:#7a4a28;}
body.theme-warm .lnav-btn:hover{background:rgba(160,80,40,.09);color:#5a2e10;}
body.theme-warm .lnav-btn.active{background:rgba(160,80,40,.14);color:#5a2e10;border-left-color:#c06040;}
body.theme-blue #leftnav{background:#0a1628;box-shadow:2px 0 16px rgba(0,0,0,.4);}
body.theme-blue .lnav-brand{background:#0a1628;}
body.theme-blue .lnav-btn{color:#6a90b0;}
body.theme-blue .lnav-btn:hover{background:rgba(74,138,189,.12);color:#7ab0dd;}
body.theme-blue .lnav-btn.active{background:rgba(74,138,189,.18);color:#7ab0dd;border-left-color:#4a8abd;}
body.theme-blue .lnav-brand-sub{color:#7ab0dd;}
body.theme-green #leftnav{background:#0a1a0b;box-shadow:2px 0 16px rgba(0,0,0,.4);}
body.theme-green .lnav-brand{background:#0a1a0b;}
body.theme-green .lnav-btn{color:#6a906a;}
body.theme-green .lnav-btn:hover{background:rgba(74,154,76,.12);color:#7ac07c;}
body.theme-green .lnav-btn.active{background:rgba(74,154,76,.18);color:#7ac07c;border-left-color:#4a9a4c;}
body.theme-green .lnav-brand-sub{color:#7ac07c;}
body.theme-lavender #leftnav{background:#f0eaff;box-shadow:2px 0 12px rgba(122,90,176,.14);}
body.theme-lavender .lnav-brand{background:#f0eaff;}
body.theme-lavender .lnav-btn{color:#6a4a9a;}
body.theme-lavender .lnav-btn:hover{background:rgba(122,90,176,.1);color:#4a2a7a;}
body.theme-lavender .lnav-btn.active{background:rgba(122,90,176,.16);color:#4a2a7a;border-left-color:#7a5ab0;}
body.theme-rose #leftnav{background:#fff0f3;box-shadow:2px 0 12px rgba(192,96,112,.13);}
body.theme-rose .lnav-brand{background:#fff0f3;}
body.theme-rose .lnav-btn{color:#8a4050;}
body.theme-rose .lnav-btn:hover{background:rgba(192,96,112,.1);color:#5a1a2a;}
body.theme-rose .lnav-btn.active{background:rgba(192,96,112,.16);color:#5a1a2a;border-left-color:#c06070;}
body.theme-teal #leftnav{background:#e4f6f6;box-shadow:2px 0 12px rgba(42,136,136,.13);}
body.theme-teal .lnav-brand{background:#e4f6f6;}
body.theme-teal .lnav-btn{color:#1a6060;}
body.theme-teal .lnav-btn:hover{background:rgba(42,136,136,.1);color:#064848;}
body.theme-teal .lnav-btn.active{background:rgba(42,136,136,.16);color:#064848;border-left-color:#2a8888;}

/* WIDE BOOK (non-diary modules) */
.book-wide{width:min(1150px,calc(100% - 16px));border-radius:10px;}

@media(max-width:900px){
  #leftnav{width:52px;padding:0 4px 4px;}
  .lnav-brand{padding:10px 2px 6px;margin:0 -4px 4px;}
  .lnav-brand svg{width:44px;height:20px;}
  .lnav-brand-sub{font-size:11px;}
  .lnav-lbl{display:none;}
  .lnav-btn{justify-content:center;padding:9px 4px;font-size:15px;}
  .lnav-btn.active{padding-left:4px;border-left-width:2px;}
}

/* SIDEBAR */
#sidebar{width:var(--sidebar-w);background:var(--sidebar-bg,#ffffff);border-right:1px solid var(--sidebar-border,rgba(58,106,191,.15));display:flex;flex-direction:column;overflow-y:auto;flex-shrink:0;}
.sb-section{padding:10px 0;}
.sb-label{font-size:10px;font-weight:500;letter-spacing:1.5px;color:#6a5030;padding:0 14px 5px;text-transform:uppercase;}
.sb-date-hdr{padding:5px 14px 3px;font-size:10px;font-weight:600;letter-spacing:.03em;color:var(--gold);cursor:pointer;display:flex;align-items:center;gap:5px;user-select:none;margin-top:4px;}
.sb-date-hdr:first-child{margin-top:0;}
.sb-date-hdr:hover{color:var(--gold2);}
.sb-date-arrow{font-size:8px;opacity:.7;}
.sb-item{padding:7px 14px 7px 24px;font-size:12px;color:#9a8060;cursor:pointer;display:flex;align-items:center;gap:7px;border-left:3px solid transparent;transition:all .15s;position:relative;}
.sb-item:hover{background:rgba(201,168,76,0.06);color:#c4a870;}
.sb-item.active{background:rgba(201,168,76,0.1);color:var(--gold2);border-left-color:var(--gold);}
.page-del-btn{display:none;background:transparent;border:none;color:#c0392b;cursor:pointer;font-size:11px;padding:0 2px;line-height:1;flex-shrink:0;}
.sb-item:hover .page-del-btn{display:block;}
.page-del-btn:hover{color:#ff6b6b;}
.sb-item .dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.sb-item-label{flex:1;}
.sb-item-mood{font-size:11px;}
.upcoming-ev{font-size:11px;color:#9a8060;padding:2px 0;display:flex;align-items:center;gap:5px;}
.upcoming-date{margin-left:auto;}
.upcoming-bd{color:#c0392b;}
.upcoming-ann{color:#8e44ad;}
.upcoming-empty{font-size:11px;color:#5a4030;font-style:italic;}
.sb-divider{height:1px;background:rgba(201,168,76,0.1);margin:3px 0;}
.theme-row{padding:5px 14px;display:flex;gap:5px;flex-wrap:wrap;}
.theme-sw{width:24px;height:17px;border-radius:3px;cursor:pointer;border:2px solid transparent;}
.theme-sw:hover,.theme-sw.sel{border-color:var(--gold);}
.lang-btns{padding:0 14px;display:flex;flex-direction:column;gap:3px;}
.lang-btn{padding:4px 8px;border-radius:5px;border:1px solid rgba(201,168,76,0.25);background:transparent;color:#9a8060;cursor:pointer;font-size:11px;text-align:left;transition:all .15s;}
.lang-btn.sel{background:rgba(201,168,76,0.18);color:var(--gold2);border-color:rgba(201,168,76,0.5);}

/* CONTENT */
#content{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--bg);}
.module{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:16px;}
.module.hidden{display:none;}

/* BOOK */
.book{display:flex;width:min(840px,96vw);height:min(580px,86vh);box-shadow:0 18px 70px rgba(0,0,0,.7),0 4px 18px rgba(0,0,0,.5);border-radius:4px 10px 10px 4px;}
.book-spine{width:28px;background:linear-gradient(180deg,var(--cover-dark),var(--cover-mid) 40%,var(--cover-dark));border-radius:4px 0 0 4px;display:flex;align-items:center;justify-content:center;box-shadow:inset -3px 0 8px rgba(0,0,0,.4);flex-shrink:0;}
.spine-text{font-family:'Caveat',cursive;font-size:11px;color:var(--gold);writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:2px;opacity:.7;}
.book-pages{flex:1;position:relative;overflow:hidden;border-radius:0 10px 10px 0;perspective:1400px;background:var(--page-cream,#f5f0e8);}

/* PAGE */
.page{position:absolute;inset:0;display:flex;flex-direction:column;background:#f5f0e8;transform-origin:left center;will-change:transform,opacity;}
.page-lines{position:absolute;inset:0;pointer-events:none;background-image:repeating-linear-gradient(180deg,transparent,transparent 31px,#c9bfaa 31px,#c9bfaa 32px);background-position:0 46px;}
.page-margin{position:absolute;left:50px;top:0;bottom:0;width:1px;background:rgba(192,57,43,.22);pointer-events:none;}
.page-header{min-height:52px;border-bottom:1px solid var(--line-color);padding:6px 14px 6px 56px;display:flex;align-items:flex-start;justify-content:space-between;background:inherit;position:relative;z-index:2;flex-shrink:0;}
.page-title-input{font-family:'Caveat',cursive;font-size:19px;color:var(--ink);background:transparent;border:none;outline:none;flex:1;}
.page-date{font-family:'Dancing Script',cursive;font-size:22px;color:var(--ink2);white-space:nowrap;line-height:1.2;display:flex;flex-direction:column;align-items:flex-start;}
.page-date .pd-date{font-size:22px;font-weight:600;}
.page-date .pd-day{font-family:'Crimson Pro',serif;font-size:13px;font-style:italic;color:var(--ink3);letter-spacing:.04em;margin-top:-2px;}
.fmt-bar{position:absolute;top:46px;left:0;right:0;height:34px;background:rgba(245,240,232,.97);border-bottom:1px solid var(--line-color);display:flex;align-items:center;padding:0 8px;gap:3px;z-index:5;flex-shrink:0;overflow:hidden;}
.fmt-btn{min-width:26px;height:24px;border:1px solid rgba(0,0,0,.18);border-radius:4px;background:transparent;cursor:pointer;font-size:12px;font-weight:700;color:var(--ink);display:flex;align-items:center;justify-content:center;transition:all .15s;padding:0 4px;line-height:1;flex-shrink:0;}
.fmt-btn:hover{background:rgba(0,0,0,.07);}
.fmt-btn.active{background:rgba(0,0,0,.13);border-color:rgba(0,0,0,.35);}
.fmt-sep{width:1px;height:18px;background:rgba(0,0,0,.15);margin:0 2px;flex-shrink:0;}
.fmt-size-lbl{font-size:10px;color:var(--ink3);min-width:30px;text-align:center;flex-shrink:0;}
.fmt-font-sel{border:1px solid rgba(0,0,0,.18);border-radius:4px;background:transparent;font-size:11px;color:var(--ink);height:24px;padding:0 4px;cursor:pointer;max-width:130px;outline:none;}
.fmt-color-wrap{display:flex;align-items:center;cursor:pointer;}
.fmt-color-wrap input[type="color"]{width:26px;height:24px;border:1px solid rgba(0,0,0,.18);border-radius:4px;padding:2px;cursor:pointer;background:transparent;}
.text-layer{position:absolute;top:82px;left:56px;right:14px;bottom:34px;font-family:'Caveat',cursive;font-size:18px;line-height:32px;color:#1a1208;background:transparent;border:none;outline:none;overflow-y:auto;z-index:4;cursor:text;word-break:break-word;}
.text-layer[contenteditable]:empty::before{content:attr(data-placeholder);color:#c0b090;font-style:italic;pointer-events:none;}
.mode-bar{position:absolute;bottom:0;left:0;right:0;height:34px;background:rgba(245,240,232,.95);border-top:1px solid var(--line-color);display:flex;align-items:center;padding:0 14px;gap:5px;z-index:10;}
.voice-btn{padding:2px 9px;border-radius:10px;border:1px solid var(--line-color);font-size:11px;cursor:pointer;background:transparent;color:var(--ink3);}
.voice-btn.rec{background:#c0392b;color:#fff;animation:pulse .8s infinite;}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.6}}
.page-num{position:absolute;bottom:8px;right:14px;font-size:10px;color:var(--ink3);z-index:3;}

/* PAGE CORNER CURL — hover to reveal, click to turn */
.pg-corner{position:absolute;bottom:34px;width:56px;height:56px;cursor:pointer;z-index:15;}
.pg-corner-next{right:0;}
.pg-corner-prev{left:0;}
/* Folded-back triangle */
.pg-corner-next::before{content:'';position:absolute;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 0 0;border-color:transparent transparent #cdc5b5 transparent;transition:border-width .3s ease;filter:drop-shadow(-2px -2px 5px rgba(0,0,0,.22));}
.pg-corner-next:hover::before{border-width:0 0 72px 72px;}
.pg-corner-prev::before{content:'';position:absolute;bottom:0;left:0;width:0;height:0;border-style:solid;border-width:0 0 0 0;border-color:transparent #cdc5b5 transparent transparent;transition:border-width .3s ease;filter:drop-shadow(2px -2px 5px rgba(0,0,0,.22));}
.pg-corner-prev:hover::before{border-width:0 72px 72px 0;}
/* Page shadow gradient cast by the fold */
.pg-corner-next::after{content:'';position:absolute;bottom:0;right:0;width:0;height:0;background:linear-gradient(225deg,transparent 45%,rgba(0,0,0,.07) 100%);transition:all .3s ease;pointer-events:none;}
.pg-corner-next:hover::after{width:72px;height:72px;}
.pg-corner-prev::after{content:'';position:absolute;bottom:0;left:0;width:0;height:0;background:linear-gradient(315deg,transparent 45%,rgba(0,0,0,.07) 100%);transition:all .3s ease;pointer-events:none;}
.pg-corner-prev:hover::after{width:72px;height:72px;}

/* PAGE FLIP ANIMATIONS */
@keyframes flipOutFwd{from{transform:rotateY(0deg);opacity:1}to{transform:rotateY(-90deg);opacity:.3}}
@keyframes flipInFwd {from{transform:rotateY(90deg);opacity:.3}to{transform:rotateY(0deg);opacity:1}}
@keyframes flipOutBck{from{transform:rotateY(0deg);opacity:1}to{transform:rotateY(90deg);opacity:.3}}
@keyframes flipInBck {from{transform:rotateY(-90deg);opacity:.3}to{transform:rotateY(0deg);opacity:1}}
.flip-out-fwd{animation:flipOutFwd .2s ease-in forwards;transform-origin:left center;}
.flip-in-fwd {animation:flipInFwd  .22s ease-out forwards;transform-origin:right center;}
.flip-out-bck{animation:flipOutBck .2s ease-in forwards;transform-origin:right center;}
.flip-in-bck {animation:flipInBck  .22s ease-out forwards;transform-origin:left center;}

/* AUTO-SAVE INDICATOR */
.autosave-indicator{position:absolute;bottom:38px;right:16px;font-size:10px;color:var(--ink3);opacity:0;transition:opacity 0.4s;z-index:11;pointer-events:none;}
.autosave-indicator.saving{opacity:1;color:#d4801a;}
.autosave-indicator.saved{opacity:1;color:#2c6e2c;}

/* TODO */
.todo-wrap{flex:1;display:flex;flex-direction:column;background:var(--page-cream);border-radius:0 10px 10px 0;overflow:hidden;}
.module-header{height:46px;display:flex;align-items:center;padding:0 16px;gap:10px;}
.module-header h2{font-family:Georgia,serif;font-size:21px;flex:1;}
.todo-bar{display:flex;gap:7px;padding:10px 14px;border-bottom:1px solid var(--line-color);background:#f9f5ec;}
.todo-inp{flex:1;border:1px solid var(--line-color);border-radius:7px;padding:6px 10px;font-family:var(--module-font);font-size:16px;background:white;color:var(--ink);}
.todo-inp:focus{outline:none;border-color:#2c4a2c;}
.add-btn{padding:6px 14px;border:none;border-radius:7px;cursor:pointer;font-size:12px;font-weight:500;color:white;}
.pri-sel{border:1px solid var(--line-color);border-radius:7px;padding:6px 7px;font-size:11px;background:white;color:var(--ink);}
.todo-list{flex:1;overflow-y:auto;padding:6px 0;}
.todo-item{display:flex;align-items:center;padding:9px 14px;gap:10px;border-bottom:1px solid rgba(0,0,0,.05);transition:background .12s;}
.todo-item:hover{background:rgba(44,74,44,.04);}
.todo-done{background:rgba(0,0,0,.02);}
.todo-main{flex:1;min-width:0;}
.todo-text{font-family:var(--module-font);font-size:16px;line-height:1.3;word-break:break-word;}
.todo-text.done{text-decoration:line-through;}
.todo-meta{display:flex;align-items:center;gap:6px;margin-top:2px;flex-wrap:wrap;}
.todo-due{font-size:11px;color:var(--ink3);}
.pbadge{font-size:10px;padding:2px 7px;border-radius:10px;font-weight:500;white-space:nowrap;}
.ph,.ppigh{background:#fdecea;color:#c0392b;}.pm,.pmed{background:#fef3e2;color:#d4801a;}.pl,.plow{background:#e8f5e9;color:#2c6e2c;}
.phigh{background:#fdecea;color:#c0392b;}.pmed{background:#fef3e2;color:#d4801a;}.plow{background:#e8f5e9;color:#2c6e2c;}
.todo-actions{display:flex;gap:5px;flex-shrink:0;}
.todo-edit-inp{flex:1;border:1.5px solid #3a6abf;border-radius:6px;padding:4px 8px;font-size:14px;outline:none;width:100%;font-family:inherit;}
.tact{border:1px solid;border-radius:6px;padding:3px 9px;cursor:pointer;font-size:11px;font-weight:500;white-space:nowrap;transition:all .15s;background:transparent;}
.tact-complete{border-color:#2c4a2c;color:#2c4a2c;}
.tact-complete:hover{background:#2c4a2c;color:#fff;}
.tact-edit{border-color:#3a6abf;color:#3a6abf;}
.tact-edit:hover{background:#3a6abf;color:#fff;}
.tact-del{border-color:#c0392b;color:#c0392b;}
.tact-del:hover{background:#c0392b;color:#fff;}
.tsec{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:#8a7a60;padding:8px 14px 3px;font-weight:500;}
.tempty{text-align:center;padding:36px;color:var(--ink3);font-family:'Caveat',cursive;font-size:19px;}

/* SMART CALENDAR */
.cal-wrap{flex:1;display:flex;flex-direction:column;background:var(--page-cream);border-radius:0 10px 10px 0;overflow:hidden;}
.cal-main{display:flex;flex:1;overflow:hidden;}
.cal-left{display:flex;flex-direction:column;flex:1;min-width:0;overflow:hidden;}
.cal-hdr{height:46px;background:#1a3a6b;display:flex;align-items:center;padding:0 14px;gap:8px;flex-shrink:0;}
.cal-hdr h2{font-family:'Caveat',cursive;font-size:20px;color:#a8bedd;flex:1;}
.cal-hdr button{background:rgba(255,255,255,.15);border:none;color:#a8bedd;border-radius:5px;padding:3px 9px;cursor:pointer;font-size:14px;}
.cal-hdr button:hover{background:rgba(255,255,255,.25);}
.cal-legend{display:flex;gap:10px;padding:5px 12px;background:#f0f4f8;border-bottom:1px solid #dde4ee;flex-shrink:0;}
.cal-legend-item{display:flex;align-items:center;gap:3px;font-size:10px;color:#5a6a7a;}
.cal-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.cal-labels{display:grid;grid-template-columns:repeat(7,1fr);flex-shrink:0;}
.cal-day-lbl{text-align:center;padding:4px 0;font-size:10px;font-weight:500;color:#6b8aa8;background:#f0f4f8;border-bottom:1px solid #dde4ee;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);flex:1;overflow:hidden;}
.cal-cell{border:1px solid #e8ecf2;padding:3px 4px;cursor:pointer;transition:background .15s;display:flex;flex-direction:column;min-height:0;position:relative;}
.cal-cell:hover{background:#eef3fb;}
.cal-cell.today{background:#e8f0fb;}
.cal-cell.today .cal-num{background:#1a3a6b;color:white;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;}
.cal-cell.other .cal-num{color:#ccc;}
.cal-cell.sel-date{outline:2px solid #1a3a6b;outline-offset:-2px;}
.cal-num{font-size:11px;font-weight:500;color:#2d4060;margin-bottom:2px;}
.cal-dots{display:flex;gap:2px;flex-wrap:wrap;margin-top:1px;}
.cal-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;}
.cal-ev-pill{font-size:8px;border-radius:2px;padding:1px 3px;margin-bottom:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:white;}
.dot-diary{background:#BA7517;}.dot-todo{background:#534AB7;}.dot-bday{background:#c0392b;}.dot-anniv{background:#8e44ad;}.dot-event{background:#1a3a6b;}
.ev-birthday{background:#c0392b;}.ev-anniv{background:#8e44ad;}.ev-festival{background:#d4801a;}.ev-event{background:#1a3a6b;}
/* Day panel — sits to the RIGHT of the calendar, never overlaps it */
.day-panel{width:230px;flex-shrink:0;background:white;border-left:1px solid #dde4ee;display:flex;flex-direction:column;overflow:hidden;}
.day-panel.hidden{display:none;}
.day-panel-hdr{background:#1a3a6b;padding:10px 12px;color:white;display:flex;align-items:center;gap:7px;flex-shrink:0;}
.day-panel-hdr h3{font-family:'Caveat',cursive;font-size:17px;flex:1;}
.day-panel-close{background:transparent;border:none;color:rgba(255,255,255,.7);cursor:pointer;font-size:17px;line-height:1;}
.day-panel-body{flex:1;overflow-y:auto;padding:8px;}
.day-section{margin-bottom:10px;}
.day-section-lbl{font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:#8a9ab0;margin-bottom:4px;font-weight:500;display:flex;align-items:center;justify-content:space-between;}
.day-section-link{font-size:10px;color:#1a3a6b;background:transparent;border:none;cursor:pointer;text-decoration:underline;letter-spacing:0;text-transform:none;}
.day-section-link:hover{color:#0f2040;}
.day-entry-btn{width:100%;padding:7px 9px;background:#fff8e8;border:1px dashed #BA7517;border-radius:7px;color:#854F0B;cursor:pointer;text-align:left;font-size:14px;}
.day-entry-btn:hover{background:#fef3d0;}
.day-entry-existing{padding:6px 9px;background:#fff8e8;border:1px solid #e8d090;border-radius:7px;cursor:pointer;margin-bottom:3px;}
.day-entry-existing:hover{background:#fef3d0;}
.day-entry-title{font-family:'Caveat',cursive;font-size:14px;color:#854F0B;}
.day-entry-preview{font-size:10px;color:#8a7060;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.day-todo-item{display:flex;align-items:center;gap:5px;padding:3px 0;border-bottom:1px solid #f0f0f0;}
.day-todo-check{width:13px;height:13px;border:2px solid #534AB7;border-radius:3px;flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.day-todo-check.done{background:#534AB7;}
.day-todo-check.done::after{content:'✓';color:white;font-size:8px;}
.day-todo-text{font-size:11px;flex:1;}.day-todo-text.done{text-decoration:line-through;color:#aaa;}
.day-contact-item{display:flex;align-items:center;gap:6px;padding:4px 0;border-bottom:1px solid #f0f0f0;}
.day-contact-av{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Caveat',cursive;font-size:11px;color:white;flex-shrink:0;}
.day-contact-info{flex:1;min-width:0;}
.day-contact-name{font-size:11px;font-weight:500;color:var(--ink);}
.day-contact-occ{font-size:10px;color:#8a7060;}
.day-wish-btn{padding:2px 7px;background:#4a1a6b;color:white;border:none;border-radius:4px;cursor:pointer;font-size:10px;flex-shrink:0;}
.day-add-event{width:100%;padding:5px;background:transparent;border:1px dashed #1a3a6b;border-radius:5px;color:#1a3a6b;font-size:11px;cursor:pointer;margin-top:3px;}
.day-add-event:hover{background:#eef3fb;}
.day-manual-ev{font-size:11px;padding:3px 6px;background:#e8f0fb;border-radius:4px;margin-bottom:3px;color:#1a3a6b;display:flex;align-items:center;gap:4px;}
.day-ev-del{background:transparent;border:none;color:#aaa;cursor:pointer;font-size:11px;margin-left:auto;}
.day-goto-btn{width:100%;padding:5px;background:#f0f4ff;border:1px solid #c0ccee;border-radius:5px;color:#1a3a6b;font-size:11px;cursor:pointer;margin-top:4px;font-weight:500;}
.day-goto-btn:hover{background:#dde4fb;}

/* ADDRESS BOOK */
.addr-wrap{flex:1;display:flex;overflow:hidden;background:var(--page-cream);border-radius:0 10px 10px 0;}
.addr-list{width:230px;border-right:1px solid var(--line-color);display:flex;flex-direction:column;background:#fdf8f0;}
.addr-list-hdr{height:46px;background:#4a1a6b;display:flex;align-items:center;padding:0 12px;gap:7px;}
.addr-list-hdr h2{font-family:Georgia,serif;font-size:19px;color:#cca8dd;flex:1;}
.addr-search{width:100%;border:none;border-bottom:1px solid var(--line-color);padding:7px 12px;font-size:12px;background:transparent;color:var(--ink);}
.addr-search:focus{outline:none;}
.alpha-bar{display:flex;flex-wrap:wrap;padding:3px 7px;gap:1px;border-bottom:1px solid var(--line-color);}
.alpha-btn{width:16px;height:16px;font-size:9px;border:none;background:transparent;cursor:pointer;border-radius:2px;color:#8a7060;display:flex;align-items:center;justify-content:center;font-weight:500;}
.alpha-btn:hover,.alpha-btn.sel{background:#4a1a6b;color:white;}
.contact-list{flex:1;overflow-y:auto;}
.contact-item{padding:7px 12px;cursor:pointer;border-bottom:1px solid rgba(0,0,0,.04);transition:background .15s;}
.contact-item:hover{background:rgba(74,26,107,.06);}
.contact-item.sel{background:rgba(74,26,107,.1);}
.cname{font-family:var(--module-font);font-size:15px;color:var(--ink);}
.csub{font-size:10px;color:var(--ink3);}
.add-contact-btn{padding:7px;background:#4a1a6b;color:white;border:none;cursor:pointer;font-size:11px;font-weight:500;width:100%;}
.addr-detail{flex:1;display:flex;flex-direction:column;overflow:hidden;}
.contact-form{flex:1;overflow-y:auto;padding:16px;}
.cdetail{flex:1;overflow-y:auto;padding:18px 16px;}
.cavatar{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Caveat',cursive;font-size:22px;color:white;margin-bottom:12px;}
.cfull-name{font-family:'Crimson Pro',serif;font-size:26px;color:var(--ink);margin-bottom:3px;}
.ctag{font-size:11px;background:#f0e8f8;color:#4a1a6b;padding:2px 9px;border-radius:10px;display:inline-block;margin-bottom:10px;}
.dsec{margin-bottom:13px;}
.dlbl{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:#8a7060;margin-bottom:3px;font-weight:500;}
.dval{font-size:13px;color:var(--ink);}
.fest-list{display:flex;flex-wrap:wrap;gap:3px;margin-top:3px;}
.fest-tag{font-size:10px;background:#fef3e2;color:#d4801a;padding:2px 7px;border-radius:8px;display:flex;align-items:center;gap:3px;}
.fest-del{background:transparent;border:none;color:#d4801a;cursor:pointer;font-size:11px;line-height:1;}
.wish-section{padding:12px 16px;border-top:1px solid var(--line-color);background:#f9f5ec;}
.wish-section h3{font-family:'Caveat',cursive;font-size:17px;color:var(--ink);margin-bottom:7px;}
.wish-card{background:white;border:1px solid var(--line-color);border-radius:7px;padding:8px 10px;margin-bottom:6px;}
.wish-occ{font-size:10px;font-weight:500;color:#4a1a6b;letter-spacing:.5px;margin-bottom:3px;}
.wish-text{font-family:'Caveat',cursive;font-size:14px;color:var(--ink);line-height:1.4;}
.wish-edit{font-size:10px;color:#4a1a6b;background:transparent;border:none;cursor:pointer;padding:2px 5px;}
.cactions{display:flex;gap:7px;padding:10px 16px;border-top:1px solid var(--line-color);}
.caction{flex:1;padding:6px;border-radius:7px;border:1px solid var(--line-color);background:white;cursor:pointer;font-size:11px;font-weight:500;color:var(--ink);transition:all .15s;}
.caction:hover{background:#4a1a6b;color:white;border-color:#4a1a6b;}
.caction-del{color:#c0392b;}
.fest-date-tag{font-size:9px;opacity:.65;margin-left:3px;}
.fest-none{font-size:11px;color:var(--ink3);}
.fest-add-row{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px;}
.fest-inp{flex:1;min-width:90px;border:1px solid var(--line-color);border-radius:5px;padding:3px 7px;font-size:11px;}
.fest-date-inp{border:1px solid var(--line-color);border-radius:5px;padding:3px 7px;font-size:11px;}
.fest-add-btn{padding:3px 10px;background:#4a1a6b;color:white;border:none;border-radius:5px;cursor:pointer;font-size:11px;}
.wish-empty{font-size:12px;color:var(--ink3);}
.wish-add-btn{margin-top:5px;padding:5px 10px;background:transparent;border:1px dashed #4a1a6b;color:#4a1a6b;border-radius:5px;cursor:pointer;font-size:11px;}
/* IMPORT MENU POPUP */
#import-menu{position:fixed;background:#fff;border:1px solid #c8d8f0;border-radius:8px;box-shadow:0 6px 24px rgba(30,58,95,.15);z-index:400;min-width:210px;overflow:hidden;}
.import-menu-hdr{display:flex;align-items:center;justify-content:space-between;padding:8px 12px 6px;border-bottom:1px solid #eef3fb;}
.import-menu-lbl{font-size:10px;color:#8a9ab0;letter-spacing:1px;text-transform:uppercase;font-weight:600;}
.import-menu-close{background:transparent;border:none;cursor:pointer;font-size:16px;color:#aaa;padding:0 2px;}
.import-menu-body{padding:4px 0;}
.import-menu-btn{width:100%;padding:9px 14px;text-align:left;border:none;background:transparent;cursor:pointer;font-size:13px;color:#1e3a5f;display:flex;align-items:center;gap:8px;}
.import-menu-btn:hover{background:#f0f4fb;}
/* VCF GUIDE MODAL */
#vcf-guide-modal{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:500;display:flex;align-items:center;justify-content:center;}
.vcf-guide-card{background:#fff;border-radius:12px;padding:28px;max-width:380px;width:90%;box-shadow:0 8px 40px rgba(0,0,0,.3);}
.vcf-guide-title{font-size:18px;font-weight:600;color:#1e3a5f;margin-bottom:12px;}
.vcf-guide-steps{font-size:13px;color:#444;line-height:1.9;padding-left:18px;margin-bottom:16px;}
.vcf-guide-note{font-size:11px;color:#888;margin-bottom:16px;}
.vcf-guide-btns{display:flex;gap:8px;}
.vcf-guide-import{flex:1;padding:9px;background:#1e3a5f;color:#fff;border:none;border-radius:7px;cursor:pointer;font-size:13px;font-weight:500;}
.vcf-guide-close{padding:9px 14px;background:#f0f4fb;color:#1e3a5f;border:none;border-radius:7px;cursor:pointer;font-size:13px;}
/* PROFILE MODAL */
#profile-modal{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:600;display:flex;align-items:center;justify-content:center;overflow-y:auto;}
.profile-card{background:#fff;border-radius:12px;width:min(420px,94vw);box-shadow:0 8px 40px rgba(0,0,0,.3);overflow:hidden;margin:20px auto;}
.profile-hdr{background:#1e3a5f;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;}
.profile-hdr-title{color:#fff;font-family:'Caveat',cursive;font-size:20px;}
.profile-hdr-close{background:transparent;border:none;color:rgba(255,255,255,.7);font-size:20px;cursor:pointer;}
.profile-body{padding:20px;}
.profile-field{margin-bottom:10px;}
.profile-field-last{margin-bottom:14px;}
.profile-lbl{font-size:11px;color:#6a7a90;text-transform:uppercase;letter-spacing:.5px;display:block;margin-bottom:4px;}
.profile-inp{width:100%;box-sizing:border-box;border:1px solid #c8d8f0;border-radius:7px;padding:8px 10px;font-size:13px;margin-bottom:8px;outline:none;}
.profile-inp-name{font-size:14px;color:#1e3a5f;}
.profile-inp-readonly{color:#888;background:#f8fbff;margin-bottom:0;}
.profile-save-btn{width:100%;padding:9px;background:#1e3a5f;color:#fff;border:none;border-radius:7px;cursor:pointer;font-size:13px;font-weight:500;margin-bottom:16px;}
.profile-section{border-top:1px solid #eef3fb;padding-top:16px;margin-top:4px;}
.profile-section-title{font-size:12px;font-weight:600;color:#1e3a5f;margin-bottom:10px;}
.profile-pw-err{font-size:12px;color:#c0392b;min-height:16px;margin-bottom:6px;}
.profile-update-btn{width:100%;padding:9px;background:#2c4a2c;color:#fff;border:none;border-radius:7px;cursor:pointer;font-size:13px;font-weight:500;}
.profile-2fa-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;}
.profile-2fa-status{font-size:11px;color:#6a7a90;margin-top:2px;}
.profile-2fa-status.enabled{color:#27ae60;}
.profile-2fa-btn{padding:6px 14px;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:12px;font-weight:500;}
.profile-2fa-btn.enable{background:#1e3a5f;}
.profile-2fa-btn.disable{background:#c0392b;}
/* 2FA SETUP PANEL */
.tfa-setup-title{font-size:12px;color:#1e3a5f;margin-bottom:8px;font-weight:500;}
.tfa-qr-wrap{text-align:center;margin-bottom:10px;}
.tfa-qr-img{width:180px;height:180px;border:1px solid #eef3fb;border-radius:8px;}
.tfa-hint{font-size:11px;color:#6a7a90;margin-bottom:6px;}
.tfa-secret{font-family:monospace;font-size:13px;background:#f0f4fb;padding:7px 10px;border-radius:6px;letter-spacing:2px;word-break:break-all;margin-bottom:12px;color:#1e3a5f;}
.tfa-code-inp{width:100%;box-sizing:border-box;border:1px solid #c8d8f0;border-radius:7px;padding:8px 10px;font-size:18px;text-align:center;letter-spacing:8px;font-family:monospace;outline:none;margin-bottom:6px;}
.tfa-err{font-size:11px;color:#c0392b;min-height:14px;margin-bottom:6px;}
.tfa-confirm-btn{width:100%;padding:9px;background:#1e3a5f;color:#fff;border:none;border-radius:7px;cursor:pointer;font-size:13px;font-weight:500;}
.tfa-loading{font-size:12px;color:#6a7a90;padding:8px 0;}
.tfa-error{font-size:12px;color:#c0392b;}
.tfa-disable-btn{width:100%;padding:9px;background:#c0392b;color:#fff;border:none;border-radius:7px;cursor:pointer;font-size:13px;font-weight:500;}
/* EXPORT DIALOG */
#export-dialog-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:500;display:flex;align-items:center;justify-content:center;}
.exp-card{background:#fdf8f0;border-radius:14px;box-shadow:0 16px 56px rgba(20,10,0,.45);width:345px;max-width:92vw;overflow:hidden;font-family:sans-serif;}
.exp-hdr{background:linear-gradient(135deg,#2e1e0e 0%,#7a5230 100%);padding:16px 20px;display:flex;align-items:center;justify-content:space-between;}
.exp-hdr-left{display:flex;align-items:center;gap:10px;}
.exp-hdr-icon{font-size:22px;}
.exp-hdr-title{font-family:'Caveat',cursive;font-size:22px;color:#f5e8c8;font-weight:700;letter-spacing:.3px;}
.exp-hdr-close{background:transparent;border:none;cursor:pointer;font-size:20px;color:rgba(255,255,255,.5);line-height:1;padding:0 2px;}
.exp-body{padding:20px 20px 18px;}
.exp-section-lbl{font-size:10px;color:#8a7a60;letter-spacing:1.2px;text-transform:uppercase;font-weight:700;margin-bottom:8px;}
.exp-scope-row{display:flex;gap:8px;margin-bottom:18px;}
.exp-style-col{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;}
.exp-lbl{flex:1;border:2px solid #ddd0b0;border-radius:9px;padding:10px 13px;cursor:pointer;display:flex;align-items:flex-start;gap:9px;transition:border-color .15s,background .15s;background:#fdf8f0;}
.exp-lbl.sel{border-color:#c9a95a;background:#fff8ec;}
.exp-lbl input[type=radio]{accent-color:#8b5e2a;flex-shrink:0;margin-top:2px;}
.exp-lbl-title{font-size:13px;color:#2e1e0e;font-weight:600;}
.exp-lbl-sub{font-size:11px;color:#9a8a70;margin-top:2px;}
.exp-btn-col{display:flex;flex-direction:column;gap:9px;}
.exp-btn-print{width:100%;padding:12px;background:linear-gradient(135deg,#2e1e0e,#7a5230);color:#f5e8c8;border:none;border-radius:9px;cursor:pointer;font-size:16px;font-family:'Caveat',cursive;letter-spacing:.5px;display:flex;align-items:center;justify-content:center;gap:8px;}
.exp-btn-txt{width:100%;padding:11px;background:#f5ede0;color:#5a3a1a;border:1.5px solid #c9a95a;border-radius:9px;cursor:pointer;font-size:16px;font-family:'Caveat',cursive;letter-spacing:.5px;display:flex;align-items:center;justify-content:center;gap:8px;}
.no-contact{display:flex;align-items:center;justify-content:center;flex:1;flex-direction:column;gap:7px;color:var(--ink3);font-size:14px;}

/* FORMS */
.form-group{margin-bottom:10px;}
.flbl{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#8a7060;margin-bottom:3px;font-weight:500;}
.finp{width:100%;border:1px solid var(--line-color);border-radius:7px;padding:7px 10px;font-size:13px;color:var(--ink);background:white;}
.finp:focus{outline:none;border-color:#4a1a6b;}
.fsel{width:100%;border:1px solid var(--line-color);border-radius:7px;padding:7px 10px;font-size:13px;color:var(--ink);background:white;}
.frow{display:flex;gap:7px;}
.frow .form-group{flex:1;}
.save-btn{width:100%;padding:9px;background:#4a1a6b;color:white;border:none;border-radius:7px;cursor:pointer;font-size:13px;font-weight:500;margin-top:7px;}
.cancel-btn{width:100%;padding:7px;background:transparent;border:none;color:var(--ink3);cursor:pointer;font-size:12px;margin-top:3px;}

/* MODALS */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;z-index:200;}
.modal-box{background:white;border-radius:10px;padding:20px;width:300px;box-shadow:0 8px 32px rgba(0,0,0,.2);}
.modal-box h3{font-family:'Caveat',cursive;font-size:21px;color:var(--ink);margin-bottom:10px;}
.modal-inp{width:100%;border:1.5px solid #d8e2ef;border-radius:10px;padding:7px 12px;font-size:13px;margin-bottom:5px;background:#fafcff;transition:border-color .18s,box-shadow .18s;box-sizing:border-box;}
.modal-inp:focus{outline:none;border-color:#3a6abf;box-shadow:0 0 0 3px rgba(58,106,191,.1);background:#fff;}
.modal-btns{display:flex;gap:7px;margin-top:10px;}
.mbtn{flex:1;padding:7px;border-radius:7px;border:none;cursor:pointer;font-size:12px;font-weight:500;}
.mbtn-p{background:#1a3a6b;color:white;}
.mbtn-s{background:#f0f0f0;color:#444;}

/* WISH MODAL */
.wish-modal-box{background:white;border-radius:10px;width:390px;overflow:hidden;box-shadow:0 12px 48px rgba(0,0,0,.3);}
.wish-modal-hdr{background:#4a1a6b;padding:14px 18px;color:white;}
.wish-modal-hdr h3{font-family:'Caveat',cursive;font-size:21px;}
.wish-modal-hdr p{font-size:11px;opacity:.7;}
.wish-modal-body{padding:16px;}
.email-preview{border:1px solid #e0e0e0;border-radius:7px;padding:13px;margin-bottom:10px;}
.email-to{font-size:11px;color:#888;margin-bottom:3px;}
.email-subj{font-size:13px;font-weight:500;color:#333;margin-bottom:10px;padding-bottom:7px;border-bottom:1px solid #eee;}
.email-body{font-family:'Caveat',cursive;font-size:17px;color:var(--ink);line-height:1.5;}

/* TOAST */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(14px);background:#1a1208;color:#e8d4a0;padding:10px 20px;border-radius:9px;font-size:12.5px;font-weight:500;z-index:9000;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;border:1px solid var(--gold);box-shadow:0 4px 18px rgba(0,0,0,.18);white-space:nowrap;max-width:92vw;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.toast-success{background:#163320;border-color:#3a8a4a;color:#90d4a0;}
.toast-error{background:#321010;border-color:#943030;color:#f0a0a0;}
.toast-warning{background:#2e2008;border-color:#987828;color:#e8c870;}
.toast-info{background:#1a1208;border-color:var(--gold);color:#e8d4a0;}
/* MODULE FADE */
@keyframes mod-fadein{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.mod-fade-in{animation:mod-fadein .18s ease forwards;}
/* SKELETON LOADER */
@keyframes shimmer{0%{background-position:-600px 0}100%{background-position:600px 0}}
.skel{background:linear-gradient(90deg,#eff1f5 25%,#e4e7ee 50%,#eff1f5 75%);background-size:1200px 100%;animation:shimmer 1.4s infinite;border-radius:6px;}
.db-skel-card{background:#fff;border:1px solid #eaeef5;border-radius:14px;padding:18px;box-shadow:0 2px 12px rgba(30,58,95,.06);}
.db-skel-title{height:11px;width:110px;margin-bottom:14px;}
.db-skel-line{height:9px;margin-bottom:8px;border-radius:4px;}
.db-skel-line.w-80{width:80%}.db-skel-line.w-60{width:60%}.db-skel-line.w-40{width:40%}
/* SESSION WARNING BANNER */
#session-warn-banner{position:fixed;top:0;left:0;right:0;z-index:8000;background:linear-gradient(90deg,#2a4a1a,#1e3a5f);color:#fff;font-size:13px;padding:10px 16px;display:flex;align-items:center;gap:10px;box-shadow:0 2px 12px rgba(0,0,0,.2);}
#session-warn-banner span{flex:1;}
#session-warn-banner button{padding:5px 14px;border:none;border-radius:6px;cursor:pointer;font-size:12px;font-weight:600;}
#session-warn-banner .swb-renew{background:#4a9a5a;color:#fff;}
#session-warn-banner .swb-dismiss{background:transparent;color:rgba(255,255,255,.6);font-size:16px;padding:2px 8px;}

/* SIDEBAR TOGGLE */
#sidebar{transition:width .25s ease,opacity .25s ease;}
#sidebar.collapsed{width:0;opacity:0;overflow:hidden;}
.sb-toggle{background:transparent;border:1px solid rgba(201,168,76,.3);color:#bba98a;border-radius:6px;padding:4px 8px;cursor:pointer;font-size:14px;transition:all .2s;flex-shrink:0;}
.sb-toggle:hover{border-color:var(--gold);color:var(--gold2);}
/* SEARCH BARS */
.search-bar-wrap{padding:7px 14px;border-bottom:1px solid rgba(201,168,76,.1);}
.search-bar{width:100%;border:1px solid rgba(201,168,76,.25);border-radius:6px;padding:5px 9px;font-size:12px;background:rgba(255,255,255,.06);color:#c4a870;outline:none;}
.search-bar::placeholder{color:#5a4030;}
.search-bar:focus{border-color:var(--gold);background:rgba(255,255,255,.1);}
body.theme-light .search-bar{background:rgba(0,0,0,.04);color:#4a3020;border-color:rgba(139,96,64,.3);}
body.theme-light .search-bar::placeholder{color:#9a8070;}
/* DIARY DATE PICKER */
.diary-date-bar{display:flex;align-items:center;gap:6px;padding:4px 14px;border-bottom:1px solid rgba(201,168,76,.1);background:rgba(0,0,0,.1);}
.diary-date-bar label{font-size:10px;color:#8a7060;letter-spacing:.5px;text-transform:uppercase;}
.diary-date-inp{border:1px solid rgba(201,168,76,.25);border-radius:5px;padding:3px 7px;font-size:11px;background:rgba(255,255,255,.06);color:#c4a870;cursor:pointer;}
.diary-date-inp:focus{outline:none;border-color:var(--gold);}
/* FONT SELECTOR */
.font-btns{padding:0 14px;display:flex;flex-direction:column;gap:3px;}
.font-btn{padding:4px 8px;border-radius:5px;border:1px solid rgba(201,168,76,.25);background:transparent;color:#9a8060;cursor:pointer;font-size:12px;text-align:left;transition:all .15s;}
.font-btn.sel{background:rgba(201,168,76,.18);color:var(--gold2);border-color:rgba(201,168,76,.5);}
/* APP THEME SWATCHES */
.app-theme-row{padding:5px 14px;display:flex;gap:6px;flex-wrap:wrap;margin-bottom:4px;}
.app-theme-sw{width:22px;height:22px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:all .15s;}
.app-theme-sw:hover,.app-theme-sw.sel{border-color:#fff;transform:scale(1.15);}
.settings-theme-legend{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:12px;}
.settings-theme-lbl{font-size:9px;color:#8a9ab0;}
.settings-theme-lbl-light{font-size:9px;color:#3a6abf;}
.settings-theme-lbl-dark{font-size:9px;color:#555;}
#module-font-btns,#greeting-font-btns{display:flex;flex-direction:column;gap:4px;margin-bottom:12px;}
/* DIARY SEARCH RESULTS */
.diary-search-results{position:absolute;top:100%;left:0;right:0;background:white;border:1px solid #ddd;border-radius:0 0 8px 8px;max-height:200px;overflow-y:auto;z-index:50;box-shadow:0 4px 12px rgba(0,0,0,.15);}
.diary-search-item{padding:8px 12px;cursor:pointer;border-bottom:1px solid #f0f0f0;font-size:12px;}
.diary-search-item:hover{background:#f5f5f5;}
.diary-search-title{font-family:'Caveat',cursive;font-size:15px;color:var(--ink);}
.diary-search-preview{font-size:10px;color:#888;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
/* TODO SEARCH */
.todo-search-wrap{padding:6px 14px;border-bottom:1px solid var(--line-color);background:#f9f5ec;}
.todo-search{width:100%;border:1px solid var(--line-color);border-radius:6px;padding:5px 9px;font-size:12px;background:white;color:var(--ink);}
.todo-search:focus{outline:none;border-color:#2c4a2c;}
/* LOGO */
.logo-img{height:28px;width:auto;margin-right:4px;vertical-align:middle;}

::-webkit-scrollbar{width:3px;}
::-webkit-scrollbar-thumb{background:var(--line-color);border-radius:2px;}
/* GLOBAL SEARCH */
.gsearch-item{padding:8px 16px;cursor:pointer;border-bottom:1px solid #f5f8ff;transition:background .12s;}
.gsearch-item:hover{background:#f0f4fb;}
.gsearch-section-hdr{font-size:10px;letter-spacing:1px;color:#8a9ab0;text-transform:uppercase;padding:6px 16px 3px;font-weight:600;}
.gsearch-page-title{font-family:'Caveat',cursive;font-size:15px;color:#1e3a5f;}
.gsearch-meta-date{font-size:10px;color:#aaa;}
.gsearch-preview{font-size:11px;color:#888;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.gsearch-todo-text{font-size:13px;color:#2c4a2c;}
.gsearch-todo-text.done{text-decoration:line-through;color:#aaa;}
.gsearch-contact-name{font-size:13px;color:#4a1a6b;font-weight:500;}
.gsearch-contact-sub{font-size:11px;color:#888;}
.gsearch-empty{text-align:center;color:#bbb;font-size:13px;padding:20px;}
.diary-search-meta{font-size:10px;color:#aaa;}
/* GLOBAL SEARCH MODAL */
#global-search-modal{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:600;display:flex;align-items:flex-start;justify-content:center;padding-top:70px;}
.gsearch-card{background:#fff;border-radius:12px;width:min(580px,94vw);box-shadow:0 8px 40px rgba(0,0,0,.3);overflow:hidden;}
.gsearch-header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid #eef3fb;}
.gsearch-icon{font-size:18px;}
#global-search-inp{flex:1;border:none;outline:none;font-size:15px;color:#1e3a5f;}
.gsearch-hdr-close{background:transparent;border:none;font-size:20px;color:#aaa;cursor:pointer;line-height:1;}
#global-search-results{max-height:60vh;overflow-y:auto;padding:8px 0;min-height:60px;}
.gsearch-prompt{text-align:center;color:#bbb;font-size:13px;padding:20px;}
/* MISC UTILITY */
.exp-pg-label{font-size:13px;font-family:'Caveat',cursive;color:#9a8a70;}
.todo-day-empty{font-size:11px;color:#aaa;font-style:italic;padding:2px 0;}
.contact-empty{padding:16px;text-align:center;font-size:12px;color:var(--ink3);}
.fest-checks-wrap{display:flex;flex-wrap:wrap;gap:3px;margin-top:3px;}
.fest-check-lbl{display:flex;align-items:center;gap:2px;font-size:11px;background:#f8f4f0;border:1px solid var(--line-color);border-radius:10px;padding:2px 7px;cursor:pointer;}

/* ADMIN PANEL */
.astat{background:#f5f8ff;border:1px solid #e0eaf8;border-radius:8px;padding:8px 14px;text-align:center;min-width:70px;}
.astat-n{font-size:22px;font-weight:700;color:#1e3a5f;}
.astat-l{font-size:10px;color:#6a7a90;text-transform:uppercase;letter-spacing:.5px;}
.astat-active   .astat-n{color:#2c7a2c;}
.astat-pending  .astat-n{color:#d4801a;}
.astat-suspended .astat-n{color:#c0392b;}
.astat-expired  .astat-n{color:#888;}
.aact{padding:3px 9px;border-radius:5px;border:none;cursor:pointer;font-size:11px;font-weight:500;}
.aact-green {background:#e8f5e9;color:#2c7a2c;}
.aact-green:hover{background:#2c7a2c;color:#fff;}
.aact-orange{background:#fff3e0;color:#d4801a;}
.aact-orange:hover{background:#d4801a;color:#fff;}
.aact-blue  {background:#e8f0fb;color:#1e3a5f;}
.aact-blue:hover{background:#1e3a5f;color:#fff;}
.aact-red   {background:#fdecea;color:#c0392b;}
.aact-red:hover{background:#c0392b;color:#fff;}
.aact:disabled{opacity:.4;cursor:default;}
.abadge{font-size:9px;padding:1px 6px;border-radius:8px;font-weight:600;margin-left:4px;}
.abadge-admin{background:#1e3a5f;color:#fff;}
#admin-user-table tr{border-bottom:1px solid #f0f4fa;}

/* ADMIN PANEL SHELL */
#admin-panel{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:800;align-items:flex-start;justify-content:center;padding-top:40px;overflow-y:auto;}
.admin-card{background:#fff;border-radius:14px;width:min(960px,96vw);box-shadow:0 16px 64px rgba(0,0,0,.2);overflow:hidden;}
.admin-hdr{background:#1e3a5f;padding:16px 20px;display:flex;align-items:center;gap:10px;}
.admin-hdr-title{font-family:'Caveat',cursive;font-size:22px;color:#fff;flex:1;}
.admin-hdr-btn{padding:6px 14px;background:#3a6abf;color:#fff;border:none;border-radius:7px;cursor:pointer;font-size:12px;font-weight:500;}
.admin-hdr-refresh{padding:6px 12px;background:rgba(255,255,255,.15);color:#fff;border:none;border-radius:7px;cursor:pointer;font-size:12px;}
.admin-hdr-close{background:transparent;border:none;color:rgba(255,255,255,.7);cursor:pointer;font-size:20px;line-height:1;}
#admin-stats{display:flex;gap:12px;padding:14px 20px;background:#f5f8ff;border-bottom:1px solid #e0eaf8;flex-wrap:wrap;}
.admin-tbl-wrap{overflow-x:auto;}
.admin-tbl{width:100%;border-collapse:collapse;font-size:12px;}
.admin-tbl thead tr{background:#f0f4fa;border-bottom:2px solid #d0ddef;}
.admin-tbl th{padding:10px 14px;text-align:left;color:#1e3a5f;font-weight:600;}
.admin-footer{padding:10px 20px;text-align:right;font-size:10px;color:#aaa;border-top:1px solid #eee;}
/* ADMIN MODALS */
#admin-edit-modal,#admin-add-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:900;align-items:center;justify-content:center;}
.admin-modal-card{background:#fff;border-radius:12px;padding:24px;width:320px;box-shadow:0 8px 32px rgba(0,0,0,.2);}
.admin-modal-title{font-family:'Caveat',cursive;font-size:20px;color:#1e3a5f;margin-bottom:14px;}
.admin-field{margin-bottom:10px;}
.admin-field-last{margin-bottom:14px;}
.admin-field-lbl{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#8a9ab0;margin-bottom:4px;}
.admin-btn-row{display:flex;gap:8px;}
.admin-btn-cancel{flex:1;padding:8px;border:1px solid #ddd;border-radius:7px;background:#f5f5f5;cursor:pointer;font-size:12px;}
.admin-btn-save{flex:2;padding:8px;background:#1e3a5f;color:#fff;border:none;border-radius:7px;cursor:pointer;font-size:12px;font-weight:600;}
.admin-error{color:#c0392b;font-size:11px;min-height:14px;margin-bottom:6px;}
/* ADMIN TABLE CELLS */
.admin-user-name{font-weight:500;color:#1e3a5f;}
.admin-user-email{font-size:10px;color:#888;}
.admin-td-meta{font-size:11px;color:#6a7a90;}
.admin-td-note{font-size:11px;color:#888;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.admin-td-actions{display:flex;gap:4px;flex-wrap:wrap;}
.alicense{padding:2px 8px;border-radius:8px;font-size:11px;font-weight:500;}
.alicense-active{background:#e8f5e9;color:#2c7a2c;}
.alicense-pending{background:#fff3e0;color:#d4801a;}
.alicense-suspended{background:#fdecea;color:#c0392b;}
.alicense-expired{background:#f5f5f5;color:#888;}
.admin-no-users{text-align:center;color:#aaa;padding:20px;}
.admin-loading{color:#6a7a90;font-size:12px;}
.admin-load-error{color:#c0392b;font-size:12px;}
/* LICENSE BLOCK SCREEN */
#license-block{position:fixed;inset:0;background:#edf1f7;z-index:9999;display:flex;align-items:center;justify-content:center;}
.license-block-card{background:#fff;border:1px solid #c8d8f0;border-radius:14px;padding:32px;width:340px;text-align:center;box-shadow:0 8px 40px rgba(30,58,95,.15);}
.license-block-icon{font-size:40px;margin-bottom:12px;}
.license-block-title{font-family:'Caveat',cursive;font-size:24px;color:#1e3a5f;margin-bottom:8px;}
.license-block-msg{font-size:13px;color:#4a5a72;margin-bottom:20px;line-height:1.6;}
.license-block-btn{padding:9px 24px;background:#1e3a5f;color:#fff;border:none;border-radius:7px;cursor:pointer;font-size:13px;}
/* AUTH 2FA */
.auth-2fa-hdr{text-align:center;margin-bottom:18px;}
.auth-2fa-icon{font-size:32px;margin-bottom:6px;}
.auth-2fa-title{font-size:14px;font-weight:600;color:#1e3a5f;}
.auth-2fa-sub{font-size:12px;color:#6a7a90;margin-top:4px;}
#auth-2fa-code{text-align:center;font-size:26px;letter-spacing:10px;font-family:monospace;}
.auth-back-btn{width:100%;padding:8px;margin-top:6px;background:transparent;color:#6a7a90;border:1px solid #c8d8f0;border-radius:7px;cursor:pointer;font-size:12px;}
/* VOICE INDICATOR */
.vrec-indicator{font-size:11px;color:#c0392b;}
/* PAGE-OF-N */
.pg-of-n{font-family:'Caveat',cursive;font-size:12px;color:var(--ink3);margin-top:1px;display:block;}

/* MOOD PICKER */
.mood-toggle{padding:0 4px;border:none;background:transparent;cursor:pointer;font-size:16px;line-height:1;border-radius:4px;transition:background .15s;flex-shrink:0;}
.mood-toggle:hover{background:rgba(0,0,0,.07);}
.mood-bar{display:flex;align-items:center;gap:2px;padding:2px 4px;background:rgba(245,240,232,.97);border:1px solid var(--line-color);border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.12);position:absolute;bottom:38px;left:60px;z-index:20;}
.mood-btn{padding:2px;border:none;background:transparent;cursor:pointer;font-size:18px;border-radius:4px;line-height:1;transition:background .12s,transform .12s;}
.mood-btn:hover{background:rgba(0,0,0,.07);transform:scale(1.2);}
.mood-btn.sel{background:rgba(58,106,191,.15);transform:scale(1.1);}

/* WORD COUNT */
.word-count{font-size:10px;color:var(--ink3);margin-left:auto;flex-shrink:0;letter-spacing:.2px;}

/* SPELL CHECK & PIN BUTTONS */
.spell-toggle,.pin-btn{padding:2px 6px;border:1px solid rgba(0,0,0,.15);border-radius:4px;background:transparent;cursor:pointer;font-size:10px;color:var(--ink3);transition:all .15s;flex-shrink:0;}
.spell-toggle:hover,.pin-btn:hover{background:rgba(0,0,0,.07);}
.spell-toggle.active{background:rgba(44,74,44,.1);color:#2c4a2c;border-color:#2c4a2c;}
.pin-btn.active{background:rgba(201,168,76,.1);color:var(--gold2);}

/* AUTH SCREEN */
.auth-screen{position:fixed;inset:0;background:linear-gradient(145deg,#dde8f8 0%,#e8f0fb 35%,#f0f4fc 65%,#d8e6f6 100%);z-index:9999;display:flex;align-items:center;justify-content:center;}
.auth-card{background:#ffffff;border:none;border-radius:20px;padding:14px 32px 14px;width:360px;box-shadow:0 24px 64px rgba(30,58,95,.16),0 4px 16px rgba(30,58,95,.07);}
.auth-logo{text-align:center;margin-bottom:8px;}
.auth-app-name{font-family:'Caveat',cursive;font-size:22px;color:#1e3a5f;margin-top:4px;}
.auth-tagline{font-size:11px;color:#8a9ab0;margin-top:2px;margin-bottom:6px;}
/* MyBook logo illustration on auth screen */
.ab-book{width:88px;height:108px;margin:2px auto 5px;background:#1d2b57;border-radius:9px;position:relative;box-shadow:inset 4px 0 rgba(255,255,255,0.08);}
.ab-book::before{content:"";position:absolute;bottom:4px;left:6px;width:76px;height:7px;background:#f4efe8;border-radius:3px;}
.ab-bookmark{position:absolute;bottom:-7px;left:18px;width:10px;height:21px;background:#d89aa0;clip-path:polygon(0 0,100% 0,100% 80%,50% 100%,0 80%);}
.ab-feather{position:absolute;top:25px;left:27px;color:white;font-size:32px;transform:rotate(-18deg);}
.ab-heart{position:absolute;right:21px;bottom:34px;color:#d89aa0;font-size:13px;}
.ab-brand{font-size:26px;font-weight:300;color:#0d1b4f;letter-spacing:1px;font-family:Arial,sans-serif;line-height:1;}
.ab-tagline{margin-top:4px;font-size:10px;color:#d89aa0;letter-spacing:1px;font-family:Arial,sans-serif;}
.auth-tabs{display:flex;margin-bottom:10px;border-radius:10px;overflow:hidden;background:#e8eef8;padding:3px;gap:3px;}
.auth-tab{flex:1;padding:8px;border:none;cursor:pointer;font-size:12px;font-weight:600;background:transparent;color:#8a9ab8;border-radius:8px;transition:background .2s,color .2s,box-shadow .2s;}
.auth-tab.active{background:#1e3a5f;color:#ffffff;box-shadow:0 2px 10px rgba(30,58,95,.3);}
.auth-error{color:#e74c3c;font-size:11px;min-height:16px;margin-bottom:6px;}
.auth-submit-btn{width:100%;padding:9px;background:linear-gradient(135deg,#1e3a5f 0%,#2c5fa0 100%);color:#ffffff;border:none;border-radius:10px;cursor:pointer;font-size:13px;font-weight:600;letter-spacing:.3px;box-shadow:0 4px 14px rgba(30,58,95,.25);transition:transform .15s,box-shadow .15s;}
.auth-submit-btn:hover{transform:translateY(-1px);box-shadow:0 7px 20px rgba(30,58,95,.32);}
.auth-back-btn{width:100%;padding:8px;background:transparent;color:#6a7a90;border:1px solid #d8e2ef;border-radius:10px;cursor:pointer;font-size:12px;margin-top:8px;transition:border-color .15s,color .15s;}
.auth-back-btn:hover{border-color:#1e3a5f;color:#1e3a5f;}

/* SETTINGS PANEL */
.settings-panel{display:none;position:fixed;top:10px;background:#ffffff;border:1px solid #c8d8f0;border-radius:10px;padding:16px;width:260px;z-index:300;box-shadow:0 8px 32px rgba(30,58,95,.15);}
.settings-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.settings-title{color:#1e3a5f;font-size:14px;font-weight:500;}
.settings-close{background:transparent;border:none;color:#888;cursor:pointer;font-size:16px;}
.settings-section-lbl{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#6a7a90;margin-bottom:6px;}
.settings-section-lbl.warm{color:#6a5030;}


#admin-user-table tr:hover{background:#f8fbff;}
#admin-user-table td{padding:10px 14px;vertical-align:middle;}
.admin-smtp-warn{background:#fff8e6;border:1px solid #f0c850;border-radius:7px;padding:10px 16px;font-size:12px;color:#7a5a10;margin-bottom:12px;line-height:1.5;}
.admin-smtp-warn code{background:rgba(0,0,0,.07);border-radius:3px;padding:1px 5px;font-size:11px;}

/* ── MOBILE / TABLET RESPONSIVE ── */
@media (max-width:640px){
  #main{overflow:hidden;}
  #leftnav{width:46px;padding:0 3px 4px;}
  .lnav-brand{padding:8px 2px 5px;margin:0 -3px 3px;}
  .lnav-brand svg{width:40px;height:18px;}
  .lnav-brand-sub{font-size:10px;}
  .lnav-lbl{display:none;}
  .lnav-btn{justify-content:center;padding:8px 3px;font-size:14px;}
  .lnav-btn.active{padding-left:3px;border-left-width:2px;}
  #content{flex:1;min-height:0;overflow:hidden;}
  #sidebar{display:none!important;}
  .book,.book-wide{width:calc(100vw - 46px);height:100%;border-radius:0;box-shadow:none;}
  .book-spine{display:none;}
  .book-pages{border-radius:0;}
  .pg-corner{width:70px;height:70px;}
  .fmt-bar{flex-wrap:wrap;height:auto;min-height:34px;padding:3px 8px;gap:3px;}
  .text-layer{font-size:16px;}
}
@media (max-width:400px){
  .nav-tab{font-size:10px;padding:3px 5px;}
  .fmt-font-sel{max-width:90px;}
}

/* ── FORMAT BAR LANGUAGE SELECT ── */
.fmt-lang-sel{border:1px solid #d9cfc0;border-radius:5px;background:white;color:var(--ink);font-size:11px;padding:2px 4px;cursor:pointer;max-width:110px;}
.fmt-lang-sel:focus{outline:none;border-color:var(--gold2);}

/* ── DASHBOARD ── */
.db-wm{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;opacity:.06;z-index:0;}
.db-wm-book{width:320px;height:390px;margin:0 auto 20px;background:#1d2b57;border-radius:32px;position:relative;box-shadow:inset 14px 0 rgba(255,255,255,0.08);}
.db-wm-book::before{content:"";position:absolute;bottom:14px;left:22px;width:276px;height:24px;background:#f4efe8;border-radius:10px;}
.db-wm-bm{position:absolute;bottom:-25px;left:68px;width:38px;height:74px;background:#d89aa0;clip-path:polygon(0 0,100% 0,100% 80%,50% 100%,0 80%);}
.db-wm-ft{position:absolute;top:88px;left:98px;color:white;font-size:114px;transform:rotate(-18deg);line-height:1;}
.db-wm-ht{position:absolute;right:74px;bottom:124px;color:#d89aa0;font-size:46px;line-height:1;}
.db-wm-brand{font-size:96px;font-weight:300;color:#0d1b4f;letter-spacing:2px;font-family:Arial,sans-serif;line-height:1;}
#mod-dashboard{position:relative;}
.db-greeting{font-family:'Caveat',cursive;font-size:36px;font-weight:700;color:#1a3a5f;line-height:1.1;}
.db-date{font-size:12px;color:#8a9ab0;margin-bottom:22px;letter-spacing:.5px;text-transform:uppercase;}
.db-quick{display:flex;gap:10px;margin-bottom:24px;flex-wrap:wrap;}
.db-qbtn{display:flex;align-items:center;gap:7px;padding:10px 22px;background:#ffffff;color:#1e3a5f;border:1.5px solid #c8d8f0;border-radius:24px;cursor:pointer;font-size:13px;font-weight:600;letter-spacing:.2px;transition:transform .15s,box-shadow .15s,background .15s,border-color .15s;box-shadow:0 2px 6px rgba(30,58,95,.08);}
.db-qbtn:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(30,58,95,.16);background:#1e3a5f;color:#fff;border-color:#1e3a5f;}
.db-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.db-card{background:#fff;border:1px solid #eaeef5;border-radius:14px;padding:18px;box-shadow:0 2px 12px rgba(30,58,95,.06),0 1px 3px rgba(30,58,95,.04);}
.db-card-title{font-size:11px;font-weight:700;color:#3a5a82;text-transform:uppercase;letter-spacing:1px;margin-bottom:12px;padding-bottom:10px;border-bottom:2px solid #eef2f8;}
.db-row{display:flex;align-items:center;justify-content:space-between;padding:5px 0;font-size:12px;color:#3a2a1a;border-bottom:1px solid #f5f0e8;gap:8px;}
.db-row:last-child{border-bottom:none;}
.db-row-link{cursor:pointer;transition:background .1s;border-radius:4px;padding-left:4px;}
.db-row-link:hover{background:#faf5ed;}
.db-badge{font-size:11px;font-weight:600;white-space:nowrap;flex-shrink:0;}
.db-empty{color:#bbb;font-size:12px;font-style:italic;padding:4px 0;}
.db-write-btn{margin-top:10px;padding:5px 14px;background:#f5ede0;color:#5a3a1a;border:1px solid #c9a95a;border-radius:6px;cursor:pointer;font-size:12px;transition:background .15s,color .15s;}
.db-write-btn:hover{background:#c9a95a;color:#fff;}
.db-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:4px;}
.db-stat{text-align:center;padding:12px 6px;background:#f6f8fc;border-radius:10px;border:1px solid #eaeef5;}
.db-stat-full{grid-column:1/-1;}
.db-stat-n{font-family:'Caveat',cursive;font-size:28px;font-weight:700;color:#1a3a5f;line-height:1;}
.db-streak{color:#d4801a;}
.db-pending{color:#c0392b;}
.db-done{color:#2c7a2c;}
.db-stat-l{font-size:10px;color:#8a9ab0;text-transform:uppercase;letter-spacing:.5px;margin-top:3px;}
.db-card-stats{grid-column:1/-1;}
.db-row-today{color:#c0392b;font-weight:600;}
.db-text-done{text-decoration:line-through;color:#aaa;}
.db-badge-today{color:#c0392b;}
.db-badge-soon{color:#d4801a;}
.db-badge-later{color:#2c7a2c;}
.db-badge-pending-txt{color:#d4801a;}
.db-badge-done-txt{color:#aaa;}
.db-badge-preview{color:#5a3a1a;font-weight:400;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
@media(max-width:900px){.db-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:640px){.db-grid{grid-template-columns:1fr;}.db-quick{gap:6px;}.db-qbtn{padding:7px 14px;font-size:13px;}.db-stats{grid-template-columns:1fr 1fr;}}
.db-card-title-sub{font-weight:400;opacity:.6;}

/* ── MISC STRUCTURAL ── */
.search-pos-rel{position:relative;}
.sb-label-row{display:flex;align-items:center;justify-content:space-between;}
#page-month-filter{font-size:10px;border:1px solid rgba(201,168,76,.25);border-radius:4px;background:transparent;color:var(--ink3);padding:1px 4px;cursor:pointer;max-width:100px;}
#upcoming{padding:0 14px;}
.cal-today-btn{font-size:11px;}
.no-contact-icon{font-size:44px;opacity:.3;}
.addr-book{height:min(610px,88vh);}
.addr-act-wrap{display:flex;gap:5px;}
.addr-act-btn{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);color:#cca8dd;border-radius:5px;padding:3px 9px;cursor:pointer;font-size:11px;}
.addr-act-btn:hover{background:rgba(255,255,255,.25);}
#mod-dashboard{overflow-y:auto;align-items:flex-start;justify-content:flex-start;}
#dashboard-inner{width:100%;padding:24px 28px;}
#ev-type{margin-bottom:7px;}
.resize-none{resize:none;}
#todo-date{border:1px solid var(--line-color);border-radius:7px;padding:6px 7px;font-size:11px;background:white;color:var(--ink);}
#prof-2fa-panel{margin-top:10px;}
.wish-send-btn{flex:2;background:#4a1a6b;}
#mod-todo .module-header{background:#2c4a2c;}
#mod-todo .module-header h2{color:#a8d4a8;}
#filt{background:rgba(255,255,255,.15);border:none;color:#a8d4a8;border-radius:5px;padding:3px 7px;font-size:11px;}
#mod-todo .add-btn{background:#2c4a2c;}

/* ═══════════════════════════════════════════════════════════════
   PER-THEME OVERRIDES — auth screen · left nav · dashboard
   ═══════════════════════════════════════════════════════════════ */

/* ── DARK WOOD ── */
body.theme-dark .auth-screen{background:linear-gradient(145deg,#1a0f08 0%,#2c1810 50%,#1a0c06 100%);}
body.theme-dark .auth-card{background:#271508;box-shadow:0 24px 64px rgba(0,0,0,.55),0 4px 16px rgba(0,0,0,.35);}
body.theme-dark .auth-card .modal-inp{background:#1c0e06;border-color:rgba(201,168,76,.28);color:#c4a878;}
body.theme-dark .auth-card .modal-inp::placeholder{color:#6a5030;}
body.theme-dark .auth-card .modal-inp:focus{border-color:#c9a84c;box-shadow:0 0 0 3px rgba(201,168,76,.15);background:#1c0e06;}
body.theme-dark .auth-tabs{background:rgba(255,255,255,.06);}
body.theme-dark .auth-tab{color:#6a5030;}
body.theme-dark .auth-tab.active{background:#5a3010;color:#e8c97a;box-shadow:0 2px 10px rgba(0,0,0,.5);}
body.theme-dark .auth-submit-btn{background:linear-gradient(135deg,#7a5010 0%,#c9a84c 100%);box-shadow:0 4px 14px rgba(201,168,76,.3);}
body.theme-dark .auth-back-btn{border-color:rgba(201,168,76,.25);color:#8a7050;}
body.theme-dark .auth-back-btn:hover{border-color:#c9a84c;color:#c9a84c;}
body.theme-dark .lnav-btn.active{box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 1px 4px rgba(0,0,0,.3);}
body.theme-dark .db-card{background:#271508;border-color:rgba(201,168,76,.12);}
body.theme-dark .db-card-title{color:#c9a84c;border-bottom-color:rgba(201,168,76,.18);}
body.theme-dark .db-qbtn{background:#271508;border-color:rgba(201,168,76,.3);color:#c4a878;}
body.theme-dark .db-qbtn:hover{background:#c9a84c;border-color:#c9a84c;color:#1a0f08;}
body.theme-dark .db-stat{background:#1c0e06;border-color:rgba(201,168,76,.1);}

/* ── BLUE NIGHT ── */
body.theme-blue .auth-screen{background:linear-gradient(145deg,#060e1c 0%,#0a1628 50%,#080f1e 100%);}
body.theme-blue .auth-card{background:#0d1f38;box-shadow:0 24px 64px rgba(0,0,0,.55),0 4px 16px rgba(0,0,0,.35);}
body.theme-blue .auth-card .modal-inp{background:#081424;border-color:rgba(74,138,189,.3);color:#8ab8d8;}
body.theme-blue .auth-card .modal-inp::placeholder{color:#3a5a78;}
body.theme-blue .auth-card .modal-inp:focus{border-color:#4a8abd;box-shadow:0 0 0 3px rgba(74,138,189,.18);background:#081424;}
body.theme-blue .auth-tabs{background:rgba(255,255,255,.06);}
body.theme-blue .auth-tab{color:#3a6080;}
body.theme-blue .auth-tab.active{background:#1a4070;color:#7ab0dd;box-shadow:0 2px 10px rgba(0,0,0,.5);}
body.theme-blue .auth-submit-btn{background:linear-gradient(135deg,#0e2a50 0%,#2a6aaa 100%);box-shadow:0 4px 14px rgba(42,106,170,.35);}
body.theme-blue .auth-back-btn{border-color:rgba(74,138,189,.25);color:#4a7090;}
body.theme-blue .auth-back-btn:hover{border-color:#4a8abd;color:#7ab0dd;}
body.theme-blue .lnav-btn.active{box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 1px 4px rgba(0,0,0,.3);}
body.theme-blue .db-card{background:#0d1f38;border-color:rgba(74,138,189,.14);}
body.theme-blue .db-card-title{color:#4a8abd;border-bottom-color:rgba(74,138,189,.2);}
body.theme-blue .db-qbtn{background:#0d1f38;border-color:rgba(74,138,189,.32);color:#6a9ab8;}
body.theme-blue .db-qbtn:hover{background:#2a6aaa;border-color:#2a6aaa;color:#fff;}
body.theme-blue .db-stat{background:#081424;border-color:rgba(74,138,189,.12);}

/* ── FOREST ── */
body.theme-green .auth-screen{background:linear-gradient(145deg,#060e06 0%,#0a1a0b 50%,#081008 100%);}
body.theme-green .auth-card{background:#0d1f0e;box-shadow:0 24px 64px rgba(0,0,0,.55),0 4px 16px rgba(0,0,0,.35);}
body.theme-green .auth-card .modal-inp{background:#081408;border-color:rgba(74,154,76,.3);color:#7ac07c;}
body.theme-green .auth-card .modal-inp::placeholder{color:#3a6040;}
body.theme-green .auth-card .modal-inp:focus{border-color:#4a9a4c;box-shadow:0 0 0 3px rgba(74,154,76,.18);background:#081408;}
body.theme-green .auth-tabs{background:rgba(255,255,255,.06);}
body.theme-green .auth-tab{color:#3a6040;}
body.theme-green .auth-tab.active{background:#1a4020;color:#7ac07c;box-shadow:0 2px 10px rgba(0,0,0,.5);}
body.theme-green .auth-submit-btn{background:linear-gradient(135deg,#0e3010 0%,#2a7a2c 100%);box-shadow:0 4px 14px rgba(42,122,44,.35);}
body.theme-green .auth-back-btn{border-color:rgba(74,154,76,.25);color:#4a7050;}
body.theme-green .auth-back-btn:hover{border-color:#4a9a4c;color:#7ac07c;}
body.theme-green .lnav-btn.active{box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 1px 4px rgba(0,0,0,.3);}
body.theme-green .db-card{background:#0d1f0e;border-color:rgba(74,154,76,.14);}
body.theme-green .db-card-title{color:#4a9a4c;border-bottom-color:rgba(74,154,76,.2);}
body.theme-green .db-qbtn{background:#0d1f0e;border-color:rgba(74,154,76,.32);color:#5a9060;}
body.theme-green .db-qbtn:hover{background:#2a7a2c;border-color:#2a7a2c;color:#fff;}
body.theme-green .db-stat{background:#081408;border-color:rgba(74,154,76,.12);}

/* ── WARM ── */
body.theme-warm .auth-screen{background:linear-gradient(145deg,#f0e4d4 0%,#fdf0e8 40%,#f8ece0 70%,#ede0cc 100%);}
body.theme-warm .auth-card .modal-inp{background:#fffaf6;border-color:rgba(160,80,40,.22);}
body.theme-warm .auth-card .modal-inp:focus{border-color:#c06040;box-shadow:0 0 0 3px rgba(160,80,40,.1);background:#fff;}
body.theme-warm .auth-tabs{background:rgba(160,80,40,.1);}
body.theme-warm .auth-tab{color:#9a6848;}
body.theme-warm .auth-tab.active{background:#7a3a20;color:#fff;box-shadow:0 2px 10px rgba(160,80,40,.35);}
body.theme-warm .auth-submit-btn{background:linear-gradient(135deg,#7a3a20 0%,#c06040 100%);box-shadow:0 4px 14px rgba(160,80,40,.3);}
body.theme-warm .auth-back-btn{border-color:rgba(160,80,40,.25);color:#9a6848;}
body.theme-warm .auth-back-btn:hover{border-color:#c06040;color:#7a3a20;}
body.theme-warm .lnav-btn.active{box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 1px 4px rgba(160,80,40,.12);}
body.theme-warm .db-card{background:#fffaf6;border-color:rgba(160,80,40,.12);}
body.theme-warm .db-card-title{color:#7a4a28;border-bottom-color:rgba(160,80,40,.15);}
body.theme-warm .db-qbtn{background:#fffaf6;border-color:rgba(160,80,40,.28);color:#7a4a28;}
body.theme-warm .db-qbtn:hover{background:#7a3a20;border-color:#7a3a20;color:#fff;}
body.theme-warm .db-stat{background:#fdf5ee;border-color:rgba(160,80,40,.1);}

/* ── LAVENDER ── */
body.theme-lavender .auth-screen{background:linear-gradient(145deg,#e4dcf8 0%,#f0eaff 40%,#ece4fc 70%,#dcd4f4 100%);}
body.theme-lavender .auth-card .modal-inp{background:#faf8ff;border-color:rgba(122,90,176,.22);}
body.theme-lavender .auth-card .modal-inp:focus{border-color:#7a5ab0;box-shadow:0 0 0 3px rgba(122,90,176,.12);background:#fff;}
body.theme-lavender .auth-tabs{background:rgba(122,90,176,.1);}
body.theme-lavender .auth-tab{color:#8a6aaa;}
body.theme-lavender .auth-tab.active{background:#4a2a7a;color:#fff;box-shadow:0 2px 10px rgba(122,90,176,.35);}
body.theme-lavender .auth-submit-btn{background:linear-gradient(135deg,#4a2a7a 0%,#8a5ac0 100%);box-shadow:0 4px 14px rgba(122,90,176,.3);}
body.theme-lavender .auth-back-btn{border-color:rgba(122,90,176,.25);color:#8a6aaa;}
body.theme-lavender .auth-back-btn:hover{border-color:#7a5ab0;color:#4a2a7a;}
body.theme-lavender .lnav-btn.active{box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 1px 4px rgba(122,90,176,.12);}
body.theme-lavender .db-card{background:#faf8ff;border-color:rgba(122,90,176,.12);}
body.theme-lavender .db-card-title{color:#6a4a9a;border-bottom-color:rgba(122,90,176,.15);}
body.theme-lavender .db-qbtn{background:#faf8ff;border-color:rgba(122,90,176,.28);color:#6a4a9a;}
body.theme-lavender .db-qbtn:hover{background:#4a2a7a;border-color:#4a2a7a;color:#fff;}
body.theme-lavender .db-stat{background:#f4f0ff;border-color:rgba(122,90,176,.1);}

/* ── ROSE ── */
body.theme-rose .auth-screen{background:linear-gradient(145deg,#f4d8e0 0%,#ffe0ea 40%,#fceef4 70%,#f0d0dc 100%);}
body.theme-rose .auth-card .modal-inp{background:#fff8fa;border-color:rgba(192,96,112,.22);}
body.theme-rose .auth-card .modal-inp:focus{border-color:#c06070;box-shadow:0 0 0 3px rgba(192,96,112,.12);background:#fff;}
body.theme-rose .auth-tabs{background:rgba(192,96,112,.1);}
body.theme-rose .auth-tab{color:#aa6070;}
body.theme-rose .auth-tab.active{background:#7a2030;color:#fff;box-shadow:0 2px 10px rgba(192,96,112,.35);}
body.theme-rose .auth-submit-btn{background:linear-gradient(135deg,#7a2030 0%,#c06070 100%);box-shadow:0 4px 14px rgba(192,96,112,.3);}
body.theme-rose .auth-back-btn{border-color:rgba(192,96,112,.25);color:#aa6070;}
body.theme-rose .auth-back-btn:hover{border-color:#c06070;color:#7a2030;}
body.theme-rose .lnav-btn.active{box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 1px 4px rgba(192,96,112,.12);}
body.theme-rose .db-card{background:#fff8fa;border-color:rgba(192,96,112,.12);}
body.theme-rose .db-card-title{color:#8a4050;border-bottom-color:rgba(192,96,112,.15);}
body.theme-rose .db-qbtn{background:#fff8fa;border-color:rgba(192,96,112,.28);color:#8a4050;}
body.theme-rose .db-qbtn:hover{background:#7a2030;border-color:#7a2030;color:#fff;}
body.theme-rose .db-stat{background:#fef0f4;border-color:rgba(192,96,112,.1);}

/* ── TEAL ── */
body.theme-teal .auth-screen{background:linear-gradient(145deg,#c8ecec 0%,#d8f4f4 40%,#e4f8f8 70%,#c4e8e8 100%);}
body.theme-teal .auth-card .modal-inp{background:#f4fbfb;border-color:rgba(42,136,136,.22);}
body.theme-teal .auth-card .modal-inp:focus{border-color:#2a8888;box-shadow:0 0 0 3px rgba(42,136,136,.12);background:#fff;}
body.theme-teal .auth-tabs{background:rgba(42,136,136,.1);}
body.theme-teal .auth-tab{color:#3a8080;}
body.theme-teal .auth-tab.active{background:#0a5050;color:#fff;box-shadow:0 2px 10px rgba(42,136,136,.35);}
body.theme-teal .auth-submit-btn{background:linear-gradient(135deg,#0a5050 0%,#2a9090 100%);box-shadow:0 4px 14px rgba(42,136,136,.3);}
body.theme-teal .auth-back-btn{border-color:rgba(42,136,136,.25);color:#3a8080;}
body.theme-teal .auth-back-btn:hover{border-color:#2a8888;color:#064848;}
body.theme-teal .lnav-btn.active{box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 1px 4px rgba(42,136,136,.12);}
body.theme-teal .db-card{background:#f4fbfb;border-color:rgba(42,136,136,.12);}
body.theme-teal .db-card-title{color:#1a6060;border-bottom-color:rgba(42,136,136,.15);}
body.theme-teal .db-qbtn{background:#f4fbfb;border-color:rgba(42,136,136,.28);color:#1a6060;}
body.theme-teal .db-qbtn:hover{background:#0a5050;border-color:#0a5050;color:#fff;}
body.theme-teal .db-stat{background:#eaf8f8;border-color:rgba(42,136,136,.1);}
