:root{--ink:#203f43;--dark:#163d40;--green:#18725c;--mint:#e3eee6;--orange:#ee8e47;--cream:#f4f3ec;--muted:#71807a;--line:#dce3da;--red:#bd554c}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--cream);font:15px/1.6 'Microsoft YaHei','Segoe UI',sans-serif}button,input,select{font:inherit}button{cursor:pointer;border:0;transition:transform .15s,background .15s}button:hover{transform:translateY(-1px)}button:disabled{opacity:.5;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ee8e47;outline-offset:3px}a{color:var(--green)}input,select{border:1px solid #cbd8ce;background:#fff;border-radius:10px;padding:12px;color:var(--ink);width:100%}label{display:block;font-size:13px;font-weight:700;margin:12px 0 6px}h1,h2,h3,p{margin:0}h1{font-size:32px;letter-spacing:-1px}h2{font-size:21px}h3{font-size:16px}.muted,small{color:var(--muted);font-size:12px}.btn{background:var(--green);color:white;padding:11px 17px;border-radius:10px;font-weight:700;font-size:13px;display:inline-flex;justify-content:center;align-items:center;gap:7px}.btn.light{background:#eaf0e9;color:var(--green)}.btn.orange{background:var(--orange);color:#382b1a}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn.danger{background:#fae9e4;color:var(--red)}.btn.full{width:100%}.badge{padding:4px 9px;border-radius:7px;font-size:11px;background:#edf1eb;color:var(--green);font-weight:700;display:inline-flex;gap:4px}.badge.orange{background:#fff0de;color:#a06025}.badge.red{background:#fae8e4;color:var(--red)}.flex{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.stack{display:grid;gap:12px}.logo{display:flex;gap:10px;align-items:center;font-size:19px;font-weight:900}.logo-mark{background:var(--orange);color:var(--dark);width:38px;height:38px;display:grid;place-items:center;border-radius:12px;font-size:22px}.topbar{height:78px;background:#fffdf7;display:flex;align-items:center;justify-content:space-between;padding:0 26px;border-bottom:1px solid var(--line)}.top-actions{display:flex;gap:14px;align-items:center}.status-dot{width:7px;height:7px;background:#48a87b;border-radius:50%;display:inline-block;margin-right:5px}.shell{display:grid;grid-template-columns:205px minmax(0,1fr);min-height:calc(100vh - 78px)}.sidebar{padding:24px 16px;background:#edf0e7;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:12px}.company{padding:4px 7px 20px;border-bottom:1px solid #d6dfd1}.company .name{font-size:16px;font-weight:900;margin-top:8px}.nav-btn{padding:13px 15px;border-radius:10px;text-align:left;color:#65766e;background:transparent;display:flex;align-items:center;gap:10px}.nav-btn.active{background:var(--dark);color:#fff}.role-small{margin-top:auto;background:#fffdf7;border:1px solid var(--line);border-radius:13px;padding:14px}.role-small .avatar{font-size:26px}.main{padding:22px 25px;max-width:1700px;width:100%;margin:auto}.greeting{margin-bottom:19px}.greeting h1{font-size:24px}.greeting p{color:var(--muted);font-size:13px;margin-top:4px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:20px}.metric{background:#fffdf8;border:1px solid var(--line);border-radius:13px;padding:16px 18px}.metric .value{font-size:25px;font-weight:900;margin-top:4px;letter-spacing:-.5px}.metric .sub{font-size:11px;color:var(--muted);margin-top:2px}.metric.profit{background:var(--dark);color:#fff}.metric.profit small,.metric.profit .sub{color:#b3d2c5}.play-grid{display:grid;grid-template-columns:minmax(0,1fr) 345px;gap:18px;align-items:start}.panel{background:#fffdf8;border:1px solid var(--line);border-radius:15px;padding:18px}.panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.panel-title h2{font-size:16px}.map{background:#e7eee0;border:1px solid #dce5d4;border-radius:13px;position:relative;overflow:hidden}.map svg{display:block;width:100%;height:auto}.map-label{position:absolute;left:16px;top:15px}.map-bottom{padding:12px 14px;display:flex;gap:8px;justify-content:space-between;background:#f6f8ef;font-size:11px;flex-wrap:wrap}.resource-row{display:flex;gap:10px;margin-top:12px}.resource-pill{flex:1;padding:11px;border:1px solid var(--line);background:#f7f8f1;border-radius:10px;font-size:12px}.resource-pill b{font-size:19px;margin-right:6px}.guide{display:flex;gap:12px;align-items:flex-start;background:#f6ebd9;border:1px solid #eddfc5;border-radius:12px;padding:14px;margin-top:15px}.guide p{font-size:12px;margin-top:3px;color:#7c6b50}.guide .guide-icon{background:#eaa658;border-radius:10px;width:31px;height:31px;display:grid;place-items:center;flex:none}.task-head{background:var(--dark);border-radius:14px 14px 0 0;color:#fff;padding:17px}.task-head p{font-size:12px;color:#bed3c7;margin-top:3px}.task-body{background:#fffdf8;border:1px solid var(--line);border-top:0;border-radius:0 0 14px 14px;padding:14px;max-height:640px;overflow:auto}.task{padding:14px;border:1px solid var(--line);border-radius:12px;margin-bottom:11px;background:#fff}.task:last-child{margin-bottom:0}.task p{font-size:12px;color:var(--muted);margin:6px 0 10px}.task .price{font-size:19px;font-weight:900;color:var(--green)}.task .actions{display:flex;gap:7px;flex-wrap:wrap}.task .actions .btn{font-size:12px;padding:8px 11px}.mini{font-size:11px;color:var(--muted)}.task .route{font-weight:800;font-size:15px;margin:8px 0 3px}.feed-panel{margin-top:18px}.feed-list{max-height:215px;overflow:auto}.feed-item{display:flex;gap:11px;border-bottom:1px solid #edf0e7;padding:10px 0;font-size:12px}.feed-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:#e7efe5;flex:none}.feed-item small{font-size:10px}.feed-item.income .feed-icon{background:#e2f2df}.tabs{display:flex;gap:7px;margin-bottom:15px;flex-wrap:wrap}.tab{background:#e9eee5;border-radius:9px;padding:7px 12px;color:var(--muted);font-size:12px}.tab.active{background:var(--green);color:white}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}td,th{text-align:left;border-bottom:1px solid var(--line);padding:12px 9px;white-space:nowrap}th{font-size:11px;color:var(--muted)}.onboard{max-width:1220px;margin:0 auto;padding:42px 25px}.landing-top{display:flex;justify-content:space-between;margin-bottom:36px}.landing-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}.hero{padding:15px 0}.eyebrow{font-size:12px;color:var(--green);font-weight:800;letter-spacing:2px}.hero h1{font-size:48px;line-height:1.25;margin:15px 0 20px}.hero p{color:var(--muted);max-width:500px}.hero-scene{margin:28px 0 0;background:#e4eadc;border-radius:20px;border:1px solid #d4dfcb;overflow:hidden}.login{padding:27px;background:#fffdf8;border:1px solid var(--line);border-radius:20px;box-shadow:0 12px 40px #254c3810}.login h2{font-size:22px}.login .btn{margin-top:15px}.login select{margin-top:9px}.login small{display:block;margin-top:12px}.divider{height:1px;background:var(--line);margin:22px 0}.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.role-choice{padding:11px;border-radius:10px;border:1px solid var(--line);background:white;text-align:left}.role-choice.active{background:#e4eee1;border-color:var(--green)}.role-choice:disabled{opacity:.4;cursor:not-allowed}.role-choice b{display:block;font-size:12px}.role-choice span{font-size:10px;color:var(--muted)}.demo-toolbar{display:flex;align-items:center;gap:9px;background:#fff4e4;border:1px solid #efdbbc;padding:10px 13px;border-radius:10px;margin-bottom:15px;flex-wrap:wrap;font-size:12px}.demo-toolbar select{width:auto;padding:5px 9px;font-size:12px}.demo-toolbar .btn{padding:6px 10px;font-size:12px}.teacher-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.room-code{font-size:23px;font-weight:900;letter-spacing:2px;font-family:monospace;color:var(--green);margin:10px 0}.avatar-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.avatar-chip{font-size:11px;background:#edf2e8;padding:4px 7px;border-radius:6px}.chat-list{max-height:430px;overflow:auto}.chat-msg{background:#f1f5ed;border-radius:10px;padding:12px;margin:9px 0}.chat-msg p{font-size:14px;margin-top:5px;overflow-wrap:anywhere}.chat-form{display:flex;gap:9px;margin-top:14px}.chat-form input{flex:1}.progress{height:7px;background:#e3e9df;border-radius:20px;overflow:hidden;margin:10px 0}.progress i{display:block;height:100%;background:#dfa052}.empty{padding:30px 12px;text-align:center;color:var(--muted);font-size:13px}.notes{font-size:12px;color:var(--muted);margin-top:13px}.mobile-nav{display:none}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:650px;background:var(--dark);border:1px solid #5b8177;border-radius:12px;color:white;padding:14px 22px;box-shadow:0 8px 30px #183f3c33;z-index:50;font-size:14px}[hidden]{display:none!important}.road-truck{transition:transform 1s linear}.task select{font-size:12px;padding:8px;margin:7px 0}.trial-note{font-size:11px;opacity:.75}footer{font-size:11px;color:var(--muted);padding:22px;text-align:center}@media(min-width:1550px){.play-grid{grid-template-columns:minmax(0,1fr) 380px}.task-body{max-height:740px}}@media(max-width:1100px){.shell{grid-template-columns:170px minmax(0,1fr)}.main{padding:18px}.play-grid{grid-template-columns:1fr}.task-body{max-height:none;display:grid;grid-template-columns:1fr 1fr;gap:10px}.task{margin:0}.teacher-grid{grid-template-columns:1fr 1fr}.hero h1{font-size:38px}}@media(max-width:700px){.topbar{height:auto;min-height:68px;padding:13px 15px;gap:12px}.top-actions{gap:8px;flex-wrap:wrap;justify-content:flex-end}.top-actions .btn{padding:6px 9px;font-size:11px}.logo{font-size:15px}.logo-mark{width:31px;height:31px}.shell{display:block}.sidebar{display:none}.mobile-nav{display:flex;overflow:auto;gap:7px;margin-bottom:13px}.mobile-nav .nav-btn{white-space:nowrap;padding:9px 12px}.metrics{grid-template-columns:1fr 1fr;gap:9px}.metric{padding:12px}.metric .value{font-size:22px}.main{padding:14px}.greeting h1{font-size:21px}.task-body{grid-template-columns:1fr}.landing-grid{grid-template-columns:1fr;gap:20px}.onboard{padding:23px 16px}.hero h1{font-size:35px}.hero-scene{display:none}.teacher-grid{grid-template-columns:1fr}.panel{padding:14px}.resource-row{gap:6px}.resource-pill{font-size:10px;padding:8px}.resource-pill b{font-size:15px}.map-bottom{font-size:10px}.top-actions .muted{display:none}.chat-form{flex-wrap:wrap}.chat-form input{width:100%;flex:auto}#toast{width:90%}}
/* V0.2: prioritize decisions, resources and shared understanding over decoration. */
textarea{width:100%;min-height:110px;padding:12px;border:1px solid #cbd8ce;border-radius:10px;font:inherit;color:var(--ink);resize:vertical;background:white}.topbar{height:auto;min-height:95px}.game-clock{display:grid;gap:1px;padding:8px 17px;background:#f4ebd8;border:1px solid #e7d9bc;border-radius:11px;text-align:center}.game-clock b{font-size:25px;font-variant-numeric:tabular-nums;color:#254945}.game-clock small{font-size:11px;color:#867658}.game-clock span{font-size:11px;color:#84744e}.main{max-width:1700px}.work-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:18px;align-items:start}.work-grid .panel{margin-bottom:17px}.work-grid .task-body{max-height:none;display:block;padding:15px}.task{margin-bottom:14px}.task h3{margin-top:10px}.task .actions,.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}.task .actions .btn{font-size:13px;padding:10px 13px}.task .partners{border-top:1px dashed var(--line);margin-top:13px;padding-top:10px;font-size:11px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.partners .btn{font-size:11px;padding:7px}.task-times{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:11px 0}.task-times div{background:#f3f6ef;border-radius:8px;padding:8px}.task-times span,.task-times b,.task-times em{display:block;font-size:11px;font-style:normal}.task-times span{color:#819080}.task-times b{font-size:12px;margin:3px 0}.task-times em{color:#9a652f}.problem{background:#f9efdc;border-left:3px solid #dca253;border-radius:7px;padding:11px}.problem b{font-size:12px;color:#9b6e2e}.problem p{color:#65583e;font-size:13px;margin:4px 0}.task-note{font-size:12px;color:#6a7e70;padding:9px 0}.text-btn{background:transparent;color:var(--green);font-size:12px;padding:7px 0;text-align:left}.assessment{background:#eef4eb;border:1px solid #dbe7d6;border-radius:8px;padding:11px;margin-bottom:10px}.assessment>b{display:block;font-size:13px;margin-top:6px}.assessment p{font-size:12px}.assessment-check{display:flex;gap:4px;flex-wrap:wrap;margin:7px 0}.asset-title{font-size:13px;margin:16px 0 8px}.asset{border:1px solid var(--line);border-radius:10px;padding:12px;margin:8px 0;background:#f8faf4}.asset b{font-size:13px}.asset .badge{font-size:10px;white-space:normal}.asset p{font-size:12px;color:var(--muted);margin:7px 0}.asset .btn{font-size:11px;padding:7px}.asset.highlight{border:2px solid #dca253;background:#fff7e6}.compact-map .map svg{height:210px;width:100%}.compact-map .map{margin-top:8px}.city-actions{display:flex;gap:8px;margin-top:10px}.city-actions .btn{font-size:12px}.road-truck{cursor:pointer}.road-truck:hover{filter:brightness(1.15)}.flow-panel{margin-bottom:17px}.flow-head select{width:auto;max-width:220px;font-size:12px;padding:7px}.process-flow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));margin-top:16px;gap:8px}.flow-step{display:flex;flex-direction:column;align-items:center;position:relative;text-align:center;padding:11px 4px;border-radius:10px;background:#f1f4ec;border:1px solid #e4e9dd}.flow-step>span{width:23px;height:23px;border-radius:50%;background:#dce4d7;color:#70806c;font-size:12px;display:grid;place-items:center}.flow-step b{font-size:12px;margin-top:7px}.flow-step small{font-size:9px}.flow-step.current{background:#f9e9cc;border-color:#dba65b}.flow-step.current>span{background:#dba65b;color:#fff}.flow-step.done>span{background:var(--green);color:white}.request-panel{margin-bottom:18px;background:#edf5e9}.request-panel h2{font-size:16px}.request-line{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:10px 0}.request-line p{font-size:12px}.request-line b{font-size:13px}.resource-market{display:grid;gap:8px}.resource-market>div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;background:#f5f7ef;border-radius:8px}.resource-market b{font-size:13px}.resource-market small{font-size:11px;flex:1}.member-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0}.member-list>div{background:#f2f6ec;border:1px solid var(--line);border-radius:9px;padding:10px}.member-list b{font-size:13px}.member-list p,.member-list small{display:block;font-size:12px;overflow-wrap:anywhere}.meeting-banner{padding:18px 20px;background:#fff0d2;border:1px solid #e4bf77;border-radius:12px;margin-bottom:17px}.meeting-banner>div{display:flex;gap:12px;align-items:center}.meeting-banner>div>span{font-size:30px}.meeting-banner p{font-size:13px}.meeting-banner ol{font-size:13px;margin-bottom:0}.decision{border-left:3px solid #a5bea0;padding:11px 13px;background:#f5f8f1;margin:12px 0;border-radius:5px}.decision h3{font-size:14px;margin:5px 0}.decision p{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.report-output p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.8;margin:12px 0 20px}.report-output h3{margin-top:18px}.modal-shade{position:fixed;inset:0;background:#18342d88;z-index:80;display:flex;align-items:center;justify-content:center;padding:20px}.modal-box{position:relative;background:#fffdf6;padding:30px;border-radius:17px;max-width:570px;width:100%;max-height:90vh;overflow:auto;box-shadow:0 12px 80px #12392b44}.modal-close{position:absolute;right:10px;top:7px;background:none;font-size:25px;color:#67806c}.modal-box .btn.full{margin-top:18px}.role-check{background:#eef3e9;border:1px solid var(--line);border-radius:7px;padding:8px;font-size:12px;display:flex;align-items:center;gap:7px}.role-check input{width:auto}.teacher-main{max-width:1450px;padding:25px;margin:auto}.teacher-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:12px 0}.teacher-stats span{font-size:11px;color:var(--muted)}.teacher-stats b{display:block;font-size:18px;color:var(--ink)}.teacher-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:20px}.teacher-main .actions .btn{font-size:12px}.rank-row{display:flex;justify-content:space-between;padding:10px;border-bottom:1px solid var(--line);font-size:13px}.mobile-role{display:none}.no-print{display:block}
@media(max-width:1150px){.work-grid{grid-template-columns:1fr 1fr}.process-flow{gap:4px}.flow-step small{display:none}.task-times{grid-template-columns:1fr}.task-times div{display:flex;align-items:center;justify-content:space-between;gap:7px}.task-times b{margin:0}.resource-market>div{flex-wrap:wrap}}
@media(max-width:850px){.work-grid{grid-template-columns:1fr}.process-flow{display:flex;overflow:auto}.flow-step{min-width:100px;flex:1}.teacher-detail-grid{grid-template-columns:1fr}.mobile-role{display:flex;align-items:center;gap:10px;margin-bottom:13px}.mobile-role select{padding:7px;width:auto}.game-clock b{font-size:20px}.game-clock{padding:7px 10px}.topbar{padding:12px;gap:8px}.topbar .logo .badge{display:none}.teacher-main{padding:15px}.task-times{grid-template-columns:repeat(3,1fr)}.task-times div{display:block}.task-times b{font-size:11px;margin:4px 0}.task-times em{font-size:10px}.meeting-banner{padding:13px}.member-list{grid-template-columns:1fr 1fr}}
@media print{body{background:#fff}.topbar,.sidebar,.metrics,.greeting,.mobile-nav,.mobile-role,.demo-toolbar,.flow-panel,.no-print,footer,#toast,#modal{display:none!important}.main{margin:0;padding:0;max-width:none}.shell,.work-grid{display:block}.panel{border:0;box-shadow:none;padding:0}.work-grid>section:not(.printable){display:none}.printable{display:block!important}.teacher-print .teacher-main>*:not(#teacherDetail){display:none}.teacher-print #teacherDetail .teacher-detail-grid>div:first-child,.teacher-print #teacherDetail button,.teacher-print #teacherDetail>.flex{display:none}.teacher-print .teacher-detail-grid{display:block}.report-output{font-size:12pt}.report-output h2{font-size:19pt}.report-output p{font-size:11pt}}
.map-trailer,[data-city]{cursor:pointer}.map-trailer:hover{filter:brightness(1.12)}
/* Printable foldable cards: cover and role back have equal width. */

.role-handoff,.finance-summary{margin-bottom:16px}.role-handoff p{margin-top:5px}.finance-summary table{max-width:700px}.reconcile-warning{color:var(--red);font-weight:700}.finance-summary h3{margin-bottom:8px}
.topbar-help{display:flex;gap:8px;align-items:center}
.topbar-help .btn{background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px 14px;color:var(--ink);font-weight:700;box-shadow:0 2px 0 #e1e7d8}
.topbar-help .btn:hover{border-color:var(--green);color:var(--green)}
