:root{color-scheme:dark;--bg:#102d36;--panel:#19434d;--border:#3e6970;--ink:#f9f4d9;--muted:#cbd8ce;--green:#43c795;--accent:#edaa69;--pink:#e66ad2}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,Arial,sans-serif}header{background:#204b57;border-bottom:1px solid var(--border);padding:12px max(15px,calc((100% - 1400px)/2));display:flex;align-items:center;gap:12px;justify-content:space-between}header strong{font-size:19px}header small{display:block;color:var(--muted)}main{max-width:1400px;margin:auto;padding:16px}h1,h2,h3{margin:0 0 12px}h2{font-size:21px}h3{font-size:17px;margin-top:15px}.card{background:var(--panel);border:1px solid var(--border);border-radius:13px;padding:18px;margin-bottom:15px}#login,#change{max-width:460px;margin:40px auto}.hide{display:none!important}button{border:0;border-radius:8px;background:#27836c;color:white;padding:11px 14px;font:700 15px system-ui;cursor:pointer;min-height:44px}button:disabled{opacity:.45;cursor:not-allowed}.sub{background:#315b65}.success{background:#287c62}nav{display:flex;gap:9px;margin-bottom:15px;flex-wrap:wrap}.tab{background:#315b65}.tab.active{background:#27836c}label{display:block;color:var(--muted);margin:10px 0 4px;font-size:14px}input,select,textarea{display:block;width:100%;border:1px solid #51617a;background:#102d36;color:white;border-radius:8px;padding:12px;font:16px system-ui;min-height:44px}textarea{resize:vertical}.columns{display:grid;grid-template-columns:minmax(245px,32%) minmax(0,1fr);gap:15px}.editorcard{min-width:0}.program{display:block;width:100%;text-align:left;background:#28515d;margin:7px 0;border:1px solid #43536d}.program.active{border:2px solid #edaa69}.program small{display:block;color:#cbd5e1;font-weight:400}.editorhead{display:flex;justify-content:space-between;margin-top:15px;color:var(--muted)}#code{min-height:340px;max-height:65vh;font:15px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;tab-size:4;white-space:pre;overflow:auto;resize:vertical;touch-action:pan-y}#console{min-height:110px;max-height:330px;overflow:auto;background:#0a242b;border:1px solid var(--border);border-radius:8px;padding:12px;color:#8feac3;white-space:pre-wrap;overflow-wrap:anywhere;font:14px/1.5 ui-monospace,monospace}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.note{font-size:13px;color:var(--muted)}#message{position:sticky;bottom:8px;background:#315b65;border-radius:8px;padding:10px;display:none}#message:not(:empty){display:block}.bar{height:10px;background:#365b63;border-radius:7px;overflow:hidden}.bar>span{display:block;height:100%;background:#43c795}.topicrow{margin:14px 0}.scroll{overflow:auto}table{width:100%;border-collapse:collapse;min-width:550px}th,td{border-bottom:1px solid var(--border);text-align:left;padding:9px}td button{padding:6px 9px;min-height:34px}.pill{font-size:12px;color:#e3e8db}.detailcode{white-space:pre-wrap;overflow-wrap:anywhere;background:#102d36;padding:12px;border-radius:8px;max-height:260px;overflow:auto}#studentDetail{margin-top:18px}@media(max-width:800px){.columns{grid-template-columns:1fr}.card{padding:13px}main{padding:10px}header strong{font-size:16px}#code{min-height:300px}header #who{font-size:13px}} 

/* VWU visual identity — logo-inspired deep teal, ivory, peach and green. */
header{min-height:100px;gap:16px;flex-wrap:wrap;box-shadow:0 4px 20px #061b2350}header .brand{display:flex;align-items:center;gap:20px;flex:1;min-width:240px}header .brand-logo{width:268px;max-width:42vw;height:auto;object-fit:contain;flex:none;border-radius:10px}header .brand-text{min-width:0}header .brand-text strong{display:block;color:#fff3c4;font-size:clamp(19px,2.1vw,29px);line-height:1.2;letter-spacing:.01em}header .brand-text small{color:#f4ead0;font-size:clamp(13px,1.2vw,17px);font-weight:700}header .brand-tag{display:block;color:#a9dfce;font-size:12px;margin-top:3px;font-weight:600}h1,h2,h3{color:#fff1bf}button{transition:filter .16s,transform .16s}button:hover:not(:disabled){filter:brightness(1.12)}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #edaa69;outline-offset:2px}a{color:#ffcf98}.card{box-shadow:0 4px 20px #071b2426}#login,#change{margin:35px auto}#who{color:#ffe3b4;font-weight:700;overflow-wrap:anywhere}@media(max-width:700px){header{padding:12px;align-items:center;min-height:unset}header .brand{gap:10px;flex-basis:100%}header .brand-logo{width:140px;max-width:42vw}header .brand-text strong{font-size:18px}header .brand-text small{font-size:12px}header .brand-tag{font-size:10px}header #who{margin-left:auto}header #logout{padding:9px 12px;min-height:40px}}@media(max-width:380px){header .brand-logo{width:115px}header .brand-text strong{font-size:16px}}
/* Header logo: use the supplied original artwork at its natural aspect ratio. */
header .brand-logo{display:block;object-fit:contain;object-position:left center;background:transparent;aspect-ratio:268/70;width:min(268px,42vw);height:auto}
@media(max-width:700px){header .brand-logo{width:min(180px,42vw)}}

.reset-panel{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:24px}.reset-panel label{flex:1;min-width:210px}.reset-panel button{max-width:100%}

/* Layered syntax editor, adapted from the user's C Live Coding Studio. */
.code-editor{position:relative;margin-top:8px;background:#071f2b;border:1px solid #5c8390;border-radius:9px;overflow:hidden;min-height:355px}
.code-editor #code,.code-editor #syntax{font:15px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace!important;tab-size:4;letter-spacing:normal;white-space:pre;overflow-wrap:normal;word-break:normal;padding:14px!important;margin:0!important;border:0!important;border-radius:0!important;box-sizing:border-box}
.code-editor #code{position:relative;display:block;z-index:2;width:100%;min-height:355px;max-height:65vh;resize:vertical;background:transparent!important;color:transparent!important;-webkit-text-fill-color:transparent;caret-color:#fff5b5;overflow:auto;outline:none!important}
.code-editor #code::selection{background:#4b80a0a0;-webkit-text-fill-color:transparent}
.code-editor #syntax{position:absolute;inset:0;z-index:1;pointer-events:none;color:#eaf2ed;overflow:hidden;min-height:100%;}
.code-editor .tok-keyword{color:#f0a9f8}.code-editor .tok-type{color:#7dd3fc}.code-editor .tok-func{color:#fbd38d}.code-editor .tok-string{color:#a7e6a0}.code-editor .tok-comment{color:#91a9b4;font-style:italic}.code-editor .tok-number{color:#ffc58c}.code-editor .tok-op{color:#f7b1b1}.code-editor .tok-pre{color:#ffda75}
.editor-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:8px;color:var(--muted);font-size:12px}.editor-tools button{min-height:35px;padding:7px 12px;font-size:13px}
@media(max-width:800px){.code-editor #code{min-height:300px}.code-editor{min-height:300px}}

/* Spacious coding workspace, inspired by the familiar online IDE layout. */
@media(min-width:901px){
  main{max-width:1920px;padding:16px 22px}
  #practice .columns{grid-template-columns:minmax(220px,23%) minmax(0,1fr);gap:16px}
  #practice .editorcard{padding:20px 22px}
}
#practice .code-editor{min-height:610px;resize:vertical;overflow:hidden}
#practice .code-editor #code{height:610px;min-height:610px;max-height:none;resize:none;overflow:auto}
#practice .code-editor #syntax{min-height:100%;height:100%;overflow:hidden}
#practice #console{height:270px;min-height:230px;max-height:none;resize:vertical;overflow:auto}
#practice .editorhead{font-size:15px;font-weight:700}
#practice .editor-tools{margin-bottom:8px}
#practice #selected{max-height:350px;overflow:auto;padding-right:4px}
#practice #selected .detailcode{max-height:120px}
@media(max-width:900px){
  #practice .code-editor{min-height:480px;height:55vh}
  #practice .code-editor #code{min-height:480px;height:100%}
  #practice #console{min-height:220px;height:260px}
}
@media(max-width:550px){
  #practice .code-editor{min-height:410px;height:58vh}
  #practice .code-editor #code{min-height:410px;height:100%;font-size:14px!important}
  #practice .code-editor #syntax{font-size:14px!important}
  #practice #console{height:220px;min-height:180px}
}
