*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--surface-default);color:var(--text-primary);margin:0;font-family:system-ui,Segoe UI,Roboto,sans-serif}h1,h2,h3{color:var(--text-primary);margin:0 0 8px}p{margin:0}button,input,select{font:inherit}.app-shell{flex-direction:column;min-height:100%;display:flex}.app-header{background:var(--surface-raised);border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:center;padding:12px 24px;display:flex}.app-nav{gap:8px;display:flex}.nav-link{color:var(--text-secondary);border-radius:8px;padding:8px 12px;font-weight:600;text-decoration:none}.nav-link.active,.nav-link:hover{background:var(--surface-brand);color:var(--text-on-brand)}.app-header-user{align-items:center;gap:12px;display:flex}.app-header-name{color:var(--text-secondary)}.app-main{flex:1;width:100%;max-width:960px;margin:0 auto;padding:24px}.app-footer{color:var(--text-secondary);text-align:center;padding:8px 24px;font-size:12px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.page-subtitle{color:var(--text-secondary);margin-bottom:16px}.page-status{color:var(--text-secondary);text-align:center;padding:32px 0}.card{background:var(--surface-raised);border:1px solid var(--border-default);border-radius:12px;margin-bottom:16px;padding:20px}.sign-in-page{justify-content:center;align-items:center;min-height:100%;padding:24px;display:flex}.sign-in-card{flex-direction:column;gap:12px;width:100%;max-width:360px;display:flex}.field{color:var(--text-secondary);flex-direction:column;gap:4px;font-weight:600;display:flex}.field input,.field select{border:1px solid var(--border-default);background:var(--surface-default);color:var(--text-primary);border-radius:8px;padding:8px 10px;font-weight:400}.field-row{flex-wrap:wrap;gap:12px;display:flex}.field-row>.field{flex:1;min-width:160px}.field-grow{flex:2}.button-row-bottom{align-items:flex-end}.checkbox-field{flex-direction:row;align-items:center;gap:8px}.button{border:1px solid var(--border-default);background:var(--surface-default);color:var(--text-primary);cursor:pointer;border-radius:8px;padding:8px 16px;font-weight:600}.button:disabled{color:var(--text-disabled);cursor:not-allowed}.button-primary{background:var(--surface-brand);color:var(--text-on-brand);border-color:#0000}.button-ghost{background:0 0;border-color:#0000}.button-danger{border-color:var(--state-incorrect-fill);color:var(--state-incorrect-text);background:var(--state-incorrect-fill)}.button-row{flex-wrap:wrap;gap:8px;display:flex}.form-error{color:var(--state-incorrect-text);background:var(--state-incorrect-fill);border-radius:8px;padding:8px 12px}.form-success{color:var(--state-correct-text);background:var(--state-correct-fill);border-radius:8px;padding:8px 12px}.form-notice{color:var(--text-primary);background:var(--surface-overlay);border-radius:8px;padding:8px 12px}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.table-scroll>.data-table{width:auto;min-width:100%}table.data-table{border-collapse:collapse;width:100%}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border-default);padding:10px 8px}.data-table th{color:var(--text-secondary);font-weight:600}.badge{border-radius:999px;padding:2px 10px;font-size:13px;font-weight:600;display:inline-flex}.badge-liga{background:var(--competition-liga-fill);color:var(--competition-liga-text)}.badge-taca-portugal{background:var(--competition-taca-portugal-fill);color:var(--competition-taca-portugal-text)}.badge-taca-liga{background:var(--competition-taca-liga-fill);color:var(--competition-taca-liga-text)}.badge-supertaca{background:var(--competition-supertaca-fill);color:var(--competition-supertaca-text)}.badge-europa{background:var(--competition-europa-fill);color:var(--competition-europa-text)}.badge-status-scheduled{background:var(--surface-overlay);color:var(--text-secondary)}.badge-status-locked{background:var(--state-draw-fill);color:var(--state-draw-text)}.badge-status-finished{background:var(--state-correct-fill);color:var(--state-correct-text)}.badge-status-voided{background:var(--state-incorrect-fill);color:var(--state-incorrect-text)}.badge-joker{background:var(--surface-joker);color:var(--text-on-joker)}.diff-list{flex-direction:column;gap:8px;display:flex}.diff-row{border:1px solid var(--border-default);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.diff-row-info{flex-direction:column;gap:4px;display:flex}.muted{color:var(--text-secondary);font-size:14px}@media (width<=480px){.app-main{padding:16px}.app-header{padding:12px 16px}}
