/* Tool library and loans */

  .lib-head{
    max-width:1100px;margin:0 auto;padding:56px 28px 8px;
    display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;
  }
  .lib-head h1{
    font-family:var(--font-display);font-weight:400;color:var(--teal-deep);
    font-size:46px;letter-spacing:-.02em;line-height:1.1;margin:0 0 10px;
  }
  .lib-head .lede{margin:0;font-size:16px;max-width:560px}
  .lib-head-actions{display:flex;gap:12px;flex-wrap:wrap}

  .loading{max-width:1100px;margin:0 auto;padding:40px 28px;color:#6b6b6b}

  .tool-grid{
    max-width:1100px;margin:0 auto;padding:30px 28px 110px;
    display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;align-items:start;
  }

  .empty-lib{max-width:640px;margin:0 auto;padding:60px 28px 120px;text-align:center}
  .empty-lib p{font-size:17px;color:#4a4a4a;margin:0 0 22px}

  /* ---- tool card ---- */
  .tool-card{
    background:var(--paper);border:2px solid var(--line);border-radius:14px;
    padding:22px 22px 16px;display:flex;flex-direction:column;
  }
  .tool-card.status-on-loan{border-color:var(--brown)}

  .tc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
  .tc-head h3{font-family:var(--font-display);font-weight:400;font-size:22px;line-height:1.15;margin:0 0 2px;color:var(--teal-deep)}
  .tc-cat{font-size:13px;color:#7a7a7a;margin:0}

  .tc-badge{
    flex:0 0 auto;font-family:var(--font-body);font-weight:700;font-size:10.5px;letter-spacing:1px;text-transform:uppercase;
    padding:5px 9px;border-radius:999px;white-space:nowrap;
  }
  .badge-available{background:#e7f3ea;color:var(--green)}
  .badge-on-loan{background:#f3e6d4;color:var(--brown-dark)}
  .badge-paused{background:#eee;color:#777}

  .tc-notes{font-size:14px;color:#4a4a4a;margin:0 0 12px;line-height:1.5}
  .tc-meta{margin-bottom:6px}
  .tc-rating{font-size:14px;color:var(--brown-dark);font-weight:700}
  .tc-rating.none{color:#9a9a9a;font-weight:400;font-size:13px}

  .tc-loan,.tc-requests{margin-top:14px;padding-top:14px;border-top:2px solid var(--line)}
  .tc-loan p{margin:0 0 4px;font-size:14px}
  .tc-addr{color:#6b6b6b;font-size:13px !important}

  .tc-req-label{
    font-family:var(--font-body);font-weight:700;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;
    color:var(--brown-dark);margin:0 0 10px;
  }
  .tc-req{background:#fff;border:2px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:10px}
  .tc-req p{margin:0 0 6px;font-size:14px}
  .tc-req-msg{color:#5a5a5a;font-style:italic}
  .tc-req-actions{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap}

  .btn.sm{padding:8px 14px;font-size:13px}
  .linky.sm{font-size:13px}

  .tc-foot{display:flex;gap:16px;margin-top:16px;padding-top:14px;border-top:2px solid var(--line)}
  .tc-locked{font-size:13px;color:#9a9a9a;font-style:italic}
  .linky.danger{color:#9a2a1e}
  .linky.danger:hover{color:#6f1d15}

  /* ---- modals ---- */
  .modal-veil{
    position:fixed;inset:0;z-index:2000;background:rgba(40,35,28,.5);
    display:flex;align-items:center;justify-content:center;padding:24px;
  }
  .modal{
    background:var(--paper);border:2px solid var(--line);border-radius:16px;
    padding:30px;max-width:440px;width:100%;box-shadow:0 20px 50px rgba(0,0,0,.3);
  }
  .modal h2{font-family:var(--font-display);font-weight:400;font-size:25px;margin:0 0 20px;line-height:1.15;color:var(--teal-deep)}
  .modal .field{margin-bottom:16px}
  .modal label{font-weight:600;font-size:15px;display:block;margin-bottom:6px}
  .modal .optional{font-weight:400;color:#8a8a8a}
  .modal input,.modal select,.modal textarea{
    width:100%;font-family:var(--font-body);font-size:16px;color:var(--ink);
    padding:12px;border:2px solid var(--line);border-radius:8px;background:#fff;
  }
  .modal textarea{resize:vertical;min-height:80px}
  .modal-error{color:#9a2a1e;font-size:14px;margin:0 0 14px}
  .modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:8px}

  /* ---- disclaimer block ---- */
  .disclaimer{
    background:#f7f2e8;border:2px solid var(--tan);border-radius:10px;
    padding:14px 16px;margin:4px 0 18px;font-size:13px;color:#5a5a5a;line-height:1.55;
  }
  /* Grid keeps wrapped lines aligned with the first word, not the checkbox */
  label.consent-row, .modal label.consent-row{
    display:grid;grid-template-columns:auto 1fr;gap:3px 10px;
    align-items:start;margin-bottom:8px;cursor:pointer;
    font-weight:400;
  }
  .consent-row input{width:auto;margin-top:3px}
  .consent-row span{font-size:14px;color:var(--ink);line-height:1.5}

  /* ---- stars input ---- */
  .star-input{display:flex;gap:4px;margin-bottom:16px}
  .star-input button{
    background:none;border:0;cursor:pointer;font-size:32px;line-height:1;
    color:var(--line);padding:0;transition:color .1s ease;
  }
  .star-input button.on{color:var(--brown)}

  /* ---- loans page ---- */
  .loans-wrap{max-width:900px;margin:0 auto;padding:30px 28px 110px}
  .loans-section{margin-bottom:40px}
  .loans-section h2{font-family:var(--font-display);font-weight:400;font-size:30px;margin:0 0 6px;color:var(--teal-deep)}
  .loans-section .sub{color:#6b6b6b;margin:0 0 20px;font-size:15px}

  .loan-row{
    background:var(--paper);border:2px solid var(--line);border-radius:12px;
    padding:18px 20px;margin-bottom:14px;display:flex;justify-content:space-between;
    gap:18px;align-items:flex-start;flex-wrap:wrap;
  }
  .loan-row h3{font-family:var(--font-body);font-weight:700;font-size:17px;margin:0 0 4px}
  .loan-row .who{font-size:14px;color:#5a5a5a;margin:0 0 3px}
  .loan-row .when{font-size:13px;color:#7a7a7a;margin:0}
  .loan-status{
    font-family:var(--font-body);font-weight:700;font-size:10.5px;letter-spacing:1px;text-transform:uppercase;
    padding:5px 9px;border-radius:999px;white-space:nowrap;
  }
  .ls-pending{background:#fdf3d8;color:#8a6d1a}
  .ls-approved{background:#f3e6d4;color:var(--brown-dark)}
  .ls-returned{background:#e7f3ea;color:var(--green)}
  .ls-declined,.ls-cancelled{background:#eee;color:#888}

  .loan-review{margin-top:12px;width:100%;padding-top:14px;border-top:2px solid var(--line)}
  .loan-review .btn{margin-top:4px}

  @media (max-width:680px){
    .lib-head{padding-top:36px}
    .lib-head h1{font-size:34px}
    .tool-grid{grid-template-columns:1fr}
  }

  /* ---- borrow button in the map popup ---- */
  .pop-tools li{display:flex;flex-direction:column;gap:3px}
  .t-ask{
    align-self:flex-start;margin-top:5px;
    font-family:var(--font-body);font-weight:700;font-size:11px;letter-spacing:.6px;text-transform:uppercase;
    background:var(--teal);color:#fff;border:0;border-radius:6px;padding:6px 11px;cursor:pointer;
  }
  .t-ask:hover{background:var(--teal-deep)}
  .t-out{align-self:flex-start;margin-top:4px;font-size:11px;color:#9a9a9a;font-style:italic}
  .borrow-sub{font-size:14px;color:#5a5a5a;line-height:1.5;margin:0 0 18px}

  /* ---- member profile ---- */
  .rev-group{
    font-family:var(--font-body);font-weight:700;font-size:12px;
    letter-spacing:1.4px;text-transform:uppercase;color:#8a8a8a;margin:26px 0 12px;
  }
  .review-row{
    background:var(--paper);border:2px solid var(--line);border-radius:12px;
    padding:16px 18px;margin-bottom:12px;
  }
  .rr-head{margin:0 0 6px;font-size:15px;color:var(--brown-dark)}
  .rr-head strong{color:var(--ink);margin-left:6px}
  .rr-date{float:right;font-size:13px;color:#9a9a9a}
  .rr-comment{margin:0;font-size:14.5px;color:#4a4a4a;line-height:1.5}

  .profile-tools{padding:0;max-width:none}
  .profile-link{color:var(--teal-deep);text-decoration:underline;text-underline-offset:2px}
  .profile-link:hover{color:var(--clay)}
  .pop-profile-link{color:inherit;text-decoration:none;border-bottom:2px dotted var(--teal)}
  .pop-profile-link:hover{color:var(--clay);border-color:var(--clay)}

  #m-interests{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
  #m-interests li{background:#fff;border:2px solid var(--line);border-radius:999px;padding:6px 13px;font-size:13.5px;font-weight:600;color:var(--teal-deep)}
  #m-about{font-size:15px;color:#4a4a4a;margin:0}
