/* Portfolio styles: copied from the approved design files, then additions below. */
:root{--cyan:#01AEF0;--navy:#1C2777;--red:#EB1C24;--light:#E6F6FD;--sand:#FFF4E5;--green:#EAF7EE;--grey:#6B7280;--line:#9DD6F2;--gold:#F2B134}
*{box-sizing:border-box}
body{margin:0;font-family:Helvetica,Arial,sans-serif;background:#e9eef5;color:#111}
header.app{position:sticky;top:0;z-index:10;background:#fff;border-bottom:3px solid var(--cyan);padding:8px 12px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
header.app .t{font-weight:700;color:var(--navy);font-size:15px;flex:1 1 220px}
header.app select,header.app button,header.app label.btn{font:inherit;font-size:13px;padding:7px 10px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--navy);cursor:pointer}
header.app button.primary{background:var(--navy);color:#fff;border-color:var(--navy)}
header.app button.red{background:var(--red);color:#fff;border-color:var(--red)}
.status{font-size:11px;color:var(--grey);width:100%}
main{max-width:860px;margin:12px auto;padding:0 8px}
.page{background:#fff;border:0;box-shadow:0 2px 10px rgba(0,0,0,.08);border-radius:10px;padding:26px 28px 26px 30px;margin:0 0 18px;position:relative;min-height:600px}
.flag{position:absolute;left:calc(50% + 110px);top:30px;width:64px;height:auto}.flagl{position:absolute;right:calc(50% + 110px);top:30px;width:64px}.flagl img{width:100%;display:block}.flag img{width:100%;height:auto;display:block}
.hd{display:flex;justify-content:center;align-items:center;margin:4px 0 6px;min-height:90px}.hd img{height:88px}.stripe{height:5px;background:linear-gradient(90deg,#FF0000 0 25%,#00732F 25% 50%,#fff 50% 75%,#000 75%);border:1px solid #ddd;border-radius:3px;margin:6px auto 10px;width:140px}
.hd img{height:88px}
.hd .s{font-weight:700;color:var(--navy);font-size:13px}.hd .s small{display:block;color:var(--cyan);font-weight:700;font-size:10px}.hd .s em{display:block;color:var(--grey);font-style:normal;font-size:10px}
h2.title{margin:14px auto 2px;text-align:center;background:#00732F;color:#fff;border-radius:13px;padding:5px 18px;font-size:14px;display:table;border-top:3px solid #FF0000;border-bottom:3px solid #000}
.sub{text-align:center;color:var(--grey);font-size:11px;margin:0 0 10px}
.box{border:1px solid var(--line);background:var(--light);border-radius:10px;padding:10px 12px;margin:8px 0}
.box.task{border-color:var(--cyan)}.box.white{background:#fff;border:1.5px solid var(--line)}.box.green{background:var(--green);border-color:#8CC9A0}.box.sand{background:var(--sand);border-color:var(--gold)}
.box b.l{color:var(--navy);font-size:12px}
.row{display:flex;gap:8px;align-items:center;margin:6px 0;flex-wrap:wrap}
.row label{font-weight:700;color:var(--navy);font-size:12px;white-space:nowrap}
input[type=text],textarea{font:inherit;font-size:13px;border:1px solid var(--line);border-radius:6px;padding:6px 8px;background:#fff;width:100%;color:#111}
textarea{resize:vertical;min-height:60px}
.row input[type=text]{flex:1 1 120px;width:auto}
ol.req{margin:4px 0 4px 18px;padding:0;font-size:12px}ol.req li{margin:3px 0}
.ev{border:2px dashed var(--cyan);border-radius:10px;min-height:280px;background:#fff;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:10px;margin:8px 0;text-align:center}
.ev .lab{color:var(--cyan);font-weight:700;font-size:12px}
.ev .thumbs{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;width:100%}
.ev .thumbs figure{margin:0;position:relative;max-width:100%}
.ev .thumbs img{max-width:100%;max-height:420px;border-radius:6px;border:1px solid var(--line)}
.ev .thumbs button.x{position:absolute;top:4px;right:4px;background:var(--red);color:#fff;border:0;border-radius:50%;width:22px;height:22px;cursor:pointer;font-weight:700}
.ev .ctl{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.ev label.up{display:inline-block;background:var(--cyan);color:#fff;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:700;cursor:pointer}
.ev label.up.cam{background:var(--navy)}
.ev input[type=file]{display:none}
.ev textarea{min-height:90px}
.mark{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--navy);font-weight:700;margin-left:auto}
.mark input{width:54px;text-align:center;font-size:14px}
.teacher{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
table.idx{width:100%;border-collapse:collapse;font-size:12px}table.idx th{background:var(--navy);color:#fff;padding:6px;font-size:11px}table.idx td{border:1px solid var(--line);padding:4px 6px}table.idx tr:nth-child(odd) td{background:var(--light)}
table.idx td.m{white-space:nowrap;font-weight:700;color:var(--navy);width:92px}table.idx td.m input{width:48px;text-align:center;display:inline-block}
table.sa{width:100%;border-collapse:collapse;font-size:12px}table.sa th{background:var(--navy);color:#fff;padding:6px}table.sa td{border:1px solid var(--line);padding:6px}table.sa td.c{text-align:center}
.ican{display:flex;align-items:center;gap:10px;background:var(--light);border-radius:18px;padding:8px 12px;margin:6px 0;font-size:14px}
.ican input{width:20px;height:20px}.ican .f{margin-left:auto;display:flex;gap:8px}.ican .f span{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border:2px solid transparent;font-size:15px}
.ican .f span.on{border-color:var(--navy)}
.prompt{background:var(--light);border-radius:8px;padding:8px 10px;margin:8px 0}.prompt b{display:block;color:var(--navy);font-size:12px;margin-bottom:4px}
.cover{text-align:center}
.cover img.logo{height:140px;margin:10px auto;display:block}.cover .flag{width:190px;top:24px;right:26px}.cover .flagl{left:26px;top:24px;width:190px}.cover .flagl img{width:100%;display:block}
.cover h1{color:var(--navy);font-size:28px;margin:16px 0 2px}
.cover .bar{width:345px;height:6px;background:linear-gradient(90deg,#FF0000 0 25%,#00732F 25% 50%,#fff 50% 75%,#000 75%);border:1px solid #ccc;margin:6px auto 14px;border-radius:3px}
.cover h3{color:var(--red);font-size:20px;margin:0 0 18px}.cover .band{color:var(--navy);font-weight:700;margin:6px 0 12px}
.cover .flagbig{width:140px;height:70px;margin:0 auto 12px;display:block}
.cover .details{display:flex;gap:16px;align-items:stretch;text-align:left}
.cover .details .box{flex:1}
.cover .photo{width:150px;min-height:180px}
.marks{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;font-size:12px;align-items:center}
.marks .tot{grid-column:1/-1;border-top:1px solid var(--gold);margin-top:6px;padding-top:8px;font-size:15px;font-weight:700;color:var(--navy);display:flex;gap:8px;align-items:center}
.marks input{width:50px;text-align:center}
.foot{position:absolute;bottom:14px;left:34px;right:34px;text-align:center;color:var(--grey);font-size:9px;border-top:3px solid #00732F;padding-top:4px}
.rub{font-size:11.5px}.rub table{width:100%;border-collapse:collapse;margin:4px 0 10px}.rub th{background:var(--navy);color:#fff;padding:5px;text-align:left}.rub td{border:1px solid var(--line);padding:4px 6px;vertical-align:top}.rub td:first-child{background:var(--light);font-weight:700;color:var(--navy)}
.rub h4{margin:8px 0 2px;color:var(--navy)}
.hidden{display:none !important}
.toast{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);background:var(--navy);color:#fff;padding:10px 16px;border-radius:10px;font-size:13px;z-index:20;display:none}

@media (max-width:640px){
  .cover .flag,.cover .flagl{width:24vw;top:18px}
  .cover img.logo{height:100px;margin-top:70px}
  .cover .bar{width:min(345px,80%)}
  .cover h1{font-size:24px}.cover h3{font-size:17px}
  .cover .details{flex-direction:column}.cover .photo{width:100%;min-height:150px}
  .flag{left:calc(50% + 80px);width:48px}.flagl{right:calc(50% + 80px);width:48px}
  .page{padding:18px 14px}
  header.app .t{font-size:13px}
}
@media print{
  header.app,.ev .ctl,.ev button.x,.noprint{display:none !important}
  body{background:#fff}main{max-width:none;margin:0;padding:0}
  .page{page-break-after:always;box-shadow:none;margin:0;min-height:auto;border-radius:0}
  .ev{min-height:160px}
  @page{size:A4;margin:8mm}
}

/* ---- additions for the web app (not in the approved file) ---- */
header.app .t small{display:block;font-weight:400;color:var(--grey);font-size:11px}
header.app a.btnlink,header.app label.btnlink{font-size:13px;padding:7px 10px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--navy);text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
header.app a.btnlink.red{background:var(--red);color:#fff;border-color:var(--red)}
.status.saving{color:var(--navy)}.status.ok{color:#00732F}.status.err{color:var(--red);font-weight:700}
.pv{display:inline-block;min-height:28px;flex:1 1 120px;border:1px solid var(--line);border-radius:6px;padding:5px 8px;background:#fff;font-size:13px;white-space:pre-wrap;word-break:break-word;text-align:start}
.pv.ta{display:block;width:100%;min-height:60px}
.pv.m{flex:0 0 auto;min-width:46px;text-align:center;font-weight:700}
.pv.chk{min-width:22px;min-height:22px;padding:0 4px;text-align:center;flex:0 0 auto}
input[data-f],textarea[data-f]{unicode-bidi:plaintext}
.tasktxt{font-size:13px;color:var(--navy)}
.reqt{color:var(--navy);font-size:12px}.idxt{color:var(--navy);font-size:13px}
.small{font-size:12px}.indent{margin-left:58px}.muted{color:var(--grey)}
.tick{font-weight:400;font-size:12px;display:inline-flex;align-items:center;gap:4px}
/* 2 x 2 picture grid: 1 fills, 2 side by side, 3 = two + one, 4 = two rows of two */
.ev .thumbs{display:grid;grid-template-columns:1fr 1fr;gap:8px;justify-items:center;align-items:center}
.ev .thumbs.n0{display:none}.ev .thumbs.n1{grid-template-columns:1fr}
.ev .thumbs.n3 figure:nth-child(3){grid-column:1 / span 2}
.ev .thumbs figure{cursor:default}.mode-student .ev .thumbs figure[draggable=true]{cursor:grab}
.ev .thumbs figure.dragging{opacity:.4}
.ev .thumbs img{max-height:380px;object-fit:contain}
.ev.photo .thumbs img{max-height:160px}
.guide{position:relative;display:inline-flex;width:18px;height:18px;border-radius:50%;background:var(--navy);color:#fff;font-size:11px;align-items:center;justify-content:center;cursor:help}
.guide .tip{display:none;position:absolute;left:0;top:22px;z-index:5;width:320px;max-width:80vw;background:#fff;color:#111;border:1px solid var(--gold);border-radius:8px;padding:8px;font-size:12px;font-weight:400;box-shadow:0 4px 14px rgba(0,0,0,.15)}
.guide:hover .tip,.guide:focus .tip{display:block}
.mode-teacher input[data-m]{border-color:var(--gold);background:#fffdf5}
.mode-teacher input[data-m].bad{border-color:var(--red);background:#fde2e2}
.printbar{max-width:860px;margin:12px auto;padding:0 8px;font-size:13px;color:var(--grey)}
.btn{font:inherit;font-size:13px;padding:8px 14px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--navy);cursor:pointer;text-decoration:none;display:inline-block}
.btn.primary{background:var(--navy);color:#fff;border-color:var(--navy)}.btn.small{font-size:12px;padding:5px 10px}
.start{max-width:560px;margin:20px auto}.start .box{text-align:center}
.pinbox{display:flex;flex-direction:column;gap:10px;align-items:center}
.pinbox input{font-size:28px;letter-spacing:8px;text-align:center;width:220px;padding:8px;border:2px solid var(--line);border-radius:10px}
.right{text-align:right;margin-top:12px}
.flash{background:var(--sand);border:1px solid var(--gold);border-radius:8px;padding:8px 12px;margin:8px 0}
body.student main.wrap{max-width:860px;margin:12px auto;padding:0 8px}
[dir=rtl] .start{direction:rtl}
@media (max-width:640px){header.app{position:static}}
@media print{
  .pv{border-color:#bbb}
  .pv.ta:empty,.pv:empty{background:repeating-linear-gradient(#fff 0 23px,#ccc 23px 24px)}
  .pv.ta:empty{min-height:72px}
  .guide,.printbar,.toast{display:none !important}
  .ev .thumbs img{max-height:120mm}
  .page{break-inside:avoid}
}
