/* Approved Olive diary theme. Presentation only; workflow hooks stay intact. */
:is(.ot-app-page,.ot-settings-page) {
  --ot-bg:#f7f9f5;
  --ot-text:#263b2e;
  --ot-text-muted:#626e63;
  --ot-text-subtle:#69736a;
  --ot-border:#e4e9de;
  --ot-border-strong:#c9d7c1;
  --ot-border-tint:#e4e9de;
  --ot-surface-2:#f3f6ee;
  --ot-primary:#3f7040;
  --ot-primary-hover:#355b2e;
  --ot-primary-soft:#dceecd;
  --ot-primary-text:#fff;
  --ot-grove:#3f7040;
  --ot-grove-2:#355b2e;
  --ot-sun-soft:#fff1bc;
  --ot-diary-peach:#ffe8dc;
  --ot-diary-peach-ink:#a25843;
  --ot-diary-blue:#e3f0fb;
  --ot-diary-blue-ink:#47728f;
  --ot-shadow-card:2px 3px 0 #e8ece3,0 5px 12px #35453206;
  --ot-shadow-card-hover:2px 4px 0 #dce5d4,0 7px 14px #3545320b;
}
.ot-app-page .ot-shell,.ot-app-page .ot-attn { background:var(--ot-bg); }
.ot-app-page :is(.ot-card,.ot-mem-filter,.ot-stat-filter,.ot-summary-card,.ot-mem-card,.ot-mcard) { box-shadow:var(--ot-shadow-card); }
.ot-app-page :is(.ot-card,.ot-mem-filter,.ot-stat-filter,.ot-summary-card) { border:1px solid var(--ot-border); border-radius:24px; background:#fff; }
.ot-app-page :is(.ot-card-title,.ot-sec-title--bday,.ot-section-title,.ot-monthlabel,.ot-quick-card h2,.ot-quick-review-heading h2) { font-family:var(--ot-font-display); }
.ot-app-page :is(.ot-add-btn,.ot-save-btn,.ot-btn-primary) {
  background:#d0e9b8; color:#355b2e; border:1px solid #aacb8f;
  border-radius:var(--ot-radius-leaf-md); box-shadow:0 3px 0 #a6c98a;
  font-family:var(--ot-font-display);
}
.ot-app-page :is(.ot-add-btn,.ot-save-btn,.ot-btn-primary):hover { background:#c4e1a7; color:#355b2e; }
.ot-app-page :is(.ot-add-btn,.ot-save-btn,.ot-btn-primary):disabled { box-shadow:none; }
.ot-app-page .ot-navitem svg { border-radius:12px; }
.ot-app-page .ot-navitem.is-active { color:var(--ot-primary); }
.ot-app-page .ot-navitem.is-active svg { background:#dceecd; transform:none; }
.ot-app-page .ot-navitem:nth-of-type(2).is-active svg { background:var(--ot-sun-soft); color:#80651c; }
.ot-app-page .ot-navitem:nth-of-type(4).is-active svg { background:var(--ot-diary-blue); color:var(--ot-diary-blue-ink); }
.ot-app-page .ot-navitem:nth-of-type(5).is-active svg { background:var(--ot-diary-peach); color:var(--ot-diary-peach-ink); }
.ot-nav-brand-sprout { width:44px; height:44px; flex:0 0 auto; }
.ot-app-page .ot-appbar-title::before { display:none; }
.ot-app-page .ot-appbar-title { padding-left:0; }
.ot-app-page .ot-avatar { border-radius:11px; }

/* Home: calendars and a leaf laurel, rendered from the existing dashboard API. */
.ot-app-page .ot-home-grid { gap:24px; align-items:start; }
.ot-app-page .ot-card--work { border-top-width:1px; align-self:start; }
.ot-app-page .ot-work-title { font-size:25px; }
.ot-app-page .ot-work-title-leaf {
  width:34px; height:34px; flex-basis:34px; padding:8px; border-radius:12px;
  color:var(--ot-primary); background:var(--ot-primary-soft); transform:rotate(-5deg);
}
.ot-app-page .ot-work-eyebrow { font-size:12px; color:#80651c; }
.ot-app-page .ot-home-aside,.ot-app-page .ot-intro-cards { align-self:start; }
.ot-app-page .ot-card-title,.ot-app-page .ot-sec-title--bday { font-size:21px; gap:10px; margin-bottom:20px; }
.ot-app-page :is(.ot-card-title,.ot-sec-title--bday) > svg { width:34px; height:34px; padding:8px; border-radius:12px; color:var(--ot-diary-peach-ink); background:var(--ot-diary-peach); transform:rotate(-5deg); }
.ot-app-page .ot-card--rank .ot-card-title > svg { color:#80651c; background:var(--ot-sun-soft); }
.ot-app-page .ot-sec { border-top-style:dashed; }
.ot-app-page .ot-summary-scroll { border:0; border-radius:12px; }
.ot-app-page .ot-summary-table tr > :first-child { border-right:0; }
.ot-app-page .ot-summary-table tbody tr:first-child { border-top:0; }
.ot-app-page .ot-card-total { border-top:0; margin-top:5px; padding-top:8px; }
.ot-app-page .ot-card-total b { font:700 25px var(--ot-font-display); }
.ot-app-page #teams-without-attendance-container .ot-chip--todo { min-height:54px; background:#f6faef; border-color:#dce6d4; color:var(--ot-primary); box-shadow:0 2px 0 #e2eacf; }
.ot-app-page .ot-todo-count { font-size:12px; }
.ot-birthday-row { display:grid; grid-template-columns:48px minmax(0,1fr); gap:14px; align-items:start; padding:14px 0; border-top:1px dashed #eee5df; }
.ot-birthday-row:first-child { padding-top:0; border-top:0; }
.ot-birthday-row:last-child { padding-bottom:0; }
.ot-birthday-calendar { position:relative; width:48px; display:flex; flex-direction:column; text-align:center; border:1px solid #f0d2c0; border-radius:10px; background:#fff; box-shadow:1px 3px 0 #f5e3d7; }
.ot-birthday-calendar::before,.ot-birthday-calendar::after { content:''; position:absolute; width:3px; height:7px; top:-4px; background:#c69883; border-radius:2px; }
.ot-birthday-calendar::before { left:11px; }.ot-birthday-calendar::after { right:11px; }
.ot-birthday-calendar > span { background:var(--ot-diary-peach); color:var(--ot-diary-peach-ink); border-radius:9px 9px 0 0; padding:5px 0 3px; font-size:10px; }
.ot-birthday-calendar > strong { padding:2px 0 3px; font:700 25px var(--ot-font-display); color:var(--ot-diary-peach-ink); }
.ot-birthday-calendar.is-today { transform:rotate(-4deg); border-color:#e8c572; box-shadow:1px 3px 0 #f5e4ab; }
.ot-birthday-calendar.is-today > span { background:var(--ot-sun-soft); color:#80651c; }
.ot-birthday-people { display:grid; gap:12px; padding-top:3px; }
.ot-birthday-person { display:grid; gap:4px; }
.ot-birthday-person strong { font-size:15px; }
.ot-birthday-person small { font-size:12px; color:var(--ot-text-muted); overflow-wrap:anywhere; }
.ot-birthday-today { margin-left:7px; color:var(--ot-diary-peach-ink); font-size:11px; }
.ot-app-page .ot-rank-list { gap:0; }
.ot-app-page .ot-rank-item { padding:12px 0; border-bottom-style:dashed; }
.ot-app-page .ot-rank-num { background:transparent; }
.ot-app-page .ot-rank-item.is-top { min-height:80px; }
.ot-app-page .ot-rank-item.is-top .ot-rank-num { position:relative; width:64px; height:64px; font:700 29px var(--ot-font-display); color:var(--ot-primary); background:transparent; }
.ot-rank-laurel { position:absolute; inset:0; width:64px; height:64px; pointer-events:none; }
.ot-app-page .ot-rank-item.is-top .ot-rank-name { font:700 22px var(--ot-font-display); }
.ot-app-page .ot-rank-item.is-top .ot-rank-rate { font:700 28px var(--ot-font-display); }

/* Attendance: one compact context row; existing modes and save dock are retained. */
.ot-app-page .ot-attn .ot-attn-layout { max-width:900px; width:calc(100% - 48px); margin:20px auto 12px; padding:22px; border:1px solid var(--ot-border); border-radius:24px; background:#fff; box-shadow:var(--ot-shadow-card); }
.ot-app-page .ot-attn .ot-attn-controls { display:flex; flex-direction:column; margin-bottom:12px; border:0; background:transparent; }
.ot-app-page .ot-attn .ot-datenav { padding:0; }
.ot-app-page .ot-attn .ot-monthlabel { font:700 21px var(--ot-font-display); }
.ot-app-page .ot-attn .ot-iconbtn { background:#f2f6ed; border:1px solid #e0e6d8; border-radius:50%; }
.ot-app-page .ot-attn .ot-todaybtn { background:var(--ot-sun-soft); color:#80651c; border-radius:12px 12px 4px 12px; box-shadow:0 2px 0 #ecd98c; }
.ot-attendance-context-scroll { min-width:0; overflow-x:auto; --ot-scroll-opacity:0; scrollbar-width:thin; scrollbar-color:rgb(147 173 153 / var(--ot-scroll-opacity)) transparent; transition:--ot-scroll-opacity .35s; }
.ot-attendance-context-scroll.is-scrolling { --ot-scroll-opacity:1; transition-duration:.12s; }
.ot-attendance-context-scroll::-webkit-scrollbar { height:6px; }
.ot-attendance-context-scroll::-webkit-scrollbar-thumb { border-radius:999px; background:rgb(147 173 153 / var(--ot-scroll-opacity)); }
.ot-attendance-context-scroll::-webkit-scrollbar-track { background:transparent; }
.ot-attendance-context-scroll::-webkit-scrollbar-button { display:none; width:0; height:0; }
.ot-attendance-context { display:grid; grid-template-columns:minmax(180px,1fr) minmax(220px,.8fr); gap:16px; align-items:end; padding:14px 0 18px; border-bottom:1px dashed var(--ot-border); }
.ot-app-page .ot-attn .ot-attendance-context :is(.ot-chips-wrap,.ot-team) { grid-column:auto; grid-row:auto; padding:0; border:0; }
.ot-app-page .ot-attn .ot-chips { flex-wrap:nowrap; gap:5px; padding:3px 1px 5px; }
.ot-app-page .ot-attn .ot-chip { flex:1; min-width:0; min-height:40px; padding:3px; border-radius:12px; }
.ot-app-page .ot-attn .ot-chip.is-selected { background:var(--ot-primary-soft); box-shadow:0 3px 0 #c2d9ac; }
.ot-app-page .ot-attn .ot-chip.is-current .ot-chip-md::after { display:none; }
.ot-app-page .ot-attn .ot-chip-md { font:600 14px var(--ot-font); }
.ot-app-page .ot-attn .ot-team-row { display:grid; grid-template-columns:90px minmax(100px,1fr); gap:10px; }
.ot-app-page .ot-attn .ot-field { flex-direction:column; align-items:stretch; gap:5px; }
.ot-app-page .ot-attn .ot-field-label { font:400 11px var(--ot-font); }
.ot-app-page .ot-attn .ot-select { min-height:40px; padding:5px 7px; border:1px solid #dce4d5; border-radius:11px; background:#fcfdfa; font:400 13px var(--ot-font); }
.ot-app-page .ot-attendance-modes { align-self:flex-start; flex:0 0 auto; min-height:40px; padding:4px; gap:4px; background:#f1f4eb; border-radius:14px; margin-bottom:5px; }
.ot-app-page .ot-attendance-modes button { min-height:32px; padding:4px 12px; border:0; border-radius:10px; color:#58635b; }
.ot-app-page .ot-attendance-modes button[aria-pressed=true] { background:#fff; color:var(--ot-primary); box-shadow:0 2px 3px #3a523612; }
.ot-app-page .ot-attn .ot-members-grid { gap:12px; }
.ot-app-page .ot-attn .ot-board-lane { padding:0; border:1px solid var(--ot-border); border-radius:18px; background:#fdfefc; overflow:hidden; }
.ot-app-page .ot-attn .ot-board-lane:nth-child(3) { border-left:1px solid var(--ot-border); }
.ot-app-page .ot-attn .ot-board-lane-head,.ot-app-page .ot-attn .ot-board-lane.is-absent .ot-board-lane-head { flex-basis:52px; min-height:52px; padding:10px 13px; background:color-mix(in srgb,var(--status-color,var(--ot-primary)) 12%,white); }
.ot-app-page .ot-board-lane-head::before { display:none; }
.ot-app-page .ot-board-lane-title strong { font:700 19px var(--ot-font-display); }
.ot-app-page .ot-board-count { color:var(--status-ink,var(--ot-primary)); font-weight:700; }
.ot-app-page .ot-board-person { border:1px solid #dae3d3; border-radius:12px; background:white; box-shadow:0 3px 0 #e6ecdf; }
.ot-app-page .ot-board-person.is-selected { border-color:#60936c; background:#eaf4df; box-shadow:0 3px 0 #c7dcad; }
.ot-app-page .ot-attn .ot-save-dock { background:var(--ot-bg); border-top:1px dashed var(--ot-border); }
.ot-app-page .ot-attn .ot-save-btn { font-family:var(--ot-font-display); box-shadow:0 3px 0 #a6c98a; }
.ot-app-page .ot-quick-card { border-radius:23px; box-shadow:0 6px 0 #e2eacd,0 10px 20px #37432c09; }
.ot-app-page .ot-quick-playfield button { background:var(--ot-primary-soft); color:var(--ot-primary); border-radius:18px; box-shadow:0 3px 0 #c2d9ac; }
.ot-app-page .ot-quick-playfield .ot-quick-meeting { background:var(--ot-diary-blue); color:var(--ot-diary-blue-ink); box-shadow:0 3px 0 #cbdfea; }
.ot-app-page .ot-quick-playfield .ot-quick-absent { background:var(--ot-diary-peach); color:var(--ot-diary-peach-ink); box-shadow:0 3px 0 #eccdbd; }

/* Statistics and people: symmetric cards, restrained blue and peach accents. */
.ot-app-page .ot-stat-body { display:block; }
.ot-app-page .ot-summary { position:static; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.ot-app-page .ot-summary-card { position:relative; padding:24px; }
.ot-summary-icon { position:absolute; top:20px; right:20px; display:grid; place-items:center; width:34px; height:34px; background:var(--ot-primary-soft); color:var(--ot-primary); border-radius:12px; transform:none; }
.ot-summary-icon svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.ot-summary-card:nth-child(2) .ot-summary-icon { background:var(--ot-diary-blue); color:var(--ot-diary-blue-ink); }
.ot-app-page .ot-summary-label { padding-right:40px; }
.ot-app-page .ot-summary-value { color:var(--ot-primary); font:700 39px var(--ot-font-display); }
.ot-app-page .ot-summary-card:nth-child(2) .ot-summary-value { color:var(--ot-diary-blue-ink); }
.ot-app-page .ot-mcard,.ot-app-page .ot-mem-card { border-radius:18px; }
.ot-settings-page #tab-nav .tab-btn.is-active { background:#dceecd!important; color:#355b2e!important; box-shadow:0 2px 0 #c2d9ac; }
.ot-settings-page .ot-settings-main > section { border-radius:24px; box-shadow:var(--ot-shadow-card); }
.ot-settings-page .ot-settings-main button[id^=save-] { background:#d0e9b8!important; color:#355b2e!important; border:1px solid #aacb8f; box-shadow:0 3px 0 #a6c98a; }

@media(min-width:1200px) {
  .ot-app-page .ot-bottomnav { background:#fff; border-right:1px solid var(--ot-border); padding-top:16px; }
  .ot-app-page .ot-nav-brand { color:var(--ot-primary); gap:8px; }
  .ot-app-page .ot-nav-brand-text { color:var(--ot-primary); font-size:22px; }
  .ot-app-page .ot-navitem { min-height:58px; color:var(--ot-text-muted); border-radius:18px; }
  .ot-app-page .ot-navitem.is-active { background:#f4f8ee; border:1px solid #dce8cc; box-shadow:0 3px 0 #e4edda; color:var(--ot-primary); }
  .ot-app-page .ot-navitem:hover { color:var(--ot-primary); background:#f1f6e9; }
  .ot-app-page .ot-navitem svg { width:36px; height:36px; padding:8px; }
  .ot-app-page .ot-home-grid { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); }
  .ot-app-page .ot-home-aside .ot-card { padding:24px; }
  .ot-app-page .ot-home-aside .ot-rank-item { grid-template-columns:26px minmax(0,1fr) auto; }
  .ot-app-page .ot-home-aside .ot-rank-item.is-top { grid-template-columns:64px minmax(0,1fr) auto; }
  .ot-app-page .ot-home-aside .ot-rank-left { display:contents; }
  .ot-app-page .ot-stat .ot-mlist { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; }
  .ot-app-page .ot-stat .ot-mcard { flex-wrap:wrap; }
  .ot-app-page .ot-section-head { padding-top:24px; }
}
@media(max-width:767px) {
  .ot-app-page :is(.ot-card,.ot-mem-filter,.ot-stat-filter) { border-radius:21px; }
  .ot-app-page .ot-card { padding:19px; }
  .ot-app-page .ot-home-grid { gap:18px; }
  .ot-app-page .ot-home-aside,.ot-app-page .ot-intro-cards { margin-top:0; gap:18px; }
  .ot-app-page :is(.ot-work-title,.ot-card-title,.ot-sec-title--bday) { font-size:21px; }
  .ot-app-page .ot-attn .ot-attn-layout { width:calc(100% - 24px); margin:12px auto 8px; padding:14px; border-radius:21px; }
  .ot-attendance-context { grid-template-columns:minmax(100px,1fr) 180px; min-width:286px; gap:6px; padding:13px 0 15px; }
  .ot-app-page .ot-attn .ot-team-row { grid-template-columns:74px minmax(100px,1fr); gap:6px; }
  .ot-app-page .ot-attn .ot-chip { padding:3px 1px; }
  .ot-app-page .ot-attn .ot-chips { gap:2px; }
  .ot-app-page .ot-attn .ot-chip-md { font-size:12px; }
  .ot-app-page .ot-attn .ot-attendance-context.is-month-ready .ot-date-month { display:none; }
  .ot-app-page .ot-attn .ot-select { font-size:12px; padding-left:5px; padding-right:2px; }
  .ot-app-page .ot-attn .ot-field-label { font-size:10px; }
  .ot-app-page .ot-attn .ot-monthlabel { font-size:18px; }
  .ot-app-page .ot-attn .ot-members-grid { gap:9px; }
  .ot-app-page .ot-board-person { min-width:0; font-size:13px; padding:8px; }
  .ot-app-page .ot-attn .ot-board-lane { border-radius:14px; }
  .ot-app-page .ot-attn .ot-board-lane-head,.ot-app-page .ot-attn .ot-board-lane.is-absent .ot-board-lane-head { flex-basis:46px; min-height:46px; padding:8px 10px; }
  .ot-app-page .ot-board-lane-title strong { font-size:17px; }
  .ot-app-page .ot-summary-card { padding:16px; border-radius:21px; }
  .ot-summary-icon { position:static; margin-bottom:7px; width:31px; height:31px; }
  .ot-app-page .ot-summary-label { padding-right:0; }
  .ot-app-page .ot-summary-value { font-size:33px; }
}
@media(prefers-reduced-motion:reduce) {
  .ot-app-page :is(.ot-work-title-leaf,.ot-birthday-calendar) { transform:none; }
}
@media(forced-colors:active) {
  .ot-attendance-context-scroll { --ot-scroll-opacity:1; scrollbar-color:auto; }
}
