:root{--primary:#176bb9;--accent:#54a9ed;--bg:#ece9d8;--text:#000;--card:#fff;--border:#7f9db9;--chrome:#f0f0f0;--shadow:#415162}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Tahoma,Verdana,Arial,sans-serif;font-size:12px;color:var(--text);background:var(--bg)}
body.dark{--bg:#20252a;--text:#eee;--card:#30353a;--chrome:#3a3f44;--border:#6d8aa6}a{color:#003399;text-decoration:underline}body.dark a{color:#8fc8ff}button,input,textarea,select{font:inherit}
.top{background:linear-gradient(#2877c7,#0b438f);color:#fff;border-bottom:2px solid #002171;box-shadow:0 1px 0 #fff inset}.top-inner{max-width:1500px;margin:auto;padding:9px 15px;display:flex;gap:12px;align-items:center}.brand{font:bold 20px "Trebuchet MS",Tahoma,sans-serif;letter-spacing:.5px;text-shadow:1px 1px #003}.subtitle{opacity:.9;margin-top:2px;font-size:11px}.site-logo{max-height:48px;max-width:180px;object-fit:contain}
.toolbar,.site-nav{background:linear-gradient(#fff,#d7d7d7);border-bottom:1px solid #777;padding:4px 12px}.toolbar-inner,.nav-inner{max-width:1500px;margin:auto;display:flex;gap:4px;align-items:center;flex-wrap:wrap}.site-nav{padding:0}.nav-inner a{padding:7px 12px;text-decoration:none;color:#000;border-right:1px solid #aaa;background:linear-gradient(#fff,#e5e5e5)}.nav-inner a:hover{background:#ffe69b}.nav-auth{font-weight:bold}.nav-auth.register{background:linear-gradient(#71c871,#338c33)!important;color:#fff!important}
.layout{display:flex;max-width:1500px;margin:auto;min-height:calc(100vh - 100px)}.side{width:205px;flex:0 0 205px;background:#f4f4f4;border-right:1px solid var(--border);padding:8px}.side-title{font-size:11px;font-weight:bold;color:#444;padding:6px 4px;background:linear-gradient(#f7f7f7,#ddd);border:1px solid #ccc;margin:2px 0 6px}.side a{display:block;padding:5px 8px;text-decoration:none;color:#000;border:1px solid transparent;margin-bottom:2px}.side a:hover{background:#ffe6a0;border-color:#d2b48c}.main{flex:1;padding:15px;min-width:0;background:var(--card)}
.panel{background:var(--card);border:1px solid var(--border);margin-bottom:15px;box-shadow:1px 1px 0 rgba(0,0,0,.15)}.panel-title{padding:6px 10px;background:linear-gradient(#f8f8f8,#ddd);border-bottom:1px solid var(--border);font-weight:bold;color:#222;min-height:28px}.panel-body{padding:12px}.panel-tools{float:right}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.stat{padding:10px;border:1px solid #b5c7de;background:#f9fbfd;box-shadow:inset 1px 1px #fff}.stat strong{display:block;font-size:22px;color:var(--primary);font-family:Arial,sans-serif}
.progress{height:18px;width:100%;border:1px solid #6e6e6e;padding:2px;background:#eee;box-shadow:inset 1px 1px 2px #999;overflow:hidden}.progress>span,.retro-progress>span{display:block;height:100%;min-width:2px;background:repeating-linear-gradient(90deg,#2d74c7 0,#2d74c7 8px,#4e91d5 8px,#4e91d5 10px);border:1px solid #174f94;box-shadow:inset 0 2px #9bc5ef,inset 0 -2px #174f94;transition:width .4s}.dashboard-progress{margin:16px 0}.progress-label{display:flex;justify-content:space-between;margin-bottom:4px}.retro-progress{height:22px;padding:3px;border:2px inset #aaa;background:#fff;margin:8px 0 15px}.retro-progress>span{height:100%}
.table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid #999}.table th,.table td{border:1px solid #d0d0d0;padding:6px 8px;text-align:left;vertical-align:middle}.table th{font-size:11px;background:linear-gradient(#f5f5f5,#e5e5e5);font-weight:bold}.table tr:nth-child(even){background:rgba(0,0,0,.025)}.table tr:hover{background:#eff5fc}
.btn{display:inline-flex;align-items:center;gap:4px;border:1px solid #707070;padding:4px 10px;text-decoration:none;color:#000;background:linear-gradient(#fff,#e0e0e0);cursor:pointer;font-size:11px;box-shadow:inset 1px 1px 0 #fff;min-height:25px}.btn:hover{background:linear-gradient(#f5f5f5,#d5d5d5)}.btn:active{box-shadow:inset 1px 1px 2px #888}.btn.primary{background:linear-gradient(#337ab7,#2e6da4);color:#fff;border-color:#2e6da4}.btn.danger{background:linear-gradient(#d9534f,#c9302c);color:#fff;border-color:#ac2925}.btn.success{background:linear-gradient(#5cb85c,#4cae4c);color:#fff}.actions{display:flex;gap:5px;flex-wrap:wrap}
.form-row{margin-bottom:10px}.form-row label{display:block;font-weight:bold;margin-bottom:3px;font-size:11px}.input,.textarea,.select{width:100%;padding:5px 7px;border:1px solid #7f9db9;background:#fff;border-radius:0;box-shadow:inset 1px 1px 1px rgba(0,0,0,.1)}.textarea{min-height:120px;resize:vertical}.code-editor{font-family:Consolas,"Courier New",monospace;background:#111;color:#d9f0ff;font-size:12px}
.notice{padding:8px 10px;border:1px solid #aaa;background:#ffffd5;margin-bottom:12px}.notice.success{background:#dff3df;border-color:#5a9b5a}.notice.error{background:#ffe0e0;border-color:#b44}.notice.info{background:#e2efff;border-color:#6c9ad1}.tag{display:inline-block;padding:2px 5px;border:1px solid #888;background:#eee;color:#222;font-size:10px}.small{font-size:10px;color:#555}
.editor-tabs{display:flex;gap:4px;margin:10px 0 0}.editor{border:1px solid #7f9db9;min-height:390px;background:#fff}.editor-content{min-height:390px;padding:15px;outline:none;color:#000}.code-editor{width:100%;min-height:390px;border:0;padding:12px;display:none}.editor-actions{margin:5px 0}.builder-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:12px}.builder-settings{border:1px solid #aaa;background:#f4f4f4;padding:10px;height:max-content}.block-palette{display:flex;gap:5px;flex-wrap:wrap;padding:7px;background:#e9e9e9;border:1px solid #bbb;margin-bottom:7px}.block-palette b{width:100%}.hero-block{padding:35px 20px;border:2px solid #4f79a7;background:linear-gradient(135deg,#eaf4ff,#fff);margin:12px 0}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.retro-card{display:block;padding:12px;border:1px solid #91a8bf;background:linear-gradient(#fff,#eef3f8);box-shadow:2px 2px 0 #aaa;text-decoration:none;color:inherit}.media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.media-grid img,.media-grid video{max-width:100%;max-height:220px;object-fit:cover;border:1px solid #777}.admin-media{margin-top:15px}.media-item{border:1px solid #aaa;background:#fafafa;padding:8px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.media-item img,.media-item video{width:120px;height:80px;object-fit:cover;border:1px solid #777}.file-icon{width:120px;height:80px;display:grid;place-items:center;background:#ddd;border:1px solid #777;font-weight:bold}.upload-box{background:#f4f4f4;border:1px dashed #888;padding:12px}
.site-main{max-width:1100px;margin:18px auto;padding-top: 15px;padding-left: 15px;padding-right: 15px;min-height:60vh}.site-card{background:#fff;border:1px solid var(--border);box-shadow:3px 3px 0 rgba(0,0,0,.25);padding:24px;color:var(--page-text)}.site-card h1{font-family:"Trebuchet MS",Arial;font-size:30px;color:var(--primary);margin-top:0;border-bottom:1px solid #bbb;padding-bottom:8px}.page-ribbon{font-size:10px;color:#666;text-transform:uppercase;letter-spacing:1px}.footer{text-align:center;padding:15px;border-top:1px solid #999;background:#ddd;color:#333}.custom-site-html{max-width:1100px;margin:10px auto}.maintenance,.auth-shell{max-width:600px;margin:80px auto;padding:15px}.auth-card{box-shadow:none}
.forum-shell{max-width:1100px;margin:auto}.forum-post{display:grid;grid-template-columns:150px 1fr;border:1px solid #aaa;margin-bottom:8px;background:#fff}.forum-post .post-user{padding:10px;background:#e7edf5;border-right:1px solid #aaa;font-weight:bold}.forum-post .post-content{padding:12px;min-height:100px}.forum-post.original{border-width:2px}.check-row{display:flex;gap:20px;flex-wrap:wrap;margin:10px 0}
@media(max-width:900px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.builder-layout{grid-template-columns:1fr}.side{width:160px;flex-basis:160px}.forum-post{grid-template-columns:1fr}.forum-post .post-user{border-right:0;border-bottom:1px solid #aaa}}
@media(max-width:600px){.layout{display:block}.side{width:auto;border-right:0;border-bottom:1px solid #aaa}.grid{grid-template-columns:1fr}.top-inner{padding:8px}.site-card{padding:14px}.nav-inner a{flex:1;text-align:center}.toolbar-inner{justify-content:center}}

.media-picker{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;margin:8px 0}.media-pick{border:1px solid #aaa;background:#fff;padding:3px;cursor:pointer;overflow:hidden}.media-pick img{width:100%;height:65px;object-fit:cover}.media-pick small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body{background:#d7d3c8;background-image:linear-gradient(#eee 1px,transparent 1px);background-size:100% 3px}
.top{background:linear-gradient(#3b73a8,#234d78 52%,#193d61);border-bottom:3px solid #112d48}.brand{font-family:Arial,Helvetica,sans-serif;font-size:19px;letter-spacing:0;text-transform:none}.site-nav{background:#c8c5bc;border-top:1px solid #fff;border-bottom:2px solid #555}.nav-inner a{font-weight:bold;border-left:1px solid #fff;border-right:1px solid #8b8983;background:linear-gradient(#efeee9,#c8c6bf);color:#173b5c}.nav-inner a:hover{background:#f4e6a5;color:#000}.layout{background:#e9e6dd;border-left:1px solid #777;border-right:1px solid #777}.side{background:#d2d0c8;border-right:2px solid #777}.side-title{background:linear-gradient(#e9e7e0,#bbb8af);border-color:#777;color:#263f58}.side a{color:#173b5c;border-bottom:1px dotted #999}.side a:hover{background:#f0e0a4;border-color:#987b37}.main{background:#f2f0e9}.panel{border-color:#777;box-shadow:2px 2px 0 #999}.panel-title{background:linear-gradient(#e9eef3,#b9c5d0);color:#173b5c;border-color:#777}.btn{border-color:#666;background:linear-gradient(#fff,#d0d0cc);border-radius:2px}.btn.primary{background:linear-gradient(#4c82b1,#285c87);border-color:#183f60}.input,.textarea,.select{border-color:#6f8190;background:#fff}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:30px;background:#d7d3c8}.login-card{width:min(430px,94vw);background:#eeeae0;border:2px solid #4d4d4d;box-shadow:none;padding:0 18px 20px}.login-card h1{margin:0 -18px 18px;padding:10px 14px;color:#fff;font:bold 18px Arial;background:linear-gradient(#4c82b1,#234d78);border-bottom:2px solid #173b5c}.login-card .btn{min-width:130px}.progress{height:20px;background:#c8c8c8;border:2px inset #888;padding:2px}.progress>span{background:repeating-linear-gradient(90deg,#2c6da3 0,#2c6da3 7px,#4b88bd 7px,#4b88bd 9px);box-shadow:inset 0 1px #a8d1ef,inset 0 -1px #173f63}.retro-progress{height:22px;background:#d5d2c8}.quiz-builder-question{margin:10px 0}.quiz-answer-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;margin-top:6px}.quiz-public{margin:14px 0;padding:12px;border:1px solid #999;background:#f6f4ed}.quiz-option{display:block;padding:7px;border-bottom:1px dotted #aaa}.quiz-option:hover{background:#fff0b8}.page-ribbon{border-bottom:1px dotted #777;padding-bottom:5px}.site-card{border-color:#777;box-shadow:4px 4px 0 #999}.site-card h1{color:#234d78}.footer{background:#c8c5bc;border-color:#777}
@media(max-width:700px){.quiz-answer-row{grid-template-columns:1fr}.side{display:block}}

.page-layout { display: flex !important; width: 100% !important; max-width: 100% !important; margin: 0 !important; } .site-sidebar { width: 210px !important; flex: 0 0 210px !important; } .site-main { flex: 1 !important; width: calc(100% - 210px) !important; max-width: none !important; margin: 0 !important; }.site-sidebar{width:210px;flex:0 0 210px;background:#d2d0c8;border-right:2px solid #777;padding:8px}.site-sidebar .submenu{list-style:none;margin:0;padding:0}.site-sidebar .submenu li{position:relative}.site-sidebar .submenu li a{display:block;padding:5px 7px;color:#173b5c;text-decoration:none;border-bottom:1px dotted #999}.site-sidebar .submenu li a:hover{background:#f0e0a4;color:#000}.site-sidebar .submenu .submenu{margin-left:10px;border-left:1px solid #aaa}.site-sidebar .side-empty{display:block;padding:5px}.site-main{flex:1;min-width:0}.inline-form{display:flex;gap:4px;align-items:center}.input.compact{width:auto;min-width:100px}.input.mini{width:110px}.nav-inner{position:relative}.site-nav .nav-inner>a{position:relative}.site-logo{max-height:48px;max-width:180px;object-fit:contain;margin-right:10px}.site-nav{z-index:20}.submenu a{font-size:11px}
@media(max-width:800px){.page-layout{display:block}.site-sidebar{width:auto;border-right:0;border-bottom:2px solid #777}.site-main{padding-top:8px}.inline-form{flex-wrap:wrap}}

.moderation-inline{margin-top:8px}.moderation-inline .btn{font-size:10px}.actions form{display:inline-block}

/* v4 layout fixes */
html,body{min-height:100%;margin:0}.site-body{min-height:100vh;display:flex;flex-direction:column}.site-page-shell{flex:1;align-items:stretch}.site-content{padding-bottom:24px}.footer{margin-top:auto;width:100%;box-sizing:border-box}.site-nav .nav-inner{justify-content:flex-start;text-align:left}.site-nav .nav-inner>a{margin-left:0}.login-card{box-shadow:none!important}.auth-card{box-shadow:none!important}.quiz-answer-row>div{display:grid;gap:4px}.group-title{font-weight:bold;padding:6px 7px;background:#c3c1b9;border-top:1px solid #fff;border-bottom:1px solid #888;color:#173b5c}.site-sidebar .group-title a{border:0;padding:0}.site-sidebar .group-pages{margin:0;padding:0 0 4px 0;list-style:none}

html, body {
  height: 100%;
}

.site-body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.site-page-shell {
  flex: 1 0 auto !important;
}

.footer {
  margin-top: auto !important;
}/* Common shell: same visual rhythm on public, student, teacher and admin pages. */
.page-layout,.layout{width:100%;max-width:none;margin:0;}
.layout{min-height:calc(100vh - 115px);}
.side{width:235px;flex:0 0 235px;position:relative;}
.main{min-width:0;max-width:none;}
.top{width:100%;}
.top-inner{width:100%;max-width:1500px;min-height:58px;}
.brand{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100vw - 60px);}
.toolbar{width:100%;}
.toolbar-inner{width:100%;max-width:1500px;}
.access-user-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:5px;border:1px solid #bbb;background:#fff;padding:8px;max-height:240px;overflow:auto}.access-user{display:block;padding:6px;border:1px solid #ddd;background:#f7f7f7}.access-user:hover{background:#fff4c7}.compact-area{min-height:55px;margin-top:4px}.page-back{margin-bottom:10px}.site-page-shell .main{background:#f2f0e9}.site-sidebar{align-self:stretch}.group-title{font-size:11px;font-weight:bold;color:#263f58;padding:6px 4px;margin-top:7px;border-bottom:1px solid #999}.sub-link{padding-left:16px!important;font-size:11px}.course-code{background:#111;color:#d9f0ff;padding:12px;border:1px solid #444;overflow:auto;font-family:Consolas,"Courier New",monospace}.lead{font-size:14px}.assignment-card{border:1px solid #999;background:#fff;padding:12px;margin-bottom:10px}.join-code{font-size:18px;letter-spacing:2px;padding:4px 8px;border:1px solid #888;background:#fff}
@media(max-width:600px){.side{width:100%;flex-basis:auto}.layout{display:block}.brand{max-width:70vw}.access-user-list{grid-template-columns:1fr}}
