/* ============================================================
   Theron OS · G-Suite for agents — Mail · Calendar · Contacts
   Agent-operated workspace apps. Same brand tokens as the shell.
   ============================================================ */

/* ── dock identities ── */
.ic-mail{background:linear-gradient(160deg,#FF9E6E,#F0683C 74%);color:#fff;}
html[data-theme="dark"] .ic-mail{background:linear-gradient(160deg,#FF9466,#E05A30 74%);}
#dock [data-dock="mail"] svg{color:#F0683C;}
#dock [data-dock="mail"].focused-app{background:linear-gradient(165deg,#FF9E6E,#F0683C);}
.ic-calendar{background:linear-gradient(160deg,#7FB8FF,#3D7BE0 74%);color:#fff;}
html[data-theme="dark"] .ic-calendar{background:linear-gradient(160deg,#6FAAF0,#2E6AD0 74%);}
#dock [data-dock="calendar"] svg{color:#3D7BE0;}
#dock [data-dock="calendar"].focused-app{background:linear-gradient(165deg,#7FB8FF,#3D7BE0);}
.ic-contacts{background:linear-gradient(160deg,#9FD8C0,#48A98A 74%);color:#06311f;}
html[data-theme="dark"] .ic-contacts{background:linear-gradient(160deg,#8FCCB2,#3C9B7C 74%);}
#dock [data-dock="contacts"] svg{color:#48A98A;}
#dock [data-dock="contacts"].focused-app{background:linear-gradient(165deg,#9FD8C0,#48A98A);}

/* ── shared avatar chip ── */
.mav{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:34px;height:34px;border-radius:50%;
  font-family:var(--ff-mono);font-size:12px;font-weight:600;letter-spacing:.02em;line-height:1;}
.mav.xs{width:20px;height:20px;font-size:9px;margin-left:-5px;border:2px solid var(--surface);}
.mav.sm{width:26px;height:26px;font-size:10px;}
.mav.lg{width:44px;height:44px;font-size:15px;}
.tint-amber{background:var(--amber-glow);color:var(--accent-ink);}
.tint-sky{background:rgba(126,184,255,.22);color:#2762b0;}
.tint-moss{background:var(--ok-soft);color:var(--ok);}
.tint-plum{background:rgba(200,160,210,.25);color:#7b4d86;}
.tint-ink{background:var(--surface-2);color:var(--ink-2);}
html[data-theme="dark"] .tint-sky{background:rgba(126,184,255,.18);color:#9fc4ff;}
html[data-theme="dark"] .tint-plum{background:rgba(200,160,210,.18);color:#d3a9de;}

/* ════════════════ MAIL ════════════════ */
.mailapp{display:grid;grid-template-columns:182px 318px 1fr;height:100%;background:var(--surface);overflow:hidden;}
.mail-rail{display:flex;flex-direction:column;gap:8px;padding:16px 13px;border-right:1px solid var(--line-2);background:var(--surface-2);}
.mail-rail .pbtn{justify-content:flex-start;width:100%;}
.mail-cats{display:flex;flex-direction:column;gap:2px;margin-top:8px;}
.mcat{display:flex;align-items:center;gap:9px;width:100%;border:0;background:transparent;cursor:pointer;text-align:left;
  font-family:var(--ff-ui);font-size:13px;font-weight:500;color:var(--ink-2);padding:8px 10px;border-radius:var(--r-md);transition:background .14s,color .14s;}
.mcat:hover{background:color-mix(in srgb,var(--ink-1) 6%,transparent);color:var(--ink-1);}
.mcat.on{background:var(--surface);color:var(--ink-1);font-weight:600;box-shadow:var(--shadow-1);}
.mcat-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.mcat.tint-amber .mcat-dot{background:var(--accent);}
.mcat.tint-moss .mcat-dot{background:var(--ok);}
.mcat.tint-sky .mcat-dot{background:#3D7BE0;}
.mcat.tint-ink .mcat-dot{background:var(--ink-3);}
.mcat-l{flex:1;}
.mcat-n{font-family:var(--ff-mono);font-size:11px;background:var(--accent);color:#fff;border-radius:var(--r-full);padding:1px 7px;}
.mail-railnote{margin-top:auto;font-size:11px;line-height:1.5;color:var(--ink-3);display:flex;gap:6px;align-items:flex-start;padding-top:12px;}
.mail-railnote svg{width:14px;height:14px;color:var(--ok);flex-shrink:0;margin-top:1px;}

.mail-list{border-right:1px solid var(--line-2);overflow-y:auto;background:var(--surface);}
.mlist-h{display:flex;align-items:baseline;justify-content:space-between;padding:15px 17px 11px;position:sticky;top:0;background:var(--surface);z-index:2;border-bottom:1px solid var(--line-2);}
.mlist-h b{font-family:var(--ff-display);font-size:15px;font-weight:700;letter-spacing:-.01em;}
.mlist-h span{font-family:var(--ff-mono);font-size:11px;color:var(--ink-3);}
.mrow{display:flex;gap:11px;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line-2);background:transparent;cursor:pointer;padding:13px 16px;transition:background .13s;}
.mrow:hover{background:var(--surface-2);}
.mrow.on{background:color-mix(in srgb,var(--accent) 9%,transparent);box-shadow:inset 3px 0 0 var(--accent);}
.mrow-m{flex:1;min-width:0;}
.mrow-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px;}
.mrow-from{font-size:13.5px;font-weight:600;color:var(--ink-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mrow.unread .mrow-from{font-weight:700;}
.mrow-at{font-family:var(--ff-mono);font-size:10.5px;color:var(--ink-3);flex-shrink:0;}
.mrow-subj{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--ink-1);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mrow.unread .mrow-subj{color:var(--ink-1);}
.mrow:not(.unread) .mrow-subj{color:var(--ink-2);}
.mrow-subj svg{width:12px;height:12px;color:var(--accent);flex-shrink:0;}
.mrow-tri{display:flex;align-items:flex-start;gap:5px;font-size:11.5px;line-height:1.4;color:var(--ink-3);margin-top:4px;}
.mrow-tri svg{width:12px;height:12px;color:var(--accent-ink);flex-shrink:0;margin-top:1px;}
.mrow.unread::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0;margin-top:6px;}
.mrow:not(.unread)::before{content:'';width:7px;flex-shrink:0;}

.mail-read{display:flex;flex-direction:column;overflow:hidden;background:var(--surface-2);}
.mail-pick,.mail-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;color:var(--ink-3);padding:40px;}
.mail-pick svg{width:40px;height:40px;opacity:.5;}
.mail-pick b,.mail-empty b{display:block;color:var(--ink-1);font-family:var(--ff-display);font-size:17px;}
.mail-pick span{font-size:13px;display:block;margin-top:3px;max-width:30ch;}
.mail-empty{height:100%;}
.mail-empty svg{width:34px;height:34px;opacity:.4;}
.mread-bar{display:flex;align-items:flex-start;gap:12px;padding:16px 20px 13px;border-bottom:1px solid var(--line-2);background:var(--surface);}
.mread-ti{flex:1;min-width:0;}
.mread-ti b{display:block;font-family:var(--ff-display);font-size:17px;font-weight:700;letter-spacing:-.015em;line-height:1.25;}
.mread-ti span{font-size:12px;color:var(--ink-2);margin-top:3px;display:block;}
.mread-tools{display:flex;gap:4px;flex-shrink:0;}
.iconbtn{width:32px;height:32px;display:grid;place-items:center;border:1px solid transparent;background:transparent;border-radius:var(--r-md);cursor:pointer;color:var(--ink-2);transition:background .14s,color .14s,border-color .14s;}
.iconbtn:hover{background:var(--surface-2);color:var(--ink-1);border-color:var(--line-2);}
.iconbtn svg{width:17px;height:17px;}
.mread-tri{display:flex;gap:9px;align-items:flex-start;margin:13px 20px 0;padding:11px 13px;background:color-mix(in srgb,var(--accent) 7%,var(--surface));
  border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);border-radius:var(--r-md);font-size:12.5px;line-height:1.5;color:var(--ink-1);}
.mread-tri svg{width:15px;height:15px;color:var(--accent-ink);flex-shrink:0;margin-top:1px;}
.mread-tri b{color:var(--accent-ink);}
.mread-scroll{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:14px;}
.mmsg{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-lg);padding:14px 16px;box-shadow:var(--shadow-1);}
.mmsg.out{background:color-mix(in srgb,var(--accent) 6%,var(--surface));border-color:color-mix(in srgb,var(--accent) 22%,var(--line-2));}
.mmsg-h{display:flex;align-items:center;gap:9px;margin-bottom:9px;}
.mmsg-who{flex:1;min-width:0;display:flex;flex-direction:column;}
.mmsg-who b{font-size:13px;font-weight:600;}
.mmsg-who span{font-size:11px;color:var(--ink-3);}
.mmsg-at{font-family:var(--ff-mono);font-size:10.5px;color:var(--ink-3);}
.mmsg-body{font-size:13.5px;line-height:1.6;color:var(--ink-1);}
.mmsg-rcpt{margin-top:11px;padding-top:10px;border-top:1px solid var(--line-2);}

.mread-compose{border-top:1px solid var(--line-2);padding:13px 20px 16px;background:var(--surface);}
.mc-actions{display:flex;gap:9px;}
.mc-open{display:flex;flex-direction:column;gap:9px;}
.mc-h{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--ink-1);}
.mc-h svg{width:15px;height:15px;color:var(--ink-2);}
.mc-by{display:inline-flex;align-items:center;gap:4px;margin-left:auto;font-family:var(--ff-mono);font-size:10.5px;font-weight:500;color:var(--accent-ink);}
.mc-by svg{width:12px;height:12px;}
.mc-ta{width:100%;box-sizing:border-box;min-height:120px;resize:vertical;font-family:var(--ff-ui);font-size:13.5px;line-height:1.6;color:var(--ink-1);
  background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);padding:12px 14px;outline:none;transition:border-color .15s;}
.mc-ta.tall{min-height:180px;}
.mc-ta:focus{border-color:var(--accent);}
.mc-foot{display:flex;align-items:center;gap:9px;justify-content:flex-end;}
.mc-note{display:flex;gap:6px;align-items:center;font-size:11px;color:var(--ink-3);}
.mc-note svg{width:13px;height:13px;color:var(--ok);}
.mc-thinking{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-2);padding:14px 4px;}
.mc-thinking svg{width:22px;height:22px;}

/* compose overlay (mail + cal share .mail-ov / .mc-card) */
.mail-ov{align-items:flex-start;padding-top:8vh;}
.mc-card{width:min(560px,94vw);}
.mc-fields{padding:18px 20px 16px;display:flex;flex-direction:column;gap:11px;}
.mc-f{display:flex;flex-direction:column;gap:5px;}
.mc-f>span{font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);}
.mc-f input,.mc-f select{font-family:var(--ff-ui);font-size:13.5px;color:var(--ink-1);background:var(--surface-2);border:1px solid var(--line);
  border-radius:var(--r-md);padding:9px 12px;outline:none;transition:border-color .15s;}
.mc-f input:focus,.mc-f select:focus{border-color:var(--accent);}
.mc-row{display:flex;gap:10px;}
.mc-row .mc-f{flex:1;}
.mc-f.grow{flex:2;}

/* approval card (consequential actions) */
.ak-ov{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--ink-1) 34%,transparent);
  backdrop-filter:blur(7px);opacity:0;transition:opacity .2s var(--ease);}
.ak-ov.on{opacity:1;}
.ak-card{width:min(420px,92vw);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-3);
  padding:22px 22px 18px;transform:translateY(14px) scale(.97);transition:transform .24s var(--ease-soft);}
.ak-ov.on .ak-card{transform:none;}
.ak-h{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.ak-h svg,.ak-h img{width:30px;height:30px;flex-shrink:0;}
.ak-h b{font-family:var(--ff-display);font-size:18px;font-weight:700;letter-spacing:-.01em;}
.ak-b{font-size:14px;line-height:1.6;color:var(--ink-1);margin-bottom:18px;}
.ak-b b{font-weight:600;}
.ak-sub{color:var(--ink-2);font-size:12.5px;}
.ak-warn{display:inline-flex;gap:5px;align-items:center;margin-top:8px;font-size:12px;color:var(--accent-ink);}
.ak-warn svg{width:14px;height:14px;}
.ak-foot{display:flex;justify-content:flex-end;gap:9px;}

/* ════════════════ CONTACTS ════════════════ */
.contactsapp{display:flex;flex-direction:column;height:100%;background:var(--surface);}
.ct-bar{display:flex;align-items:center;gap:10px;padding:18px 22px 14px;border-bottom:1px solid var(--line-2);}
.ct-bar b{font-family:var(--ff-display);font-size:18px;font-weight:700;letter-spacing:-.015em;}
.ct-bar>span{font-family:var(--ff-mono);font-size:11px;color:var(--ink-3);}
.ct-grid{flex:1;overflow-y:auto;padding:18px 22px;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;align-content:start;}
.ct-card{position:relative;display:flex;gap:13px;align-items:flex-start;padding:15px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);
  box-shadow:var(--shadow-1);transition:transform .15s,box-shadow .16s,border-color .15s;}
.ct-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-2);border-color:color-mix(in srgb,var(--ink-1) 18%,var(--line));}
.ct-m{flex:1;min-width:0;}
.ct-m>b{font-size:14px;font-weight:600;display:block;outline:none;}
.ct-role{font-size:12px;color:var(--ink-2);display:block;margin-top:1px;}
.ct-mail{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--accent-ink);margin-top:7px;cursor:pointer;text-decoration:none;}
.ct-mail svg{width:13px;height:13px;}
.ct-mail:hover{text-decoration:underline;}
.ct-card .fn-x{position:absolute;top:9px;right:9px;}

/* ════════════════ CALENDAR ════════════════ */
.calapp{display:flex;flex-direction:column;height:100%;background:var(--surface);}
.cal-bar{display:flex;align-items:center;gap:9px;padding:14px 20px;border-bottom:1px solid var(--line-2);}
.cal-nav{display:flex;align-items:center;gap:7px;}
.cal-nav b{font-family:var(--ff-display);font-size:18px;font-weight:700;letter-spacing:-.015em;min-width:158px;}
.cal-body{flex:1;display:grid;grid-template-columns:1fr 290px;overflow:hidden;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:minmax(86px,1fr);gap:0;padding:0;overflow-y:auto;border-right:1px solid var(--line-2);}
.cal-dow{padding:9px 10px;font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);
  border-bottom:1px solid var(--line-2);background:var(--surface-2);position:sticky;top:0;z-index:2;text-align:left;}
.cal-cell{border-bottom:1px solid var(--line-2);border-right:1px solid var(--line-2);padding:6px 7px;cursor:pointer;display:flex;flex-direction:column;gap:4px;
  transition:background .13s;min-height:0;}
.cal-cell:nth-child(7n+1){border-left:0;}
.cal-cell:hover{background:var(--surface-2);}
.cal-cell.out{background:color-mix(in srgb,var(--ink-1) 2.5%,transparent);cursor:default;}
.cal-cell.sel{background:color-mix(in srgb,var(--accent) 8%,transparent);box-shadow:inset 0 0 0 1.5px var(--accent);}
.cal-dn{font-family:var(--ff-mono);font-size:12px;font-weight:600;color:var(--ink-2);}
.cal-cell.today .cal-dn{background:var(--accent);color:#fff;width:21px;height:21px;border-radius:50%;display:grid;place-items:center;}
.cal-evs{display:flex;flex-direction:column;gap:3px;min-width:0;}
.cal-ev{display:flex;align-items:center;gap:3px;font-size:10.5px;font-weight:500;padding:2px 6px;border-radius:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cal-ev svg{width:10px;height:10px;flex-shrink:0;}
.cal-ev.tint-sky{background:rgba(126,184,255,.2);color:#2762b0;}
.cal-ev.tint-moss{background:var(--ok-soft);color:var(--ok);}
.cal-ev.tint-plum{background:rgba(200,160,210,.24);color:#7b4d86;}
.cal-ev.tint-amber{background:var(--amber-glow);color:var(--accent-ink);}
.cal-more{font-family:var(--ff-mono);font-size:9.5px;color:var(--ink-3);}

.cal-day{overflow-y:auto;padding:16px 16px 20px;background:var(--surface-2);}
.cd-h{display:flex;align-items:baseline;gap:8px;margin-bottom:13px;}
.cd-h b{font-family:var(--ff-display);font-size:18px;font-weight:700;}
.cd-h span{font-size:13px;color:var(--ink-2);}
.cd-ev{position:relative;border:1px solid var(--line);border-left-width:3px;border-radius:var(--r-md);background:var(--surface);padding:11px 13px;margin-bottom:9px;box-shadow:var(--shadow-1);}
.cd-ev.tint-sky{border-left-color:#3D7BE0;}
.cd-ev.tint-moss{border-left-color:var(--ok);}
.cd-ev.tint-plum{border-left-color:#9B6FA8;}
.cd-ev.tint-amber{border-left-color:var(--accent);}
.cd-time{font-family:var(--ff-mono);font-size:10.5px;color:var(--ink-3);display:block;}
.cd-ti{display:flex;align-items:center;gap:5px;font-size:14px;font-weight:600;color:var(--ink-1);margin-top:3px;}
.cd-ti svg{width:13px;height:13px;color:var(--accent-ink);flex-shrink:0;}
.cd-tri{display:block;font-size:11.5px;line-height:1.45;color:var(--ink-2);margin-top:5px;}
.cd-ev .ev-who{display:flex;margin-top:8px;padding-left:5px;}
.cd-rcpt{margin-top:9px;padding-top:8px;border-top:1px solid var(--line-2);}
.cd-ev .fn-x{position:absolute;top:8px;right:8px;}
.cd-empty{display:flex;flex-direction:column;align-items:center;gap:11px;text-align:center;color:var(--ink-3);padding:40px 20px;font-size:13px;line-height:1.5;}
.cd-empty svg{width:30px;height:30px;opacity:.45;}

.ft-slots{display:flex;flex-direction:column;gap:9px;margin:4px 0 14px;}
.ft-slot{display:flex;align-items:center;gap:11px;width:100%;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-md);
  padding:12px 14px;cursor:pointer;transition:border-color .14s,transform .14s,box-shadow .15s;}
.ft-slot:hover{border-color:var(--accent);transform:translateX(2px);box-shadow:var(--shadow-1);}
.ft-slot svg{width:18px;height:18px;color:var(--accent-ink);flex-shrink:0;}
.ft-slot b{font-size:14px;font-weight:600;}
.ft-slot span{font-size:11.5px;color:var(--ink-3);margin-left:auto;}

/* fsort tint pills reused by triage/find-time */
.fsort-to.tint-amber{color:var(--accent-ink);}
.fsort-to.tint-moss{color:var(--ok);}
.fsort-to.tint-sky{color:#2762b0;}
