/* The sidebar holds context. The main column holds the current decision. */
.entry-page{max-width:1100px;min-height:100svh;margin:auto;padding:24px 32px;box-sizing:border-box}
.entry-header{height:40px;display:flex;align-items:center}
.entry-layout{display:grid;grid-template-columns:minmax(340px,440px) minmax(260px,380px);justify-content:center;align-items:center;gap:72px;min-height:calc(100svh - 112px)}
.entry-form{padding:30px}
.entry-form h1{font-size:28px;margin-bottom:24px}
.entry-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;background:var(--pale);border-radius:6px;margin-bottom:20px}
.entry-tabs button{border:0;border-radius:4px;background:transparent;color:var(--muted);padding:8px 4px;font-size:15px;line-height:20px;white-space:nowrap}
.entry-tabs button[aria-selected=true]{background:var(--paper);color:var(--green);box-shadow:0 1px 3px #25362e15}
.entry-context{display:grid;align-items:center;min-height:74px}
.entry-context>*{grid-area:1/1}
.entry-solo-copy{visibility:hidden;font-size:14px;line-height:1.5;color:var(--muted)}
.entry-solo-copy strong{display:block;font-size:15px;font-weight:500;color:var(--ink);margin-bottom:5px}
.solo-entry .entry-code{visibility:hidden;pointer-events:none}
.solo-entry .entry-solo-copy{visibility:visible}
.teacher-password{margin-bottom:20px}
#create-error{min-height:26px;margin-top:12px;color:var(--red);font-size:14px}
#create-form .modal-actions{margin-top:8px}
.entry-form form{display:grid;gap:18px}
.entry-form .field{font-size:15px}
.entry-form input{height:46px;font-size:18px;width:100%}
.entry-form .button{width:100%;height:48px;font-size:16px;justify-content:center}
.room-input{letter-spacing:3px;font-variant-numeric:tabular-nums}
.entry-note{font-size:14px;color:var(--muted);line-height:1.5;margin-top:16px}
.entry-teacher{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);margin-top:22px;padding-top:18px;font-size:14px}
.entry-teacher>span{color:var(--muted)}
.entry-resume{display:block;margin-top:16px;font-size:14px}
.entry-portrait .adviser{position:static;flex-direction:column;border:0;padding:0;gap:10px;background:none}
.entry-portrait .adviser img{width:300px;height:330px}
.entry-portrait .adviser-speech{text-align:center;padding:0}
.entry-portrait .adviser-name{font-size:18px}
.entry-portrait .adviser-name>span{display:none}
.entry-portrait .adviser-quote{font-size:18px;max-width:330px;margin-top:8px}
.sidebar-role{font-size:12px;color:var(--muted);white-space:nowrap}
.lobby-heading{display:flex;justify-content:space-between;align-items:center;gap:32px;margin-bottom:24px}
.lobby-heading>div>span{display:block;font-size:15px;color:var(--muted)}
.room-number{display:block;font-size:52px;font-weight:500;letter-spacing:6px;font-variant-numeric:tabular-nums}
.lobby-heading dl{display:flex;gap:28px}
.lobby-heading dt{font-size:14px;color:var(--muted)}
.lobby-heading dd{font-size:28px;font-weight:500}
.lobby-roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-content:start;height:clamp(180px,calc(100svh - 430px),320px);overflow:auto;padding-top:18px;font-size:16px}
.lobby-roster>span{overflow-wrap:anywhere;padding:9px 0;border-bottom:1px solid var(--line)}
.game-shell{display:grid;grid-template-columns:268px minmax(0,1fr);align-items:start;gap:28px;width:min(1640px,calc(100% - 40px));margin:20px auto}
.sidebar{position:sticky;top:20px;height:calc(100svh - 40px);display:flex;flex-direction:column;min-width:0;padding:22px 18px 16px;background:#eef2eb;border:1px solid var(--line);border-radius:9px}
.sidebar-head{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:8px;padding:0 0 12px;flex-shrink:0}
.sidebar-head .brand strong{font-size:14px}
.sidebar-head .brand img{width:24px;height:24px}
.sidebar-head .brand small{display:none}
.sidebar-head .brand{gap:7px}
.sidebar-head .demo-tools{z-index:9}
.sidebar-head .demo-tools summary{font-size:12px;gap:4px}
.sidebar-head .demo-menu{right:0;left:auto;min-width:210px}
.sidebar-body{display:flex;flex-direction:column;gap:14px;min-height:0;overflow:auto}
.sidebar .game-tabs{display:flex;flex-direction:column;gap:3px;overflow:visible;flex-shrink:0}
.sidebar .game-tabs button{width:100%;text-align:left;min-height:36px;padding:7px 12px;border:0;border-left:3px solid transparent;border-radius:4px;font-size:15px}
.sidebar .game-tabs button.active{background:#dfe9dc;border-left-color:var(--green)}
.sidebar .position-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:12px 0 0;border-top:1px solid var(--line);flex-shrink:0}
.sidebar .position-item{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-height:0;padding:0;font-size:13px}
.sidebar .position-item>span{max-width:142px;line-height:1.4}
.sidebar .position-item strong{font-size:19px;white-space:nowrap}
.sidebar .position-item small{font-size:12px}
.sidebar .position-item:only-child{grid-column:1/-1;flex-direction:row;justify-content:space-between;align-items:baseline}
.sidebar .adviser{position:static;display:flex;flex-direction:column;gap:5px;min-height:0;margin:0;border:0;padding:0;background:transparent;flex-shrink:0}
.sidebar .adviser img{width:200px;height:220px}
.sidebar .adviser-speech{padding:0;text-align:center;flex:none;width:100%}
.sidebar .adviser-name{font-size:15px}
.sidebar .adviser-name>span{display:none}
.sidebar .adviser-quote{font-size:15px;line-height:1.4;height:63px;margin-top:5px}
.unemployment-card{flex-shrink:0;margin-top:auto;padding-top:10px;border-top:1px solid var(--line)}
.unemployment-heading{display:flex;justify-content:space-between;align-items:baseline;font-size:14px}
.unemployment-heading strong{font-size:19px;font-weight:500}
.unemployment-heading small{font-size:13px;margin-left:4px}
.unemployment-chart{display:block;width:100%;height:88px;overflow:visible}
.unemployment-chart text{fill:var(--muted);font-family:inherit;font-size:12px}
.unemployment-chart .chart-line{stroke-width:2}
.unemployment-chart .live-line{stroke-dasharray:4 3}
.game-shell .main{min-width:0;display:flex;flex-direction:column}
.game-shell .game-stage{padding:5px 0 18px;min-height:80px;align-items:center}
.game-shell .game-stage h1{font-size:27px}
.game-shell .game-stage p{font-size:14px}
.stage-clock{display:flex;align-items:center;justify-content:flex-end;gap:14px;min-height:34px}
.stage-clock>span{font-size:14px;color:var(--muted)}
#phase-timer{display:inline-block;width:78px;text-align:right;font-size:26px;font-weight:500;font-variant-numeric:tabular-nums;line-height:1.3}
#phase-timer.time-low{color:var(--red)}
.task-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:66px;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.task-bar .current-task{margin:0;font-size:15px;line-height:1.5;max-width:850px}
.task-bar .quiz-link{font-size:14px;padding:5px 0}
.game-shell .workspace{padding:20px 0;min-width:0}
.game-shell .reading-width{max-width:none;margin:0}
.game-shell .hiring-grid,.game-shell .report-grid{gap:20px;align-items:stretch}
.hiring-grid>.panel{display:flex;flex-direction:column}
.hiring-grid>.panel>.form-footer{margin-top:auto;padding-top:20px}
.hiring-grid #policy-form{display:flex;flex-direction:column;flex:1}
.hiring-grid #policy-form>.form-footer{margin-top:auto;padding-top:20px}
.initial-settings .panel-head{min-height:0!important;margin-bottom:14px!important}
.production-rule{display:flex;flex-direction:column;gap:4px;padding-top:16px;font-size:14px}
.production-rule>span{color:var(--muted);font-size:13px}
.production-rule strong{font-weight:500}
.personnel-tabs{display:flex;gap:18px;border-bottom:1px solid var(--line)}
.personnel-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.personnel-tabs button{position:relative;display:flex;align-items:center;gap:8px;border:0;border-bottom:2px solid transparent;background:none;padding:0 0 12px;font-size:17px;color:var(--muted);font-weight:500}
.personnel-tabs button[aria-selected=true]{color:var(--green);border-bottom-color:var(--green)}
.personnel-tabs button>span{font-size:13px;font-weight:400}
.application-dot{width:6px;height:6px;background:var(--green);border-radius:50%}
.staff-wage{font-size:14px;color:var(--muted);padding:14px 0;min-height:50px}
.staff-wage strong{font-weight:500;color:var(--ink);white-space:nowrap}
.game-shell .panel{padding:22px}
.game-shell .panel-head{min-height:40px;margin-bottom:18px}
.game-shell .panel-head p{font-size:14px}
.game-shell .button{font-size:14px}
.game-shell .button.small{font-size:13px}
.game-shell .form-footer{min-height:44px;margin-top:22px}
.game-shell #policy-form .field{display:grid;grid-template-rows:1fr auto}
.game-shell .personnel-scroll{height:clamp(250px,calc(100svh - 430px),320px);min-height:0;overflow:auto}
.game-shell .personnel-scroll td{height:54px}
.game-shell .vacancy-scroll{height:clamp(260px,calc(100svh - 460px),520px)}
.job-choice-grid{margin-bottom:20px}
.vacancy-header-action{display:flex;align-items:center;justify-content:flex-end;gap:14px;min-height:36px;font-size:14px}
.job-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.game-shell .job-choice{display:block;padding:16px 20px;height:176px}
.job-choice-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;height:28px;margin-bottom:12px}
.job-choice-heading .text-button{padding:0}
.game-shell .vacancy-table{font-size:15px}
.game-shell .vacancy-table .button{font-size:14px}
.job-choice-heading h2{font-size:18px}
.job-choice-heading>span{font-size:14px;color:var(--muted)}
.job-choice dl>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:15px;min-height:30px}
.job-choice dd{font-size:20px;font-weight:500}
.job-choice .choice-total{padding-top:6px;border-top:1px solid var(--line);margin-top:3px}
.job-choice .choice-total dd{font-size:25px;color:var(--green)}
.game-shell .application-slot{display:flex;align-items:center;min-height:52px}
.game-shell .application-status{width:100%;padding-top:4px;padding-bottom:4px}
.game-shell .job-context{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:24px;align-items:start;min-height:80px}
.game-shell .job-context .employment-status{padding-bottom:15px}
.game-shell .job-context .application-slot{min-height:72px}
.game-shell .application-status{margin-bottom:0}
.game-shell .notice-line{padding:0;font-size:14px}
.game-shell .effort-footer{min-height:66px}
.game-shell .bottom-bar{padding:16px 0;min-height:78px;gap:20px}
.game-shell #next-stage{width:180px;flex-shrink:0}
.game-shell .main{min-height:calc(100svh - 40px)}
.game-shell .bottom-bar{margin-top:auto}
.game-shell .ws-panel .ws-chart{height:clamp(220px,calc(100svh - 440px),330px)}
.game-shell .ws-chart text{font-size:16px}
.game-shell .bottom-bar .stage-guidance{min-height:0}
.game-shell .bottom-bar .stage-actions{max-width:none}
.game-shell #settings-form .field{grid-template-rows:auto 44px}
.game-shell #settings-form .field.full-field{grid-column:auto;grid-template-rows:auto 44px}
.game-shell .initial-settings>summary{font-size:19px;font-weight:500;color:var(--ink);line-height:1.35}
.game-shell .initial-settings[open]>summary{margin-bottom:8px}
.game-shell .time-charts .panel-head{min-height:0}
.game-shell .single-chart{max-width:760px}
.game-shell .bottom-bar:not(:has(.stage-actions)){min-height:44px;padding:10px 0}
.game-shell .finished-footer{display:none}
@media(min-width:1000px){
  .game-shell .effort-footer{min-height:44px}
  .game-shell .choice{min-height:72px;padding-top:14px;padding-bottom:14px}
  .game-shell .effort-heading{font-size:13px}
  .game-shell .report-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
  .report-columns .table-wrap,.participant-panel .table-wrap{max-height:calc(100svh - 360px);overflow:auto}
  .report-columns thead,.participant-panel thead{position:sticky;top:0;background:var(--paper)}
  .game-shell .economy-overview{gap:16px}
  .economy-overview>.subhead>div{display:flex;justify-content:space-between;align-items:baseline;gap:20px;width:100%}
  .economy-overview>.subhead .note{margin:0;font-size:13px}
  .economy-overview .chart{max-height:190px}
  .economy-overview .chart text{font-size:14px}
}
@media(min-width:1000px) and (max-height:860px){
  .game-shell{margin:12px auto}
  .sidebar{top:12px;height:calc(100svh - 24px);padding-top:16px}
  .sidebar-head{padding-bottom:8px}
  .sidebar-body{gap:8px}
  .sidebar .adviser img{width:150px;height:165px}
  .sidebar .position-item{min-height:0;padding:0}
  .sidebar .game-tabs{gap:2px}
  .sidebar .game-tabs button{min-height:28px;padding-top:3px;padding-bottom:3px}
  .unemployment-card{padding-top:6px}
  .unemployment-chart{height:74px}
}
@media(min-width:1000px) and (max-width:1199px){
  .game-shell{grid-template-columns:242px minmax(0,1fr);gap:20px;width:calc(100% - 32px)}
  .sidebar{padding-right:12px;padding-left:12px}
  .game-shell .panel{padding:18px}
  .game-shell .form-grid{gap:14px}
  .game-shell .form-footer{flex-wrap:wrap}
  .game-shell .personnel-scroll th:first-child{width:37%}
  .game-shell .personnel-scroll th:nth-child(2){width:28%}
}
@media(max-width:999px){
  .game-shell{display:flex;flex-direction:column;gap:0;width:calc(100% - 32px);margin:0 auto}
  .sidebar,.sidebar-body{display:contents}
  .sidebar-head{display:grid;grid-template-columns:1fr auto;gap:12px 18px;width:100%;padding:16px 0;border-bottom:1px solid var(--line)}
  .sidebar-head .brand strong{font-size:16px}
  .sidebar .game-tabs{flex-direction:row;gap:18px;flex-wrap:wrap;width:100%;padding:12px 0;border-bottom:1px solid var(--line)}
  .sidebar .game-tabs button{width:auto;min-height:34px;padding:5px 0;border-radius:0;border-left:0;border-bottom:2px solid transparent;font-size:14px}
  .sidebar .game-tabs button.active{background:transparent;border-bottom-color:var(--green)}
  .sidebar .position-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:14px;padding:14px 0;border:0}
  .sidebar .position-item{flex-direction:column;justify-content:flex-start;gap:4px;min-height:0;padding:0;font-size:13px}
  .sidebar .position-item>span{max-width:none}
  .sidebar .position-item strong{font-size:18px}
  .sidebar .adviser{position:sticky;top:0;z-index:6;flex-direction:row;gap:12px;width:100%;margin:0;padding:8px 0;min-height:112px;background:var(--bg);border-bottom:1px solid var(--line)}
  .sidebar .adviser img{width:108px;height:119px}
  .sidebar .adviser-speech{text-align:left;flex:1;width:auto}
  .sidebar .adviser-quote{height:auto;min-height:44px;font-size:15px;margin-top:4px}
  .unemployment-card{width:100%;margin:0;padding:10px 0;border-bottom:1px solid var(--line)}
  .unemployment-chart{height:96px}
  .game-shell .main{width:100%}
  .game-shell .game-stage{min-height:0;padding:20px 0 16px}
  .game-shell .game-stage h1{font-size:24px}
  .task-bar{min-height:66px}
  .task-bar .current-task{font-size:14px}
  .game-shell .hiring-grid,.game-shell .report-grid{grid-template-columns:1fr}
  .game-shell .job-context{grid-template-columns:1fr;gap:0;min-height:0}
  .game-shell .job-context .application-slot{min-height:80px}
  .game-shell .effort-footer{min-height:90px}
  .game-shell .effort-heading,.game-shell .choice{grid-template-columns:minmax(170px,1fr) 75px 85px 95px;gap:8px}
}
@media(max-width:580px){
  .entry-page{padding:16px;min-height:100svh}
  .entry-header{height:32px}
  .entry-layout{display:flex;flex-direction:column;gap:16px;min-height:0;padding-top:14px}
  .entry-form{order:2;width:100%;padding:20px}
  .entry-form h1{font-size:24px;margin-bottom:16px}
  .entry-tabs{margin-bottom:14px}
  .entry-tabs button{font-size:14px;padding:6px 3px}
  .entry-form form{gap:14px}
  .entry-form input{height:42px}
  .entry-form .button{height:44px}
  .entry-note{margin-top:12px}
  .entry-teacher{margin-top:14px;padding-top:12px}
  .entry-portrait{order:1;width:100%}
  .entry-portrait .adviser{flex-direction:row;min-height:100px;gap:14px}
  .entry-portrait .adviser img{width:90px;height:99px}
  .entry-portrait .adviser-speech{text-align:left}
  .entry-portrait .adviser-name{font-size:15px}
  .entry-portrait .adviser-quote{font-size:15px;margin-top:4px}
  .lobby-heading{gap:12px;flex-wrap:wrap}
  .room-number{font-size:38px;letter-spacing:4px}
  .lobby-heading dl{gap:22px}
  .lobby-roster{grid-template-columns:repeat(2,minmax(0,1fr))}
  .task-bar{min-height:86px}
  .sidebar-head .brand strong{font-size:15px}
  .sidebar-head .brand img{width:26px;height:26px}
  .sidebar-head .demo-tools summary{font-size:13px;gap:4px}
  .sidebar-head .demo-menu{left:auto;right:0;min-width:190px}
  .sidebar .game-tabs{gap:17px}
  .game-shell .panel{padding:18px}
  .game-shell .form-footer{gap:14px}
  .game-shell .effort-heading{display:none}
  .game-shell .choice{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
  .game-shell .personnel-scroll{height:300px}
  .job-choice-grid{grid-template-columns:1fr;gap:12px}
  .game-shell .job-choice{height:176px}
  .game-shell #next-stage{width:154px}
  .game-shell .vacancy-scroll{height:420px}
  .vacancy-header-action{gap:8px;font-size:13px}
  .game-shell .bottom-bar .stage-actions{width:auto;max-width:180px}
  .game-shell #settings-form .field.full-field{grid-template-rows:auto 44px}
}
