:root{--cream:#fff7e7;--ink:#62432d;--orange:#d55032;--green:#388b45;--brown:#9a5234;--dark:#27312d;--lime:#c2ff75;--gold:#e4a336}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:"Malgun Gothic","Apple SD Gothic Neo",sans-serif;color:var(--ink)}body{background:linear-gradient(175deg,#c1dae2,#f4dec0 61%,#f1b992);overflow-x:hidden}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.46;cursor:not-allowed}button:focus-visible,input:focus-visible{outline:3px solid #287ac9;outline-offset:2px}.scene{position:fixed;inset:0;pointer-events:none;z-index:-1;overflow:hidden}.cloud{position:absolute;width:85px;height:32px;background:#f2fbff;box-shadow:14px -14px #f2fbff,36px -20px #f2fbff,60px -12px #f2fbff,78px 0 #f2fbff,0 7px #b4dfed,85px 7px #b4dfed}.c1{top:8%;left:6%;transform:scale(1.6)}.c2{top:16%;right:10%;transform:scale(1.3)}.grass{position:absolute;bottom:0;left:0;right:0;height:23px;background:repeating-linear-gradient(90deg,#328c33 0 9px,#8fc33f 9px 14px,#237e36 14px 19px);border-top:7px dashed #5eb344}.btn{border:3px solid #86512e;box-shadow:3px 3px 0 #bb9268;background:#ffe1aa;color:#6a4128;font-weight:900;padding:10px 14px}.btn:hover:not(:disabled){filter:brightness(1.07)}.btn.green{background:#358a48;color:white;border-color:#235c32}.btn.orange{background:#d65432;color:white;border-color:#963a25}.btn.red{background:#a6453a;color:white}.btn.outline{background:#fffaf0}.btn.big{font-size:clamp(16px,1.6vw,24px);padding:13px}.btn.selected{background:#c6ebb8;border-color:#278243;color:#276b3c}.badge{display:inline-block;background:#e9dbc6;border:2px solid #bd9e7d;color:#795b3d;font-weight:900;padding:4px 7px}.badge.done{background:#d2f0c5;border-color:#6faa64;color:#246434}.pill{border-radius:0}.font-money{font-family:Consolas,"Malgun Gothic",monospace;font-variant-numeric:tabular-nums;letter-spacing:-.055em}.brand{font-weight:1000;color:#d64e31;letter-spacing:-.045em;text-shadow:2px 2px #ffd4ae}.brand em{color:#3e8a41;font-style:normal}.hero{width:min(750px,94%);margin:7vh auto;background:#fff9e9ee;border:5px solid #a65736;box-shadow:7px 7px 0 #98745a;padding:clamp(20px,4vw,42px);text-align:center}.hero h1{font-size:clamp(38px,5vw,68px);line-height:1.22;margin:12px}.hero p{font-size:clamp(17px,2vw,23px);font-weight:800;line-height:1.7}.shop-art{width:230px;max-width:100%;margin:14px auto;background:#f7e5b5;border-bottom:9px solid #45964b;padding:13px}.shop-art b{display:block;background:#fff;border:3px solid #b54c37;color:#bf4935;font-size:26px}.shop-art strong{font-size:57px}.code-input{font-size:33px;font-weight:900;letter-spacing:.15em;text-align:center;max-width:290px;width:90%;border:4px solid #d1a97a;padding:14px;background:white}.hero .btn{font-size:22px;margin-top:15px;width:min(350px,96%)}.hint{color:#806d57;font-size:14px;line-height:1.6}.shell{height:100dvh;display:flex;flex-direction:column;padding:clamp(7px,.9vh,14px) clamp(8px,1vw,18px);gap:clamp(5px,1vh,12px);max-width:1720px;margin:auto;min-height:0}.top{background:#fff8e8e8;border:3px solid #ad6944;padding:clamp(5px,.7vh,11px) 15px;display:flex;justify-content:space-between;align-items:center;gap:10px;flex:0 0 auto}.top h1{font-size:clamp(22px,2.7vw,45px);margin:0;line-height:1.25}.round{background:#358d45;color:#fff;border:3px solid #235b30;display:flex;align-items:center;gap:12px;padding:6px 13px;font-weight:900}.round strong{font-size:clamp(28px,3vw,46px);line-height:1}.statusline{display:flex;align-items:center;justify-content:space-between;gap:10px;flex:0 0 auto}.statusline h2{margin:0;font-size:clamp(18px,1.8vw,28px)}.statusline strong{font-size:clamp(15px,1.3vw,22px)}.board{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));flex:1;min-height:0;gap:clamp(6px,1vh,14px)}.board-card{border:3px solid var(--tone);background:#fff8e9;min-height:0;min-width:0;padding:clamp(6px,1vw,17px);display:flex;flex-direction:column;gap:4px;box-shadow:3px 3px 0 #a98b72}.board-card header{display:flex;justify-content:space-between;align-items:center}.board-card h3{font-size:clamp(19px,2.3vw,34px);margin:0}.rank{padding:4px 8px;color:#fff;background:var(--tone);font-weight:900;font-size:clamp(13px,1.35vw,20px)}.profitbox{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center}.profitbox label{font-weight:900;font-size:clamp(13px,1.2vw,20px)}.counter{display:flex;background:var(--dark);border:4px solid #6d867a;box-shadow:inset 2px 2px #0a1412;align-items:center;justify-content:center;color:var(--lime);font-size:clamp(22px,3vw,53px);font-weight:1000;min-height:55px;white-space:nowrap}.counter .unit{font-size:.48em}.counter.neg{color:#ff9a83}.bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:0 0 auto;min-height:32px;font-weight:900}.dim{color:#886e59}.teacher .cards{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));flex:1;min-height:0;gap:clamp(5px,1vh,14px)}.teacher .team-card{background:#fff8e9;border:3px solid var(--tone);padding:clamp(5px,.9vh,12px);min-height:0;display:flex;flex-direction:column;gap:clamp(3px,.5vh,8px)}.team-card .head{display:flex;align-items:center;justify-content:space-between;gap:5px}.team-card h3{margin:0;font-size:clamp(17px,1.7vw,27px)}.team-card .actions{display:grid;grid-template-rows:repeat(3,minmax(0,1fr));gap:5px;flex:1;min-height:0}.team-card .actions .btn{font-size:clamp(11px,1.1vw,17px);padding:2px 4px}.teacher .foot{display:flex;gap:6px;flex:0 0 auto}.teacher .foot .btn{flex:1;min-width:0;font-size:clamp(11px,1.2vw,17px);padding:clamp(7px,1vh,12px) 5px}.join-codes{border:2px solid #d9b58b;background:#fff7e3;padding:4px 8px;display:flex;align-items:center;gap:8px;overflow:auto;white-space:nowrap;font-weight:800;font-size:clamp(11px,.95vw,14px);flex:0 0 auto}.join-codes b{color:#a8432b}.display-note{background:#fff4dc;border:2px solid #bd8e65;padding:9px;font-size:clamp(12px,1vw,16px);font-weight:800}.overlay{position:fixed;inset:0;background:#1a1a17ae;z-index:20;display:grid;place-items:center;padding:14px}.modal{background:#fff7e8;border:4px solid #a35334;box-shadow:7px 7px 0 #4d3933;width:min(1000px,100%);max-height:92vh;display:flex;flex-direction:column;min-height:0}.modal-head{background:#ead0a4;padding:10px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px}.modal-head h2{margin:0;font-size:clamp(20px,2.5vw,31px);color:#a3472a}.modal-body{padding:16px;overflow:auto}.modal-foot{border-top:3px solid #d8b88a;padding:10px;display:flex;justify-content:flex-end;gap:10px}.section{margin:0 0 20px}.section h3{font-size:23px;color:#b64b2e;margin:0 0 9px}.options{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:9px}.options.prices{grid-template-columns:repeat(auto-fit,minmax(98px,1fr))}.options.two{grid-template-columns:repeat(2,minmax(0,1fr))}.option{min-height:74px;background:white;border:3px solid #d9b48c;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-weight:900;font-size:clamp(14px,1.5vw,20px);padding:10px}.option small{font-size:13px;color:#86715c}.option.active{background:#d1f0c4;border-color:#378a4b}.option:disabled{background:#e7e4de;color:#948b81}.student-wrap{max-width:1200px;margin:0 auto;padding:15px}.student-top{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#fff7e6;border:3px solid #ab6241;padding:10px 15px;margin-bottom:12px}.student-top h1{font-size:clamp(22px,4vw,37px);margin:0}.student-main{background:#fff9eb;border:4px solid #af6441;padding:clamp(12px,2vw,24px)}.student-main h2{color:#ae4d2e}.student-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.student-tabs .btn{flex:1}.lock{background:#e7e6df;color:#655c53;padding:18px;text-align:center;font-size:clamp(19px,3vw,30px);font-weight:900;border:3px dashed #ad947b}.choice-summary{padding:12px;background:#f8e4b9;border:2px solid #dfb786;font-weight:850;line-height:1.7;margin:13px 0}.research-card{background:#fff;border:2px solid #d6ac78;padding:12px;margin-top:9px}.results-list{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.resultrow{background:#fffdf2;border:2px solid #d5b38b;padding:12px;display:flex;justify-content:space-between;align-items:center;gap:12px;font-weight:900;font-size:clamp(15px,1.7vw,23px)}.resultrow b{color:#348744}.news{text-align:center;padding:20px}.news h2{font-size:clamp(33px,5vw,57px)}.news p{font-size:clamp(20px,2.3vw,31px);font-weight:900}.toast{position:fixed;bottom:12px;right:12px;z-index:60}.note{font-size:13px;color:#836b55}#toast{display:none;position:fixed;bottom:15px;left:50%;transform:translateX(-50%);z-index:70;background:#2b713d;color:white;border:2px solid #21582e;padding:13px 20px;font-weight:900;text-align:center;max-width:94vw}.portrait{font-size:50px}@media(max-width:720px){.teacher .team-card .actions .btn{font-size:11px}.shell{height:auto;min-height:100dvh}.board,.teacher .cards{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto}.board-card{min-height:165px}.teacher .team-card{min-height:130px}.student-top{flex-wrap:wrap}.results-list{grid-template-columns:1fr}.teacher .foot{flex-wrap:wrap}}@media(max-height:620px) and (min-width:721px){.shell{gap:4px}.board-card{padding:5px}.profitbox label{font-size:13px}.counter{min-height:36px}.bottom{font-size:12px}.student-main{padding:10px}} 
/* 2차 개편: 공개 매력도, 팀별 영업기록, 시장조사 재열람 */
.appeal-chip{display:inline-block;background:#daf1ce;color:#246b35;border:2px solid #83b778;border-radius:3px;padding:4px 8px;font-size:clamp(13px,1.25vw,18px);font-weight:950}
.appeal-total{margin:16px 0;background:#ddf0d2;border:3px solid #66aa70;padding:13px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:18px;font-weight:900}
.appeal-total strong{color:#23723b;font-size:clamp(27px,3vw,41px)}
.appeal-total small{width:100%;font-size:13px;color:#64764d}
.option.research-owned{background:#e1f4d9;border-color:#51995e}
.research-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:10px}
.research-grid>div{background:#fff0d7;padding:12px;display:flex;flex-direction:column;gap:7px}
.research-grid small{font-size:14px;color:#94734e;font-weight:900}
.research-grid strong{font-size:clamp(19px,2.2vw,28px);color:#914729}
.own-result{background:#f1ead9;border:3px solid #e4c795;padding:14px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:12px 0}
.own-result>div:first-child{display:flex;flex-direction:column;gap:5px}
.own-result strong{font-size:clamp(17px,2vw,23px);color:#9f4b31}
.own-result small{font-size:12px;color:#86694b}
.own-numbers{display:flex;gap:15px;flex-wrap:wrap}
.own-numbers span{font-weight:900;font-size:14px;display:flex;flex-direction:column;gap:5px}
.own-numbers b{font-size:clamp(18px,2vw,25px);color:#287a40}
.chart-wrap{background:#fffef7;border:3px solid #e0bf91;margin:12px 0;padding:12px;overflow:hidden}
.sales-chart{width:100%;height:clamp(200px,32vw,320px)}
.history-table-wrap{overflow-x:auto;margin-top:16px}
.records-table{border-collapse:collapse;width:100%;background:#fffdf5;font-weight:800;font-size:clamp(14px,1.5vw,19px)}
.records-table th,.records-table td{padding:12px;border:2px solid #e6cda7;text-align:right;white-space:nowrap}
.records-table th:first-child,.records-table td:first-child{text-align:left}
.records-table thead{background:#efdab6;color:#6f452f}
@media(max-width:760px){.own-result{align-items:flex-start}.own-numbers{gap:10px}.research-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-tabs .btn{flex:1 1 40%;font-size:14px;padding:8px}}

/* 모둠 입장 안내: 화면 전체 표시, 개별 코드 확대, 접속 QR */
.join-code-tap{border:1px solid #d7b68d;background:#fff5dc;color:#744324;font-weight:900;padding:3px 8px;white-space:nowrap;font-size:inherit;cursor:pointer}
.join-code-tap:hover{background:#ccebbb;border-color:#3e8747}
.join-large-screen{position:fixed;inset:0;z-index:100;background:linear-gradient(170deg,#d7ecdf,#f7e5c6 70%,#efc6aa);display:flex;flex-direction:column;overflow:hidden;color:#69442d}
.join-large-header{background:#d75333;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:clamp(8px,1.3vh,17px) clamp(12px,2vw,28px);flex:0 0 auto}
.join-large-header h2{margin:0;font-size:clamp(23px,3.6vw,51px);letter-spacing:-.05em}
.join-large-header .btn{font-size:clamp(14px,1.6vw,22px);padding:7px 17px}
.join-overview{flex:1;min-height:0;display:flex;flex-direction:column;gap:clamp(5px,1vh,14px);padding:clamp(7px,1.5vh,20px) clamp(10px,2.3vw,36px)}
.join-overview-main{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(8px,1.4vw,18px);flex:1;min-height:0}
.join-qr-panel{background:#fff9ed;box-shadow:3px 3px 0 #be9a79;border:3px solid #bc8059;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(8px,1.5vh,16px);padding:clamp(8px,1.3vh,16px);min-height:0}
.join-qr-frame{display:grid;place-items:center;background:white;border:3px solid #e9d3ba;padding:7px;flex:0 0 auto}
.join-qr-frame img{width:min(36vh,320px);height:min(36vh,320px);image-rendering:pixelated;display:block}
.join-url-block{min-width:0;width:100%;font-size:clamp(12px,1.5vw,19px);text-align:center}
.join-url-block>b{color:#3e8844;font-size:clamp(19px,2.1vw,31px)}
.join-big-url{font-size:clamp(17px,2.4vw,37px);font-weight:1000;color:#ac4a2d;overflow-wrap:anywhere;line-height:1.15}
.join-url-block p{font-size:clamp(12px,1.2vw,18px);margin:4px 0}
.join-url-block .btn{padding:4px 9px;font-size:clamp(12px,1.2vw,17px)}
.join-url-switch select{padding:4px;font-size:clamp(12px,1.2vw,16px);max-width:100%;margin-left:8px}
.join-big-grid{display:grid;grid-template-columns:repeat(var(--big-cols,3),minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:clamp(5px,1vw,15px);flex:1;min-height:0}
.join-big-grid.compact-codes{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));}
.join-big-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;background:#fff9ea;border:4px solid var(--team-color,#a95b38);box-shadow:4px 4px 0 #c8a88c;gap:clamp(1px,.5vh,9px);padding:clamp(3px,.7vh,12px);cursor:pointer;overflow:hidden}
.join-big-card.compact{padding:clamp(4px,.7vh,10px)}
.join-big-card span{font-size:clamp(17px,2.3vw,32px);font-weight:1000}
.join-big-card.compact span{font-size:clamp(17px,1.7vw,26px)}
.join-big-card strong{font-size:clamp(29px,4.3vw,73px);letter-spacing:.07em;line-height:1.1;font-family:Consolas,'Malgun Gothic',monospace;font-variant-numeric:tabular-nums;color:#b44731}
.join-big-card.compact strong{font-size:clamp(25px,3vw,48px)}
.join-big-card small{font-size:clamp(10px,.9vw,15px);color:#866c54;font-weight:750}
.join-big-card.compact small{font-size:clamp(10px,.78vw,13px)}
.join-big-card:hover{background:#edf7e2}
.join-private-warning{margin:0;text-align:center;background:#fff4df;border:2px solid #d5a177;padding:clamp(3px,.5vh,10px);font-size:clamp(12px,1.15vw,18px);font-weight:900;color:#a04631;flex:0 0 auto}
.join-focus-body{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:space-evenly;padding:clamp(7px,2vh,35px)}
.join-focus-label{font-size:clamp(37px,6vw,96px);font-weight:1000;margin:0;color:#4b8b3f}
.join-gigantic-code{font-size:clamp(65px,16vw,265px);font-weight:1000;letter-spacing:.07em;font-family:Consolas,'Malgun Gothic',monospace;color:#d44f30;background:#fffaf1;border:7px solid #bc8a61;box-shadow:8px 8px 0 #ba976f;text-align:center;padding:clamp(5px,2vh,30px) clamp(10px,3vw,60px);max-width:96vw;line-height:1.15;font-variant-numeric:tabular-nums}
.join-focus-buttons{display:flex;justify-content:space-around;align-items:center;gap:12px;width:min(95vw,1150px)}
.join-focus-buttons .btn{flex:1;font-size:clamp(15px,1.7vw,27px)}
@media(max-height:550px){.join-overview{padding:4px 12px;gap:4px}.join-qr-frame img{width:min(26vh,220px);height:min(26vh,220px)}.join-big-card strong{font-size:clamp(27px,3.8vw,53px)}.join-big-card.compact strong{font-size:clamp(22px,2.7vw,42px)}.join-big-card small{display:none}}
@media(max-width:680px){.join-overview-main{grid-template-columns:1fr;grid-template-rows:auto auto}.join-big-grid,.join-big-grid.compact-codes{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto;overflow-y:auto}.join-big-card{min-height:112px}.join-gigantic-code{font-size:12vw}.join-focus-buttons{gap:5px}.join-focus-buttons .btn{padding:5px}}

.join-qr-frame{cursor:pointer}.join-focus-qr{height:min(48vh,390px);width:min(48vh,390px);background:#fff;box-shadow:5px 5px 0 #c69a7c;object-fit:contain;padding:10px;border:4px solid #bd7b52;image-rendering:pixelated}
/* 클라우드판 통합 진입 화면 */
.portal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;width:min(960px,94vw);margin:20px auto;text-align:left;align-items:start}
.portal-card{background:#fff9eb;border:4px solid #ae6a42;box-shadow:6px 6px 0 #bd916d;padding:22px;display:flex;flex-direction:column;gap:10px}
.portal-card h2{color:#9d482e;font-size:clamp(20px,2.2vw,27px);margin:0 0 8px}
.portal-card label{color:#6b4d37;font-weight:900;font-size:16px}
.portal-card select,.portal-card input{background:#fff;border:2px solid #d6b58e;color:#553d2e;font:inherit;font-size:17px;width:100%;padding:11px;min-width:0}
.portal-card .btn{margin-top:10px}
.portal-card .code-input{font-family:Consolas,monospace;letter-spacing:.05em;text-transform:uppercase;font-size:clamp(21px,3vw,33px);width:100%;padding:12px}
.home-link{display:inline-block;color:#8c4a2f;font-weight:850;margin-top:20px}
@media(max-width:700px){.portal-grid{grid-template-columns:1fr;margin-bottom:32px}.portal-card{padding:15px}}
/* 공개 사이트의 첫 페이지는 데스크톱에서도 카드를 화면 안에 맞춥니다. */
.hero.cloud-home{width:min(1140px,97vw);margin:2vh auto;padding:clamp(14px,2.2vw,28px)}
.hero.cloud-home h1{font-size:clamp(35px,4vw,55px);margin:5px auto;line-height:1.11}
.hero.cloud-home .shop-art{width:160px;padding:6px;margin:9px auto}
.hero.cloud-home .shop-art b{font-size:19px}
.hero.cloud-home .shop-art strong{font-size:30px}
.hero.cloud-home .portal-grid{margin:12px auto;max-width:1040px;width:100%;gap:14px}
.hero.cloud-home .portal-card{padding:16px}
.hero.cloud-home .portal-card p{font-size:15px;line-height:1.5}
.hero.cloud-home .portal-card .btn{width:100%;font-size:17px;margin-top:6px}
@media(max-width:700px){.hero.cloud-home{margin:12px auto}.hero.cloud-home .portal-grid{grid-template-columns:1fr}}

/* 교사 대시보드 2.0: 순위·라운드 이익·기업 이미지 + 교사 전용 상세 창 */
.room-summary{border:2px solid #dab58b;background:#fff9ec;padding:5px 10px;display:flex;align-items:center;gap:12px;font-weight:800;font-size:clamp(11px,1vw,14px);flex:0 0 auto}
.room-summary b{color:#a64229;white-space:nowrap}
.room-summary span{color:#866b50}
.top-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:5px}
.top-actions .btn{font-size:clamp(12px,1.06vw,16px);padding:8px 9px}
.dashboard-card{justify-content:space-between;gap:clamp(5px,.7vh,11px)}
.dashboard-card .head,.dashboard-card header{min-height:32px}
.rank-wrap{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.rank-change{font-weight:1000;font-size:clamp(11px,1vw,16px)}
.rank-change.up{color:#23854b}.rank-change.down{color:#c8523e}.rank-change.neutral{color:#8b7564}
.rank.waiting{background:#b8a68c}
.dashboard-metrics{display:grid;grid-template-columns:1fr;gap:clamp(4px,.6vh,10px);width:100%;flex:1;min-height:0;align-items:stretch}
.dashboard-metrics.stack-metrics{grid-template-rows:repeat(2,minmax(0,1fr));}
.dashboard-metric{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;padding:clamp(6px,.7vh,10px) clamp(6px,.5vw,10px);border:2px solid #d5b48c;background:#fffdf6;gap:4px;text-align:center}
.dashboard-metric.dashboard-main{background:#ecf5df;border-color:#90b478}
.metric-caption{font-size:clamp(11px,1.05vw,17px);font-weight:900;color:#86664c;line-height:1.15;word-break:keep-all}
.dashboard-metric strong{font-size:clamp(13px,1.45vw,24px);line-height:1.15;white-space:nowrap;letter-spacing:-.035em;color:#554232;font-variant-numeric:tabular-nums}
.dashboard-metric.dashboard-main strong{color:#247a42;font-size:clamp(15px,1.7vw,29px)}
.dashboard-metric .money-unit{font-size:.77em}
.dashboard-metric .image-ok{color:#287b45}.dashboard-metric .image-warn{color:#b47512}.dashboard-metric .image-crisis{color:#b63131}
.dashboard-card .submission-btn{flex:0 0 auto;font-size:clamp(12px,1.1vw,17px);line-height:1.2;min-height:39px;padding:6px 4px}
.submission-btn.pending{background:#ffe3dc;border-color:#b85043;color:#9b392e}
.submission-btn.submitted{background:#c3e9c1;border-color:#397c40;color:#225d30}
.public-submission{flex:0 0 auto;padding:7px 3px;text-align:center;background:#ffe2da;border:2px solid #bf6b55;color:#a43e32;font-weight:950;font-size:clamp(12px,1.1vw,18px)}
.public-submission.submitted{background:#d5f2cf;border-color:#66a26d;color:#256b3b}
.board-card.dashboard-card{padding:clamp(6px,.8vw,13px)}
.teacher .team-card.dashboard-card{padding:clamp(6px,.8vw,12px)}
.teacher .team-card .rank{font-size:clamp(13px,1.2vw,20px)}
.private-detail{max-width:890px;margin:25px auto;padding:18px;background:#fffaf0;border:4px solid #ab633f;box-shadow:6px 6px 0 #a17a5e}
.private-head{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:3px solid #dab387;padding-bottom:12px}
.private-head small{color:#b44734;font-weight:900}.private-head h1{font-size:clamp(24px,4vw,39px);margin:7px 0;color:#934529}
.private-panel{padding:13px 0}.detail-status{padding:10px;background:#f3e4d0;color:#795334;font-weight:900;font-size:19px;margin-bottom:13px}
.detail-status.ok{background:#d8f1d0;color:#28693e}.detail-status.pending{background:#ffe4db;color:#a34b35}
.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.detail-row{border:2px solid #d4b08a;background:white;padding:10px 12px;display:flex;justify-content:space-between;align-items:center;gap:8px;min-width:0}
.detail-row span{color:#80634c;white-space:nowrap;font-weight:850}.detail-row strong{overflow-wrap:anywhere;text-align:right;font-size:18px}
.private-panel h3{color:#a84f33;margin-top:22px}.detail-warning{background:#f9e0d4;border:2px solid #bf654f;padding:12px;color:#993f31;font-weight:850;line-height:1.5}
@media (max-height:620px) and (min-width:721px){
 .teacher .team-card.dashboard-card{gap:4px}.dashboard-metrics{gap:4px}.dashboard-metric{padding:3px 2px;gap:3px}.dashboard-card .submission-btn{min-height:32px;padding:3px}.teacher .foot .btn{padding:5px 3px}.teacher .note{font-size:11px}
}
@media (max-width:720px){.top-actions{justify-content:flex-start}.room-summary span{display:none}.dashboard-card{min-height:165px}.dashboard-metrics{gap:2px}.dashboard-metric{padding:4px 1px}.metric-caption{font-size:10px}.dashboard-metric strong,.dashboard-metric.dashboard-main strong{font-size:11px}.detail-grid{grid-template-columns:1fr}}
