.home-screen{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a3a2a,#0d2818);padding:20px}.home-content{text-align:center;max-width:360px;width:100%}.lobby-content{max-width:400px}.home-title{font-size:48px;color:#f1c40f;margin:0;font-family:Georgia,serif;text-shadow:2px 2px 8px rgba(0,0,0,.5)}.home-subtitle{color:#95a5a6;font-size:14px;margin:4px 0 24px}.home-actions{display:flex;flex-direction:column;gap:12px}.home-btn{padding:14px 24px;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;width:100%;transition:opacity .15s}.home-btn:active{opacity:.7}.home-btn:disabled{opacity:.4;cursor:not-allowed}.home-btn-primary{background:#27ae60;color:#fff}.home-btn-secondary{background:#34495e;color:#ecf0f1}.home-info{margin-top:32px;color:#7f8c8d;font-size:13px}.name-form{display:flex;flex-direction:column;gap:12px}.name-input{padding:14px 16px;border:2px solid #34495e;border-radius:10px;font-size:16px;background:#1a3a2a;color:#ecf0f1;text-align:center;outline:none;transition:border-color .2s}.name-input:focus{border-color:#27ae60}.name-input::placeholder{color:#7f8c8d}.lobby-section{margin-top:20px;text-align:left}.lobby-heading{color:#bdc3c7;font-size:14px;text-transform:uppercase;letter-spacing:1px;margin:0 0 10px;text-align:center}.lobby-empty{color:#7f8c8d;text-align:center;font-size:14px;padding:20px 0}.lobby-list{display:flex;flex-direction:column;gap:6px;max-height:300px;overflow-y:auto}.lobby-player{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#2c3e5080;border-radius:8px}.lobby-player-busy{opacity:.5}.lobby-player-name{color:#ecf0f1;font-size:15px;font-weight:500;display:flex;align-items:center;gap:8px}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.status-idle{background:#2ecc71}.status-busy{background:#e67e22}.lobby-challenge-btn{padding:6px 14px;background:#3498db;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer}.lobby-challenge-btn:active{opacity:.7}.lobby-player-status{color:#95a5a6;font-size:12px;font-style:italic}.challenge-modal{background:#2980b926;border:2px solid #3498db;border-radius:12px;padding:16px;margin-bottom:16px;animation:pulse-border 1.5s ease-in-out infinite}.challenge-text{color:#ecf0f1;font-size:15px;margin:0 0 12px}.challenge-actions{display:flex;gap:8px}.challenge-btn{flex:1;padding:10px!important;font-size:14px!important}@keyframes pulse-border{0%,to{border-color:#3498db}50%{border-color:#2ecc71}}.queuing-indicator{display:flex;align-items:center;justify-content:center;gap:10px;color:#ecf0f1;font-size:15px;padding:14px}.spinner{width:20px;height:20px;border:3px solid #34495e;border-top-color:#3498db;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.card{width:62px;height:90px;border-radius:7px;background:#fff;border:1.5px solid #ccc;position:relative;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;transition:transform .15s,box-shadow .15s;flex-shrink:0;overflow:hidden}.card-small{width:44px;height:64px;border-radius:5px}.card-clickable{cursor:pointer}.card-clickable:hover{transform:translateY(-4px);box-shadow:0 4px 12px #0003}.card-selected{transform:translateY(-8px);box-shadow:0 6px 16px #3498db80;border-color:#3498db}.card-highlighted{box-shadow:0 0 8px #2ecc7199;border-color:#2ecc71}.card-image{width:100%;height:100%;object-fit:contain;pointer-events:none}.card-back{background:#2c3e50;border-color:#1a252f}.card-back-pattern{width:80%;height:85%;border-radius:3px;background:repeating-linear-gradient(45deg,#34495e,#34495e 2px,#2c3e50 2px,#2c3e50 6px);border:1px solid #3d566e}.player-hand{display:flex;align-items:center;padding:6px 8px;gap:8px}.player-hand-own{background:#2c3e504d;border-top:1px solid #34495e}.player-hand-opponent{background:#2c3e504d;border-bottom:1px solid #34495e}.hand-cards{display:flex;gap:4px;flex:1;justify-content:center;overflow-x:auto}.hand-info{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:44px}.hand-score-circle{width:40px;height:40px;border-radius:50%;background:#2c3e50;border:2px solid #3498db;display:flex;flex-direction:column;align-items:center;justify-content:center}.hand-score-circle.score-you{border-color:#2ecc71}.hand-score-circle.score-opponent{border-color:#e74c3c}.turn-active{background:#2ecc711f!important;border-left:3px solid #2ecc71}.score-value{font-size:14px;font-weight:700;color:#ecf0f1;line-height:1}.score-label{font-size:8px;color:#95a5a6;text-transform:uppercase}.seep-badge{background:#e74c3c;color:#fff;font-size:11px;font-weight:700;padding:1px 6px;border-radius:10px}.hand-meta{display:flex;flex-direction:column;align-items:center;min-width:44px}.hand-label{font-size:10px;color:#95a5a6;text-transform:uppercase}.game-points{font-size:13px;font-weight:700;color:#f1c40f}.open-deck-row{display:flex;justify-content:center;gap:6px;padding:4px 8px}.open-deck-pile{position:relative;display:flex;flex-direction:column;align-items:center}.pile-count{position:absolute;bottom:-10px;font-size:11px;color:#ecf0f1;background:#555;border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-weight:700}.pile-empty-slot{width:62px;height:90px;border:2px dashed #555;border-radius:7px;opacity:.3}.pile-empty{opacity:.4}.playing-area{min-height:120px;background:#d6eaf8;border-radius:12px;padding:12px;margin:4px 8px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;border:2px solid #aed6f1}.loose-cards{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.house{display:flex;flex-direction:column;align-items:center;padding:6px;border-radius:8px;position:relative;cursor:pointer}.house-soft{background:#f1c40f33;border:2px solid #f1c40f}.house-hard{background:#e74c3c33;border:2px solid #e74c3c}.house-badge{position:absolute;top:-10px;right:-8px;background:#2c3e50;color:#ecf0f1;font-size:14px;font-weight:700;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center}.house-cards{display:flex;gap:2px}.house-more{font-size:12px;color:#2c3e50;align-self:center;margin-left:2px}.house-type{font-size:10px;color:#5d6d7e;margin-top:2px;text-transform:uppercase;letter-spacing:1px}.area-empty{color:#85c1e9;font-size:14px;font-style:italic}.house-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.house-modal{background:#2c3e50;border-radius:12px;width:100%;max-width:340px;color:#ecf0f1;overflow:hidden}.house-modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #34495e}.house-modal-header h3{margin:0;font-size:16px;display:flex;align-items:center;gap:8px}.house-modal-tag{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.tag-soft{background:#f1c40f40;color:#f1c40f}.tag-hard{background:#e74c3c40;color:#e74c3c}.house-modal-close{background:none;border:none;color:#95a5a6;font-size:18px;cursor:pointer;padding:4px 8px;line-height:1}.house-modal-body{padding:12px 16px;display:flex;flex-direction:column;gap:10px;max-height:300px;overflow-y:auto}.house-combo{display:flex;align-items:center;gap:8px;padding:8px;background:#ffffff0d;border-radius:8px}.combo-label{font-size:11px;color:#95a5a6;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;min-width:52px}.combo-cards{display:flex;gap:3px;flex-wrap:wrap}.combo-sum{font-size:13px;color:#bdc3c7;margin-left:auto;white-space:nowrap}.house-modal-footer{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-top:1px solid #34495e;font-size:12px;color:#95a5a6}.action-bar{display:flex;flex-direction:column;align-items:center;padding:6px 12px;gap:6px;background:#0000004d;min-height:44px}.action-message{color:#95a5a6;font-size:13px;font-style:italic}.action-error{color:#e74c3c;font-size:12px}.action-buttons{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.action-btn{padding:10px 18px;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;color:#fff;transition:opacity .15s;min-height:44px}.action-btn:active{opacity:.7}.action-capture{background:#27ae60}.action-house{background:#f39c12}.action-cement{background:#e74c3c}.action-break{background:#8e44ad}.action-trail{background:#7f8c8d}.game-screen{display:flex;flex-direction:column;height:100vh;height:100dvh;background:#1a3a2a;overflow:hidden}.game-screen>.player-hand{flex-shrink:0}.game-screen>.open-deck-row{flex-shrink:0}.game-screen>.playing-area{flex:1;overflow-y:auto;min-height:0}.game-screen>.action-bar{flex-shrink:0}.turn-banner{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:8px 12px;font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px}.quit-btn{background:#0000004d;color:inherit;border:none;padding:4px 12px;border-radius:4px;font-size:11px;font-weight:600;cursor:pointer;text-transform:uppercase;letter-spacing:.5px;min-height:28px}.quit-btn:active{opacity:.7}.quit-spacer{width:48px}.action-toast{position:fixed;top:48px;left:50%;transform:translate(-50%);background:#000000d9;color:#f1c40f;padding:8px 18px;border-radius:8px;font-size:13px;font-weight:600;z-index:100;pointer-events:none;animation:toast-fade 3s ease-in-out;white-space:nowrap;max-width:90vw;overflow:hidden;text-overflow:ellipsis}@keyframes toast-fade{0%{opacity:0;transform:translate(-50%) translateY(-8px)}10%{opacity:1;transform:translate(-50%) translateY(0)}80%{opacity:1}to{opacity:0}}.turn-banner-your{background:#2ecc71;color:#fff;box-shadow:0 2px 8px #2ecc7166}.turn-banner-opponent{background:#e74c3c;color:#fff;box-shadow:0 2px 8px #e74c3c4d}.phase-overlay{display:flex;flex-direction:column;align-items:center;min-height:100vh;min-height:100dvh;background:#1a3a2a;padding:20px;gap:16px;color:#ecf0f1;overflow-y:auto}.phase-overlay h2{font-size:20px;margin:0}.phase-overlay h3{font-size:15px;margin:8px 0 4px;color:#bdc3c7}.phase-overlay p{font-size:14px;color:#95a5a6;margin:0}.phase-cards{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.phase-card-option{position:relative}.floor-preview{margin-top:12px;text-align:center}.opening-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:12px}.redraw-btn{background:#e67e22;color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;margin-top:8px;min-height:44px}.redraw-btn:active{opacity:.7}.summary-screen{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#1a3a2a;color:#ecf0f1;padding:20px;gap:16px}.summary-screen h2{margin:0;font-size:22px}.summary-table{border-collapse:collapse;width:100%;max-width:320px}.summary-table th,.summary-table td{padding:6px 10px;text-align:center;font-size:14px;border-bottom:1px solid #2c5a3a}.summary-table th:first-child,.summary-table td:first-child{text-align:left}.summary-table th{color:#95a5a6;font-weight:600}.summary-subtotal td{border-top:2px solid #3d7a5a;font-weight:600}.summary-total td{border-top:2px solid #f1c40f;font-weight:700;font-size:16px;color:#f1c40f}.summary-result{font-size:20px;font-weight:700;margin:8px 0}.result-win{color:#2ecc71}.result-draw{color:#f1c40f}.result-loss{color:#e74c3c}.match-score{font-size:16px;color:#bdc3c7}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#0d2818;color:#ecf0f1;overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;touch-action:manipulation}#root{width:100%;max-width:430px;margin:0 auto;min-height:100vh;min-height:100dvh;position:relative;overflow:hidden}button{font-family:inherit}body{overscroll-behavior:none}
