/* Palette and type follow ATM_Reference_Guide/index.html */
:root{
  --paper:#E8DFD3;
  --paper-2:#DFD4C4;
  --ink:#2A2827;
  --ink-soft:#4A4643;
  --ink-mute:rgba(42,40,39,0.48);
  --ink-faint:rgba(42,40,39,0.28);
  --rule:rgba(42,40,39,0.18);
  --rule-strong:rgba(42,40,39,0.45);
  --accent:#F16B24;
  --accent-soft:rgba(241,107,36,0.14);
  --mono:'JetBrains Mono',monospace;
  --head:'Archivo',sans-serif;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--paper);color:var(--ink);
  font-family:'Inter',sans-serif;min-height:100vh;
  -webkit-font-smoothing:antialiased;
  padding-bottom:env(safe-area-inset-bottom);
}
::selection{background:var(--accent);color:var(--paper);}
[hidden]{display:none !important;}
button{font:inherit;}

/* topbar */
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:22px 40px 18px;border-bottom:1px solid var(--rule);gap:20px;
}
.brand{display:flex;align-items:center;gap:14px;}
.brand-logo{height:26px;width:auto;display:block;}
.brand-sep{width:1px;height:20px;background:var(--rule-strong);}
.brand-label,.topbar-right{
  font-family:var(--mono);font-size:10.5px;letter-spacing:0.12em;
  text-transform:uppercase;color:var(--ink-mute);
}
.topbar-right{text-align:right;line-height:1.6;}
.topbar-right b{color:var(--ink);font-weight:600;}
#syncLine.pending{color:var(--accent);}

/* sign in */
.signin{max-width:420px;margin:0 auto;padding:60px 22px;}
.signin-logo{height:30px;margin-bottom:40px;}
.hero-title{
  font-family:var(--head);font-weight:800;font-size:clamp(44px,12vw,64px);
  line-height:0.92;letter-spacing:-0.03em;margin:0 0 36px;
}
.hero-title em{font-style:normal;color:var(--accent);}
.signin-form{display:flex;flex-direction:column;gap:12px;}
.signin-form .btn{margin-top:12px;}
.signin-error{font-family:var(--mono);font-size:11px;color:var(--accent);min-height:16px;}

/* tabs + controls */
.tabs{margin:0;border-left:none;border-right:none;border-top:none;display:flex;}
.view-toggle{border:1px solid var(--rule-strong);}
.view-btn{
  flex:1;font-family:var(--mono);font-size:11px;padding:12px 14px;
  background:transparent;color:var(--ink-mute);border:none;cursor:pointer;
  border-right:1px solid var(--rule-strong);letter-spacing:0.06em;text-transform:uppercase;
}
.view-btn:last-child{border-right:none;}
.view-btn.active{background:var(--ink);color:var(--paper);}

.controls{
  padding:18px 40px;border-bottom:1px solid var(--rule);
  display:flex;flex-wrap:wrap;gap:18px 26px;align-items:flex-end;
  background:var(--paper);position:sticky;top:0;z-index:20;
}
.filter-body{display:flex;flex-wrap:wrap;gap:18px 26px;align-items:flex-end;}
.filter-toggle{display:none;}
.ctl-group{display:flex;flex-direction:column;gap:8px;}
.ctl-label{
  font-family:var(--mono);font-size:10px;letter-spacing:0.12em;
  text-transform:uppercase;color:var(--ink-mute);
}
.chip-row{display:flex;gap:5px;flex-wrap:wrap;}
.chip{
  font-family:var(--mono);font-size:11.5px;padding:7px 11px;
  border:1px solid var(--rule-strong);background:transparent;color:var(--ink-soft);
  cursor:pointer;transition:all .12s;user-select:none;letter-spacing:0.02em;
}
.chip:hover{border-color:var(--ink);color:var(--ink);}
.chip.active{background:var(--ink);border-color:var(--ink);color:var(--paper);}
.chip.active.chip-accent{background:var(--accent);border-color:var(--accent);}

