/* Gate 1: shared player navigation and Today/Profile only. */
.app{--g1-line:var(--line);--g1-card:var(--card);--g1-accent:var(--accent);--g1-soft:var(--soft);--g1-muted:var(--muted);display:flex;flex-direction:column;min-height:100dvh;min-width:0}.app .rail{position:relative;inset:auto;display:flex;flex-direction:row;align-items:center;gap:28px;width:100%;padding:18px 28px;border-right:0;border-bottom:1px solid var(--line)}.app .brand{padding:0;flex:none}.app .desktop-nav{display:flex;gap:6px;flex:1;min-width:0}.app .desktop-nav .nav-button{width:auto;min-height:48px;padding:10px 14px;font-size:14px;box-shadow:none}.app .rail-foot{margin:0;font-size:12px}.app .surface{margin-left:0;min-width:0;width:100%}.app .topbar{position:relative;height:auto;min-height:84px;padding:18px 32px}.app .topbar h1{font-size:24px}.app .content{max-width:1440px;margin:auto;padding:28px 32px 60px;gap:24px;min-width:0}.app .mobile-nav{display:none}.app .eyebrow{font-size:12px}.app .g1-today-hero{padding:28px;gap:24px}.app .g1-today-hero h2{font-size:clamp(2.5rem,5vw,4rem)}.app .g1-today-hero .primary{min-height:52px}.app .g1-today-top .next-game{display:flex;flex-wrap:wrap;gap:18px}.app .g1-today-top .next-game>div{min-width:0}.app .next-game h3{overflow-wrap:anywhere}.app .most-used-main{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}.app .g1-style{display:flex;align-items:start;gap:12px;margin:12px 0;padding:14px;border:1px solid var(--line);border-radius:10px}.app .g1-style input{width:22px;height:22px;flex:none}.app .g1-style span{display:grid;gap:8px}.app .g1-style small{font-size:14px;color:var(--muted)}.app .g1-identity-editor{display:grid;gap:16px}.app .g1-identity-editor fieldset{min-width:0;border:0;padding:0}.app .g1-identity-editor legend{font-weight:700;font-size:18px}.app .g1-player-card .primary{min-height:48px}.app .profile-results-heading h2{font-size:24px}.app .top-actions .quiet{min-height:44px;font-size:14px}.app .g1-readiness button{font-weight:500}
@media(max-width:1100px) and (min-width:761px){.app .rail{gap:14px;flex-wrap:wrap}.app .rail-foot{display:none}.app .desktop-nav .nav-button{padding-inline:12px}}
@media(max-width:760px){.app .rail{display:none}.app .topbar{min-height:72px;padding:14px;gap:12px}.app .topbar h1{font-size:22px}.app .topbar .eyebrow{font-size:12px}.app .content{padding:18px 14px calc(150px + env(safe-area-inset-bottom));gap:18px}.app .g1-today-hero{padding:22px}.app .g1-today-hero .button-row{width:100%}.app .g1-today-hero .primary{flex:1 1 100%}.app .most-used-main{grid-template-columns:minmax(0,1fr)}.app .mobile-nav{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:8px 3px calc(8px + env(safe-area-inset-bottom));gap:2px;background:var(--bg);z-index:10}.app .mobile-nav .nav-button{min-height:60px;font-size:14px;line-height:1.25;min-width:0;gap:5px;padding:6px 2px}.app .mobile-nav .nav-button span{white-space:normal;overflow-wrap:anywhere}.app .top-actions .quiet{font-size:14px}.app .g1-month .eyebrow{font-size:12px}.app .g1-identity-editor .button-row>*{min-height:48px}}
@media(max-width:350px){.app .content{padding-inline:10px}.app .topbar{padding:12px 10px;gap:8px}.app .mobile-nav .nav-button{font-size:13px}.app .top-actions .demo-pill{display:none}}
@media(max-width:760px){body:has(input:focus,textarea:focus,select:focus,[contenteditable=true]:focus) .app .mobile-nav{display:none}}
/* Gate 1: graphite player workspace. Existing accent and data contracts remain authoritative. */
.g1-player-card{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:24px;padding:28px;border:1px solid var(--g1-line);border-radius:18px;background:linear-gradient(125deg,var(--g1-soft),var(--g1-card) 65%);min-width:0}
.g1-player-details{min-width:0}.g1-player-details h2{font-size:clamp(2rem,5vw,3.5rem);line-height:1.08;overflow-wrap:anywhere;margin:10px 0 16px}.g1-player-details p{font-size:1rem;line-height:1.6;max-width:56ch}.g1-player-details>strong{color:var(--g1-accent);font-size:1.15rem}
.g1-flag-panel{width:100%;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:12px;padding:24px;border:1px solid var(--g1-line);border-radius:12px;background:var(--g1-card)}.g1-flag-panel strong{font-size:clamp(1.5rem,3vw,2.5rem);line-height:1.15;overflow-wrap:anywhere}.g1-flag-panel p{margin:0;font-size:1rem;line-height:1.5;color:var(--g1-muted)}
.g1-today-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:stretch}.g1-today-top>*{margin:0;min-width:0}.g1-month header{display:flex;justify-content:space-between;align-items:start;gap:16px;flex-wrap:wrap}.g1-month h3{margin:6px 0 12px}.g1-month ul{list-style:none;margin:0;padding:0}.g1-month li+li{border-top:1px solid var(--g1-line)}.g1-month li button{display:grid;grid-template-columns:5rem minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:58px;text-align:left;background:none;color:inherit;border:0;border-radius:6px;padding:12px 0;cursor:pointer}.g1-month li strong{overflow-wrap:anywhere}.g1-month li span{font-size:.875rem;color:var(--g1-muted)}.g1-month li span:last-child{color:var(--g1-accent)}.g1-count{color:var(--g1-accent);font-weight:700}
.g1-readiness{display:flex;flex-wrap:wrap;gap:12px}.g1-readiness>button{display:flex;gap:12px;align-items:center;flex:1 1 140px;min-width:0;min-height:64px;text-align:left;padding:14px 18px;border:1px solid var(--g1-line);border-radius:12px;background:var(--g1-card);color:inherit}.g1-readiness strong{font-size:1.7rem;color:var(--g1-accent)}.g1-readiness span{font-size:1rem}.g1-readiness small{color:var(--g1-muted);font-size:.875rem}.g1-history-periods{border:1px solid var(--g1-line);border-radius:12px;padding:18px;background:var(--g1-card)}.g1-history-periods>summary{min-height:44px;cursor:pointer;font-weight:700;font-size:1rem}.g1-profile-heading{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center}
@media(max-width:760px){.g1-player-card,.g1-today-top{grid-template-columns:minmax(0,1fr)}.g1-player-card{padding:20px;gap:20px}.g1-flag-panel{min-height:150px;padding:20px}.g1-month li button{grid-template-columns:4.7rem minmax(0,1fr)}.g1-month li span:last-child{grid-column:2}.g1-readiness small{display:none}}
