/* Biblioteca Cofio — complementa /styles.css (cabeçalho, rodapé e tipografia do site).
   Layout de repositório: índice em lista, itens em cascata, uma página por sublink com LEIA-ME. */
.bib{--line-1:#d6d1c5;--line-2:#c8c3b8;--muted:#5f6461;--soft:#faf8f3;--white:#fff;--hover:#efebe1;--olive:#657000;
  --mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:.95rem;line-height:1.6;padding-bottom:72px}
.bib>*{max-width:980px}
[hidden]{display:none!important}
.bib a:focus-visible,.bib button:focus-visible,.modal :focus-visible{outline:2px solid var(--olive,#657000);outline-offset:2px}
.header nav a[aria-current="page"]{border-color:var(--ink);font-weight:700}

.pagehead{padding-block:44px 22px}
.crumbs{font-size:.85rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 14px;padding:0;list-style:none}
.crumbs a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line-2)}
.crumbs a:hover{border-color:var(--ink)}
.crumbs li+li::before{content:"/";color:var(--line-2);margin-right:6px}
.bib h1{font-size:2.15rem;font-weight:500;letter-spacing:-.04em;line-height:1.15;margin:0;text-wrap:balance}
.bib .sub{margin:8px 0 0;color:var(--muted);max-width:62ch;font-size:1rem}

