*{box-sizing:border-box;margin:0;padding:0}body{font-family:Noto Sans TC,Microsoft JhengHei,微軟正黑體,-apple-system,sans-serif;background-color:#0f2b0a;color:#f0e6cc;min-height:100vh;overflow-x:hidden;-webkit-tap-highlight-color:transparent}.app{max-width:480px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;background-color:#132e0e}.main-content{flex:1;padding:8px 10px 64px}.nav-bar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;background-color:#0a1f07;border-top:2px solid #3a6a2f;display:flex;justify-content:space-around;padding:6px 0 env(safe-area-inset-bottom,4px);z-index:100}.nav-link{display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;color:#7aaa6f;padding:4px 20px;border-radius:8px;transition:all .2s;font-size:1.3rem}.nav-link small{font-size:.65rem;color:inherit}.nav-link.nav-active{color:gold;background-color:#1a3a15}.home-screen{padding:4px 0}.home-hero-compact{display:flex;align-items:center;gap:12px;padding:12px 8px;margin-bottom:8px}.logo-icon{font-size:2.4rem}.home-hero-compact h1{font-size:1.2rem;color:gold;line-height:1.3}.home-hero-compact p{color:#7aaa6f;font-size:.75rem}.unified-scoring{position:relative}.unified-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.unified-header h2{color:gold;font-size:1.05rem}.reset-btn{background-color:#6b1a1a;color:#faa;border:none;padding:5px 10px;border-radius:6px;cursor:pointer;font-size:.75rem}.photo-preview-bar{display:flex;align-items:center;gap:10px;padding:8px;background:#1a3a15;border-radius:8px;margin-bottom:10px;border:1px solid #3a6a2f}.photo-thumb{width:48px;height:36px;object-fit:cover;border-radius:4px}.photo-preview-bar p{flex:1;font-size:.8rem;color:#aad4a0}.mini-btn{background:#4a7c3f;color:#fff;border:none;padding:4px 8px;border-radius:4px;font-size:.7rem;cursor:pointer}.step-section{margin-bottom:12px}.step-label{font-size:.85rem;color:gold;font-weight:600;margin-bottom:8px}.settings-row{background:#0a1f07;border-radius:10px;padding:8px 10px;border:1px solid #2a5a20;margin-bottom:6px}.settings-row:last-of-type{margin-bottom:0}.setting-item{margin-bottom:8px}.setting-item:last-child{margin-bottom:0}.setting-item label{display:block;font-size:.7rem;color:#7aaa6f;margin-bottom:4px}.game-type-toggle{display:flex;gap:3px}.toggle-btn{flex:1;padding:6px 4px;background:#1a3a15;color:#7aaa6f;border:1px solid #2a5a20;border-radius:6px;cursor:pointer;font-size:.75rem;font-weight:600;transition:all .2s;white-space:nowrap}.toggle-btn.active{background:#4a7c3f;color:#fff;border-color:gold}.stake-input-group{display:flex;gap:3px;align-items:center}.stake-btn{width:38px;height:30px;background:#1a3a15;color:#aad4a0;border:1px solid #2a5a20;border-radius:6px;cursor:pointer;font-size:.8rem;transition:all .2s}.stake-btn.active{background:#4a7c3f;color:#fff;border-color:gold}.settings-summary{margin-top:10px;padding:10px 12px;background:linear-gradient(135deg,#1a1a2e,#16213e);border-radius:12px;border:1px solid rgba(255,255,255,.1)}.settings-summary-label{font-size:.72rem;color:#89a;margin-bottom:8px;font-weight:600}.settings-summary-chips{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.chip-min-fan{background:#50dc781f;color:#6ddf8a;border:1px solid rgba(80,220,120,.25)}.ref-table-settings-label{font-size:.7rem;color:#7aaa6f;margin-bottom:6px;text-align:center}.ref-table tr.below-min td{color:#555!important;opacity:.5}.player-names-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.player-name-item{display:flex;flex-direction:column;align-items:center;gap:3px}.player-name-pos{font-size:.9rem;font-weight:700;color:gold}.player-name-input{width:100%;padding:5px 4px;background:#1a3a15;color:#f0e6cc;border:1px solid #2a5a20;border-radius:6px;font-size:.75rem;text-align:center;outline:none;transition:border-color .2s}.player-name-input:focus{border-color:gold}.player-name-input::placeholder{color:#4a6a40}.input-mode-bar{display:flex;gap:4px}.mode-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:4px;padding:10px 6px;background:#0a1f07;color:#7aaa6f;border:1px solid #2a5a20;border-radius:8px;cursor:pointer;font-size:.8rem;transition:all .2s}.mode-btn.active{background:#4a7c3f;color:#fff;border-color:gold}.mode-btn span:first-child{font-size:1.1rem}.camera-mode-btn{flex:.6;background:#1a3060;border-color:#3060a0;color:#8ab8ff}.camera-mode-btn:hover{background:#254080}.quick-fan-section{margin-bottom:12px}.fan-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.fan-option{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px 4px;background:#0a1f07;border:2px solid #2a5a20;border-radius:10px;cursor:pointer;transition:all .15s;min-height:54px}.fan-option:active{transform:scale(.95)}.fan-option.selected{background:#4a7c3f;border-color:gold;box-shadow:0 0 12px #ffd7004d}.fan-label{font-size:1.05rem;font-weight:700;color:#f0e6cc;line-height:1.2}.fan-option.selected .fan-label{color:gold}.fan-sublabel{font-size:.6rem;color:#7aaa6f;margin-top:2px}.tile-mode-section{margin-bottom:12px}.tile-progress{margin-bottom:8px}.tile-progress-bar{height:6px;background:#1a3a15;border-radius:3px;overflow:hidden;border:1px solid #2a5a20}.tile-progress-fill{height:100%;background:linear-gradient(90deg,#4a7c3f,gold);border-radius:3px;transition:width .3s ease}.tile-progress-labels{display:flex;justify-content:space-between;font-size:.7rem;color:#7aaa6f;margin-top:4px;padding:0 2px}.tile-progress-labels .done{color:#4adf4a}.tile-progress-labels .next{color:gold;font-weight:700;animation:pulse-text 1s ease-in-out infinite}@keyframes pulse-text{0%,to{opacity:1}50%{opacity:.4}}.tile-progress-labels .flower-info{color:#c8f}.hand-area{background:#0a1f07;border-radius:8px;padding:8px;margin-bottom:8px;border:1px solid #2a5a20;min-height:56px}.hand-empty-hint{text-align:center;color:#5a8a50;font-size:.8rem;padding:10px 0}.hand-tiles-row{display:flex;flex-wrap:wrap;gap:3px;min-height:40px}.mini-tile{width:32px;height:40px;background:#f5e6c8;border:1.5px solid #8b6914;border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:opacity .2s,transform .15s;line-height:1;animation:tile-pop .2s ease-out;overflow:hidden}@keyframes tile-pop{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.mini-tile:hover{opacity:.6;border-color:#c20}.mini-tile-img{width:22px;height:32px;object-fit:contain;pointer-events:none}.mini-tile span{font-size:1rem;font-weight:700}.mini-tile small{font-size:.45rem;color:#666}.mini-tile.winning{filter:drop-shadow(0 0 4px rgba(255,215,0,.8));position:relative}.mini-tile.winning:after{content:"糊";position:absolute;top:-4px;right:-4px;background:gold;color:#333;font-size:.4rem;font-weight:700;padding:1px 2px;border-radius:3px;z-index:1}.mini-tile.placeholder{border:2px dashed #ffd700;background:#ffd7001a;color:gold!important;animation:pulse-border 1s ease-in-out infinite}@keyframes pulse-border{0%,to{border-color:gold}50%{border-color:#8b6914}}.mini-tile.placeholder span{font-size:1.1rem;color:gold}.mini-tile.placeholder small{color:gold;font-size:.5rem}.mini-tile.flower{width:26px;height:34px}.mini-tile.flower .mini-tile-img{width:24px;height:32px}.hand-actions{display:flex;gap:6px;margin-top:6px;justify-content:flex-end}.hand-action-btn{padding:4px 10px;background:#1a3a15;color:#7aaa6f;border:1px solid #2a5a20;border-radius:6px;font-size:.7rem;cursor:pointer;transition:all .2s}.hand-action-btn:hover{background:#2a5a20}.hand-action-btn.danger{color:#faa;border-color:#6b1a1a}.hand-action-btn.danger:hover{background:#4a1a1a}.add-mode-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;padding:0 2px}.add-mode-label{font-size:.75rem;color:#aad4a0;font-weight:600}.add-mode-btns{display:flex;gap:4px}.add-mode-btn{padding:5px 10px;background:#1a3a15;color:#7aaa6f;border:1px solid #2a5a20;border-radius:6px;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s}.add-mode-btn.active{background:#4a7c3f;color:#fff;border-color:gold}.add-mode-btn:disabled{opacity:.3;cursor:not-allowed}.compact-tile-grid{background:#2d5a27;border-radius:8px;padding:6px;border:1px solid #3a6a2f;margin-bottom:8px}.tile-suit-row{display:flex;align-items:center;gap:2px;margin-bottom:4px}.tile-suit-row:last-child{margin-bottom:0}.suit-label{width:20px;font-size:.7rem;color:gold;text-align:center;font-weight:600;flex-shrink:0}.tile-btn{width:40px;height:50px;background:transparent;border:none;border-radius:4px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;transition:transform .1s,filter .1s;padding:0}.tile-btn-sm{width:34px;height:44px}.tile-btn:hover:not(.disabled){transform:translateY(-3px);filter:brightness(1.1)}.tile-btn:active:not(.disabled){transform:scale(.92)}.tile-btn.disabled{opacity:.35;cursor:not-allowed}.tile-btn.selected{filter:brightness(1.15) drop-shadow(0 0 6px rgba(255,215,0,.9))}.tile-img{width:38px;height:46px;object-fit:contain;pointer-events:none}.tile-btn-sm .tile-img{width:32px;height:40px}.tile-symbol{font-size:1.6rem;line-height:1}.tile-btn-sm .tile-symbol{font-size:1.4rem}.tile-suit{display:none}.tile-count{position:absolute;top:-3px;right:-3px;background-color:#c20;color:#fff;border-radius:50%;width:14px;height:14px;font-size:.6rem;display:flex;align-items:center;justify-content:center}.tile-btn.tile-highlight{filter:drop-shadow(0 0 6px rgba(255,215,0,.8));animation:golden-glow 1s ease-in-out infinite}@keyframes golden-glow{0%,to{filter:drop-shadow(0 0 4px rgba(255,215,0,.6))}50%{filter:drop-shadow(0 0 10px rgba(255,215,0,.9))}}.flower-row{display:flex;align-items:center;gap:2px;margin-bottom:4px}.flower-quick-btn{width:34px;height:44px;background:#f0e0ff;border:1.5px solid #8866cc;border-radius:5px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.9rem;transition:transform .1s,box-shadow .1s;overflow:hidden;padding:2px}.flower-btn-img{width:24px;height:34px;object-fit:contain;pointer-events:none}.flower-quick-btn:hover{transform:translateY(-2px);filter:brightness(1.1)}.flower-quick-btn:active{transform:scale(.95)}.flower-quick-btn small{font-size:.45rem;color:#666}.bonus-fans-section{background:#0a1f07;border-radius:8px;border:1px solid #2a5a20;padding:8px 10px;margin-bottom:8px}.bonus-fans-label{font-size:.75rem;color:gold;font-weight:600;margin-bottom:6px}.bonus-fans-grid{display:flex;flex-wrap:wrap;gap:6px}.bonus-chip{display:flex;align-items:center;gap:3px;padding:5px 9px;background:#1a3a15;border:1px solid #2a5a20;border-radius:20px;cursor:pointer;font-size:.78rem;transition:all .2s;-webkit-user-select:none;user-select:none}.bonus-chip:hover{background:#2a4a20}.bonus-chip.active{background:#3a6a2f;border-color:gold;color:#fff}.bonus-emoji{font-size:.9rem}.bonus-name{color:#aad4a0;font-size:.75rem}.bonus-chip.active .bonus-name{color:#fff}.dragon-counter-row{display:flex;align-items:center;gap:8px;width:100%;padding:6px 0;font-size:.78rem;color:#aad4a0}.counter-inline{display:flex;align-items:center;gap:8px}.counter-inline button{width:26px;height:26px;background:#4a7c3f;color:#fff;border:none;border-radius:50%;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center}.counter-inline span{font-size:1rem;min-width:20px;text-align:center;color:gold}.calculate-btn{width:100%;padding:12px;background:linear-gradient(135deg,#4a7c3f,#3a6a2f);color:#fff;border:2px solid #ffd700;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;margin-bottom:10px}.calculate-btn:hover{background:linear-gradient(135deg,#5a8c4f,#4a7c3f)}.calculate-btn:active{transform:scale(.98)}.detected-patterns{margin-bottom:10px}.pattern-list{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}.pattern-chip{display:flex;align-items:center;gap:6px;padding:4px 10px;background:#1a3a15;border-radius:16px;font-size:.8rem;border:1px solid #3a6a2f}.pattern-chip.bonus{border-color:#2a5a60;background:#0a2a2f}.fan-badge{background:#4a7c3f;color:gold;padding:1px 6px;border-radius:10px;font-size:.7rem;font-weight:600}.result-payment-section{background:#0a1f07;border-radius:12px;padding:14px;border:2px solid #ffd700;margin-bottom:12px;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fan-result-display{text-align:center;margin-bottom:14px}.fan-big{font-size:2rem;font-weight:800;color:gold;text-shadow:0 2px 8px rgba(255,215,0,.3)}.win-settings{margin-bottom:14px}.win-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.win-row>label:first-child{font-size:.8rem;color:#7aaa6f;min-width:60px}.self-drawn-label{display:flex;align-items:center;gap:6px;font-size:.85rem;cursor:pointer}.self-drawn-label input{width:18px;height:18px}.position-selector{display:flex;gap:6px}.pos-btn{min-width:38px;padding:6px 8px;background:#1a3a15;color:#7aaa6f;border:1.5px solid #2a5a20;border-radius:20px;cursor:pointer;font-size:.8rem;font-weight:700;transition:all .2s;display:flex;flex-direction:column;align-items:center;gap:1px}.pos-btn .pos-wind{font-size:.85rem}.pos-btn .pos-name{font-size:.55rem;font-weight:400;opacity:.8;max-width:50px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pos-btn.active{background:gold;color:#0a1f07;border-color:gold;box-shadow:0 0 8px #ffd70066}.pos-btn.active .pos-name{opacity:1}.winner-dropdown,.discarder-dropdown{width:100%;padding:8px 12px;background:#1a3a15;color:#f0e6cc;border:1.5px solid #2a5a20;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;outline:none;appearance:auto;transition:border-color .2s}.winner-dropdown:focus,.discarder-dropdown:focus{border-color:gold}.winner-dropdown option,.discarder-dropdown option{background:#0a1f07;color:#f0e6cc;padding:6px}.payment-result-unified{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.payment-info{text-align:center;font-size:.8rem;color:#aad4a0;margin-bottom:10px;padding:6px;background:#1a3a15;border-radius:6px}.payment-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:12px}.payment-card{display:flex;flex-direction:column;align-items:center;padding:10px 4px;border-radius:10px;text-align:center}.payment-card.win{background:linear-gradient(135deg,#1a4a1a,#0a3a0a);border:1.5px solid #4a7c3f}.payment-card.lose{background:linear-gradient(135deg,#4a1a1a,#3a0a0a);border:1.5px solid #8b3a3a}.payment-card.neutral{background:#1a2a30;border:1.5px solid #3a5a6a}.card-pos{font-size:1.1rem;font-weight:700;margin-bottom:1px}.card-player-name{font-size:.6rem;color:#aad4a0;margin-bottom:3px;max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.payment-card.lose .card-player-name{color:#faa}.payment-card.neutral .card-player-name{color:#888}.card-amount{font-size:1.2rem;font-weight:800}.payment-card.win .card-amount{color:#4aff4a}.payment-card.lose .card-amount{color:#ff4a4a}.payment-card.neutral .card-amount{color:#888}.card-label{font-size:.6rem;color:#888;margin-top:2px}.save-btn{width:100%;padding:10px;background:#1a5a8a;color:#fff;border:none;border-radius:8px;font-size:.9rem;cursor:pointer;transition:background .2s}.save-btn:hover{background:#2070a0}.save-btn:active{transform:scale(.98)}.ref-table-detail{background:#0a1f07;border-radius:8px;border:1px solid #2a5a20;margin-bottom:12px;overflow:hidden}.ref-table-detail summary{padding:10px 12px;cursor:pointer;font-size:.8rem;color:#7aaa6f;-webkit-user-select:none;user-select:none}.ref-table-detail[open] summary{border-bottom:1px solid #2a5a20;color:gold}.ref-table{padding:8px}.ref-table table{width:100%;border-collapse:collapse;font-size:.8rem}.ref-table th{padding:6px 8px;text-align:center;color:gold;border-bottom:1px solid #2a5a20;font-size:.75rem}.ref-table td{padding:5px 8px;text-align:center;color:#aad4a0;border-bottom:1px solid #1a3015}.ref-table tr.highlight{background:#2a5a20}.ref-table tr.highlight td{color:gold;font-weight:600}.camera-modal{position:fixed;inset:0;z-index:200;background:#000000eb;display:flex;align-items:center;justify-content:center}.camera-capture{width:100%;max-width:480px;padding:16px}.camera-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.camera-header h3{color:gold;font-size:1rem}.camera-close-btn{width:36px;height:36px;background:#6b1a1a;color:#fff;border:none;border-radius:50%;font-size:1.2rem;cursor:pointer}.camera-error{padding:12px;background:#4a1a1a;border:1px solid #8b3a3a;border-radius:8px;margin-bottom:12px;color:#f88;font-size:.85rem}.camera-options{text-align:center}.camera-hint{color:#aad4a0;font-size:.95rem;margin-bottom:4px}.camera-hint-sub{color:#7aaa6f;font-size:.75rem;margin-bottom:20px}.camera-buttons{display:flex;gap:12px}.camera-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px 12px;background:#1a3a15;border:2px solid #3a6a2f;border-radius:12px;cursor:pointer;color:#f0e6cc;font-size:.9rem;transition:all .2s}.camera-btn.primary{background:#2d5a27;border-color:gold}.camera-btn span:first-child{font-size:2rem}.btn-sub{font-size:.65rem;color:#7aaa6f}.camera-viewfinder{position:relative;border-radius:12px;overflow:hidden}.camera-video{width:100%;display:block;border-radius:12px}.camera-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.camera-guide{width:80%;height:50%;position:relative}.guide-corner{position:absolute;width:24px;height:24px;border-color:gold;border-style:solid;border-width:0}.guide-corner.tl{top:0;left:0;border-top-width:3px;border-left-width:3px}.guide-corner.tr{top:0;right:0;border-top-width:3px;border-right-width:3px}.guide-corner.bl{bottom:0;left:0;border-bottom-width:3px;border-left-width:3px}.guide-corner.br{bottom:0;right:0;border-bottom-width:3px;border-right-width:3px}.guide-text{position:absolute;bottom:-30px;left:0;right:0;text-align:center;color:gold;font-size:.8rem;text-shadow:0 1px 3px rgba(0,0,0,.8)}.camera-controls{position:absolute;bottom:20px;left:0;right:0;display:flex;justify-content:center}.shutter-btn{width:64px;height:64px;background:#ffffff4d;border:3px solid white;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center}.shutter-inner{width:48px;height:48px;background:#fff;border-radius:50%;transition:transform .1s}.shutter-btn:active .shutter-inner{transform:scale(.9)}.camera-preview{text-align:center}.preview-image{width:100%;max-height:300px;object-fit:contain;border-radius:12px;margin-bottom:12px}.preview-image.analyzing{opacity:.5}.photo-fan-picker{display:flex;flex-direction:column;gap:12px;padding:0 4px}.photo-reference{position:relative;border-radius:12px;overflow:hidden;background:#000}.reference-image{width:100%;max-height:200px;object-fit:contain;display:block}.retake-mini-btn{position:absolute;top:8px;right:8px;background:#0009;color:#fff;border:none;border-radius:8px;padding:6px 12px;font-size:.8rem;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.retake-mini-btn:active{background:#000c}.fan-picker-section{background:#ffffff0d;border-radius:12px;padding:12px}.fan-picker-label{text-align:center;color:gold;font-size:.95rem;font-weight:600;margin-bottom:10px}.fan-picker-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.fan-pick-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px 4px;border-radius:10px;border:2px solid rgba(255,215,0,.3);background:#ffffff14;color:#fff;font-size:1rem;font-weight:700;cursor:pointer;transition:all .15s;min-height:52px}.fan-pick-btn:active{background:gold;color:#1a3a1a;border-color:gold;transform:scale(.95)}.fan-pick-num{font-size:1.05rem;font-weight:700}.fan-pick-sub{font-size:.65rem;opacity:.7;margin-top:2px}.camera-analyzing{text-align:center}.analyzing-indicator{display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px}.analyzing-spinner{width:40px;height:40px;border:3px solid #2a5a20;border-top-color:gold;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.analyzing-indicator p{color:gold;font-size:.9rem}.api-key-section{margin-bottom:10px}.api-key-bar{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:#ffffff0a;border-radius:8px}.ai-status{font-size:.78rem;color:#aad4a0}.api-key-toggle-btn{background:none;border:1px solid rgba(255,215,0,.3);color:gold;padding:3px 10px;border-radius:6px;font-size:.75rem;cursor:pointer}.api-key-form{margin-top:8px;padding:10px;background:#0000004d;border-radius:8px;border:1px solid rgba(255,215,0,.15)}.api-key-hint{font-size:.75rem;color:#999;margin-bottom:8px}.api-key-hint a{color:gold;text-decoration:underline}.api-key-input-row{display:flex;gap:6px}.api-key-input{flex:1;padding:8px 10px;border-radius:6px;border:1px solid #3a6a2f;background:#0a1f07;color:#fff;font-size:.8rem;font-family:monospace}.api-key-save-btn{background:gold;color:#1a3a1a;border:none;padding:8px 14px;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer}.api-key-remove-btn{margin-top:8px;background:none;border:1px solid #cc4444;color:#f66;padding:4px 10px;border-radius:6px;font-size:.72rem;cursor:pointer;width:100%}.ai-badge{display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 14px;background:linear-gradient(135deg,#ffd70026,#ffd7000d);border:1px solid rgba(255,215,0,.3);border-radius:20px;margin:8px auto;width:fit-content;font-size:.8rem;color:gold}.ai-badge-icon{font-size:1rem}.ai-analyzing{text-align:center;padding:10px}.reference-image.analyzing-pulse{opacity:.6;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:.8}}.ai-spinner{position:relative;width:60px;height:60px;margin:0 auto}.spinner-ring{position:absolute;inset:0;border:3px solid rgba(255,215,0,.2);border-top-color:gold;border-radius:50%;animation:spin 1s linear infinite}.spinner-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1.5rem}.analyzing-text{color:gold;font-size:.95rem;font-weight:600;margin-top:12px}.analyzing-sub{color:#888;font-size:.75rem;margin-top:4px}.ai-result-view{display:flex;flex-direction:column;gap:12px;padding:0 4px}.ai-result-card{background:#ffffff0d;border:1px solid rgba(255,215,0,.2);border-radius:14px;padding:14px}.ai-fan-display{display:flex;align-items:baseline;justify-content:center;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:12px}.ai-fan-number{font-size:2rem;font-weight:800;color:gold}.ai-confidence{font-size:.75rem;color:#888;background:#ffffff0f;padding:3px 8px;border-radius:10px}.ai-section-label{font-size:.78rem;color:#aad4a0;margin-bottom:6px;font-weight:600}.ai-tiles-detected{margin-bottom:10px}.ai-tiles-list{display:flex;flex-wrap:wrap;gap:4px}.ai-tile-chip{background:#ffffff14;padding:3px 7px;border-radius:5px;font-size:.75rem;color:#ddd}.ai-patterns-detected{margin-bottom:10px}.ai-pattern-list{display:flex;flex-direction:column;gap:4px}.ai-pattern-chip{display:flex;align-items:center;justify-content:space-between;background:#ffd70014;border:1px solid rgba(255,215,0,.15);padding:5px 10px;border-radius:6px;font-size:.8rem;color:#eee}.ai-pattern-chip.bonus{background:#64c86414;border-color:#64c86426}.ai-pattern-fan{color:gold;font-weight:700;font-size:.85rem}.ai-explanation{padding:8px 10px;background:#ffffff08;border-radius:6px;margin-bottom:12px}.ai-explanation p{font-size:.78rem;color:#aaa;line-height:1.4}.ai-actions{display:flex;gap:8px}.ai-accept-btn{flex:2;padding:12px;border:none;border-radius:10px;background:linear-gradient(135deg,gold,#fa0);color:#1a3a1a;font-size:1rem;font-weight:700;cursor:pointer;transition:transform .1s}.ai-accept-btn:active{transform:scale(.97)}.ai-adjust-btn{flex:1;padding:12px;border:1px solid rgba(255,255,255,.2);border-radius:10px;background:#ffffff0f;color:#ddd;font-size:.85rem;cursor:pointer}.ai-adjust-btn:active{background:#ffffff1f}.ai-suggestion-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#ffd7001a;border:1px solid rgba(255,215,0,.25);border-radius:8px;font-size:.82rem;color:gold}.ai-suggestion-accept{background:gold;color:#1a3a1a;border:none;padding:4px 12px;border-radius:6px;font-size:.78rem;font-weight:600;cursor:pointer}.fan-pick-btn.ai-suggested{border-color:gold;background:#ffd70026;position:relative}.ai-dot{position:absolute;top:2px;right:4px;font-size:.6rem}.game-history{padding:10px 0}.game-history h2{color:gold;margin-bottom:15px;font-size:1.1rem}.empty-hint{color:#666;font-size:.8rem}.totals-section{background:#0a1f07;border-radius:10px;padding:12px;margin-bottom:15px;border:1px solid #3a6a2f}.totals-section h3{color:gold;margin-bottom:10px;font-size:.9rem}.payment-table{display:flex;flex-direction:column;gap:4px}.payment-row{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-radius:6px;font-size:.9rem}.payment-row.win{background:#1a4a1a;border:1px solid #4a7c3f}.payment-row.lose{background:#4a1a1a;border:1px solid #8b3a3a}.payment-row.neutral{background:#1a2a3a;border:1px solid #3a5a7a}.player-pos{font-size:1rem;font-weight:700}.payment-amount{font-size:1.1rem;font-weight:700}.payment-row.win .payment-amount{color:#4aff4a}.payment-row.lose .payment-amount{color:#ff4a4a}.payment-row.neutral .payment-amount{color:#aaa}.history-list h3{color:#7aaa6f;margin-bottom:10px;font-size:.85rem}.history-item{background:#0a1f07;border-radius:8px;margin-bottom:6px;border:1px solid #2a5a20;overflow:hidden;cursor:pointer}.history-summary{display:flex;justify-content:space-between;padding:10px 12px;font-size:.75rem;color:#7aaa6f;flex-wrap:wrap;gap:4px}.history-detail{padding:10px 12px;border-top:1px solid #1a3a15;font-size:.8rem}.history-detail p{margin-bottom:4px;color:#7aaa6f}.clear-btn{width:100%;padding:10px;background:#6b1a1a;color:#faa;border:none;border-radius:8px;font-size:.85rem;cursor:pointer;margin-top:15px}.hand-display{background:#0a1f07;border-radius:10px;padding:12px;margin-bottom:15px;border:1px solid #3a6a2f}.hand-section{margin-bottom:10px}.hand-section h4{font-size:.8rem;color:gold;margin-bottom:6px}.tile-row{display:flex;flex-wrap:wrap;gap:3px;min-height:44px}.tile-display{width:32px;height:40px;background:transparent;border:none;border-radius:2px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:opacity .2s;overflow:hidden}.tile-display.small{width:26px;height:34px}.tile-display:hover{opacity:.7}.tile-display .tile-img{width:30px;height:38px;object-fit:contain}.tile-display.small .tile-img{width:24px;height:32px}.tile-display .tile-symbol{font-size:1rem}.tile-display.small .tile-symbol{font-size:.85rem}.scoring-input{padding:10px 0}.options-section{background:#0a1f07;border-radius:10px;padding:12px;margin-bottom:15px;border:1px solid #3a6a2f}.options-section h3{color:gold;margin-bottom:10px;font-size:.9rem}.option-row{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid #1a3015;font-size:.85rem}.option-row:last-child{border-bottom:none}.option-row label{display:flex;align-items:center;gap:6px;cursor:pointer;flex:1}.option-row input[type=checkbox]{width:16px;height:16px;cursor:pointer}.option-row input[type=number],.option-row input[type=text]{width:70px;padding:4px 8px;background:#1a3a15;color:#f0e6cc;border:1px solid #3a6a2f;border-radius:6px;font-size:.85rem}.option-row select{background:#1a3a15;color:#f0e6cc;border:1px solid #3a6a2f;border-radius:6px;padding:4px 8px;font-size:.85rem}.counter{display:flex;align-items:center;gap:8px}.counter button{width:26px;height:26px;background:#4a7c3f;color:#fff;border:none;border-radius:50%;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center}.counter span{font-size:1rem;min-width:20px;text-align:center}.score-result{background:#0a1f07;border-radius:10px;padding:15px;border:2px solid #ffd700}.score-result h3{color:gold;margin-bottom:12px}.score-result h4{color:#7aaa6f;font-size:.8rem;margin:8px 0 6px}.pattern-item{display:flex;justify-content:space-between;align-items:center;padding:5px 8px;margin-bottom:4px;background:#1a3a15;border-radius:6px;font-size:.85rem}.total-fan{margin-top:12px;padding:10px;background:#2d5a27;border-radius:8px;font-size:1.1rem;text-align:center;border:1px solid #ffd700}.total-fan strong{color:gold;font-size:1.3rem}.payment-calculator{padding:10px 0}.payment-calculator h2{color:gold;margin-bottom:15px}.calc-section{background:#0a1f07;border-radius:10px;padding:12px;margin-bottom:15px;border:1px solid #3a6a2f}.calc-section h3{color:gold;margin-bottom:10px;font-size:.9rem}.fan-display{font-size:1.2rem;color:gold;font-weight:700}.payment-result{background:#0a1f07;border-radius:10px;padding:15px;border:2px solid #ffd700;margin-top:15px}.payment-result h3{color:gold;margin-bottom:10px}.payment-result p{color:#7aaa6f;margin-bottom:10px;font-size:.85rem}@media(min-width:400px){.tile-btn-sm{width:38px;height:48px}.tile-btn-sm .tile-img{width:36px;height:44px}.mini-tile{width:34px;height:42px}.mini-tile .mini-tile-img{width:32px;height:40px}}.running-summary{margin-top:16px;background:linear-gradient(135deg,#1a3a14,#0f2b0a);border:1px solid #2a5a20;border-radius:12px;padding:14px}.summary-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.summary-header h3{font-size:1rem;color:gold;margin:0}.summary-count{font-size:.8rem;color:#7aaa6f;background:#ffffff14;padding:2px 10px;border-radius:10px}.last-saved-flash{background:#4caf5026;border:1px solid rgba(76,175,80,.3);border-radius:8px;padding:8px 12px;margin-bottom:10px;font-size:.85rem;color:#a5d6a7;animation:flashIn .4s ease}@keyframes flashIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.summary-card{text-align:center;border-radius:10px;padding:10px 4px;border:1px solid rgba(255,255,255,.1)}.summary-card.win{background:linear-gradient(135deg,#4caf5033,#2e7d3226);border-color:#4caf5059}.summary-card.lose{background:linear-gradient(135deg,#ef535033,#b71c1c26);border-color:#ef535059}.summary-card.neutral{background:#ffffff0d}.summary-card-pos{font-size:.75rem;color:#7aaa6f;margin-bottom:2px}.summary-card-name{font-size:.8rem;color:#f0e6cc;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.summary-card-amount{font-size:1.1rem;font-weight:700}.summary-card.win .summary-card-amount{color:#66bb6a}.summary-card.lose .summary-card-amount{color:#ef5350}.summary-card.neutral .summary-card-amount{color:#999}.compact-settings-bar{display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,#1a1a2e,#16213e);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:10px 12px;margin-bottom:8px}.compact-settings-info{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}.compact-settings-row,.compact-players-row{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.compact-chip{display:inline-flex;align-items:center;gap:3px;font-size:.72rem;padding:3px 8px;border-radius:20px;white-space:nowrap;font-weight:600;letter-spacing:.02em}.chip-stake{background:#ffd70026;color:gold;border:1px solid rgba(255,215,0,.3)}.chip-payment{background:#64c8ff1f;color:#7dc8ff;border:1px solid rgba(100,200,255,.25)}.chip-fan-calc{background:#b482ff1f;color:#c4a0ff;border:1px solid rgba(180,130,255,.25)}.chip-limit{background:#ff645026;color:#ff9080;border:1px solid rgba(255,100,80,.3)}.chip-player{background:#ffffff0f;color:#ccc;border:1px solid rgba(255,255,255,.12);padding:2px 7px}.chip-player-seat{color:gold;font-weight:700}.chip-player-name{color:#e0d8c8;font-weight:400;margin-left:2px}.edit-settings-btn{background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:#ccc;font-size:1.2rem;width:36px;height:36px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s}.edit-settings-btn:active{background:#ffffff2e;transform:scale(.95)}.wind-round-bar{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#2a1a0a,#1a3a14);border:1px solid #5a4020;border-radius:10px;padding:8px 12px;margin-bottom:8px}.wind-round-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.wind-round-badge{background:linear-gradient(135deg,gold,#fa0);color:#1a0a00;font-weight:700;font-size:.9rem;padding:3px 10px;border-radius:6px}.dealer-badge{color:#f0e6cc;font-size:.85rem}.consecutive-badge{background:#ff643240;color:#f96;font-size:.75rem;padding:2px 8px;border-radius:8px;border:1px solid rgba(255,100,50,.35)}.wind-reset-btn{background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:#999;font-size:1.1rem;width:30px;height:30px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.wind-reset-btn:active{background:#ffffff26;color:gold}.summary-wind-info{display:flex;align-items:center;justify-content:space-between;background:#ffd70014;border:1px solid rgba(255,215,0,.2);border-radius:8px;padding:6px 12px;margin-bottom:8px;font-size:.82rem}.summary-wind-current{color:gold;font-weight:600}.summary-wind-dealer{color:#f0e6cc}.false-win-section{border:1px solid rgba(255,80,50,.2);border-radius:10px;padding:10px 12px;background:#ff321e0d}.false-win-label{display:flex;align-items:center;gap:8px;font-size:.95rem;font-weight:600;color:#f64;cursor:pointer}.false-win-label input[type=checkbox]{width:18px;height:18px;accent-color:#ff4422}.false-win-config{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,80,50,.15)}.false-win-note{font-size:.8rem;color:#f97;margin-top:8px;margin-bottom:10px;background:#ff50321a;border-radius:6px;padding:6px 10px}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}
