.sh-hub,.sh-form {
  --sh-ink:#302b27;
  --sh-muted:#6a635d;
  --sh-edge:#ddd6cb;
  --sh-wine:#803d40;
  --sh-paper:#fffdfa;
  --sh-wash:#f3ede5;
  color:var(--sh-ink);
}
.sh-hub *, .sh-form * { box-sizing:border-box; }
.sh-hub button,.sh-form button,.sh-hub input,.sh-form input,.sh-hub select,.sh-form select,.sh-form textarea { font:inherit; }
.sh-hub button,.sh-form button,.sh-hub select,.sh-form select { cursor:pointer; }
.sh-hub button:focus-visible,.sh-form button:focus-visible,.sh-hub summary:focus-visible,.sh-hub :is(input,select):focus-visible,.sh-form :is(input,select,textarea):focus-visible {
  outline:2px solid var(--sh-wine); outline-offset:3px;
}
.sh-hub { margin:0 auto; width:100%; }
.sh-tabs { display:inline-flex; flex-wrap:wrap; gap:3px; border:1px solid var(--sh-edge); border-radius:999px; padding:4px; }
.sh-tabs button { color:var(--sh-muted); border:0; background:transparent; border-radius:999px; padding:8px 17px; font-size:.9rem; }
.sh-tabs button[aria-pressed="true"] { background:var(--sh-ink); color:white; }
.sh-brief,.sh-card-top { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.sh-brief { margin:24px 0 18px; align-items:flex-end; }
.sh-hub .sh-brief h2,.sh-hub .sh-card h3,.sh-hub .sh-empty h3 { margin:0; letter-spacing:-.035em; font-family:Georgia,'Times New Roman',serif; font-weight:normal; line-height:1.15; }
.sh-hub .sh-brief h2 { font-size:clamp(1.8rem,3vw,2.55rem); }
.sh-hub .sh-brief p,.sh-hub .sh-card-top p,.sh-hub .sh-muted,.sh-form .sh-muted,.sh-hub .sh-empty p,.sh-form .sh-item-intro {
  color:var(--sh-muted); margin:7px 0 0; font-size:.92rem; line-height:1.52; max-width:65ch; 
}
.sh-button { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:41px; padding:8px 14px; border:1px solid var(--sh-edge);
  border-radius:8px; color:var(--sh-ink); background:var(--sh-paper); font-weight:600!important; font-size:.85rem!important; line-height:1.25; }
.sh-button:hover,.sh-status-tabs button:hover { background:var(--sh-wash); }
.sh-brief>.sh-button,.sh-card-top>.sh-button { flex:none; }
.sh-link,.sh-item-name,.sh-fact-link { color:var(--sh-ink); text-align:left; padding:0; background:none; border:0; }
.sh-link { font-size:.88rem!important; text-decoration:underline; text-underline-offset:3px; padding:7px; }
.sh-status-tabs { display:flex; flex-wrap:wrap; gap:6px; padding:10px 0 16px; }
.sh-status-tabs button { border:1px solid var(--sh-edge); border-radius:999px; background:transparent; padding:7px 10px; font-size:.8rem; color:var(--sh-muted); min-height:34px; }
.sh-status-tabs button[aria-pressed=true] { background:#efe0df; color:#643035; border-color:#cfaeb1; }
.sh-status-tabs button>span { font-variant-numeric:tabular-nums; margin-left:3px; font-weight:650; }
.sh-filters { display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:12px; padding:14px; border:1px solid var(--sh-edge); border-radius:10px; background:var(--sh-wash); }
.sh-filters label,.sh-form label { display:flex; flex-direction:column; gap:6px; font-size:.82rem; line-height:1.4; font-weight:600; color:var(--sh-ink); }
.sh-hub :is(input[type=search],select),.sh-form :is(input:not([type=checkbox]),select,textarea) { width:100%; min-width:0; min-height:40px; border-radius:6px; padding:8px 10px;
  border:1px solid #bbb1a5; color:var(--sh-ink); background:var(--sh-paper); font-size:.9rem; }
.sh-hub .sh-result-count { padding:17px 2px 8px; color:var(--sh-muted); font-size:.79rem; }
.sh-results { width:100%; }
.sh-results details { margin:0; background:var(--sh-paper); border:1px solid var(--sh-edge); border-radius:8px; overflow:hidden; }
.sh-results details+details { margin-top:7px; }
.sh-results summary { display:flex; align-items:center; gap:13px; cursor:pointer; padding:15px 18px; list-style:none; }
.sh-results summary::-webkit-details-marker { display:none; }
.sh-results summary>div { flex:1; min-width:0; }
.sh-results summary strong { display:block; font-size:1rem; }
.sh-results summary span { display:block; margin:3px 0 0; font-size:.8rem; line-height:1.45; color:var(--sh-muted); }
.sh-results summary small { display:block; font-size:.75rem; font-weight:650; color:var(--sh-muted); font-variant-numeric:tabular-nums; }
.sh-results summary i { display:block; width:8px; height:8px; margin-right:3px; border-right:1.5px solid var(--sh-muted); border-bottom:1.5px solid var(--sh-muted); transform:rotate(45deg); }
.sh-results details[open]>summary { border-bottom:1px solid var(--sh-edge); background:#f7f2eb; }
.sh-results details[open]>summary i { transform:rotate(225deg); }
.sh-items { padding:0 18px; }
.sh-item { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:13px 0; }
.sh-item+.sh-item { border-top:1px solid #e9e2d8; }
.sh-item-info { flex:1; min-width:0; }
.sh-item-name,.sh-fact-link { word-break:break-word; line-height:1.4; }
.sh-item-name { font-size:.94rem!important; font-weight:650!important; }
.sh-item-name:hover,.sh-fact-link:hover { color:var(--sh-wine); text-decoration:underline; }
.sh-item-info small,.sh-item-info p { display:block; font-size:.77rem; line-height:1.48; color:var(--sh-muted); }
.sh-item-info small { margin-top:2px; }
.sh-item-info p { margin:4px 0 0; max-width:76ch; color:#504b46; }
.sh-hub select.sh-status,.sh-guest select { width:auto; max-width:170px; flex:none; min-height:35px; font-size:.8rem; }
.sh-hub .sh-owned,.sh-hub .sh-received { background:#edf1e9; color:#324b3b; }
.sh-hub .sh-registry { background:#f5e9e6; color:#69393d; }
.sh-empty,.sh-card,.sh-facts { background:var(--sh-paper); border:1px solid var(--sh-edge); border-radius:10px; }
.sh-empty { padding:24px 20px; }
.sh-empty .sh-button { margin-top:10px; }
.sh-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:16px 0; }
.sh-facts>div { padding:14px 18px; min-width:0; }
.sh-facts>div+div { border-left:1px solid var(--sh-edge); }
.sh-facts small { display:block; font-size:.75rem; color:var(--sh-muted); margin-bottom:3px; }
.sh-facts .sh-fact-link { font-weight:600; font-size:.96rem; }
.sh-plan-note { padding:12px 16px; font-size:.88rem; line-height:1.5; background:var(--sh-wash); overflow-wrap:anywhere; border-radius:6px; }
.sh-plan-layout { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(250px,1fr); align-items:start; gap:16px; }
.sh-card { padding:18px; min-width:0; }
.sh-card-top h3,.sh-empty h3 { font-size:1.55rem; }
.sh-card-top p { font-size:.8rem!important; }
.sh-phase { margin-top:20px; }
.sh-phase h4 { font-size:1rem; margin:0; }
.sh-phase>small { display:block; color:var(--sh-muted); font-size:.77rem; margin:3px 0 7px; }
.sh-check { display:flex; align-items:flex-start; gap:10px; cursor:pointer; padding:9px 0; border-top:1px solid #e9e2d8; }
.sh-check input,.sh-inline-check input { accent-color:var(--sh-wine); width:17px; height:17px; margin:3px 0 0; flex:none; }
.sh-check span { display:block; }
.sh-check b { font-size:.89rem; font-weight:600; }
.sh-check span>span { font-size:.8rem; margin-top:3px; line-height:1.45; color:var(--sh-muted); }
.sh-check input:checked+span>b { text-decoration:line-through; color:var(--sh-muted); }
.sh-guest { display:flex; justify-content:space-between; gap:8px; align-items:center; padding:12px 0; border-top:1px solid var(--sh-edge); }
.sh-guest:first-of-type { margin-top:10px; }
.sh-guest select { max-width:53%; }
.sh-guest-card .sh-card-top { margin-bottom:10px; }
.sh-form { display:grid; gap:14px; }
.sh-form [hidden] { display:none!important; }
.sh-form .sh-item-intro { margin:0; }
.sh-form .sh-form-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.sh-form textarea { resize:vertical; }
.sh-form .sh-inline-check { display:flex; flex-direction:row; gap:9px; align-items:flex-start; }
.sh-form .sh-inline-check input { margin:1px 0 0; min-height:0; }
.sh-gift-fields { display:grid; gap:12px; padding:12px; border-radius:6px; background:var(--sh-wash); }
.sh-form-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:8px; }
.sh-form-actions .sh-danger { margin-right:auto; }
.sh-danger { color:#83373b; }
.sh-form .sh-primary { background:var(--sh-wine); border-color:var(--sh-wine); color:white; }
@media(max-width:750px) {
  .sh-plan-layout { grid-template-columns:1fr; }
  .sh-filters { grid-template-columns:1fr 1fr; }
  .sh-filters>label:first-child { grid-column:1 / -1; }
}
@media(max-width:540px) {
  .sh-brief { align-items:flex-start; flex-direction:column; gap:12px; }
  .sh-filters { grid-template-columns:1fr; padding:12px; }
  .sh-facts { grid-template-columns:1fr; }
  .sh-facts>div { padding:10px 14px; }
  .sh-facts>div+div { border-left:0; border-top:1px solid var(--sh-edge); }
  .sh-facts>div { display:grid; grid-template-columns:6rem 1fr; gap:8px; align-items:center; }
  .sh-item { align-items:flex-start; flex-direction:column; gap:8px; }
  .sh-hub select.sh-status { max-width:100%; }
  .sh-results summary { padding:13px; gap:10px; }
  .sh-items { padding:0 13px; }
  .sh-form .sh-form-pair { grid-template-columns:1fr; }
  .sh-card { padding:14px; }
}
