/* =====================================================================
   TAKOMAGETHER — shared calendar primitives (event rows, location,
   actions, filters, compact weeks). Linked by Directions B & C.
   ===================================================================== */

/* filter chips */
.fchip{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-500);background:var(--paper);border:1px solid var(--rule-card);padding:6px 11px;cursor:pointer;display:flex;align-items:center;gap:7px;line-height:1;user-select:none;}
.fchip .dot{width:8px;height:8px;border-radius:50%;flex:none;}
.fchip.off{opacity:.4;}
.fchip[data-cat="all"]{background:var(--pine);color:var(--paper);border-color:var(--pine);}
.fchip[data-cat="all"].off{opacity:1;background:var(--paper);color:var(--ink-500);border-color:var(--rule-card);}

/* toggle + nav */
.toggle{display:flex;border:1px solid var(--rule-card);background:var(--paper);}
.toggle button{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-400);background:transparent;border:none;padding:7px 12px;cursor:pointer;}
.toggle button.on{background:var(--pine);color:var(--paper);}
.nav{display:flex;align-items:center;gap:9px;}
.nav button{font-family:var(--font-mono);font-size:13px;font-weight:700;color:var(--pine);background:var(--paper);border:1px solid var(--rule-card);width:30px;height:30px;cursor:pointer;line-height:1;}
.nav button:hover:not(:disabled){background:var(--pine);color:var(--paper);}
.nav button:disabled{opacity:.3;cursor:default;}
.nav .lbl{font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-700);min-width:118px;text-align:center;}
.count{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-300);}

/* event row (detailed) */
.evrow{display:grid;grid-template-columns:112px 1fr;gap:0 16px;padding:13px 0;border-top:1px solid var(--rule-soft);}
.evrow:first-of-type{border-top:none;}
.ev-when{font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.04em;color:var(--ink-600);padding-top:2px;line-height:1.35;text-transform:uppercase;}
.ev-when .allday{color:var(--gold-deep);}
.ev-body{min-width:0;}
.ev-top{display:flex;align-items:baseline;gap:9px;}
.ev-dot{width:9px;height:9px;border-radius:50%;flex:none;transform:translateY(1px);}
.ev-title{font-weight:600;font-size:16px;line-height:1.25;color:var(--ink-800);letter-spacing:-.005em;}
.ev-loc{font-size:13px;line-height:1.45;color:var(--ink-400);margin:5px 0 0 18px;}
.loc-venue{color:var(--ink-600);font-weight:500;}
.loc-street,.loc-city{color:var(--ink-400);}
.loc-sep{margin:0 7px;color:var(--ink-100);}
.loc-online{color:var(--gold-deep);font-weight:500;}
.loc-join{color:var(--gold-deep);text-decoration:underline;text-underline-offset:2px;}
.loc-join:hover{color:var(--alarm);}
.loc-tbd{color:var(--ink-200);font-style:italic;}
.ev-cat{font-family:var(--font-mono);font-size:8.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-left:7px;}
.ev-actions{display:flex;gap:16px;align-items:center;margin:9px 0 0 18px;}
.ev-act{font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-400);cursor:pointer;background:none;border:none;padding:0;display:inline-flex;align-items:center;gap:5px;text-decoration:none;}
.ev-act:hover{color:var(--pine);}
.ev-act.src{color:var(--pine);}
.ev-act.src:hover{color:var(--gold-deep);}
.ev-act .sq{width:6px;height:6px;border:1px solid currentColor;}
.ev-act.added{color:var(--gold-deep);}

/* day header */
.dayhdr{display:flex;align-items:baseline;gap:13px;margin-bottom:4px;}
.dayhdr .dnum{font-family:var(--font-display);font-weight:800;font-size:32px;line-height:1;letter-spacing:-.02em;color:var(--pine);}
.dayhdr .dow{font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-700);}
.dayhdr .dmo{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-300);}
.dayhdr .dcount{margin-left:auto;font-family:var(--font-mono);font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-200);}
.dayempty{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-200);padding:8px 0 4px;}

/* compact weeks */
.compact .ch{display:flex;align-items:center;gap:11px;padding:22px 0 6px;}
.compact .ch .l{font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);}
.compact .ch .ln{flex:1;height:1px;background:var(--rule-strong);}
.weekgrp .wk{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-300);padding:14px 0 7px;border-bottom:1px solid var(--rule-warm);}
.cday{display:grid;grid-template-columns:70px 1fr;gap:0 16px;padding:11px 0;border-bottom:1px solid var(--rule-warm);}
.cday .cd-date{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-600);padding-top:3px;line-height:1.4;}
.cday .cd-date b{display:block;font-family:var(--font-display);font-size:17px;color:var(--pine);letter-spacing:-.01em;}
.clist{min-width:0;}
.crow{padding:5px 0;cursor:pointer;}
.crow .cr-top{display:flex;align-items:baseline;gap:9px;}
.crow .cr-when{font-family:var(--font-mono);font-size:9.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-300);white-space:nowrap;min-width:62px;}
.crow .cr-title{font-weight:600;font-size:14px;line-height:1.3;color:var(--ink-700);}
.crow:hover .cr-title{color:var(--pine);}
.crow .cr-dot{width:7px;height:7px;border-radius:50%;flex:none;transform:translateY(1px);}
.crow .cr-caret{margin-left:auto;font-family:var(--font-mono);font-size:9px;color:var(--ink-200);transition:transform .15s;}
.crow.open .cr-caret{transform:rotate(90deg);color:var(--pine);}
.cr-detail{display:none;margin:7px 0 6px 71px;padding-left:13px;border-left:2px solid var(--rule-strong);}
.crow.open .cr-detail{display:block;}
.cr-detail .ev-loc{margin-left:0;}
.cr-detail .ev-actions{margin-left:0;}
.cempty{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-200);padding:18px 0;}
