/* Revit keynotes and abbreviations — screen styles.
   Owned by ONE porting agent so screens can be built in parallel without
   racing on main.css. Loads AFTER main.css, so a bare class here beats a
   bare class there — but an ID rule in main.css still wins. Check the
   cascade before assuming a rule applies.
   Tokens, the .tip tooltip system and the chart series live in main.css and
   must not be redefined here. */

/* Both screens are rendered from keynotes.js into #view-keynote / #view-abbrev
   (the legacy .toolbar shells are replaced on first render). Every selector
   here is kn-/abv- prefixed; nothing in main.css uses those names. */

/* ── Page frame shared by both screens ─────────────────────────────────── */
.kn-page,.abv-page{flex:1;min-height:0;width:100%;max-width:1200px;margin:0 auto;padding:26px 32px;
  display:flex;flex-direction:column;overflow:auto;font-family:var(--font);color:#2A323A;
  -webkit-font-smoothing:antialiased;}
.kn-sp{flex:1;min-width:8px;}

/* Title row */
.kn-head,.abv-head{display:flex;align-items:flex-end;gap:16px;margin-bottom:18px;flex-shrink:0;}
.abv-head{align-items:flex-start;margin-bottom:22px;}
.kn-head-t,.abv-head-t{flex:1;min-width:0;}
.kn-h1{font-family:var(--font-display);font-size:27px;font-weight:400;letter-spacing:-.5px;line-height:32px;margin:0 0 3px;color:#2A323A;}
/* main.css `.view h1` (0,1,1) sets weight 300 / letter-spacing -1px and would
   beat the bare class above; the ID-scoped pair (1,1,0) is what wins. */
#view-keynote .kn-h1,#view-abbrev .kn-h1{font-weight:400;letter-spacing:-.5px;}
.kn-sub{font-size:12.5px;line-height:16px;color:#6B7480;margin:0;}
.kn-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;}

/* Pill buttons (spec §4). Self-contained so main.css's layered .btn rules
   never reach them. */
.kn-btn{display:inline-flex;align-items:center;gap:6px;background:#fff;color:#2A323A;border:none;border-radius:9999px;
  padding:8px 15px;font-family:var(--font);font-size:12.5px;font-weight:500;line-height:1.2;cursor:pointer;white-space:nowrap;
  box-shadow:0 1px 2px rgba(0,0,0,.1),0 0 0 1px rgba(0,0,0,.07);transition:box-shadow .12s,background .12s;}
.kn-btn:hover{box-shadow:0 2px 5px rgba(0,0,0,.13),0 0 0 1px rgba(0,0,0,.11);}
.kn-btn.primary{background:#2A323A;color:#FCFBF9;font-weight:600;padding:8px 17px;box-shadow:0 1px 2px rgba(0,0,0,.2),0 0 0 1px rgba(0,0,0,.1);}
.kn-btn.primary:hover{background:#3D4854;}
.kn-btn.sm{padding:6px 14px;font-size:12px;}
.kn-btn:disabled{opacity:.55;cursor:default;box-shadow:0 0 0 1px rgba(0,0,0,.07);}
.kn-btn svg{flex-shrink:0;color:#4A5560;}
.kn-btn.primary svg{color:#FCFBF9;}
.abv-head .kn-btn{padding:9px 16px;}

/* ── Validation strip — one line ───────────────────────────────────────── */
.kn-strip{height:40px;flex-shrink:0;display:flex;align-items:center;gap:12px;padding:0 14px;border-radius:11px;margin-bottom:16px;white-space:nowrap;}
.kn-strip.warn{background:#FFF9EC;border:1px solid #F0DFB8;color:#7A4A00;}
.kn-strip.ok{background:#F3F6EF;border:1px solid #DCE4D3;color:#40542F;}
.kn-strip svg{flex-shrink:0;}
.kn-strip-t{font-size:12.5px;font-weight:600;flex-shrink:0;}
.kn-strip-div{width:1px;height:20px;flex-shrink:0;background:#EEDFBE;}
.kn-strip.ok .kn-strip-div{background:#D3DCC8;}
.kn-chip{display:inline-flex;align-items:center;gap:7px;border-radius:8px;padding:4px 10px;flex-shrink:0;font-size:11.5px;cursor:pointer;}
.kn-chip-k{font-family:var(--font-mono);font-size:10px;font-weight:500;}
.kn-chip.dup,.kn-chip.missing{background:#FDE7E7;color:#8A1C1C;}
.kn-chip.clash,.kn-chip.group{background:#FFF0CC;color:#7A4A00;}
.kn-chip.ok{background:#E4EADF;color:#40542F;cursor:help;}
.kn-chip.amber{background:#FFF0CC;color:#7A4A00;cursor:help;}
.kn-chip.more{background:transparent;padding:4px 2px;cursor:help;}
.kn-btn.review{color:#7A4A00;font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.08),0 0 0 1px rgba(122,74,0,.14);}

/* ── The tree card ─────────────────────────────────────────────────────── */
.kn-card{flex:1;min-height:240px;display:flex;flex-direction:column;background:#fff;border:1px solid #E8EDF2;border-radius:14px;
  box-shadow:0 1px 3px rgba(42,50,58,.04),0 4px 14px rgba(42,50,58,.06);overflow:hidden;}
.kn-card-hd{height:46px;flex-shrink:0;display:flex;align-items:center;gap:12px;padding:0 16px;border-bottom:1px solid #E8EDF2;}
.kn-card-title{font-family:var(--font-display);font-size:16px;font-weight:500;letter-spacing:-.3px;color:#2A323A;}
.kn-lines{font-family:var(--font-mono);font-size:10.5px;color:#6B7480;background:#F7F7F7;border:1px solid #E8EDF2;border-radius:6px;padding:2px 8px;cursor:help;}
.kn-seg{display:inline-flex;background:#F1EDE6;border-radius:9999px;padding:3px;flex-shrink:0;}
.kn-seg button{border:none;background:transparent;color:#6B7480;border-radius:9999px;padding:5px 14px;font-family:var(--font);
  font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap;}
.kn-seg button.on{background:#fff;color:#2A323A;font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.08);}
.kn-body{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;padding:4px 0;}
.kn-tree,.kn-raw{flex-shrink:0;}

/* Grouped tree */
.kn-g{height:26px;flex-shrink:0;display:flex;align-items:center;gap:10px;padding:0 18px;background:#F7F7F7;
  box-shadow:inset 3px 0 0 var(--kb,#837D68);border-top:1px solid #EFEFF1;border-bottom:1px solid #EFEFF1;}
.kn-g-k{font-family:var(--font-mono);font-size:10.5px;font-weight:500;letter-spacing:.06em;color:#2A323A;min-width:46px;flex-shrink:0;}
.kn-g-t{font-size:12px;font-weight:500;color:#3D4854;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.kn-g-n{font-family:var(--font-mono);font-size:9.5px;color:#9BA3AC;min-width:20px;text-align:right;flex-shrink:0;}
.kn-g.tbc{background:#FDF3F3;border-color:#F4E1E1;}
.kn-g.tbc .kn-g-k,.kn-g.tbc .kn-g-t{color:#8A1C1C;}
.kn-g.tbc .kn-g-t{font-weight:600;}
.kn-g.tbc .kn-g-n{color:#A86A6A;}
.kn-kids{margin:3px 0 3px 32px;border-left:1px solid #E8EDF2;}
.kn-kids.tbc{border-left-color:#F4E1E1;}
.kn-r{min-height:20px;display:flex;align-items:center;gap:10px;padding:0 18px 0 16px;}
.kn-id{font-family:var(--font-mono);font-size:10.5px;font-weight:500;color:#3D4854;min-width:56px;flex-shrink:0;}
.kn-d{font-size:12px;color:#4A5560;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.kn-loc{font-size:12px;color:#9BA3AC;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.kn-r.dup,.kn-r.missing{background:#FFF7F7;}
.kn-r.dup .kn-id,.kn-r.missing .kn-id{color:#8A1C1C;}
.kn-r.clash,.kn-r.group{background:#FFFBF0;}
.kn-r.clash .kn-id,.kn-r.group .kn-id{color:#7A4A00;}
.kn-go{font-size:11px;font-weight:600;color:#837D68;cursor:pointer;white-space:nowrap;flex-shrink:0;}
.kn-go:hover{color:#4D4936;}

/* Raw file */
.kn-raw{padding:12px 20px;font-family:var(--font-mono);font-size:10.5px;line-height:18px;white-space:nowrap;}
.kn-raw-meta{font-size:9.5px;letter-spacing:.085em;text-transform:uppercase;color:#9BA3AC;margin-bottom:8px;}
.kn-raw-name{text-transform:none;}
.kn-fk{color:#3D4854;}
.kn-fl.g .kn-fk{color:#2A323A;font-weight:500;}
.kn-tab{color:#C7CDD4;padding:0 5px;}
.kn-fd{color:#4A5560;}
.kn-fp{color:#9BA3AC;}
.kn-fl.g.tbc .kn-fk,.kn-fl.g.tbc .kn-fd{color:#8A1C1C;}
.kn-fl.dup,.kn-fl.missing{background:#FFF7F7;}
.kn-fl.dup .kn-fk{color:#8A1C1C;font-weight:500;}
.kn-fl.clash,.kn-fl.group{background:#FFFBF0;}
.kn-fl.clash .kn-fk{color:#7A4A00;font-weight:500;}

/* Empty / no-project */
.kn-empty{flex:1;min-height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;padding:40px 20px;}
.kn-empty-t{font-family:var(--font-display);font-size:18px;font-weight:400;letter-spacing:-.3px;color:#2A323A;}
.kn-empty-d{font-size:12.5px;color:#6B7480;max-width:400px;line-height:1.5;}
.kn-empty .kn-go{margin-top:4px;}

/* ── Linked file bar ───────────────────────────────────────────────────── */
.kn-link{height:42px;flex-shrink:0;display:flex;align-items:center;gap:12px;padding:0 14px;background:#F7F7F7;border:1px solid #EFEFF1;
  border-radius:11px;margin-top:16px;white-space:nowrap;}
.kn-link:empty{display:none;}
.kn-link svg{flex-shrink:0;}
.kn-file{font-family:var(--font-mono);font-size:12px;font-weight:500;color:#2A323A;cursor:help;}
.kn-file.muted{font-family:var(--font);font-size:11.5px;font-weight:500;color:#6B7480;}
.kn-saved{font-size:11.5px;font-weight:600;color:#40542F;background:#E4EADF;border-radius:8px;padding:4px 10px;cursor:help;flex-shrink:0;}
.kn-help{font-size:11.5px;font-weight:600;color:#837D68;cursor:help;}

/* ── Abbreviations ─────────────────────────────────────────────────────── */
.abv-strip{height:42px;flex-shrink:0;display:flex;align-items:center;gap:11px;padding:0 15px;background:#F5E9E7;border:1px solid #ECC5C6;
  border-radius:11px;margin-bottom:18px;white-space:nowrap;color:#8A1C1C;}
.abv-strip[hidden]{display:none;}
.abv-strip svg{flex-shrink:0;}
.abv-strip-t{font-size:13px;color:#7A3A3A;min-width:0;overflow:hidden;text-overflow:ellipsis;}
.abv-strip-code{font-family:var(--font-mono);font-size:12px;font-weight:500;color:#8A1C1C;}
.abv-strip .kn-btn.sm{height:27px;padding:0 14px;font-weight:600;}
.abv-go{font-size:12px;font-weight:600;color:#837D68;cursor:pointer;white-space:nowrap;}
.abv-go:hover{color:#4D4936;}

.abv-add{display:flex;align-items:center;gap:9px;height:34px;flex-shrink:0;margin-bottom:20px;}
.abv-in{height:34px;width:auto;padding:0 12px;border:1px solid #D2DAE3;border-radius:9px;background:#fff;font-family:var(--font);
  font-size:12.5px;font-weight:400;color:#2A323A;}
.abv-in:hover:not(:focus){border-color:#B9C4D0;}
.abv-in:focus{outline:none;border-color:#2A323A;background:#fff;box-shadow:0 0 0 3px rgba(42,50,58,.08);}
.abv-in::placeholder{color:#A8AEB6;}
.abv-in-code{width:112px;font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase;}
.abv-in-code::placeholder{font-family:var(--font-mono);}
.abv-in-desc{width:360px;max-width:100%;}
.abv-in-wrap{display:inline-flex;}
.abv-search{display:flex;align-items:center;gap:9px;width:264px;height:34px;padding:0 13px;border:1px solid #D2DAE3;border-radius:9px;background:#fff;}
.abv-search:focus-within{border-color:#2A323A;box-shadow:0 0 0 3px rgba(42,50,58,.08);}
.abv-search svg{flex-shrink:0;}
.abv-search .abv-q,.abv-search .abv-q:hover,.abv-search .abv-q:focus{flex:1;min-width:0;width:auto;height:auto;border:none;outline:none;
  box-shadow:none;background:transparent;padding:0;font-family:var(--font);font-size:12.5px;font-weight:400;color:#2A323A;}
.abv-search .abv-q::placeholder{color:#A8AEB6;}

.abv-list{display:flex;gap:44px;align-items:flex-start;flex-shrink:0;padding-bottom:12px;}
.abv-col{flex:1;min-width:0;max-width:calc(50% - 22px);}
.abv-row{display:flex;align-items:center;gap:9px;height:37px;padding:0 12px;border-bottom:1px solid #EFF2F6;border-radius:0;}
.abv-row:hover{background:#F7F7F7;border-bottom-color:transparent;border-radius:8px;}
.abv-code{font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.03em;color:#2A323A;width:58px;flex-shrink:0;}
.abv-m{flex:1;min-width:0;font-size:13.5px;color:#3D4854;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.abv-flag{font-family:var(--font-mono);font-size:8px;letter-spacing:.08em;font-weight:500;color:#8A1C1C;background:#FDE7E7;border-radius:4px;padding:2px 5px;flex-shrink:0;}
.abv-row.clash{background:#F5E9E7;border-bottom-color:transparent;border-radius:8px;}
.abv-row.clash .abv-code{color:#8A1C1C;}
.abv-row.clash .abv-m{color:#7A4747;}
.abv-ic{width:16px;flex-shrink:0;text-align:center;font-size:12px;line-height:1;color:#6B7480;cursor:pointer;background:none;border:none;
  padding:0;font-family:var(--font);opacity:0;transition:opacity .12s,color .12s;}
.abv-row:hover .abv-ic,.abv-ic:focus-visible{opacity:1;}
.abv-ic:hover{color:#2A323A;}
@media (hover:none){.abv-ic{opacity:1;}}
.abv-row.editing{background:#F7F7F7;border-radius:8px;border-bottom-color:transparent;}
.abv-row.editing .abv-in{height:29px;font-size:12.5px;}
.abv-row.editing .abv-in-code{width:96px;}
.abv-row.editing .abv-in-desc{flex:1;width:auto;min-width:120px;}
.abv-row.editing .kn-btn.sm{padding:5px 12px;}
.abv-empty{font-size:12.5px;color:#6B7480;padding:28px 12px;line-height:1.5;}

/* ── Narrow panes ──────────────────────────────────────────────────────── */
@media (max-width:1000px){
  .kn-head,.abv-head{flex-wrap:wrap;align-items:flex-start;}
  .kn-actions{flex-wrap:wrap;}
}
@media (max-width:900px){
  .abv-add{flex-wrap:wrap;height:auto;}
  .abv-in-desc{width:100%;}
  .abv-search{width:100%;}
  .abv-list{flex-direction:column;gap:0;}
  .abv-col{max-width:none;width:100%;}
  .kn-strip{height:auto;flex-wrap:wrap;padding:8px 14px;row-gap:6px;}
  .kn-link{height:auto;flex-wrap:wrap;padding:8px 14px;row-gap:6px;}
}
