/* The calculator shares BirdieBeacon's Clubhouse Journal shell and palette. */
.handicap-page .heritage-nav { grid-template-columns: minmax(0, 1fr); }
.handicap-page .heritage-head-actions a { color:var(--heritage-ink); font-size:.8rem; text-underline-offset:4px; }
.handicap-main { padding-top:clamp(2rem,5vw,4rem); }
.handicap-intro { max-width:760px; margin-bottom:2.5rem; }
.handicap-kicker { margin:0 0 .8rem; color:var(--heritage-rust); font:600 .7rem/1.5 ui-monospace,monospace; text-transform:uppercase; letter-spacing:.1em; }
.handicap-intro h1 { margin:.5rem 0 1.25rem; color:var(--heritage-ink); font:400 clamp(2.8rem,6vw,5rem)/1.05 Georgia,serif; letter-spacing:-.05em; }
.handicap-intro > p:not(.handicap-kicker) { max-width:65ch; font-size:1.08rem; line-height:1.7; }
.handicap-intro .handicap-limit { font-size:.9rem !important; color:var(--heritage-muted); }
.handicap-layout { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr); gap:1.5rem; align-items:start; }
.handicap-entry, .handicap-sidebar { min-width:0; display:grid; gap:1.5rem; }
.handicap-panel { padding:clamp(1.25rem,3vw,2rem); background:var(--heritage-paper-raised); border:1px solid var(--heritage-line); }
.handicap-main h2 { margin:0 0 .8rem; color:var(--heritage-ink); font:500 1.7rem/1.25 Georgia,serif; letter-spacing:-.025em; }
.handicap-main p { line-height:1.65; }
.handicap-panel > p:not(.handicap-kicker) { color:var(--heritage-ink-soft); font-size:.93rem; }
.handicap-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem; margin:1.5rem 0; }
.handicap-fields label { display:flex; flex-direction:column; gap:.55rem; font-size:.85rem; font-weight:600; line-height:1.45; }
.handicap-fields :is(input,select) { min-width:0; width:100%; min-height:46px; border:1px solid var(--heritage-line); border-radius:2px; background:#fffdf7; padding:.65rem .7rem; color:var(--heritage-ink); font:400 1rem/1.4 ui-sans-serif,system-ui,sans-serif; }
.handicap-fields small { color:var(--heritage-muted); font-size:.76rem; font-weight:400; }
.handicap-main button { min-height:44px; padding:.65rem 1rem; border-radius:2px; cursor:pointer; font:600 .85rem/1.4 ui-sans-serif,system-ui,sans-serif; }
.handicap-primary { border:1px solid var(--heritage-ink); background:var(--heritage-ink); color:var(--heritage-paper-raised); }
.handicap-primary:hover { background:var(--heritage-ink-soft); }
.handicap-secondary { width:100%; border:1px solid var(--heritage-ink); color:var(--heritage-ink); background:transparent; }
.handicap-secondary:hover { background:var(--heritage-paper-deep); }
.handicap-main .handicap-text-button { padding:.35rem .5rem; background:transparent; border:0; color:var(--heritage-rust); text-decoration:underline; text-underline-offset:3px; }
.handicap-section-head { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:.5rem; }
.handicap-section-head h2 { margin:0; }
.handicap-table-wrap { overflow-x:auto; margin:1rem 0; }
.handicap-main table { width:100%; border-collapse:collapse; font-size:.8rem; text-align:left; font-variant-numeric:tabular-nums; }
.handicap-main :is(th,td) { padding:.85rem .55rem; border-bottom:1px solid var(--heritage-line-soft); white-space:nowrap; }
.handicap-main th { color:var(--heritage-muted); font-size:.7rem; font-weight:600; }
.handicap-main td.handicap-empty { white-space:normal; padding:1.75rem .5rem; color:var(--heritage-muted); }
.handicap-main td button { background:transparent; border:0; color:var(--heritage-rust); padding:.35rem .5rem; font-size:.75rem; }
.handicap-result { padding:2rem; background:var(--heritage-ink); color:var(--heritage-paper-raised); }
.handicap-result h2, .handicap-result .handicap-kicker { color:var(--heritage-paper-raised); }
.handicap-result .handicap-kicker { opacity:.8; }
.handicap-result output { display:block; margin:1.5rem 0 .5rem; font:400 5rem/1 Georgia,serif; font-variant-numeric:tabular-nums; letter-spacing:-.05em; }
.handicap-result p { font-size:.9rem; }
.handicap-main .handicap-note { font-size:.78rem; line-height:1.65; color:var(--heritage-muted); }
.handicap-result .handicap-note { color:#ced8cb; }
.handicap-course-results { display:grid; grid-template-columns:1fr 1fr; gap:1rem; padding-top:1rem; border-top:1px solid var(--heritage-line); }
.handicap-course-results dt { font-size:.8rem; }
.handicap-course-results dd { margin:.5rem 0 0; font:400 2.2rem/1 Georgia,serif; }
.handicap-guide { max-width:900px; margin:3rem 0; padding-top:2rem; border-top:3px double var(--heritage-line); }
.handicap-guide details { border-bottom:1px solid var(--heritage-line-soft); padding:1rem 0; }
.handicap-guide summary { min-height:28px; cursor:pointer; font-size:.95rem; font-weight:600; }
.handicap-guide details p { max-width:75ch; font-size:.92rem; }
.handicap-main a { text-underline-offset:3px; }
.handicap-error, .handicap-message { padding:.8rem 1rem; border-left:3px solid var(--heritage-rust); background:var(--heritage-rust-soft); color:var(--heritage-rust); }
.handicap-skip { position:absolute; left:1rem; top:-6rem; z-index:100; padding:1rem; background:var(--heritage-paper-raised); }
.handicap-skip:focus { top:1rem; }
.handicap-sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.handicap-page :is(a,button,input,select,summary,[tabindex]):focus-visible { outline:2px solid var(--heritage-rust); outline-offset:4px; }
.handicap-page [hidden] { display:none !important; }
@media(max-width:900px) { .handicap-layout { grid-template-columns:1fr; } .handicap-sidebar { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; } }
@media(max-width:600px) { .handicap-fields,.handicap-sidebar { grid-template-columns:1fr; } .handicap-result { padding:1.5rem; } .handicap-intro { margin-bottom:1.5rem; } }
.handicap-panel, .handicap-result, .handicap-fields label { min-width:0; }
.handicap-entry { grid-template-columns:minmax(0,1fr); }
.handicap-main .handicap-empty { white-space:normal; color:var(--heritage-muted); }
@media(max-width:600px) {
  .handicap-layout, .handicap-fields, .handicap-sidebar { grid-template-columns:minmax(0,1fr); }
  .handicap-page .heritage-head { grid-template-columns:minmax(0,1fr); padding-block:1.25rem; }
  .handicap-page .heritage-head-actions { display:none; }
  .handicap-page .heritage-wordmark { justify-self:center; }
  .handicap-intro h1 { font-size:2.5rem; line-height:1.1; }
}

.tool-disclaimer { margin:1.25rem 0; padding:.85rem 1rem; border-left:3px solid currentColor; font:400 .9rem/1.6 ui-sans-serif,system-ui,sans-serif; }
.tool-disclaimer p { margin:0; max-width:80ch; }
.tool-disclaimer a { text-decoration:underline; text-underline-offset:.15em; }

.tool-acceptance { margin:1.25rem 0; padding:1rem; border:1px solid currentColor; font:400 .95rem/1.6 ui-sans-serif,system-ui,sans-serif; }
.tool-acceptance label { display:flex; align-items:flex-start; gap:.7rem; }
.tool-acceptance input[type="checkbox"] { flex:0 0 auto; width:20px; height:20px; margin:.25rem 0; }
.tool-acceptance p { margin:.5rem 0; }
.tool-acceptance a { text-decoration:underline; }
fieldset[data-tool-controls] { min-width:0; margin:0; padding:0; border:0; }
fieldset[data-tool-controls]:disabled { opacity:.6; }
.tool-legend { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
[data-tool-result][hidden] { display:none !important; }
