/* CEO Notes & Planner — Glass Bento theme (2026-10-13)
   Loaded AFTER app.css. White-to-lemon page, frosted glass tiles,
   purple/blue/red gradient accents, pill controls, iPhone-first details.
   To roll back: remove the <link> to this file from base.html and login.html. */

:root {
  --a1: #6A45F0; --a2: #2B63E8; --a3: #D6334F;
  --grad: linear-gradient(135deg, var(--a1), var(--a2) 55%, var(--a3));
  --glass: linear-gradient(135deg, rgba(255,255,255,.66), rgba(255,255,255,.2));
  --glass-edge: rgba(255,255,255,.75);
  --glass-shadow: inset 0 1px 0 rgba(255,255,255,.95), 0 14px 44px rgba(110,100,30,.16);
  --pop: #ffffff;

  --bg: #FFFEF2;
  --ink: #14122B; --ink-variant: #2F2D4A; --ink-muted: #5A5878; --ink-faint: #8A88A3; --ink-ghost: #B9B7CC;
  --hairline: rgba(20,18,43,.10); --hairline-strong: rgba(20,18,43,.18); --outline-variant: rgba(20,18,43,.14);
  --yellow: #F4E96A; --link: #2B63E8;
  --surface-low: rgba(20,18,43,.04); --surface-mid: rgba(20,18,43,.07);
  --shadow-sm: 0 4px 14px rgba(110,100,30,.10); --shadow-md: 0 18px 50px rgba(40,30,110,.22);

  --font-ui: 'Instrument Sans', -apple-system, 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --font-serif: 'Instrument Sans', -apple-system, 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --font-mono: 'DM Mono', 'SF Mono', Menlo, monospace;
  --r-lg: 28px; --r-md: 20px; --r-sm: 14px; --r-xs: 10px;
  --safe-t: env(safe-area-inset-top, 0px); --safe-b: env(safe-area-inset-bottom, 0px);
}

