@import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@300;400;500;600;700;800;900&family=Noto+Nastaliq+Urdu:wght@400;600;700&display=swap');
:root{--ink:#1e2b36;--muted:#6f7c86;--paper:#fffdf7;--paper2:#f7f1e7;--navy:#102c3a;--teal:#156b66;--teal2:#0f514f;--copper:#b5794b;--gold:#c89f5f;--line:rgba(31,61,72,.13);--shadow:0 30px 80px rgba(5,24,31,.28);--font:'Vazirmatn',Tahoma,Arial,sans-serif;--nastaliq:'IranNastaliq','Noto Nastaliq Urdu',serif}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:var(--font);color:var(--ink)}body{background:#0b2733}button,input,textarea,select{font:inherit}a{text-decoration:none;color:inherit}
/* auth */
.auth-body{min-height:100vh;background:linear-gradient(135deg,#071d27,#0d3440 56%,#174d4d);display:grid;place-items:center;padding:28px;overflow:auto}.auth-shell{width:min(1180px,100%);min-height:690px;display:grid;grid-template-columns:1.15fr .85fr;background:#f9f6ee;border-radius:32px;overflow:hidden;box-shadow:0 34px 100px rgba(0,0,0,.35)}.auth-visual{position:relative;overflow:hidden;color:#fff;background:radial-gradient(circle at 28% 28%,rgba(210,168,95,.25),transparent 20%),linear-gradient(145deg,#123c48,#0d5c57);display:flex;align-items:flex-end;padding:70px}.auth-visual:before{content:"";position:absolute;inset:28px;border:1px solid rgba(255,255,255,.16);border-radius:28px}.auth-visual:after{content:"";position:absolute;width:430px;height:430px;border-radius:50%;left:-150px;top:-120px;border:70px solid rgba(255,255,255,.04)}.visual-orbit{position:absolute;border:1px solid rgba(218,178,111,.33);border-radius:50%;transform:rotate(-18deg)}.orbit-1{width:580px;height:230px;right:-170px;top:110px}.orbit-2{width:430px;height:170px;right:-70px;top:205px}.auth-visual-inner{position:relative;z-index:2;max-width:620px}.eyebrow{display:inline-flex;border:1px solid rgba(255,255,255,.22);padding:8px 14px;border-radius:999px;font-size:13px}.auth-visual h1{font-size:clamp(2.2rem,4vw,4.2rem);line-height:1.42;margin:24px 0 14px;letter-spacing:-1px}.auth-visual p{line-height:2.1;color:#d7e5e3;max-width:560px}.mini-calendar-row{display:flex;gap:10px;margin-top:28px}.mini-calendar-row span{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.12);padding:8px 14px;border-radius:12px}.auth-panel{display:grid;place-items:center;padding:54px;background:linear-gradient(180deg,#fffdf7,#f3eee4)}.auth-card{width:min(430px,100%)}.install-card{background:#fffdf8;padding:40px;border-radius:28px;box-shadow:var(--shadow)}.brand-mark{width:62px;height:62px;display:grid;place-items:center;border-radius:19px;background:linear-gradient(145deg,var(--teal),#0c4b4d);color:white;font-size:29px;font-weight:900;box-shadow:0 14px 30px rgba(21,107,102,.25);margin-bottom:22px}.brand-mark.small{width:42px;height:42px;border-radius:13px;font-size:21px;margin:0}.auth-card h2,.install-card h1{margin:0 0 8px;font-size:28px}.muted{color:var(--muted);line-height:1.9}.stack-form{display:grid;gap:16px;margin-top:24px}.stack-form label{display:grid;gap:8px;font-weight:700;font-size:14px}.stack-form input,.stack-form select,.stack-form textarea,.admin-input{width:100%;border:1px solid #d6d8d6;background:#fff;border-radius:14px;padding:12px 14px;outline:none;transition:.2s}.stack-form input:focus,.stack-form textarea:focus,.admin-input:focus{border-color:#459087;box-shadow:0 0 0 4px rgba(21,107,102,.09)}.primary-btn,.soft-btn,.icon-button,.nav-book-btn,.danger-btn{border:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:.18s}.primary-btn{background:linear-gradient(145deg,var(--teal),var(--teal2));color:#fff;padding:12px 18px;border-radius:13px;font-weight:800;box-shadow:0 12px 25px rgba(21,107,102,.2)}.wide{width:100%}.primary-btn:hover{transform:translateY(-1px)}.login-foot{margin-top:22px;padding-top:18px;border-top:1px solid #e7e2d8;color:#7b817f;font-size:13px}.alert{padding:12px 14px;border-radius:12px;margin:14px 0;font-size:14px}.alert.danger{background:#fff0ed;color:#9a3828}.alert.success{background:#e9f8f0;color:#276645}.alert.info{background:#edf7f7;color:#2b6266}code{direction:ltr;display:inline-block}
/* application chrome */
.calendar-app{min-height:100vh;overflow-x:hidden;background:radial-gradient(circle at 15% 8%,rgba(185,124,73,.2),transparent 25%),radial-gradient(circle at 90% 78%,rgba(38,124,116,.18),transparent 30%),linear-gradient(150deg,#071d27,#0e3440 45%,#0d2c35 100%)}.appbar{height:84px;padding:0 28px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;color:#fff;border-bottom:1px solid rgba(255,255,255,.08);background:rgba(6,25,33,.62);backdrop-filter:blur(18px);position:relative;z-index:30}.brand,.userbox,.date-jump{display:flex;align-items:center;gap:12px}.brand strong{display:block}.brand span,.userbox span{display:block;color:#9eb8bd;font-size:11px;margin-top:2px}.date-jump{justify-content:center;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09);padding:7px;border-radius:16px}.date-jump input{background:transparent;border:0;color:#fff;outline:0;direction:ltr;color-scheme:dark}.soft-btn{border-radius:11px;padding:9px 13px;background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.1)}.icon-button{width:38px;height:38px;border-radius:11px;background:rgba(255,255,255,.09);color:#fff;font-size:20px}.userbox{justify-content:flex-start;justify-self:end}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#d4a164;color:#17343d;font-weight:900}.book-stage{min-height:calc(100vh - 84px);position:relative;padding:28px 24px 26px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.ambient{position:absolute;border-radius:50%;filter:blur(2px);opacity:.35;pointer-events:none}.ambient-a{width:390px;height:390px;right:-160px;top:15%;background:radial-gradient(circle,#3b857f,transparent 68%)}.ambient-b{width:340px;height:340px;left:-140px;bottom:-80px;background:radial-gradient(circle,#9b633d,transparent 68%)}.book-wrap{width:1240px;height:780px;transform-origin:top center;position:relative;z-index:3}.calendar-book{width:1240px;height:780px}.calendar-book .page{box-shadow:inset 0 0 28px rgba(37,37,28,.05),0 6px 16px rgba(0,0,0,.13)}.calendar-book .even{background:linear-gradient(90deg,#f3ecdf 0,#fffdf7 4%,#fffdf7 100%)}.calendar-book .odd{background:linear-gradient(270deg,#f2eadd 0,#fffdf7 4%,#fffdf7 100%)}.calendar-book .shadow{box-shadow:0 25px 65px rgba(0,0,0,.32)}.paper-page{background:var(--paper);overflow:hidden}.page-inner{height:100%;padding:38px 42px 30px;position:relative;background-image:radial-gradient(rgba(55,74,74,.045) .7px,transparent .7px);background-size:8px 8px}.page-topline{height:28px;display:flex;align-items:center;justify-content:space-between;color:#73807d;font-size:12px;border-bottom:1px solid rgba(63,86,87,.12);padding-bottom:11px}.weekday{font-weight:900;color:#214951}.triple-date{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px;margin:20px 0 22px}.date-card{min-height:112px;border-radius:20px;padding:13px 15px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto 1fr auto;align-items:center;border:1px solid rgba(26,72,77,.1);position:relative;overflow:hidden}.date-card:after{content:"";position:absolute;width:88px;height:88px;border-radius:50%;left:-32px;bottom:-44px;background:rgba(255,255,255,.35)}.date-card span{font-size:10px;font-weight:800;opacity:.72}.date-card strong{font-size:42px;line-height:1;grid-row:2/4;align-self:center}.date-card b{font-size:14px}.date-card small{font-size:12px;opacity:.7}.date-jalali{background:linear-gradient(145deg,#e3f2ee,#cde5df);color:#174c4c}.date-greg{background:linear-gradient(145deg,#f5ece0,#ead8c2);color:#714824}.date-hijri{background:linear-gradient(145deg,#ece9f5,#dcd7eb);color:#4d466e}.content-block{margin-top:17px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:10px}.section-heading h2{font-size:17px;margin:1px 0 0}.section-kicker{font-size:9px;letter-spacing:.4px;color:#9b785d;font-weight:900}.count-pill,.save-state{font-size:10px;background:#edf3f1;color:#35655f;border-radius:999px;padding:5px 9px}.event-list{display:grid;gap:8px;max-height:170px;overflow:auto;padding-left:3px}.event-item{display:grid;grid-template-columns:9px 1fr;gap:11px;border:1px solid rgba(45,73,76,.09);background:rgba(248,247,241,.8);border-radius:14px;padding:10px 12px}.event-dot{width:8px;height:8px;border-radius:50%;background:#b7794d;margin-top:7px}.event-item h3{font-size:13px;margin:0 0 2px}.event-item p{font-size:11px;line-height:1.7;margin:0;color:#687571}.empty-state{height:82px;border:1px dashed #d7ddd8;border-radius:14px;display:flex;align-items:center;justify-content:center;gap:9px;color:#909a96;font-size:12px}.personal-note{resize:none;width:100%;height:122px;border:1px solid rgba(49,78,80,.1);border-radius:15px;outline:0;padding:12px 13px;line-height:2;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.65) 0,rgba(255,255,255,.65) 30px,rgba(66,105,104,.1) 31px);color:#314848}.personal-note:focus{border-color:rgba(21,107,102,.42);box-shadow:0 0 0 4px rgba(21,107,102,.06)}.save-state.saving{color:#9d774a}.save-state.saved{color:#2f795c}.page-number{position:absolute;bottom:14px;left:0;right:0;text-align:center;font-size:10px;color:#a2a49e}
.quote-inner{padding:38px 52px;background:linear-gradient(180deg,rgba(251,247,238,.55),rgba(255,253,247,.78)),radial-gradient(circle at 78% 20%,rgba(181,121,75,.07),transparent 32%)}.quote-label{display:inline-flex;margin-top:32px;border:1px solid rgba(181,121,75,.28);color:#8a5835;padding:7px 13px;border-radius:999px;font-size:11px;font-weight:900}.ruled-sheet{height:525px;margin-top:24px;padding:42px 30px 30px;position:relative;background:repeating-linear-gradient(to bottom,transparent 0,transparent 45px,rgba(44,87,88,.14) 46px);border-top:1px solid rgba(44,87,88,.11)}.ruled-sheet:before{content:"“";position:absolute;top:0;right:12px;font-family:Georgia,serif;font-size:68px;line-height:1;color:rgba(181,121,75,.22)}.ruled-sheet blockquote{margin:0;text-align:center;font-family:var(--nastaliq);font-size:31px;line-height:2.45;color:#1f3940;padding:24px 10px}.ruled-sheet cite{display:block;margin-top:18px;text-align:left;font-style:normal;color:#946844;font-size:12px}.quote-empty{height:100%;display:grid;place-content:center;text-align:center;color:#99a09d}.quote-empty span{font-size:28px}.ornament{text-align:center;color:#b78b63;letter-spacing:8px;margin-top:7px}.book-cover{background:linear-gradient(135deg,#0f4346,#153642)!important;color:#fff;overflow:hidden;position:relative}.book-cover:before{content:"";position:absolute;inset:18px;border:1px solid rgba(224,185,117,.42);border-radius:14px}.book-cover:after{content:"";position:absolute;inset:34px;border:1px solid rgba(255,255,255,.07);border-radius:8px}.cover-pattern{position:absolute;inset:0;background:repeating-radial-gradient(circle at 20% 15%,transparent 0 18px,rgba(255,255,255,.025) 19px 20px)}.cover-content{height:100%;display:grid;place-content:center;text-align:center;position:relative;z-index:3;padding:50px}.cover-emblem{width:86px;height:86px;border-radius:50%;border:1px solid #d1a562;display:grid;place-items:center;margin:0 auto 28px;font-size:42px;color:#e2be82}.cover-content span{color:#d5b579;font-size:12px}.cover-content h1{font-size:38px;margin:8px 0 12px}.cover-content p{color:#bdd0cd;line-height:2}.cover-rule{width:130px;height:1px;background:#c99d5b;margin:28px auto}.cover-content small{color:#89aaa8}.back-cover{background:linear-gradient(135deg,#12343e,#0c4f4d)!important}.book-toolbar{z-index:5;margin-top:18px;display:flex;align-items:center;gap:14px;background:rgba(4,21,28,.62);border:1px solid rgba(255,255,255,.08);padding:7px;border-radius:16px;color:#fff;backdrop-filter:blur(12px)}.nav-book-btn{background:rgba(255,255,255,.09);color:#fff;border:1px solid rgba(255,255,255,.08);padding:9px 16px;border-radius:11px}.current-date-display{min-width:180px;text-align:center}.current-date-display strong{font-size:12px;display:block}.current-date-display span{font-size:10px;color:#9fb6b7}.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,30px);opacity:0;background:#183f42;color:#fff;padding:10px 16px;border-radius:12px;transition:.2s;z-index:1000;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.bad{background:#913b31}
/* admin */
.admin-body{min-height:100vh;background:#f3f5f2;color:#22353d}.admin-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.admin-sidebar{background:linear-gradient(180deg,#0f3440,#103e41);color:#fff;padding:26px 20px;position:sticky;top:0;height:100vh}.admin-brand{display:flex;align-items:center;gap:11px;padding:0 6px 24px;border-bottom:1px solid rgba(255,255,255,.09)}.admin-brand strong{display:block}.admin-brand span{font-size:10px;color:#8fb0b1}.admin-nav{display:grid;gap:8px;margin-top:24px}.admin-nav a{padding:11px 13px;border-radius:12px;color:#bfd2d1}.admin-nav a.active,.admin-nav a:hover{background:rgba(255,255,255,.09);color:#fff}.admin-side-foot{position:absolute;bottom:24px;left:20px;right:20px;display:grid;gap:8px}.admin-main{padding:30px 34px 60px}.admin-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.admin-top h1{margin:0;font-size:27px}.admin-top p{margin:4px 0 0;color:#778483}.admin-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}.admin-card{background:#fff;border:1px solid #e0e5df;border-radius:18px;padding:20px;box-shadow:0 9px 30px rgba(28,60,63,.05)}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-12{grid-column:span 12}.stat-card span{color:#7b8988;font-size:12px}.stat-card strong{display:block;font-size:30px;margin-top:7px;color:#164e50}.admin-card h2{margin:0 0 14px;font-size:17px}.admin-card h3{margin:0 0 10px;font-size:14px}.admin-row{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.admin-row.three{grid-template-columns:repeat(3,1fr)}.admin-card label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#526260}.admin-card textarea{min-height:105px;resize:vertical}.table-wrap{overflow:auto}.admin-table{width:100%;border-collapse:collapse;font-size:12px}.admin-table th,.admin-table td{padding:11px 10px;border-bottom:1px solid #edf0ed;text-align:right;vertical-align:top}.admin-table th{color:#70807e;font-size:10px}.badge{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eef4f2;color:#35665e;font-size:10px}.badge.admin{background:#f5eee4;color:#855d3b}.admin-actions{display:flex;gap:6px;flex-wrap:wrap}.mini-btn{border:1px solid #dce4df;background:#fff;color:#345b59;padding:6px 9px;border-radius:8px;cursor:pointer;font:inherit}.danger-btn{background:#fff0ed;color:#a13f31;padding:7px 10px;border-radius:9px;border:1px solid #f1cfc8}.form-foot{display:flex;justify-content:flex-end;margin-top:13px}.inline-form{display:inline}.quote-preview{font-family:var(--nastaliq);font-size:24px;line-height:2.2;background:#fbf8f1;border-radius:13px;padding:15px;text-align:center;margin-top:12px}.date-preview{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.date-preview span{padding:5px 9px;background:#f0f4f2;border-radius:8px;font-size:10px;color:#48635f}
@media(max-width:980px){.appbar{grid-template-columns:1fr auto}.date-jump{grid-row:2;grid-column:1/-1;margin-bottom:8px}.appbar{height:auto;padding:12px 18px}.userbox .soft-btn,.userbox div:nth-child(2){display:none}.book-stage{min-height:calc(100vh - 120px)}.auth-shell{grid-template-columns:1fr}.auth-visual{min-height:360px;padding:44px}.auth-panel{padding:38px}.admin-shell{grid-template-columns:1fr}.admin-sidebar{height:auto;position:relative}.admin-side-foot{position:static;margin-top:20px}.admin-main{padding:22px}.span-4,.span-5,.span-6,.span-7,.span-8{grid-column:span 12}}
@media(max-width:600px){.auth-visual{display:none}.auth-shell{min-height:auto}.auth-panel{padding:32px 24px}.brand span{display:none}.book-toolbar{margin-top:8px}.admin-row,.admin-row.three{grid-template-columns:1fr}}

/* ===== Calendar UI refinement: full viewport + Persian art date panels ===== */
html:has(body.calendar-app),body.calendar-app{width:100%;height:100%;overflow:hidden}
body.calendar-app{min-height:0}
.calendar-app .appbar{height:76px;min-height:76px;padding:0 22px}
.calendar-app .book-stage{height:calc(100vh - 76px);min-height:0;padding:14px 18px 12px;overflow:hidden;justify-content:center}
.book-viewport{position:relative;flex:0 0 auto;display:block;transition:width .15s ease,height .15s ease;z-index:3}
.book-wrap{margin:0!important;transform-origin:top left;position:absolute;top:0;left:0}
.calendar-app .book-toolbar{flex:0 0 auto;margin-top:10px;padding:5px 7px;min-height:46px}

.persian-date-gallery{direction:ltr;grid-template-columns:1fr 1.13fr 1fr;gap:12px;margin:17px 0 19px;align-items:stretch}
.persian-date-gallery .date-greg{grid-column:1}
.persian-date-gallery .date-jalali{grid-column:2}
.persian-date-gallery .date-hijri{grid-column:3}
.date-card{direction:rtl;min-height:130px;padding:13px 16px 12px;border-radius:22px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;isolation:isolate;box-shadow:0 10px 24px rgba(37,43,37,.07),inset 0 0 0 1px rgba(255,255,255,.48)}
.date-card:before{content:"";position:absolute;inset:6px;border:1px solid currentColor;border-radius:17px;opacity:.17;z-index:-1;clip-path:polygon(0 0,35% 0,38% 5%,62% 5%,65% 0,100% 0,100% 100%,65% 100%,62% 95%,38% 95%,35% 100%,0 100%)}
.date-card:after{content:"✦";width:auto;height:auto;border-radius:0;left:50%;bottom:3px;transform:translateX(-50%);background:none;font-size:9px;opacity:.26;letter-spacing:1px}
.date-card-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;direction:ltr;position:relative;z-index:2}
.calendar-type{direction:rtl;font-size:11px!important;font-weight:900!important;opacity:.78!important;letter-spacing:0!important}
.calendar-month{direction:rtl;font-size:13px!important;font-weight:900;white-space:nowrap}
.calendar-day{display:block!important;grid-row:auto!important;align-self:auto!important;font-size:48px!important;line-height:1!important;font-weight:900;letter-spacing:-2px;text-shadow:0 1px 0 rgba(255,255,255,.65);margin:1px 0}
.calendar-year{display:block!important;font-size:13px!important;font-weight:800;opacity:.72!important;line-height:1.2}
.date-card.featured-date{transform:translateY(-4px);min-height:138px;box-shadow:0 15px 32px rgba(22,80,73,.13),inset 0 0 0 1px rgba(255,255,255,.56)}
.date-card.featured-date .calendar-day{font-size:56px!important;color:#0d5652}
.date-jalali{background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.72),transparent 38%),linear-gradient(145deg,#e5f5ef,#c7e4db);color:#174c4c}
.date-greg{background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.72),transparent 38%),linear-gradient(145deg,#fbf1e4,#e9d4bb);color:#704824}
.date-hijri{background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.72),transparent 38%),linear-gradient(145deg,#f2edf8,#ddd4ed);color:#4d466e}

.personal-note{direction:rtl;text-align:right;unicode-bidi:plaintext;font-family:var(--font);caret-color:var(--teal);padding:12px 15px}
.personal-note::placeholder{direction:rtl;text-align:right}

@media(max-width:980px){
  html:has(body.calendar-app),body.calendar-app{overflow:hidden}
  .calendar-app .appbar{height:104px;min-height:104px;padding:8px 14px;grid-template-columns:1fr auto;gap:8px 12px}
  .calendar-app .date-jump{grid-row:2;grid-column:1/-1;margin:0;padding:4px}
  .calendar-app .book-stage{height:calc(100vh - 104px);min-height:0;padding:9px 10px 8px}
  .calendar-app .book-toolbar{margin-top:7px;min-height:40px}
}
@media(max-width:600px){
  .calendar-app .appbar{height:92px;min-height:92px}
  .calendar-app .book-stage{height:calc(100vh - 92px)}
  .calendar-app .brand strong{font-size:12px}
  .calendar-app .userbox .avatar{width:32px;height:32px}
}

/* ===== V6: immediate current-date spread + Shamsi top picker ===== */
.calendar-app .starter-page{background:#fffdf7}
.calendar-app .book-stage{padding-bottom:14px}
.calendar-app .date-jump.shamsi-jump{position:relative;padding:5px 6px;gap:7px;overflow:visible}
.shamsi-date-button{min-width:235px;height:46px;border:0;border-radius:13px;background:linear-gradient(145deg,rgba(255,255,255,.13),rgba(255,255,255,.07));color:#fff;display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;align-items:center;column-gap:10px;padding:6px 11px;cursor:pointer;font:inherit;text-align:right;border:1px solid rgba(255,255,255,.08)}
.shamsi-date-button:hover{background:rgba(255,255,255,.14)}
.shamsi-date-label{grid-column:2;font-size:9px;color:#9fc0bf;line-height:1}
.shamsi-date-button strong{grid-column:2;font-size:13px;line-height:1.4;white-space:nowrap}
.calendar-glyph{grid-column:1;grid-row:1/3;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:rgba(212,161,100,.16);color:#e5bd83;font-size:17px}
.today-top-btn{height:46px;padding-inline:14px}
.shamsi-picker{position:absolute;top:calc(100% + 9px);left:50%;transform:translateX(-50%);width:326px;padding:13px;background:#fffdf8;color:#263d41;border:1px solid rgba(20,64,66,.13);border-radius:18px;box-shadow:0 22px 60px rgba(0,0,0,.28);z-index:250;direction:rtl}
.shamsi-picker[hidden]{display:none!important}
.shamsi-picker:before{content:"";position:absolute;top:-7px;left:50%;width:14px;height:14px;background:#fffdf8;border-top:1px solid rgba(20,64,66,.13);border-left:1px solid rgba(20,64,66,.13);transform:translateX(-50%) rotate(45deg)}
.shamsi-picker-head{position:relative;z-index:1;display:grid;grid-template-columns:36px 1fr 36px;align-items:center;gap:7px;margin-bottom:10px}
.picker-nav,.picker-title,.picker-today,.picker-day{border:0;font:inherit;cursor:pointer}
.picker-nav{width:36px;height:36px;border-radius:10px;background:#edf4f1;color:#285d59;font-size:18px}
.picker-title{height:36px;border-radius:10px;background:transparent;color:#183f42;font-weight:900;font-size:13px}
.shamsi-weekdays,.shamsi-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;direction:rtl}
.shamsi-weekdays{padding:3px 2px 7px;border-bottom:1px solid #edf0eb;margin-bottom:6px}
.shamsi-weekdays span{font-size:10px;text-align:center;color:#8a9692;font-weight:800}
.picker-day,.picker-empty{aspect-ratio:1;display:grid;place-items:center;border-radius:10px;font-size:11px}
.picker-day{background:transparent;color:#38514f;transition:.15s}
.picker-day:hover{background:#e9f2ef;color:#174f4b}
.picker-day.selected{background:#174f4b;color:#fff;box-shadow:0 6px 14px rgba(23,79,75,.2)}
.picker-day.is-today{box-shadow:inset 0 0 0 1px #bd814d;font-weight:900}
.picker-day.selected.is-today{box-shadow:inset 0 0 0 1px #eac49a,0 6px 14px rgba(23,79,75,.2)}
.shamsi-picker-foot{display:flex;justify-content:center;padding-top:9px;margin-top:8px;border-top:1px solid #edf0eb}
.picker-today{background:#f2e9dc;color:#805730;border-radius:10px;padding:7px 18px;font-weight:800;font-size:11px}
.calendar-app .book-toolbar{display:none!important}

@media(max-width:980px){
  .shamsi-date-button{min-width:210px;height:40px}
  .today-top-btn{height:40px}
  .shamsi-picker{width:310px;top:calc(100% + 7px)}
}
@media(max-width:600px){
  .shamsi-date-button{min-width:185px;padding-inline:8px}
  .shamsi-date-button strong{font-size:11px}
  .today-top-btn{padding-inline:10px;font-size:11px}
  .shamsi-picker{width:min(310px,calc(100vw - 24px))}
}


/* ===== V8: decorative blank page before today's date ===== */
.blank-rehbar-page{
  position:relative;
  background:
    radial-gradient(circle at 50% 42%,rgba(255,255,255,.96) 0 28%,rgba(250,246,236,.92) 70%),
    linear-gradient(135deg,#fbf8ef,#f4ecd9);
  overflow:hidden;
}
.blank-rehbar-page:before{
  content:"";
  position:absolute;inset:0;
  background-image:
    radial-gradient(circle at 12px 12px,rgba(30,92,82,.045) 1px,transparent 1.5px),
    radial-gradient(circle at 4px 4px,rgba(151,105,54,.035) 1px,transparent 1.5px);
  background-size:24px 24px,18px 18px;
  pointer-events:none;
}
.blank-rehbar-frame{
  position:absolute;inset:22px;
  border:2px solid rgba(32,93,82,.54);
  border-radius:22px;
  box-shadow:
    inset 0 0 0 5px rgba(181,139,86,.10),
    inset 0 0 0 8px rgba(32,93,82,.08),
    0 8px 28px rgba(44,48,39,.06);
}
.blank-rehbar-frame:before,
.blank-rehbar-frame:after{
  content:"";position:absolute;left:50%;transform:translateX(-50%);width:34%;height:16px;
  background:linear-gradient(90deg,transparent,rgba(177,128,70,.52),rgba(30,92,82,.58),rgba(177,128,70,.52),transparent);
  -webkit-mask:radial-gradient(9px 9px at 50% 0,#0000 8px,#000 8.5px) top/18px 9px repeat-x,
               radial-gradient(9px 9px at 50% 100%,#0000 8px,#000 8.5px) bottom/18px 9px repeat-x;
  mask:radial-gradient(9px 9px at 50% 0,#0000 8px,#000 8.5px) top/18px 9px repeat-x,
       radial-gradient(9px 9px at 50% 100%,#0000 8px,#000 8.5px) bottom/18px 9px repeat-x;
  opacity:.72;
}
.blank-rehbar-frame:before{top:-9px}.blank-rehbar-frame:after{bottom:-9px}
.blank-inner-frame{
  position:absolute;inset:13px;
  border:1px solid rgba(182,132,74,.48);
  border-radius:16px;
  display:flex;align-items:center;justify-content:center;
}
.blank-inner-frame:before{
  content:"";position:absolute;inset:9px;border:1px dashed rgba(34,91,82,.18);border-radius:12px;
}
.blank-image-space{
  width:72%;height:76%;border-radius:46% 46% 18px 18px / 18% 18% 18px 18px;
  border:1px solid rgba(32,93,82,.09);
  background:radial-gradient(ellipse at center,rgba(255,255,255,.72),rgba(255,255,255,0) 72%);
}
.blank-medallion{
  position:absolute;top:22px;left:50%;transform:translateX(-50%);
  width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
  color:#9b6a36;border:1px solid rgba(155,106,54,.44);background:#fbf4e7;
  box-shadow:0 0 0 5px rgba(36,93,82,.06);font-size:13px;
}
.blank-bottom-ornament{
  position:absolute;bottom:21px;left:50%;transform:translateX(-50%);
  color:rgba(45,95,84,.50);font-size:13px;letter-spacing:8px;white-space:nowrap;
}
.blank-corner{position:absolute;width:64px;height:64px;opacity:.64}
.blank-corner:before,.blank-corner:after{content:"";position:absolute;border-color:rgba(162,113,58,.62)}
.blank-corner:before{inset:0;border-top:2px solid rgba(162,113,58,.62);border-left:2px solid rgba(162,113,58,.62);border-radius:18px 0 0 0}
.blank-corner:after{width:28px;height:28px;top:9px;left:9px;border-top:1px solid rgba(34,91,82,.58);border-left:1px solid rgba(34,91,82,.58);border-radius:12px 0 0 0}
.blank-corner-tl{top:-2px;left:-2px}
.blank-corner-tr{top:-2px;right:-2px;transform:rotate(90deg)}
.blank-corner-br{right:-2px;bottom:-2px;transform:rotate(180deg)}
.blank-corner-bl{left:-2px;bottom:-2px;transform:rotate(270deg)}


/* ===== V9: first inside spread blank on both sides ===== */
.blank-spread-page .blank-image-space{
  width:78%;
  height:78%;
  border:0;
  background:transparent;
  border-radius:0;
}
.blank-spread-page .blank-inner-frame{
  background:radial-gradient(ellipse at center,rgba(255,255,255,.42),rgba(255,255,255,0) 72%);
}

/* V10: lock physical book sides independent of document RTL.
   Turn.js stays LTR: even pages = LEFT, odd pages = RIGHT.
   Persian content inside each page remains RTL. */
#calendar-book{direction:ltr!important}
#calendar-book .paper-page,#calendar-book .book-cover{direction:rtl}
#calendar-book .quote-page{direction:rtl}
#calendar-book .agenda-page{direction:rtl}

/* Database-backed private note controls */
.note-actions{display:flex;gap:8px;justify-content:flex-start;margin-top:8px;direction:rtl}
.note-btn{border:1px solid rgba(28,91,86,.18);background:#edf5f2;color:#245d58;border-radius:10px;padding:7px 14px;font-family:var(--font);font-size:11px;font-weight:800;cursor:pointer;transition:.18s ease}
.note-btn:hover:not(:disabled){transform:translateY(-1px);background:#e2f0ec}
.note-btn.danger{background:#fbefec;color:#9a463b;border-color:rgba(154,70,59,.16)}
.note-btn:disabled{opacity:.38;cursor:not-allowed;transform:none}
.personal-note[readonly]{background:repeating-linear-gradient(to bottom,rgba(248,246,239,.82) 0,rgba(248,246,239,.82) 30px,rgba(66,105,104,.1) 31px);cursor:default}


/* ===== V21: compact quote layout + daily advice ===== */
.quote-inner{padding-top:30px}
.quote-inner .quote-label{margin-top:18px}
.quote-inner .ruled-sheet{height:535px;margin-top:12px;padding:22px 30px 24px;display:flex;flex-direction:column}
.quote-inner .ruled-sheet:before{top:-5px;font-size:58px}
.quote-inner .quote-main{flex:0 0 auto}
.quote-inner .ruled-sheet blockquote{padding:8px 10px 4px;font-size:30px;line-height:2.1}
.quote-inner .ruled-sheet cite{margin-top:4px;text-align:left;font-size:12px;line-height:1.7}
.daily-advice{margin-top:auto;padding:16px 18px 15px;text-align:right;direction:rtl;border:1px solid rgba(44,87,88,.12);border-radius:16px;background:linear-gradient(145deg,rgba(255,255,255,.64),rgba(238,244,239,.72));box-shadow:0 8px 20px rgba(34,68,64,.045)}
.daily-advice .advice-kicker{display:inline-block;margin-bottom:5px;color:#9a6a43;font-size:10px;font-weight:900;letter-spacing:.1px}
.daily-advice h3{margin:0 0 7px;color:#244b4b;font-family:var(--font);font-size:14px;line-height:1.8;font-weight:900}
.daily-advice p{margin:0;color:#52635f;font-family:var(--font);font-size:11px;line-height:2;font-weight:400}
.quote-inner .ornament{margin-top:5px}
.advice-preview{margin-top:12px;padding:13px 15px;border-radius:13px;background:#f5f8f5;border:1px solid #e5ebe6;text-align:right}
.advice-preview strong{display:block;color:#285453;margin-bottom:6px}
.advice-preview p{margin:0;color:#667471;font-size:12px;line-height:1.9}


/* ===== V24: stable date navigation + perfectly centered top controls ===== */
.calendar-app .appbar{
  position:relative;
  display:flex!important;
  align-items:center;
  justify-content:center;
  direction:ltr;
}
.calendar-app .appbar .date-jump.shamsi-jump{
  position:relative;
  left:auto;right:auto;
  margin:0 auto;
  justify-content:center;
  justify-self:auto;
  direction:rtl;
  flex:0 0 auto;
}
.calendar-app .appbar .userbox{
    position:absolute;
    left:22px;
    right:auto;
    top:50%;
    transform:translateY(-50%);
    margin:0;
    justify-content:flex-start;
    justify-self:auto;
    direction:rtl;
    z-index:2;
}

/* Keep the physical book anchored while Turn.js changes pages.  autoCenter is
   disabled in JS as well, so single/double-page state changes cannot nudge it. */
.calendar-app .book-viewport,
.calendar-app .book-wrap,
.calendar-app #calendar-book{
  transform-box:border-box;
}
.calendar-app.date-transitioning .book-stage{
  pointer-events:none;
}
.calendar-app.date-transitioning .book-wrap{
  opacity:.88;
  transition:opacity .09s linear!important;
}

@media(max-width:980px){
  .calendar-app .appbar{
    height:76px!important;
    min-height:76px!important;
    padding:0 14px!important;
  }
  .calendar-app .appbar .date-jump.shamsi-jump{
    grid-row:auto!important;
    grid-column:auto!important;
    margin:0 auto!important;
  }
  .calendar-app .appbar .userbox{
    right:12px;
  }
  .calendar-app .appbar .userbox .soft-btn{
    display:inline-flex!important;
  }
  .calendar-app .book-stage{
    height:calc(100vh - 76px)!important;
    min-height:0!important;
  }
}
@media(max-width:700px){
  .calendar-app .appbar .userbox .soft-btn{display:none!important}
  .calendar-app .appbar .userbox{right:8px}
  .calendar-app .date-jump.shamsi-jump{transform:scale(.92);transform-origin:center}
}

.calendar-app.direct-date-load .book-wrap{visibility:hidden!important;}
.book-nav-mask{position:absolute;inset:0;z-index:20;display:grid;place-items:center;background:transparent;opacity:0;pointer-events:none;transition:opacity .04s linear;}
.book-nav-mask.show{opacity:1;}
.book-nav-spinner{width:34px;height:34px;border-radius:50%;border:2px solid rgba(255,255,255,.18);border-top-color:rgba(255,255,255,.72);animation:bookSpin .55s linear infinite;}
@keyframes bookSpin{to{transform:rotate(360deg)}}
.calendar-app.book-navigating .book-wrap{pointer-events:none;}
.calendar-app.date-transitioning .book-wrap{opacity:1!important;transition:none!important;}

/* ===== V26: eliminate wrong-spread flash during direct date navigation ===== */
.calendar-app.direct-date-load .book-wrap{visibility:hidden!important;}
.calendar-app.book-navigating .book-wrap{pointer-events:none;}
.calendar-app.direct-date-load .ambient{visibility:hidden!important;}
.calendar-app.direct-date-load .book-stage{background:transparent!important;}

/* ===== V34: note section decorative divider + taller writing area ===== */
.agenda-page .note-block,
.agenda-page .content-block.note-section{
  position:relative;
  padding-top:20px;
  margin-top:16px;
}

/* Works with the current note heading even when no dedicated wrapper class exists. */
.agenda-page .section-heading:has(+ .personal-note),
.agenda-page .section-heading:has(~ .personal-note){
  position:relative;
  padding-top:18px;
  margin-top:14px;
}

.agenda-page .section-heading:has(+ .personal-note)::before,
.agenda-page .section-heading:has(~ .personal-note)::before{
  content:"";
  position:absolute;
  top:0;
  right:0;
  left:0;
  height:10px;
  background:
    radial-gradient(circle at 50% 50%, rgba(184,132,73,.92) 0 2px, transparent 2.5px),
    linear-gradient(90deg,transparent 0%,rgba(27,91,84,.22) 17%,rgba(184,132,73,.75) 42%,rgba(27,91,84,.60) 50%,rgba(184,132,73,.75) 58%,rgba(27,91,84,.22) 83%,transparent 100%);
  background-size:18px 10px,100% 1px;
  background-repeat:no-repeat;
  background-position:center center,center center;
  opacity:.9;
}

.agenda-page .section-heading:has(+ .personal-note)::after,
.agenda-page .section-heading:has(~ .personal-note)::after{
  content:"✦";
  position:absolute;
  top:-3px;
  left:50%;
  transform:translateX(-50%);
  color:#b5794b;
  background:var(--paper);
  padding:0 9px;
  font-size:11px;
  line-height:1;
}

.agenda-page .personal-note{
  height:170px;
  min-height:170px;
}


/* ===== V35: stronger Shamsi card, taller notes, compact Persian separators, event moods ===== */
.persian-date-gallery{
  grid-template-columns:.92fr 1.32fr .92fr!important;
  gap:11px!important;
  align-items:center!important;
}
.persian-date-gallery .date-greg,
.persian-date-gallery .date-hijri{
  min-height:126px!important;
  transform:scale(.97);
}
.persian-date-gallery .date-jalali.featured-date{
  min-height:156px!important;
  transform:translateY(-5px) scale(1.035)!important;
  z-index:2;
  box-shadow:0 18px 38px rgba(22,80,73,.16),inset 0 0 0 1px rgba(255,255,255,.64)!important;
}
.persian-date-gallery .date-jalali.featured-date .calendar-day{
  font-size:64px!important;
}
.persian-date-gallery .date-jalali.featured-date .calendar-month{font-size:14px!important}
.persian-date-gallery .date-jalali.featured-date .calendar-year{font-size:14px!important}

.agenda-page .personal-note{
  height:220px!important;
  min-height:220px!important;
}

/* One compact ornamental rule between Hadith, events and advice. */
.quote-main,
.quote-events-block,
.daily-advice{
  position:relative;
}
.quote-events-block{
  margin-top:10px!important;
  padding-top:12px!important;
}
.quote-events-block::before,
.daily-advice::before{
  content:"";
  position:absolute;
  top:0;
  right:2px;
  left:2px;
  height:8px;
  background:
    radial-gradient(circle at 50% 50%,rgba(181,121,75,.88) 0 2px,transparent 2.4px),
    linear-gradient(90deg,transparent,rgba(27,91,84,.18) 14%,rgba(181,121,75,.68) 43%,rgba(30,92,82,.62) 50%,rgba(181,121,75,.68) 57%,rgba(27,91,84,.18) 86%,transparent);
  background-size:18px 8px,100% 1px;
  background-repeat:no-repeat;
  background-position:center,center;
  pointer-events:none;
}
.quote-events-block::after,
.daily-advice::after{
  content:"✦";
  position:absolute;
  top:-2px;
  left:50%;
  transform:translateX(-50%);
  padding:0 7px;
  background:var(--paper);
  color:#b5794b;
  font-size:10px;
  line-height:1;
}
.daily-advice{
  margin-top:52px!important;
  padding-top:8px!important;
}
.daily-advice::before{
  top:-30px!important;
}
.daily-advice::after{
  top:-32px!important;
  background:var(--paper)!important;
}
.quote-events-block .section-heading{margin-top:2px;margin-bottom:7px!important}

/* Color language for meetings and event moods. */
.quote-event-list .event-item{
  direction:rtl;
  text-align:right;
  grid-template-columns:22px 1fr!important;
  align-items:start;
  border-width:1px!important;
  box-shadow:0 4px 12px rgba(30,48,50,.045);
}
.quote-event-list .event-item .event-dot{
  width:18px!important;
  height:18px!important;
  margin-top:2px!important;
  border-radius:50%!important;
  display:grid!important;
  place-items:center!important;
  font-size:10px!important;
  line-height:1!important;
  background:rgba(255,255,255,.64)!important;
  border:1px solid currentColor!important;
  color:inherit!important;
}
.quote-event-list .event-item h3,
.quote-event-list .event-item p{direction:rtl;text-align:right}

.quote-event-list .meeting-item{
  background:linear-gradient(145deg,#e7f5ec,#d9efe2)!important;
  border-color:#b9ddc5!important;
  color:#225c3a!important;
}
.quote-event-list .meeting-item p{color:#47745a!important}


/* Active meeting reminder: only the meeting text flashes; the box remains unchanged. */
.quote-event-list .meeting-item.meeting-flash-active h3,
.quote-event-list .meeting-item.meeting-flash-active p{
  animation:meetingTextBlink 1.05s ease-in-out infinite;
  will-change:opacity,text-shadow;
}
@keyframes meetingTextBlink{
  0%,100%{
    opacity:1;
    text-shadow:0 0 0 rgba(26,126,67,0);
  }
  50%{
    opacity:.28;
    text-shadow:0 0 10px rgba(26,126,67,.28);
  }
}
@media (prefers-reduced-motion:reduce){
  .quote-event-list .meeting-item.meeting-flash-active h3,
  .quote-event-list .meeting-item.meeting-flash-active p{
    animation:none!important;
    font-weight:800;
    text-shadow:0 0 8px rgba(26,126,67,.20);
  }
}

.quote-event-list .event-happy{
  background:linear-gradient(145deg,#edf6ff,#dfeeff)!important;
  border-color:#bfd9f4!important;
  color:#235f93!important;
}
.quote-event-list .event-happy p{color:#4e7596!important}

.quote-event-list .event-sad{
  background:linear-gradient(145deg,#f8e8e8,#efd6d6)!important;
  border-color:#d8abab!important;
  color:#7c2529!important;
}
.quote-event-list .event-sad p{color:#835052!important}

.quote-event-list .event-normal{
  background:linear-gradient(145deg,#f2f3f3,#e8ebea)!important;
  border-color:#d7dcda!important;
  color:#465452!important;
}
.quote-event-list .event-normal p{color:#687371!important}

.event-mood-field[hidden]{display:none!important}

/* ===== V39: simple single-border side navigation ===== */
.side-day-nav{
  position:absolute;
  top:50%;
  width:54px;
  height:54px;
  transform:translateY(-50%);
  border:1px solid rgba(213,176,111,.58);
  border-radius:50%;
  background:rgba(10,48,58,.88);
  color:#e9c47f;
  display:grid;
  place-items:center;
  padding:0;
  cursor:pointer;
  z-index:24;
  box-shadow:0 8px 20px rgba(0,0,0,.18);
  transition:background .16s ease,border-color .16s ease,transform .16s ease,opacity .16s ease;
  user-select:none;
  -webkit-tap-highlight-color:transparent;
}

.side-day-nav:hover{
  background:rgba(15,67,73,.96);
  border-color:rgba(229,192,124,.88);
  transform:translateY(-50%) scale(1.05);
}

.side-day-nav:active{
  transform:translateY(-50%) scale(.96);
}

.side-day-nav .side-day-arrow{
  width:22px;
  height:22px;
  display:block;
  position:relative;
}

/* Bold, perfectly centered chevron icon drawn with CSS — no tooltip/text layer. */
.side-day-nav .side-day-arrow::before{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:12px;
  height:12px;
  border-top:3px solid currentColor;
  border-right:3px solid currentColor;
  border-radius:1px;
  transform-origin:center;
}

/* Requested reversed arrow directions: right-side button points LEFT,
   left-side button points RIGHT. */
.side-day-nav.prev-day .side-day-arrow::before{
  transform:translate(-42%,-50%) rotate(-135deg);
}
.side-day-nav.next-day .side-day-arrow::before{
  transform:translate(-58%,-50%) rotate(45deg);
}

.side-day-nav.is-hidden{opacity:0!important;pointer-events:none!important}
.calendar-app.book-navigating .side-day-nav,
.calendar-app.date-transitioning .side-day-nav{pointer-events:none;opacity:.45}

/* Keep the current physical placement: previous on RIGHT, next on LEFT. */
.side-day-nav.prev-day{right:18px;left:auto}
.side-day-nav.next-day{left:18px;right:auto}

@media(max-width:1120px){
  .side-day-nav{width:48px;height:48px}
  .side-day-nav .side-day-arrow{width:20px;height:20px}
  .side-day-nav .side-day-arrow::before{width:11px;height:11px;border-width:3px 3px 0 0}
}
@media(max-width:820px){
  .side-day-nav{display:none!important}
}

.quote-inner .ruled-sheet{
    border-top: none !important;
    background:
        repeating-linear-gradient(
            to bottom,
            transparent 0,
            transparent 45px,
            rgba(255,253,247,.85) 46px
        ) !important;
}

/* ===== Page flip shadow fix for date cards =====
   Purpose: allow Turn.js page-turn shadow/highlight to also affect the date cards,
   so the cards do not look detached from the turning page. */
#calendar-book .date-card{
  isolation:auto !important;
  z-index:auto !important;
}
#calendar-book .date-card::before,
#calendar-book .date-card::after,
#calendar-book .date-card *{
  z-index:auto;
}
/* Avoid transform-created stacking context on the featured Shamsi card during flip */
#calendar-book .date-card.featured-date{
  transform:none !important;
  margin-top:-4px;
}

/* ===== Holiday page colors =====
   Only dates whose EVENT title/details contains "تعطیل" receive these colors.
   happy = blue, sad = red, normal = soft neutral slate. */
#calendar-book .paper-page.holiday-page{
  color:#173044;
}
#calendar-book .paper-page.holiday-happy,
#calendar-book .paper-page.holiday-happy .page-inner,
#calendar-book .paper-page.holiday-happy .quote-inner{
  background:
    radial-gradient(circle at 82% 12%,rgba(255,255,255,.82),transparent 30%),
    linear-gradient(145deg,#eaf5ff 0%,#dceefe 48%,#eef8ff 100%) !important;
}
#calendar-book .paper-page.holiday-sad,
#calendar-book .paper-page.holiday-sad .page-inner,
#calendar-book .paper-page.holiday-sad .quote-inner{
  background:
    radial-gradient(circle at 82% 12%,rgba(255,255,255,.82),transparent 30%),
    linear-gradient(145deg,#fff0ef 0%,#f8dddd 48%,#fff4f2 100%) !important;
}
#calendar-book .paper-page.holiday-neutral,
#calendar-book .paper-page.holiday-neutral .page-inner,
#calendar-book .paper-page.holiday-neutral .quote-inner{
  background:linear-gradient(145deg,#f1f5f7,#e7eef2 50%,#f5f8fa) !important;
}

/* Keep all content comfortably readable on colored holiday paper. */
#calendar-book .holiday-page .page-topline,
#calendar-book .holiday-page .weekday,
#calendar-book .holiday-page .section-heading h2,
#calendar-book .holiday-page .event-item h3,
#calendar-book .holiday-page .daily-advice h3{
  color:#17364a !important;
}
#calendar-book .holiday-page .quote-main blockquote{
  color:#17364a !important;
}
#calendar-book .holiday-page .page-topline{
  border-bottom-color:rgba(42,76,96,.18) !important;
}
#calendar-book .holiday-page .ruled-sheet{
  background:repeating-linear-gradient(to bottom,transparent 0,transparent 45px,rgba(48,86,108,.13) 46px) !important;
}
#calendar-book .holiday-page .quote-events-block,
#calendar-book .holiday-page .daily-advice,
#calendar-book .holiday-page .note-block,
#calendar-book .holiday-page .event-item,
#calendar-book .holiday-page .personal-note{
  background-color:rgba(255,255,255,.68) !important;
  border-color:rgba(52,83,100,.14) !important;
}
#calendar-book .holiday-page .personal-note{
  background:repeating-linear-gradient(to bottom,rgba(255,255,255,.60) 0,rgba(255,255,255,.60) 30px,rgba(56,91,111,.12) 31px) !important;
  color:#263f50 !important;
}
#calendar-book .holiday-page .event-item p,
#calendar-book .holiday-page .daily-advice p,
#calendar-book .holiday-page .quote-empty,
#calendar-book .holiday-page .save-state,
#calendar-book .holiday-page .count-pill{
  color:#526b79 !important;
}

/* Mood accent: visible but not too dark. */
#calendar-book .holiday-happy .section-kicker,
#calendar-book .holiday-happy .quote-label,
#calendar-book .holiday-happy .ornament{
  color:#2b6f9f !important;
}
#calendar-book .holiday-sad .section-kicker,
#calendar-book .holiday-sad .quote-label,
#calendar-book .holiday-sad .ornament{
  color:#a54848 !important;
}


/* ===== Holiday background blend refinement =====
   Blend the marked event/note blocks into the holiday page color. */
#calendar-book .holiday-page .quote-events-block,
#calendar-book .holiday-page .note-block{
  background:transparent !important;
  background-color:transparent !important;
  border-color:transparent !important;
  box-shadow:none !important;
}

/* Notes writing area keeps ruled lines, but no white card fill. */
#calendar-book .holiday-page .personal-note,
#calendar-book .holiday-page .personal-note[readonly]{
  background:
    repeating-linear-gradient(
      to bottom,
      transparent 0,
      transparent 30px,
      rgba(56,91,111,.16) 31px
    ) !important;
  border-color:rgba(52,83,100,.16) !important;
  box-shadow:none !important;
}

/* Remove the little white patches behind ornamental divider stars. */
#calendar-book .holiday-page .quote-events-block::after,
#calendar-book .holiday-page .daily-advice::after,
#calendar-book .holiday-page .section-heading:has(+ .personal-note)::after,
#calendar-book .holiday-page .section-heading:has(~ .personal-note)::after{
  background:transparent !important;
}

/* Keep the event row readable while making it softer against the page. */
#calendar-book .holiday-page .quote-events-block .event-item{
  background:rgba(255,255,255,.32) !important;
  border-color:rgba(52,83,100,.14) !important;
}

/* The controls should sit directly on the holiday page rather than a white strip. */
#calendar-book .holiday-page .note-actions{
  background:transparent !important;
}


/* ===== Holiday center fold shadow v2 =====
   Draw the fold on top of holiday-page content, including date cards. */
#calendar-book .holiday-page .page-inner,
#calendar-book .holiday-page .quote-inner{
  position:relative;
}

/* LEFT page (quote): center is on its RIGHT edge. */
#calendar-book .holiday-page.quote-page .page-inner::after,
#calendar-book .holiday-page.quote-page .quote-inner::after{
  content:"";
  position:absolute;
  top:0;
  right:0;
  bottom:0;
  width:52px;
  pointer-events:none;
  z-index:120;
  background:
    linear-gradient(
      to left,
      rgba(29,38,42,.20) 0%,
      rgba(41,49,51,.13) 15%,
      rgba(58,64,64,.075) 35%,
      rgba(75,78,76,.025) 68%,
      rgba(75,78,76,0) 100%
    );
  box-shadow:inset -8px 0 14px -12px rgba(20,28,31,.34);
}

/* RIGHT page (agenda): center is on its LEFT edge. */
#calendar-book .holiday-page.agenda-page .page-inner::after{
  content:"";
  position:absolute;
  top:0;
  left:0;
  bottom:0;
  width:52px;
  pointer-events:none;
  z-index:120;
  background:
    linear-gradient(
      to right,
      rgba(29,38,42,.20) 0%,
      rgba(41,49,51,.13) 15%,
      rgba(58,64,64,.075) 35%,
      rgba(75,78,76,.025) 68%,
      rgba(75,78,76,0) 100%
    );
  box-shadow:inset 8px 0 14px -12px rgba(20,28,31,.34);
}

/* Slight seam at the exact book center. */
#calendar-book .holiday-page.quote-page .page-inner{
  box-shadow:inset -7px 0 12px -11px rgba(28,37,40,.26);
}
#calendar-book .holiday-page.agenda-page .page-inner{
  box-shadow:inset 7px 0 12px -11px rgba(28,37,40,.26);
}

/* ===== Bilingual UI ===== */
.language-switch{display:flex;align-items:center;gap:4px;padding:4px;border:1px solid rgba(75,61,41,.14);border-radius:999px;background:rgba(255,255,255,.68);backdrop-filter:blur(10px)}
.lang-btn{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 11px;border-radius:999px;text-decoration:none;color:inherit;font-size:12px;font-weight:700;opacity:.65;transition:.18s ease}
.lang-btn:hover{opacity:1;background:rgba(255,255,255,.7)}
.lang-btn.active{opacity:1;background:#fff;box-shadow:0 4px 14px rgba(34,28,20,.10)}
.auth-language{position:absolute;top:22px;inset-inline-end:22px;z-index:4}
.auth-card{position:relative}
html[dir="ltr"] body{direction:ltr}
html[dir="ltr"] .appbar,html[dir="ltr"] .section-heading,html[dir="ltr"] .page-topline,html[dir="ltr"] .date-card-head,html[dir="ltr"] .event-item,html[dir="ltr"] .note-actions{direction:ltr}
html[dir="ltr"] .personal-note{text-align:left}
html[dir="ltr"] .quote-main,html[dir="ltr"] .daily-advice,html[dir="ltr"] .quote-events-block{text-align:left}
html[dir="ltr"] .meeting-time{direction:ltr}
@media(max-width:760px){.language-switch{transform:scale(.92);transform-origin:center}.auth-language{top:12px;inset-inline-end:12px}}


/* Portfolio demo edition */
.demo-public-banner{position:fixed;top:10px;left:50%;transform:translateX(-50%);z-index:9999;background:rgba(17,24,39,.92);color:#fff;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:8px 16px;font-size:12px;box-shadow:0 8px 24px rgba(0,0,0,.18);backdrop-filter:blur(10px);white-space:nowrap}
.demo-login-box{margin:14px 0 16px;padding:13px 14px;border:1px solid rgba(31,74,104,.16);border-radius:14px;background:rgba(240,247,250,.75);display:grid;gap:7px;font-size:13px}.demo-login-box code{direction:ltr;unicode-bidi:embed}.demo-login-box small{opacity:.72;line-height:1.55}
.demo-admin-notice{margin:0 0 16px}.demo-readonly-form{position:relative;opacity:.68}.demo-readonly-form button{cursor:not-allowed!important}
@media(max-width:700px){.demo-public-banner{max-width:calc(100vw - 24px);white-space:normal;text-align:center;border-radius:14px;top:8px}}
