.projection {box-sizing:border-box; overflow-wrap:anywhere; max-width:70rem; margin-inline:auto; padding:1rem;}
.projection *, .projection *::before, .projection *::after {box-sizing:border-box; min-width:0;}
.projection [hidden] {display:none !important;}
.projection h1,.projection h2,.projection h3 {line-height:1.4;}
.projection .projection-note {border-left:3px solid var(--accent,#72d7b0); padding:.8rem 1rem; background:var(--accent-soft,#eef1f5); color:var(--text,#15171a); border-radius:.35rem;}
.projection .projection-grid {display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr)); gap:1rem;}
.projection .projection-card {padding:1rem; border:1px solid var(--line,#667); border-radius:.7rem;}
.projection .projection-card h3 {margin-top:0;}
.projection .projection-card p {margin-block:.55rem;}
.projection .projection-status {padding:.6rem 0; min-height:1.8rem;}
.projection .projection-status[role=alert] {border:1px solid currentColor; padding:.75rem; border-radius:.4rem;}
.projection .projection-actions {display:flex; flex-wrap:wrap; gap:.6rem; margin-block:1rem;}
.projection .projection-actions > * {flex:0 1 auto;}
.projection .btn, .projection button, .projection input, .projection select {max-width:100%; min-height:44px; white-space:normal; overflow-wrap:anywhere;}
.projection input, .projection select {width:100%;}
.projection label {display:grid; gap:.4rem;}
.projection .projection-search {display:grid; gap:.8rem; grid-template-columns:minmax(0,1fr) minmax(8rem,.3fr) auto; align-items:end;}
.projection .projection-results {display:grid; gap:.65rem; margin-block:1rem;}
.projection .projection-choice {text-align:left; display:block; width:100%; padding:1rem; line-height:1.6;}
.projection .projection-choice[aria-pressed=true] {outline:2px solid currentColor; outline-offset:2px;}
.projection .projection-detail {scroll-margin-top:1rem;}
.projection a {overflow-wrap:anywhere;}
.projection .projection-title-line {display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.8rem;}
.projection .projection-title-line h2 {margin-block:.6rem;}
@media(max-width:600px) {
 .projection {padding:.7rem;}
 .projection .projection-search {grid-template-columns:minmax(0,1fr);}
 .projection .projection-actions > * {flex:1 1 10rem;}
}

.f02-account {margin-block:1rem;}
.f02-account .f02-state {font-weight:700;}
.f02-account :focus-visible {outline:3px solid currentColor;outline-offset:3px;}
