/* Learner passport only; teacher tables and native dialogs keep their own layout. */
.ap-student{--pass-ink:#233d53;--ap-muted:#62655e;background:#243c46;color:var(--pass-ink)}
.ap-student .ap-header{background:#243c46;border:0;color:#fff;padding:7px 14px;min-height:58px;flex-shrink:0}
.ap-student .ap-brand{color:#fff;font-size:1rem}.ap-student .ap-header button{background:transparent;border:1px solid #a5b4b8;color:#fff;border-radius:8px;font-size:.8rem}
.ap-student-main{padding:10px 12px 16px;background:radial-gradient(ellipse at top,#46616a,#243c46 85%);overscroll-behavior:contain;scrollbar-color:#80908e #243c46}
.ap-passport{position:relative;container-type:inline-size;max-width:620px;margin:0 auto;color:var(--pass-ink);background-color:#eef2ef;background-image:repeating-radial-gradient(circle at 17% 24%,transparent 0 6px,#4a7f7b14 6px 7px),repeating-radial-gradient(circle at 84% 73%,transparent 0 8px,#6b6ca314 8px 9px),repeating-radial-gradient(circle at 50% 108%,transparent 0 11px,#8a6f4c10 11px 12px),repeating-linear-gradient(64deg,transparent 0 5px,#3f6f7a0d 5px 6px),linear-gradient(155deg,#f2f6f1,#e6eef0 46%,#f4f0e6);border-radius:3px 15px 15px 3px;border:1px solid #d3dcd8;box-shadow:3px 3px 0 #c6d0cc,5px 5px 0 #dde4e0,0 14px 30px #0d1b2266;padding:0 0 9px;isolation:isolate;overflow:hidden}
.ap-passport::before{content:"";position:absolute;inset:0 auto 0 0;width:9px;background:linear-gradient(90deg,#00000026,#00000005 60%,transparent);border-right:1px solid #c3ccc880;pointer-events:none;z-index:2}
.ap-passport-cover{display:flex;align-items:center;gap:11px;padding:13px 16px 12px 23px;background:linear-gradient(135deg,#16304d,#1d3f5e 55%,#14283f);color:#f4e7c6;position:relative}.ap-passport-cover::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,#9c7c3c,#e3c884 35%,#9c7c3c 70%,#e3c884)}.ap-passport-cover .ap-eyebrow{color:#dcc48b}.ap-passport-cover-text{min-width:0;flex:1}.ap-passport-emblem{font:31px Georgia,serif;line-height:1;color:#e3c884;flex-shrink:0;text-shadow:0 1px 0 #00000055}.ap-passport-chip{width:27px;height:21px;flex-shrink:0;fill:none;stroke:#e3c884;stroke-width:1.5;stroke-linecap:round;opacity:.9}.ap-passport .ap-workshop-title{font:700 1.18rem/1.2 Georgia,serif;letter-spacing:.3px;margin:2px 0 0;color:#fdf6e4;overflow-wrap:anywhere}.ap-passport-data{display:grid;grid-template-columns:1fr auto;gap:9px 14px;margin:0;padding:13px 16px 11px 23px;border-bottom:1px solid #c2cdc8}.ap-pass-field{min-width:0}.ap-pass-field dt{margin:0}.ap-pass-field dd{margin:0;min-width:0}.ap-pass-field strong{display:block;font:italic 700 1.1rem/1.3 Georgia,serif;overflow-wrap:anywhere}.ap-pass-field--id{grid-column:2;grid-row:1/span 2;align-self:start;text-align:right;justify-self:end}.ap-pass-field--id .ap-eyebrow{text-align:right}
.ap-eyebrow{display:block;font:9px/1.5 monospace;letter-spacing:1.5px;text-transform:uppercase;color:#62655e}
.ap-passport .ap-workshop-title{font:700 1.18rem/1.15 Georgia,serif;letter-spacing:.2px;margin:3px 0 0;overflow-wrap:anywhere}

.ap-student .ap-passport-number{background:none;border:0;border-radius:4px;color:#1f3a4d;font:700 12px/1.4 "Cascadia Mono",Consolas,"DejaVu Sans Mono",monospace;letter-spacing:1.2px;max-width:140px;overflow-wrap:anywhere;padding:5px 0 5px 5px;min-width:44px;text-align:right;text-decoration:underline;text-underline-offset:3px}
.ap-page-nav{display:flex;justify-content:space-between;align-items:center;gap:6px;margin:0;padding:6px 16px 5px 23px;border-bottom:1px solid #c9d2cd;font:10px/1.4 "Cascadia Mono",Consolas,monospace;letter-spacing:.5px;text-transform:uppercase;color:#5c6b6c}.ap-page-nav>div{display:flex;align-items:center;gap:6px;white-space:nowrap}.ap-page-nav #collectionLabel{max-width:55%;overflow-wrap:anywhere}
.ap-student .ap-page-nav button{background:transparent;color:var(--pass-ink);border:0;padding:0;min-width:44px;border-radius:4px;font-size:20px}.ap-page-nav button:disabled{opacity:.3}
.ap-stamps{gap:0;max-width:none;min-height:356px;align-content:start}
.ap-stamp{position:relative;border:0;border-radius:0;background:none;min-height:178px;padding:6px 4px;gap:3px;justify-content:flex-start;overflow-wrap:anywhere}
.ap-stamp>strong{font:10px/1.4 monospace;letter-spacing:.4px;color:#62655e;z-index:1}.ap-stamp>small{font:9px/1.4 monospace;color:#62655e}
.ap-stamp.is-empty{margin:6px 3px;min-height:166px;background:linear-gradient(#b8b193,#b8b193) left top/12px 1px no-repeat,linear-gradient(#b8b193,#b8b193) left top/1px 12px no-repeat,linear-gradient(#b8b193,#b8b193) right bottom/12px 1px no-repeat,linear-gradient(#b8b193,#b8b193) right bottom/1px 12px no-repeat}
.ap-stamp.is-active{background-color:#e7e8d950}.ap-empty-symbol{font:28px/1 Georgia,serif;color:#a7a78f;margin:7px 0 2px}.ap-empty-caption{font:italic 11px/1.4 Georgia,serif;color:#5d6354;margin:2px 0 4px}
.ap-student .ap-stamp button{min-height:44px;padding:7px 9px;font-size:11px;border-radius:5px}.ap-student .ap-stamp button.ap-secondary{background:transparent;border:0;text-decoration:underline;color:#40565c}
.ap-stamp-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:4px}
.ap-student .ap-stamp-impression{position:relative;border:0;background:none!important;color:inherit;width:100%;min-height:120px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:0;cursor:pointer}
.ap-stamp-impression svg{display:block;width:100%;max-width:220px;height:auto;max-height:155px;transform:rotate(var(--stamp-angle));overflow:visible}.ap-stamp-impression:hover svg{filter:contrast(1.12)}
.ap-stamp-impression:focus-visible{outline:2px solid #234f77;outline-offset:3px;border-radius:6px}.ap-stamp.is-complete:nth-child(even){padding-top:13px}
.ap-passport-foot{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #c9c1a5;margin-top:4px;padding-top:7px;font:italic 9px Georgia,serif;color:#5d6354}.ap-passport-foot #pageFolio{font:12px monospace;letter-spacing:2px}
.ap-student button{background:#234f61;border-color:#234f61}.ap-student button:hover{filter:brightness(1.1)}.ap-student .ap-secondary{background:#f1f2ee;color:#233d53;border-color:#bdc7c4}
.ap-student .ap-action-panel{background:#faf9f3;border-color:#c7cbbf;box-shadow:0 -4px 16px #10202720;padding-top:9px}.ap-student progress{accent-color:#315d61}.ap-student #currentStatus{font-size:.9rem}.ap-student #statusSub{font-size:.73rem}.ap-student .ap-sync{font:9px/1.4 monospace;color:#62655e}
.ap-student #welcomePanel{max-width:620px;margin:0 auto 16px;background:#faf9f3;color:#233d53}
@media(min-width:600px){.ap-student-main{padding:20px}.ap-passport-cover{padding:17px 30px 15px 40px;gap:14px}.ap-passport-emblem{font-size:38px}.ap-passport-chip{width:33px;height:26px}.ap-passport-data{padding:17px 30px 14px 40px}.ap-page-nav{padding:8px 30px 6px 40px}.ap-passport-pages{padding:6px 30px 0 40px}.ap-passport-foot{padding:0 30px 0 40px}.ap-passport-mrz{padding:10px 14px 11px 40px}.ap-stamps{min-height:430px}.ap-stamp{min-height:215px}.ap-stamp.is-empty{min-height:203px}.ap-stamp>strong{font-size:12px}.ap-passport .ap-workshop-title{font-size:1.6rem}.ap-pass-field strong{font-size:1.35rem}}
@media(max-width:350px){.ap-student-main{padding:7px 8px 12px}.ap-passport-cover{padding:10px 10px 9px 16px;gap:8px}.ap-passport-emblem{font-size:24px}.ap-passport-chip{width:22px;height:17px}.ap-passport-data{padding:10px 10px 9px 16px;gap:7px 10px}.ap-page-nav{padding:5px 10px 4px 16px;font-size:9px}.ap-passport-pages{padding:3px 10px 0 16px}.ap-passport-foot{padding:0 10px 0 16px}.ap-passport-mrz{padding:7px 8px 8px 16px}.ap-eyebrow{font-size:8px;letter-spacing:.8px}.ap-passport .ap-workshop-title{font-size:1.05rem}.ap-pass-field strong{font-size:1rem}.ap-student .ap-passport-number{font-size:11px;letter-spacing:.8px}.ap-page-nav button{min-width:44px}.ap-stamp{min-height:166px}.ap-stamp.is-empty{min-height:154px}.ap-stamps{min-height:332px}}
@media(prefers-reduced-motion:no-preference){.ap-stamp.is-new svg{animation:passport-stamp .45s ease-out both}@keyframes passport-stamp{0%{opacity:0;transform:scale(1.35) rotate(var(--stamp-angle))}65%{opacity:1;transform:scale(.97) rotate(var(--stamp-angle))}100%{transform:scale(1) rotate(var(--stamp-angle))}}}
.ap-passport-pages{position:relative;padding:4px 16px 0 23px}.ap-passport-watermark{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:clamp(120px,46cqi,230px)/1 Georgia,serif;color:#2f5a5f;opacity:.05;pointer-events:none;user-select:none}.ap-passport-foot{padding:0 16px 0 23px}.ap-passport-mrz{margin:9px 0 0;padding:8px 10px 9px 23px;background:#f7f8f3;border-top:1px solid #c9d2cd;box-shadow:inset 0 1px 0 #ffffffcc;color:#223b4a;font-family:"Cascadia Mono",Consolas,"DejaVu Sans Mono",monospace;font-size:clamp(6px,2.4vw,14px);line-height:1.65;white-space:pre;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}@supports (font-size:1cqi){.ap-passport-mrz{font-size:clamp(6px,calc((100cqi - 36px)/27.5),17px)}}
