*{box-sizing:border-box}
body{margin:0;background:#0d4d37;color:#fff;font-family:-apple-system,BlinkMacSystemFont,sans-serif;min-height:100vh}
.screen{display:none;padding:24px 16px 50px}.screen.active{display:block}
h1{text-align:center;margin:25px 0 8px;font-size:30px}
.subtitle{text-align:center;opacity:.75;margin-bottom:35px}
.mode-button{width:100%;border:0;border-radius:18px;padding:22px;margin-bottom:16px;font-size:22px;font-weight:700;background:#fff;color:#123c2d}
.header{display:flex;align-items:center;justify-content:space-between}
.back-button{background:rgba(255,255,255,.15);border:0;color:#fff;padding:9px 14px;border-radius:10px;font-size:15px}
.mode-label{font-size:19px;font-weight:700}
.hand-box,.section{background:rgba(0,0,0,.2);padding:15px;border-radius:16px;margin:20px 0}
.hand-title{display:flex;justify-content:space-between;margin-bottom:10px}
.tile-row,#selectedHand,#winningHand,#meldTilePool{display:flex;flex-wrap:wrap;gap:6px}
.tile-row,#selectedHand,#winningHand{min-height:58px}
.tile{position:relative;width:43px;height:58px;background:#fffdf4;border:2px solid #ddd7c8;border-radius:6px;font-size:34px;display:flex;justify-content:center;align-items:center;color:#000;box-shadow:0 3px 0 #a89f8b;user-select:none}
.tile:active,.mode-button:active,.option-button:active,.condition-button:active,.control-button:active,.back-button:active{transform:scale(.98)}
.red-tile{border-color:#e05a5a;box-shadow:0 3px 0 #a63d3d}
.red-tile:after{content:"赤";position:absolute;top:2px;right:2px;background:#d82929;color:#fff;font-size:9px;font-weight:700;border-radius:4px;padding:1px 3px}
.winning-tile,.meld-selected{border:3px solid #f4c542;transform:translateY(-4px)}
.winning-tile:before,.tile-winning-locked:before{content:"和了";position:absolute;bottom:-20px;left:50%;transform:translateX(-50%);background:#f4c542;color:#222;font-size:9px;font-weight:700;border-radius:4px;padding:2px 4px;white-space:nowrap}
.tile-used{opacity:.25;pointer-events:none}.tile-winning-locked{opacity:.45;border-color:#f4c542;pointer-events:none}
.suit-title,.section-title{margin:22px 0 9px;font-weight:700;opacity:.9}.section-title{margin-top:0}
.help{font-size:13px;opacity:.76;margin-bottom:12px;line-height:1.55}
.option-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.option-grid.three{grid-template-columns:repeat(3,1fr)}.option-grid.four{grid-template-columns:repeat(4,1fr)}
.option-button,.condition-button{border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.1);color:#fff;padding:13px 8px;border-radius:12px;font-size:15px;min-height:52px}
.option-button.selected,.condition-button.selected{background:#f4c542;color:#1d1d1d;border-color:#f4c542;font-weight:700}
.condition-grid{display:grid;grid-template-columns:1fr;gap:9px}.condition-button{text-align:left;min-height:61px}.hidden{display:none!important}
.main-condition{display:block;font-weight:600;line-height:1.35}.formal-name{display:block;font-size:11px;margin-top:4px;opacity:.65}
.controls{display:flex;gap:10px;margin-top:25px}.control-button{flex:1;border:0;padding:15px 10px;border-radius:14px;font-size:17px;font-weight:700}
.reset{background:#ddd}.next{background:#f4c542;color:#202020}
.message{text-align:center;min-height:22px;margin-top:14px;font-size:14px;color:#ffe590}
.summary-box,.meld-card,.yaku-card{background:rgba(0,0,0,.22);border-radius:15px;padding:15px;line-height:1.7;margin-top:12px}
.meld-card{display:flex;align-items:center;justify-content:space-between;gap:10px}.meld-info{flex:1}.meld-tiles{font-size:30px;letter-spacing:2px}
.delete-button{border:0;background:#d85b5b;color:#fff;border-radius:10px;padding:9px 11px;font-size:13px}
.dora-selected{display:flex;flex-wrap:wrap;gap:8px;min-height:68px;padding:8px 0}
.dora-slot{display:flex;flex-direction:column;align-items:center;gap:4px}
.dora-slot-label{font-size:10px;opacity:.7}
.dora-palette{display:grid;grid-template-columns:repeat(9,1fr);gap:5px;margin-top:10px}
.dora-palette .tile{width:100%;height:48px;font-size:29px;box-shadow:0 2px 0 #a89f8b}
.counter-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px}
.stepper{display:flex;align-items:center;gap:12px}
.stepper button{width:42px;height:42px;border:0;border-radius:12px;font-size:24px;font-weight:700;background:#fff;color:#123c2d}
.stepper-value{min-width:36px;text-align:center;font-size:22px;font-weight:800}
.dora-map{font-size:13px;line-height:1.7;margin-top:8px}
.score-hero{background:rgba(244,197,66,.14);border:1px solid rgba(244,197,66,.42);border-radius:18px;padding:18px;margin-top:12px;text-align:center}
.score-main{font-size:34px;font-weight:900;line-height:1.25;color:#ffe590}.score-sub{font-size:16px;font-weight:700;margin-top:8px}.score-line{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.10)}.score-line:last-child{border-bottom:0}.score-label{opacity:.78}.score-value{font-weight:800;text-align:right}.score-method{background:rgba(255,255,255,.07);border-radius:13px;padding:12px;margin-top:10px}.score-method-title{font-weight:800;margin-bottom:7px}.version{text-align:center;margin-top:30px;opacity:.45;font-size:12px}
.badge{display:inline-block;background:rgba(255,255,255,.14);padding:3px 8px;border-radius:999px;font-size:12px;margin-left:6px}
.recommend-badge{display:inline-block;background:#f4c542;color:#1d1d1d;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:800;margin-left:6px;vertical-align:1px}.recommend-box{background:rgba(244,197,66,.12);border:1px solid rgba(244,197,66,.38);border-radius:14px;padding:13px 14px;margin:18px 0 8px;font-size:13px;line-height:1.6}.recommend-box strong{color:#ffe590}
.warning{color:#ffe590;font-size:13px;line-height:1.5;margin-top:10px}
.yaku-title{font-size:17px;font-weight:700}.han{float:right;color:#ffe590;font-weight:700}.yaku-reason{font-size:12px;opacity:.72;margin-top:4px;line-height:1.45}
.total{font-size:24px;font-weight:800;text-align:center;margin:18px 0 6px}.notice{font-size:12px;opacity:.72;line-height:1.5;text-align:center}
.error-box{background:rgba(130,25,25,.38);border:1px solid rgba(255,150,150,.4);border-radius:14px;padding:14px;line-height:1.6}
.success-box{background:rgba(244,197,66,.13);border:1px solid rgba(244,197,66,.35);border-radius:14px;padding:14px;line-height:1.6}

.header{justify-content:center}
.header .back-button{display:none}
.header>div[style*="width:60px"]{display:none}
.back-nav{background:rgba(255,255,255,.16);color:#fff}
.home-card{width:100%;border:0;border-radius:18px;padding:20px 18px;margin-bottom:14px;text-align:left;background:#fff;color:#123c2d}
.home-card-title{font-size:21px;font-weight:800;display:block;margin-bottom:5px}.home-card-sub{font-size:13px;opacity:.72;line-height:1.45;display:block}
.form-row{margin-bottom:14px}.form-label{font-size:13px;font-weight:700;margin-bottom:6px;display:block}.form-input{width:100%;border:0;border-radius:12px;padding:13px 12px;font-size:17px;background:#fff;color:#222}
.player-setup-row{background:rgba(255,255,255,.08);padding:12px;border-radius:13px;margin-bottom:10px}
.table-player-grid{display:grid;grid-template-columns:1fr;gap:10px}.table-player-card{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:14px}.table-player-card.dealer{border-color:#f4c542;background:rgba(244,197,66,.10)}
.table-player-top{display:flex;justify-content:space-between;gap:12px;align-items:center}.table-player-name{font-size:18px;font-weight:800}.table-score{font-size:28px;font-weight:900;color:#ffe590;margin:8px 0 12px}.dealer-badge{display:inline-block;background:#f4c542;color:#222;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:800}.table-card-actions{display:flex;gap:8px}.small-button{flex:1;border:0;border-radius:10px;padding:10px 8px;font-size:13px;font-weight:700}.small-secondary{background:rgba(255,255,255,.16);color:#fff}.small-primary{background:#f4c542;color:#222}
.table-status{background:rgba(0,0,0,.22);border-radius:14px;padding:12px 14px;margin:14px 0;line-height:1.55}.table-message{color:#ffe590;font-weight:700}
.table-round-hero{background:rgba(244,197,66,.13);border:1px solid rgba(244,197,66,.38);border-radius:18px;padding:16px;margin:14px 0;text-align:center}.table-round-main{font-size:27px;font-weight:900;color:#ffe590}.table-round-sub{font-size:13px;opacity:.8;margin-top:5px}.status-chip-row{display:flex;justify-content:center;gap:7px;flex-wrap:wrap;margin-top:10px}.status-chip{background:rgba(255,255,255,.12);border-radius:999px;padding:5px 10px;font-size:12px}.riichi-badge{display:inline-block;background:#d55;color:#fff;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:800;margin-left:6px}.draw-grid{display:grid;grid-template-columns:1fr;gap:9px}.draw-player{border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.09);color:#fff;border-radius:13px;padding:14px;text-align:left;font-size:16px}.draw-player.selected{background:#f4c542;color:#222;font-weight:800}.ranking-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.1)}.ranking-row:last-child{border-bottom:0}.rank-no{font-weight:900;color:#ffe590}.match-ended{background:rgba(244,197,66,.13);border:1px solid rgba(244,197,66,.4);border-radius:16px;padding:15px;margin:14px 0}
.apply-panel{background:rgba(244,197,66,.10);border:1px solid rgba(244,197,66,.38);border-radius:16px;padding:15px;margin-top:18px}.apply-player-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:10px 0}.apply-button{border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.10);color:#fff;border-radius:11px;padding:11px 7px;font-size:14px}.apply-button.selected{background:#f4c542;color:#222;font-weight:800}.apply-confirm{width:100%;border:0;border-radius:12px;padding:14px;margin-top:10px;background:#f4c542;color:#222;font-size:16px;font-weight:800}
.locked{opacity:.72;pointer-events:none}.inline-note{font-size:12px;opacity:.72;line-height:1.5}

.outcome-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-top:14px}
.outcome-button{border:0;border-radius:13px;padding:14px 8px;font-size:15px;font-weight:800;background:rgba(255,255,255,.16);color:#fff}
.outcome-button.primary{background:#f4c542;color:#222}
.choice-player{border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.09);color:#fff;border-radius:13px;padding:13px;text-align:left;font-size:15px}
.choice-player.selected{background:#f4c542;color:#222;font-weight:800}
.choice-player.disabled{opacity:.35;pointer-events:none}
.event-button{width:100%;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.09);color:#fff;border-radius:13px;padding:13px;margin-bottom:9px;text-align:left;font-size:15px}
.event-button.selected{background:#f4c542;color:#222;font-weight:800}

.app-confirm-overlay{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;padding:24px 18px calc(24px + env(safe-area-inset-bottom))}
.app-confirm-overlay.hidden{display:none!important}
.app-confirm-card{width:min(100%,420px);background:#123c2d;border:1px solid rgba(255,255,255,.18);border-radius:20px;padding:20px;box-shadow:0 18px 50px rgba(0,0,0,.35)}
.app-confirm-title{font-size:20px;font-weight:800;margin-bottom:10px;text-align:center}
.app-confirm-message{font-size:14px;line-height:1.65;opacity:.86;text-align:center;margin-bottom:18px}
.app-confirm-actions{display:flex;gap:10px}
.app-confirm-actions button{flex:1;border:0;border-radius:13px;padding:14px 10px;font-size:16px;font-weight:800}
.app-confirm-cancel{background:rgba(255,255,255,.15);color:#fff}
.app-confirm-ok{background:#f4c542;color:#202020}

.stats-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:14px 0}.stats-card{background:rgba(0,0,0,.2);border-radius:15px;padding:14px}.stats-num{font-size:24px;font-weight:900;color:#ffe590}.stats-label{font-size:12px;opacity:.72;margin-top:3px}.history-card{background:rgba(0,0,0,.2);border-radius:15px;padding:14px;margin:10px 0}.history-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.history-title{font-weight:800}.history-meta{font-size:12px;opacity:.72;margin-top:4px}.history-rank{font-size:13px;line-height:1.7;margin-top:10px}.history-button{width:100%;border:0;border-radius:11px;padding:10px;margin-top:10px;background:rgba(255,255,255,.13);color:#fff;font-weight:700}.stat-player-row{display:grid;grid-template-columns:1.25fr .55fr .65fr .65fr;gap:6px;align-items:center;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:13px}.stat-player-row.header{font-size:11px;opacity:.7;font-weight:700}.hand-history-row{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.1)}.hand-history-row:last-child{border-bottom:0}.hand-history-title{font-weight:800}.hand-history-detail{font-size:12px;opacity:.78;line-height:1.55;margin-top:4px}.end-rule-badge{display:inline-block;background:rgba(244,197,66,.16);border:1px solid rgba(244,197,66,.35);border-radius:999px;padding:4px 8px;font-size:11px;margin:3px 3px 0 0}.target-input-wrap{display:flex;align-items:center;gap:8px}.target-input-wrap .form-input{flex:1}.target-unit{font-weight:800}

.pwa-note{max-width:520px;margin:10px auto 0;text-align:center;font-size:12px;line-height:1.55;opacity:.72;padding:0 12px}
@media (display-mode: standalone){.pwa-note{display:none}}
@supports (padding: env(safe-area-inset-top)){
  @media (display-mode: standalone){
    body{
      padding-top:env(safe-area-inset-top);
      padding-right:env(safe-area-inset-right);
      padding-bottom:env(safe-area-inset-bottom);
      padding-left:env(safe-area-inset-left);
    }
  }
}

.app-site-link-wrap{max-width:520px;margin:6px auto 0}.app-site-link{display:inline-block;color:#fff;text-decoration:none;font-size:13px;font-weight:700;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);padding:8px 11px;border-radius:999px}.app-site-link:active{transform:scale(.98)}
