:root{--color-primary: #ed1c24;--color-primary-dark: #b80f17;--color-ink: #18191b;--color-muted: #62676f;--color-line: #dedfe2;--color-canvas: #f4f4f1;--color-panel: #ffffff;--color-danger: #b42318;--shadow-soft: 0 12px 36px rgb(25 25 25 / 8%);color:var(--color-ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none}*{box-sizing:border-box}html{min-width:320px;background:var(--color-canvas)}body{min-width:320px;min-height:100vh;margin:0;background:var(--color-canvas)}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.62}a{color:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.035em}h1{margin-bottom:.5rem;font-size:clamp(2rem,4vw,3.25rem);line-height:1}h2{margin-bottom:.35rem;font-size:1.35rem;line-height:1.12}h3{margin-bottom:.45rem;font-size:1rem}input,select{width:100%;min-height:2.7rem;border:1px solid #c9cbd0;border-radius:.5rem;background:#fff;color:var(--color-ink);outline:none;padding:.55rem .7rem;transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #ed1c2424}label{display:grid;gap:.38rem;color:#35383c;font-size:.86rem;font-weight:720}.eyebrow{margin-bottom:.45rem;color:var(--color-primary);font-size:.72rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.muted{color:var(--color-muted);line-height:1.5}.button{display:inline-flex;min-height:2.7rem;align-items:center;justify-content:center;border:1px solid var(--color-primary);border-radius:.5rem;background:var(--color-primary);color:#fff;font-size:.9rem;font-weight:760;padding:.55rem .9rem;text-decoration:none;transition:background .15s ease,border-color .15s ease,transform .15s ease}.button:hover:not(:disabled){border-color:var(--color-primary-dark);background:var(--color-primary-dark);transform:translateY(-1px)}.button--quiet{border-color:#c9cbd0;background:transparent;color:#363a40}.button--quiet:hover:not(:disabled){border-color:#93989f;background:#f4f4f5;color:var(--color-ink)}.button--danger{border-color:var(--color-danger);background:var(--color-danger)}.button--danger:hover:not(:disabled){border-color:#8f1d14;background:#8f1d14}.button--small{min-height:2.15rem;border-radius:.42rem;font-size:.79rem;padding:.35rem .65rem}.button--wide{width:100%}.text-button{border:0;background:transparent;color:#3c4147;font-size:.84rem;font-weight:700;padding:.2rem;text-decoration:underline;text-underline-offset:3px}.text-button:hover{color:var(--color-primary)}.text-button--danger{color:var(--color-danger)}.form-error,.field-error{color:var(--color-danger);font-size:.85rem;font-weight:650;line-height:1.35}.form-error{margin:.6rem 0 0}.field-error{display:block}.form-success{margin:.65rem 0 0;color:#167443;font-size:.86rem;font-weight:700}.notice{border-radius:.65rem;padding:.9rem 1rem}.notice--error{border:1px solid #f1b8b8;background:#fff4f4;color:#8f1d14}.loading-state{color:var(--color-muted);padding:2rem 0}.empty-state{border:1px dashed #bfc2c7;border-radius:.8rem;background:#ffffff9e;color:var(--color-muted);padding:2.1rem;text-align:center}.empty-state h2,.empty-state h3{color:var(--color-ink)}.empty-inline{color:var(--color-muted);font-size:.9rem}.app-logo{display:inline-flex;align-items:center;gap:.62rem}.app-logo img{width:2.2rem;height:2.2rem;border-radius:.42rem;object-fit:contain}.app-logo__text{color:var(--color-ink);font-size:1rem;font-weight:840;letter-spacing:-.04em}.app-logo--large{gap:0}.app-logo--large img{width:5rem;height:5rem;border-radius:.8rem;box-shadow:0 9px 20px #0000001a}.login-page{display:grid;min-height:100vh;place-items:center;overflow:hidden;background:#18191b;padding:1.25rem;position:relative}.login-page:before{width:min(68vw,55rem);height:min(68vw,55rem);border-radius:50%;background:var(--color-primary);content:"";filter:blur(1px);opacity:.94;position:absolute;right:-24rem;top:-31rem}.login-page:after{width:20rem;height:20rem;border:1px solid rgb(255 255 255 / 14%);border-radius:50%;content:"";position:absolute;bottom:-10rem;left:-7rem}.login-card{width:min(100%,29rem);display:grid;gap:1.5rem;border:1px solid #e2e3e5;border-radius:1.1rem;background:#fff;box-shadow:0 25px 70px #00000047;padding:clamp(1.5rem,5vw,2.6rem);position:relative;z-index:1}.stack-form{display:grid;gap:1rem}.login-public-link{color:var(--color-muted);font-size:.88rem;text-align:center;text-underline-offset:4px}.admin-layout{min-height:100vh}.admin-header{width:100%;min-height:4.6rem;display:flex;align-items:center;gap:1.7rem;border-bottom:1px solid var(--color-line);background:#fffffff0;padding:.65rem clamp(1rem,4vw,4rem);position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.admin-brand{display:inline-flex;flex:0 0 auto;text-decoration:none}.admin-nav{display:flex;min-width:0;align-self:stretch;align-items:stretch;gap:.2rem}.admin-nav a{display:inline-flex;align-items:center;border-bottom:3px solid transparent;color:#686d74;font-size:.9rem;font-weight:730;padding:.1rem .72rem;text-decoration:none;white-space:nowrap}.admin-nav a.router-link-active{border-bottom-color:var(--color-primary);color:var(--color-ink)}.logout-button{margin-left:auto;border:0;background:transparent;color:#565c63;font-size:.84rem;font-weight:720;padding:.5rem 0;white-space:nowrap}.logout-button:hover{color:var(--color-primary)}.admin-main{width:min(100% - 2rem,76rem);margin:0 auto;padding:clamp(1.7rem,4vw,3.8rem) 0 4rem}.admin-page{display:grid;gap:1.5rem}.page-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem}.page-heading p:last-child{margin-bottom:0}.panel{border:1px solid #e0e1e3;border-radius:.9rem;background:var(--color-panel);box-shadow:0 5px 18px #19191908;padding:clamp(1.1rem,3vw,1.65rem)}.panel>:last-child{margin-bottom:0}.team-create-panel,.settings-panel,.import-panel,.final-config{display:grid;gap:1.05rem}.inline-form{display:flex;align-items:end;gap:.8rem}.inline-form>label{min-width:8rem}.inline-form__grow{flex:1 1 18rem}.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));gap:1rem}.team-card{min-height:16.2rem;border:1px solid #e1e2e4;border-radius:.8rem;background:#fff;padding:1.2rem}.team-card__heading,.section-heading{display:flex;align-items:start;justify-content:space-between;gap:1rem}.team-card h2{font-size:1.45rem}.team-number,.game-number{margin-bottom:.3rem;color:var(--color-primary);font-size:.73rem;font-weight:820;letter-spacing:.1em;text-transform:uppercase}.icon-actions{display:flex;gap:.35rem}.team-card__players{border-top:1px solid #e7e7e9;margin-top:1.1rem;padding-top:.95rem}.team-card__players h3{display:flex;justify-content:space-between;color:#4c5158;font-size:.83rem;letter-spacing:.02em;text-transform:uppercase}.team-card__players h3 span{display:inline-grid;width:1.35rem;height:1.35rem;place-items:center;border-radius:50%;background:#f1f1f1;font-size:.72rem}.player-list{display:grid;gap:.1rem;margin:0 0 .8rem;padding:0;list-style:none}.player-list li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.35rem;font-size:.9rem;padding:.33rem .1rem}.player-list li:hover{background:#fafafa}.player-actions{display:flex;gap:.25rem}.player-add,.player-edit{display:flex;align-items:center;gap:.4rem}.player-add input,.player-edit input{min-height:2.15rem}.team-edit-form{display:grid;gap:.75rem}.card-actions{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1rem}.file-picker{width:fit-content;position:relative}.file-picker span{display:inline-flex;min-height:2.7rem;align-items:center;border:1px dashed #8e939a;border-radius:.5rem;background:#fafafa;color:#33373c;padding:.55rem .85rem}.file-picker:hover span{border-color:var(--color-primary);color:var(--color-primary)}.file-picker input{width:1px;height:1px;clip:rect(0 0 0 0);overflow:hidden;position:absolute}.validation-list,.warning-list{display:grid;gap:.45rem;border-radius:.55rem;margin:0;padding:.8rem 1rem .8rem 2rem}.validation-list{border:1px solid #f1b8b8;background:#fff4f4;color:#8f1d14}.warning-list{border:1px solid #f3d396;background:#fff9e9;color:#805600;font-size:.88rem}.csv-preview{display:grid;gap:1rem;border-top:1px solid var(--color-line);margin-top:.4rem;padding-top:1.2rem}.preview-summary{display:flex;align-items:baseline;gap:.7rem}.preview-summary strong{font-size:1.12rem}.preview-summary span{color:var(--color-muted);font-size:.9rem}.calendar-current,.classification-section,.bracket-section{display:grid;gap:1rem;margin-top:1rem}.calendar-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem}.calendar-groups--preview{max-height:33rem;overflow:auto;padding-right:.2rem}.round-card{border:1px solid #e2e3e6;border-radius:.65rem;background:#fff;overflow:hidden}.round-card h3{border-bottom:1px solid #e7e7e9;background:#f7f7f6;margin:0;padding:.75rem .85rem}.round-card ol{display:grid;gap:.7rem;margin:0;padding:.85rem .85rem 1rem 2.2rem}.round-card li{color:#3b3e43;font-size:.88rem;line-height:1.35}.round-card li b{color:var(--color-primary);font-size:.74rem;margin:0 .25rem;text-transform:uppercase}.round-card .game-number{display:block;color:#838891;font-size:.63rem;margin-bottom:.15rem}.result-rounds{display:grid;gap:1.1rem}.result-round{display:grid;gap:1rem}.result-editor{border-top:1px solid #ececee;padding-top:1rem}.result-editor:first-of-type{border-top:0;padding-top:0}.score-entry{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:.55rem}.score-entry__team{display:grid;grid-template-columns:minmax(0,1fr) 3.4rem;align-items:center;gap:.6rem}.score-entry__team--away{grid-template-columns:3.4rem minmax(0,1fr);text-align:right}.score-entry__team span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-entry__team b{display:inline-grid;width:1.25rem;height:1.25rem;place-items:center;border-radius:.25rem;background:#ececed;font-size:.68rem;margin-right:.38rem}.score-entry__team input{min-height:2.65rem;font-size:1.25rem;font-weight:800;padding:.25rem;text-align:center}.score-separator{color:#757a82;font-size:1.25rem;font-weight:700;padding-bottom:.45rem}.result-editor__actions{display:flex;gap:.5rem;justify-content:end;margin-top:.75rem}.table-scroll{width:100%;overflow-x:auto}.classification-table{width:100%;min-width:42rem;border-collapse:collapse;background:#fff;font-size:.9rem}.classification-table th{border-bottom:2px solid #d9dbde;color:#656a71;font-size:.7rem;font-weight:820;letter-spacing:.05em;padding:.6rem .45rem;text-align:center;text-transform:uppercase;white-space:nowrap}.classification-table th:nth-child(2){text-align:left}.classification-table td{border-bottom:1px solid #e7e8e9;padding:.68rem .45rem;text-align:center}.classification-table tbody tr:last-child td{border-bottom:0}.classification-table tbody tr:nth-child(odd){background:#fafafa}.classification-table__position{color:var(--color-primary);font-weight:820}.classification-table__team{min-width:13rem;font-weight:720;text-align:left!important}.classification-table__team span{color:#747980;font-size:.75rem;font-weight:800;margin-right:.45rem}.classification-table__points{font-weight:850}.modal-backdrop{display:grid;place-items:center;background:#0f0f1085;top:0;right:0;bottom:0;left:0;padding:1rem;position:fixed;z-index:50}.modal{width:min(100%,31rem);border-radius:.9rem;background:#fff;box-shadow:0 25px 70px #0000004d;padding:clamp(1.25rem,5vw,1.8rem)}.modal h2{font-size:1.55rem}.modal__body{color:#3e4349;line-height:1.5}.modal__body p:last-child{margin-bottom:0}.modal__actions{display:flex;justify-content:end;gap:.6rem;margin-top:1.5rem}.seed-panel{display:grid;gap:1rem}.seed-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.75rem}.seed-match{display:grid;gap:.7rem;border:1px solid #e0e1e3;border-radius:.65rem;background:#fafafa;padding:.85rem}.seed-match h3{color:#4f545b;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}.bracket-scroll{width:100%;border:1px solid #dddedf;border-radius:.8rem;background:linear-gradient(115deg,#f7f7f6,#fff);overflow-x:auto;overscroll-behavior-x:contain;padding:1.1rem}.bracket-grid{display:grid;grid-auto-columns:minmax(15.8rem,18rem);grid-auto-flow:column;align-items:stretch;gap:4rem;min-width:max-content}.bracket-column{display:flex;flex-direction:column;min-height:100%}.bracket-column>h3{border-bottom:2px solid var(--color-primary);color:#535860;font-size:.74rem;font-weight:850;letter-spacing:.09em;margin-bottom:.8rem;padding-bottom:.5rem;text-transform:uppercase}.bracket-match-list{display:flex;min-height:14rem;flex:1;flex-direction:column;justify-content:space-around;gap:1.2rem}.bracket-match{border:1px solid #dcdde0;border-radius:.55rem;background:#fff;box-shadow:0 4px 12px #0000000a;padding:.55rem;position:relative}.bracket-column:not(:last-child) .bracket-match:after{width:2.05rem;border-top:2px solid #aeb2b7;content:"";position:absolute;right:-2.12rem;top:50%}.bracket-column:not(:first-child) .bracket-match:before{width:2.05rem;border-top:2px solid #aeb2b7;content:"";position:absolute;left:-2.12rem;top:50%}.bracket-match__number{color:#868b92;font-size:.63rem;font-weight:780;letter-spacing:.07em;margin:0 0 .34rem;text-transform:uppercase}.bracket-team{min-height:2.25rem;display:grid;grid-template-columns:minmax(0,1fr) 2rem;align-items:center;border-top:1px solid #ececee;gap:.35rem;font-size:.82rem;padding:.35rem 0}.bracket-team:first-of-type{border-top:0}.bracket-team span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bracket-team b{display:inline-block;color:#73787f;font-size:.68rem;margin-right:.35rem}.bracket-team strong{color:#3d4147;font-size:1.05rem;text-align:center}.bracket-team input{width:2rem;min-height:1.8rem;border-radius:.3rem;font-size:.95rem;font-weight:800;padding:.1rem;text-align:center}.bracket-team--winner{color:var(--color-primary);font-weight:820}.bracket-team--winner strong{color:var(--color-primary)}.bracket-match__bye{color:#757a81;font-size:.71rem;font-style:italic;margin:.4rem 0 0;text-align:center}.bracket-match__actions{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.55rem}.bracket-match .form-error,.bracket-match .form-success{font-size:.73rem}.champion-card{width:fit-content;min-width:min(100%,18rem);border:2px solid var(--color-primary);border-radius:.7rem;background:#fff;margin:1.25rem auto 0;padding:1.15rem 2rem;text-align:center}.champion-card p{color:var(--color-primary);font-size:.7rem;font-weight:850;letter-spacing:.12em;margin-bottom:.3rem;text-transform:uppercase}.champion-card strong{font-size:1.45rem}.public-page{min-height:100vh;background:#f8f8f6}.public-hero{min-height:min(38vw,23rem);display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(1rem,4vw,4rem);overflow:hidden;background:#191a1c;color:#fff;padding:clamp(1.5rem,5vw,4.5rem) max(1.25rem,calc((100vw - 84rem)/2));position:relative}.public-hero:after{width:min(42vw,40rem);height:min(42vw,40rem);border:3rem solid rgb(237 28 36 / 95%);border-radius:50%;content:"";position:absolute;right:-18rem;top:-22rem}.public-hero .app-logo{position:relative;z-index:1}.public-hero__title{min-width:0;position:relative;z-index:1}.public-hero__title .eyebrow{color:#ffa1a5}.public-hero h1{max-width:21ch;font-size:clamp(2.3rem,6vw,5.5rem);margin:0;overflow-wrap:anywhere}.live-status{display:inline-flex;align-items:center;gap:.5rem;align-self:start;border:1px solid rgb(255 255 255 / 18%);border-radius:999px;background:#ffffff17;font-size:.77rem;font-weight:730;padding:.45rem .7rem;position:relative;white-space:nowrap;z-index:1}.live-status__dot{width:.48rem;height:.48rem;border-radius:50%;background:#58df9a;box-shadow:0 0 0 .2rem #58df9a1f}.live-status--waiting .live-status__dot{background:#ffbd4a;box-shadow:0 0 0 .2rem #ffbd4a1f}.public-loading,.public-unavailable{width:min(100% - 2rem,40rem);border-radius:.85rem;background:#fff;box-shadow:var(--shadow-soft);margin:3rem auto;padding:2rem;text-align:center}.public-unavailable{display:grid;gap:.7rem}.public-unavailable h2{font-size:1.5rem}.public-unavailable p{color:var(--color-muted)}.public-content{width:min(100% - 2rem,84rem);margin:0 auto;padding:clamp(2rem,6vw,5.5rem) 0}.updated-at{color:#848991;font-size:.75rem;margin:0 0 .5rem;text-align:right}.public-offline-notice{border:1px solid #f4d798;border-radius:.5rem;background:#fff9e9;color:#805600;font-size:.86rem;margin:0 0 1.4rem;padding:.75rem .85rem}.public-section{border-top:1px solid #d9dbdc;padding:clamp(2rem,5vw,4.5rem) 0}.public-section__heading{margin-bottom:clamp(1.2rem,3vw,2.2rem)}.public-section__heading h2{font-size:clamp(1.8rem,3.2vw,3.15rem);margin:0}.public-rounds{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:1.2rem}.public-round{border:1px solid #e0e1e2;border-radius:.8rem;background:#fff;overflow:hidden}.public-round h3{border-bottom:2px solid var(--color-primary);color:#40454b;font-size:.83rem;letter-spacing:.08em;margin:0;padding:.95rem 1rem;text-transform:uppercase}.public-match{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;border-top:1px solid #eeeff0;gap:.6rem;padding:.85rem 1rem}.public-match:first-of-type{border-top:0}.public-match__team{min-width:0;font-size:clamp(.92rem,1.4vw,1.08rem);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.public-match__team--away{text-align:right}.public-match__team b{display:inline-grid;width:1.28rem;height:1.28rem;place-items:center;border-radius:.25rem;background:#f0f0f0;color:#6e737a;font-size:.67rem;margin-right:.34rem;vertical-align:1px}.public-match__team--away b{margin-left:.34rem;margin-right:0}.public-match__score{min-width:4rem;color:var(--color-primary);font-size:clamp(1.15rem,2.2vw,1.6rem);letter-spacing:-.04em;text-align:center}.public-match__score i{color:#989da4;font-style:normal;margin:0 .12rem}.public-empty{border:1px dashed #c9cbd0;border-radius:.65rem;background:#fff;color:#737880;padding:1.2rem;text-align:center}.public-section .classification-table{font-size:clamp(.86rem,1.3vw,1.02rem)}.public-section .classification-table th{font-size:.68em}.public-section--final{padding-bottom:3rem}.public-section .bracket-scroll{border-color:#d7d9da;background:#fff;box-shadow:var(--shadow-soft);padding:clamp(1rem,3vw,2rem)}.public-section .bracket-grid{grid-auto-columns:minmax(17rem,20rem);gap:4.5rem}.public-section .bracket-team{font-size:.91rem;min-height:2.5rem}.public-section .bracket-team strong{font-size:1.25rem}.public-champion{display:grid;justify-items:center;border-radius:1rem;background:var(--color-primary);box-shadow:0 14px 30px #b90f1738;color:#fff;margin-top:1.5rem;padding:clamp(2rem,6vw,4.5rem) 1.5rem;position:relative;text-align:center}.public-champion:before{width:4.5rem;height:4.5rem;border:2px solid rgb(255 255 255 / 55%);border-radius:50%;content:"";position:absolute;top:-2.25rem}.public-champion p{font-size:.78rem;font-weight:850;letter-spacing:.16em;margin:0 0 .5rem;text-transform:uppercase}.public-champion strong{font-size:clamp(2rem,5vw,4rem);letter-spacing:-.05em}@media(max-width:760px){.admin-header{gap:.7rem;padding:.6rem 1rem}.admin-brand .app-logo__text{display:none}.admin-nav{flex:1;overflow-x:auto}.admin-nav a{padding:.1rem .45rem}.logout-button{font-size:0}.logout-button:after{content:"Sair";font-size:.84rem}.inline-form{align-items:stretch;flex-direction:column}.inline-form>label{min-width:0}.inline-form .button{width:100%}.score-entry{gap:.3rem}.score-entry__team{grid-template-columns:minmax(0,1fr) 2.75rem;gap:.35rem}.score-entry__team--away{grid-template-columns:2.75rem minmax(0,1fr)}.score-entry__team input{font-size:1.1rem}.score-entry__team span{font-size:.82rem}.score-entry__team b{display:none}.modal__actions{flex-direction:column-reverse}.modal__actions .button{width:100%}.public-hero{grid-template-columns:auto 1fr;min-height:17rem}.public-hero .app-logo--large img{width:3.8rem;height:3.8rem}.live-status{grid-column:1 / -1;justify-self:start}.public-match{gap:.35rem;padding:.75rem}.public-match__team b{display:none}.public-section .bracket-grid{grid-auto-columns:minmax(15.5rem,17rem);gap:3.2rem}.bracket-column:not(:last-child) .bracket-match:after{width:1.65rem;right:-1.72rem}.bracket-column:not(:first-child) .bracket-match:before{width:1.65rem;left:-1.72rem}}@media(max-width:430px){.admin-main{width:min(100% - 1.25rem,76rem)}.admin-nav a{font-size:.8rem}.team-card{padding:1rem}.player-list li{align-items:start;flex-direction:column}.player-actions{margin-left:-.2rem}.public-content{width:min(100% - 1.25rem,84rem)}.public-hero{padding-left:1.25rem;padding-right:1.25rem}.public-hero h1{font-size:2.2rem}}
