*{box-sizing:border-box;margin:0;padding:0;}
   html,body{width:100%;height:100vh;overflow:hidden;}
   body{font-family:'Selawik',system-ui,sans-serif;font-size:12px;background:var(--bg0);color:var(--t1);line-height:1.4;}
   button{font-family:inherit;cursor:pointer;border:none;outline:none;}
   select{font-family:inherit;outline:none;}
   input{font-family:inherit;outline:none;}
   .app{width:100%;height:100vh;display:flex;flex-direction:column;padding:8px;gap:8px;overflow:hidden;}
   .topbar{height:36px;flex-shrink:0;display:flex;align-items:center;gap:10px;background:var(--bg1);border:1px solid var(--bd);border-radius:var(--rad);padding:0 12px;}   .tsep{width:1px;height:18px;background:var(--bd);margin:0 2px;}
   .nav-tabs{display:flex;gap:2px;}
   .nav-tab{padding:4px 14px;border-radius:var(--rad-sm);font-size:11px;font-weight:600;color:var(--t2);background:transparent;border:1px solid transparent;cursor:pointer;transition:all .15s;}
   .nav-tab:hover{color:var(--t1);background:var(--bg3);}
   .nav-tab.active{color:var(--acc);background:var(--acc-dim);border-color:var(--acc2);}
   .sp{flex:1;}
   /* theme button: a round contrast icon (drawn by applyTheme in shared.js) */
   .theme-tog{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border-radius:50%;background:var(--bg2);border:1px solid var(--bd);color:var(--t2);cursor:pointer;user-select:none;flex-shrink:0;transition:color .12s,border-color .12s;}
   .theme-tog:hover{color:var(--t1);border-color:var(--bd2);}
   .theme-tog .theme-ico{display:block;transition:transform .25s ease;}
   .theme-tog.is-light .theme-ico{transform:rotate(180deg);}
   .theme-tog .dot,.theme-tog #themeLbl{display:none;}
   /* Settings: the gear next to the Dark/Light switch, and its panel */
   .settings-tog{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border-radius:50%;background:var(--bg2);border:1px solid var(--bd);color:var(--t2);cursor:pointer;user-select:none;flex-shrink:0;transition:color .12s,border-color .12s;}
   .settings-tog:hover{color:var(--t1);border-color:var(--bd2);}
   .settings-tog svg{display:block;transition:transform .3s ease;}
   .settings-tog:hover svg{transform:rotate(45deg);}
   .set-back{position:fixed;inset:0;z-index:10000;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.45);}
   .set-back.open{display:flex;}
   .set-panel{width:400px;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);overflow-y:auto;background:var(--bg1);border:1px solid var(--bd2);border-radius:var(--rad);box-shadow:0 14px 40px rgba(0,0,0,.5);padding:14px 16px 6px;box-sizing:border-box;color:var(--t1);}
   .set-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
   .set-title{font-size:14px;font-weight:700;}
   .set-x{width:24px;height:24px;border:none;border-radius:50%;background:transparent;color:var(--t2);font-size:18px;line-height:1;cursor:pointer;}
   .set-x:hover{background:var(--bg3);color:var(--t1);}
   .set-sec{padding:10px 0;border-top:1px solid var(--bd);}
   .set-head + .set-sec{border-top:none;}
   .set-row{display:flex;align-items:center;justify-content:space-between;gap:12px;}
   .set-row .btn{flex-shrink:0;}
   .set-txt{font-size:11.5px;color:var(--t2);line-height:1.4;}
   .set-txt b{color:var(--t1);font-weight:600;}
   .set-key{margin-top:4px;font-size:11.5px;color:var(--t1);font-family:ui-monospace,Consolas,Menlo,monospace;letter-spacing:.5px;user-select:text;-webkit-user-select:text;}
   .set-key:empty{display:none;}
   .set-note{margin-top:6px;font-size:11px;color:var(--t2);line-height:1.4;}
   .set-note:empty{display:none;}
   .set-note .btn{margin-left:6px;}
   .set-note.set-good b{color:var(--acc);}
   .set-bad{color:var(--red-lt);}
   .set-seg{display:flex;}
   .set-seg button{flex:1;padding:6px 8px;font-size:11px;font-weight:600;background:var(--bg2);color:var(--t2);border:1px solid var(--bd);cursor:pointer;transition:background .12s,color .12s;}
   .set-seg button:first-child{border-radius:var(--rad-sm) 0 0 var(--rad-sm);}
   .set-seg button:last-child{border-radius:0 var(--rad-sm) var(--rad-sm) 0;border-left:none;}
   .set-seg button:hover{color:var(--t1);}
   .set-seg button.on{background:var(--acc-dim);color:var(--acc);border-color:var(--acc);}
   .cols{display:grid;gap:8px;flex:1;min-height:0;overflow:hidden;}
   .col{display:flex;flex-direction:column;overflow:hidden;background:var(--bg1);border:1px solid var(--bd);border-radius:var(--rad);}
   .col-mid{display:flex;flex-direction:column;gap:8px;overflow:hidden;min-height:0;}
   .sec{padding:10px 12px;border-bottom:1px solid var(--bd);flex-shrink:0;}
   .sec.grow{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;scrollbar-width:none;}
   .sec.grow::-webkit-scrollbar{display:none;}
   .sec-title{font-size:9px;font-weight:700;letter-spacing:.7px;color:var(--t3);text-transform:uppercase;margin-bottom:6px;}
   .sec-hdr{font-size:9px;font-weight:700;letter-spacing:.6px;color:var(--t3);text-transform:uppercase;margin-top:10px;margin-bottom:4px;}
   .hole-cards{display:flex;gap:6px;align-items:center;}
   .hole-card{width:42px;height:58px;border-radius:var(--rad);background:var(--bg2);border:1px solid var(--bd);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:border-color .1s;}
   .hole-card:hover{border-color:var(--bd2);}
   .hole-card .hcr{font-size:17px;font-weight:700;line-height:1;}
   .hole-card .hcs{font-size:11px;line-height:1;}
   .hole-card.h .hcr,.hole-card.h .hcs{color:var(--sh);}
   .hole-card.d .hcr,.hole-card.d .hcs{color:var(--sd);}
   .hole-card.s .hcr,.hole-card.s .hcs{color:var(--ss);}
   .hole-card.c .hcr,.hole-card.c .hcs{color:var(--sc);}
   .hole-card.empty .hcr{font-size:22px;color:var(--t3);font-weight:300;}
   .wtl-bar-labels{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;}
   .wtl-bar-label{font-size:11px;font-weight:700;letter-spacing:.3px;}
   .wtl-bar-label.win{color:var(--grn);}
   .wtl-bar-label.tie{color:var(--t2);}
   .wtl-bar-label.lose{color:var(--red);}
   .wtl-bar-track{height:10px;border-radius:5px;display:flex;overflow:hidden;background:var(--bg3);}
   .wtl-bar-seg{height:100%;transition:width .4s ease;}
   .wtl-bar-seg.win{background:var(--grn);}
   .wtl-bar-seg.tie{background:var(--t3);}
   .wtl-bar-seg.lose{background:var(--red);}
   .btn{padding:4px 10px;border-radius:var(--rad-sm);font-size:11px;font-weight:600;background:var(--acc);color:#fff;cursor:pointer;border:none;transition:filter .15s;}
   .btn:hover{filter:brightness(1.15);}
   .btn.ghost{background:var(--bg2);color:var(--t2);border:1px solid var(--bd);}
   .btn.ghost:hover{color:var(--t1);border-color:var(--bd2);}.btn.sm{padding:3px 8px;font-size:10px;}
   .btn.active-fmt{background:var(--acc-dim);color:var(--acc);border:1px solid var(--acc);}
   .sel{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rad-sm);color:var(--t2);padding:3px 6px;font-size:10px;}
   .pcount{display:flex;gap:3px;flex-wrap:wrap;}
   .pc-btn{width:26px;height:26px;border-radius:var(--rad-sm);font-size:11px;font-weight:700;background:var(--bg2);color:var(--t2);border:1px solid var(--bd);cursor:pointer;}
   .pc-btn:hover{border-color:var(--bd2);color:var(--t1);}
   .pc-btn.active{background:var(--acc-dim);color:var(--acc);border-color:var(--acc);}
   .board-panel{background:var(--bg1);border:1px solid var(--bd);border-radius:var(--rad);padding:8px;flex-shrink:0;}
   .board-row{display:flex;align-items:center;gap:4px;margin-top:6px;}
   .board-slot{flex:1;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rad-sm);height:36px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:border-color .1s;}
   .board-slot:hover{border-color:var(--bd2);}
   .board-slot .stag{position:absolute;top:2px;left:4px;font-size:6px;color:var(--t3);}
   .board-slot .sr{font-size:15px;font-weight:700;line-height:1.1;}
   .board-slot .ss{font-size:9px;line-height:1;}
   .board-slot.h .sr,.board-slot.h .ss{color:var(--sh);}
   .board-slot.d .sr,.board-slot.d .ss{color:var(--sd);}
   .board-slot.s .sr,.board-slot.s .ss{color:var(--ss);}
   .board-slot.c .sr,.board-slot.c .ss{color:var(--sc);}
   .board-slot.empty .sr{font-size:20px;color:var(--t3);font-weight:300;}
   .street-sep{width:1px;height:28px;background:var(--bd);flex-shrink:0;}
   .cards-panel{background:var(--bg1);border:1px solid var(--bd);border-radius:var(--rad);padding:6px;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;}
   .suit-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;flex:1;min-height:0;overflow:hidden;}
   .suit-col{display:flex;flex-direction:column;gap:2px;min-height:0;}
   .suit-hdr{text-align:center;font-size:18px;font-weight:700;padding:2px 0;margin-bottom:2px;flex-shrink:0;}
   .scard{border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;cursor:pointer;background:var(--cbg);border:1px solid var(--bd);flex:1;min-height:0;transition:all .1s;position:relative;}
   .scard:hover:not(.used){border-color:var(--bd2);filter:brightness(1.15);}
   .scard.h{color:var(--sh);}
   .scard.d{color:var(--sd);}
   .scard.s{color:var(--ss);}
   .scard.c{color:var(--sc);}
   .scard.used{background:var(--cused);opacity:.35;cursor:pointer;}
   .scard.tc-hl {
     outline: 2px solid var(--org);
     outline-offset: -2px;
     box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--org) 35%, transparent);
   }
   .scard.tc-hl:not(.used) { background: color-mix(in srgb, var(--org) 16%, transparent); }
   .scard.tc-hl:hover {
     outline-width: 3px;
     filter: brightness(1.25);
   }
   .scard-delta {
     position: absolute;
     right: 2px;
     bottom: 1px;
     font-size: 7px;
     font-weight: 700;
     line-height: 1;
     color: var(--org);
     background: var(--bg1);
     padding: 0 2px;
     border-radius: 2px;
     pointer-events: none;
   }
   .scard.tc-hl.tc-neg { outline-color: var(--t3); }
   .scard.tc-hl.tc-neg:not(.used) { background: color-mix(in srgb, var(--t3) 14%, transparent); }
   .scard.tc-hl.tc-neg .scard-delta { color: var(--t2); }
   .scard.gc-hl {
     box-shadow: inset 0 0 0 2px var(--grn), inset 0 0 8px color-mix(in srgb, var(--grn) 30%, transparent);
   }
   .scard.gc-hl:not(.used) { background: color-mix(in srgb, var(--grn) 14%, transparent); }
   .scard.tc-hl.gc-hl {
     box-shadow: inset 0 0 0 2px var(--grn), inset 0 0 8px color-mix(in srgb, var(--grn) 30%, transparent);
     outline-offset: -4px;
   }
   .scard-gdelta {
     position: absolute;
     left: 2px;
     top: 1px;
     font-size: 7px;
     font-weight: 700;
     line-height: 1;
     color: var(--grn);
     background: var(--bg1);
     padding: 0 2px;
     border-radius: 2px;
     pointer-events: none;
   }
   .scard.gc-hl.gc-neg { box-shadow: inset 0 0 0 2px var(--t3); }
   .scard.gc-hl.gc-neg:not(.used) { background: color-mix(in srgb, var(--t3) 12%, transparent); }
   .scard.gc-hl.gc-neg .scard-gdelta { color: var(--t2); }
   .eq-wrap{display:flex;flex-direction:column;gap:4px;}
   .eq-labels{display:flex;justify-content:space-between;align-items:baseline;}
   .eq-lbl{font-size:12px;font-weight:700;}
   .eq-lbl.a{color:var(--range-a);}
   .eq-lbl.b{color:var(--range-b);}
   .eq-lbl.tie{font-size:10px;color:var(--t3);}
   .eq-bar{height:8px;border-radius:4px;background:var(--bg3);display:flex;overflow:hidden;}
   .eq-a{background:var(--range-a);transition:width .4s;}
   .eq-tie{background:var(--t3);transition:width .4s;}
   .eq-b{background:var(--range-b);transition:width .4s;}