.search-wrap{position:relative;flex:1;min-width:220px;max-width:340px;}
#search,.field{
  width:100%;background:transparent;border:none;border-bottom:1px solid var(--rule-strong);
  color:var(--ink);padding:8px 0;font-family:var(--mono);font-size:16px;letter-spacing:0.02em;
  border-radius:0;
}
#search{padding-left:22px;}
#search:focus,.field:focus{outline:none;border-bottom-color:var(--accent);}
#search::placeholder,.field::placeholder{color:var(--ink-mute);}
.search-wrap::before{
  content:"⌕";position:absolute;left:0;top:50%;transform:translateY(-50%);
  color:var(--ink-mute);font-size:14px;
}
textarea.field{resize:vertical;min-height:70px;font-family:'Inter',sans-serif;font-size:15px;line-height:1.45;}

.result-count{
  font-family:var(--mono);font-size:10.5px;color:var(--ink-mute);
  padding:14px 40px 4px;letter-spacing:0.08em;text-transform:uppercase;
}
.result-count b{color:var(--accent);font-weight:600;}

/* cards */
.content-area{padding:8px 40px 40px;}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));border-top:1px solid var(--rule);}
.card{
  padding:20px 22px 18px;cursor:pointer;
  border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);
  position:relative;transition:background .12s;display:flex;flex-direction:column;
}
.card:hover{background:var(--paper-2);}
.card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--rule);}
.card.st-talk::before{background:var(--ink);}
.card.st-chase::before{background:var(--accent);width:4px;}
.card.st-forget{opacity:0.55;}
.card-num{font-family:var(--mono);font-size:10px;color:var(--ink-mute);letter-spacing:0.08em;margin-bottom:4px;}
.card-title{
  font-family:var(--head);font-weight:700;font-size:20px;line-height:1.1;
  letter-spacing:-0.01em;margin-bottom:6px;
}
.card-meta{font-family:var(--mono);font-size:11px;color:var(--ink-mute);margin-bottom:12px;letter-spacing:0.04em;line-height:1.5;}
.card-text{font-size:13px;color:var(--ink-soft);line-height:1.4;margin-bottom:auto;padding-bottom:12px;}
.card-bottom{
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding-top:10px;border-top:1px solid var(--rule);
  font-family:var(--mono);font-size:10px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-mute);
}
.tag-status{color:var(--ink);font-weight:600;}
.tag-status.chase{color:var(--accent);}
.talked{color:var(--accent);font-weight:600;}

/* rows (people, notes) */
.rows{border-top:1px solid var(--rule);}
.row{padding:14px 4px;border-bottom:1px solid var(--rule);cursor:pointer;display:flex;gap:14px;align-items:flex-start;}
.row:hover{background:var(--paper-2);}
.row-main{flex:1;min-width:0;}
.row-title{font-family:var(--head);font-weight:600;font-size:16px;line-height:1.2;}
.row-sub{font-size:13px;color:var(--ink-soft);margin-top:3px;line-height:1.4;}
.row-meta{font-family:var(--mono);font-size:10.5px;color:var(--ink-mute);margin-top:5px;letter-spacing:0.04em;}
.row-side{font-family:var(--mono);font-size:10.5px;text-align:right;color:var(--ink-mute);white-space:nowrap;}
.note-text{font-size:14px;color:var(--ink);line-height:1.45;white-space:pre-wrap;margin-top:4px;}

.empty{
  padding:60px 20px;text-align:center;color:var(--ink-mute);
  font-family:var(--mono);font-size:12px;letter-spacing:0.06em;text-transform:uppercase;
}

/* modal */
.overlay{
  position:fixed;inset:0;background:rgba(42,40,39,0.62);display:none;
  align-items:flex-start;justify-content:center;padding:5vh 20px;z-index:100;overflow-y:auto;
}
.overlay.open{display:flex;}
.modal{background:var(--paper);border:1px solid var(--ink);max-width:680px;width:100%;animation:slideIn .2s ease-out;}
@keyframes slideIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
.modal-head{
  padding:24px 28px 20px;border-bottom:1px solid var(--rule-strong);
  display:flex;justify-content:space-between;align-items:flex-start;gap:12px;
  position:sticky;top:0;background:var(--paper);z-index:2;
}
.modal-eyebrow{
  font-family:var(--mono);font-size:10.5px;text-transform:uppercase;
  letter-spacing:0.1em;color:var(--ink-mute);margin-bottom:8px;
}
.modal-head h2{margin:0;font-family:var(--head);font-weight:800;font-size:30px;line-height:1;letter-spacing:-0.02em;}
.close-btn{
  background:none;border:1px solid var(--rule-strong);color:var(--ink-soft);
  width:36px;height:36px;cursor:pointer;font-size:16px;flex-shrink:0;
}
.close-btn:hover{border-color:var(--ink);color:var(--ink);}
.modal-section{padding:18px 28px;border-bottom:1px solid var(--rule);}
.modal-section:last-child{border-bottom:none;}
.section-label{
  font-family:var(--mono);font-size:10px;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--ink-mute);margin-bottom:10px;
}
.field-row{display:grid;grid-template-columns:140px 1fr;gap:14px;padding:7px 0;border-bottom:1px solid var(--rule);}
.field-row:last-child{border-bottom:none;}
.field-key{font-family:var(--mono);font-size:10.5px;color:var(--ink-mute);text-transform:uppercase;letter-spacing:0.06em;padding-top:2px;}
.field-val{font-size:13.5px;color:var(--ink);line-height:1.45;}
.set-row{display:flex;gap:16px;flex-wrap:wrap;}
.set-row .ctl-group{flex:1;min-width:200px;}

