:root{--p:#0b4aa2;--n:#073675;--g:#f4b41a;--ink:#10233f;--muted:#65748a;--bg:#f4f7fb;--line:#dce4ef;--ok:#159463;--bad:#d94a52}#ptp-app{min-height:calc(100dvh - 64px);background:var(--bg);color:var(--ink)}#ptp-app *{box-sizing:border-box}.ptp-loading{padding:80px;text-align:center}.ptp-wrap{max-width:1200px;margin:auto;padding:28px 4%}.ptp-hero{background:linear-gradient(120deg,var(--n),var(--p));color:#fff;padding:32px;border-radius:20px}.ptp-hero h1{margin:5px 0;font-size:clamp(26px,5vw,42px)}.ptp-hero p{color:#cbdcf2}.ptp-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:20px}.ptp-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px}.ptp-card h3{margin:8px 0}.ptp-card p{color:var(--muted)}.ptp-btn{border:0;border-radius:10px;padding:12px 16px;min-height:44px;background:var(--p);color:white;font-weight:700;cursor:pointer}.ptp-btn.gold{background:var(--g);color:#302200}.ptp-btn.ghost{background:#fff;color:var(--p);border:1px solid var(--line)}.ptp-auth{min-height:calc(100dvh - 64px);display:grid;place-items:center;padding:24px}.ptp-authbox{width:min(440px,100%);background:white;padding:28px;border-radius:18px}.ptp-tabs{display:flex;border-bottom:1px solid var(--line);margin:18px 0}.ptp-tabs button{flex:1;border:0;background:none;padding:12px}.ptp-tabs .on{color:var(--p);border-bottom:3px solid var(--p)}.ptp-field{margin:13px 0}.ptp-field label{display:block;font-weight:700;margin-bottom:6px}.ptp-field input,.ptp-field select{width:100%;min-height:48px;padding:11px;border:1px solid #cad5e3;border-radius:10px;font-size:16px}.ptp-error{color:var(--bad)}.ptp-modal{position:fixed;inset:0;background:#10233faa;display:grid;place-items:center;padding:18px;z-index:9999}.ptp-dialog{width:min(620px,100%);max-height:90dvh;overflow:auto;background:#fff;padding:24px;border-radius:20px}.ptp-subjects{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ptp-check{padding:12px;border:1px solid var(--line);border-radius:10px}.ptp-cbt-head{position:sticky;top:0;z-index:20;background:var(--n);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:10px 3%}.ptp-timer{background:white;color:var(--n);padding:9px 13px;border-radius:9px;font-weight:800}.ptp-cbt{display:grid;grid-template-columns:250px 1fr;gap:16px;max-width:1300px;margin:auto;padding:16px}.ptp-qnav,.ptp-question{background:#fff;border-radius:14px;padding:18px}.ptp-qgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.ptp-qnum{height:40px;border:1px solid var(--line);border-radius:7px}.ptp-qnum.done{background:var(--ok);color:#fff}.ptp-question{min-height:600px;display:flex;flex-direction:column}.ptp-qtext{font-size:20px;line-height:1.5;margin:30px 0}.ptp-options{display:grid;gap:12px}.ptp-option{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:12px}.ptp-option.selected{background:#edf4ff;border-color:var(--p)}.ptp-letter{width:32px;height:32px;border:1px solid #b8c7d9;border-radius:8px;display:grid;place-items:center}.ptp-actions{margin-top:auto;padding-top:24px;display:flex;justify-content:space-between}.ptp-score{text-align:center;font-size:64px;font-weight:800;color:var(--p)}.ptp-install{position:fixed;right:16px;bottom:20px;z-index:80;border:0;border-radius:99px;background:var(--g);padding:14px 18px;font-weight:800;box-shadow:0 10px 30px #10233f33}#ptp-toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);background:#10233f;color:white;padding:12px 18px;border-radius:9px;display:none;z-index:10000}@media(max-width:800px){.ptp-grid{grid-template-columns:1fr 1fr}.ptp-cbt{display:flex;flex-direction:column;padding:8px}.ptp-qnav{position:sticky;top:58px;z-index:15;padding:8px}.ptp-qnav h3{display:none}.ptp-qgrid{display:flex;overflow-x:auto}.ptp-qnum{flex:0 0 40px}.ptp-question{min-height:calc(100dvh - 130px);padding:16px}.ptp-option{min-height:58px}.ptp-cbt-head b{display:none}}@media(max-width:560px){.ptp-wrap{padding:16px 12px}.ptp-hero{padding:20px}.ptp-grid{grid-template-columns:1fr}.ptp-card{padding:16px}.ptp-subjects{grid-template-columns:1fr}.ptp-modal{align-items:end;padding:0}.ptp-dialog{border-radius:22px 22px 0 0;padding-bottom:calc(24px + env(safe-area-inset-bottom))}.ptp-cbt-head{gap:7px}.ptp-cbt-head .ptp-btn{padding:8px;font-size:12px}.ptp-qtext{font-size:17px;margin:20px 0}.ptp-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ptp-score{font-size:48px}}