/* ---------- page ground ---------- */
html { background: #FFFEF2; -webkit-text-size-adjust: 100%; }
body { background: transparent; font-size: 14.5px; -webkit-tap-highlight-color: transparent; overscroll-behavior-y: none; }
body::before {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(760px 520px at 92% 100%, rgba(250,236,90,.75), transparent 70%),
    radial-gradient(560px 420px at 60% 70%, rgba(255,244,140,.5), transparent 70%),
    linear-gradient(160deg, #FFFFFF 0%, #FFFEF2 30%, #FBF6BE 68%, #F6EE84 100%);
}
button, a, input, select, textarea, [role=button], .chk, .nav a { touch-action: manipulation; }

/* ---------- type ---------- */
h1, .home-greeting h1, .page-head h1, .page-canvas .page-title, .modal .m-title, .kpi .val,
.stat-strip .stat .s-val, .pin-card .pc-title, .section-card h3, .tmpl-btn .t-name, .login-card .brand .name,
.block[data-type=heading1] .block-body, .block[data-type=heading2] .block-body {
  font-family: var(--font-ui); font-weight: 600; letter-spacing: -0.03em;
}
h2, h3, .label-caps, .nav .nav-label, .hero .kicker, .card .label, .soft-card .sc-title, .cal-dow div,
.kanban-col h3, .subtabs a, .editor-bar .crumb, .plan-hint, .stat-strip .stat .s-label, .up-row .up-day,
.plan-col .pc-name, .cal-side .cs-title, table.data th, label, .block-menu .menu-label, .search-hit-kind,
.pin-card .pc-sub, .badge, .nav a, .brand .tag, .brand .name {
  font-family: var(--font-ui); font-weight: 600; letter-spacing: 0.06em;
}
.nav a, .brand .name { letter-spacing: 0; }
textarea, .flash, .hero .sub, .search-hit-snippet { font-family: var(--font-ui); }

/* ---------- shell: floating glass sidebar ---------- */
.shell { padding: 14px; gap: 14px; background: transparent; }
.sidebar, .side-scroll { background: transparent; }
.sidebar {
  background: var(--glass); border: 1px solid var(--glass-edge); border-radius: 32px; box-shadow: var(--glass-shadow);
  backdrop-filter: blur(26px) saturate(170%); -webkit-backdrop-filter: blur(26px) saturate(170%);
}
.brand { border-bottom: 1px solid var(--hairline); }
.brand .hq-avatar, .login-card .brand .hq-avatar {
  background: var(--grad); color: #fff; border-radius: 14px; font-family: var(--font-ui); font-weight: 700;
}
.side-search input { border-radius: 999px; background: rgba(255,255,255,.6); border-color: var(--hairline-strong); padding: 9px 16px; }
.side-search .search-results { background: var(--pop); border: 1px solid var(--hairline-strong); border-radius: 22px; }
.search-hit-kind { border-radius: 999px; }
.nav .nav-label { background: transparent; border-bottom: 0; padding-top: 16px; color: var(--ink-muted); }
.nav a { border-left: 0; border-radius: 14px; padding: 8px 12px; }
.nav a:hover { background: rgba(255,255,255,.55); }
.nav a.active { background: var(--ink); color: #fff; font-weight: 600; }
.nav a.active:hover { color: #fff; }
.nav .badge-pill { border-radius: 999px; }
.nav .badge-pill.violet { background: var(--grad); color: #fff; }
.nav .badge-pill.rose { background: var(--ink); color: #fff; }
.nav a.active .badge-pill { background: rgba(255,255,255,.2); }
.side-foot { border-top: 1px solid var(--hairline); }
.sidebar .cta { background: var(--ink); color: #fff; border-color: var(--ink); border-radius: 999px; font-family: var(--font-ui); letter-spacing: .04em; }
.sidebar .cta:hover { background: var(--grad); border-color: transparent; color: #fff; }
.sidebar .footnav a { border-radius: 999px; }
.sidebar .footnav a:hover { background: rgba(255,255,255,.6); }
.main-wrap { background: transparent; border-radius: 32px; }
.main { padding-top: 26px; }

/* ---------- glass surfaces ---------- */
.card, .soft-card, .kpi, .cal-side, .stat-strip, .page-shell, .plan-grid, .kanban-col, .tmpl-btn, .section-card,
.login-card, .task-card, .pin-card, .stat-strip .stat, .plan-col, .cal-grid {
  background: var(--glass); border: 1px solid var(--glass-edge); border-radius: 28px; box-shadow: var(--glass-shadow);
  backdrop-filter: blur(26px) saturate(170%); -webkit-backdrop-filter: blur(26px) saturate(170%);
}
.card, .soft-card, .kpi, .cal-side { border-top: 1px solid var(--glass-edge); padding: 22px; }
.stat-strip .stat, .plan-col, .cal-grid { box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; border-radius: 0; border-color: var(--hairline); background: transparent; }
.stat-strip, .plan-grid, .cal-grid { overflow: hidden; }
.plan-col.today-col { background: rgba(255,255,255,.5); }
.kanban-col { padding: 14px; }
.card .card-header { border-bottom: 1px solid var(--hairline); }
.soft-card .sc-title { border-bottom: 1px solid var(--hairline); color: var(--ink-muted); }
.pin-card { padding: 14px 16px; }
.pin-card:hover { border-color: #fff; transform: translateY(-1px); }
.pin-card .pc-emoji { width: 42px; height: 42px; border-radius: 14px; background: rgba(255,255,255,.7); display: inline-flex; align-items: center; justify-content: center; }
.task-card { border-radius: 20px; padding: 12px 14px; box-shadow: var(--shadow-sm); }
.task-card:hover { border-color: var(--a1); }
.tmpl-btn { border-radius: 22px; }
.tmpl-btn:hover { border-color: var(--a1); background: rgba(255,255,255,.8); }
.kpi { border-radius: 28px; }
.page-shell { overflow: hidden; }
.page-tree { background: rgba(255,255,255,.35); border-right: 1px solid var(--hairline); }
.page-tree .tree-link { border-radius: 12px; }
.page-tree .tree-link.active { background: var(--ink); color: #fff; }
.page-tree-expand, .page-tree-toggle { border-radius: 10px; }

/* bento tints on the Home tiles */
.home-grid { gap: 16px; }
.home-col { gap: 16px; }
.soft-card.violet { background: linear-gradient(150deg, rgba(106,69,240,.30), rgba(43,99,232,.20)); }
.soft-card.rose { background: linear-gradient(150deg, rgba(255,255,255,.7), rgba(244,233,106,.35)); }
.soft-card.mint {
  background: linear-gradient(160deg, #2A1F6B, #14122B); border-color: transparent; color: #fff;
  --ink: #fff; --ink-variant: rgba(255,255,255,.85); --ink-muted: rgba(255,255,255,.7); --hairline: rgba(255,255,255,.16); --hairline-strong: rgba(255,255,255,.28);
}
.soft-card.mint .sc-title { color: rgba(255,255,255,.72); }
.soft-card.mint a { color: #fff; }
.up-row .up-dot.task { background: #fff; }
.up-row .up-dot.event { background: var(--a3); }

/* home greeting = gradient hero tile */
.home-greeting {
  background: var(--grad); color: #fff; border: 0; border-radius: 32px; padding: 28px 30px; margin-bottom: 16px;
  box-shadow: 0 18px 50px rgba(70,60,200,.28), inset 0 1px 0 rgba(255,255,255,.35);
}
.home-greeting h1 { color: #fff; font-size: 40px; line-height: 1.04; letter-spacing: -0.035em; }
.home-greeting .sub { color: rgba(255,255,255,.82); }
.home-greeting .btn { background: rgba(255,255,255,.2); color: #fff; border: 1px solid rgba(255,255,255,.35); }
.home-greeting .btn:hover { background: rgba(255,255,255,.32); color: #fff; }
.hero { border-bottom: 0; padding-bottom: 8px; }
.hero h1 { font-size: 34px; }
.hero .icon-box { border-radius: 18px; border: 1px solid var(--glass-edge); background: var(--glass); }

/* ---------- buttons / controls: pills ---------- */
.btn, button.btn {
  border: 1px solid var(--hairline-strong); background: rgba(255,255,255,.6); border-radius: 999px;
  padding: 9px 16px; font-family: var(--font-ui); font-weight: 600; letter-spacing: .02em; text-transform: none; font-size: 13px;
}
.btn:hover { background: #fff; border-color: var(--ink); }
.btn.primary { background: var(--ink); color: #fff; border-color: var(--ink); }
.btn.primary:hover { background: var(--grad); border-color: transparent; color: #fff; }
.btn.ghost { background: transparent; border-color: transparent; }
.btn.ghost:hover { background: rgba(255,255,255,.6); }
.btn.danger { background: transparent; color: var(--danger); border-color: transparent; }
.btn.sm { padding: 6px 12px; font-size: 12px; }
.pill-group a, .pill-group .pill { border-radius: 999px; margin-right: 6px; border-color: var(--hairline-strong); background: rgba(255,255,255,.55); }
.pill-group a.active, .pill-group .pill.active { background: var(--ink); color: #fff; }
.badge { border-radius: 999px; padding: 3px 10px; }
.badge.prio-urgent { background: var(--grad); border-color: transparent; color: #fff; }
.subtabs { border-bottom: 1px solid var(--hairline-strong); }
.subtabs a { letter-spacing: .04em; }
.subtabs a.active { border-bottom-color: var(--a1); }

input[type=text], input[type=password], input[type=email], input[type=date], input[type=number], input[type=search], input[type=time],
select, .dash-input, .solid-input {
  border-radius: 999px; background: rgba(255,255,255,.62); border: 1px solid var(--hairline-strong); padding: 10px 16px; font-family: var(--font-ui);
}
textarea { border-radius: 20px; background: rgba(255,255,255,.62); }
input:focus, select:focus, textarea:focus, .dash-input:focus, .solid-input:focus { border-color: var(--a1); box-shadow: 0 0 0 3px rgba(106,69,240,.18); outline: none; background: #fff; }
.dash-input { border-style: solid; }
label { letter-spacing: .06em; }
.rowx .chk, .chk { border-radius: 8px; border-color: var(--ink-muted); }
.rowx .chk.on, .chk.on { background: var(--grad); border-color: transparent; color: #fff; }
.rowx .mini-btn { border-radius: 999px; }
.rowx .mini-btn:hover { background: var(--ink); }
.chip { border-radius: 999px; }
.flash { border-radius: 18px; background: rgba(255,255,255,.7); border: 1px solid var(--glass-edge); border-left: 4px solid var(--a2); }
.flash.error { border-left-color: var(--a3); }
.flash.ok { border-left-color: #2E9E6B; }

/* inline home <style> rows (hb-*/bc-*) */
.soft-card .hb-head, .soft-card .bc-head { border-bottom: 1px solid var(--hairline-strong); }
.soft-card .hb-row, .soft-card .bc-row { border-bottom: 1px solid var(--hairline); }
.soft-card .hb-tgl { border: 1px solid var(--hairline-strong); background: rgba(255,255,255,.7); }
.soft-card .hb-knob { background: var(--ink); }
.soft-card .hb-row.on .hb-tgl { background: var(--grad); border-color: transparent; }
.soft-card .hb-row.on .hb-knob { background: #fff; }
.soft-card .hb-streak { background: var(--grad); color: #fff; border: 0; border-radius: 999px; }
.soft-card .bc-chk { border: 1.5px solid var(--ink-muted); border-radius: 7px; background: rgba(255,255,255,.7); }
.soft-card .bc-chk:hover { background: var(--grad); border-color: transparent; }
.soft-card .hb-txt-input, .soft-card .bc-txt-input { border-bottom: 1px solid var(--a1); }

/* ---------- tables, calendar, planner ---------- */
table.data th { background: transparent; border-bottom: 1px solid var(--hairline-strong); }
table.data tbody tr:hover { background: rgba(255,255,255,.5); }
.cal-grid { border-radius: 28px; }
.cal-cell { background: rgba(255,255,255,.3); border-color: var(--hairline); }
.cal-cell:hover { background: rgba(255,255,255,.6); }
.cal-cell.today .cc-num, .cal-cell .cc-num.today { background: var(--grad); color: #fff; border-radius: 999px; }
.cal-cell .cc-item.task { background: rgba(20,18,43,.08); border-radius: 6px; }
.cal-cell .cc-item.event { background: rgba(244,233,106,.8); border-radius: 6px; }
.save-indicator { color: #fff; border-radius: 999px; }

/* ---------- modals / popovers (opaque for legibility) ---------- */
.modal-backdrop, .side-backdrop { background: rgba(20,18,43,.42); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.modal { background: var(--pop); border: 1px solid #fff; border-radius: 32px; box-shadow: var(--shadow-md); }
.block-menu, .sel-toolbar, .sel-color-popover, .emoji-picker, [class*=popover] { background: var(--pop); border-radius: 20px; border: 1px solid var(--hairline-strong); box-shadow: var(--shadow-md); }
.ck-item { border-radius: 14px; }
.ck-item.sel, .ck-item:hover { background: var(--ink); color: #fff; }
#cmdk .modal { border-radius: 28px; }
#cmdk-input { border-radius: 999px !important; border: 1px solid var(--hairline-strong) !important; background: rgba(20,18,43,.04); }
#nx-syncbar { background: var(--ink); }

/* ---------- login ---------- */
.login-wrap { background: transparent; padding: 24px 16px; position: relative; overflow: hidden; min-height: 100vh; min-height: 100dvh; }
.login-wrap::before, .login-wrap::after { content: ""; position: absolute; border-radius: 50%; filter: blur(60px); opacity: .55; pointer-events: none; z-index: 0; }
.login-wrap::before { width: 340px; height: 340px; background: var(--a1); left: calc(50% - 330px); top: 12%; }
.login-wrap::after { width: 320px; height: 320px; background: var(--a3); left: calc(50% + 20px); bottom: 8%; opacity: .4; }
.login-card { position: relative; z-index: 1; width: 100%; max-width: 420px; border-radius: 36px; padding: 38px 32px; box-shadow: var(--glass-shadow), 0 30px 70px rgba(70,60,200,.18); background: linear-gradient(135deg, rgba(255,255,255,.72), rgba(255,255,255,.3)); }
.login-card .brand { border-bottom: 0; padding-bottom: 6px; }
.login-card .brand .hq-avatar { width: 46px; height: 46px; border-radius: 15px; font-size: 22px; }
.login-card .brand .name { font-size: 22px; }
.login-card .btn.primary { width: 100%; min-height: 50px; justify-content: center; font-size: 15px; }

/* ---------- tab bar (phones only) ---------- */
.tabbar { display: none; }

/* ================= iPHONE / SMALL SCREENS ================= */
@media (max-width: 820px) {
  html, body { overflow-x: hidden; }
  .shell { padding: 0; gap: 0; }
  .main-wrap { border-radius: 0; }
  .main { padding: 14px 14px calc(110px + var(--safe-b)); }

  .m-topbar {
    background: rgba(255,255,255,.55); -webkit-backdrop-filter: blur(24px) saturate(170%); backdrop-filter: blur(24px) saturate(170%);
    border-bottom: 1px solid var(--glass-edge);
    padding: calc(10px + var(--safe-t)) 14px 10px;
  }
  .m-topbar #side-toggle, .m-topbar .m-new { width: 44px; height: 44px; border-radius: 999px; }
  .m-topbar #side-toggle { background: rgba(255,255,255,.7); border-color: var(--hairline-strong); }
  .m-topbar .m-new { background: var(--ink); border-color: var(--ink); color: #fff; }
  .m-topbar .m-title { font-family: var(--font-ui); font-weight: 600; font-size: 17px; letter-spacing: -.01em; }

  .sidebar {
    border-radius: 0 32px 32px 0; padding-top: var(--safe-t); padding-bottom: var(--safe-b);
    background: linear-gradient(160deg, rgba(255,255,255,.9), rgba(255,254,242,.82));
    -webkit-backdrop-filter: blur(30px); backdrop-filter: blur(30px); border-right: 1px solid #fff;
  }
  .sidebar.open { box-shadow: 0 0 60px rgba(20,18,43,.3); }

  .home-greeting { padding: 22px 20px; border-radius: 28px; }
  .home-greeting h1 { font-size: 32px; }
  .card, .soft-card, .kpi, .cal-side { padding: 18px; border-radius: 26px; }
  .soft-card .sc-title, .cal-side .cs-title, .card .card-header { margin: 0 0 10px; padding: 0 0 10px; background: transparent; }
  .page-shell { background: transparent; border: 0; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }

  /* iOS: 16px inputs stop Safari zooming the page on focus */
  input, select, textarea, .dash-input, .solid-input, #workspace-search, #cmdk-input,
  .block-body, [contenteditable=true], .page-canvas .page-title { font-size: 16px !important; }
  .page-canvas .page-title { font-size: 28px !important; }

  /* thumb-sized targets */
  .btn, button.btn, .btn.sm, .nav a, .pill-group a, .pill-group .pill, .subtabs a, .tmpl-btn, .rowx .mini-btn,
  .footnav a, .sidebar .cta { min-height: 44px; }
  .rowx { min-height: 44px; }
  .rowx .chk, .chk { width: 26px; height: 26px; min-width: 26px; }
  .rowx .rowx-del, .hb-del, .bc-del { opacity: .5 !important; min-width: 32px; min-height: 32px; }
  .hb-lk { min-width: 32px; min-height: 32px; }
  .soft-card .hb-tgl { width: 44px; height: 26px; }
  .soft-card .hb-knob { width: 20px; height: 20px; top: 2px; left: 2px; }
  .soft-card .hb-row.on .hb-knob { left: 20px; }
  .soft-card .bc-chk { width: 26px; height: 26px; }
  .cal-cell { min-height: 52px; }

  /* sheets instead of centred dialogs */
  .modal-backdrop { align-items: flex-end; }
  .modal { width: 100%; max-width: 100%; border-radius: 32px 32px 0 0; padding: 22px 20px calc(22px + var(--safe-b)); max-height: 88dvh; overflow-y: auto; animation: sheetup .22s ease; }
  #cmdk .modal { width: 100% !important; }
  @keyframes sheetup { from { transform: translateY(24px); opacity: 0; } to { transform: none; opacity: 1; } }

  /* floating glass tab bar */
  .tabbar {
    display: flex; position: fixed; z-index: 105; left: 12px; right: 12px; bottom: calc(10px + var(--safe-b));
    height: 66px; padding: 6px; gap: 2px; align-items: stretch;
    background: linear-gradient(135deg, rgba(255,255,255,.82), rgba(255,255,255,.55));
    border: 1px solid #fff; border-radius: 999px; box-shadow: var(--glass-shadow), 0 16px 40px rgba(20,18,43,.18);
    -webkit-backdrop-filter: blur(26px) saturate(180%); backdrop-filter: blur(26px) saturate(180%);
  }
  .tabbar a, .tabbar button {
    flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
    border: 0; background: transparent; color: var(--ink-muted); border-radius: 999px; font: inherit; font-size: 10.5px; font-weight: 600;
    letter-spacing: .02em; text-decoration: none; min-width: 0; cursor: pointer;
  }
  .tabbar svg { width: 22px; height: 22px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  .tabbar a.on { background: var(--ink); color: #fff; }
  .tabbar .tab-plus { flex: 0 0 56px; background: var(--grad); color: #fff; box-shadow: 0 8px 20px rgba(70,60,200,.4); }
  body:has(#nx-syncbar:not([hidden])) .tabbar { bottom: calc(46px + var(--safe-b)); }
  body:has(.sidebar.open) .tabbar { display: none; }
}

@media (max-width: 380px) { .home-greeting h1 { font-size: 28px; } .tabbar { left: 8px; right: 8px; } }
@media (hover: none) { .nav a:hover, .btn:hover { background: inherit; } .btn.primary:hover { background: var(--ink); } }
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } }
@media print { body::before { display: none; } .sidebar, .tabbar, .m-topbar { display: none; } }

/* ---------- Max coach card (its styles are inline in _coach.html, so match specificity) ---------- */
.main-wrap, .main { min-width: 0; }
.main .coach-card {
  background: var(--glass); border: 1px solid var(--glass-edge); border-radius: 32px; box-shadow: var(--glass-shadow);
  backdrop-filter: blur(26px) saturate(170%); -webkit-backdrop-filter: blur(26px) saturate(170%); padding: 22px; margin-bottom: 16px;
}
.main .mx-bubble { border: 0; border-radius: 24px; background: rgba(255,255,255,.7); padding: 16px 20px; }
.main .mx-bubble::before, .main .mx-bubble::after { display: none; }
.main .mx-name { border-top: 0; font-family: var(--font-ui); font-weight: 700; letter-spacing: .12em; }
.main .mx-headline { font-family: var(--font-ui); font-weight: 600; letter-spacing: -.02em; }
.main .mx-mode { font-family: var(--font-ui); font-weight: 600; }
.main .mx-ask { background: var(--grad); color: #fff; border: 0; border-radius: 18px; padding: 8px 14px; max-width: 100%; }
.main .mx-btn { border-radius: 999px; background: rgba(255,255,255,.7); border-color: var(--hairline-strong); padding: 6px 12px; min-height: 34px; font-family: var(--font-ui); font-weight: 600; }
.main .mx-btn:hover, .main .mx-btn[aria-pressed="true"] { background: var(--ink); color: #fff; border-color: var(--ink); }
@media (max-width: 820px) {
  .main-wrap { width: 100%; max-width: 100vw; overflow-x: clip; }
  .main .coach-card { padding: 18px; border-radius: 28px; }
  .main .mx-btn { min-height: 44px; padding: 8px 14px; }
  .main .mx-bubble { padding: 14px 16px; }
  .mx-msg, .mx-headline, .mx-ask { overflow-wrap: anywhere; }
}

/* grid tracks must be allowed to shrink (1fr alone = minmax(auto,1fr) lets long rows widen the page) */
.home-col, .home-grid > * { min-width: 0; }
@media (max-width: 1100px) { .home-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 820px) {
  .grid.cols-2, .grid.cols-3, .grid.cols-4, .hb-grid, .bc-grid, .form-row, .form-row-3, .plan-grid, .cal-wrap { grid-template-columns: minmax(0, 1fr); }
  .rowx .txt, .up-row .up-title { overflow-wrap: anywhere; }
}

/* Planner (desktop): the 7 day columns are ~145px wide, so the row's own buttons squeezed task text to a sliver.
   Float the repeat/delete buttons over the row's right edge on hover instead of reserving space for them. */
@media (hover: hover) and (min-width: 821px) {
  .plan-col .rowx { position: relative; }
  .plan-col .rowx .rowx-del, .plan-col .rowx .recur-btn { position: absolute; top: 6px; background: var(--pop); border-radius: 999px; z-index: 2; }
  .plan-col .rowx .rowx-del { right: 0; }
  .plan-col .rowx .recur-btn { right: 26px; }
  .plan-col .rowx .recur-btn:not(.on):not(.active) { opacity: 0; }
  .plan-col .rowx:hover .recur-btn { opacity: 1; }
}

/* polish: soften hard edges */
.cal-nav button,.cal-nav a,.cal-head button,.cal-today,.cal-prev,.cal-next{border-radius:999px !important}
.page-title,.page-head,.main h1{border-bottom-color:transparent !important}
.kcol-head,.kanban-col>.head,.col-head{border-radius:14px !important;border-color:transparent !important}
.tcard,.task-card,.kcard{border-left-width:0 !important;border-radius:16px !important}