/* índice */
.tools{display:flex;gap:10px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.search{flex:1;min-width:220px;position:relative}
.search input{width:100%;font:inherit;font-size:.92rem;padding:9px 12px 9px 34px;border:1px solid var(--line-2);background:var(--white);border-radius:6px;color:var(--ink)}
.search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--muted)}
.toggle{font:inherit;background:var(--white);border:1px solid var(--line-2);border-radius:6px;padding:8px 12px;font-size:.85rem;cursor:pointer;color:var(--ink)}
.toggle:hover{background:var(--hover)}
.list{border:1px solid var(--line-2);border-radius:8px;background:var(--white);overflow:hidden}
.listhead{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;padding:10px 16px;background:var(--soft);border-bottom:1px solid var(--line-1);font-size:.82rem;color:var(--muted)}
.listhead b{color:var(--ink);font-weight:600}
.item+.item{border-top:1px solid var(--line-1)}
.row{width:100%;display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 16px;background:none;border:0;text-align:left;cursor:pointer;font:inherit;color:var(--ink)}
.row:hover{background:var(--soft)}
.chev{width:14px;height:14px;color:var(--muted);transition:transform .15s ease}
.item.open .chev{transform:rotate(90deg)}
.name{font-weight:600;font-size:.98rem}
.for{color:var(--muted);font-size:.86rem;font-weight:400;margin-left:8px}
.right{display:flex;gap:10px;align-items:center;font-size:.8rem;color:var(--muted);white-space:nowrap}
.tag{border:1px solid var(--line-2);border-radius:999px;padding:1px 9px;font-size:.75rem;color:var(--ink);background:var(--paper)}
.count{font-family:var(--mono);font-size:.78rem}
.subs{list-style:none;margin:0;padding:0 0 8px}
.subs li{display:grid;grid-template-columns:18px 22px minmax(0,1fr) auto;gap:0 12px;align-items:center;padding:0 16px}
.tree{grid-column:2;font-family:var(--mono);color:var(--line-2);font-size:.9rem;line-height:1}
.sublink{grid-column:3;padding:7px 0;font-size:.92rem;display:flex;gap:10px;align-items:baseline;min-width:0;text-decoration:none}
.sublink span{border-bottom:1px solid transparent;white-space:nowrap}
a.sublink:hover span{border-color:var(--ink)}
.sublink small{color:var(--muted);font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.subs li.soon .sublink{color:var(--muted)}
.ftype{grid-column:4;font-family:var(--mono);font-size:.74rem;color:var(--muted)}
.ftype.s{font-family:inherit;font-style:italic}
.empty{padding:22px 16px;color:var(--muted);font-size:.9rem}
.note{margin:14px 2px 0;font-size:.82rem;color:var(--muted)}
.list.static .row{cursor:default}
.list.static .row:hover{background:none}

/* página de sublink */
.layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:36px;align-items:start}
.metaRow{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.84rem;color:var(--muted);margin:0 0 20px}
.metaRow b{color:var(--ink);font-weight:600}
.primary{display:inline-flex;align-items:center;gap:22px;background:var(--ink);color:var(--paper);border:0;padding:11px 16px;border-radius:6px;cursor:pointer;font:inherit;font-size:.92rem;text-decoration:none}
.primary:hover{background:#354047}
.primary span{color:var(--accent)}
.readme{margin-top:24px;border:1px solid var(--line-2);border-radius:8px;background:var(--white);overflow:hidden}
.readme>header{padding:9px 16px;background:var(--soft);border-bottom:1px solid var(--line-1);font-family:var(--mono);font-size:.78rem;color:var(--muted);letter-spacing:.02em}
.readme .body{padding:6px 24px 22px}
.readme h2{font-size:1.1rem;font-weight:600;letter-spacing:-.01em;line-height:1.35;margin:22px 0 8px;padding-bottom:6px;border-bottom:1px solid var(--line-1)}
.readme h3{font-size:1rem;font-weight:600;margin:18px 0 6px}
.readme p,.readme li{max-width:68ch}
.readme ul,.readme ol{padding-left:20px}
.readme li{margin-bottom:4px}
.readme code{font-family:var(--mono);font-size:.85em;background:var(--paper);padding:1px 5px;border-radius:4px}
.readme a{text-underline-offset:3px}
.side{border-top:1px solid var(--line-2);padding-top:14px;font-size:.88rem}
.side h2{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;margin:0 0 10px;color:var(--muted);font-weight:700;line-height:1.4}
.side ul{list-style:none;margin:0 0 22px;padding:0}
.side li{padding:4px 0}
.side a{text-decoration:none;border-bottom:1px solid transparent}
.side a:hover{border-color:var(--ink)}
.side a[aria-current="page"]{font-weight:700}
.side li.soon{color:var(--muted)}
.side p{margin:0 0 18px;color:var(--muted)}
.side p a{color:var(--ink);border-bottom:1px solid var(--line-2)}
.updated{margin:18px 2px 0;font-size:.8rem;color:var(--muted)}

/* cadastro */
.overlay{position:fixed;inset:0;z-index:60;background:rgba(20,25,28,.5);display:grid;place-items:center;padding:16px}
.modal{background:#fff;color:var(--ink);width:min(440px,100%);max-height:calc(100% - 16px);overflow:auto;border-radius:10px;border:1px solid #c8c3b8;padding:24px;position:relative;box-shadow:0 20px 60px rgba(0,0,0,.25);font-size:.95rem;line-height:1.5}
.modal h2{font-size:1.25rem;font-weight:600;margin:0 0 4px;letter-spacing:-.01em;line-height:1.3}
.modal .lead{margin:0 0 18px;color:#5f6461;font-size:.9rem}
.x{position:absolute;top:10px;right:12px;background:none;border:0;font-size:1.4rem;line-height:1;cursor:pointer;color:#5f6461;padding:4px 8px}
.f{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}
.f>label,.f legend{font-size:.82rem;font-weight:600}
.f input[type=text],.f input[type=tel]{font:inherit;font-size:.95rem;padding:9px 11px;border:1px solid #c8c3b8;border-radius:6px;background:#fff;color:var(--ink)}
fieldset.f{border:0;padding:0;margin:0 0 14px}
.opt{display:flex;gap:8px;align-items:center;font-size:.9rem;padding:3px 0;cursor:pointer}
.opt input,.ck input{accent-color:var(--ink)}
.ck{display:flex;gap:8px;align-items:flex-start;font-size:.86rem;line-height:1.45;margin:4px 0 16px;cursor:pointer}
.ck input{margin-top:3px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.err{color:#9b2c22;font-size:.82rem;margin:-6px 0 10px}
.modal .primary{width:100%;justify-content:center}
.modal .primary[disabled]{opacity:.6;cursor:wait}
.fine{font-size:.78rem;color:#5f6461;margin:12px 0 0}
.fine a{color:inherit}

/* privacidade */
.prose{max-width:70ch}
.prose h2{font-size:1.2rem;font-weight:600;letter-spacing:-.01em;line-height:1.35;margin:30px 0 8px}
.prose ul{padding-left:20px}

@media (max-width:760px){
  .bib{padding-bottom:48px}
  .layout{grid-template-columns:1fr;gap:28px}
  .for{display:block;margin-left:0}
  .right .tag{display:none}
  .subs li{grid-template-columns:4px 18px minmax(0,1fr) auto;padding:0 12px}
  .sublink small{display:none}
  .readme .body{padding:4px 16px 18px}
  .bib h1{font-size:1.75rem}
  .pagehead{padding-block:30px 18px}
}
@media (prefers-reduced-motion:reduce){.chev{transition:none}}
