/* LogiSim gamefeel skin — visual inspirado no mockup aprovado, preservando Violet Grid */
body[data-auth="student"]{--game-violet:#7c4dff;--game-violet-2:#9b7bff;--game-cyan:#35c9ff;--game-green:#28d99a;--game-amber:#ffb547;--game-red:#ff5f7a;--game-pink:#ff72c8;--game-panel:color-mix(in srgb,var(--surface-elevated) 94%,#101226);--game-panel-2:color-mix(in srgb,var(--surface) 92%,#12162d);background:radial-gradient(circle at 18% -5%,color-mix(in srgb,var(--primary) 22%,transparent),transparent 32%),radial-gradient(circle at 84% 8%,color-mix(in srgb,var(--secondary) 14%,transparent),transparent 30%),linear-gradient(180deg,color-mix(in srgb,var(--background) 96%,#0d1020),var(--background));}
[data-theme=dark] body[data-auth="student"]{--game-panel:#11162b;--game-panel-2:#151b34;background:radial-gradient(circle at 15% -4%,rgba(124,77,255,.24),transparent 34%),radial-gradient(circle at 88% 14%,rgba(53,201,255,.09),transparent 30%),linear-gradient(180deg,#090d1b 0,#0b1020 42%,#090d19 100%)}
body[data-auth="student"]:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background-image:linear-gradient(rgba(124,77,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(124,77,255,.035) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.8),transparent 78%)}

/* Top game bar */
body[data-auth="student"] .log-topbar{min-height:64px;padding:8px max(12px,calc((100vw - 1340px)/2));background:color-mix(in srgb,var(--game-panel) 92%,transparent);border-bottom-color:color-mix(in srgb,var(--primary) 28%,var(--border));box-shadow:0 8px 30px rgba(0,0,0,.12);backdrop-filter:blur(18px)}
body[data-auth="student"] .log-brand{min-width:max-content}.log-brand strong{font-size:1.02rem;letter-spacing:-.02em}.log-brand small{font-size:.62rem;letter-spacing:.035em}.log-logo{border:1px solid rgba(255,255,255,.18);background:linear-gradient(145deg,#a889ff,#6840e8);box-shadow:0 0 0 1px rgba(124,77,255,.26),0 8px 24px rgba(88,52,190,.3)}.log-logo svg{width:25px;height:25px}
.log-game-nav{display:flex;align-items:center;gap:4px;margin:0 auto}.log-game-nav button{appearance:none;border:0;background:transparent;color:var(--text-secondary);padding:9px 11px;border-radius:10px;font:800 .72rem inherit;display:flex;align-items:center;gap:7px;cursor:pointer;transition:.16s}.log-game-nav button:hover{background:color-mix(in srgb,var(--primary) 10%,var(--surface));color:var(--text-primary)}.log-game-nav button.is-active{background:color-mix(in srgb,var(--primary) 16%,var(--surface));color:var(--primary);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 36%,transparent)}.log-game-nav svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8}
#logisimSfxToggle{position:relative}#logisimSfxToggle.is-muted{opacity:.62}#logisimSfxToggle.is-muted:after{content:"";position:absolute;width:25px;height:2px;background:var(--danger);transform:rotate(-42deg);border-radius:999px}

/* Main layout */
body[data-auth="student"] .log-shell{width:min(1340px,calc(100% - 24px));padding-top:14px}.player-strip{border-color:color-mix(in srgb,var(--primary) 18%,var(--border));background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 7%,var(--game-panel)),var(--game-panel));box-shadow:0 12px 34px rgba(0,0,0,.09)}.player-status,.campaign-control label{background:var(--game-panel-2)}
.company-dashboard{display:grid;grid-template-columns:minmax(0,1fr);gap:0}.company-hero{min-height:190px;padding:24px 42% 24px 26px;align-items:center;border-color:color-mix(in srgb,var(--primary) 24%,var(--border));background:linear-gradient(112deg,color-mix(in srgb,var(--primary) 11%,var(--game-panel)) 0,color-mix(in srgb,var(--game-panel) 97%,transparent) 58%,rgba(8,10,24,.22)),url('/logisim/assets/logisim-warehouse-scene.svg') right center/46% auto no-repeat;box-shadow:0 18px 44px rgba(0,0,0,.12)}.company-hero:before{content:"MISSÃO ATIVA";position:absolute;right:24px;top:18px;padding:5px 8px;border-radius:999px;background:rgba(13,16,36,.76);border:1px solid rgba(177,151,255,.34);color:#d7ccff;font-size:.56rem;letter-spacing:.12em;font-weight:950}.company-hero:after{display:none}.company-title-line h1{font-size:clamp(2rem,4vw,3.15rem)}.company-icon{background:linear-gradient(145deg,color-mix(in srgb,var(--primary) 18%,var(--surface)),var(--surface));border-color:color-mix(in srgb,var(--primary) 35%,var(--border));box-shadow:0 10px 25px color-mix(in srgb,var(--primary) 14%,transparent)}.company-badges{justify-content:flex-start}.company-badges span{background:color-mix(in srgb,var(--game-panel-2) 92%,transparent);border-color:color-mix(in srgb,var(--primary) 19%,var(--border))}

/* KPI cards — status chips instead of dashboard tiles */
.game-kpis{gap:9px}.game-kpis article{min-height:105px;padding:14px 15px 13px 62px;border-radius:15px;background:linear-gradient(145deg,var(--game-panel),color-mix(in srgb,var(--game-panel-2) 92%,transparent));border-color:color-mix(in srgb,var(--kpi-accent,var(--primary)) 34%,var(--border));box-shadow:0 10px 26px rgba(0,0,0,.07);transition:.16s}.game-kpis article:hover{transform:translateY(-2px);box-shadow:0 15px 34px color-mix(in srgb,var(--kpi-accent,var(--primary)) 12%,transparent)}.game-kpis article:nth-child(1){--kpi-accent:var(--game-green)}.game-kpis article:nth-child(2){--kpi-accent:var(--game-violet-2)}.game-kpis article:nth-child(3){--kpi-accent:var(--game-pink)}.game-kpis article:nth-child(4){--kpi-accent:var(--game-amber)}.kpi-icon{position:absolute;left:14px;top:16px;width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:color-mix(in srgb,var(--kpi-accent) 15%,var(--surface));color:var(--kpi-accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--kpi-accent) 32%,transparent);font-size:1rem}.game-kpis article:after{width:86px;height:86px;background:radial-gradient(circle,color-mix(in srgb,var(--kpi-accent) 18%,transparent),transparent 68%)}.game-kpis strong{font-size:1.38rem}.game-kpis small{margin-top:0}.game-kpis em{margin-top:5px}.game-kpis em.delta.good{display:inline-flex;width:max-content;padding:2px 6px;border-radius:999px;background:color-mix(in srgb,var(--success) 12%,transparent)}.game-kpis em.delta.bad{display:inline-flex;width:max-content;padding:2px 6px;border-radius:999px;background:color-mix(in srgb,var(--danger) 12%,transparent)}

