:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;color:#111827;background:#f3f4f6}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#f3f4f6}button,input,select,textarea{font:inherit}.app-shell{width:min(960px,100%);margin:0 auto;padding:32px 20px}.logo-card{border:3px solid #111827;background:#fff;padding:36px 24px;text-align:center;cursor:pointer;margin-bottom:32px}.logo-card h1{font-size:clamp(2.5rem,8vw,5rem);margin:0;letter-spacing:-.05em}.logo-card p{margin:12px 0 0;color:#4b5563}.home-nav{display:grid;gap:20px;justify-content:center}.nav-button{min-width:260px;border:3px solid #111827;background:#fff;padding:22px 28px;font-size:1.5rem;cursor:pointer}.nav-button:hover,.back-button:hover,.secondary-button:hover{background:#e5e7eb}.page-card{border:3px solid #111827;background:#fff;padding:24px}.back-button{border:2px solid #111827;background:#fff;padding:8px 12px;margin-bottom:16px;cursor:pointer}h2{font-size:2rem;margin:0 0 8px}h3{margin-top:28px}p{line-height:1.6}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:20px}label{display:block;font-weight:600}label>input,label>select,label>textarea{display:block;margin-top:6px}input,select,textarea{width:100%;border:2px solid #111827;padding:10px;background:#fff}.required{color:#b91c1c;display:inline;margin-left:2px}.primary-button{border:3px solid #111827;background:#111827;color:#fff;padding:12px 18px;margin-top:24px;cursor:pointer;font-weight:700}.primary-button:disabled{opacity:.45;cursor:not-allowed}.secondary-button{border:3px solid #111827;background:#fff;color:#111827;padding:12px 18px;margin-top:20px;cursor:pointer;font-weight:700}.secondary-button:disabled{opacity:.45;cursor:not-allowed}.helper-text{color:#6b7280;margin-top:10px}.error-text{color:#b91c1c;font-weight:700}.success-text{color:#047857;font-weight:700}.session-summary{border:2px solid #111827;padding:16px;margin:20px 0;background:#f9fafb}.session-summary p{margin:4px 0}.event-summary-card{border:2px solid #111827;padding:16px;margin-top:20px;background:#f9fafb}.event-summary-card h3{margin-top:0}.event-summary-card p{margin:4px 0}.bowler-order-card{border:2px solid #111827;padding:18px;margin-top:24px;background:#f9fafb}.bowler-order-card h3{margin-top:0}.baker-rotation-card{border:2px solid #111827;background:#fff;padding:14px;margin:16px 0}.baker-rotation-card h4{margin:0 0 10px}.baker-rotation-list{display:grid;gap:6px}.baker-rotation-list p{margin:0}.frame-card{border:2px solid #111827;padding:18px;background:#fff}.current-frame-card{margin-top:24px}.frame-header{display:flex;justify-content:space-between;gap:20px;border-bottom:2px solid #111827;padding-bottom:14px;margin-bottom:14px}.frame-header h3{margin:0;font-size:1.8rem}.eyebrow{margin:0 0 4px;color:#6b7280;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em}.progress-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px;color:#374151;font-weight:700}.progress-row span{border:2px solid #111827;padding:6px 10px;background:#f9fafb}.pin-entry-layout{display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:28px;align-items:start;margin-top:24px}.shot-decks{display:grid;gap:18px}.second-shot-card{border-top:2px dashed #111827;padding-top:18px}.pin-deck{position:relative;width:100%;max-width:380px;aspect-ratio:1 / .95;border:3px solid #111827;background:#f9fafb;margin-top:12px;overflow:hidden}.pin-button{position:absolute;transform:translate(-50%,-50%);width:52px;height:52px;border:3px solid #111827;border-radius:999px;background:#fff;color:#111827;font-weight:800;cursor:pointer}.pin-button.knocked{background:#111827;color:#fff}.pin-button.unavailable{visibility:hidden;pointer-events:none}.pin-button:hover{transform:translate(-50%,-50%) scale(1.08)}.pin-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.pin-actions .secondary-button{margin-top:0}.shot-summary{border:2px solid #111827;background:#fff;padding:12px;margin-top:12px}.shot-summary p{margin:4px 0}.compact-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.frame-edit-warning-text{border:2px solid #111827;background:#fff7ed;padding:12px;margin-top:18px}.frame-navigation{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.post-game-actions{border-top:2px solid #111827;margin-top:24px;padding-top:20px}.post-game-actions h3{margin-top:0}.post-game-buttons{display:flex;flex-wrap:wrap;gap:12px}.post-game-buttons .primary-button,.post-game-buttons .secondary-button{margin-top:0}.next-game-card{border:2px solid #111827;background:#f9fafb;padding:16px;margin-top:18px}.next-game-card .primary-button{margin-top:16px}.completed-games-card{border:2px solid #111827;background:#fff;padding:14px;margin:16px 0}.completed-games-card h4{margin:0 0 12px}.completed-game-row{display:grid;grid-template-columns:minmax(120px,180px) 1fr;gap:16px;border-top:2px solid #111827;padding-top:12px;margin-top:12px}.completed-game-row:first-of-type{border-top:0;padding-top:0;margin-top:0}.completed-game-row p{margin:4px 0}.score-list{display:flex;flex-wrap:wrap;gap:12px}.bowler-form-card,.bowler-card,.add-ball-card{border:2px solid #111827;background:#f9fafb;padding:16px;margin-top:20px}.bowler-form-card h3,.bowler-card h3,.add-ball-card h4{margin-top:0}.bowler-list{display:grid;gap:20px;margin-top:24px}.card-header{display:flex;justify-content:space-between;gap:16px;align-items:start;border-bottom:2px solid #111827;padding-bottom:12px;margin-bottom:16px}.card-header h3{margin:0}.card-header p{margin:4px 0 0;color:#6b7280}.danger-button{border:3px solid #991b1b;background:#fff;color:#991b1b;padding:10px 14px;cursor:pointer;font-weight:700}.danger-button:hover{background:#fee2e2}.small-button{padding:6px 10px;font-size:.9rem}.arsenal-section{margin-top:20px}.arsenal-section h4{margin-bottom:10px}.arsenal-list{display:grid;gap:10px;margin-bottom:16px}.ball-card{border:2px solid #111827;background:#fff;padding:12px;display:flex;justify-content:space-between;gap:12px;align-items:start}.ball-card p{margin:4px 0;color:#4b5563}.bowler-summary,.add-ball-summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center}.bowler-summary::-webkit-details-marker,.add-ball-summary::-webkit-details-marker{display:none}.bowler-summary:after,.add-ball-summary:after{content:"+";border:2px solid #111827;width:28px;height:28px;display:grid;place-items:center;font-weight:800;flex:0 0 auto}.bowler-card[open]>.bowler-summary:after,.add-ball-card[open]>.add-ball-summary:after{content:"−"}.bowler-summary strong{font-size:1.25rem}.bowler-summary p{margin:4px 0 0;color:#6b7280}.summary-hint{color:#6b7280;font-size:.9rem;margin-left:auto}.bowler-details-content{border-top:2px solid #111827;margin-top:16px;padding-top:16px}.add-ball-content{border-top:2px solid #111827;margin-top:14px;padding-top:14px}@media(max-width:800px){.pin-entry-layout{grid-template-columns:1fr}}@media(max-width:700px){.card-header,.ball-card{display:grid}}@media(max-width:600px){.app-shell{padding:20px 12px}.nav-button{width:100%;min-width:0}.frame-header{display:grid}}.bowler-actions-row{display:flex;justify-content:flex-end;gap:12px;border-bottom:2px solid #111827;padding-bottom:12px;margin-bottom:16px}.center-form-card,.center-card,.lane-preview-card{border:2px solid #111827;background:#f9fafb;padding:16px;margin-top:20px}.center-form-card h3,.center-card h3,.lane-preview-card h4{margin-top:0}.center-list{display:grid;gap:20px;margin-top:24px}.center-summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center}.center-summary::-webkit-details-marker{display:none}.center-summary:after{content:"+";border:2px solid #111827;width:28px;height:28px;display:grid;place-items:center;font-weight:800;flex:0 0 auto}.center-card[open]>.center-summary:after{content:"−"}.center-summary strong{font-size:1.25rem}.center-summary p{margin:4px 0 0;color:#6b7280}.center-details-content{border-top:2px solid #111827;margin-top:16px;padding-top:16px}.center-actions-row{display:flex;justify-content:flex-end;gap:12px;border-bottom:2px solid #111827;padding-bottom:12px;margin-bottom:16px}.lane-preview-card{background:#fff}.lane-preview-card p{margin:4px 0}.pattern-form-card,.pattern-card,.resource-link{border:2px solid #111827;background:#f9fafb;padding:12px 14px;margin:16px 0 0;font-weight:700}.resource-link a{color:#111827;text-decoration:underline}.pattern-preview-card{border:2px solid #111827;background:#f9fafb;padding:16px;margin-top:20px}.pattern-form-card h3,.pattern-card h3,.pattern-preview-card h4{margin-top:0}.pattern-list{display:grid;gap:20px;margin-top:24px}.pattern-summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center}.pattern-summary::-webkit-details-marker{display:none}.pattern-summary:after{content:"+";border:2px solid #111827;width:28px;height:28px;display:grid;place-items:center;font-weight:800;flex:0 0 auto}.pattern-card[open]>.pattern-summary:after{content:"−"}.pattern-summary strong{font-size:1.25rem}.pattern-summary p{margin:4px 0 0;color:#6b7280}.pattern-details-content{border-top:2px solid #111827;margin-top:16px;padding-top:16px}.pattern-actions-row{display:flex;justify-content:flex-end;gap:12px;border-bottom:2px solid #111827;padding-bottom:12px;margin-bottom:16px}.pattern-preview-card{background:#fff}.pattern-preview-card p{margin:4px 0}.save-button{border:3px solid #047857;background:#fff;color:#047857;padding:10px 14px;cursor:pointer;font-weight:700}.save-button:hover{background:#d1fae5}.unsaved-text{color:#b45309!important;font-weight:700}.event-form-card,.event-card,.event-link-hint{color:#047857!important;font-weight:700}.event-resource-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:14px}.event-resource-links a{border:2px solid #111827;background:#f9fafb;color:#111827;padding:12px 14px;text-align:center;font-weight:700;text-decoration:none}.event-resource-links a:hover{background:#e5e7eb}.event-preview-card{border:2px solid #111827;background:#f9fafb;padding:16px;margin-top:20px}.event-form-card h3,.event-card h3,.event-preview-card h4{margin-top:0}.event-list{display:grid;gap:20px;margin-top:24px}.event-summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center}.event-summary::-webkit-details-marker{display:none}.event-summary:after{content:"+";border:2px solid #111827;width:28px;height:28px;display:grid;place-items:center;font-weight:800;flex:0 0 auto}.event-card[open]>.event-summary:after{content:"−"}.event-summary strong{font-size:1.25rem}.event-summary p{margin:4px 0 0;color:#6b7280}.event-details-content{border-top:2px solid #111827;margin-top:16px;padding-top:16px}.event-actions-row{display:flex;justify-content:flex-end;gap:12px;border-bottom:2px solid #111827;padding-bottom:12px;margin-bottom:16px}.event-preview-card{background:#fff}.event-preview-card p{margin:4px 0}.empty-state-card,.stats-filter-card,.stats-table-card,.saved-game-card{border:2px solid #111827;background:#f9fafb;padding:16px;margin-top:20px}.empty-state-card h3,.stats-filter-card h3,.stats-table-card h3,.saved-game-card h4{margin-top:0}.stats-action-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.stats-action-row .secondary-button,.stats-action-row .primary-button{margin-top:0}.stats-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-top:20px}.stat-card{border:2px solid #111827;background:#fff;padding:16px;display:grid;gap:4px}.stat-card strong{font-size:2rem}.stat-card span{color:#6b7280;font-weight:700}.table-scroll{overflow-x:auto}.stats-table{width:100%;border-collapse:collapse;background:#fff}.stats-table th,.stats-table td{border:2px solid #111827;padding:10px;text-align:left}.stats-table th{background:#f3f4f6}.saved-games-list{display:grid;gap:16px;margin-top:24px}.saved-game-card{display:flex;justify-content:space-between;gap:16px;align-items:start}.saved-game-card p{margin:4px 0}@media(max-width:700px){.saved-game-card{display:grid}}.deep-stats-card,.ball-stats-card,.transition-card,.saved-set-card{border:2px solid #111827;background:#f9fafb;padding:16px;margin-top:20px}.frame-editor-overlay{position:fixed;inset:0;background:#111827ad;padding:28px;z-index:1000;overflow-y:auto}.frame-editor-modal{width:min(1040px,100%);margin:0 auto;border:3px solid #111827;background:#fff;padding:24px}.frame-editor-header{display:flex;justify-content:space-between;gap:20px;border-bottom:2px solid #111827;padding-bottom:16px;margin-bottom:18px}.frame-editor-header h3{margin-top:0}.frame-editor-progress{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.active-frame-button{background:#111827;color:#fff}.frame-editor-pin-layout{margin-top:18px}.frame-editor-score-preview{border:2px solid #111827;background:#f9fafb;padding:14px;margin-top:18px}.frame-editor-score-preview>strong{display:block;margin-bottom:8px}@media(max-width:700px){.frame-editor-overlay{padding:12px}.frame-editor-header{display:block}}.game-notes-card{border:2px solid #111827;background:#f9fafb;padding:18px;margin-top:16px}.game-notes-card h4{margin:0 0 8px}.game-notes-card p{margin-top:0}.game-notes-form{margin-top:16px}.game-score-card>strong{display:block;margin-bottom:6px}.game-score-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-top:12px}.frame-ball-card>strong{display:block;margin-bottom:6px}.frame-ball-table select{min-width:180px}.saved-game-notes-field{margin-top:14px}.saved-game-notes-field textarea{margin-top:6px}.saved-game-actions-row{margin-top:14px}.set-metadata-card{border:2px solid #111827;background:#f9fafb;padding:18px;margin-top:18px;margin-bottom:18px}.set-metadata-header h4{margin:0 0 8px}.set-metadata-header p{margin:0}.set-metadata-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px 16px;margin:16px 0}.set-metadata-grid p{margin:0}.set-metadata-form{margin-top:16px}.metadata-game-lane-card{border:2px solid #111827;background:#fff;padding:14px}.metadata-game-lane-card>strong{display:block;margin-bottom:6px}.metadata-game-lane-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-top:12px}.full-width-field{grid-column:1 / -1}.saved-set-top-actions,.saved-set-actions-row,.saved-game-actions-row,.data-button-row,.setup-button-row,.frame-navigation{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:stretch;gap:10px}.saved-set-top-actions>button,.saved-set-actions-row>button,.saved-game-actions-row>button,.data-button-row>button,.data-card>.import-button,.setup-button-row>button,.frame-navigation>button{width:100%;min-height:52px;margin-top:0;display:inline-flex;align-items:center;justify-content:center;text-align:center}.saved-game-collapsible-card{padding:0;overflow:hidden}.saved-game-summary{cursor:pointer;padding:16px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;list-style:none}.saved-game-summary::-webkit-details-marker{display:none}.saved-game-summary:after{content:"+";border:2px solid #111827;width:28px;height:28px;display:inline-grid;place-items:center;font-weight:800}.saved-game-collapsible-card[open] .saved-game-summary:after{content:"–"}.saved-game-summary div:first-child{display:grid;gap:4px}.saved-game-summary-meta{display:flex;align-items:center;gap:10px;color:#6b7280;font-size:.9rem}.saved-game-detail-content{border-top:2px solid #111827;padding:16px}@media(max-width:700px){.saved-game-summary{grid-template-columns:1fr}.saved-game-summary-meta{display:grid}}.saved-set-top-actions{margin-bottom:18px}.saved-set-content-divider{border-top:2px solid #111827;margin:18px 0}.saved-game-detail-card{border:2px solid #111827;background:#f9fafb;padding:16px;margin-top:20px}.deep-stats-card h3,.ball-stats-card h4,.transition-card h4,.saved-game-detail-card h4{margin-top:0}.deep-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-top:16px}.saved-sets-list{display:grid;gap:16px;margin-top:24px}.saved-set-summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center}.saved-set-summary::-webkit-details-marker{display:none}.saved-set-summary:after{content:"+";border:2px solid #111827;width:28px;height:28px;display:grid;place-items:center;font-weight:800;flex:0 0 auto}.saved-set-card[open]>.saved-set-summary:after{content:"−"}.saved-set-summary strong{font-size:1.25rem}.saved-set-summary p{margin:4px 0 0;color:#6b7280}.saved-set-details{border-top:2px solid #111827;margin-top:16px;padding-top:16px}.saved-set-actions-row{display:flex;justify-content:flex-end;margin-bottom:16px}.saved-game-detail-card{background:#fff}.saved-game-detail-card p{margin:4px 0}.score-grid-card,.set-specific-stats-card{border:2px solid #111827;background:#fff;padding:12px;margin-top:18px}.score-grid-card h4,.set-specific-stats-card h4{margin:0 0 10px}.score-grid{display:grid;grid-template-columns:repeat(10,minmax(76px,1fr));overflow-x:auto;border-top:2px solid #111827;border-left:2px solid #111827}.score-frame{min-width:76px;border-right:2px solid #111827;border-bottom:2px solid #111827;display:grid;grid-template-rows:auto 36px 42px;background:#eaf6ff}.score-frame-number{text-align:center;font-weight:800;border-bottom:1px solid #111827;padding:4px;background:#cfe8ff}.score-rolls{display:grid;grid-template-columns:1fr 1fr;min-height:36px}.score-rolls span{display:grid;place-items:center;font-weight:800;border-left:1px solid #111827}.score-rolls span:first-child{border-left:0}.tenth-frame-rolls{grid-template-columns:1fr 1fr 1fr}.score-total{display:grid;place-items:center;font-size:1.1rem;font-weight:900;border-top:2px solid #111827;background:#f7fbff}@media(max-width:900px){.score-grid{grid-template-columns:repeat(10,86px)}}.score-rolls{background:#eef7ff}.score-rolls span{min-height:36px}.split-score-mark{position:relative;z-index:1}.split-score-mark:after{content:"";position:absolute;width:1.55em;height:1.55em;border:2px solid #111827;border-radius:999px;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none}.spare-leave-card{border:2px solid #111827;background:#f9fafb;padding:16px;margin-top:20px}.spare-leave-card h3{margin-top:0}.board-analysis-card{border:2px solid #111827;background:#f9fafb;padding:16px;margin-top:20px}.board-analysis-card h3{margin-top:0}.board-table-section{margin-top:20px}.board-table-section h4{margin-bottom:10px}.board-analysis-card .stats-summary-grid{margin-bottom:8px}.add-form-card{background:#f9fafb}.add-form-summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center}.add-form-summary::-webkit-details-marker{display:none}.add-form-summary:after{content:"+";border:2px solid #111827;width:28px;height:28px;display:grid;place-items:center;font-weight:800;flex:0 0 auto}.add-form-card[open]>.add-form-summary:after{content:"−"}.add-form-summary strong{font-size:1.25rem}.add-form-content{border-top:2px solid #111827;margin-top:16px;padding-top:16px}.stats-collapsible-card{border:2px solid #111827;background:#f9fafb;padding:16px;margin-top:20px}.stats-section-summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center}.stats-section-summary::-webkit-details-marker{display:none}.stats-section-summary:after{content:"+";border:2px solid #111827;width:28px;height:28px;display:grid;place-items:center;font-weight:800;flex:0 0 auto}.stats-collapsible-card[open]>.stats-section-summary:after{content:"−"}.stats-section-summary strong{font-size:1.25rem}.stats-section-summary p{margin:4px 0 0;color:#6b7280}.stats-collapsible-content{border-top:2px solid #111827;margin-top:16px;padding-top:16px}.stats-collapsible-content.stats-summary-grid{display:grid}.inner-stats-card{background:#fff}.baker-breakdown-card,.baker-frame-card{border:2px solid #111827;background:#fff;padding:16px;margin-top:20px}.baker-breakdown-card h4,.baker-frame-card h4{margin-top:0}.baker-stats-card{border:2px solid #111827;background:#f9fafb;padding:16px;margin-top:20px}.checkbox-label{display:flex;align-items:center;gap:10px;min-height:48px;margin-top:25px;font-weight:700}.checkbox-label input{width:auto;min-height:auto;transform:scale(1.2)}.stats-collapsible-card{background:#f9fafb}.stats-section-summary{background:#e5e7eb;border:2px solid #111827;padding:14px 16px;margin:-2px;transition:background .15s ease,transform .15s ease}.stats-section-summary:hover{background:#d1d5db}.stats-collapsible-card[open]>.stats-section-summary{background:#d1d5db}.stats-section-summary .summary-hint{background:#f3f4f6;border:2px solid #111827;color:#111827;padding:8px 12px;font-weight:800}.stats-section-summary:after{background:#f3f4f6}.stats-collapsible-content{margin-top:18px}.stats-collapsible-card:not(.stats-filter-card)>.stats-section-summary{background:transparent;border:0;padding:0;margin:0;transition:none}.stats-collapsible-card:not(.stats-filter-card)>.stats-section-summary:hover,.stats-collapsible-card:not(.stats-filter-card)[open]>.stats-section-summary{background:transparent}.stats-collapsible-card:not(.stats-filter-card)>.stats-section-summary .summary-hint{background:transparent;border:0;color:#6b7280;padding:0;font-weight:600}.add-form-summary{background:#e5e7eb;border:2px solid #111827;padding:14px 16px;margin:-2px;transition:background .15s ease}.add-form-summary:hover{background:#d1d5db}.add-form-card[open]>.add-form-summary{background:#d1d5db}.add-form-summary .summary-hint{background:#f3f4f6;border:2px solid #111827;color:#111827;padding:8px 12px;font-weight:800}.add-form-summary:after{background:#f3f4f6}.team-set-card{border:2px solid #111827;background:#f9fafb;padding:16px;margin-top:20px}.overview-default-note{grid-column:1 / -1;margin:4px 0 0}.mini-pin-deck{position:relative;width:104px;height:88px;border:2px solid #111827;background:#f9fafb}.mini-pin{position:absolute;width:20px;height:20px;display:grid;place-items:center;border:2px solid #111827;border-radius:999px;background:#fff;color:#6b7280;font-size:.7rem;font-weight:800;transform:translate(-50%,-50%)}.mini-pin.standing{background:#111827;color:#fff}.spare-summary-grid{margin-bottom:16px}.frame-score-card,.average-game-card{border:2px solid #111827;background:#fff;padding:16px;margin-top:20px}.frame-score-card h4,.average-game-card h4{margin-top:0}.frame-score-chart{display:grid;gap:10px}.frame-score-bar-row{display:grid;grid-template-columns:90px 1fr 56px;gap:12px;align-items:center}.frame-score-label{font-weight:800}.frame-score-track{height:22px;border:2px solid #111827;background:#e5e7eb;overflow:hidden}.frame-score-bar{height:100%;background:#cfe8ff;border-right:2px solid #111827}.score-distribution-card{border:2px solid #111827;background:#fff;padding:16px;margin-top:20px}.score-distribution-card h4{margin-top:0}.score-distribution-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:20px}.score-distribution-grid h5{margin:0 0 10px;font-size:1rem}.distribution-table td,.distribution-table th{text-align:center}.distribution-table td:first-child,.distribution-table th:first-child{text-align:left}@media(max-width:900px){.score-distribution-grid{grid-template-columns:1fr}}.leave-pin-list{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-width:90px}.leave-pin{width:28px;height:28px;display:grid;place-items:center;border:2px solid #111827;border-radius:999px;background:#111827;color:#fff;font-size:.8rem;font-weight:800}.leave-only-deck{background:#f9fafb}.leave-only-deck .mini-pin{background:#111827;color:#fff}.helper-text a{color:#111827;font-weight:800;text-decoration:underline}.setup-card{border:3px solid #111827;background:#fff;padding:28px;max-width:720px;margin:0 auto}.setup-card h2{margin-top:0}.setup-button-row{margin-top:20px}.data-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:24px 0}.data-card{border:2px solid #111827;background:#f9fafb;padding:18px;margin-top:16px;display:grid;gap:16px}.data-card h3{margin:0 0 8px}.data-card p{margin:0}.import-button{border:2px solid #111827;background:#fff;padding:12px 18px;font-weight:700;cursor:pointer;text-align:center;width:100%;min-height:52px;display:inline-flex;align-items:center;justify-content:center}.import-button:hover{background:#e5e7eb}.import-button input{display:none}.close-app-button{background:#111827;color:#fff}.close-app-button:hover{background:#374151}.frame-editor-sticky-bar{position:sticky;top:0;z-index:5;background:#fff;border-bottom:2px solid #111827;padding-bottom:16px;margin-bottom:18px}.frame-editor-status-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr)) minmax(220px,2fr);gap:10px;margin-bottom:14px}.mini-stat-card{border:2px solid #111827;background:#f9fafb;padding:10px;display:grid;gap:4px}.mini-stat-card span{color:#6b7280;font-weight:700;font-size:.85rem}.mini-stat-card strong{overflow-wrap:anywhere}.frame-editor-pin-layout{grid-template-columns:minmax(380px,1fr) minmax(280px,360px);align-items:start}.frame-editor-side-panel{display:grid;gap:14px;position:sticky;top:190px}.shot-summary h4{margin:0 0 10px}.frame-editor-score-preview .score-list p{margin:4px 0}.saved-game-summary strong,.saved-game-summary span{overflow-wrap:anywhere}@media(max-width:760px){.app-shell{width:100%;padding:14px 8px}.logo-card,.page-card,.setup-card{border-width:2px;padding:16px}.logo-card{margin-bottom:18px}.logo-card h1{font-size:clamp(2.25rem,14vw,4rem)}.logo-card p{font-size:.95rem}.home-nav{gap:12px}.nav-button{width:100%;min-width:0;padding:16px 18px;font-size:1.15rem}.back-button{width:100%}.form-grid,.compact-grid,.set-metadata-grid,.metadata-game-lane-list,.game-score-grid,.deep-stats-grid,.data-summary-grid,.stats-summary-grid{grid-template-columns:1fr}.saved-set-summary,.center-summary,.bowler-summary,.add-ball-summary{align-items:start}.saved-set-top-actions,.saved-set-actions-row,.saved-game-actions-row,.data-button-row,.setup-button-row,.frame-navigation,.post-game-buttons,.pin-actions{grid-template-columns:1fr}.saved-game-summary{grid-template-columns:minmax(0,1fr) 34px;gap:10px;padding:14px}.saved-game-summary-meta{display:grid;gap:4px;align-items:start;font-size:.85rem}.saved-game-detail-content,.saved-set-details,.set-metadata-card,.game-notes-card{padding:14px}.score-grid{grid-template-columns:repeat(10,minmax(68px,1fr))}.score-frame{min-width:68px}.table-scroll,.score-grid{-webkit-overflow-scrolling:touch}}@media(max-width:760px){.frame-editor-overlay{padding:8px}.frame-editor-modal{width:100%;max-height:calc(100dvh - 16px);overflow-y:auto;border-width:2px;padding:14px}.frame-editor-header{display:grid;gap:12px}.frame-editor-header .secondary-button{width:100%;margin-top:0}.frame-editor-progress{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.frame-editor-progress .small-button{min-width:0;padding:8px 4px}.frame-editor-modal .form-grid{grid-template-columns:1fr}.frame-editor-pin-layout,.pin-entry-layout{grid-template-columns:1fr;gap:16px}.pin-deck{max-width:340px;margin-inline:auto}.pin-button{width:44px;height:44px;border-width:2px}.shot-summary,.frame-editor-score-preview,.frame-edit-warning-text{font-size:.95rem}}@media(max-width:420px){.pin-deck{max-width:300px}.pin-button{width:38px;height:38px;font-size:.85rem}.frame-editor-progress{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:760px){.frame-editor-sticky-bar{position:static}.frame-editor-status-grid{grid-template-columns:1fr}.frame-editor-side-panel{position:static}.wide-mini-stat-card{grid-column:auto}}:root{--ps-accent-blue: #1e3a8a;--ps-accent-blue-hover: #eff6ff;--ps-accent-blue-soft: #dbeafe;--ps-subtle-line: #d1d5db}.bowler-form-card,.center-form-card,.pattern-form-card,.event-form-card,.add-form-card{border:2px solid #111827;background:#f9fafb;padding:16px;margin-top:20px;color:#111827}.add-form-summary strong,.stats-section-summary strong{color:var(--ps-accent-blue)}.bowler-list,.center-list,.pattern-list,.event-list{display:grid;gap:8px;margin-top:24px}.bowler-card,.center-card,.pattern-card,.event-card{border:0;border-bottom:1px solid var(--ps-subtle-line);background:transparent;padding:0;margin:0;color:#111827}.bowler-card[open],.center-card[open],.pattern-card[open],.event-card[open]{border:2px solid #111827;background:#fff;padding:16px;margin:12px 0}.bowler-summary,.center-summary,.pattern-summary,.event-summary{padding:14px 0;transition:background .15s ease,padding .15s ease}.bowler-summary:hover,.center-summary:hover,.pattern-summary:hover,.event-summary:hover{background:var(--ps-accent-blue-hover);padding-left:12px;padding-right:12px}.bowler-card[open]>.bowler-summary,.center-card[open]>.center-summary,.pattern-card[open]>.pattern-summary,.event-card[open]>.event-summary{border-bottom:2px solid #111827;margin-bottom:16px;padding:0 0 14px}.bowler-card[open]>.bowler-summary:hover,.center-card[open]>.center-summary:hover,.pattern-card[open]>.pattern-summary:hover,.event-card[open]>.event-summary:hover{background:transparent;padding-left:0;padding-right:0}.bowler-summary strong,.center-summary strong,.pattern-summary strong,.event-summary strong,.saved-set-summary strong{color:var(--ps-accent-blue);font-weight:800}.bowler-summary p,.center-summary p,.pattern-summary p,.event-summary p{color:#4b5563;font-weight:700}.bowler-details-content,.center-details-content,.pattern-details-content,.event-details-content{border-top:0;margin-top:0;padding-top:0}.save-button{border-color:var(--ps-accent-blue);color:var(--ps-accent-blue)}.save-button:hover{background:var(--ps-accent-blue-soft)}.event-link-hint{color:var(--ps-accent-blue)!important}.resource-link a,.event-resource-links a{color:var(--ps-accent-blue)}.event-resource-links a:hover{background:var(--ps-accent-blue-hover)}@media(max-width:700px){.bowler-summary,.center-summary,.pattern-summary,.event-summary{align-items:start}}.event-details-content,.event-details-content label,.event-details-content input,.event-details-content select,.event-details-content textarea,.event-preview-card,.event-preview-card h4,.event-preview-card p,.event-preview-card strong{color:#111827!important}.event-resource-links a{color:#1e3a8a!important}.save-button{border-color:#047857!important;color:#047857!important;background:#fff}.save-button:hover{background:#d1fae5!important}.save-button:disabled{opacity:.45;cursor:not-allowed}.stats-collapsible-card,.stats-collapsible-content,.saved-sets-list,.saved-set-card,.saved-set-details,.saved-game-detail-card,.saved-game-detail-content,.score-grid-card,.set-specific-stats-card{max-width:100%;min-width:0}.stats-collapsible-card{overflow:hidden}.stats-section-summary{margin:0;width:100%}.stats-collapsible-content{overflow-x:hidden}.saved-set-card,.saved-game-detail-card{overflow:hidden}.saved-set-details,.saved-game-detail-content{overflow-x:auto}.score-grid-card,.set-specific-stats-card,.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.score-grid{width:max-content;min-width:100%;max-width:none}.saved-set-top-actions,.saved-game-actions-row{min-width:0}.stats-collapsible-card[open]{padding:14px}.stats-collapsible-card[open]>.stats-section-summary{box-sizing:border-box;margin:0;width:100%}.stats-collapsible-card[open]>.stats-collapsible-content{padding-top:14px;overflow:hidden}.saved-sets-list{gap:12px}.saved-set-card{width:100%;box-sizing:border-box}.saved-set-card[open]{padding:14px}.saved-set-summary,.saved-game-summary{min-width:0}.saved-set-summary>div,.saved-game-summary>div{min-width:0}.saved-set-details{padding-top:14px;overflow:hidden}.saved-set-top-actions,.saved-game-actions-row{grid-template-columns:repeat(2,minmax(0,1fr))}.saved-game-actions-row{grid-template-columns:repeat(3,minmax(0,1fr))}.saved-set-top-actions>button,.saved-game-actions-row>button{min-width:0}.saved-game-detail-card{width:100%;box-sizing:border-box;padding:14px;margin-top:14px}.saved-game-detail-content{padding:14px;overflow:hidden}.score-grid-card{padding:12px;overflow-x:auto}.score-grid{width:100%;min-width:0;grid-template-columns:repeat(10,minmax(58px,1fr))}.score-frame{min-width:58px}.score-rolls span{min-width:0}.score-frame-number,.score-total{font-size:.95rem}.saved-game-summary-meta{min-width:0;text-align:right}@media(max-width:950px){.page-card{padding:18px}.stats-collapsible-card[open],.saved-set-card[open],.saved-game-detail-card,.saved-game-detail-content{padding:12px}.score-grid{grid-template-columns:repeat(10,minmax(54px,1fr))}.score-frame{min-width:54px}}.stats-action-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));align-items:stretch}.stats-action-row .primary-button,.stats-action-row .secondary-button{width:100%;min-height:52px;margin-top:0}.export-modal-overlay{position:fixed;inset:0;background:#111827ad;z-index:1000;padding:28px;overflow-y:auto}.export-modal-card{width:min(900px,100%);margin:0 auto;border:3px solid #111827;background:#fff;padding:24px}.export-modal-header{display:flex;justify-content:space-between;gap:18px;border-bottom:2px solid #111827;padding-bottom:16px;margin-bottom:18px}.export-modal-header h3{margin:0}.export-modal-header p{margin-bottom:0}.export-scope-card{border:2px solid #111827;background:#f9fafb;padding:12px}.export-scope-card p{margin:4px 0 0;color:#4b5563}.export-preset-row,.export-modal-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:18px}.export-preset-row button,.export-modal-actions button{width:100%;min-height:52px;margin-top:0}.export-section-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:18px}.export-section-option{border:2px solid #111827;background:#f9fafb;padding:12px;display:flex;gap:10px;align-items:flex-start}.export-section-option input{width:auto;margin-top:4px;flex:0 0 auto}.export-section-option span{display:grid;gap:4px}.export-section-option small{color:#4b5563;font-weight:500;line-height:1.4}@media(max-width:700px){.export-modal-overlay{padding:12px}.export-modal-card{padding:16px}.export-modal-header{display:grid}}.toast-message{border:2px solid #111827;background:#ecfdf5;color:#064e3b;padding:12px 14px;margin:16px 0;display:flex;justify-content:space-between;align-items:center;gap:12px;font-weight:700}.toast-message button{border:2px solid #111827;background:#fff;color:#111827;width:32px;height:32px;font-weight:900;cursor:pointer}.empty-state-card{border:2px dashed #6b7280;background:#f9fafb;padding:18px;margin-top:16px}.empty-state-card h3{margin:0 0 8px;color:#1e3a8a}.empty-state-card p{margin:0;color:#4b5563}.structured-notes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:14px}.saved-notes-summary{border:2px solid #111827;background:#f9fafb;padding:12px;margin-top:12px}.saved-notes-summary p{margin:6px 0}.export-file-preview{border:2px solid #111827;background:#f9fafb;padding:12px;margin-top:16px;display:grid;gap:6px}.export-file-preview code{display:block;background:#fff;border:1px solid #111827;padding:8px;overflow-wrap:anywhere;font-family:Courier New,monospace}.export-file-preview p{margin:0;color:#4b5563}.about-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:18px}.about-card{border:2px solid #111827;background:#f9fafb;padding:16px;margin-top:16px}.about-card h3{margin-top:0;color:#1e3a8a}.about-card p{margin-bottom:0}.about-card a{color:#1e3a8a;font-weight:800;text-decoration:underline}.simple-about-grid{width:100%;max-width:none;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.simple-about-grid .about-card{margin-top:0;min-height:100px}@media(max-width:700px){.simple-about-grid{grid-template-columns:1fr}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible,[tabindex="-1"]:focus-visible{outline:4px solid #2563eb;outline-offset:3px}[aria-invalid=true]{border-color:#b91c1c;box-shadow:0 0 0 2px #b91c1c26}.field-validation-card{border:2px solid #92400e;background:#fffbeb;color:#111827;padding:14px;margin-top:18px}.field-validation-card h3{margin:0 0 8px;color:#92400e}.field-validation-card ul{margin:0;padding-left:22px}.error-validation-card{border-color:#b91c1c;background:#fef2f2}.error-validation-card h3{color:#b91c1c}.export-modal-card:focus,.frame-editor-modal:focus{outline:none}.field-error-text{display:block;color:#b91c1c;font-weight:700;font-size:.9rem;margin-top:6px;line-height:1.4}.frame-editor-overlay{overflow:hidden}.frame-editor-modal{max-height:calc(100dvh - 56px);overflow-y:auto;overflow-x:hidden;position:relative;box-sizing:border-box}.frame-editor-sticky-bar{margin:-24px -24px 18px;padding:24px 24px 16px;background:#fff;border-bottom:2px solid #111827;z-index:20}.frame-editor-modal>.form-grid.compact-grid{margin-top:0}@media(max-width:760px){.frame-editor-sticky-bar{margin:-14px -14px 18px;padding:14px 14px 16px}}.event-form-card .form-grid label,.event-form-card .form-grid input,.event-form-card .form-grid select,.event-form-card .form-grid textarea,.event-form-card .field-error-text{color:#111827}.event-form-card .form-grid .required{color:#b91c1c}.frame-editor-sticky-bar{margin-bottom:24px}.frame-editor-modal>.form-grid.compact-grid{padding-top:10px;margin-top:0}.frame-editor-pin-layout{padding-top:6px}@media(max-width:760px){.frame-editor-sticky-bar{margin-bottom:20px}.frame-editor-modal>.form-grid.compact-grid{padding-top:12px}}.export-modal-overlay,.frame-editor-overlay,.export-modal-card,.frame-editor-modal{overscroll-behavior:contain}.compact-validation-card{margin:16px 0;padding:12px 14px}.compact-validation-card h3{font-size:1rem}.add-form-content .compact-validation-card,.add-ball-content .compact-validation-card{grid-column:1 / -1}.pattern-actions-row{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));gap:14px;justify-content:center;align-items:stretch;max-width:340px;margin:16px auto}.pattern-actions-row button{width:100%;min-height:52px;margin:0}@media(max-width:520px){.pattern-actions-row{grid-template-columns:1fr;max-width:none}}.bowler-actions-row,.center-actions-row,.pattern-actions-row,.event-actions-row{display:grid!important;grid-template-columns:repeat(2,minmax(150px,1fr));gap:14px;justify-content:center;align-items:stretch;max-width:360px;margin:16px auto;border-bottom:2px solid #111827;padding-bottom:14px}.bowler-actions-row button,.center-actions-row button,.pattern-actions-row button,.event-actions-row button{width:100%;min-height:52px;margin:0;display:inline-flex;align-items:center;justify-content:center;text-align:center}@media(max-width:520px){.bowler-actions-row,.center-actions-row,.pattern-actions-row,.event-actions-row{grid-template-columns:1fr;max-width:none}}.bowler-actions-row,.center-actions-row,.pattern-actions-row,.event-actions-row{max-width:none!important;width:100%;grid-template-columns:repeat(2,minmax(0,1fr))!important;margin:16px 0!important}@media(max-width:520px){.bowler-actions-row,.center-actions-row,.pattern-actions-row,.event-actions-row{grid-template-columns:1fr!important}}.ball-card{display:grid;gap:12px}.ball-card-header{display:flex;justify-content:space-between;gap:12px;align-items:start}.ball-edit-card{border-top:2px solid #111827;padding-top:10px}.ball-edit-summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center}.ball-edit-summary::-webkit-details-marker{display:none}.ball-edit-summary:after{content:"+";border:2px solid #111827;width:28px;height:28px;display:grid;place-items:center;font-weight:800;flex:0 0 auto}.ball-edit-card[open]>.ball-edit-summary:after{content:"−"}.ball-edit-content{border-top:2px solid #111827;margin-top:10px;padding-top:14px}@media(max-width:700px){.ball-card-header{display:grid}.ball-card-header .danger-button{width:100%}}.ball-edit-card{width:100%;grid-column:1 / -1}.ball-edit-content{width:100%}.ball-edit-content .form-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.ball-edit-content .form-grid label{min-width:0}.ball-edit-actions-row{display:grid;grid-template-columns:1fr;margin-top:16px}.ball-edit-actions-row button{width:100%;min-height:52px;margin:0}.ball-card{width:100%;box-sizing:border-box;grid-template-columns:minmax(0,1fr);justify-content:stretch;justify-items:stretch;align-items:stretch}.ball-card>*,.ball-card-header,.ball-edit-card,.ball-edit-content,.ball-edit-content .form-grid{width:100%;max-width:none;min-width:0;box-sizing:border-box}.ball-edit-summary{width:100%}.ball-edit-content .form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.ball-edit-content label,.ball-edit-content input,.ball-edit-content textarea,.ball-edit-content select{width:100%;max-width:none}.ball-edit-actions-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.ball-edit-actions-row .save-button,.ball-edit-actions-row .danger-button{width:100%;min-height:52px;margin:0;display:inline-flex;align-items:center;justify-content:center;text-align:center}@media(max-width:520px){.ball-edit-actions-row{grid-template-columns:1fr}}.logo-title-row{display:flex;justify-content:center;align-items:center;gap:18px;flex-wrap:wrap}.app-logo-mark{width:auto;height:clamp(72px,10vw,96px);object-fit:contain;flex:0 0 auto}@media(max-width:640px){.logo-title-row{gap:12px}.app-logo-mark{height:72px}}.app-logo-mark{width:clamp(64px,12vw,96px);height:clamp(64px,12vw,96px);object-fit:contain;flex:0 0 auto}@media(max-width:640px){.logo-title-row{gap:12px}.app-logo-mark{width:72px;height:72px}}.setup-import-button{background:#16a34a;color:#fff}.setup-import-button:hover{background:#15803d}
