/* App styles copied from the logipex.net quiz/training app template, plus portal additions at the end. */
.app-main{max-width:880px;margin:0 auto;padding:48px 24px 80px}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:30px 32px}
.panel + .panel{margin-top:24px}
label.f{display:block;font-weight:600;font-size:.92rem;color:var(--navy);margin:16px 0 6px}
input.f,select.f{width:100%;padding:11px 13px;border:1.5px solid #cfd3c6;border-radius:9px;font:inherit;font-size:1rem;background:#fff;color:var(--ink)}
input.f:focus,select.f:focus{outline:2px solid var(--green);border-color:var(--green)}
.hint{color:var(--ink-soft);font-size:.88rem;margin:6px 0 0}
.flash{background:#f0f7e8;border-left:4px solid var(--green);border-radius:0 10px 10px 0;padding:12px 16px;margin:0 0 18px;color:#33531c;font-weight:500}
.err{background:#fdecec;border-left-color:#d64545;color:#7c1f1f}
button.btn{border:0;cursor:pointer;font-family:inherit}
.msg{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;font-size:.97rem}
.msg-head{background:#f2f3ee;padding:14px 18px;border-bottom:1px solid var(--line)}
.msg-head .fr{font-weight:600;color:var(--ink)}
.msg-head .addr{color:var(--ink-soft);font-weight:400}
.msg-head .subj{margin-top:4px;font-weight:600;color:var(--navy)}
.msg-body{padding:18px;color:#3c405a;line-height:1.6}
.fakelink{color:#1a56b0;text-decoration:underline;cursor:not-allowed}
.sms{max-width:420px;background:#e9e9ec;border-radius:18px 18px 18px 4px;padding:14px 18px;color:#222;line-height:1.5}
.sms-from{font-size:.85rem;color:var(--ink-soft);margin-bottom:6px}
.choice-row{display:flex;gap:14px;margin-top:22px;flex-wrap:wrap}
.choice{flex:1;min-width:180px;padding:15px 20px;border-radius:11px;border:2px solid #cfd3c6;background:#fff;font:inherit;font-size:1.05rem;font-weight:600;cursor:pointer;color:var(--navy);transition:border-color .12s,background .12s}
.choice:hover{border-color:var(--green);background:#f6fbef}
.choice.selected{border-color:var(--navy);background:var(--navy);color:#fff}
.qbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.qnum{font-weight:700;color:var(--navy)}
.progress{height:7px;background:#e4e6dd;border-radius:99px;overflow:hidden;margin-bottom:26px}
.progress > div{height:100%;background:var(--green);border-radius:99px;transition:width .25s}
.score-big{font-size:3.4rem;font-weight:700;color:var(--navy);line-height:1}
.badge{display:inline-block;border-radius:999px;padding:4px 14px;font-weight:600;font-size:.9rem}
.badge.ok{background:#e3f4d2;color:#33531c}
.badge.bad{background:#fdecec;color:#7c1f1f}
table.data{width:100%;border-collapse:collapse;font-size:.93rem;background:#fff}
table.data th{text-align:left;padding:10px 12px;background:var(--navy);color:#fff;font-weight:600}
table.data th a{color:#fff;text-decoration:none}
table.data th a:hover{color:var(--lime)}
table.data td{padding:10px 12px;border-top:1px solid var(--line);vertical-align:top}
.right{text-align:right}

/* ---- portal additions ---- */
.app-main.wide{max-width:var(--maxw)}
.page-hero .crumb{margin-bottom:10px}
.muted{color:var(--ink-soft)} .sm{font-size:.85rem} .c{text-align:center}
.badge.warn{background:#fdf6e3;color:#6b5410}
.choice-col{display:grid;gap:12px;margin-top:22px}
.choice-col .choice{text-align:left;font-size:1rem;font-weight:500}
.review{margin-top:18px}
.review.ok{border-left:4px solid var(--green)} .review.bad{border-left:4px solid #d64545}
.review h3{margin:0 0 10px;color:var(--navy);font-size:1.08rem}
table.data td.ok{background:#e3f4d2;color:#33531c;font-weight:600}
table.data td.warn{background:#fdf6e3;color:#6b5410;font-weight:600}
table.data td.bad{background:#fdecec;color:#7c1f1f;font-weight:600}
table.data th.c{text-align:center;min-width:92px}
.head-row{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.linkbtn{background:none;border:0;padding:10px 0;font:inherit;color:var(--ink-soft);cursor:pointer}
.who{color:#9aa1c4;font-size:.88rem;padding:0 6px}
@media (max-width:640px){.panel{padding:22px 18px}.nav-links.portal .who{display:none}.nav-bar{padding:0 16px;gap:10px}.wrap{padding:0 16px}.nav-links.portal{display:flex;position:static;flex-direction:row;flex-wrap:wrap;background:none;box-shadow:none;padding:0}.nav-links.portal a{padding:8px 10px;font-size:.92rem}}
.progress-panel h2{color:var(--navy)}
.stats{display:flex;gap:36px;flex-wrap:wrap}
.stats .stat{display:block;font-size:1.5rem;font-weight:700;color:var(--navy);line-height:1.2}
.stats .hint{margin:0}
.resume{display:grid;gap:10px}
.resume-item{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 16px;border:1px solid var(--line);border-radius:11px;text-decoration:none;color:var(--ink);background:#fbfcf8}
.resume-item:hover{border-color:var(--green);background:#f6fbef}
.resume-item .more{font-weight:600;font-size:.92rem;color:#4c7f2a;white-space:nowrap}
.guide-card.done{border-color:#cfe8b5}
.guide-card.done .more{color:#33531c}
.guide-card.started .more{color:var(--navy)}
.done-panel h2{color:var(--navy)}
.resume-note{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:var(--navy);color:#fff;padding:10px 16px;border-radius:10px;box-shadow:var(--shadow);font-size:.92rem;z-index:60;transition:opacity .6s;max-width:calc(100% - 32px)}
.resume-note.fade{opacity:0;pointer-events:none}
.resume-note button{background:none;border:0;color:var(--lime);font:inherit;font-weight:600;cursor:pointer;padding:0 0 0 6px}
table.data.kv th{background:#f2f3ee;color:var(--navy);font-weight:600;vertical-align:top}