/* Gameplay HUD */
.gameplay-hud{grid-template-columns:minmax(220px,.72fr) minmax(360px,1.28fr);gap:9px}.gameplay-health,.week-track-wrap,.turn-flow,.week-action{background:linear-gradient(145deg,var(--game-panel),var(--game-panel-2));border-color:color-mix(in srgb,var(--primary) 19%,var(--border));box-shadow:0 10px 26px rgba(0,0,0,.08)}.gameplay-health{position:relative;overflow:hidden}.gameplay-health:after{content:"";position:absolute;inset:auto -38px -52px auto;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--success) 15%,transparent),transparent 70%)}.health-meter{height:10px;background:color-mix(in srgb,var(--text-muted) 13%,transparent);box-shadow:inset 0 1px 4px rgba(0,0,0,.18)}.health-meter i{box-shadow:0 0 13px color-mix(in srgb,var(--success) 45%,transparent)}.week-track{position:relative}.week-track:before{content:"";position:absolute;left:4%;right:4%;top:50%;height:2px;background:color-mix(in srgb,var(--border) 78%,transparent);z-index:0}.week-node{position:relative;z-index:1;border-radius:11px}.week-node.done{box-shadow:0 0 14px color-mix(in srgb,var(--success) 18%,transparent)}.week-node.active{box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 12%,transparent),0 0 20px color-mix(in srgb,var(--primary) 28%,transparent)}.turn-flow article{background:color-mix(in srgb,var(--game-panel-2) 94%,transparent)}.turn-flow article.done{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--success) 12%,transparent)}.week-advance-btn{position:relative;overflow:hidden;background:linear-gradient(135deg,#7c4dff,#5930d9)!important;border-color:#906dff!important;box-shadow:0 10px 26px rgba(104,64,232,.28)}.week-advance-btn:before{content:"";position:absolute;inset:-60% auto -60% -35%;width:28%;transform:rotate(16deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);transition:left .45s ease}.week-advance-btn:hover:before{left:115%}

/* Events become the visual centre of the game */
.week-play,.dynamic-event{position:relative}.week-header,.dynamic-week-head{border-color:color-mix(in srgb,var(--primary) 24%,var(--border));background:linear-gradient(145deg,var(--game-panel),var(--game-panel-2))}.event-card,.dynamic-event-card{position:relative;border-color:color-mix(in srgb,var(--event-accent,var(--game-amber)) 32%,var(--border));background:linear-gradient(145deg,var(--game-panel),var(--game-panel-2));box-shadow:0 18px 46px rgba(0,0,0,.12);overflow:hidden}.event-card:before,.dynamic-event-card:before{content:"";display:block;height:108px;background:radial-gradient(circle at 18% 30%,color-mix(in srgb,var(--event-accent,var(--game-amber)) 34%,transparent),transparent 26%),linear-gradient(120deg,color-mix(in srgb,var(--event-accent,var(--game-amber)) 17%,#161b35),#10152a 72%);border-bottom:1px solid color-mix(in srgb,var(--event-accent,var(--game-amber)) 20%,var(--border))}.event-card:after,.dynamic-event-card:after{content:"";position:absolute;left:26px;top:24px;width:168px;height:60px;background:linear-gradient(30deg,transparent 0 25%,color-mix(in srgb,var(--event-accent,var(--game-amber)) 58%,transparent) 26% 32%,transparent 33% 51%,color-mix(in srgb,var(--event-accent,var(--game-amber)) 28%,transparent) 52% 60%,transparent 61%),linear-gradient(90deg,color-mix(in srgb,var(--event-accent,var(--game-amber)) 12%,transparent),transparent);clip-path:polygon(0 68%,18% 45%,34% 54%,52% 24%,72% 43%,100% 7%,100% 100%,0 100%);filter:drop-shadow(0 0 9px color-mix(in srgb,var(--event-accent,var(--game-amber)) 40%,transparent));opacity:.9;pointer-events:none}.event-copy{background:transparent}.event-kicker{color:var(--event-accent,var(--game-amber))}.week-play[data-event-family="stock"],.dynamic-event[data-event-family="stock"]{--event-accent:var(--game-amber)}.week-play[data-event-family="transport"],.dynamic-event[data-event-family="transport"]{--event-accent:var(--game-cyan)}.week-play[data-event-family="demand"],.dynamic-event[data-event-family="market"]{--event-accent:var(--game-pink)}.week-play[data-event-family="integrated"],.dynamic-event[data-event-family="integrated"]{--event-accent:var(--game-red)}.week-play[data-event-family="operation"],.dynamic-event[data-event-family="operation"]{--event-accent:var(--game-violet-2)}.decision-card,.dynamic-options>button{background:color-mix(in srgb,var(--game-panel-2) 96%,transparent);border-color:color-mix(in srgb,var(--primary) 16%,var(--border))}.decision-card:hover:not(:disabled),.dynamic-options>button:hover:not(:disabled){box-shadow:0 8px 24px color-mix(in srgb,var(--primary) 13%,transparent)}.decision-index,.dynamic-options>button>span{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 24%,transparent)}

/* Operations as game modules */
.operations-grid{gap:9px}.operation-card{min-height:225px;border-color:color-mix(in srgb,var(--module-accent,var(--primary)) 26%,var(--border));background:linear-gradient(150deg,var(--game-panel),var(--game-panel-2));box-shadow:0 12px 30px rgba(0,0,0,.08)}.operation-card:nth-child(1){--module-accent:var(--game-violet-2)}.operation-card:nth-child(2){--module-accent:var(--game-cyan)}.operation-card:nth-child(3){--module-accent:var(--game-green)}.operation-card:before{background:radial-gradient(circle,color-mix(in srgb,var(--module-accent) 18%,transparent),transparent 70%)}.operation-card:hover{border-color:color-mix(in srgb,var(--module-accent) 50%,var(--border));box-shadow:0 16px 38px color-mix(in srgb,var(--module-accent) 11%,transparent)}.operation-icon{background:linear-gradient(145deg,color-mix(in srgb,var(--module-accent) 22%,var(--surface)),var(--surface));color:var(--module-accent);border:1px solid color-mix(in srgb,var(--module-accent) 32%,var(--border));box-shadow:0 7px 18px color-mix(in srgb,var(--module-accent) 15%,transparent)}.micro-data span{background:color-mix(in srgb,var(--game-panel-2) 88%,transparent);border:1px solid color-mix(in srgb,var(--module-accent) 12%,var(--border))}.operation-card .btn{margin-top:2px;background:color-mix(in srgb,var(--module-accent) 12%,var(--surface));border-color:color-mix(in srgb,var(--module-accent) 38%,var(--border));color:var(--text-primary)}

/* Dialogs / minigames */
.inventory-dialog,.transport-dialog,.kpi-dialog,.assessment-dialog,.gameplay-dialog{border-color:color-mix(in srgb,var(--primary) 32%,var(--border));background:var(--game-panel);box-shadow:0 30px 110px rgba(0,0,0,.42)}.inventory-dialog::backdrop,.transport-dialog::backdrop,.kpi-dialog::backdrop,.assessment-dialog::backdrop,.gameplay-dialog::backdrop{background:rgba(5,8,20,.76);backdrop-filter:blur(7px)}.inventory-shell,.transport-shell,.kpi-shell,.assessment-shell,.gameplay-dialog-shell{background:linear-gradient(160deg,color-mix(in srgb,var(--primary) 4%,var(--game-panel)),var(--game-panel))}.stock-item,.fleet-card,.delivery-card,.competency-card,.assessment-ops article{background:var(--game-panel-2)!important}.stock-status.good{box-shadow:0 0 14px color-mix(in srgb,var(--success) 15%,transparent)}.stock-status.danger{box-shadow:0 0 14px color-mix(in srgb,var(--danger) 18%,transparent)}

/* Result and assessment cards */
.week-result,.dynamic-result{position:relative;overflow:hidden;border-color:color-mix(in srgb,var(--success) 45%,var(--border));background:linear-gradient(135deg,color-mix(in srgb,var(--success) 9%,var(--game-panel)),var(--game-panel))}.week-result:after,.dynamic-result:after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-70px;top:-90px;background:radial-gradient(circle,color-mix(in srgb,var(--success) 18%,transparent),transparent 68%)}.assessment-banner{position:relative;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--game-amber) 8%,var(--game-panel)),var(--game-panel));border-color:color-mix(in srgb,var(--game-amber) 34%,var(--border))}.assessment-score-chip{background:linear-gradient(145deg,#211640,#12172b);border:1px solid color-mix(in srgb,var(--game-amber) 38%,transparent);box-shadow:0 0 24px color-mix(in srgb,var(--game-amber) 10%,transparent)}

/* Feedback FX */
#logisimFxLayer{position:fixed;inset:0;z-index:180;pointer-events:none;overflow:hidden}.game-fx-flash{position:absolute;inset:0;opacity:0}.game-fx-flash.positive{background:radial-gradient(circle at 50% 46%,rgba(40,217,154,.18),transparent 55%);animation:fxFlash .72s ease}.game-fx-flash.warning{background:radial-gradient(circle at 50% 46%,rgba(255,181,71,.2),transparent 58%);animation:fxFlash .8s ease}.game-fx-flash.negative{background:radial-gradient(circle at 50% 46%,rgba(255,95,122,.24),transparent 58%);animation:fxFlash .86s ease}.game-fx-vignette{position:absolute;inset:0;box-shadow:inset 0 0 0 0 transparent}.game-fx-vignette.negative{animation:fxDanger .82s ease}.game-fx-vignette.warning{animation:fxWarning .76s ease}.game-confetti{position:absolute;width:7px;height:13px;border-radius:2px;animation:confettiFall 1.15s cubic-bezier(.15,.75,.25,1) forwards;transform:translate(-50%,-50%) rotate(var(--r));background:var(--c)}.game-impact-toast{position:fixed;right:18px;top:82px;z-index:190;max-width:min(370px,calc(100% - 28px));display:grid;grid-template-columns:auto 1fr;gap:10px;padding:13px 15px;border-radius:14px;border:1px solid color-mix(in srgb,var(--fx) 52%,var(--border));background:color-mix(in srgb,var(--fx) 10%,var(--game-panel));box-shadow:0 16px 42px rgba(0,0,0,.25),0 0 24px color-mix(in srgb,var(--fx) 12%,transparent);animation:impactIn .24s ease}.game-impact-toast[data-tone=positive]{--fx:var(--game-green)}.game-impact-toast[data-tone=warning]{--fx:var(--game-amber)}.game-impact-toast[data-tone=negative]{--fx:var(--game-red)}.game-impact-toast[data-tone=neutral]{--fx:var(--game-violet-2)}.game-impact-toast>span{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:color-mix(in srgb,var(--fx) 16%,var(--surface));color:var(--fx);font-weight:950}.game-impact-toast strong,.game-impact-toast small{display:block}.game-impact-toast strong{font-size:.82rem}.game-impact-toast small{margin-top:2px;color:var(--text-secondary);font-size:.7rem;line-height:1.35}
body.game-shake .company-dashboard{animation:gameShake .38s ease}.unlock-burst{animation:unlockBurst .58s ease!important}

@keyframes fxFlash{0%{opacity:0}22%{opacity:1}100%{opacity:0}}@keyframes fxDanger{0%{box-shadow:inset 0 0 0 0 rgba(255,95,122,0)}30%{box-shadow:inset 0 0 90px 18px rgba(255,95,122,.28)}100%{box-shadow:inset 0 0 0 0 rgba(255,95,122,0)}}@keyframes fxWarning{0%{box-shadow:inset 0 0 0 0 rgba(255,181,71,0)}32%{box-shadow:inset 0 0 70px 12px rgba(255,181,71,.2)}100%{box-shadow:inset 0 0 0 0 rgba(255,181,71,0)}}@keyframes confettiFall{0%{opacity:0;transform:translate(var(--x0),-24px) rotate(0)}12%{opacity:1}100%{opacity:0;transform:translate(var(--x1),230px) rotate(540deg)}}@keyframes impactIn{from{opacity:0;transform:translateY(-10px) scale(.97)}to{opacity:1;transform:none}}@keyframes gameShake{0%,100%{transform:none}20%{transform:translateX(-5px)}40%{transform:translateX(4px)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}@keyframes unlockBurst{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--game-violet-2) 0%,transparent)}45%{box-shadow:0 0 0 8px color-mix(in srgb,var(--game-violet-2) 15%,transparent),0 0 30px color-mix(in srgb,var(--game-violet-2) 28%,transparent)}100%{box-shadow:none}}

/* Setup screen closer to the approved visual */
.setup-screen{position:relative;padding:22px;border:1px solid color-mix(in srgb,var(--primary) 25%,var(--border));border-radius:24px;background:linear-gradient(105deg,color-mix(in srgb,var(--primary) 9%,var(--game-panel)),var(--game-panel));overflow:hidden}.setup-screen:after{content:"";position:absolute;right:-40px;top:0;width:43%;height:100%;background:url('/logisim/assets/logisim-warehouse-scene.svg') center/cover no-repeat;opacity:.38;mask-image:linear-gradient(90deg,transparent,black 28%);pointer-events:none}.setup-head,.business-cards,.company-form{position:relative;z-index:1}.setup-head{max-width:690px}.business-cards{grid-template-columns:repeat(3,minmax(0,1fr));max-width:830px}.business-card{min-height:225px;background:linear-gradient(145deg,var(--game-panel-2),color-mix(in srgb,var(--game-panel) 94%,transparent));border-color:color-mix(in srgb,var(--business-accent,var(--primary)) 22%,var(--border))}.business-card[aria-pressed=true]{box-shadow:0 0 0 2px color-mix(in srgb,var(--business-accent,var(--primary)) 28%,transparent),0 0 28px color-mix(in srgb,var(--business-accent,var(--primary)) 15%,transparent)}

@media(max-width:1080px){.log-game-nav{display:none}.company-hero{padding-right:33%;background-size:40% auto}.gameplay-hud{grid-template-columns:1fr 1fr}}
@media(max-width:850px){.company-hero{padding-right:24px;background-image:linear-gradient(135deg,color-mix(in srgb,var(--primary) 11%,var(--game-panel)),var(--game-panel));min-height:auto}.company-hero:before{display:none}.gameplay-hud{grid-template-columns:1fr}.setup-screen:after{opacity:.16;width:70%}.business-cards{grid-template-columns:1fr}.business-card{min-height:180px}}
@media(max-width:620px){body[data-auth="student"] .log-shell{width:calc(100% - 12px)}.log-brand small{display:none}.company-hero{padding:17px}.game-kpis article{padding-left:54px}.kpi-icon{left:10px}.game-impact-toast{right:7px;top:66px;max-width:calc(100% - 14px)}.setup-screen{padding:12px}.setup-head h1{font-size:2.35rem}.business-card{min-height:165px}.event-card:before,.dynamic-event-card:before{height:78px}.event-card:after,.dynamic-event-card:after{top:18px;left:18px;width:128px;height:45px}}
@media(prefers-reduced-motion:reduce){.game-confetti,.game-fx-flash,.game-fx-vignette,body.game-shake .company-dashboard,.unlock-burst,.week-advance-btn:before{animation:none!important;transition:none!important}}
