/* Hamrah Group 10.5 — refined selectors, deterministic message rhythm and curated palettes. */

body[data-palette="rose"] {
  --primary:#d44f7f; --primary-2:#f07d87; --primary-ink:#9c315a; --primary-soft:#fde7ef;
  --accent-glow:rgba(212,79,127,.27); --gradient:linear-gradient(135deg,#b83c73,#d44f7f 48%,#f18b83);
  --gradient-deep:linear-gradient(145deg,#5a1c3d,#94365d 52%,#a94e53); --gradient-soft:linear-gradient(135deg,#ffe8f1,#fff0eb); --mine:#fde2ec;
}
body[data-palette="graphite"] {
  --primary:#59677b; --primary-2:#8490a1; --primary-ink:#394556; --primary-soft:#e9edf2;
  --accent-glow:rgba(89,103,123,.24); --gradient:linear-gradient(135deg,#344052,#59677b 48%,#8995a7);
  --gradient-deep:linear-gradient(145deg,#1c2430,#364355 54%,#566273); --gradient-soft:linear-gradient(135deg,#e8edf2,#f2f4f7); --mine:#e7ecf2;
}
body[data-palette="midnight"] {
  --primary:#4e5bd7; --primary-2:#8e62dd; --primary-ink:#3541a8; --primary-soft:#e9eaff;
  --accent-glow:rgba(78,91,215,.28); --gradient:linear-gradient(135deg,#182a63,#4e5bd7 50%,#8e62dd);
  --gradient-deep:linear-gradient(145deg,#0e183b,#303d9b 54%,#5b3994); --gradient-soft:linear-gradient(135deg,#e6eaff,#f2e9ff); --mine:#e5e7ff;
}


/* Palette semantics must remain dark in dark/AMOLED modes even though this layer loads last. */
body.dark[data-palette="rose"],
body.dark[data-palette="graphite"],
body.dark[data-palette="midnight"] {
  --primary-soft:color-mix(in srgb,var(--primary) 22%,#111a2a);
  --mine:color-mix(in srgb,var(--primary) 31%,#111a2a);
  --gradient-soft:linear-gradient(135deg,color-mix(in srgb,var(--primary) 19%,#111a2a),color-mix(in srgb,var(--primary-2) 14%,#111a2a));
}
body.amoled[data-palette="rose"],
body.amoled[data-palette="graphite"],
body.amoled[data-palette="midnight"] {
  --primary-soft:color-mix(in srgb,var(--primary) 20%,#050505);
  --mine:color-mix(in srgb,var(--primary) 28%,#050505);
  --gradient-soft:linear-gradient(135deg,color-mix(in srgb,var(--primary) 18%,#050505),color-mix(in srgb,var(--primary-2) 12%,#050505));
}

/* One deterministic rhythm owner. Base .message and the old .grouped margins are neutralized here. */
.messages > .g7-message { margin-block:0 !important; }
.messages > .g7-message.cluster-single { margin-block:7px 15px !important; }
.messages > .g7-message.cluster-start { margin-block:7px 6px !important; }
.messages > .g7-message.cluster-middle { margin-block:0 6px !important; }
.messages > .g7-message.cluster-end { margin-block:0 15px !important; }
.messages > .date-chip + .g7-message { margin-block-start:5px !important; }
body.compact .messages > .g7-message.cluster-single { margin-block:5px 11px !important; }
body.compact .messages > .g7-message.cluster-start { margin-block:5px 4px !important; }
body.compact .messages > .g7-message.cluster-middle { margin-block:0 4px !important; }
body.compact .messages > .g7-message.cluster-end { margin-block:0 11px !important; }

/* Profile privacy selector: custom, themed and compact until a row is expanded. */
.pc-privacy-custom { gap:9px; }
.pc-privacy-choice { border:1px solid var(--pc-line); border-radius:17px; background:var(--pc-raised); overflow:hidden; transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.pc-privacy-choice.is-open,
.pc-privacy-choice:has(.pc-privacy-summary[aria-expanded="true"]) { border-color:var(--interactive-active-border); box-shadow:0 12px 30px color-mix(in srgb,var(--primary) 13%,transparent); }
.pc-privacy-summary { inline-size:100%; min-block-size:66px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 13px; border:0; background:transparent; color:var(--text); text-align:start; }
.pc-privacy-summary > span:first-child { min-inline-size:0; }
.pc-privacy-summary b { display:block; font-size:.69rem; line-height:1.65; }
.pc-privacy-summary small { display:block; margin-block-start:2px; color:var(--pc-muted); font-size:.54rem; line-height:1.65; }
.pc-privacy-current { flex:0 0 auto; display:flex; align-items:center; gap:7px; min-inline-size:108px; justify-content:flex-end; color:var(--primary); }
.pc-privacy-current i { inline-size:7px; block-size:7px; border-radius:50%; background:var(--primary); box-shadow:0 0 0 5px color-mix(in srgb,var(--primary) 12%,transparent); }
.pc-privacy-current strong { font-size:.6rem; white-space:nowrap; }
.pc-privacy-current svg { inline-size:15px; block-size:15px; transition:transform .18s ease; }
.pc-privacy-summary[aria-expanded="true"] .pc-privacy-current svg { transform:rotate(-90deg); }
.pc-privacy-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; padding:0 10px 10px; animation:g105OptionsIn .18s ease both; }
.pc-privacy-options[hidden] { display:none; }
.pc-privacy-option { min-block-size:45px; display:grid; grid-template-columns:20px minmax(0,1fr) 14px; align-items:center; gap:8px; padding:8px 10px; border:1px solid var(--pc-line); border-radius:13px; background:color-mix(in srgb,var(--pc-raised) 90%,var(--surface)); color:var(--text); text-align:start; }
.pc-privacy-option svg { inline-size:18px; block-size:18px; color:var(--pc-muted); }
.pc-privacy-option span { font-size:.58rem; font-weight:800; }
.pc-privacy-option i { inline-size:13px; block-size:13px; border:2px solid var(--pc-muted); border-radius:50%; }
.pc-privacy-option.active { border-color:var(--interactive-active-border); background:var(--interactive-active-soft); color:var(--interactive-active-strong); box-shadow:var(--interactive-active-glow); }
.pc-privacy-option.active svg { color:var(--primary); }
.pc-privacy-option.active i { border:4px solid var(--primary); background:var(--surface); }
@keyframes g105OptionsIn { from { opacity:.45; transform:translateY(-5px); } to { opacity:1; transform:none; } }

/* Birthday field and picker. */
.g105-date-trigger { cursor:pointer; }
.g105-date-trigger::after { content:"تقویم"; margin-inline-start:auto; color:var(--primary); font-size:.54rem; font-weight:900; }
.profile-birthday-input[readonly] { cursor:pointer; caret-color:transparent; text-align:start; direction:rtl; }
.g105-birthday-layer { position:fixed; inset:0; z-index:1200; display:grid; place-items:center; padding:18px; background:rgba(4,9,17,.72); backdrop-filter:blur(14px); }
.g105-birthday-layer.hidden { display:none; }
.g105-birthday-picker { inline-size:min(430px,94vw); max-block-size:min(760px,92dvh); overflow:auto; padding:17px; border:1px solid var(--line); border-radius:27px; background:var(--surface); color:var(--text); box-shadow:0 30px 100px rgba(0,0,0,.42); animation:g105PickerIn .22s cubic-bezier(.2,.8,.2,1) both; }
.g105-birthday-picker > header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.g105-birthday-picker > header > div { display:flex; align-items:center; gap:10px; }
.g105-calendar-icon { inline-size:46px; block-size:46px; display:grid; place-items:center; border-radius:16px; background:var(--primary-soft); color:var(--primary); font-size:1.35rem; }
.g105-birthday-picker h2 { margin:0; font-size:.92rem; }
.g105-birthday-picker header p { margin:3px 0 0; color:var(--muted); font-size:.57rem; }
.g105-birthday-picker header button { inline-size:39px; block-size:39px; border:1px solid var(--line); border-radius:13px; background:var(--surface-2); color:var(--text); font-size:1.25rem; }
.g105-calendar-nav { display:grid; grid-template-columns:42px minmax(0,1fr) 42px; align-items:center; gap:8px; margin-block:16px 10px; }
.g105-calendar-nav button { min-block-size:40px; border:1px solid var(--line); border-radius:13px; background:var(--surface-2); color:var(--text); font-weight:900; }
.g105-calendar-nav .g105-year-button { background:var(--gradient-soft); color:var(--primary); font-size:.82rem; }
.g105-month-strip { display:flex; gap:6px; overflow-x:auto; padding:2px 1px 9px; scrollbar-width:none; scroll-snap-type:x proximity; }
.g105-month-strip::-webkit-scrollbar { display:none; }
.g105-month-strip button { flex:0 0 auto; min-block-size:36px; padding:7px 11px; border:1px solid var(--line); border-radius:12px; background:var(--surface-2); color:var(--muted); font-size:.56rem; font-weight:850; scroll-snap-align:center; }
.g105-month-strip button.active { border-color:var(--interactive-active-border); background:var(--interactive-active-soft); color:var(--primary); box-shadow:0 7px 20px color-mix(in srgb,var(--primary) 16%,transparent); }
.g105-weekdays,.g105-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; }
.g105-weekdays { margin-block:5px; color:var(--muted); font-size:.52rem; text-align:center; }
.g105-days button,.g105-day-empty { aspect-ratio:1; min-block-size:35px; }
.g105-days button { border:1px solid transparent; border-radius:12px; background:transparent; color:var(--text); font-size:.63rem; font-weight:800; }
.g105-days button:hover { background:var(--surface-2); }
.g105-days button.active { border-color:color-mix(in srgb,var(--primary) 72%,white); background:var(--gradient); color:#fff; box-shadow:0 8px 22px color-mix(in srgb,var(--primary) 28%,transparent); }
.g105-year-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; margin-block:10px; padding:10px; border:1px solid var(--line); border-radius:16px; background:var(--surface-2); }
.g105-year-grid.hidden { display:none; }
.g105-year-grid button { min-block-size:38px; border:1px solid var(--line); border-radius:11px; background:var(--surface); color:var(--text); font-weight:800; }
.g105-year-grid button.active { border-color:var(--primary); background:var(--primary-soft); color:var(--primary); }
.g105-birthday-picker footer { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:8px; margin-block-start:14px; padding-block-start:13px; border-block-start:1px solid var(--line); }
.g105-birthday-picker footer button { min-block-size:42px; padding:8px 13px; border:0; border-radius:13px; font-weight:900; }
.g105-clear { background:var(--surface-2); color:var(--muted); }
.g105-confirm { background:var(--gradient); color:#fff; box-shadow:var(--shadow-primary); }
.g105-confirm:disabled { opacity:.45; box-shadow:none; }
.g105-selected-date { color:var(--muted); font-size:.55rem; text-align:center; }
@keyframes g105PickerIn { from { opacity:.4; transform:translateY(14px) scale(.975); } to { opacity:1; transform:none; } }

/* Motion/performance: transform-only micro-interactions and cheaper mobile effects. */
.theme-choice { transition:transform .18s cubic-bezier(.2,.8,.2,1), border-color .18s ease, box-shadow .18s ease, background .18s ease; }
.theme-choice:active { transform:scale(.96) !important; }
@media (max-width:767px) {
  .pc-dialog,.g105-birthday-picker { backdrop-filter:none; }
  .g105-birthday-layer { align-items:end; padding:0; backdrop-filter:none; }
  .g105-birthday-picker { inline-size:100%; max-block-size:91dvh; border:0; border-block-start:1px solid var(--line); border-radius:27px 27px 0 0; padding-block-end:calc(17px + env(safe-area-inset-bottom)); }
  .pc-privacy-options { grid-template-columns:1fr 1fr; }
}
@media (max-width:380px) {
  .pc-privacy-options { grid-template-columns:1fr; }
  .g105-birthday-picker { padding-inline:13px; }
  .g105-days button,.g105-day-empty { min-block-size:32px; }
  .g105-birthday-picker footer { grid-template-columns:auto 1fr auto; }
}
@media (prefers-reduced-motion:reduce) {
  .g105-birthday-picker,.pc-privacy-options,.theme-choice { animation:none!important; transition:none!important; }
}
body.g105-picker-open { overflow:hidden; }