.person{padding:12px 0;border-bottom:1px solid var(--rule);display:flex;gap:12px;align-items:flex-start;}
.person:last-child{border-bottom:none;}
.person .row-main{flex:1;}
.talk-btn{
  font-family:var(--mono);font-size:10.5px;padding:8px 10px;letter-spacing:0.04em;
  border:1px solid var(--rule-strong);background:transparent;color:var(--ink-soft);cursor:pointer;white-space:nowrap;
}
.talk-btn.on{background:var(--accent);border-color:var(--accent);color:var(--paper);}

.inline-form{display:flex;flex-direction:column;gap:10px;margin-top:12px;}
.inline-form .form-row{display:flex;gap:10px;flex-wrap:wrap;}
.inline-form .form-row > *{flex:1;min-width:140px;}
.btn{
  font-family:var(--mono);font-size:11px;padding:10px 14px;letter-spacing:0.06em;text-transform:uppercase;
  border:1px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;display:inline-block;text-align:center;
}
.btn:hover{background:var(--ink);color:var(--paper);}
.btn-accent{background:var(--accent);border-color:var(--accent);color:var(--paper);}
.btn-accent:hover{background:var(--ink);border-color:var(--ink);}
a.link-btn{text-decoration:none;}
.link-btn{background:none;border:none;padding:0;color:var(--ink-mute);font-family:var(--mono);font-size:10px;cursor:pointer;text-transform:uppercase;letter-spacing:0.06em;}
.link-btn:hover{color:var(--accent);}
select.field{font-size:15px;}

footer{
  padding:24px 40px 40px;border-top:1px solid var(--rule);
  display:flex;flex-direction:column;gap:14px;
}
.footer-actions{display:flex;gap:8px;flex-wrap:wrap;}
.footer-src{font-family:var(--mono);font-size:10px;color:var(--ink-mute);letter-spacing:0.04em;line-height:1.6;}

.toast{
  position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);
  background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:11.5px;
  padding:10px 16px;opacity:0;transition:all .2s;pointer-events:none;z-index:200;letter-spacing:0.04em;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

@media (max-width:820px){
  .topbar{padding:16px 16px 14px;}
  .brand-label{display:none;}
  .controls{padding:12px 16px;gap:10px;}
  .search-wrap{max-width:none;min-width:0;width:100%;flex-basis:100%;}
  .filter-toggle{
    display:flex;align-items:center;justify-content:space-between;width:100%;
    background:transparent;border:1px solid var(--rule-strong);color:var(--ink);
    font-family:var(--mono);font-size:11.5px;padding:10px 14px;cursor:pointer;
    letter-spacing:0.06em;text-transform:uppercase;
  }
  .filter-toggle .n-active{color:var(--accent);}
  .filter-body{display:none;flex-direction:column;align-items:stretch;gap:16px;width:100%;}
  .filter-body.open{display:flex;}
  .result-count{padding:12px 16px 4px;}
  .content-area{padding:0 16px 30px;}
  .grid{grid-template-columns:1fr;}
  .card{border-right:none;}
  .overlay{padding:0;}
  .modal{border:none;min-height:100vh;}
  .modal-head{padding:18px 16px 16px;}
  .modal-head h2{font-size:24px;}
  .modal-section{padding:16px;}
  .field-row{grid-template-columns:1fr;gap:2px;}
  footer{padding:20px 16px 30px;}
}
