/* Stage B: project lists, grouped forms and the project information page. */
select, textarea {
  font:inherit;
  font-size:16px;
  width:100%;
  min-width:0;
  min-height:48px;
  color:var(--ink);
  background:#fff;
  border:1px solid #d9d6cf;
  border-radius:8px;
  padding:11px 13px;
}
textarea { resize:vertical; line-height:1.6; }
select:focus-visible, textarea:focus-visible { outline:3px solid var(--brown); outline-offset:3px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.breadcrumb { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.top-account { flex-shrink:0; max-width:45%; }
.page-heading h1 { overflow-wrap:anywhere; }
.page-heading>.button { flex-shrink:0; }
.search-bar { display:flex; flex-wrap:wrap; gap:14px; align-items:flex-end; margin:24px 0 12px; }
.search-field { flex:1; min-width:190px; }
.filter-field { min-width:120px; }
.search-bar label { font-size:12px; }
.project-row { display:flex; align-items:center; gap:18px; padding:22px 4px; border-bottom:1px solid var(--line); }
.project-row:last-child { border-bottom:0; }
.project-row:hover { background:var(--canvas); }
.project-symbol { display:flex; align-items:center; justify-content:center; width:52px; height:58px; flex:none; background:var(--soft); color:var(--brown); border-radius:12px; }
.project-summary { display:flex; flex:1; flex-direction:column; gap:3px; min-width:0; overflow-wrap:anywhere; }
.project-summary strong { font-size:17px; font-weight:600; }
.project-summary>span { font-size:13px; }
.project-summary small { color:var(--muted); font-size:12px; }
.project-row>.icon { width:18px; color:var(--muted); }
.badge.status-active { color:#38583c; background:#edf3eb; }
.pagination { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:16px; padding-top:24px; border-top:1px solid var(--line); font-size:12px; }
.back-link { margin-bottom:12px; }
.project-form { display:grid; gap:22px; max-width:1000px; }
.form-hint, .section-intro { font-size:13px; color:var(--muted); }
.section-intro { margin:-5px 0 22px; }
.form-section, .detail-section { padding:28px; }
.form-section h2, .detail-section h2 { display:flex; gap:12px; align-items:center; font-size:19px; margin-bottom:24px; }
.form-section h2>.icon, .detail-section h2>.icon { width:22px; height:22px; color:var(--brown); }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.form-grid .wide { grid-column:1 / -1; }
.field-error, .required { color:var(--danger)!important; }
[aria-invalid="true"] { border-color:var(--danger); }
.form-errors ul { padding-left:20px; margin:8px 0 0; }
.form-errors .text-link { white-space:normal; }
.contact-editor { margin:0 0 24px; padding:20px; border:1px solid var(--line); border-radius:12px; background:var(--canvas); min-width:0; }
.contact-editor legend { font-size:13px; font-weight:600; padding:0 8px; }
.text-button { border:0; background:transparent; font:inherit; font-size:12px; color:var(--danger); padding:12px 0; min-height:44px; }
.contact-editor .text-button { margin-top:8px; }
.access-options { border:0; padding:0; margin:0; display:grid; gap:8px; }
.check-option { display:flex; gap:12px; align-items:center; min-height:48px; cursor:pointer; padding:8px; border-radius:8px; background:var(--canvas); }
.check-option input { width:22px; height:22px; min-height:22px; flex:none; accent-color:var(--brown); }
.check-option span { overflow-wrap:anywhere; min-width:0; }
.active-setting { margin-top:24px; padding-top:20px; border-top:1px solid var(--line); }
.active-setting>p { font-size:12px; margin:10px 0 0 8px; }
.private-section { border-color:#d8c7b5; }
.private-label { color:var(--brown); font-size:12px; margin:-10px 0 20px; }
.form-actions { display:flex; justify-content:flex-end; gap:12px; padding:8px 0; }
button:disabled { opacity:.55; cursor:not-allowed; }
.heading-actions { display:flex; align-items:center; gap:16px; flex-shrink:0; }
.project-detail-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(250px,1fr); gap:22px; align-items:start; }
.detail-main, .detail-aside { display:grid; gap:22px; min-width:0; }
.detail-section { min-width:0; }
.info-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin:0; }
.info-grid dt { color:var(--muted); font-size:12px; margin-bottom:5px; }
.info-grid dd { margin:0; font-size:14px; overflow-wrap:anywhere; white-space:pre-line; }
.info-grid dd .text-link { display:flex; font-size:11px; white-space:normal; }
.contact-link { display:flex; align-items:center; min-height:44px; color:var(--brown); overflow-wrap:anywhere; font-size:13px; text-decoration:underline; text-underline-offset:3px; }
.info-note { background:var(--canvas); padding:18px; border-radius:10px; margin-top:22px; font-size:13px; }
.info-note h3 { font-size:13px; margin-bottom:8px; }
.multiline { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.8; }
.contact-card { padding:20px 0; border-top:1px solid var(--line); }
.contact-card:first-of-type { border-top:0; padding-top:0; }
.contact-card:last-child { padding-bottom:0; }
.contact-card h3 { overflow-wrap:anywhere; }
.contact-card p { font-size:12px; color:var(--muted); margin-top:8px; }
.contact-type { font-size:11px; color:var(--brown); display:block; margin-bottom:5px; }
.assigned-list { padding-left:20px; line-height:2; overflow-wrap:anywhere; }
.detail-aside .muted { font-size:12px; }
.last-updated { font-size:11px; color:var(--muted); margin-top:24px; }
@media(max-width:1150px) {
  .project-detail-grid { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:700px) {
  .page-heading { flex-wrap:wrap; }
  .page-heading>.button { min-height:48px; }
  .top-account { max-width:calc(100% - 72px); }
  .search-bar { gap:12px; }
  .search-field { flex-basis:100%; min-width:0; }
  .search-bar .filter-field { flex:1; min-width:0; }
  .search-bar>.button { flex:1; padding:12px; }
  .project-row { gap:12px; flex-wrap:wrap; padding:18px 0; }
  .project-symbol { width:38px; height:46px; }
  .project-summary strong { font-size:15px; }
  .project-row .badge { font-size:10px; padding:4px 8px; }
  .project-row>.icon { display:none; }
  .project-summary { flex-basis:calc(100% - 115px); }
  .form-grid { grid-template-columns:minmax(0,1fr); gap:18px; }
  .form-section, .detail-section { padding:22px 18px; }
  .form-section h2, .detail-section h2 { font-size:17px; gap:10px; }
  .contact-editor { padding:16px 12px; }
  .form-actions { flex-wrap:wrap; }
  .form-actions .button { flex:1; font-size:12px; }
  .form-actions button[type="submit"] { flex-basis:100%; order:-1; }
  .info-grid { gap:20px 16px; }
  .project-title h1 { font-size:27px; }
  .project-title .heading-actions { width:100%; justify-content:space-between; }
  .project-detail-grid, .detail-main, .detail-aside { gap:18px; }
}
@media(max-width:360px) {
  .info-grid { grid-template-columns:minmax(0,1fr); }
}

/* Compact project details and optional home search. */
.home-search{margin:12px 0;color:var(--muted);font-size:13px}
.home-search>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;text-decoration:underline;text-underline-offset:3px}
.home-search .search-bar{margin-top:8px}
.project-detail-grid{grid-template-columns:minmax(0,1fr) minmax(230px,280px)}
.project-detail-grid.without-aside{grid-template-columns:minmax(0,1fr)}
.detail-aside{gap:12px}.detail-aside .detail-section{padding:16px}
.detail-aside .detail-section h2{font-size:16px;gap:8px;margin-bottom:12px}
.detail-aside .contact-card{padding:12px 0}.detail-aside .contact-card:first-of-type{padding-top:0}
.detail-aside .contact-card h3{font-size:14px;margin:2px 0 4px}
.detail-aside .contact-type{margin-bottom:2px}.detail-aside .multiline{line-height:1.5}
.detail-aside .assigned-list{margin:8px 0 0;line-height:1.6}
@media(min-width:1151px){.detail-aside .contact-link{min-height:32px}}
@media(max-width:1150px){.project-detail-grid{grid-template-columns:minmax(0,1fr)}}

.billing-alert{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:18px;margin-bottom:18px;border-left:4px solid #854d0e;color:#713f12;background:#fffbeb}.billing-alert span{font-size:13px}
