*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{margin:0;font-family:Hiragino Sans,Noto Sans JP,sans-serif;background:#14532d;color:#f0fdf4}.screen{min-height:100dvh;display:flex;flex-direction:column;max-width:640px;margin:0 auto;padding:12px}.home-screen{justify-content:center;gap:16px}.app-title{font-size:40px;text-align:center;margin:0}.app-subtitle{text-align:center;margin:0 0 16px;color:#bbf7d0}.home-section h2{font-size:16px;margin:0 0 8px}.choice-row{display:flex;gap:8px}.choice{flex:1;padding:12px;border-radius:10px;border:2px solid #166534;background:#166534;color:#f0fdf4;font-size:15px}.choice-active{border-color:#fbbf24;background:#15803d}.assist-toggle{display:block;padding:6px 0;font-size:14px}.hint-text{font-size:12px;color:#86efac}.primary-button{padding:14px;border-radius:12px;border:none;background:#fbbf24;color:#422006;font-size:17px;font-weight:700;cursor:pointer}.tile{display:inline-flex;align-items:center;justify-content:center;width:40px;height:54px;border-radius:6px;border:none;background:transparent;padding:0;font-family:inherit;position:relative;overflow:hidden}.tile img{width:100%;height:100%;object-fit:fill;border-radius:6px;display:block}.tile-small{width:26px;height:36px;border-radius:4px}.tile-back{background:linear-gradient(160deg,#c2712c,#92400e);border:1px solid #78350f}.tile-clickable{cursor:pointer}.tile-disabled{opacity:.55}.tile-selected{outline:3px solid #f87171;transform:translateY(-6px)}.tile-recommended{outline:3px solid #fbbf24;transform:translateY(-6px)}.game-screen{gap:8px}.info-bar{display:flex;align-items:center;justify-content:space-between;font-size:13px;background:#166534;border-radius:10px;padding:6px 10px}.dora{display:inline-flex;align-items:center;gap:4px}.player-info{display:flex;align-items:center;gap:10px;font-size:14px}.player-score{color:#fde68a}.riichi-badge{background:#dc2626;color:#fff;border-radius:6px;padding:1px 8px;font-size:12px}.opponent-area,.my-area{background:#166534;border-radius:12px;padding:8px 10px;display:flex;flex-direction:column;gap:6px}.my-area{margin-top:auto}.opp-hand{display:flex;gap:2px;align-items:center}.discards{display:flex;flex-wrap:wrap;gap:2px;min-height:38px;align-content:flex-start}.meld{display:inline-flex;gap:1px;margin-left:10px;padding:2px;background:#14532d;border-radius:6px}.my-melds{display:flex;min-height:0}.hand{display:flex;gap:3px;align-items:flex-end;padding-top:10px;flex-wrap:wrap}.drawn-tile{margin-left:12px}.action-buttons{display:flex;gap:8px;flex-wrap:wrap;min-height:40px;align-items:center}.action-button{padding:8px 16px;border-radius:10px;border:none;background:#f0fdf4;color:#14532d;font-size:15px;font-weight:700;cursor:pointer}.action-win{background:#dc2626;color:#fff}.action-riichi{background:#fbbf24;color:#422006}.action-pass{background:#4b5563;color:#fff}.riichi-guide{font-size:13px;color:#fde68a}.claim-bar{display:flex;align-items:center;gap:10px;background:#14532d;border-radius:10px;padding:8px;flex-wrap:wrap}.claim-label{font-size:13px}.assist-panel{background:#ecfccb;color:#1a2e05;border-radius:10px;padding:8px 12px;font-size:13px}.assist-panel p{margin:2px 0}.assist-strong{font-weight:700;color:#b91c1c}.handover-screen{justify-content:center;align-items:center;cursor:pointer}.handover-card{background:#166534;border-radius:16px;padding:40px 48px;text-align:center}.handover-label{font-size:24px;font-weight:700;margin:0 0 8px}.handover-sub{margin:0;color:#bbf7d0;font-size:14px}.result-screen{justify-content:center;align-items:center}.result-card{background:#166534;border-radius:16px;padding:24px;width:100%;max-width:420px;display:flex;flex-direction:column;gap:12px}.result-card h2{margin:0;font-size:18px;text-align:center}.result-headline{font-size:20px;font-weight:700;text-align:center;margin:0}.result-wintile{margin-left:8px}.yaku-list{list-style:none;margin:0;padding:0}.yaku-list li{display:flex;justify-content:space-between;padding:3px 0;border-bottom:1px solid #14532d;font-size:15px}.yaku-han{color:#fde68a}.result-points{text-align:center;font-size:17px;margin:0}.score-summary{background:#14532d;border-radius:10px;padding:8px 12px}.score-line{display:flex;justify-content:space-between;padding:4px 0;font-size:15px}.score-winner{color:#fbbf24;font-weight:700}.auth-form{display:flex;flex-direction:column;gap:14px;max-width:320px}.form-field{display:flex;flex-direction:column;gap:4px;font-size:14px}.form-field input,.code-input{padding:10px 12px;border:1px solid #ccc;border-radius:8px;font-size:16px}.error-text{color:#c0392b;font-size:14px;margin:4px 0}.text-button{background:none;border:none;color:#cfe6d8;text-decoration:underline;cursor:pointer;font-size:13px;padding:4px}.back-button{position:absolute;top:8px;left:8px;z-index:10}.lobby-header{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.lobby-header .app-title{font-size:26px;text-align:left;white-space:nowrap}.lobby-user{white-space:nowrap}.lobby-user{display:flex;align-items:center;gap:6px;font-size:14px}.join-row{display:flex;gap:8px;align-items:stretch}.join-row .code-input{flex:1;min-width:0;letter-spacing:4px}.join-row .primary-button{margin:0}.code-display{font-size:44px;font-weight:700;letter-spacing:10px;text-align:center;margin:12px 0;color:#fbbf24;text-shadow:0 1px 2px rgba(0,0,0,.35)}.turn-badge{font-size:12px;padding:2px 8px;border-radius:10px;background:#eee;color:#666}.turn-badge-mine{background:#2c6e49;color:#fff}.assist-toggle-compact{font-size:12px;display:flex;align-items:center;gap:4px}.winner-hand{display:flex;flex-wrap:wrap;gap:2px;justify-content:center;margin:8px 0}
