/* ===== কক্ষ ৫০১ বুকিং — স্টাইল ===== */
/* NikoshBAN: কম্পিউটারে ইনস্টল থাকলে সেটা, নইলে সাথে দেওয়া Nikosh ফাইল — মোবাইল (Android, iPhone) ও পিসি সবখানে একই ফন্ট */
/* NikoshBAN — সাইটের সঙ্গে দেওয়া (ইনস্টল করা না থাকলেও Android, iPhone ও পিসিতে একই ফন্ট) */
@font-face {
  font-family: 'R501 Nikosh';
  src: url('../../data/fonts/NikoshBAN-v7.woff') format('woff'), url('../../data/fonts/NikoshBAN-v7.ttf') format('truetype'),
       local('NikoshBAN'), local('Nikosh BAN'), url('../../data/fonts/Nikosh.ttf') format('truetype');
  font-style: normal; font-weight: normal; font-display: swap;   /* মোটা লেখা (B) ব্রাউজার নিজে তৈরি করে */
}
/* কোনো কারণে NikoshBAN/Nikosh লোড না হলে সাথে দেওয়া Noto Sans Bengali */
@font-face { font-family: 'R501 Bangla'; src: url('../../data/fonts/NotoSansBengali-400.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'R501 Bangla'; src: url('../../data/fonts/NotoSansBengali-700.woff2') format('woff2'); font-weight: 600 800; font-display: swap; }
/* ইংরেজি অক্ষর ও সংখ্যা (যেমন ট্র্যাকিং কোড R501-26-M4SQMT) সবসময় ইংরেজি ফন্টে — NikoshBAN ইংরেজি সংখ্যাকে বাংলা আকারে দেখায় */
@font-face { font-family: 'R501 Latin'; src: local('Segoe UI'), local('Roboto'), url('../../data/fonts/Roboto-Latin-400.woff2') format('woff2'); font-weight: 400; font-display: swap; unicode-range: U+0020-007E, U+00A0-00FF, U+2013-2014, U+2018-201D; }
@font-face { font-family: 'R501 Latin'; src: local('Segoe UI Bold'), local('Roboto Bold'), local('Roboto-Bold'), url('../../data/fonts/Roboto-Latin-700.woff2') format('woff2'); font-weight: 600 800; font-display: swap; unicode-range: U+0020-007E, U+00A0-00FF, U+2013-2014, U+2018-201D; }
:root {
  --font: 'R501 Nikosh', 'NikoshBAN', 'Nikosh', 'Noto Sans Bengali', 'Nirmala UI', sans-serif;
  --font-code: Arial, Helvetica, sans-serif;   /* ইংরেজি ট্র্যাকিং কোড */
  --bg: #f3f6f4;
  --surface: #ffffff;
  --ink: #17251f;
  --muted: #5f6f68;
  --line: #dde5e1;
  --brand: #0d6b4e;
  --brand-dark: #08513a;
  --brand-soft: #e3f2ec;
  --accent: #c8862a;
  --ok: #1f8a4c; --ok-soft: #e4f5ea;
  --warn: #b7791f; --warn-soft: #fdf3e1;
  --err: #c0392b; --err-soft: #fbe9e7;
  --info: #2a6f97; --info-soft: #e6f1f8;
  --radius: 12px;
  --shadow: 0 1px 2px rgba(16,40,30,.06), 0 4px 16px rgba(16,40,30,.05);
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--font); font-size: 18px; line-height: 1.55; color: var(--ink); background: var(--bg); }
input, select, textarea, button { font-family: var(--font); font-size: 17px; }
a { color: var(--brand); }
h1, h2, h3 { line-height: 1.25; margin: 0 0 .4em; }
.mono { font-family: var(--font-code); letter-spacing: .03em; }
.muted { color: var(--muted); }
.small { font-size: .88em; }
.nowrap { white-space: nowrap; }
.mt { margin-top: 14px; }
.w-full { width: 100%; }
.hp { position: absolute; left: -9999px; }
.wrap { max-width: 1200px; margin: 0 auto; padding: 0 16px; }

/* ----- বোতাম ----- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 9px 16px; border-radius: 9px;
  border: 1px solid transparent; background: var(--surface); color: var(--ink); cursor: pointer; text-decoration: none; font-weight: 600; line-height: 1.2; }
.btn-primary { background: var(--brand); color: #fff; }
.btn-primary:hover { background: var(--brand-dark); }
.btn-success { background: var(--ok); color: #fff; }
.btn-warn { background: var(--warn); color: #fff; }
.btn-danger { background: var(--err); color: #fff; }
.btn-ghost { background: transparent; border-color: var(--line); color: var(--ink); }
.btn-ghost:hover { background: var(--brand-soft); }
.btn-sm { padding: 5px 10px; font-size: 15px; border-radius: 7px; }
.btn-lg { padding: 12px 22px; font-size: 19px; }
.btn-row { display: flex; gap: 8px; flex-wrap: wrap; }
.inline-form { display: inline; }

/* ----- পাবলিক হেডার ----- */
.site-head { background: var(--brand); color: #fff; position: sticky; top: 0; z-index: 20; }
.head-inner { display: flex; align-items: center; gap: 16px; min-height: 66px; }
.brand { display: flex; align-items: center; gap: 12px; color: #fff; text-decoration: none; margin-right: auto; }
.brand-mark { display: inline-grid; place-items: center; width: 46px; height: 46px; border-radius: 10px; background: #fff; color: var(--brand);
  font-weight: 800; font-size: 20px; flex: none; }
.brand-mark.lg { width: 64px; height: 64px; font-size: 28px; background: var(--brand); color: #fff; }
.brand-text { display: flex; flex-direction: column; line-height: 1.25; }
.brand-text small { opacity: .85; font-size: 15px; }
.site-nav { display: flex; gap: 4px; flex-wrap: wrap; }
.site-nav a { color: #e9f6f0; text-decoration: none; padding: 8px 12px; border-radius: 8px; }
.site-nav a:hover, .site-nav a.on { background: rgba(255,255,255,.14); color: #fff; }
.site-nav .nav-admin { border: 1px solid rgba(255,255,255,.4); }
.nav-toggle { display: none; background: transparent; border: 1px solid rgba(255,255,255,.4); color: inherit; font-size: 22px; border-radius: 8px; padding: 4px 11px; cursor: pointer; }
.main { padding-top: 22px; padding-bottom: 40px; min-height: 70vh; }
.site-foot { background: #0f2a20; color: #b9cfc5; padding: 18px 0; font-size: 15px; text-align: center; }

.hero { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; margin-bottom: 18px; }
.hero h1 { font-size: 30px; color: var(--brand-dark); }
.hero p { margin: 0; color: var(--muted); max-width: 680px; }

/* ----- কার্ড, গ্রিড ----- */
.card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; box-shadow: var(--shadow); margin-bottom: 18px; }
.card-title { font-size: 21px; color: var(--brand-dark); }
.sub { font-size: 17px; margin-top: 16px; color: var(--muted); }
.grid-2 { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.grid-2.wide-left { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); }
.form-card { max-width: 900px; }
.form-card.narrow { max-width: 520px; margin: 0 auto; }

/* ----- ক্যালেন্ডার ----- */
.cal-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 12px; }
.cal-head h2 { margin: 0; font-size: 23px; color: var(--brand-dark); }
.cal { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.cal-dn { text-align: center; font-weight: 700; color: var(--muted); font-size: 15px; padding: 4px 0; }
.cal-cell { position: relative; min-height: 96px; border-radius: 9px; padding: 6px 7px; text-decoration: none; color: var(--ink);
  display: flex; flex-direction: column; gap: 2px; border: 1px solid var(--line); background: #fbfdfc; overflow: hidden; }
.cal-cell.empty { border: 0; background: transparent; }
.cal-cell.free { background: #f4fbf7; }
.cal-cell.busy { background: #fff6e8; border-color: #f0d6a8; }
.cal-cell.past { opacity: .6; }
.cal-cell.today { box-shadow: inset 0 0 0 2px var(--accent); }
.cal-cell.sel { box-shadow: inset 0 0 0 2px var(--brand); background: var(--brand-soft); opacity: 1; }
.cal-cell:hover { border-color: var(--brand); }
.cal-num { font-weight: 800; font-size: 18px; }
.cal-count { font-size: 13px; color: var(--warn); font-weight: 700; }
.cal-ev1 { display: none; }
.cal-ev { font-size: 13px; line-height: 1.25; background: #fff; border-left: 3px solid var(--accent); padding: 1px 4px; border-radius: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cal-free { font-size: 13px; color: var(--ok); }
.cal-pend { position: absolute; top: 5px; right: 6px; font-size: 12px; }
.legend { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 12px; font-size: 15px; color: var(--muted); }
.lg { display: inline-block; width: 14px; height: 14px; border-radius: 4px; vertical-align: -2px; border: 1px solid var(--line); }
.lg.free { background: #f4fbf7; } .lg.busy { background: #fff6e8; border-color: #f0d6a8; }

.timeline { list-style: none; margin: 0; padding: 0; }
.timeline li { display: grid; grid-template-columns: 150px 1fr; gap: 10px; padding: 10px 0; border-bottom: 1px dashed var(--line); }
.timeline.num li { grid-template-columns: auto 150px 1fr; align-items: baseline; }
.tl-no { font-weight: 700; color: var(--brand); min-width: 1.4em; }
.timeline li:last-child { border-bottom: 0; }
.tl-time { font-weight: 700; color: var(--brand-dark); font-size: 16px; }
.tl-body small { display: block; color: var(--muted); }
.big-free { font-size: 19px; color: var(--ok); }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { padding: 4px 10px; border-radius: 99px; font-size: 15px; }
.chip-free { background: var(--ok-soft); color: var(--ok); border: 1px solid #bfe3cc; }

/* ----- ফর্ম ----- */
label { display: block; font-weight: 600; font-size: 16px; }
label > input, label > select, label > textarea { display: block; margin-top: 5px; }
label b { color: var(--err); }
label.inline { display: flex; flex-direction: row; align-items: center; gap: 8px; font-weight: 500; }
label.inline > input { margin-top: 0; }
input[type=text], input[type=email], input[type=tel], input[type=password], input[type=number], input[type=month], select, textarea {
  width: 100%; padding: 10px 12px; border: 1px solid #c9d6d0; border-radius: 9px; background: #fff; color: var(--ink); font-weight: 400; }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--brand-soft); border-color: var(--brand); }
input[type=file] { padding: 8px; border: 1px dashed #b8c9c1; border-radius: 9px; background: #fafcfb; font-weight: 400; }
textarea { resize: vertical; }
.form-stack { display: flex; flex-direction: column; gap: 12px; }
.row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.form-grid { display: flex; flex-direction: column; gap: 16px; }
.form-grid fieldset { border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px 16px; margin: 0;
  display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; }
.form-grid legend { font-weight: 800; color: var(--brand-dark); padding: 0 6px; }
.span-2 { grid-column: 1 / -1; }
.form-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.filters { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; margin-bottom: 10px; }
.filters label { min-width: 140px; flex: 1 1 140px; }
.filters .btn { height: 44px; }
.toolbar { display: flex; flex-direction: column; gap: 8px; }

/* ----- অ্যালার্ট, ব্যাজ ----- */
.alert { padding: 12px 14px; border-radius: 9px; margin: 0 0 14px; border: 1px solid; }
.alert ul { margin: 6px 0 0; padding-left: 20px; }
.alert-success { background: var(--ok-soft); border-color: #bfe3cc; color: #145c33; }
.alert-error { background: var(--err-soft); border-color: #f2c4bd; color: #8c2a1f; }
.alert-warn { background: var(--warn-soft); border-color: #f0d6a8; color: #7a4f12; }
.alert-info { background: var(--info-soft); border-color: #c4dceb; color: #1d4f6c; }
.badge { display: inline-block; padding: 3px 10px; border-radius: 99px; font-size: 14px; font-weight: 700; white-space: nowrap; }
.badge-pending { background: var(--warn-soft); color: var(--warn); }
.badge-approved { background: var(--ok-soft); color: var(--ok); }
.badge-rejected { background: var(--err-soft); color: var(--err); }

/* ----- টেবিল ----- */
.table-wrap { overflow-x: auto; }
.table { width: 100%; border-collapse: collapse; font-size: 16px; }
.table th { text-align: left; background: var(--brand-soft); color: var(--brand-dark); padding: 9px 10px; font-weight: 700; border-bottom: 1px solid var(--line); }
.table td { padding: 9px 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
.table tr:hover td { background: #fafdfb; }
.table tr.dim td { opacity: .55; }
.table .actions { white-space: nowrap; }
.kv { width: 100%; border-collapse: collapse; }
.kv th { text-align: left; width: 34%; color: var(--muted); font-weight: 600; padding: 7px 8px 7px 0; vertical-align: top; }
.kv td { padding: 7px 0; border-bottom: 1px dashed var(--line); }
.pager { display: flex; gap: 4px; flex-wrap: wrap; margin-top: 14px; }
.pager a, .pager span { padding: 5px 11px; border-radius: 7px; border: 1px solid var(--line); text-decoration: none; }
.pager .cur { background: var(--brand); color: #fff; border-color: var(--brand); }
.tabs { display: flex; gap: 6px; border-bottom: 1px solid var(--line); margin-bottom: 12px; }
.tabs a { padding: 8px 14px; text-decoration: none; color: var(--muted); border-bottom: 3px solid transparent; }
.tabs a.on { color: var(--brand-dark); border-bottom-color: var(--brand); font-weight: 700; }

/* ----- সফল আবেদন, ট্র্যাকিং ----- */
.success-card { max-width: 640px; margin: 0 auto; text-align: center; }
.success-card .kv { text-align: left; }
.big-check { width: 72px; height: 72px; border-radius: 50%; background: var(--ok); color: #fff; font-size: 40px; display: grid; place-items: center; margin: 0 auto 10px; }
.track-code { font-family: var(--font-code); font-size: 28px; font-weight: 800; letter-spacing: .08em; background: var(--brand-soft);
  color: var(--brand-dark); border: 2px dashed var(--brand); border-radius: 10px; padding: 12px; margin: 12px auto 8px; display: inline-block; }
.track-status { font-size: 22px; font-weight: 800; text-align: center; padding: 12px; border-radius: 10px; margin-bottom: 10px; }
.st-pending { background: var(--warn-soft); color: var(--warn); }
.st-approved { background: var(--ok-soft); color: var(--ok); }
.st-rejected { background: var(--err-soft); color: var(--err); }

/* ----- অ্যাডমিন লেআউট (বাম পাশে কন্ট্রোল মেনু) ----- */
body.admin { display: flex; min-height: 100vh; }
.side { width: 260px; flex: none; background: #0f2a20; color: #cfe2d9; display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; overflow-y: auto; }
.side-brand { display: flex; gap: 10px; align-items: center; padding: 18px 16px; border-bottom: 1px solid rgba(255,255,255,.08); }
.side-brand strong { color: #fff; display: block; font-size: 19px; }
.side-brand small { font-size: 14px; opacity: .8; }
.side-nav { display: flex; flex-direction: column; padding: 10px 8px; gap: 2px; flex: 1; }
.side-nav a { display: flex; align-items: center; gap: 10px; color: #cfe2d9; text-decoration: none; padding: 9px 12px; border-radius: 8px; }
.side-nav a i { font-style: normal; width: 22px; text-align: center; opacity: .9; }
.side-nav a:hover { background: rgba(255,255,255,.07); color: #fff; }
.side-nav a.on { background: var(--brand); color: #fff; }
.side-nav .count { margin-left: auto; background: var(--accent); color: #fff; font-style: normal; font-size: 13px; padding: 1px 8px; border-radius: 99px; }
.side-user { padding: 14px 16px; border-top: 1px solid rgba(255,255,255,.08); display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.side-user strong { color: #fff; display: block; font-size: 16px; }
.side-user small { font-size: 13px; }
.side-user .btn-ghost { color: #cfe2d9; border-color: rgba(255,255,255,.25); }
.side-backdrop { display: none; }
.admin-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.admin-top { display: flex; align-items: center; gap: 12px; background: var(--surface); border-bottom: 1px solid var(--line); padding: 12px 22px; position: sticky; top: 0; z-index: 10; }
.admin-top h1 { font-size: 22px; margin: 0; color: var(--brand-dark); }
.admin-top .nav-toggle { color: var(--brand); border-color: var(--line); }
.top-room { margin-left: auto; color: var(--muted); font-size: 15px; }
.admin-body { padding: 22px; flex: 1; }
.admin-foot { padding: 14px 22px; font-size: 14px; color: var(--muted); border-top: 1px solid var(--line); }
.stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.stat { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px 18px; text-decoration: none; color: var(--ink); box-shadow: var(--shadow); border-top: 4px solid var(--brand); }
.stat strong { display: block; font-size: 34px; line-height: 1.1; }
.stat span { color: var(--muted); font-size: 15px; }
.stat-warn { border-top-color: var(--warn); } .stat-info { border-top-color: var(--info); } .stat-ok { border-top-color: var(--ok); } .stat-brand { border-top-color: var(--accent); }
.view-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; margin-bottom: 8px; }
.view-head h2 { color: var(--brand-dark); }
.proof-img { max-width: 100%; border: 1px solid var(--line); border-radius: 8px; margin-top: 8px; }
.proof-pdf { width: 100%; height: 520px; border: 1px solid var(--line); border-radius: 8px; margin-top: 8px; }
.history { list-style: none; margin: 0; padding: 0; }
.history li { padding: 8px 0; border-bottom: 1px dashed var(--line); }

.login-page { min-height: 100vh; display: grid; place-items: center; background: linear-gradient(160deg, #0f2a20, #0d6b4e); padding: 16px; }
.login-card { background: #fff; padding: 30px 28px; border-radius: 16px; width: 100%; max-width: 400px; display: flex; flex-direction: column; gap: 14px; text-align: center; box-shadow: 0 20px 50px rgba(0,0,0,.25); }
.login-card label { text-align: left; }
.login-card .brand-mark { margin: 0 auto; }

/* ----- বাংলা ডেটপিকার ----- */
.dp { position: absolute; z-index: 1000; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 12px 34px rgba(0,0,0,.16); padding: 10px; width: 300px; font-family: var(--font); }
.dp-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; gap: 4px; }
.dp-head strong { font-size: 17px; }
.dp-head button { border: 0; background: var(--brand-soft); color: var(--brand-dark); border-radius: 7px; width: 34px; height: 32px; cursor: pointer; font-size: 18px; }
.dp-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.dp-grid span { text-align: center; font-size: 13px; color: var(--muted); padding: 3px 0; }
.dp-grid button { border: 0; background: #f6f9f7; border-radius: 6px; padding: 7px 0; cursor: pointer; font-size: 16px; font-family: var(--font); }
.dp-grid button:hover { background: var(--brand-soft); }
.dp-grid button.today { box-shadow: inset 0 0 0 1px var(--accent); }
.dp-grid button.sel { background: var(--brand); color: #fff; }
.dp-grid button:disabled { opacity: .3; cursor: not-allowed; }
.dp-foot { display: flex; justify-content: space-between; margin-top: 8px; }
.dp-foot button { border: 0; background: transparent; color: var(--brand); cursor: pointer; font-family: var(--font); font-size: 15px; }

.print-only { display: none; }
.print-head { text-align: center; margin-bottom: 14px; }
.print-head h2 { margin: 0; font-size: 22px; }
.print-head h3 { margin: 2px 0; font-size: 18px; font-weight: 600; }
.print-head p { margin: 2px 0; }
.print-sheet { background: #f4fbf6; border-radius: 8px; padding: 16px; }
.print-by { margin-top: 14px; color: var(--muted); }

/* ----- মোবাইল ----- */
@media (max-width: 980px) {
  .grid-2, .grid-2.wide-left { grid-template-columns: 1fr; }
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .side { position: fixed; left: 0; top: 0; z-index: 50; transform: translateX(-100%); transition: transform .2s; }
  body.side-open .side { transform: none; }
  body.side-open .side-backdrop { display: block; position: fixed; inset: 0; background: rgba(0,0,0,.4); z-index: 40; }
  .admin-top .nav-toggle { display: inline-block; }
  .top-room { display: none; }
}
@media (max-width: 760px) {
  body { font-size: 17px; }
  .nav-toggle { display: inline-block; }
  .site-nav { display: none; position: absolute; top: 66px; left: 0; right: 0; background: var(--brand-dark); flex-direction: column; padding: 8px 16px 14px; }
  body.nav-open .site-nav { display: flex; }
  .brand-text small { display: none; }
  .hero h1 { font-size: 24px; }
  .card { padding: 14px; }
  .cal { gap: 3px; }
  .cal-cell { min-height: 58px; padding: 4px; }
  .cal-ev, .cal-free { display: none; }
  .cal-count { font-size: 11px; }
  .cal-pend { top: 2px; right: 3px; font-size: 10px; }
  .cal-head h2 { font-size: 19px; }
  .cal-head .btn { padding: 6px 9px; font-size: 14px; }
  .timeline li { grid-template-columns: 1fr; gap: 2px; }
  .timeline.num li { grid-template-columns: auto auto 1fr; gap: 2px 8px; }   /* মোবাইলেও ক্রম, সময় ও নাম এক সারিতে */
  .timeline.num .tl-time { font-size: 14px; white-space: nowrap; }
  .form-grid fieldset { grid-template-columns: 1fr; }
  .admin-body { padding: 14px; }
  .admin-top { padding: 10px 14px; }
  /* টেবিল → কার্ড */
  .table thead { display: none; }
  .table, .table tbody, .table tr, .table td { display: block; width: 100%; }
  .table tr { border: 1px solid var(--line); border-radius: 10px; margin-bottom: 10px; padding: 6px 10px; background: #fff; }
  .table td { border: 0; padding: 4px 0; }
  .table td[data-l]::before { content: attr(data-l) ': '; color: var(--muted); font-weight: 600; }
  .table td br { display: none; }
  .print-table thead { display: table-header-group; }
  .track-code { font-size: 22px; }
  .proof-pdf { height: 380px; }
}

/* ----- প্রিন্ট (মোবাইল ও পিসিতে একই রকম) ----- */
@media print {
  @page { size: A4; margin: 14mm 12mm; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  body { background: #fff; font-size: 13pt; display: block; }
  .site-head, .site-foot, .side, .admin-top, .admin-foot, .no-print, .filters, .nav-toggle, .tabs, .hero .btn { display: none !important; }
  .print-only { display: block; }
  .card { border: 0; box-shadow: none; padding: 0; }
  .wrap, .admin-body { max-width: none; padding: 0; }
  .print-sheet { background: #fff; padding: 0; }
  .table, .print-table { display: table !important; width: 100%; font-size: 12pt; }
  .table thead { display: table-header-group !important; }
  .table tbody { display: table-row-group !important; }
  .table tr { display: table-row !important; border: 0; margin: 0; padding: 0; page-break-inside: avoid; }
  .table td, .table th { display: table-cell !important; border: 1px solid #999 !important; padding: 5px 7px; }
  .table td::before { content: none !important; }
  .table td br { display: inline !important; }
  .table th { background: #fff !important; color: #000 !important; }
}

/* =====================================================================
   সংস্করণ ২: থিম, লোগো, "i" বাটন, ধাপ ট্র্যাকার, অপেক্ষমাণ অ্যানিমেশন,
   আধুনিক ক্যালেন্ডার, ফাইল ভিউয়ার, মেনুর ধরন, কার্ডের ধরন, সেটিংস পেজ
   ===================================================================== */
[hidden] { display: none !important; }
body { --head-grad: linear-gradient(135deg, var(--brand-dark), var(--brand)); --side-bg: #0f2a20; --side-ink: #cfe2d9; --foot-bg: #0f2a20; --logo-h: 46px; }
body.no-scroll { overflow: hidden; }

/* ----- রঙের থিম ----- */
body.theme-green  { --brand: #16a34a; --brand-dark: #14532d; --brand-soft: #e7f6ec; --accent: #d97706; --side-bg: #0f2a1c; --foot-bg: #0f2a1c; --bg: #f2f6f3; }
body.theme-blue   { --brand: #2563eb; --brand-dark: #1e3a8a; --brand-soft: #e6eefc; --accent: #f59e0b; --side-bg: #0f1d3d; --side-ink: #cdd8f2; --foot-bg: #0f1d3d; --bg: #f2f5fb; --line: #dbe3f0; }
body.theme-teal   { --brand: #0d9488; --brand-dark: #134e4a; --brand-soft: #e0f4f2; --accent: #ea580c; --side-bg: #0c2b29; --side-ink: #c8e6e2; --foot-bg: #0c2b29; --bg: #f1f7f6; }
body.theme-purple { --brand: #7c3aed; --brand-dark: #4c1d95; --brand-soft: #efe8fd; --accent: #db2777; --side-bg: #1e1038; --side-ink: #ddd2f5; --foot-bg: #1e1038; --bg: #f6f3fb; --line: #e4ddf1; }
body.theme-maroon { --brand: #b91c1c; --brand-dark: #7f1d1d; --brand-soft: #fbeaea; --accent: #b45309; --side-bg: #2a0f0f; --side-ink: #f0d4d4; --foot-bg: #2a0f0f; --bg: #faf4f3; --line: #eedcda; }
body.theme-dark   { --brand: #22c55e; --brand-dark: #15803d; --brand-soft: #14281d; --accent: #f59e0b; --bg: #0b1220; --surface: #121b2d; --ink: #e5ecf5; --muted: #9aa8bb;
  --line: #24324a; --side-bg: #070c16; --side-ink: #b8c4d6; --foot-bg: #070c16; --ok-soft: #10301f; --warn-soft: #33270f; --err-soft: #3a1414; --info-soft: #0f2536;
  --head-grad: linear-gradient(135deg, #0b1220, #14532d); }
body.theme-dark input, body.theme-dark select, body.theme-dark textarea { background: #0e1626; color: var(--ink); border-color: #2b3a55; }
body.theme-dark .cal-cell, body.theme-dark .cal-cell.free { background: #101a2b; }
body.theme-dark .cal-cell.busy { background: #2a2210; border-color: #5b4a1d; }
body.theme-dark .cal-ev, body.theme-dark .table tr:hover td, body.theme-dark .dp, body.theme-dark .dp-grid button { background: #0e1626; }
body.theme-dark .alert-success { color: #9be5b7; } body.theme-dark .alert-error { color: #f3b3ac; } body.theme-dark .alert-warn { color: #f2d49b; } body.theme-dark .alert-info { color: #a9d0ea; }
body.theme-dark .login-card, body.theme-dark .print-sheet { background: var(--surface); }
body.theme-dark .btn-ghost { color: var(--ink); }

.site-head { background: var(--head-grad); }
.site-foot { background: var(--foot-bg); }
.side { background: var(--side-bg); color: var(--side-ink); }
.side-nav a { color: var(--side-ink); }
.login-page { background: linear-gradient(160deg, var(--side-bg), var(--brand)); }
.cal-cell.sel { box-shadow: inset 0 0 0 2px var(--brand); }

/* ----- লোগো ----- */
.brand-logo { height: var(--logo-h); width: auto; max-width: 220px; object-fit: contain; border-radius: 8px; flex: none; }
.site-head .brand-logo { background: rgba(255,255,255,.95); padding: 3px; }
.brand-mark { width: var(--logo-h); height: var(--logo-h); font-size: calc(var(--logo-h) * .42); }
.brand-mark.lg, .brand-logo.lg { --logo-h: 72px; }
.brand-mark.lg { background: var(--brand); color: #fff; }
.login-card .brand-logo { margin: 0 auto; }
.brand-mark.sm, .brand-logo.sm { --logo-h: 44px; }
.side-brand .brand-logo { --logo-h: 44px; background: #fff; padding: 2px; }
.side-brand .brand-mark { --logo-h: 44px; }

/* ----- "i" বাটন ও ডেভেলপার তথ্য ----- */
.info-btn { width: 34px; height: 34px; flex: none; border-radius: 50%; border: 2px solid rgba(255,255,255,.75); background: rgba(255,255,255,.12); color: #fff;
  font: italic 700 18px Georgia, 'Times New Roman', serif; cursor: pointer; display: inline-grid; place-items: center; padding: 0; }
.info-btn:hover { background: rgba(255,255,255,.25); }
.info-btn.sm { width: 26px; height: 26px; font-size: 14px; }
.admin-top .info-btn { border-color: var(--brand); color: var(--brand); background: var(--brand-soft); }
.foot-inner { display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; }
.about-ov { position: fixed; inset: 0; z-index: 2000; background: rgba(15,23,42,.5); display: flex; align-items: center; justify-content: center; padding: 14px; backdrop-filter: blur(2px); }
.about-box { width: min(560px, 100%); max-height: calc(100dvh - 28px); overflow: auto; background: var(--surface); border-radius: 20px; box-shadow: 0 24px 60px rgba(0,0,0,.35); animation: pop .18s ease-out; }
@keyframes pop { from { opacity: 0; transform: translateY(10px) scale(.97); } to { opacity: 1; transform: none; } }
.about-hd { display: flex; align-items: center; gap: 12px; padding: 16px 18px; background: var(--head-grad); color: #fff; position: sticky; top: 0; }
.about-hd h2 { margin: 0; font-size: 21px; } .about-hd small { opacity: .9; font-size: 14px; }
.about-hd .brand-logo { background: #fff; padding: 2px; }
.about-x { margin-left: auto; width: 36px; height: 36px; border: 0; border-radius: 50%; background: rgba(255,255,255,.2); color: #fff; font-size: 18px; cursor: pointer; flex: none; }
.about-body { padding: 16px 18px 20px; display: flex; flex-direction: column; gap: 12px; }
.about-intro { margin: 0; color: var(--muted); text-align: justify; }
.about-note { margin: 0; font-size: 15px; color: var(--muted); border-top: 1px dashed var(--line); padding-top: 10px; }
.about-person { display: flex; gap: 14px; align-items: center; border: 1px solid var(--line); border-radius: 14px; padding: 12px 14px; background: var(--bg); }
.about-person img, .about-ini { width: 82px; height: 82px; border-radius: 50%; object-fit: cover; flex: none; border: 3px solid var(--brand-soft); }
.about-ini { display: grid; place-items: center; background: var(--brand); color: #fff; font-size: 34px; font-weight: 800; }
.about-person > div { display: flex; flex-direction: column; line-height: 1.4; min-width: 0; }
.about-person strong { font-size: 19px; color: var(--brand-dark); }
.theme-dark .about-person strong { color: var(--ink); }
.about-person small { color: var(--muted); font-size: 15px; }
.about-person a { font-size: 15px; word-break: break-all; }
.about-role { align-self: flex-start; font-size: 13px; font-weight: 700; color: var(--brand-dark); background: var(--brand-soft); padding: 1px 10px; border-radius: 99px; margin-bottom: 3px; }

/* ----- অপেক্ষমাণ ব্যাজ ও অ্যানিমেশন ----- */
.badge-pending { display: inline-flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.badge-pending .pend-step { flex-basis: 100%; font-size: 12px; font-weight: 600; opacity: .9; }
.pend-anim { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 2px; width: 14px; height: 14px; flex: none; font-style: normal; }
.pend-anim b { display: none; }
/* ঢেউ (ডিফল্ট): মাঝে বিন্দু, চারপাশে ছড়িয়ে পড়া দুটি বৃত্ত */
.anim-wave .pend-anim::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.anim-wave .pend-anim b:nth-child(1), .anim-wave .pend-anim b:nth-child(2) { display: block; position: absolute; inset: 0; border-radius: 50%; border: 2px solid currentColor; animation: pWave 2s ease-out infinite; }
.anim-wave .pend-anim b:nth-child(2) { animation-delay: 1s; }
@keyframes pWave { 0% { transform: scale(.45); opacity: .85; } 100% { transform: scale(1.9); opacity: 0; } }
/* ঘূর্ণায়মান চাকা */
.anim-spinner .pend-anim::before { content: ''; width: 12px; height: 12px; border-radius: 50%; border: 2px solid currentColor; border-right-color: transparent; animation: pSpin .8s linear infinite; }
@keyframes pSpin { to { transform: rotate(360deg); } }
/* লাফানো তিন বিন্দু */
.anim-dots .pend-anim { width: 20px; }
.anim-dots .pend-anim b { display: block; width: 4px; height: 4px; border-radius: 50%; background: currentColor; animation: pDot 1.1s ease-in-out infinite; }
.anim-dots .pend-anim b:nth-child(2) { animation-delay: .15s; } .anim-dots .pend-anim b:nth-child(3) { animation-delay: .3s; }
@keyframes pDot { 0%, 80%, 100% { transform: translateY(0); opacity: .45; } 40% { transform: translateY(-5px); opacity: 1; } }
/* স্পন্দন */
.anim-pulse .badge-pending { animation: pPulse 1.6s ease-in-out infinite; }
.anim-pulse .pend-anim::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
@keyframes pPulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(217,119,6,.45); } 50% { box-shadow: 0 0 0 6px rgba(217,119,6,0); } }
/* বালিঘড়ি */
.anim-hourglass .pend-anim::before { content: '⏳'; font-size: 13px; line-height: 1; animation: pFlip 2s ease-in-out infinite; }
@keyframes pFlip { 0%, 40% { transform: rotate(0); } 50%, 90% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
/* চলমান দাগ */
.anim-bar .badge-pending { position: relative; overflow: hidden; }
.anim-bar .badge-pending::after { content: ''; position: absolute; left: 0; bottom: 0; height: 3px; width: 40%; background: currentColor; border-radius: 3px; animation: pBar 1.4s ease-in-out infinite; }
.anim-bar .pend-anim { display: none; }
@keyframes pBar { 0% { left: -40%; } 100% { left: 100%; } }
.anim-none .pend-anim { display: none; }
@media (prefers-reduced-motion: reduce) { .pend-anim *, .pend-anim::before, .badge-pending, .badge-pending::after, .trk-dot::before, .trk-dot::after { animation: none !important; } }

/* ----- ধাপের অগ্রগতি ----- */
.trk-steps { display: flex; margin: 14px 0 18px; position: relative; }
.trk-step { flex: 1; text-align: center; position: relative; font-size: 14px; color: var(--muted); min-width: 0; padding: 0 2px; }
.trk-step::before { content: ''; position: absolute; top: 17px; left: -50%; width: 100%; height: 4px; background: var(--line); z-index: 0; }
.trk-step:first-child::before { display: none; }
.trk-step.done::before, .trk-step.cur::before, .trk-step.bad::before { background: var(--ok); }
.trk-dot { position: relative; z-index: 1; width: 38px; height: 38px; margin: 0 auto 6px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; background: var(--line); color: var(--muted); }
.trk-step.done .trk-dot { background: var(--ok); color: #fff; }
.trk-step.cur .trk-dot { background: #f59e0b; color: #fff; box-shadow: 0 0 0 4px #fef3c7; }
.trk-step.bad .trk-dot { background: var(--err); color: #fff; }
.trk-step.cur .trk-dot::before, .trk-step.cur .trk-dot::after { content: ''; position: absolute; inset: 0; border-radius: 50%; border: 3px solid #f59e0b; animation: trkWave 2s ease-out infinite; pointer-events: none; }
.trk-step.cur .trk-dot::after { animation-delay: 1s; }
@keyframes trkWave { 0% { transform: scale(1); opacity: .75; } 100% { transform: scale(2.2); opacity: 0; } }
.trk-step b { display: block; color: var(--ink); font-size: 14px; line-height: 1.3; padding: 0 3px; overflow-wrap: anywhere; }
.trk-step.off b { color: var(--muted); font-weight: 600; }
.trk-step small { display: block; font-size: 12px; }
.trk-steps.preview { margin-top: 4px; }
.step-now { margin: 0; padding: 8px 10px; background: var(--warn-soft); border-radius: 8px; }
.track-status .badge-pending { font-size: 20px; background: transparent; padding: 0; justify-content: center; }
.track-status .badge-pending .pend-anim { width: 20px; height: 20px; }

/* ----- হোম ক্যালেন্ডার ----- */
.cal-head { background: var(--head-grad); margin: -20px -20px 14px; padding: 12px 14px; border-radius: var(--radius) var(--radius) 0 0; }
.cal-head h2 { color: #fff; font-size: 24px; }
.cal-head .btn-ghost { background: rgba(255,255,255,.18); border-color: transparent; color: #fff; }
.cal-head .btn-ghost:hover { background: rgba(255,255,255,.3); }
.cal-cell { border-radius: 14px; }
.cal-cell.today { box-shadow: inset 0 0 0 2px #dc2626; }
.cal-cell.sel { background: var(--brand-soft); box-shadow: inset 0 0 0 2px var(--brand-dark); }

/* ----- আধুনিক তারিখ বাছাই পপআপ ----- */
.gcal-ov { position: fixed; inset: 0; z-index: 3000; background: rgba(15,23,42,.45); display: flex; align-items: center; justify-content: center; padding: 12px; backdrop-filter: blur(2px); }
.gcal { position: relative; width: min(400px, 100%); max-height: calc(100dvh - 24px); overflow: hidden auto; background: #fff; border-radius: 22px; box-shadow: 0 24px 60px rgba(0,0,0,.4); animation: pop .16s ease-out; font-family: var(--font); color: #111; }
.gcal-nav { background: var(--head-grad); padding: 16px 14px 14px; display: flex; flex-direction: column; gap: 10px; color: #fff; }
.gcal-title { font-size: 17px; font-weight: 700; text-align: center; line-height: 1.35; padding: 0 34px; }
.gcal-x { position: absolute; top: 10px; right: 10px; width: 32px; height: 32px; border: 0; border-radius: 50%; background: rgba(255,255,255,.22); color: #fff; font-size: 15px; cursor: pointer; }
.gcal-sels { display: flex; gap: 8px; }
.gcal-sel { display: flex; align-items: center; gap: 4px; flex: 1 1 auto; min-width: 0; }
.gcal-sel-y { flex: 0 0 auto; }
.gcal-sel button { flex: 0 0 30px; width: 30px; height: 46px; border: 0; border-radius: 10px; background: rgba(255,255,255,.2); color: #fff; font-size: 12px; cursor: pointer; padding: 0; }
.gcal-sel button:active { background: rgba(255,255,255,.4); }
.gcal-sel select { height: 46px; padding: 0 10px; font-size: 20px; font-weight: 700; border-radius: 14px; border: 0; background: #fff; color: var(--brand-dark); min-width: 0; }
.gcal-m { flex: 1 1 auto; width: 100%; }
.gcal-y { width: 92px; flex: 0 0 auto; }
.gcal-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; padding: 12px 14px 4px; }
.gcal-dl { text-align: center; font-size: 14px; font-weight: 700; color: #6b7280; padding: 8px 0; }
.gcal-d { height: 46px; border: 0; border-radius: 14px; background: #f3f6f4; font-size: 19px; font-weight: 600; color: #111; cursor: pointer; font-family: var(--font); }
.gcal-d:hover { background: var(--brand-soft); }
.gcal-d.today { box-shadow: inset 0 0 0 2px #dc2626; }
.gcal-d.sel { background: var(--brand-dark); color: #fff; }
.gcal-d:disabled { opacity: .3; cursor: not-allowed; }
.gcal-bottom { display: flex; gap: 10px; padding: 10px 14px 16px; }
.gcal-bottom button { flex: 1; height: 46px; border-radius: 14px; font-size: 17px; font-weight: 700; background: var(--brand-soft); color: var(--brand-dark); border: 1px solid var(--line); cursor: pointer; font-family: var(--font); }
.gcal-bottom button.pri { background: var(--brand-dark); color: #fff; border-color: var(--brand-dark); }
input.dp-ro { cursor: pointer; background-image: linear-gradient(transparent, transparent); }
input.dp-ro:read-only { background-color: var(--surface); }

/* ----- ফাইল ভিউয়ার ----- */
.fv-ov { position: fixed; inset: 0; z-index: 2500; background: rgba(15,23,42,.6); display: flex; align-items: center; justify-content: center; padding: 12px; }
.fv { width: min(1000px, 100%); height: calc(100dvh - 24px); background: var(--surface); border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 24px 60px rgba(0,0,0,.45); animation: pop .16s ease-out; }
.fv-hd { display: flex; align-items: center; gap: 10px; padding: 10px 12px; background: var(--head-grad); color: #fff; flex-wrap: wrap; }
.fv-hd strong { flex: 1 1 180px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 16px; }
.fv-acts { display: flex; gap: 6px; flex-wrap: wrap; margin-left: auto; }
.fv-btn { display: inline-flex; align-items: center; justify-content: center; height: 36px; padding: 0 12px; border-radius: 9px; border: 1px solid #fff; background: #fff; color: var(--brand-dark);
  font: 700 14px var(--font); text-decoration: none; cursor: pointer; white-space: nowrap; }
.fv-btn.fv-x { width: 36px; padding: 0; background: rgba(255,255,255,.2); color: #fff; border-color: transparent; font-size: 16px; }
.fv-body { flex: 1; min-height: 0; background: #525659; position: relative; }
.fv-body iframe { width: 100%; height: 100%; border: 0; background: #fff; }
.fv-img { position: absolute; inset: 0; overflow: auto; display: flex; align-items: flex-start; justify-content: center; padding: 12px; }
.fv-img img { max-width: 100%; height: auto; background: #fff; box-shadow: 0 4px 18px rgba(0,0,0,.4); }
.fv-zoom { position: absolute; bottom: 12px; left: 50%; transform: translateX(-50%); display: flex; gap: 6px; background: rgba(0,0,0,.55); padding: 6px; border-radius: 12px; }
.fv-zoom button { min-width: 38px; height: 34px; border: 0; border-radius: 8px; background: #fff; font: 700 15px var(--font); cursor: pointer; padding: 0 10px; }
.print-frame { position: fixed; right: 0; bottom: 0; width: 0; height: 0; border: 0; visibility: hidden; }
.proof-img.js-view { cursor: zoom-in; }

/* ----- শুধু-বাংলা সতর্কবার্তা ----- */
.bn-tip { position: absolute; z-index: 4000; display: none; background: #7a1f12; color: #fff; font-size: 14px; padding: 5px 10px; border-radius: 8px; box-shadow: 0 6px 16px rgba(0,0,0,.25); }

/* ----- কন্ট্রোল প্যানেল: গণনা, ড্যাশবোর্ড ----- */
.side-nav .count.hot { background: #dc2626; }
.stats { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.stat-hot { border-top-color: #dc2626; }
.stat-hot strong { color: #dc2626; }
.col { min-width: 0; }

/* ----- কার্ডের ধরন ----- */
body.card-flat .card, body.card-flat .stat { box-shadow: none; border-width: 1.5px; }
body.card-glass { background: linear-gradient(160deg, var(--brand-soft), var(--bg) 45%, var(--brand-soft)); background-attachment: fixed; }
body.card-glass .card, body.card-glass .stat { background: rgba(255,255,255,.72); backdrop-filter: blur(8px); border-color: rgba(255,255,255,.8); box-shadow: 0 8px 30px rgba(15,40,30,.08); }
body.card-glass.theme-dark .card, body.card-glass.theme-dark .stat { background: rgba(18,27,45,.75); border-color: rgba(255,255,255,.06); }

/* ----- মেনুর ধরন: উপরে ট্যাব ----- */
@media (min-width: 981px) {
  body.admin.menu-top { flex-direction: column; }
  body.menu-top .side { width: auto; height: auto; position: sticky; top: 0; z-index: 30; flex-direction: row; align-items: center; overflow: visible; }
  body.menu-top .side-brand { border: 0; padding: 8px 14px; flex: none; }
  body.menu-top .side-brand-text small { display: none; }
  body.menu-top .side-nav { flex-direction: row; flex-wrap: wrap; padding: 6px; gap: 2px; flex: 1; }
  body.menu-top .side-nav a { padding: 7px 10px; font-size: 15px; }
  body.menu-top .side-nav a i { width: auto; }
  body.menu-top .side-user { border: 0; padding: 6px 14px; flex: none; }
  body.menu-top .admin-top { position: static; }
  /* সরু আইকন মেনু */
  body.menu-compact .side { width: 76px; }
  body.menu-compact .side-brand { justify-content: center; padding: 14px 6px; }
  body.menu-compact .side-brand-text, body.menu-compact .side-nav a span, body.menu-compact .side-user div { display: none; }
  body.menu-compact .side-nav a { justify-content: center; padding: 11px 6px; position: relative; font-size: 20px; }
  body.menu-compact .side-nav a i { width: auto; }
  body.menu-compact .side-nav .count { position: absolute; top: 2px; right: 4px; font-size: 11px; padding: 0 5px; }
  body.menu-compact .side-user { justify-content: center; padding: 10px 4px; }
  body.menu-compact .side-user .btn { font-size: 12px; padding: 4px 6px; }
}

/* ----- দায়িত্ব টেবিল ----- */
.perm-table th { font-size: 13px; line-height: 1.3; vertical-align: bottom; min-width: 82px; }
.perm-table th.pt-step { background: var(--warn-soft); color: var(--warn); }
.pt-cell { text-align: center; }
.pt-chk { display: inline-flex; cursor: pointer; }
.pt-chk input { position: absolute; opacity: 0; width: 0; height: 0; }
.pt-chk span { width: 28px; height: 28px; border-radius: 8px; border: 2px solid var(--line); display: grid; place-items: center; background: var(--surface); transition: .15s; }
.pt-chk input:checked + span { background: var(--ok); border-color: var(--ok); }
.pt-chk input:checked + span::after { content: '✓'; color: #fff; font-weight: 800; }
.pt-chk input:focus-visible + span { outline: 2px solid var(--brand); }

/* ----- ধাপ পেজ ----- */
.wf-row { display: flex; align-items: center; gap: 10px; }
.wf-no { width: 36px; height: 36px; border-radius: 50%; background: var(--brand); color: #fff; display: grid; place-items: center; font-weight: 800; flex: none; }
.wf-in { flex: 1; display: block; }

/* ----- চেহারা পেজ ----- */
.choice-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; }
.choice { display: block; cursor: pointer; font-weight: 500; }
.choice input { position: absolute; opacity: 0; }
.choice-box { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; border: 2px solid var(--line); border-radius: 12px; padding: 12px; height: 100%; background: var(--surface); }
.choice input:checked + .choice-box { border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-soft); }
.choice input:focus-visible + .choice-box { outline: 2px solid var(--brand); }
.choice-box b { font-size: 15px; }
.swatch { width: 100%; height: 38px; border-radius: 8px; }
.mini-layout { width: 100%; height: 46px; border: 1px solid var(--line); border-radius: 6px; position: relative; overflow: hidden; background: var(--bg); }
.mini-layout i { position: absolute; background: var(--brand-dark); }
.ml-side i:first-child { left: 0; top: 0; bottom: 0; width: 30%; } .ml-side i + i { display: none; }
.ml-top i:first-child { left: 0; right: 0; top: 0; height: 26%; } .ml-top i + i { display: none; }
.ml-compact i:first-child { left: 0; top: 0; bottom: 0; width: 12%; } .ml-compact i + i { display: none; }
.mini-card { width: 100%; height: 46px; border-radius: 8px; background: var(--surface); }
.mc-soft { box-shadow: 0 4px 14px rgba(0,0,0,.12); border: 1px solid var(--line); }
.mc-flat { border: 2px solid var(--line); }
.mc-glass { background: linear-gradient(135deg, var(--brand-soft), #fff); border: 1px solid #fff; box-shadow: 0 6px 20px rgba(0,0,0,.1); }
.mini-cal { width: 100%; height: 46px; border-radius: 8px; border: 1px solid var(--line); }
.mini-cal.popup { background: linear-gradient(var(--brand-dark) 0 40%, #f3f6f4 40%); border-radius: 12px; }
.mini-cal.simple { background: repeating-linear-gradient(90deg, #fff 0 12px, var(--bg) 12px 14px); }
.look-head-preview { margin-bottom: 14px; }
.lhp { display: flex; align-items: center; gap: 12px; background: var(--head-grad); color: #fff; padding: 12px 14px; border-radius: 12px; }
.lhp > div { display: flex; flex-direction: column; }
.lhp small { opacity: .85; }
.lhp .brand-logo { background: #fff; padding: 3px; }
.sticky-save { position: sticky; bottom: 0; z-index: 5; display: flex; justify-content: flex-end; align-items: center; gap: 12px; padding: 12px 0; background: linear-gradient(transparent, var(--bg) 30%); }

/* ----- লেখা সংশোধন পেজ ----- */
.texts-top { display: flex; gap: 14px; align-items: flex-end; flex-wrap: wrap; justify-content: space-between; }
.texts-search { min-width: 240px; }
.t-group { border: 1px solid var(--line); border-radius: 10px; margin: 10px 0; background: var(--surface); }
.t-group summary { cursor: pointer; padding: 10px 14px; font-weight: 700; color: var(--brand-dark); }
.theme-dark .t-group summary { color: var(--ink); }
.t-list { padding: 4px 14px 12px; }
.t-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; align-items: center; padding: 6px 0; border-bottom: 1px dashed var(--line); }
.t-orig { font-size: 16px; }
.t-row input { padding: 7px 10px; }
.t-changed .t-orig { color: var(--muted); text-decoration: line-through; }
.t-changed input { border-color: var(--ok); background: var(--ok-soft); }
.t-dirty input { border-color: var(--warn); background: var(--warn-soft); }

/* ----- ডেভেলপার তথ্য সম্পাদনা ----- */
.people-edit { display: flex; flex-direction: column; gap: 12px; }
.pe-card { display: flex; gap: 16px; border: 1px solid var(--line); border-radius: 14px; padding: 14px; background: var(--bg); }
.pe-new { border-style: dashed; border-color: var(--brand); }
.pe-photo { display: flex; flex-direction: column; align-items: center; gap: 6px; width: 150px; flex: none; text-align: center; }
.pe-photo img, .pe-photo .about-ini { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; }
.pe-photo input[type=file] { font-size: 13px; width: 150px; }
.pe-fields { flex: 1; min-width: 0; }
.pe-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.pe-title { display: block; margin-bottom: 8px; color: var(--brand); }
.danger-text { color: var(--err); margin-top: 8px; }

@media (max-width: 980px) {
  body.menu-top .side, body.menu-compact .side { width: 260px; }
}
@media (max-width: 760px) {
  .head-inner { gap: 8px; }
  .info-btn { width: 30px; height: 30px; font-size: 16px; }
  .cal-head { margin: -14px -14px 12px; }
  .trk-step b { font-size: 12px; } .trk-step small { display: none; }
  .trk-dot { width: 32px; height: 32px; } .trk-step::before { top: 14px; }
  .t-row { grid-template-columns: 1fr; gap: 4px; }
  .pe-card { flex-direction: column; } .pe-photo { width: auto; }
  .fv-hd strong { flex-basis: 100%; }
  .fv-btn { height: 32px; padding: 0 8px; font-size: 13px; }
  .about-person img, .about-ini { width: 64px; height: 64px; font-size: 26px; }
  .perm-table td.pt-cell { display: flex !important; align-items: center; justify-content: space-between; text-align: left; }
}
@media print {
  .info-btn, .about-ov, .fv-ov, .gcal-ov, .sticky-save, .bn-tip { display: none !important; }
  .cal-head { background: none !important; }
}
.choice-box b, .pe-photo b, .t-orig b { color: inherit; }
.t-group[open] summary { border-bottom: 1px solid var(--line); }

/* "i" পপআপ: লেখা অনুযায়ী চওড়া, উপরে শুধু শিরোনাম */
.about-box { width: fit-content; min-width: min(340px, 100%); max-width: min(560px, 100%); }
.about-hd { padding: 14px 16px 14px 20px; }
.about-hd h2 { flex: 1; font-size: 22px; }
.about-person { padding: 12px 18px 12px 12px; }

/* ----- একাধিক প্রমাণপত্র ----- */
.file-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; margin-top: 8px; }
.file-card { border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: var(--surface); display: flex; flex-direction: column; }
.file-thumb { height: 130px; border: 0; padding: 0; background: #eef2f0; cursor: zoom-in; display: grid; place-items: center; overflow: hidden; }
.file-thumb img { width: 100%; height: 100%; object-fit: cover; }
.pdf-ic { width: 64px; height: 80px; border-radius: 6px; background: #dc2626; color: #fff; font: 800 18px/80px sans-serif; text-align: center; box-shadow: 0 4px 10px rgba(0,0,0,.2); }
.file-name { font-size: 13px; padding: 6px 8px 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.file-acts { display: flex; justify-content: flex-end; gap: 4px; padding: 6px 8px 8px; }
.file-acts a, .file-acts button { width: 32px; height: 30px; border-radius: 8px; border: 1px solid var(--line); background: var(--surface); display: grid; place-items: center; text-decoration: none; color: var(--ink); cursor: pointer; font-size: 14px; }
.file-list { display: flex; flex-direction: column; gap: 6px; }
.file-item { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.fv-pos { color: #fff; font-weight: 700; align-self: center; padding: 0 2px; }
.fv-btn.fv-nav { width: 36px; padding: 0; }

/* ----- প্রিন্ট: সাদা পাতা, লোগো, স্বাক্ষর ----- */
.print-sheet { background: #fff; color: #111; border: 1px solid var(--line); border-radius: 8px; padding: 22px 24px; }
.theme-dark .print-sheet { background: #fff; color: #111; }
.theme-dark .print-sheet .table td, .theme-dark .print-sheet .table th { color: #111; border-color: #ccc; }
.print-head { display: flex; align-items: center; justify-content: center; gap: 16px; text-align: center; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 2px solid #222; }
.print-head > div { display: flex; flex-direction: column; align-items: center; }
.print-logo { height: 72px; width: auto; max-width: 140px; object-fit: contain; }
.print-sheet .table th { background: #f1f1f1; color: #111; }
.sign-row { display: flex; justify-content: space-between; gap: 30px; margin-top: 46px; page-break-inside: avoid; break-inside: avoid; }
.sign-box { width: 42%; max-width: 280px; display: flex; flex-direction: column; text-align: center; line-height: 1.35; font-size: 15px; color: #111; }
.sign-box.sign-empty { visibility: hidden; }
.sign-space { height: 70px; position: relative; display: flex; align-items: flex-end; justify-content: center; }
.sign-img { max-height: 64px; max-width: 200px; object-fit: contain; position: relative; z-index: 2; }
.sign-seal { position: absolute; right: 0; bottom: -6px; max-height: 70px; max-width: 90px; opacity: .85; z-index: 1; }
.sign-line { border-top: 1.5px solid #111; margin: 4px 0 4px; }
.sign-label { color: #555; font-size: 13px; }
.sign-box strong { font-size: 16px; }
.sign-up { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; border: 1px dashed var(--line); border-radius: 10px; padding: 10px; }
.sign-prev { height: 54px; max-width: 160px; object-fit: contain; background: #fff; border-radius: 6px; padding: 3px; border: 1px solid var(--line); }
.sign-sample .sign-row { margin-top: 10px; }
@media print {
  html, body, .admin-main, .admin-body, .main { background: #fff !important; }
  body.card-glass { background: #fff !important; }
  .print-sheet { border: 0 !important; padding: 0 !important; }
  .print-head { border-bottom-color: #000; }
  .print-logo { height: 64px; }
  .sign-row { margin-top: 56px; }
}

/* ----- সংস্করণ ৩: "i" পপআপের প্রস্থ, ক্যালেন্ডারের তীর, প্রোগ্রাম তালিকার দিনের প্যানেল ----- */
.about-box { width: max-content; max-width: min(92vw, 640px); min-width: min(320px, 92vw); }
.about-box.about-fixed { width: var(--about-w); max-width: 94vw; }
.about-person > div { min-width: 0; }
.cal-head { display: flex; align-items: center; gap: 8px; }
.cal-head h2 { flex: 1; text-align: center; }
.cal-nav { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 12px; border-radius: 12px; background: rgba(255,255,255,.18); color: #fff; text-decoration: none; font-weight: 700; font-size: 16px; white-space: nowrap; }
.cal-nav:hover { background: rgba(255,255,255,.3); }
.cal-arrow { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: #fff; color: var(--brand-dark); font-size: 11px; line-height: 1; }
@media (max-width: 760px) { .cal-nav { padding: 0 8px; } .cal-nav-t { display: none; } .cal-arrow { width: 30px; height: 30px; font-size: 13px; } }

.sched-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 18px; align-items: start; }
.mini-cal-box .cal { gap: 4px; }
.mini-cal-box .cal-cell { min-height: 44px; padding: 4px; align-items: center; justify-content: center; }
.mini-cal-box .cal-num { font-size: 16px; }
.mini-cal-box .cal-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); }
.day-list { list-style: none; margin: 0; padding: 0; }
.day-list li { display: flex; gap: 12px; padding: 12px; border: 1px solid var(--line); border-left: 5px solid var(--brand); border-radius: 12px; margin-bottom: 10px; background: var(--surface); }
.day-list .dl-no { width: 34px; height: 34px; border-radius: 50%; background: var(--brand-soft); color: var(--brand-dark); display: grid; place-items: center; font-weight: 800; flex: none; }
.day-list .dl-time { font-weight: 700; color: var(--brand-dark); }
.day-list small { display: block; color: var(--muted); }
.day-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.day-nav { display: flex; gap: 6px; }
@media (max-width: 860px) { .sched-grid { grid-template-columns: 1fr; } }
@media print { .sched-grid { display: block; } .no-print-day { display: none !important; } }
.only-narrow { display: none; }
@media (max-width: 860px) { .only-wide { display: none; } .only-narrow { display: inline; } }
.mini-cal-box .cal-cell { flex-direction: column; gap: 3px; }
.mini-cal-box .cal-head h2 { font-size: 20px; }

/* "i" বক্স: মানুষের নাম/পদবির লেখা অনুযায়ী চওড়া; ভূমিকার লম্বা লেখা বক্সকে চওড়া করবে না */
.about-intro, .about-note { width: 0; min-width: 100%; }

/* =====================================================================
   প্রিন্ট / PDF — A4 পাতা ও নকশা সাজানো
   ===================================================================== */
.pr-ctl form { display: flex; flex-direction: column; gap: 12px; }
.pr-modes { display: flex; flex-wrap: wrap; gap: 6px; }
.pr-mode input { position: absolute; opacity: 0; }
.pr-mode span { display: inline-block; padding: 7px 14px; border-radius: 99px; border: 1.5px solid var(--line); background: var(--surface); cursor: pointer; font-weight: 600; font-size: 15px; }
.pr-mode input:checked + span { background: var(--brand); border-color: var(--brand); color: #fff; }
.pr-mode input:focus-visible + span { outline: 2px solid var(--brand); }
.pr-fields .pr-f { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.pr-fields .pr-f > label { min-width: 170px; flex: 0 1 220px; }
.pr-mgrid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; flex-basis: 100%; }
.pr-mchk input { position: absolute; opacity: 0; }
.pr-mchk span { display: block; text-align: center; padding: 7px 4px; border: 1.5px solid var(--line); border-radius: 9px; cursor: pointer; font-size: 15px; background: var(--surface); }
.pr-mchk input:checked + span { background: var(--brand-soft); border-color: var(--brand); color: var(--brand-dark); font-weight: 700; }
.pr-opts { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; }
.pr-opts > label:first-child { min-width: 170px; }
.pr-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--line); }
.btn.on { background: var(--brand-soft); border-color: var(--brand); color: var(--brand-dark); }
.ok-text { color: var(--ok); }

.pd-panel { position: sticky; top: 64px; z-index: 15; }
.pd-panel-top { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: baseline; margin-bottom: 8px; }
.pd-tools { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; }
.pd-sel { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; flex: 1 1 360px; }
.pd-sel input[type=text] { flex: 1 1 220px; padding: 6px 10px; }
.pd-gen { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.pd-gen label { font-size: 14px; }
.pd-logo-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; margin-top: 10px; }

.sheets { display: flex; flex-direction: column; align-items: center; gap: 18px; padding: 4px 0 30px; }
.sheet-wrap { position: relative; flex: none; }
.sheet { position: absolute; left: 0; top: 0; transform-origin: 0 0; background: #fff; color: #000; box-shadow: 0 6px 24px rgba(0,0,0,.18); overflow: hidden;
  font-family: var(--font); line-height: 1.4; }
.sh-in { position: absolute; display: flex; flex-direction: column; }
.sh-head { position: relative; flex: none; border-bottom: 2px solid #000; }
.pel { position: absolute; color: #000; line-height: 1.3; white-space: pre-wrap; }
.pel-logo img { width: 100%; height: auto; display: block; }
.pel-nologo { border: 1.5px dashed #999; display: grid; place-items: center; font-size: 12px; color: #777; }
.sh-head-edit { outline: 1px dashed #93c5fd; background: repeating-linear-gradient(0deg, transparent 0 19px, rgba(59,130,246,.06) 19px 20px); }
.pel-edit { cursor: move; outline: 1px dashed rgba(37,99,235,.55); touch-action: none; user-select: none; }
.pel-edit:hover { outline-color: #2563eb; }
.pel-sel { outline: 2px solid #2563eb; background: rgba(37,99,235,.06); z-index: 2; }
.pel-hidden { opacity: .35; }
.pel-rs { position: absolute; right: -8px; bottom: -10px; width: 18px; height: 18px; font-style: normal; font-size: 14px; line-height: 18px; text-align: center; color: #2563eb; cursor: nwse-resize; background: #fff; border-radius: 4px; box-shadow: 0 0 0 1px #2563eb; }
.sh-body { flex: none; margin-top: 10px; overflow: hidden; }
.sh-foot { position: absolute; left: 0; right: 0; bottom: 0; min-height: 22px; border-top-width: 1px; display: flex; justify-content: space-between; align-items: center; gap: 10px; font-size: 11.5px; color: #333; border-top: 1px solid #999; padding-top: 3px; }
.sh-foot .pg { font-weight: 700; white-space: nowrap; }
.pt-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 13px; }
.pt-table th, .pt-table td { border: 1px solid #333; padding: 4px 6px; text-align: center; vertical-align: middle; word-wrap: break-word; color: #000; }
.pt-table th { background: #f1f1f1; font-weight: 700; }
.land .pt-table { font-size: 13.5px; }
.pt-group td { background: #f7f7f7; font-weight: 700; text-align: center; }
.pt-empty td { text-align: center; padding: 18px; color: #555; }
.sheet .sign-row { margin-top: 56px; }
.sheet .sign-box { color: #000; }
.pdf-off { position: fixed; left: -100000px; top: 0; width: 1200px; }
.pdf-off .sheet { position: relative; box-shadow: none; }

@media (max-width: 760px) {
  .pr-mgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pr-fields .pr-f > label { flex: 1 1 140px; }
  .pd-panel { position: static; }
}
@media print {
  body.printing-sheets { background: #fff !important; }
  body.printing-sheets .side, body.printing-sheets .admin-top, body.printing-sheets .admin-foot, body.printing-sheets .no-print,
  body.printing-sheets .alert, body.printing-sheets .side-backdrop { display: none !important; }
  body.printing-sheets .admin-main, body.printing-sheets .admin-body { padding: 0 !important; margin: 0 !important; display: block !important; }
  body.printing-sheets .sheets { display: block !important; padding: 0 !important; gap: 0 !important; }
  body.printing-sheets .sheet-wrap { width: auto !important; height: auto !important; page-break-after: always; break-after: page; }
  body.printing-sheets .sheet-wrap:last-child { page-break-after: auto; break-after: auto; }
  body.printing-sheets .sheet { position: relative !important; transform: none !important; box-shadow: none !important; }
  body.printing-sheets .pt-table th, body.printing-sheets .pt-group td { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* ----- সেই দিনের বুকিং/অপেক্ষমাণ (আবেদন ফর্মে) ----- */
.day-info { border: 1px solid var(--line); border-left: 4px solid var(--brand); border-radius: 10px; padding: 10px 14px; background: var(--brand-soft); font-size: 16px; }
.day-info p { margin: 6px 0 2px; font-weight: 600; }
.day-info ul { margin: 0; padding-left: 18px; }
.day-info li { margin: 4px 0; }
.day-info li em { display: block; font-style: normal; font-size: 14px; }
.day-info li.appr.hit { color: var(--err); } .day-info li.appr.hit em { color: var(--err); font-weight: 700; }
.day-info li.pend.hit em { color: var(--warn); font-weight: 600; }
.day-info .badge { font-size: 12px; padding: 1px 8px; vertical-align: middle; }
.ok-text { color: var(--ok); }
.same-day { list-style: none; margin: 0; padding: 0; }
.same-day li { padding: 8px 0; border-bottom: 1px dashed var(--line); display: flex; flex-direction: column; }
.same-day li small { color: var(--muted); }
.same-day li em { font-style: normal; font-size: 14px; color: var(--warn); font-weight: 700; }
.same-day li.hit { border-left: 3px solid var(--warn); padding-left: 8px; }
.pend-list .badge-pending { margin-top: 4px; font-size: 13px; }
.room-chip { display: inline-block; background: var(--brand-soft); color: var(--brand-dark); border-radius: 99px; padding: 0 9px; font-size: 13px; font-weight: 700; }
.room-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 16px; }
.room-tabs a { display: inline-flex; flex-direction: column; padding: 8px 16px; border-radius: 12px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); text-decoration: none; font-weight: 700; line-height: 1.3; }
.room-tabs a small { font-weight: 400; color: var(--muted); font-size: 13px; }
.room-tabs a.on { background: var(--brand); border-color: var(--brand); color: #fff; }
.room-tabs a.on small { color: rgba(255,255,255,.85); }

/* ----- অনুমোদনের ধারার অ্যানিমেশন (step-*) ----- */
.step-pulse .trk-step.cur .trk-dot::before, .step-pulse .trk-step.cur .trk-dot::after,
.step-spin .trk-step.cur .trk-dot::after, .step-bounce .trk-step.cur .trk-dot::before, .step-bounce .trk-step.cur .trk-dot::after,
.step-glow .trk-step.cur .trk-dot::before, .step-glow .trk-step.cur .trk-dot::after,
.step-flow .trk-step.cur .trk-dot::before, .step-flow .trk-step.cur .trk-dot::after,
.step-none .trk-step.cur .trk-dot::before, .step-none .trk-step.cur .trk-dot::after { display: none; }
.step-pulse .trk-step.cur .trk-dot { animation: sPulse 1.3s ease-in-out infinite; }
@keyframes sPulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.18); } }
.step-spin .trk-step.cur .trk-dot::before { display: block; inset: -6px; border: 3px solid transparent; border-top-color: #f59e0b; border-right-color: #f59e0b; animation: sSpin 1s linear infinite; opacity: 1; }
@keyframes sSpin { to { transform: rotate(360deg); } }
.step-bounce .trk-step.cur .trk-dot { animation: sBounce 1.1s ease-in-out infinite; }
@keyframes sBounce { 0%, 100% { transform: translateY(0); } 40% { transform: translateY(-8px); } 60% { transform: translateY(-3px); } }
.step-glow .trk-step.cur .trk-dot { animation: sGlow 1.6s ease-in-out infinite; }
@keyframes sGlow { 0%, 100% { box-shadow: 0 0 0 4px #fef3c7, 0 0 0 0 rgba(245,158,11,.0); } 50% { box-shadow: 0 0 0 4px #fef3c7, 0 0 18px 8px rgba(245,158,11,.55); } }
.step-flow .trk-step.cur::before { background: linear-gradient(90deg, var(--ok) 0%, var(--ok) 35%, #fde68a 50%, var(--ok) 65%, var(--ok) 100%); background-size: 200% 100%; animation: sFlow 1.4s linear infinite; }
@keyframes sFlow { from { background-position: 100% 0; } to { background-position: -100% 0; } }
.mini-trk { display: flex; width: 100%; margin: 6px 0 4px; }
.mini-trk .trk-step::before { top: 13px; }
.mini-trk .trk-dot { width: 30px; height: 30px; font-size: 14px; }

/* ----- হালকা রঙের থিম ----- */
body.theme-white    { --brand: #2563eb; --brand-dark: #1e3a8a; --brand-soft: #eef4ff; --accent: #f59e0b; --bg: #ffffff; --surface: #ffffff; --line: #e5e7eb; --side-bg: #ffffff; --side-ink: #334155; --foot-bg: #f8fafc; }
body.theme-sky      { --brand: #0284c7; --brand-dark: #075985; --brand-soft: #e0f2fe; --accent: #f97316; --bg: #f0f9ff; --line: #d6ebf7; --side-bg: #ffffff; --side-ink: #0c4a6e; --foot-bg: #e0f2fe; }
body.theme-mint     { --brand: #059669; --brand-dark: #065f46; --brand-soft: #dcfce7; --accent: #f59e0b; --bg: #f0fdf4; --line: #d1f0dc; --side-bg: #ffffff; --side-ink: #064e3b; --foot-bg: #dcfce7; }
body.theme-peach    { --brand: #ea580c; --brand-dark: #9a3412; --brand-soft: #ffedd5; --accent: #0891b2; --bg: #fff7ed; --line: #fbe3cc; --side-bg: #ffffff; --side-ink: #7c2d12; --foot-bg: #ffedd5; }
body.theme-lavender { --brand: #7c3aed; --brand-dark: #5b21b6; --brand-soft: #ede9fe; --accent: #db2777; --bg: #f5f3ff; --line: #e4defa; --side-bg: #ffffff; --side-ink: #4c1d95; --foot-bg: #ede9fe; }
body.theme-glass    { --brand: #0a84ff; --brand-dark: #0040dd; --brand-soft: rgba(10,132,255,.12); --accent: #ff9f0a; --ink: #1c1c1e; --muted: #6b6b70;
  --surface: rgba(255,255,255,.62); --line: rgba(255,255,255,.75); --side-bg: rgba(255,255,255,.55); --side-ink: #1c1c1e; --foot-bg: rgba(255,255,255,.5);
  --ok: #34c759; --warn: #ff9500; --err: #ff3b30; --shadow: 0 8px 32px rgba(31,38,135,.10);
  background: radial-gradient(1200px 700px at 8% -10%, #c7e3ff 0%, transparent 55%), radial-gradient(900px 600px at 105% 10%, #ffd6ec 0%, transparent 55%),
              radial-gradient(900px 700px at 50% 110%, #d9f7e8 0%, transparent 60%), #f4f6fb; background-attachment: fixed; }
/* হালকা থিমে হেডার/মেনু সাদা কাচের মতো, লেখা গাঢ় */
body.theme-white, body.theme-sky, body.theme-mint, body.theme-peach, body.theme-lavender, body.theme-glass, body.theme-rose, body.theme-sand, body.theme-cream {
  --head-grad: linear-gradient(180deg, rgba(255,255,255,.88), rgba(255,255,255,.78)); }
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .site-head { color: var(--ink); border-bottom: 1px solid var(--line); backdrop-filter: saturate(180%) blur(20px); -webkit-backdrop-filter: saturate(180%) blur(20px); }
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .site-head .brand,
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .site-nav a { color: var(--ink); }
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .site-nav a.on,
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .site-nav a:hover { background: var(--brand-soft); color: var(--brand-dark); }
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .site-nav .nav-admin { border-color: var(--line); }
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .site-head .info-btn,
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .nav-toggle { color: var(--brand); border-color: var(--brand); background: transparent; }
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .brand-mark { background: var(--brand); color: #fff; }
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .site-foot { color: var(--muted); border-top: 1px solid var(--line); }
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .side { border-right: 1px solid var(--line); }
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .side-brand { border-bottom-color: var(--line); }
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .side-brand strong,
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .side-user strong { color: var(--ink); }
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .side-nav a:hover { background: var(--brand-soft); color: var(--brand-dark); }
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .side-nav a.on { color: #fff; }
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .side-user { border-top-color: var(--line); }
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .side-user .btn-ghost { color: var(--ink); border-color: var(--line); }
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .cal-head { background: var(--brand-soft); }
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .cal-head h2 { color: var(--brand-dark); }
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .cal-head .cal-nav { color: var(--brand-dark); }
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .about-hd,
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .gcal-nav,
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .fv-hd { background: linear-gradient(135deg, var(--brand-dark), var(--brand)); }
body.theme-glass .side, body.theme-glass .admin-top { backdrop-filter: saturate(180%) blur(22px); -webkit-backdrop-filter: saturate(180%) blur(22px); }
body.theme-glass .admin-top { background: rgba(255,255,255,.6); }
body.theme-glass .card, body.theme-glass .stat, body.theme-glass .room-tabs a, body.theme-glass .t-group, body.theme-glass .choice-box {
  backdrop-filter: saturate(180%) blur(20px); -webkit-backdrop-filter: saturate(180%) blur(20px); border-radius: 20px; }
body.theme-glass .card { border: 1px solid rgba(255,255,255,.8); box-shadow: 0 8px 32px rgba(31,38,135,.10), inset 0 1px 0 rgba(255,255,255,.9); }
body.theme-glass input, body.theme-glass select, body.theme-glass textarea { background: rgba(255,255,255,.75); border-color: rgba(60,60,67,.18); border-radius: 12px; }
body.theme-glass .btn { border-radius: 12px; }
body.theme-glass .table th { background: rgba(10,132,255,.08); }
body.theme-glass .cal-cell { background: rgba(255,255,255,.55); border-color: rgba(255,255,255,.8); }
body.theme-glass .cal-cell.busy { background: rgba(255,159,10,.14); }
body.theme-glass .about-box, body.theme-glass .gcal, body.theme-glass .fv { background: rgba(255,255,255,.85); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); }
@media (max-width: 760px) {
  body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .site-nav { background: var(--surface); border-bottom: 1px solid var(--line); }
}

/* ===== প্রিন্ট পাতা: যেকোনোভাবে প্রিন্ট করলেও (বোতাম, Ctrl+P, মোবাইলের মেনু) ঠিক A4 পাতা ===== */
.pt-table td.nw, .pt-table th { white-space: nowrap; }
.pt-table td { overflow-wrap: break-word; word-break: normal; }
@media print {
  body.has-sheets { background: #fff !important; display: block !important; }
  body.has-sheets .side, body.has-sheets .admin-top, body.has-sheets .admin-foot, body.has-sheets .no-print,
  body.has-sheets .alert, body.has-sheets .side-backdrop, body.has-sheets .about-ov, body.has-sheets .flash { display: none !important; }
  body.has-sheets .admin-main, body.has-sheets .admin-body { padding: 0 !important; margin: 0 !important; display: block !important; min-height: 0 !important; }
  body.has-sheets .sheets { display: block !important; padding: 0 !important; gap: 0 !important; }
  body.has-sheets .sheet-wrap { width: auto !important; height: auto !important; page-break-after: always; break-after: page; overflow: hidden; }
  body.has-sheets .sheet-wrap:last-child { page-break-after: auto; break-after: auto; }
  body.has-sheets .sheet { position: relative !important; transform: none !important; box-shadow: none !important;
    width: 210mm !important; height: 296.4mm !important; }
  body.has-sheets .sheet.land { width: 297mm !important; height: 209.4mm !important; }
  /* নকশা সাজানোর দাগ প্রিন্টে আসবে না */
  body.has-sheets .sh-head-edit { outline: none !important; background: none !important; }
  body.has-sheets .pel-edit, body.has-sheets .pel-sel { outline: none !important; background: none !important; }
  body.has-sheets .pel-rs, body.has-sheets .pel-nologo, body.has-sheets .pel-hidden { display: none !important; }
  body.has-sheets .pt-table th, body.has-sheets .pt-group td { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* ----- প্রিন্ট: বিশ্ববিদ্যালয়ের লোগো ----- */
.uni-logo { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 14px; padding: 12px 14px; border: 1px dashed var(--brand); border-radius: 12px; background: var(--brand-soft); }
.uni-logo-img { width: 64px; height: 64px; border-radius: 10px; background: #fff; border: 1px solid var(--line); display: grid; place-items: center; overflow: hidden; flex: none; text-align: center; }
.uni-logo-img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.uni-logo-txt { display: flex; flex-direction: column; flex: 1 1 220px; min-width: 0; }
.uni-logo-pick { cursor: pointer; }
.t-special textarea { width: 100%; }
.pr-ctl form.uni-logo { flex-direction: row; align-items: center; gap: 14px; }
.pr-ctl form.uni-logo > * { flex-grow: 0; }
.pr-ctl form.uni-logo .uni-logo-txt { flex: 1 1 220px; }

/* ----- প্রিন্ট: দাগের নিচের লাইন ----- */
.sh-sub { flex: none; color: #000; line-height: 1.35; padding: 6px 0 0; white-space: pre-wrap; }
.sh-sub.sub-edit { cursor: pointer; }
.pd-ph { display: block; flex-basis: 100%; }
@media print {
  body.has-sheets .site-head, body.has-sheets .site-foot, body.has-sheets .room-tabs { display: none !important; }
  body.has-sheets main.main { padding: 0 !important; margin: 0 !important; max-width: none !important; width: auto !important; }
}
.pub-pr .pr-actions { margin-top: 0; }

/* ----- ছোট পর্দা (iPhone/Android): কোনো অংশ যেন পাশে বেরিয়ে না যায় ----- */
fieldset { min-width: 0; }
img, video, canvas { max-width: 100%; }
input, select, textarea { max-width: 100%; }

/* ----- আরও রঙের সমন্বয় ----- */
body.theme-navygold { --brand: #1d4ed8; --brand-dark: #0f1f4b; --brand-soft: #e8edfb; --accent: #d4a017; --side-bg: #0b1736; --side-ink: #d5dcf0; --foot-bg: #0b1736; --bg: #f3f5fa; --line: #dce2ef;
  --head-grad: linear-gradient(135deg, #0f1f4b, #1d4ed8 70%, #b8860b); }
body.theme-greengold { --brand: #15803d; --brand-dark: #064e3b; --brand-soft: #e6f4ea; --accent: #ca8a04; --side-bg: #062e22; --side-ink: #d3eadf; --foot-bg: #062e22; --bg: #f4f7f2;
  --head-grad: linear-gradient(135deg, #064e3b, #15803d 65%, #a16207); }
body.theme-orange { --brand: #ea580c; --brand-dark: #9a3412; --brand-soft: #fdeee4; --accent: #0e7490; --side-bg: #2b140a; --side-ink: #f3dccf; --foot-bg: #2b140a; --bg: #fbf6f2; --line: #f0e0d5; }
body.theme-indigo { --brand: #4f46e5; --brand-dark: #312e81; --brand-soft: #eceafd; --accent: #f43f5e; --side-bg: #1a1847; --side-ink: #d9d7f7; --foot-bg: #1a1847; --bg: #f5f5fc; --line: #e0dff4;
  --head-grad: linear-gradient(135deg, #312e81, #4f46e5 60%, #7c3aed); }
body.theme-cyan { --brand: #0891b2; --brand-dark: #155e75; --brand-soft: #e2f5f9; --accent: #f97316; --side-bg: #0a2a33; --side-ink: #cbe9f0; --foot-bg: #0a2a33; --bg: #f1f8fa; --line: #d7ebf0; }
body.theme-slate { --brand: #475569; --brand-dark: #1e293b; --brand-soft: #eef1f5; --accent: #0ea5e9; --side-bg: #0f172a; --side-ink: #cbd5e1; --foot-bg: #0f172a; --bg: #f5f7fa; --line: #e2e8f0; }
body.theme-olive { --brand: #65a30d; --brand-dark: #3f6212; --brand-soft: #eef6e1; --accent: #b45309; --side-bg: #1f2a0b; --side-ink: #e0ebcc; --foot-bg: #1f2a0b; --bg: #f6f8f1; --line: #e2ead3; }
body.theme-sunset { --brand: #db2777; --brand-dark: #831843; --brand-soft: #fce7f3; --accent: #f59e0b; --side-bg: #2d0a1d; --side-ink: #f5d3e4; --foot-bg: #2d0a1d; --bg: #fdf5f9; --line: #f3dbe7;
  --head-grad: linear-gradient(135deg, #831843, #db2777 55%, #f59e0b); }
body.theme-rose  { --brand: #e11d48; --brand-dark: #9f1239; --brand-soft: #ffe4e6; --accent: #0d9488; --bg: #fff5f6; --line: #fbd9de; --side-bg: #ffffff; --side-ink: #881337; --foot-bg: #ffe4e6; }
body.theme-sand  { --brand: #b45309; --brand-dark: #78350f; --brand-soft: #fef3c7; --accent: #0f766e; --bg: #fdfaf3; --line: #efe4cc; --side-bg: #ffffff; --side-ink: #713f12; --foot-bg: #fef3c7; }
body.theme-cream { --brand: #0f766e; --brand-dark: #134e4a; --brand-soft: #e6f4f1; --accent: #c2410c; --bg: #fffdf7; --line: #ece6d6; --side-bg: #fffaf0; --side-ink: #134e4a; --foot-bg: #fbf3e2; }
/* ----- মোবাইল হেডার: নাম দুই লাইনে, লোগো ছোট; মেনু পুরো ঢাকা (স্বচ্ছ নয়) ----- */
@media (max-width: 760px) {
  .head-inner { min-height: 62px; padding-top: 6px; padding-bottom: 6px; }
  .brand { min-width: 0; gap: 9px; }
  .site-head .brand-logo { height: 42px; max-height: 42px; max-width: 120px; }
  .brand-text { min-width: 0; line-height: 1.22; }
  .brand-text strong { font-size: 17px; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .brand-text small { display: block; font-size: 13.5px; opacity: .9; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .site-nav { top: 100%; background: var(--brand-dark); box-shadow: 0 14px 30px rgba(0,0,0,.22); z-index: 30;
    max-height: calc(100dvh - 80px); overflow-y: auto; border-radius: 0 0 14px 14px; }
  .site-nav a { padding: 11px 14px; font-size: 18px; }
  body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .site-nav {
    background: #ffffff; border-bottom: 1px solid var(--line); backdrop-filter: none; -webkit-backdrop-filter: none; }
  body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .site-nav a { color: #1c1c1e; border-bottom: 1px solid #eef0f3; border-radius: 0; }
  body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .site-nav a.on { background: var(--brand-soft); color: var(--brand-dark); font-weight: 700; }
  body.theme-glass .site-head { background: rgba(255,255,255,.96); }
}
/* অ্যাডমিন বাম মেনু মোবাইল/ট্যাবে খুললে পুরো ঢাকা (স্বচ্ছ নয়) */
@media (max-width: 980px) {
  body.theme-glass .side { background: #ffffff; backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: 8px 0 30px rgba(0,0,0,.18); }
}

/* ----- প্রিন্ট: ফুটার, টেবিল, দুই লাইনের লেখা ----- */
.sh-foot .ft-t { white-space: pre-wrap; line-height: 1.3; }
.sh-foot.sub-edit { cursor: pointer; }
.pt-table.no-shade th, .pt-table.no-shade .pt-group td { background: #fff; }
.pt-table th, .pt-table td { text-align: center !important; vertical-align: middle; }
.pd-sel textarea { flex: 1 1 260px; min-height: 58px; padding: 6px 10px; font-family: var(--font); font-size: 16px; resize: vertical; }
.pd-gen select { padding: 4px 8px; }
.pd-gen .btn-row { display: inline-flex; align-items: center; gap: 4px; font-size: 14px; }
/* iPhone/iPad-এর প্রিন্ট */
@media print {
  body.r501-ios.has-sheets .sheet-wrap { overflow: hidden; }
  /* নিচের সাদা কিনারা থেকে সামান্য বাদ (ফুটার ঠিক থাকে) — Safari-র গোলমেলে হিসাবে বাড়তি ফাঁকা পাতা আসে না */
  body.r501-ios.has-sheets .sheet { height: 293mm !important; }
  body.r501-ios.has-sheets .sheet.land { height: 206mm !important; }
  /* নতুন iPhone (iOS ১৮+) পুরো A4 পাতায় কিনারা ছাড়া প্রিন্ট করে — তাই পাতা ছোট করা হয় না, ফুটার একদম নিচে থাকে।
     শুধু পুরোনো iOS-এ (নিজের কিনারা দেয়) পাতা সামান্য ছোট — লেখা বড় লাগলে .94 কমান, ছোট লাগলে বাড়ান */
  body.r501-ios.has-sheets .sheet { zoom: .9; }   /* Safari-র মেনু থেকে সরাসরি প্রিন্ট করলে (প্রিন্ট বোতাম ঠিক A4 PDF খোলে) */
}

/* ----- ভাষা: বাংলা | English ----- */
.lang-sw { display: inline-flex; align-items: center; border: 1px solid currentColor; border-radius: 999px; overflow: hidden; flex: none; font-size: 14px; line-height: 1; opacity: .95; }
.lang-sw a { padding: 6px 10px; color: inherit; text-decoration: none; white-space: nowrap; }
.lang-sw a[lang=en] { font-family: Arial, Helvetica, sans-serif; font-size: 13px; }
.lang-sw a.on { background: rgba(255,255,255,.92); color: var(--brand-dark); font-weight: 700; }
.site-head .lang-sw { margin-left: auto; margin-right: 8px; color: #fff; }
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .site-head .lang-sw { color: var(--brand); }
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .site-head .lang-sw a.on { background: var(--brand); color: #fff; }
.admin-top .lang-sw { color: var(--brand); margin-left: 8px; }
.admin-top .lang-sw a.on, .login-card .lang-sw a.on { background: var(--brand); color: #fff; }
.login-card .lang-sw { color: var(--brand); align-self: center; margin-top: 4px; }
@media (max-width: 760px) { .lang-sw { font-size: 13px; } .lang-sw a { padding: 6px 8px; } .site-head .lang-sw { margin-right: 6px; } }
@media print { .lang-sw { display: none !important; } }
html[lang=en] body { word-spacing: normal; }

/* লেখা সংশোধন: মূল | বাংলা | English */
.t-row.t-row3 { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, 1fr); }
.t-row input.t-en { font-family: Arial, Helvetica, sans-serif; font-size: 14.5px; }
.t-row input.t-en-changed { border-color: var(--accent); }
@media (max-width: 760px) { .t-row.t-row3 { grid-template-columns: 1fr; } }

/* ইংরেজি ভার্সন: ইংরেজি অক্ষর ও সংখ্যা ইংরেজি ফন্টে (NikoshBAN ইংরেজি সংখ্যাকেও বাংলা আকারে দেখায়); বাংলা লেখা NikoshBAN-এই */
html[lang=en] { --font: 'R501 Latin', 'Segoe UI', Roboto, Arial, 'R501 Nikosh', 'NikoshBAN', 'Nikosh', 'Noto Sans Bengali', sans-serif; }
html[lang=en] body { font-size: 15.5px; }
/* ইংরেজি প্রিন্ট/PDF: ইংরেজি অক্ষর-সংখ্যা কখনো NikoshBAN-এ যাবে না (ওই ফন্ট ইংরেজি সংখ্যাকে বাংলা আকারে দেখায়) */
.sheets[lang=en] .sheet, .pdf-off[lang=en] .sheet { font-family: 'R501 Latin', 'Segoe UI', Roboto, Arial, 'R501 Nikosh', 'NikoshBAN', sans-serif; }
.pdf-off[lang=bn] .sheet { font-family: 'R501 Nikosh', 'NikoshBAN', 'Nikosh', 'Noto Sans Bengali', sans-serif; }
.sheets[lang=bn] .sheet { font-family: 'R501 Nikosh', 'NikoshBAN', 'Nikosh', 'Noto Sans Bengali', sans-serif; }
@media (max-width: 760px) {
  .table td br + small::before, .table td br + span::before { content: ' '; }   /* কার্ডে তারিখ ও সময়ের মাঝে ফাঁক */
}

/* ----- পাবলিক মেনু: পিসিতে এক লাইনে; জায়গা কম হলে নিজে থেকে দুই লাইনে ----- */
@media (min-width: 761px) {
  .head-inner { flex-wrap: wrap; row-gap: 6px; padding-top: 6px; padding-bottom: 6px; }
  .site-head .brand { flex: 1 1 260px; min-width: 0; }
  .site-head .brand-text { min-width: 0; }
  .site-nav { flex-wrap: nowrap; gap: 2px; margin-left: auto; }
  .site-nav a { white-space: nowrap; padding: 8px 11px; }
  .site-head .lang-sw { margin-left: 0; }
}
@media (min-width: 761px) and (max-width: 1100px) {
  .site-nav { flex-wrap: wrap; justify-content: flex-end; }   /* ছোট পর্দায় মেনু দুই লাইনে */
}
/* ইংরেজি লেখার ঘর ইংরেজি ফন্টে (সংখ্যাও ইংরেজি আকারে) */
input[lang=en], textarea[lang=en], .en-set input, .en-set textarea { font-family: 'R501 Latin', Arial, Helvetica, sans-serif; }
.en-logo-row { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }

/* ----- বাছাই-তালিকা (বিভাগ/দপ্তর, পদবি) ----- */
.combo { position: relative; display: block; }
.combo > input { width: 100%; padding-right: 40px; }
.combo-btn { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); width: 34px; height: 34px; border: 0; background: transparent; color: var(--muted); font-size: 18px; cursor: pointer; border-radius: 8px; }
.combo.open .combo-btn { color: var(--brand); }
.combo-list { position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 60; max-height: min(300px, 50vh); overflow-y: auto; -webkit-overflow-scrolling: touch;
  background: #fff; color: #111; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 14px 34px rgba(0,0,0,.16); padding: 4px 0; font-weight: 400; }
.combo-hint { font-size: 12.5px; color: var(--muted); padding: 4px 12px 6px; border-bottom: 1px dashed var(--line); }
.combo-sec { position: relative; }
.combo-grp { position: sticky; top: 0; z-index: 1; background: var(--brand-soft); background-image: linear-gradient(var(--brand-soft), var(--brand-soft)); background-color: #fff; color: var(--brand-dark); font-weight: 700; font-size: 13.5px; padding: 5px 12px; border-bottom: 1px solid var(--line); }
.combo-it { padding: 9px 12px; font-size: 16px; cursor: pointer; line-height: 1.35; }
.combo-it:hover, .combo-it.act { background: var(--brand-soft); }
.combo-it.sel { font-weight: 700; color: var(--brand-dark); }
.combo-none { padding: 10px 12px; color: var(--muted); font-size: 14px; }

/* ----- ইমেইল নোটিফিকেশন ----- */
.choice-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; margin: 10px 0; }
.choice-row .choice-box { display: flex; flex-direction: column; gap: 2px; }
.choice-row .choice-box small { color: var(--muted); font-weight: 400; }
.mail-tpl-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; padding: 6px 14px 14px; }
.mail-tpl h4 { margin: 4px 0 6px; }
.mail-tpl label { display: block; margin-bottom: 8px; }
.mail-tpl input, .mail-tpl textarea { width: 100%; }
.mail-tpl textarea { font-size: 15px; line-height: 1.5; }
.mail-tpl[lang=en] input, .mail-tpl[lang=en] textarea { font-family: 'R501 Latin', Arial, sans-serif; }
.mail-ev summary label { cursor: pointer; }
.mail-help { margin-top: 10px; }
.mail-help ul { margin: 6px 0; padding-left: 20px; }
.mail-help li { margin-bottom: 4px; }
.form-inline-wrap { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.form-inline-wrap label { flex: 1 1 200px; }
.mail-log { list-style: none; padding: 0; margin: 12px 0 0; font-size: 14px; }
.mail-log li { padding: 6px 0; border-top: 1px dashed var(--line); }
.mail-log li.ok b { color: var(--ok, #16a34a); } .mail-log li.fail b { color: var(--err, #dc2626); }
.list-edit { display: block; flex: 1 1 260px; }
.list-edit textarea { width: 100%; font-size: 15px; }
#lists { display: flex; flex-wrap: wrap; gap: 12px; }
#lists legend, #lists > p { flex-basis: 100%; }

/* প্রথম পাতার ডান পাশের দিনের অংশের উপরের শিরোনাম */
.day-kicker { margin: -2px 0 4px; font-size: 15px; font-weight: 700; color: var(--brand); letter-spacing: .2px; text-transform: none; }
.day-kicker::before { content: '▸ '; opacity: .7; }
.pr-lang { color: var(--brand); }
.pr-lang a.on { background: var(--brand); color: #fff; }
.pend-files { background: #ecfdf5; border: 1px solid #a7f3d0; border-radius: 10px; padding: 8px 12px; }
.pend-files ul { list-style: none; margin: 4px 0 0; padding: 0; }
.pend-files li { margin: 2px 0; word-break: break-all; }
.pend-files .chk { display: inline-flex; gap: 6px; align-items: center; font-weight: normal; }
/* ---- পাবলিক পেজে লগইন করা অ্যাডমিন: নামের চিপ, কার্ড ও বার ---- */
.me-wrap { position: relative; display: inline-flex; }
.me-chip { display: inline-flex; align-items: center; gap: 8px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.35); color: inherit; color: #fff; border-radius: 999px; padding: 3px 12px 3px 3px; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; max-width: 240px; }
.me-chip .t { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.me-chip .av { width: 30px; height: 30px; font-size: 15px; }
.me-badge { background: #dc2626; color: #fff; border-radius: 999px; font-size: 12px; min-width: 20px; height: 20px; display: inline-grid; place-items: center; padding: 0 5px; }
.av { width: 44px; height: 44px; border-radius: 50%; flex: none; background: var(--brand-dark); color: #fff; display: inline-grid; place-items: center; font-weight: 700; font-size: 20px; border: 2px solid #fff; box-shadow: 0 1px 4px #0003; }
.av-lg { width: 54px; height: 54px; font-size: 24px; }
.me-card { display: none; position: absolute; right: 0; top: calc(100% + 8px); z-index: 60; width: 300px; max-width: calc(100vw - 24px); background: #fff; color: var(--ink); border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 14px 40px rgba(15,23,42,.22); padding: 14px; text-align: left; }
.me-wrap.open .me-card { display: block; }
.me-card .row1 { display: flex; gap: 12px; align-items: center; margin-bottom: 12px; }
.me-card .mc-txt { min-width: 0; }
.me-card .nm { font-weight: 700; font-size: 16px; line-height: 1.3; }
.me-card .ds { color: var(--muted); font-size: 13px; }
.me-card .rl { display: inline-block; background: var(--brand-soft, #e8f5ee); color: var(--brand-dark); border-radius: 999px; padding: 1px 10px; font-size: 12px; font-weight: 700; margin-top: 3px; }
.me-card .un { color: var(--muted); font-size: 12px; font-family: Arial, sans-serif; }
.me-card .acts { display: grid; gap: 6px; }
.me-card .acts .btn, .me-card .acts form, .me-card .acts button { width: 100%; justify-content: center; text-align: center; }
.me-card .me-out { color: #b91c1c; }
body:is(.theme-white, .theme-sky, .theme-mint, .theme-peach, .theme-lavender, .theme-glass, .theme-rose, .theme-sand, .theme-cream) .me-chip { color: var(--brand-dark); background: var(--brand-soft); border-color: var(--line); }
.adm-bar { display: flex; gap: 8px; align-items: center; flex-wrap: nowrap; margin: 0 0 14px; padding: 8px 12px; border: 1px solid #bfdbfe; background: #eff6ff; border-radius: 12px; font-size: 14px; color: #1e3a8a; }
.adm-bar b { margin-right: 4px; white-space: nowrap; flex: 0 0 auto; }
.adm-bar .ab-note { margin-right: auto; color: #1e40af; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; flex: 1 1 0; }
.adm-bar .btn { white-space: nowrap; flex: none; }
@media (max-width: 1450px) { .adm-bar .ab-note { display: none; } .adm-bar b { margin-right: auto; } }
.chip a, a.chip { text-decoration: none; cursor: pointer; }
a.chip-free:hover { filter: brightness(.95); outline: 2px solid var(--brand); }
@media (max-width: 760px) {
  .me-wrap { display: block; margin-top: 6px; }
  .me-chip { max-width: none; }
  .me-card { position: static; width: auto; margin-top: 8px; box-shadow: none; }
  .adm-bar { flex-wrap: wrap; }
  .adm-bar b { flex-basis: 100%; white-space: normal; }
}
@media print { .adm-bar, .me-wrap { display: none !important; } }
/* ---- পাবলিক পেজের নকশা (অ্যাডমিন) ---- */
.pd-wrap { display: grid; grid-template-columns: minmax(300px, 380px) 1fr; gap: 18px; align-items: start; }
.pd-panel { position: sticky; top: 76px; max-height: calc(100vh - 90px); overflow: auto; }
.pd-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; margin-top: 10px; }
.pd-grid .span-2 { grid-column: 1 / -1; }
.pd-lb { font-weight: 700; display: block; margin-bottom: 4px; }
.pd-btns { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.pd-btns .pd-lb { width: 100%; margin: 0; }
.pd-btns select { flex: 1; min-width: 160px; }
.pd-sw { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.pd-sw .sw { width: 30px; height: 30px; border-radius: 8px; border: 2px solid var(--line); cursor: pointer; padding: 0; box-shadow: inset 0 0 0 2px #fff; }
.pd-sw .sw-def { width: auto; padding: 0 8px; background: var(--surface); font: inherit; font-size: 13px; }
.pd-sw .sw.on, .pd-sw .sw-pick.on { border-color: #e11d48; outline: 2px solid #e11d48; }
.pd-sw .sw-pick { width: 40px; height: 32px; padding: 0; border: 2px solid var(--line); border-radius: 8px; background: none; cursor: pointer; }
.pd-move { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.pd-move .pd-lb { width: 100%; margin: 0; }
.pd-pad { display: grid; grid-template-columns: repeat(3, 34px); grid-template-rows: repeat(3, 30px); gap: 3px; }
.pd-pad button { border: 1px solid var(--line); background: var(--surface); border-radius: 6px; cursor: pointer; font-size: 13px; }
.pd-pad button:hover { background: var(--brand-soft); }
.pd-pad [data-mv="0,-5"] { grid-column: 2; grid-row: 1; } .pd-pad [data-mv="-5,0"] { grid-column: 1; grid-row: 2; }
.pd-pad [data-mv="reset"] { grid-column: 2; grid-row: 2; } .pd-pad [data-mv="5,0"] { grid-column: 3; grid-row: 2; }
.pd-pad [data-mv="0,5"] { grid-column: 2; grid-row: 3; }
.pd-save { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--line); }
.pd-view { padding: 10px; min-width: 0; }
.pd-wrap > * { min-width: 0; }
.pd-view-bar { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-bottom: 8px; }
.pd-view-bar .seg { display: inline-flex; border: 1px solid var(--line); border-radius: 999px; overflow: hidden; }
.pd-view-bar .seg button { border: 0; background: var(--surface); padding: 6px 12px; cursor: pointer; font: inherit; font-size: 14px; }
.pd-view-bar .seg button.on { background: var(--brand); color: #fff; }
.pd-frame-box { background: #e5e7eb; border-radius: 10px; padding: 8px; overflow: hidden; position: relative; }
.pd-frame-box iframe { display: block; width: 1280px; height: 900px; border: 0; border-radius: 8px; background: #fff; transform-origin: 0 0; }
@media (max-width: 1100px) { .pd-wrap { grid-template-columns: 1fr; } .pd-panel { position: static; max-height: none; } }
/* ---- সার্ভার পরীক্ষা ---- */
.tbl.health td { overflow-wrap: anywhere; word-break: break-word; vertical-align: top; }
.tbl.health td:first-child { font-weight: 700; width: 30%; }
.tbl.health td:nth-child(2) { width: 60px; text-align: center; }
.tbl.health tr.h-bad td { background: #fef2f2; }
.tbl.health tr.h-warn td { background: #fffbeb; }
/* ---- প্রমাণপত্র রাখার সময় ---- */
.keep-box { margin-top: 10px; padding: 10px 12px; border: 1px dashed var(--line); border-radius: 10px; background: #fafafa; }
.keep-box p { margin: 0 0 6px; }
.keep-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; }
.keep-form label { flex: 1 1 220px; margin: 0; }

/* ----- মোবাইলে ক্যালেন্ডারের ঘরে শুধু "২টি অনুষ্ঠান / 2 Events" (নাম জায়গায় ধরে না — দিনে চাপলে নিচে তালিকা) ----- */
@media (max-width: 760px) {
  .cal-cell { min-width: 0; overflow: hidden; }
  .cal-ev { display: none; }
  .cal-ev1 { display: block; font-size: 10px; line-height: 1.25; margin-top: 2px; padding: 0 2px; background: #fff; border-left: 2px solid var(--accent);
    border-radius: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--ink); }
  html[lang=en] .cal-ev1 { font-size: 9.5px; }
  .cal-count { display: block; font-size: 10.5px; line-height: 1.2; margin-top: 2px; }
  .cal-count .cc-w { display: inline; font-weight: 700; }
  html[lang=en] .cal-count { font-size: 10px; letter-spacing: -.2px; }
}
.pd-minh { flex: 1 1 200px; margin: 0; }
.pd-minh input { width: 100%; }

/* দিনের তালিকার শিরোনাম: "অনুষ্ঠানের তালিকা" ও তারিখ এক সারিতে (জায়গা কম হলে নিচে) */
.day-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: flex-start; gap: 2px 10px; margin-bottom: 6px; }
.day-head .day-kicker { margin: 0; }
.day-head .card-title { margin: 0; }

/* ----- মোবাইল হেডার: লোগো+নাম বাম পাশে পুরোটা দেখা যাবে; ভাষা/i/মেনু ডান পাশে ছোট করে দুই সারিতে ----- */
.brand-text .t-short { display: none; }
@media (max-width: 760px) {
  .site-head .head-inner { display: grid; grid-template-columns: minmax(0,1fr) auto auto; grid-template-rows: auto auto;
    align-items: center; column-gap: 6px; row-gap: 4px; position: relative; }
  .site-head .brand { grid-column: 1; grid-row: 1 / 3; align-self: center; }
  .site-head .lang-sw { grid-column: 2 / 4; grid-row: 1; justify-self: end; margin: 0; transform: scale(.88); transform-origin: right center; }
  .site-head .info-btn { grid-column: 2; grid-row: 2; justify-self: end; width: 28px; height: 28px; font-size: 15px; }
  .site-head .nav-toggle { grid-column: 3; grid-row: 2; justify-self: end; font-size: 18px; padding: 1px 9px; }
  .site-head .site-nav { grid-column: 1 / -1; }
  .site-head .brand-text strong, .site-head .brand-text small { white-space: normal; overflow: visible; text-overflow: clip; }
  .site-head .brand-text strong { font-size: 16px; line-height: 1.2; }
  .site-head .brand-text small { font-size: 12.5px; line-height: 1.25; }
  .site-head .brand-logo { height: 40px; max-height: 40px; max-width: 64px; }
}
/* খুব ছোট ফোনে (৩২০–৩৬০px) বড় শিরোনাম পাশে বেরিয়ে যাবে না */
.hero h1 { overflow-wrap: anywhere; }
@media (max-width: 360px) { .hero h1 { font-size: 21px; } }
@media (max-width: 760px) { html, body.public { overflow-x: clip; } }

/* মেইল সংযোগ পরীক্ষার ফলাফল */
.mail-diag { list-style: none; margin: 12px 0 0; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg); font-size: 14px; overflow-wrap: anywhere; }
.mail-diag li { padding: 3px 0; }
.mail-diag .md-ok { color: #15803d; font-weight: 700; }
.mail-diag .md-x { color: #b91c1c; font-weight: 700; }
.mail-diag .md-s { color: var(--muted); padding-left: 16px; font-size: 13px; }

/* ----- দিনের অনুষ্ঠানের তালিকা: পরিচ্ছন্ন কার্ড — সময়/অনুষ্ঠানের নাম/আয়োজক আলাদা সারিতে ----- */
#day .day-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 10px;
  padding-bottom: 10px; margin-bottom: 10px; border-bottom: 1px solid var(--line); }
#day .day-head .day-kicker { margin: 0; font-size: 20px; font-weight: 700; color: var(--ink); letter-spacing: 0; }
#day .day-head .day-kicker::before { content: none; }
#day .day-head .card-title { margin: 0; font-size: 15px; font-weight: 700; line-height: 1.3; color: var(--brand-dark);
  background: var(--brand-soft); border: 1px solid var(--line); padding: 4px 12px; border-radius: 999px; white-space: nowrap; }
.timeline.num li { display: grid; grid-template-columns: 28px 1fr; align-items: start; gap: 0 12px;
  padding: 10px 12px; margin: 0 0 8px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg); }
.timeline.num li:last-child { margin-bottom: 0; border-bottom: 1px solid var(--line); }
.timeline.num .tl-no { width: 26px; height: 26px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  background: var(--brand); color: #fff; font-size: 14px; font-weight: 700; line-height: 1; margin-top: 2px; }
.timeline.num .tl-body { display: grid; grid-template-columns: max-content 1fr; gap: 3px 8px; align-items: baseline; min-width: 0; line-height: 1.45; }
.timeline.num .tl-lb { font-size: 14px; color: var(--muted); white-space: nowrap; }
.timeline.num .tl-time { font-size: 15px; font-weight: 700; color: var(--brand-dark); }
.timeline.num .tl-body strong { display: block; font-size: 16.5px; overflow-wrap: anywhere; }
.timeline.num .tl-body small { display: block; font-size: 15px; color: var(--ink); overflow-wrap: anywhere; }
@media (max-width: 760px) {
  .timeline.num li { grid-template-columns: 24px 1fr; gap: 0 10px; padding: 9px 10px; }
  .timeline.num .tl-no { width: 24px; height: 24px; font-size: 13px; }
  .timeline.num .tl-lb { font-size: 13px; }
  .timeline.num .tl-time { font-size: 14px; }
  .timeline.num .tl-body strong { font-size: 15.5px; }
  .timeline.num .tl-body small { font-size: 14px; }
  #day .day-head .day-kicker { font-size: 18px; }
  #day .day-head .card-title { font-size: 14px; }
}

/* ----- হেডারের নাম: পিসিতে এক লাইনে (দুই সারি); মোবাইলে উপরে লোগো+নাম পুরো প্রস্থে, নিচে ডানে ছোট বোতাম ----- */
@media (min-width: 761px) {
  .site-head .brand { flex: 0 1 auto; }
  .site-head .brand-text strong, .site-head .brand-text small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
}
@media (max-width: 760px) {
  .site-head .head-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 6px 8px; padding-top: 8px; padding-bottom: 6px; }
  .site-head .brand { flex: 1 1 100%; min-width: 0; max-width: 100%; gap: 8px; }
  .site-head .brand-text { min-width: 0; flex: 1 1 auto; }
  .site-head .brand-logo { height: 38px; max-height: 38px; max-width: 60px; }
  .site-head .brand-text strong { font-size: 16px; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .site-head .brand-text small { display: block; font-size: clamp(10.5px, 3.4vw, 14px); line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .site-head .lang-sw { margin: 0; transform: none; }
  .site-head .lang-sw a { padding: 4px 9px; font-size: 12.5px; }
  .site-head .info-btn { width: 26px; height: 26px; font-size: 14px; }
  .site-head .nav-toggle { font-size: 16px; padding: 0 8px; line-height: 24px; }
  .site-head .lang-sw, .site-head .info-btn, .site-head .nav-toggle { grid-column: auto; grid-row: auto; justify-self: auto; }
}

/* পাবলিক নকশা: পিসি/মোবাইল বাছাই */
.pd-target { display: flex; border: 1px solid var(--line); border-radius: 999px; overflow: hidden; margin: 2px 0 6px; }
.pd-target button, .pd-view-bar .seg button { flex: 1; border: 0; background: var(--surface); padding: 8px 12px; cursor: pointer; font: inherit; font-size: 15px; color: var(--ink); }
.pd-target button.on, .pd-view-bar .seg button.on { background: var(--brand); color: #fff; font-weight: 700; }
.pd-target button:disabled, .pd-view-bar .seg button:disabled { opacity: .45; cursor: not-allowed; }
#pdCopy { margin-top: 4px; }
#pdSize, #pdMinh { width: 100%; }

/* চিহ্ন-তালিকা (ফাঁকা/অনুষ্ঠান আছে/অপেক্ষায়) ক্যালেন্ডারের উপরে, বারের নামের সারির ঠিক উপরে */
.cal-head + .legend { margin: 0 0 10px; gap: 6px 16px; font-size: 14.5px; }
@media (max-width: 760px) { .cal-head + .legend { font-size: 13px; gap: 4px 12px; margin-bottom: 8px; } }
/* অ্যাডমিন লগইন লিংক — নকশা থেকে ফুটারে নেওয়া যায় */
.foot-admin { display: none; color: inherit; opacity: .85; margin-left: 12px; white-space: nowrap; }
.foot-admin:hover { opacity: 1; }


/* প্রিন্ট: টেবিলের কলামের চওড়া */
.pd-cw-row { margin-top: 10px; }
.pd-cw-row summary { cursor: pointer; font-weight: 700; color: var(--brand-dark); }
.pd-cw { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; margin: 8px 0 4px; }
.cw-item { display: inline-flex; align-items: center; gap: 4px; border: 1px solid var(--line); border-radius: 999px; padding: 2px 4px 2px 10px; background: var(--surface); }
.cw-item .cw-l { font-size: 14px; }
.cw-item b { min-width: 34px; text-align: center; font-size: 14px; }
.cw-item .btn-sm { padding: 0 9px; min-height: 26px; }

/* অনুষ্ঠানের তালিকা পেজ: দিনভিত্তিক তালিকা — প্রথম পাতার মতো পরিচ্ছন্ন কার্ড */
#dayList .day-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; padding-bottom: 8px; margin-bottom: 10px; border-bottom: 1px solid var(--line); }
#dayList .day-head .day-kicker { margin: 0; font-size: 15px; font-weight: 700; color: var(--muted); }
#dayList .day-head .day-kicker::before { content: none; }
#dayList .day-head .card-title { margin: 0; font-size: 20px; color: var(--brand-dark); }
#dayList .day-nav { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; }
#dayList .day-tl { list-style: none; margin: 0; padding: 0; }
@media (max-width: 760px) { #dayList .day-head .card-title { font-size: 18px; } }
#dayList.dl-loading { opacity: .55; transition: opacity .15s; pointer-events: none; }

/* মোবাইল: তারিখে চাপ দিলে ছোট পপআপ বক্সে সেই দিনের তালিকা */
.dc-modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: flex-end; justify-content: center; padding: 12px; }
.dc-back { position: absolute; inset: 0; background: rgba(15, 23, 20, .45); }
.dc-box { background: #fff !important; backdrop-filter: none !important; box-shadow: 0 -8px 30px rgba(0,0,0,.25); position: relative; width: 100%; max-width: 560px; max-height: 82vh; overflow: auto; margin: 0; padding: 16px 14px 14px; border-radius: 18px; animation: dcUp .18s ease-out; }
.dc-x { position: absolute; top: 8px; right: 8px; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--line); background: var(--surface); font-size: 16px; cursor: pointer; color: var(--ink); }
.dc-in .day-head { padding-right: 40px; }
body.dc-open { overflow: hidden; }
@keyframes dcUp { from { transform: translateY(24px); opacity: 0; } to { transform: none; opacity: 1; } }
