:root{--color-bg: #0c0e14;--color-surface: #161923;--color-surface-2: #1e2230;--color-border: #252836;--color-text: #e8eaf6;--color-muted: #7b7f97;--color-accent: #dc2626;--color-accent-hover: #ef4444;--color-accent-2: #f59e0b;--color-danger: #ef4444;--color-success: #22c55e;--color-warning: #f59e0b;--radius: 10px;--radius-sm: 6px;--nav-height: 56px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100dvh}body{background:var(--color-bg);color:var(--color-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}.app-shell{display:flex;flex-direction:column;min-height:100dvh}.app-content{flex:1;padding-bottom:calc(var(--nav-height) + env(safe-area-inset-bottom,0px));overflow-y:auto}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--color-surface);border-top:1px solid var(--color-border);display:flex;padding-bottom:env(safe-area-inset-bottom,0px);z-index:100}.bottom-nav-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 8px;height:var(--nav-height);border:none;background:transparent;color:var(--color-muted);font-size:11px;font-weight:500;cursor:pointer;gap:3px;transition:color .15s;min-width:44px}.bottom-nav-btn.active{color:var(--color-accent)}.bottom-nav-icon{font-size:18px;line-height:1}.container{max-width:540px;margin:0 auto;padding:20px 16px}@media(min-width:768px){.container{max-width:640px;padding:24px 20px}}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:20px}.title{font-size:28px;font-weight:700;letter-spacing:-.5px}.subtitle{font-size:14px;color:var(--color-muted);margin-top:4px}.label{font-size:13px;color:var(--color-muted);margin-bottom:6px;display:block}.error-text{color:var(--color-danger);font-size:14px}.success-text{color:var(--color-success);font-size:14px}.muted{color:var(--color-muted);font-size:14px}.tabular{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.input{width:100%;padding:12px 16px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);font-size:16px;outline:none;transition:border-color .15s;-webkit-appearance:none}.input:focus{border-color:var(--color-accent)}.input::placeholder{color:var(--color-muted)}.score-input{width:52px;height:48px;padding:0;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;font-feature-settings:"tnum";text-align:center;outline:none;transition:border-color .15s;-webkit-appearance:none;-moz-appearance:none;appearance:none}.score-input:focus{border-color:var(--color-accent)}.score-input:disabled{opacity:.5;cursor:not-allowed;background:var(--color-surface-2)}.score-input::placeholder{color:var(--color-muted);font-size:16px;font-weight:400}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;border-radius:8px;border:none;font-size:15px;font-weight:500;cursor:pointer;transition:opacity .15s;width:100%;min-height:44px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn-ghost{background:transparent;color:var(--color-muted);border:1px solid var(--color-border)}.btn-ghost:hover:not(:disabled){color:var(--color-text);border-color:var(--color-muted)}.btn-danger{background:transparent;color:var(--color-danger);border:1px solid var(--color-danger)}.btn-danger:hover:not(:disabled){background:var(--color-danger);color:#fff}.btn-sm{padding:8px 16px;font-size:14px;width:auto;min-height:36px}.match-card{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius);padding:12px 14px;transition:border-color .15s}.match-card.is-locked{opacity:.75}.match-card.is-dirty{border-color:var(--color-accent-2)}.match-card.is-saved{border-color:var(--color-success)}.match-card.is-error{border-color:var(--color-danger)}.match-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--color-muted);margin-bottom:10px;font-variant-numeric:tabular-nums}.match-lock-badge{font-size:11px;padding:1px 6px;border-radius:4px;background:#ef44441f;color:var(--color-danger);font-weight:600}.match-state-badge{font-size:11px;padding:1px 6px;border-radius:4px;background:#f59e0b1f;color:var(--color-accent-2);font-weight:600}.score-row{display:flex;align-items:center;gap:8px}.score-team{flex:1;font-size:14px;font-weight:500;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-team.home{text-align:right}.score-team.away{text-align:left}.score-sep{color:var(--color-muted);font-size:16px;font-weight:700;flex-shrink:0}.score-inputs{display:flex;align-items:center;gap:6px;flex-shrink:0}.match-indicator{display:flex;align-items:center;justify-content:flex-end;margin-top:8px;font-size:12px;min-height:18px}.match-indicator-ok{color:var(--color-success)}.match-indicator-error{color:var(--color-danger)}.match-indicator-saving{color:var(--color-muted)}.matchday-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:16px}.matchday-nav-label{flex:1;text-align:center;font-size:14px;font-weight:600}.matchday-nav-sub{font-size:12px;color:var(--color-muted);text-align:center;margin-top:2px;font-weight:400}.matchday-btn{width:36px;height:36px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:transparent;color:var(--color-muted);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s,border-color .15s}.matchday-btn:disabled{opacity:.3;cursor:not-allowed}.matchday-btn:not(:disabled):hover{color:var(--color-text);border-color:var(--color-muted)}.competition-selector{width:100%;padding:10px 32px 10px 12px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-surface-2);color:var(--color-text);font-size:15px;outline:none;cursor:pointer;margin-bottom:16px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237b7f97' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.competition-selector:focus{border-color:var(--color-accent)}.save-bar{position:sticky;bottom:calc(var(--nav-height) + env(safe-area-inset-bottom,0px) + 8px);padding:0 16px;pointer-events:none;z-index:50}.save-bar-inner{pointer-events:all;background:var(--color-accent);color:#fff;border-radius:var(--radius);padding:12px 20px;font-size:15px;font-weight:600;cursor:pointer;border:none;width:100%;text-align:center;box-shadow:0 4px 20px #dc262666;transition:opacity .15s;min-height:44px;display:flex;align-items:center;justify-content:center}.save-bar-inner:disabled{opacity:.6;cursor:not-allowed}.save-bar-inner:not(:disabled):hover{opacity:.9}.stack>*+*{margin-top:16px}.stack-sm>*+*{margin-top:8px}.stack-xs>*+*{margin-top:8px}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.nav{display:flex;gap:8px;border-bottom:1px solid var(--color-border);padding-bottom:12px;margin-bottom:16px}.nav-btn{padding:6px 12px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--color-muted);font-size:13px;cursor:pointer;transition:color .15s,background .15s;min-height:36px}.nav-btn.active{background:var(--color-surface-2);border-color:var(--color-border);color:var(--color-text)}.badge{display:inline-block;padding:2px 10px;border-radius:100px;font-size:12px;font-weight:600}.badge-ok{background:#22c55e1f;color:var(--color-success)}.badge-error{background:#ef44441f;color:var(--color-danger)}.loading-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;color:var(--color-muted);font-size:15px}.app-header{display:flex;justify-content:space-between;align-items:center;padding:16px 16px 8px;border-bottom:1px solid var(--color-border);max-width:540px;margin:0 auto;width:100%}@media(min-width:768px){.app-header{max-width:640px;padding:20px 20px 12px}}
