.px{--px-primary:#a3e635;--px-primary-pressed:#94d629;--px-primary-soft:#eef8dc;--px-primary-deep:#3f6212;--px-on-primary:#1a2e05;--px-primary-glow:rgba(101,163,13,0.22);--px-surface:#ffffff;--px-nav-surface:#f3f6f0;--px-tint:#f7f8f7;--px-tint-2:#eceeeb;--px-tint-3:#e2e5e0;--px-line:#e3e6e1;--px-line-strong:#c7ccc3;--px-line-hover:#8c928a;--px-ink:#1a1d19;--px-ink-secondary:#4e544b;--px-ink-faint:#6d736a;--px-danger:#b42318;--px-danger-line:#f0c4bf;--px-danger-soft:#fff4f2;--px-running:#1d63b8;--px-running-soft:#e8f1fb;--px-waiting:#6b5bb5;--px-waiting-soft:#eeebfa;--px-review:#a1600c;--px-review-soft:#fdf1dd;--px-done:#4d7c0f;--px-done-soft:#eef7dc;--px-middle:#285a91;--px-middle-soft:#e8f0f8;--px-high:#3f6212;--px-high-soft:#edf5df;--px-m0:#e4f1fc;--px-m0-ink:#165a8f;--px-m0-line:#bcdaf2;--px-m1:#d3e2fb;--px-m1-ink:#1a4d96;--px-m1-line:#a9c4f0;--px-m2:#c3d0f7;--px-m2-ink:#283f8f;--px-m2-line:#9fb0ec;--px-h0:#eef6d8;--px-h0-ink:#4a6510;--px-h0-line:#d3e6a6;--px-h1:#dcefc0;--px-h1-ink:#37620f;--px-h1-line:#bcdc90;--px-h2:#c6e6b2;--px-h2-ink:#24602a;--px-h2-line:#a2d18c;--px-r-control:8px;--px-r-panel:12px;--px-r-card:16px;--px-r-pill:999px;--px-shadow-pop:0 10px 32px -8px rgba(20,24,18,0.22),0 2px 6px -2px rgba(20,24,18,0.08);--px-shadow-card:0 6px 18px -8px rgba(30,40,25,0.28),0 2px 5px -3px rgba(30,40,25,0.12);--px-fs-cap:12px;--px-fs-sm:13px;--px-fs-base:14px;--px-fs-md:16px;--px-fs-lg:18px;--px-fs-xl:22px;--px-ease:cubic-bezier(0.4,0,0.2,1);--px-t:0.15s var(--px-ease);color:var(--px-ink);font-family:var(--font)}.px *,.px :after,.px :before{box-sizing:border-box}.px :where(button){min-height:0;border:0;border-radius:var(--px-r-control);padding:0;background:transparent;color:inherit;font:inherit;font-weight:600;cursor:pointer;transition:color var(--px-t),background-color var(--px-t),border-color var(--px-t),box-shadow var(--px-t),transform var(--px-t)}.px :where(button):hover{background:transparent}.px :where(button):disabled{cursor:not-allowed;opacity:.45}.px :where(input,select,textarea){width:100%;min-height:36px;border:1px solid var(--px-line-strong);border-radius:var(--px-r-control);padding:6px 10px;background:var(--px-surface);color:var(--px-ink);font:inherit;font-size:16px;font-weight:400;transition:border-color var(--px-t),box-shadow var(--px-t)}.px :where(input,select,textarea):hover{border-color:var(--px-line-hover)}.px :where(input,select,textarea):focus{outline:none;border-color:var(--px-primary);box-shadow:0 0 0 3px var(--px-primary-glow)}.px :where(input,textarea)::placeholder{color:var(--px-ink-faint)}.px :where(label){display:block;font-size:inherit;font-weight:inherit}.px :where(h1,h2,h3,h4){margin:0}.px :where(ul){margin:0;padding:0;list-style:none}.px :where(a){text-decoration:none;color:inherit}.px-main,.px-shell{display:flex}.px-main{min-width:0;flex-direction:column;height:100%}.px-topbar{display:flex;gap:12px;height:44px;flex-shrink:0}.px-topbar p{margin:0;color:var(--px-ink-secondary);font-size:15px}.px-body{flex:1 1;min-height:0;overflow:auto;background:radial-gradient(circle at top left,rgba(15,23,42,.06),rgba(0,0,0,0) 32%),linear-gradient(var(--px-tint) 0,#ffffff 42%,var(--px-tint) 100%)}.px-page{width:min(100%,1300px);margin:0 auto;padding:28px 28px 64px}.px-card{border-radius:var(--px-r-panel)}.px-card+.px-card{margin-top:24px}.px-card-pad{padding:24px;background:var(--px-surface)}.px-sec-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px}.px-sec-head :is(h1,h2){font-size:26px;font-weight:600;line-height:1.23;letter-spacing:-.625px}.px-sec-head p{margin:6px 0 0;font-size:16px}.px-pill,.px-sec-head p{color:var(--px-ink-secondary)}.px-pill{display:inline-flex;align-items:center;padding:4px 12px;border:1px solid var(--px-line);border-radius:var(--px-r-pill);background:var(--px-tint);font-size:12px;font-weight:600;white-space:nowrap}.px-class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(272px,1fr));gap:16px}.px-class-add{display:flex;min-height:252px;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;border:1px dashed var(--px-line-strong);border-radius:var(--px-r-panel);color:var(--px-ink-faint);text-align:center}.px-class-add:hover{border-color:var(--px-primary);background:var(--px-primary-soft);color:var(--px-primary-deep);transform:translateY(-1px)}.px-class-add .px-plus{display:grid;width:44px;height:44px;place-items:center;border:1px solid var(--px-line-strong);border-radius:var(--px-r-pill);background:var(--px-surface)}.px-class-add b{color:var(--px-ink);font-size:20px;font-weight:600;letter-spacing:-.125px}.px-class-add small{display:block;color:var(--px-ink-faint);font-size:15px;line-height:1.45}.px-class-card{display:flex;min-height:252px;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--px-line);border-radius:var(--px-r-panel);background:var(--px-surface);text-align:left;transition:border-color var(--px-t),background-color var(--px-t),box-shadow var(--px-t),transform var(--px-t)}.px-class-card:hover{border-color:var(--px-line-strong);transform:translateY(-1px)}.px-class-card-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.px-class-card-top h3{font-size:22px;font-weight:600;line-height:1.27;letter-spacing:-.25px}.px-class-card-top span{color:var(--px-ink-secondary);font-size:15px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.px-class-meta{color:var(--px-ink-faint);font-size:14px}.px-class-foot,.px-class-meta{display:flex;align-items:center;gap:8px}.px-class-foot{justify-content:flex-end;margin-top:auto;padding-top:8px}.px-btn-primary{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:6px 16px;border:1px solid var(--px-primary-pressed);border-radius:var(--px-r-control);font-size:15px;font-weight:600}.px-btn-primary:hover{transform:translateY(-1px);background:var(--px-primary-pressed);box-shadow:0 3px 10px var(--px-primary-glow)}.px-btn-primary:active{transform:translateY(0)}.px-btn-primary:disabled:hover{transform:none}.px-btn-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:6px 16px;border:1px solid var(--px-primary);border-radius:var(--px-r-control);background:var(--px-primary-soft);color:var(--px-primary-deep);font-size:15px;font-weight:600}.px-btn-secondary:hover{transform:translateY(-1px);background:#e3f9b4;box-shadow:0 3px 10px var(--px-primary-glow)}.px-btn-secondary:disabled:hover{transform:none;background:var(--px-primary-soft)}.px-btn-ghost{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:4px 12px;border:1px solid var(--px-line-strong);border-radius:var(--px-r-control);font-size:14px;font-weight:600}.px-btn-ghost:hover{border-color:var(--px-line-hover);background:var(--px-tint)}.px-btn-ghost:disabled:hover{border-color:var(--px-line-strong);background:var(--px-surface)}.px-btn-danger{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:4px 12px;border-radius:var(--px-r-control);font-size:14px;font-weight:600}.px-btn-danger:hover{border-color:var(--px-danger);background:var(--px-danger-soft)}.px-switch{position:relative;display:inline-flex;width:40px;height:22px;flex:none;align-items:center;padding:0;border:1px solid var(--px-line-strong);background:var(--px-tint-2);transition:background-color var(--px-t),border-color var(--px-t)}.px-switch,.px-switch:after{border-radius:var(--px-r-pill)}.px-switch:after{content:"";position:absolute;left:2px;width:16px;height:16px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.24);transition:transform .18s var(--px-ease)}.px-switch:hover{border-color:var(--px-line-hover)}.px-switch[aria-checked=true]{border-color:var(--px-primary-pressed);background:var(--px-primary)}.px-switch[aria-checked=true]:after{transform:translateX(18px);background:var(--px-on-primary)}.px-seg{display:inline-flex;gap:2px;padding:4px;border:1px solid var(--px-line-strong);box-shadow:0 2px 6px rgba(15,23,42,.06)}.px-seg,.px-seg button{border-radius:var(--px-r-pill)}.px-seg button{min-height:30px;padding:4px 16px;color:var(--px-ink-secondary);font-size:14px;font-weight:600;transition:color .2s var(--px-ease),background-color .2s var(--px-ease),box-shadow .2s var(--px-ease)}.px-seg button:hover{color:var(--px-ink)}.px-seg button.is-active{background:var(--px-surface);color:var(--px-ink);font-weight:600}.px-table-wrap{overflow:auto;border:1px solid var(--px-line);border-radius:var(--px-r-panel);background:var(--px-surface)}.px-table{width:100%;min-width:720px;border-collapse:collapse}.px-table td,.px-table th{padding:10px 16px;text-align:left;vertical-align:middle}.px-table thead th{border-bottom:1px solid var(--px-line);color:var(--px-ink-faint);font-size:12px;font-weight:600;letter-spacing:.125px;white-space:nowrap}.px-table tbody tr{transition:background-color var(--px-t)}.px-table tbody tr:hover td{background:var(--px-tint)}.px-table tbody tr+tr td{border-top:1px solid var(--px-line)}.px-table tbody td{font-size:16px;transition:background-color var(--px-t)}.px-table .px-num{width:96px}.px-table .px-act{width:128px;text-align:right}.px-table-new td{background:var(--px-tint)}.px-empty{padding:44px 16px;color:var(--px-ink-faint);font-size:16px;text-align:center}.px-work{display:flex;height:100%;min-height:0}.px-work-canvas{display:flex;min-width:0;flex:1 1;flex-direction:column;background:radial-gradient(circle at top left,rgba(15,23,42,.06),rgba(0,0,0,0) 32%),linear-gradient(var(--px-tint) 0,#ffffff 42%,var(--px-tint) 100%)}.px-work-hint{display:flex;align-items:center;gap:10px;height:48px;flex-shrink:0;padding:0 16px 0 24px;border-bottom:1px solid var(--px-line);background:var(--px-surface);color:var(--px-ink-secondary);font-size:14px}.px-work-hint>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.px-work-split{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,1fr);place-items:stretch!important;gap:14px;padding:14px 16px!important;overflow:hidden!important}.px-pane{display:flex;min-width:0;min-height:0;flex-direction:column;overflow:hidden;border:1px solid var(--px-line);border-radius:var(--px-r-panel);background:var(--px-surface)}.px-pane-head{display:flex;align-items:center;gap:8px;flex-shrink:0;min-height:40px;padding:4px 8px 4px 14px;border-bottom:1px solid var(--px-line);font-size:13px}.px-pane-head>b{flex:none;color:var(--px-ink);font-weight:600}.px-pane-head>span:not(.px-pane-tools){flex:1 1;min-width:0;overflow:hidden;color:var(--px-ink-faint);text-overflow:ellipsis;white-space:nowrap}.px-pane-tools{display:inline-flex;flex:none;gap:4px;margin-left:auto}.px-pane-tools .px-btn-ghost{min-height:28px;padding:2px 10px;font-size:12.5px}.px-pane-tools svg{width:15px;height:15px}.px-pane-body{position:relative;display:flex;flex:1 1;min-height:0;align-items:center;justify-content:center;overflow:hidden}.px-pane-body .px-drop{width:min(88%,380px);padding:34px 18px;box-shadow:none;cursor:pointer}.px-pane-img{display:flex;width:100%;height:100%;align-items:center;justify-content:center;overflow:auto;padding:12px}.px-pane-img img{max-width:100%;max-height:100%;object-fit:contain;border:1px solid var(--px-line);background:#fff}.px-pane-foot{display:flex;align-items:center;gap:4px;flex-shrink:0;padding:6px 10px;border-top:1px solid var(--px-line);background:var(--px-surface)}.px-pane-pager{display:inline-flex;align-items:center;gap:6px;margin-left:auto;color:var(--px-ink-secondary);font-size:12.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.px-work-canvas,.px-work-dock{position:relative}.px-work-dock{z-index:12;display:flex;align-items:center;gap:14px;flex-shrink:0;min-height:66px;padding:10px 18px;border-top:1px solid var(--px-line);background:var(--px-surface);box-shadow:0 -8px 22px rgba(15,23,42,.05)}.px-dock-note{flex:1 1;min-width:0;overflow:hidden;margin:0;color:var(--px-ink-faint);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.px-dock-note.is-ok{color:var(--px-primary-deep)}.px-dock-note.is-error{color:var(--px-danger)}.px-dock-actions{display:inline-flex;flex-shrink:0;align-items:center;gap:10px}.px-dock-actions .px-btn-ghost{min-height:38px;padding:7px 16px}.px-dock-save{min-height:38px;padding:7px 18px;font-size:14.5px}.px-ai-hero{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:8px 16px;border:1px solid var(--px-primary);border-radius:6px;background:var(--px-primary);color:var(--px-on-primary);font-size:14px;font-weight:600}.px-ai-hero svg{width:18px;height:18px}.px-ai-hero:hover:not(:disabled){background:var(--px-primary-pressed)}.px-ai-hero:disabled{border-color:var(--px-line);background:var(--px-tint-2);color:var(--px-ink-faint);cursor:not-allowed}.px-sheet{position:absolute;right:0;bottom:100%;left:0;z-index:11;display:flex;flex-direction:column;max-height:min(46vh,420px);border-top:1px solid var(--px-line);background:var(--px-surface);box-shadow:0 -18px 44px rgba(15,23,42,.14);animation:px-sheet-up .28s cubic-bezier(.22,.61,.36,1)}@keyframes px-sheet-up{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}@media (prefers-reduced-motion:reduce){.px-sheet{animation:none}}.px-sheet-head{display:flex;flex-wrap:wrap;gap:12px;flex-shrink:0;padding:14px 18px 12px;border-bottom:1px solid var(--px-line)}.px-sheet-head .px-field{min-width:130px;margin:0}.px-sheet-title{flex:1 1 220px}.px-sheet-tools{display:inline-flex;align-items:center;gap:10px;margin-left:auto;padding-bottom:2px}.px-sheet .px-qhead{flex-shrink:0;padding:8px 18px 4px}.px-sheet .px-qhead,.px-sheet .px-qrow{grid-template-columns:44px 96px 120px minmax(0,1fr) minmax(0,1fr)}.px-sheet-rows{flex:1 1;min-height:0;margin:0;padding:0 18px 16px;overflow-y:auto;overscroll-behavior:contain;list-style:none}@media (max-width:900px){.px-sheet .px-qhead,.px-sheet .px-qrow{grid-template-columns:34px 70px 84px minmax(0,1fr) minmax(0,1fr)}.px-work-dock{flex-wrap:wrap}.px-dock-note{flex-basis:100%}}@media (max-width:1100px){.px-work-split{grid-template-columns:1fr}}.px-work-stage{position:relative;flex:1 1;min-height:0;display:grid;place-items:center;overflow:auto;padding:24px}.px-drop{display:flex!important;width:min(440px,100%);flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:44px 24px;border:1px dashed var(--px-line-strong);border-radius:var(--px-r-panel);background:var(--px-surface);color:var(--px-ink-secondary);transition:border-color var(--px-t),background-color var(--px-t),box-shadow var(--px-t),transform var(--px-t)}.px-drop.is-over,.px-drop:hover{border-color:var(--px-primary);background:#fcfff5;box-shadow:0 0 0 4px rgba(163,230,53,.16);transform:translateY(-1px)}.px-drop-icons{display:flex;align-items:center;gap:18px;color:var(--px-ink-secondary)}.px-drop-icons svg{width:52px;height:52px;stroke-width:1.4}.px-drop b{color:var(--px-ink);font-size:16px;font-weight:600}.px-drop small{color:var(--px-ink-faint);font-size:14px}.px-drop input[type=file]{display:none}.px-doc{width:100%;height:100%;display:grid;place-items:center;overflow:auto}.pdfv{position:relative;width:100%;height:100%;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.pdfv::-webkit-scrollbar{width:8px;height:8px}.pdfv::-webkit-scrollbar-thumb{border-radius:999px;background:var(--px-line-strong)}.pdfv::-webkit-scrollbar-thumb:hover{background:var(--px-line-hover)}.pdfv::-webkit-scrollbar-track{background:transparent}.pdfv-center{display:flex;align-items:center;justify-content:center;min-width:100%;min-height:100%;padding:16px}.pdfv-page{position:relative;flex:none;background:#ffffff;box-shadow:0 0 10px rgba(0,0,0,.18)}.pdfv-page canvas{display:block;-webkit-user-select:none;user-select:none}.pdfv-msg{position:absolute;inset:0;display:grid;place-items:center;margin:0;color:var(--px-ink-faint);font-size:14px;pointer-events:none}.pdfv-msg.is-error{color:var(--px-danger)}@keyframes px-pop-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.px-float-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:4px 6px;border-radius:var(--px-r-control);color:var(--px-ink);font-size:14px;font-weight:600}.px-float-toggle:hover{background:var(--px-tint-2)}.px-tool{display:grid;width:36px;height:36px;place-items:center;border:1px solid transparent;border-radius:var(--px-r-control);color:var(--px-ink-secondary)}.px-tool:hover{border-color:var(--px-line);background:var(--px-tint);color:var(--px-ink)}.px-tool.is-on{border-color:var(--px-primary);background:var(--px-primary-soft);color:var(--px-primary-deep)}.px-tool svg{width:20px;height:20px;stroke-width:1.7}.px-zoom{min-width:64px;height:30px;padding:0 10px;border:1px solid transparent;border-radius:var(--px-r-control);color:var(--px-ink-secondary);font-size:14px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.px-zoom:hover{border-color:var(--px-line);background:var(--px-tint);color:var(--px-ink)}.px-field{display:grid!important;gap:6px;margin-bottom:14px}.px-field>span{color:var(--px-ink-secondary);font-size:14px;font-weight:600}.px-field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.px-stepper{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--px-line-strong);background:var(--px-surface)}.px-stepper,.px-stepper button{border-radius:var(--px-r-control)}.px-stepper button{display:grid;width:26px;height:26px;place-items:center;color:var(--px-ink);font-size:16px;font-weight:600}.px-stepper button:hover{background:var(--px-tint-2)}.px-stepper input{width:48px;min-height:26px;border:0;padding:0;text-align:center;font-size:15px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.px-stepper input:focus,.px-stepper input:hover{border:0;box-shadow:none}.px-field>.px-stepper{justify-content:space-between;width:100%;min-height:34px}.px-field>.px-stepper input{flex:1 1;width:auto}.px-qhead,.px-qrow{display:grid;grid-template-columns:28px 54px 64px 1fr 1fr;gap:6px;align-items:center}.px-qhead{padding:0 4px 8px;color:var(--px-ink-faint);font-size:12px;font-weight:600;letter-spacing:.125px}.px-qrow{padding:3px 4px;border-radius:var(--px-r-control);transition:background-color var(--px-t)}.px-qrow:hover{background:var(--px-tint)}.px-qrow>b{color:var(--px-ink-faint);font-size:14px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:center}.px-qrow input,.px-qrow select{min-height:30px;padding:4px 6px;border-color:var(--px-line);font-size:14px}.px-qrow select{padding-right:2px}.px-qrow.is-ai input,.px-qrow.is-ai select{border-color:var(--px-primary);background:#fcfff5}.px-note{margin:12px 0 0;padding:10px 12px;border:1px solid var(--px-line);border-radius:var(--px-r-control);background:var(--px-tint);color:var(--px-ink-secondary);font-size:14px;line-height:1.43}.px-note.is-error{border-color:var(--px-danger-line);background:var(--px-danger-soft);color:var(--px-danger)}.px-note.is-ok{border-color:var(--px-primary);background:var(--px-primary-soft);color:var(--px-primary-deep)}@media (max-width:1180px){.px-side{width:396px}}@media (max-width:900px){.px-shell{height:auto;min-height:100vh;overflow:visible}.px-work{flex-direction:column;height:auto}.px-side{width:100%;height:auto;border-left:0;border-top:1px solid var(--px-line)}.px-work-stage{min-height:420px}.px-page{padding:20px 16px 48px}.px-card-pad{padding:18px 16px}}@media (prefers-reduced-motion:reduce){.px *,.px :after,.px :before{transition-duration:.01ms!important}.px-btn-primary:hover,.px-btn-secondary:hover,.px-class-add:hover,.px-class-card:hover,.px-drop:hover{transform:none}}.px-class-search{width:220px;min-height:34px}.px-class-card{position:relative;overflow:hidden}.px-class-card.is-middle{border-color:#a5d8f8;background:#e9f5fe}.px-class-card.is-middle:hover{border-color:#67bdf1}.px-class-card.is-high{border-color:#cbe98a;background:#f2fadd}.px-class-card.is-high:hover{border-color:#a8d94a}.px-class-card.is-selected{border-color:var(--class-accent,var(--px-primary));box-shadow:0 0 0 3px color-mix(in srgb,var(--class-accent,var(--px-primary)) 28%,transparent)}.px-class-foot-inline{display:inline-flex;gap:6px;margin-left:auto}.px-class-foot-inline .px-btn-danger,.px-class-foot-inline .px-btn-ghost{min-height:26px;padding:2px 10px;font-size:12.5px}.px-class-card>:first-child{margin-top:4px}.px-level-chip{padding:2px 9px;border:1px solid var(--class-accent,var(--px-line));border-radius:var(--px-r-pill);background:color-mix(in srgb,var(--class-accent,#ffffff) 14%,#ffffff);color:var(--px-ink);font-size:12px;font-weight:600;white-space:nowrap}@media (max-width:760px){.px-class-search{width:100%}}.px-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;flex-wrap:wrap;margin-bottom:24px}.px-page-head h1{font-size:26px;font-weight:600;line-height:1.23;letter-spacing:-.625px}.px-page-head p{margin:6px 0 0;color:var(--px-ink-secondary);font-size:15px}.px-metric-row{gap:18px;flex-wrap:wrap;margin:0;padding-bottom:3px}.px-metric,.px-metric-row{display:flex;align-items:baseline}.px-metric{gap:6px}.px-metric dt{color:var(--px-ink-faint);font-size:13px}.px-metric dd{margin:0;color:var(--px-ink);font-size:17px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.2px}.px-student-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}.px-student-toolbar>input{width:min(100%,280px);min-height:36px}.px-student-filter{display:inline-flex;align-items:center;gap:6px;color:var(--px-ink-faint);font-size:13px;white-space:nowrap}.px-student-filter select{width:150px;min-height:36px}.px-student-table-wrap{overflow:auto}.px-student-table{min-width:1060px}.px-student-table thead th{position:sticky;z-index:1;top:0;background:var(--px-tint)}.px-student-table tr.is-saving td{background:color-mix(in srgb,var(--px-primary) 5%,var(--px-surface))}.px-student-table tr.is-saved td{background:color-mix(in srgb,var(--px-primary) 9%,var(--px-surface));transition:background .6s ease}.px-sheet-table td{padding:4px 8px}.px-sheet-table td:first-child{padding-left:16px}.px-cell{width:100%;min-height:34px;padding:6px 8px;border:1px solid transparent;border-radius:var(--px-r-control);background:transparent;box-shadow:none;font-size:14px;transition:border-color var(--px-t),background-color var(--px-t)}.px-cell:hover{border-color:var(--px-line);background:var(--px-surface)}.px-cell:focus{border-color:var(--px-primary-pressed);background:var(--px-surface);box-shadow:0 0 0 3px var(--px-primary-glow);outline:none}.px-cell::placeholder{color:var(--px-line-hover)}.px-cell-pick{width:100%;min-height:34px;padding:6px 8px;overflow:hidden;border:1px solid transparent;border-radius:var(--px-r-control);background:transparent;color:var(--px-ink-secondary);font-size:13.5px;font-weight:600;text-align:left;text-overflow:ellipsis;white-space:nowrap}.px-cell-pick:hover:not(:disabled){border-color:var(--px-line);background:var(--px-surface)}.px-cell-pick:disabled{color:var(--px-ink-faint);cursor:default}.px-cell-state{min-width:42px;color:var(--px-primary-deep);font-size:12px;font-weight:600}.px-sheet-table .px-act{display:flex;align-items:center;justify-content:flex-end;gap:6px}.px-student-table td,.px-student-table th{white-space:nowrap}.px-student-table td:nth-child(2){min-width:132px;font-weight:600}.px-student-table td:nth-child(3){min-width:170px}.px-student-table td:nth-child(4){min-width:140px}.px-student-table td:nth-child(5),.px-student-table td:nth-child(6){min-width:164px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.px-student-table .px-act{min-width:146px}.px-student-table .px-act button+button{margin-left:5px}.px-student-table .px-btn-primary{gap:5px}.px-student-table .px-btn-danger svg,.px-student-table .px-btn-primary svg{width:15px;height:15px}.px-class-split{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:20px;align-items:start}.px-class-split>.px-card+.px-card{margin-top:0}.px-class-list-panel{position:sticky;top:20px;max-height:calc(100vh - 88px);overflow:auto}.px-class-list-panel .px-sec-head{align-items:flex-start;margin-bottom:18px}.px-class-list-panel .px-sec-head :is(h1,h2){font-size:20px}.px-class-list-panel .px-sec-head p{font-size:13px;line-height:1.45}.px-class-list-panel .px-class-search{width:100%}.px-class-list-panel .px-class-grid{grid-template-columns:1fr;gap:8px}.px-class-list-panel .px-class-card{min-height:0;gap:4px;padding:10px 13px;cursor:pointer}.px-class-list-panel .px-class-card>:first-child{margin-top:0}.px-class-list-panel .px-class-card-top h3{font-size:15.5px}.px-class-list-panel .px-class-card-top span{font-size:13px}.px-class-list-panel .px-class-meta{font-size:12px}.px-class-list-panel .px-class-foot{padding-top:4px}.px-class-list-panel .px-class-add{min-height:0;padding:12px;flex-direction:row}.px-class-list-panel .px-class-add .px-plus{width:32px;height:32px}.px-class-list-panel .px-class-add b{font-size:15px}.px-class-list-panel .px-class-add small{display:none}.px-class-detail-panel{min-width:0}.px-roster-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--px-line)}.px-roster-head>div{display:flex;align-items:center;gap:10px}.px-roster-head :is(h1,h2){margin:0;font-size:19px;font-weight:600;letter-spacing:-.25px}.px-roster-count{color:var(--px-ink-secondary);font-size:13.5px;font-weight:600}.px-roster-actions{display:flex;justify-content:flex-end;margin-bottom:10px}.px-roster-pick{position:relative}.px-roster-pick .px-assign-pop{position:absolute;right:0;z-index:6;width:280px}.px-roster-pick .px-assign-pop label{justify-content:flex-start}.px-roster-pick .px-assign-pop label em{margin-left:auto}.px-roster-hint{margin:12px 0 0;color:var(--px-ink-faint);font-size:12.5px}.px-student-class-pick{position:relative}.px-student-class-pick>button{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.px-student-class-pick .px-assign-pop{position:absolute;z-index:6;width:230px;background:var(--px-surface)}@media (max-width:760px){.px-page-head{align-items:flex-start;gap:14px}.px-metric-row{gap:14px}.px-class-split{grid-template-columns:1fr;gap:16px}.px-class-list-panel{position:static;max-height:none}.px-student-toolbar{align-items:stretch;flex-direction:column}.px-student-toolbar>input{width:100%}.px-student-filter{justify-content:space-between}.px-student-filter select{width:min(100%,260px)}.px-student-toolbar .px-seg{overflow-x:auto}.px-student-toolbar .px-seg button{flex:0 0 auto}}.px-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.px-empty-action{display:grid;justify-items:center;gap:10px;padding:44px 20px;color:var(--px-ink-secondary);font-size:15px;text-align:center}.px-empty-action h3{margin:0;color:var(--px-ink);font-size:20px;font-weight:600;letter-spacing:-.25px}.px-empty-action p{max-width:480px;margin:0;line-height:1.55}.px-empty-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:4px}.px-form-error{margin:2px 0 0;color:#b91c1c;font-size:14px}.px-skeleton{display:grid;gap:20px;max-width:1280px}.px-skeleton i{display:block;border-radius:var(--px-r-panel);background:linear-gradient(100deg,var(--px-tint-2) 40%,var(--px-tint) 50%,var(--px-tint-2) 60%);background-size:200% 100%;animation:pxShimmer 1.4s linear infinite}.px-skeleton-title{width:260px;height:34px}.px-skeleton-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.px-skeleton-grid i{height:128px;border-radius:var(--px-r-panel)}.px-skeleton-block{height:260px;border-radius:var(--px-r-panel)}@keyframes pxShimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.px-skeleton i{animation:none}}.px-assign{width:100%;max-width:1280px}.px-assign>.px-note{margin:0 0 16px}.px-assign-pop{margin-top:8px;padding:10px;border:1px solid var(--px-line);border-radius:var(--px-r-control);background:var(--px-tint)}.px-assign-pop>ul{display:grid;gap:2px;max-height:180px;margin:0 0 8px;padding:0;overflow:auto;list-style:none}.px-assign-pop .px-assign-row,.px-assign-pop label{display:flex;align-items:center;gap:8px;min-height:30px;margin:0;padding:3px 6px;border-radius:var(--px-r-control);font-size:13.5px;font-weight:600}.px-assign-pop label{cursor:pointer}.px-assign-row em{margin-left:auto;color:var(--px-ink-faint);font-size:11px;font-style:normal}.px-assign-pop label:hover{background:var(--px-surface)}.px-assign-pop input[type=checkbox]{width:15px;min-height:0;height:15px;margin:0;padding:0;accent-color:var(--px-primary-pressed)}.px-assign-pop label em{margin-left:auto;color:var(--px-ink-faint);font-size:11px;font-style:normal}.px-assign-pop>.px-btn-primary{width:100%;min-height:30px;font-size:13.5px}.px-assign-pop-empty{margin:0;padding:6px 2px;color:var(--px-ink-faint);font-size:13px}.px-grade{max-width:1080px}.px-grade>.px-note{margin:0 0 16px}.px-grade-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:18px}.px-grade-exam{display:grid;gap:6px;flex:1 1;min-width:240px;max-width:420px}.px-grade-exam>span{color:var(--px-ink-secondary);font-size:14px;font-weight:600}.px-grade-stats{display:flex;gap:16px;margin:0 0 5px}.px-grade-stats div{display:flex;align-items:baseline;gap:6px}.px-grade-stats dt{color:var(--px-ink-faint);font-size:13px}.px-grade-stats dd{margin:0;font-size:16px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.px-grade-actions{display:flex;gap:8px;margin-left:auto}.px-grade .px-note,.px-grade-table{margin-top:16px}.px-grade-table .px-table{min-width:640px}.px-grade-empty{padding:22px 0;color:var(--px-ink-faint);text-align:center}.px-status{display:inline-flex;padding:2px 9px;border:1px solid var(--px-line);border-radius:var(--px-r-pill);background:var(--px-tint);color:var(--px-ink-secondary);font-size:12.5px;font-weight:600;white-space:nowrap}.px-status.is-submitted{border-color:var(--px-line-strong);background:var(--px-surface);color:var(--px-ink)}.px-status.is-graded{border-color:var(--px-primary);background:var(--px-primary-soft);color:var(--px-primary-deep)}.px-status.is-review{border-color:#fde68a;background:#fef9c3;color:#a16207}.px-status.is-ready{border-color:var(--px-line-strong);background:var(--px-surface);color:var(--px-ink)}.px-status.is-running{border-color:#93c5fd;background:#eff6ff;color:#1d4ed8;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.px-status.is-collecting{border-color:var(--px-primary);background:var(--px-primary-soft);color:var(--px-primary-deep)}.px-run-head{align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px}.px-run-head h1{margin:0;font-size:24px;font-weight:600;letter-spacing:-.4px}.px-run-head p{margin:3px 0 0;color:var(--px-ink-faint);font-size:13.5px}.px-run .px-sec-head{min-height:36px;align-items:center;margin-bottom:14px}.px-run .px-sec-head .px-btn-ghost{min-height:32px;padding:4px 14px;font-size:13.5px;text-decoration:none}.px-dot{display:inline-flex;align-items:center;gap:6px;padding:2px 4px;border:0;border-radius:var(--px-r-control);background:none;color:var(--px-ink-secondary);font-size:12.5px;font-weight:600;white-space:nowrap;text-decoration:none}.px-dot:before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:var(--px-line-hover)}.px-dot.is-review:before{background:#f59e0b}.px-dot.is-ready:before{background:#94a3b8}.px-dot.is-running{color:#1d4ed8;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.px-dot.is-running:before{background:#2563eb}.px-dot.is-collecting{color:var(--px-primary-deep)}.px-dot.is-collecting:before{background:#65a30d}a.px-dot,button.px-dot{cursor:pointer;min-height:0}a.px-dot:hover,button.px-dot:hover{background:rgba(15,23,42,.05)}.px-toast{position:fixed;bottom:26px;left:50%;z-index:90;translate:-50% 0;display:flex;align-items:center;gap:8px;max-width:min(88vw,480px);padding:11px 18px;border:1px solid var(--px-line);border-radius:var(--px-r-pill);background:var(--px-ink);color:#fff;font-size:13.5px;font-weight:600;box-shadow:0 14px 34px rgba(15,23,42,.3);animation:px-toast-in .22s ease}.px-toast:before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--px-primary)}.px-toast.is-error:before{background:#fb7185}.px-toast.is-info:before{background:#94a3b8}@keyframes px-toast-in{0%{opacity:0;translate:-50% 8px}to{opacity:1;translate:-50% 0}}@media (prefers-reduced-motion:reduce){.px-toast{animation:none}}.px-run-durations{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%;max-width:360px}.px-run-durations button{min-height:46px;border:1px solid var(--px-line-strong);border-radius:var(--px-r-control);background:var(--px-surface);color:var(--px-ink-secondary);font-size:16px;font-weight:600}.px-run-durations button.is-active{border-color:var(--px-primary-pressed);background:var(--px-primary-soft);color:var(--px-primary-deep)}.px-run-startbtn{background:var(--px-primary);color:var(--px-on-primary)}.px-run-startbtn:hover{background:var(--px-primary-pressed)}.px-run-new{min-height:32px;padding:5px 14px;font-size:13.5px;text-decoration:none}.px-run-qr-loading{color:var(--px-ink-secondary);font-size:15px;padding:40px 0}.px-run-modal{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(15,23,42,.6);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.px-run-modal-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:14px;width:min(94vw,620px);max-height:94vh;padding:44px 36px 40px;overflow:auto;border-radius:24px;box-shadow:0 32px 80px rgba(15,23,42,.35);text-align:center}.px-run-modal-card.is-zoom{width:min(96vw,1040px);padding:28px}.px-run-modal-close{position:absolute;top:14px;right:14px;display:grid;width:36px;min-height:36px;place-items:center;padding:0;border-radius:var(--px-r-pill);border:1px solid var(--px-line);background:var(--px-surface);color:var(--px-ink-secondary)}.px-run-modal-close svg{width:16px;height:16px}.px-run-modal-close:hover{background:var(--px-tint)}.px-run-modal-title{max-width:100%;overflow:hidden;font-size:clamp(17px,2.4vw,22px);font-weight:600;letter-spacing:-.3px;text-overflow:ellipsis;white-space:nowrap}.px-run-modal-clock{font-size:clamp(88px,17vw,200px);letter-spacing:-.02em;line-height:1.05;color:var(--px-ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.px-run-modal-clock.is-over{color:var(--px-danger)}.px-run-modal-sub{margin:0;color:var(--px-ink-secondary);font-size:16px}.px-run-modal-end{min-height:54px;padding:14px 44px;border-radius:var(--px-r-panel);font-size:18px;font-weight:600}.px-run-modal-qrbtn{padding:0;border:0;background:none;line-height:0;cursor:zoom-in}.px-run-modal-qrbtn[aria-pressed=true]{cursor:zoom-out}.px-run-modal-qrbtn img{width:min(56vmin,380px);height:auto;border:1px solid var(--px-line);border-radius:var(--px-r-panel)}.px-run-modal-card.is-zoom .px-run-modal-qrbtn img{width:min(84vmin,860px)}.px-run-modal-qrinfo{display:grid;gap:5px;max-width:100%}.px-run-modal-qrinfo b{font-size:15.5px}.px-run-modal-qrinfo a{overflow:hidden;color:var(--px-primary-deep);font-size:13.5px;font-weight:600;text-decoration:underline;text-overflow:ellipsis;white-space:nowrap}.px-run-modal-qrinfo small{color:var(--px-ink-secondary);font-size:12.5px}a.px-status{text-decoration:none}button.px-status{cursor:pointer}button.px-status:hover{filter:brightness(.97)}.px-report-review{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);align-items:start;max-width:1200px}.px-report-main,.px-report-review{display:grid;gap:20px}.px-report-main>.px-card+.px-card{margin-top:0}.px-block-title{margin:0 0 6px;font-size:18px;font-weight:600;letter-spacing:-.2px}.px-block-desc{margin:0 0 14px;color:var(--px-ink-secondary);font-size:14px;line-height:1.5}.px-report-side{display:grid;gap:12px}.px-report-side .px-block-title{margin-bottom:0}.px-report-side .px-block-desc{margin:0}.px-approve-steps{display:grid;gap:8px;margin:2px 0 4px;padding:0;list-style:none;counter-reset:approve}.px-approve-steps li{display:flex;align-items:center;gap:10px;color:var(--px-ink-secondary);font-size:14px;counter-increment:approve}.px-approve-steps li:before{content:counter(approve);display:grid;width:22px;height:22px;flex:none;place-items:center;border:1px solid var(--px-line);border-radius:var(--px-r-pill);background:var(--px-tint);color:var(--px-ink-faint);font-size:11.5px;font-weight:600}.px-prep h3{margin:0 0 10px;font-size:18px;font-weight:600;letter-spacing:-.2px}.px-prep p{margin:0;color:var(--px-ink-secondary);line-height:1.6}@media (max-width:1100px){.px-assign-workspace{grid-template-columns:300px minmax(0,1fr);gap:18px}.px-report-review{grid-template-columns:1fr}}@media (max-width:760px){.px-grade-actions{margin-left:0}}.px-settings-card{max-width:720px}.px-settings-list{display:grid;gap:10px;margin:0}.px-settings-list>div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;padding:9px 0;border-top:1px solid var(--px-line);font-size:15px}.px-settings-list dt{color:var(--px-ink-faint)}.px-settings-list dd{margin:0;font-weight:600}.px-report-list{display:grid;gap:20px;max-width:1120px}.px-report-list>.px-card+.px-card{margin-top:0}.px-report-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}.px-report-ready-list,.px-report-rows{display:grid;margin:0;padding:0;list-style:none}.px-report-ready-list li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--px-line)}.px-report-ready-list li>div{display:grid;min-width:0;gap:2px}.px-report-ready-list strong,.px-report-rows strong{overflow:hidden;color:var(--px-ink);text-overflow:ellipsis;white-space:nowrap}.px-report-ready-list span{color:var(--px-ink-secondary);font-size:14px}.px-report-ready-list small{color:var(--px-ink-faint);font-size:12.5px}.px-report-ready-list em{color:var(--px-danger);font-size:12px;font-style:normal}.px-report-rows li{border-top:1px solid var(--px-line)}.px-report-rows a{display:grid;grid-template-columns:minmax(0,1fr) auto 150px 54px;align-items:center;gap:16px;min-height:54px;padding:7px 8px;border-radius:var(--px-r-control)}.px-report-rows a:hover{background:var(--px-tint)}.px-report-rows a>div{display:grid;min-width:0}.px-report-rows a>div span{overflow:hidden;color:var(--px-ink-secondary);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.px-report-rows time{color:var(--px-ink-faint);font-size:12.5px;text-align:right}.px-report-rows a>b{font-size:13px;text-align:right}.px-report-facts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;margin:0 0 20px;overflow:hidden;border:1px solid var(--px-line);border-radius:var(--px-r-panel);background:var(--px-line)}.px-report-facts div{min-width:0;padding:12px;background:var(--px-surface)}.px-report-facts dt{color:var(--px-ink-faint);font-size:12px}.px-report-facts dd{margin:3px 0 0;overflow:hidden;font-size:15px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.px-report-types{display:grid;gap:10px}.px-report-types>div{display:grid;grid-template-columns:minmax(110px,1fr) 48px minmax(160px,2fr);align-items:center;gap:12px}.px-report-types span{display:flex;min-width:0;align-items:baseline;gap:7px}.px-report-types span b{overflow:hidden;font-size:13.5px;text-overflow:ellipsis;white-space:nowrap}.px-report-types span small{color:var(--px-ink-faint);font-size:11.5px;white-space:nowrap}.px-report-types>div>strong{font-size:13px;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.px-report-types i{display:block;height:8px;overflow:hidden;border-radius:var(--px-r-pill);background:var(--px-tint-2)}.px-report-types i em{display:block;height:100%;border-radius:inherit;background:var(--px-primary-pressed)}.px-report-copy{display:grid;gap:14px}.px-report-copy .px-block-desc{margin-top:-10px}.px-report-copy label,.px-share-box label{display:grid;gap:6px;color:var(--px-ink-secondary);font-size:13px;font-weight:600}.px-report-copy textarea{min-height:72px;resize:vertical;line-height:1.5}.px-report-form-actions{display:flex;justify-content:flex-end}.px-report-side{position:sticky;top:16px}.px-report-side>.px-btn-ghost,.px-report-side>.px-btn-primary{width:100%;min-height:40px}.px-share-box{display:grid;gap:10px;padding:12px;border:1px solid var(--px-line);border-radius:var(--px-r-panel);background:var(--px-tint)}.px-share-box input{font-size:13px}.px-share-box small{color:var(--px-ink-faint)}.px-share-box>div{display:flex;gap:8px}.px-share-box>div>*{flex:1 1}.px-share-box>.px-btn-danger{min-height:36px}@media (max-width:900px){.px-report-ready-list li{grid-template-columns:minmax(0,1fr) auto}.px-report-ready-list li>em{grid-column:1}.px-report-ready-list li>button{grid-column:2;grid-row:1/span 2}.px-report-facts{grid-template-columns:repeat(3,minmax(0,1fr))}.px-report-side{position:static}}.px-welcome{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(15,23,42,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.px-welcome-card{display:grid;gap:26px;width:min(660px,100%);max-height:calc(100vh - 40px);overflow-y:auto;padding:clamp(30px,4.5vw,48px);border:1px solid var(--px-line);border-radius:26px;background:var(--px-surface);box-shadow:0 30px 80px rgba(15,23,42,.3);animation:px-welcome-in .3s cubic-bezier(.16,1,.3,1)}@keyframes px-welcome-in{0%{opacity:0;transform:translateY(18px) scale(.97)}}.px-welcome-hello{margin:0 0 -20px;color:var(--px-primary-deep);font-size:17px;font-weight:600}.px-welcome-card h2{margin:0;color:var(--px-ink);font-size:clamp(28px,3.4vw,36px);font-weight:600;letter-spacing:-.8px}.px-welcome-field{display:grid;gap:12px;margin:0;padding:0;border:0}.px-welcome-field>legend,.px-welcome-field>span{padding:0;color:var(--px-ink-secondary);font-size:16px;font-weight:600}.px-welcome-field>legend small{margin-left:6px;color:var(--px-ink-faint);font-size:13.5px;font-weight:600}.px-welcome-field input{width:100%;padding:10px 2px 12px;border:0;border-bottom:2.5px solid var(--px-line-strong);border-radius:0;background:none;color:var(--px-ink);font-size:clamp(24px,2.8vw,30px);font-weight:600;letter-spacing:-.4px}.px-welcome-field input:focus{outline:none;border-bottom-color:var(--px-primary)}.px-welcome-field input::placeholder{color:var(--px-line-hover);font-weight:600}.px-welcome-levels{display:grid;grid-template-columns:1fr 1fr;gap:12px}.px-welcome-level{padding:20px 10px;border:2px solid var(--px-line);border-radius:16px;background:var(--px-tint);color:var(--px-ink-secondary);font-size:23px;font-weight:600;cursor:pointer;transition:border-color .12s,background .12s,color .12s}.px-welcome-level:hover{border-color:var(--px-line-hover)}.px-welcome-level.is-middle.is-on{border-color:#7cc4f0;background:#e9f5fe;color:#0c4a6e}.px-welcome-level.is-high.is-on{border-color:#aed455;background:#f2fadd;color:var(--px-primary-deep)}.px-welcome-subjects{display:flex;flex-wrap:wrap;gap:10px}.px-welcome-subject{padding:13px 26px;border:2px solid var(--px-line);border-radius:999px;background:var(--px-surface);color:var(--px-ink-secondary);font-size:19px;font-weight:600;cursor:pointer;transition:border-color .12s,background .12s,color .12s}.px-welcome-subject:hover{border-color:var(--px-line-hover)}.px-welcome-subject.is-on{border-color:var(--px-primary);background:var(--px-primary-soft);color:var(--px-primary-deep)}.px-welcome-go{margin-top:4px;padding:18px 10px;border:0;border-radius:16px;background:var(--px-primary);color:var(--px-on-primary);font-size:21px;font-weight:600;cursor:pointer;box-shadow:0 10px 26px var(--px-primary-glow);transition:background .12s,transform .12s}.px-welcome-go:hover{background:var(--px-primary-pressed)}.px-welcome-go:active{transform:translateY(1px)}.px-welcome-go:disabled{opacity:.6;cursor:default}@media (max-width:560px){.px-welcome{padding:12px}.px-welcome-card{gap:20px}.px-welcome-level{padding:15px 8px;font-size:19px}.px-welcome-subject{padding:11px 20px;font-size:16.5px}}.px-student-search{display:flex;align-items:center;gap:8px;margin-bottom:14px}.px-student-search input{width:min(320px,100%);padding:9px 12px;border:1px solid var(--px-line);border-radius:9px;background:var(--px-surface);color:var(--px-ink);font-size:14px}.px-student-search input:focus{outline:none;border-color:var(--px-primary)}.px-student-search button{padding:9px 16px;border:1px solid var(--px-line-strong);border-radius:9px;background:var(--px-tint);color:var(--px-ink);font-size:14px;font-weight:600;cursor:pointer}.px-student-search button:hover{background:var(--px-tint-2)}.px-student-search-clear{color:var(--px-ink-faint);font-size:13px;text-decoration:underline;text-underline-offset:3px}.px-student-pager{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:16px;color:var(--px-ink-faint);font-size:13px}.px-student-pager a{padding:7px 14px;border:1px solid var(--px-line);border-radius:999px;color:var(--px-ink-secondary);font-weight:600}.px-student-pager a:hover{border-color:var(--px-line-hover);background:var(--px-tint)}.px-side{display:flex;flex-direction:column;gap:4px;width:232px;height:100%;flex-shrink:0;padding:14px 12px 12px;overflow:hidden auto;background:var(--px-tint);border-right:1px solid var(--px-line)}.px-side-brand{display:flex;align-items:center;padding:2px 8px 14px}.px-side-brand a{display:inline-flex;align-items:center;gap:8px;color:var(--px-ink);font-size:15px;font-weight:600;letter-spacing:-.03em}.px-side-space{display:flex;align-items:center;gap:8px;min-height:36px;margin-top:8px;padding:5px 8px;border-radius:10px;background:var(--px-surface);font-size:13.5px}.px-side-space i{display:grid;place-items:center;width:22px;height:22px;flex:none;border-radius:7px;background:var(--px-h0);color:var(--px-h0-ink);font-size:13px;font-style:normal;font-weight:600}.px-side-space b{overflow:hidden;letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap}.px-side-group{display:grid;gap:1px;margin-top:10px}.px-side-item{display:flex;align-items:center;gap:10px;min-height:36px;padding:6px 10px;border-radius:9px;font-weight:600;transition:background-color var(--px-t),color var(--px-t),box-shadow var(--px-t)}.px-side-item svg{width:17px;height:17px;flex:none;stroke-width:1.7}.px-side-item:hover{background:rgba(255,253,249,.8)}.px-side-spacer{flex:1 1;min-height:12px}.px-side-account{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:center;margin-top:6px;padding:10px 8px 6px;border-top:1px solid var(--px-line)}.px-side-account-mark{display:none}.px-side-out{grid-column:1/-1;justify-self:start;min-height:26px;padding:2px 8px;border-radius:var(--px-r-pill);font-size:12.5px}.px-side-out:hover{background:var(--px-tint-2)}.px-topbar{align-items:center;justify-content:flex-start;height:52px;padding:0 24px;border-bottom:0;background:transparent}.px-body{background:var(--px-tint)}.px-page{padding:8px 28px 64px}.px h1,.px h2,.px-class-card-top h3,.px-empty-action h3,.px-run-modal-title,.px-welcome-card h2{font-weight:600;letter-spacing:-.025em}.px-run-head h1{font-size:30px}.px-run-head p{margin-top:4px;font-size:16px}.px-btn-primary{border-color:var(--px-ink);background:var(--px-ink);color:#fff;box-shadow:0 6px 16px -10px rgba(11,11,10,.6)}.px-btn-primary:hover{background:#24241f;box-shadow:0 10px 20px -10px rgba(11,11,10,.6)}.px-btn-primary:disabled:hover{background:var(--px-ink)}.px-btn-secondary{border-color:transparent;background:var(--px-h0);color:var(--px-h0-ink)}.px-btn-secondary:hover{background:#d2ec9d;box-shadow:0 6px 14px -8px rgba(63,98,18,.4)}.px-btn-ghost{border-color:transparent;background:var(--px-surface)}.px-btn-ghost:hover{background:#fff;color:var(--px-ink)}.px-run-startbtn{background:var(--px-ink);color:#fff}.px-run-startbtn:hover{background:#24241f}.px-run .px-card{border:0}.px-run .px-card,.px-run .px-card-pad{background:transparent;box-shadow:none}.px-run .px-card-pad{padding:8px 4px}.px-dot.is-running{color:var(--px-m0-ink)}.px-dot.is-running:before{background:#2c6cb0}.px-status.is-running{border-color:transparent;background:var(--px-m0);color:var(--px-m0-ink)}.px-status.is-collecting,.px-status.is-graded{border-color:transparent;background:var(--px-h0);color:var(--px-h0-ink)}.px-status.is-review{border-color:transparent;background:var(--px-review-soft);color:var(--px-review)}.px-dot.is-review:before{background:#d9772e}.px-card,.px-class-add,.px-class-card,.px-pane,.px-table-wrap{border-color:transparent}.px-class-add{border:1.5px dashed var(--px-line-strong);box-shadow:none}.px-run-modal{background:rgba(30,24,10,.55)}.px-run-modal-card{background:var(--px-surface)}.px-run-modal-clock{font-weight:600}.px-toast{border-color:transparent}@media (max-width:860px){.px-side{width:68px;padding:12px 8px}.px-side-brand span,.px-side-item span,.px-side-out,.px-side-space b{display:none}.px-side-space{justify-content:center;padding:5px}.px-side-account{grid-template-columns:1fr;justify-items:center}}.px-class-card.is-middle,.px-class-card.is-middle:hover{border-color:transparent;background:var(--px-m0);color:var(--px-m0-ink)}.px-class-card.is-high,.px-class-card.is-high:hover{border-color:transparent;background:var(--px-h0);color:var(--px-h0-ink)}.px-class-card.is-high.is-selected,.px-class-card.is-middle.is-selected,.px-class-card[aria-pressed=true]{box-shadow:0 0 0 2px var(--px-ink)}@media (max-width:860px){.px-run-head{flex-direction:column;align-items:flex-start;gap:10px}.px-page{padding:4px 14px 48px}}.px-run-head{justify-content:flex-start;margin-bottom:4px}.px-run-head .px-run-new{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:7px 18px;font-size:14.5px;text-decoration:none}.px-run-head .px-run-new svg{width:17px;height:17px;stroke-width:1.9}.px-agenda-empty{display:grid;gap:10px;justify-items:start;margin-bottom:40px;padding:32px;border-radius:20px;background:var(--px-h0);color:var(--px-h0-ink)}.px-agenda-empty h2{font-size:28px;font-weight:600;letter-spacing:-.02em}.px-agenda-empty p{margin:0 0 8px;font-size:16px;opacity:.85}.px-agenda-empty .px-empty-links{justify-content:flex-start;margin:0}.px-rex-grip{margin-top:4px;color:var(--px-ink-faint)}.px-wclass{position:relative;display:grid;gap:5px;padding:10px 10px 10px 17px;border-radius:12px;background:var(--px-surface);transition:background-color .2s ease,box-shadow .25s cubic-bezier(.16,1,.3,1),transform .25s cubic-bezier(.16,1,.3,1)}.px-wclass:before{content:"";position:absolute;left:8px;top:12px;bottom:12px;width:3px;border-radius:2px;background:var(--px-line-strong)}.px-wclass.is-middle:before{background:#38bdf8}.px-wclass.is-high:before{background:#a3e635}.px-wclass.is-target{box-shadow:0 0 0 1.5px var(--px-line-strong) inset}.px-wclass.is-drop{transform:scale(1.02);background:var(--px-h0);box-shadow:0 0 0 2px var(--px-ink) inset}.px-wclass-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}.px-wclass-head b{font-size:15px;font-weight:600;letter-spacing:-.01em}.px-wclass-head span{color:var(--px-ink-faint);font-size:12px}.px-wclass-hint{margin:0;color:var(--px-ink-faint);font-size:13px;pointer-events:none}.px-wclass-rows{display:grid;gap:2px;margin:0;padding:0;list-style:none;pointer-events:none}.px-wclass-rows>*{pointer-events:auto}.px-wexam{gap:4px 10px;min-height:36px;margin:0 -4px;padding:3px 6px;border-radius:8px;transition:background-color .15s ease}.px-wexam:hover{background:var(--px-tint)}.px-wexam-title{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.px-wexam-act{margin-left:auto}.px-wexam-act .px-btn-danger,.px-wexam-act .px-btn-primary,.px-wexam-act .px-btn-secondary{min-height:30px;padding:3px 12px;font-size:13px;white-space:nowrap}.px-wexam-act .px-dot{font-size:13px}.px-wexam-act .px-dot.is-running i{font-style:normal;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.px-wexam-act .px-dot.is-running:hover i{text-decoration:underline;text-underline-offset:3px}.px-sess-x{width:26px;min-height:26px;padding:0;border-radius:50%;color:inherit;opacity:.55;font-size:17px;line-height:1}.px-sess-x:hover{background:rgba(11,11,10,.08);opacity:1}.px-day-chip{color:var(--px-ink-faint);font-size:12.5px;font-weight:600}.px-daypick{display:flex;gap:6px}.px-daypick-chip{width:44px;min-height:44px;padding:0;border:2px solid transparent;border-radius:50%;background:var(--px-tint-2);color:var(--px-ink-secondary);font-size:var(--px-fs-md);font-weight:600}.px-daypick-chip:hover{background:var(--px-line)}.px-daypick-chip.is-on{background:var(--px-primary-deep);color:#fff}.px-home-workspace{grid-template-columns:minmax(0,1fr) 310px;gap:26px}.px-classboard-head,.px-examqueue-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.px-classboard-head>div,.px-examqueue-head>div{display:flex;align-items:baseline;gap:8px;min-width:0}.px-classboard-head span,.px-examqueue-head span{font-size:12.5px}.px-class-search{width:min(220px,40%)}.px-class-search input{width:100%;min-height:36px;padding:6px 12px;border:1px solid var(--px-line);font-size:13.5px}.px-class-search input:focus{border-color:var(--px-ink-secondary);outline:2px solid rgba(11,11,10,.1);outline-offset:1px}.px-board-filters{gap:12px;margin:14px 0 16px;padding-bottom:12px;border-bottom:1px solid var(--px-line)}.px-daytabs,.px-leveltabs{display:flex;align-items:center;gap:3px}.px-daytabs{min-width:0;overflow-x:auto;scrollbar-width:none}.px-daytabs::-webkit-scrollbar{display:none}.px-daytabs button,.px-leveltabs button{min-width:34px;min-height:34px;padding:5px 9px;border-radius:9px;color:var(--px-ink-secondary);font-size:13px;font-weight:600;white-space:nowrap}.px-daytabs button:hover,.px-leveltabs button:hover{background:var(--px-tint-2);color:var(--px-ink)}.px-daytabs button.is-on{background:var(--px-primary-deep);color:#fff}.px-leveltabs{flex:none;padding-left:10px;border-left:1px solid var(--px-line)}.px-leveltabs button.is-on{background:var(--px-h0);color:var(--px-h0-ink)}.px-classboard-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none}.px-classboard .px-wclass{min-width:0;min-height:154px;align-content:start;gap:9px;padding:15px 16px}.px-classboard .px-wclass:before{left:16px;top:20px;bottom:auto;width:8px;height:8px;border-radius:50%}.px-classboard .px-wclass-head{align-items:flex-start;justify-content:space-between;gap:10px;padding-left:16px}.px-classboard .px-wclass-head>div{display:grid;gap:2px;min-width:0}.px-classboard .px-wclass-head b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.px-classboard .px-wclass-days{flex:none;padding:2px 7px;border-radius:7px;background:var(--px-tint-2);color:var(--px-ink-secondary);font-size:11.5px}.px-classboard .px-wclass-rows{padding-top:2px;border-top:1px solid var(--px-line)}.px-classboard .px-wclass-hint{padding:8px 0}.px-classboard-empty{display:flex;flex-wrap:wrap;align-items:center;gap:10px;min-height:180px;padding:24px;border-radius:14px;background:var(--px-surface)}.px-classboard-empty p{flex:1 1 100%;margin:0;color:var(--px-ink-secondary)}.px-examqueue{top:70px;max-height:calc(100vh - 100px);overflow:auto;border-radius:16px;background:var(--px-tint-2)}.px-examqueue-list{gap:0;margin:14px 0 0;padding:0;list-style:none}.px-qexam{gap:7px;padding:14px 2px;border-bottom:1px solid rgba(11,11,10,.1);transition:opacity .18s ease}.px-qexam:last-child{border-bottom:0}.px-qexam.is-dragging{opacity:.42}.px-qexam.is-saved{border-radius:10px;box-shadow:0 0 0 2px var(--px-primary) inset}.px-qexam-title{gap:8px;min-width:0}.px-qexam-title>a{min-width:0;overflow:hidden;font-size:14px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.px-qexam>p{justify-content:space-between;gap:8px;margin:0 0 0 15px;color:inherit;font-size:12px;opacity:.72}.px-examqueue-empty{display:grid;gap:8px;padding:26px 2px;color:var(--px-ink-secondary);font-size:13.5px}.px-examqueue-empty p{margin:0}.px-examqueue-empty a{text-decoration:underline}.px-exams-page{display:grid;gap:18px}.px-exams-toolbar{display:flex;align-items:center;gap:12px;min-height:44px}.px-exams-count{display:inline-flex;align-items:baseline;gap:4px;white-space:nowrap}.px-exams-count b{font-size:20px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.px-exams-count span{color:var(--px-ink-faint);font-size:13px}.px-exams-search{width:min(300px,38%);margin-left:auto}.px-exams-search input{width:100%;min-height:40px;padding:7px 13px;border:1px solid var(--px-line);border-radius:11px;background:var(--px-surface);color:var(--px-ink);font-size:14px}.px-exams-search input:focus{border-color:var(--px-ink-secondary);outline:2px solid rgba(11,11,10,.1);outline-offset:1px}.px-exams-new{gap:7px;min-height:40px}.px-exams-new svg{width:17px;height:17px}.px-exams-table-wrap{border:0;border-radius:16px}.px-exams-table{min-width:760px}.px-exams-table td,.px-exams-table th{padding-top:14px;padding-bottom:14px}.px-exams-table td:first-child{width:42%}.px-exams-table time{color:var(--px-ink-faint);font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.px-exams-table .px-act{width:88px}.px-exams-table .px-act .px-btn-ghost{min-height:32px;text-decoration:none}.px-exams-table tr.is-saved td{background:var(--px-h0);color:var(--px-h0-ink)}.px-exam-title-link{display:inline-block;max-width:100%;overflow:hidden;font-weight:600;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.px-exam-title-link:hover{text-decoration:underline;text-underline-offset:3px}.px-exams-empty{display:grid;min-height:300px;place-items:center;align-content:center;gap:10px;padding:40px;border-radius:16px;background:var(--px-surface);text-align:center}.px-exams-empty h2{margin:0;font-size:23px}.px-exams-empty p{margin:0 0 8px;color:var(--px-ink-secondary)}.px-exams-empty.is-search{min-height:220px}.px-exam-create-backdrop{position:fixed;inset:0;z-index:110;display:grid;place-items:center;padding:24px;background:rgba(30,24,10,.58)}.px-exam-create-modal{display:flex;width:min(1180px,100%);height:min(820px,calc(100vh - 48px));min-height:520px;flex-direction:column;overflow:hidden;border-radius:18px;background:var(--px-surface);box-shadow:var(--px-shadow-pop)}.px-exam-create-head{display:flex;min-height:68px;flex:none;align-items:center;justify-content:space-between;gap:20px;padding:12px 18px 12px 22px;background:var(--px-surface)}.px-exam-create-head h2{margin:0;font-size:20px}.px-exam-create-head p{margin:2px 0 0;color:var(--px-ink-faint);font-size:13px}.px-exam-create-close{display:grid;width:38px;min-height:38px;flex:none;place-items:center;border-radius:50%;color:var(--px-ink-secondary);font-size:22px;line-height:1}.px-exam-create-close:hover{background:var(--px-tint-2);color:var(--px-ink)}.px-exam-create-body{flex:1 1;min-height:0;overflow:hidden}.px-work.is-modal,.px-work.is-modal .px-work-canvas{height:100%}@media (max-width:860px){.px-exams-toolbar{align-items:stretch;flex-wrap:wrap}.px-exams-search{order:3;width:100%;margin-left:0}.px-exams-new{margin-left:auto}.px-exam-create-backdrop{padding:10px}.px-exam-create-modal{height:calc(100vh - 20px);min-height:0;border-radius:14px}.px-exam-create-head{min-height:62px;padding:10px 12px 10px 16px}.px-exam-create-head p{display:none}}@media (max-width:1120px){.px-home-workspace{grid-template-columns:minmax(0,1fr) 280px;gap:18px}.px-classboard-list{grid-template-columns:1fr}}@media (max-width:860px){.px-run-head{flex-direction:column;align-items:flex-start}.px-home-workspace{grid-template-columns:1fr}.px-examqueue{position:static;max-height:none}.px-classboard-head{align-items:flex-start}.px-class-search{width:min(190px,48%)}.px-board-filters{align-items:flex-start;flex-direction:column}.px-leveltabs{padding-left:0;border-left:0}}.px-topbar-right{position:absolute;right:24px;top:50%;translate:0 -50%;display:inline-flex;align-items:center;gap:8px}.px-help{min-height:28px;padding:3px 12px;border-radius:var(--px-r-pill);background:var(--px-surface);font-size:13px;font-weight:600}.px-help:hover{background:#fff}.px-coach{position:fixed;inset:0;z-index:95}.px-coach-hole{position:fixed;border-radius:14px;pointer-events:none;box-shadow:0 0 0 9999px rgba(20,18,12,.55),0 0 0 2px var(--px-primary) inset;transition:top .28s cubic-bezier(.16,1,.3,1),left .28s cubic-bezier(.16,1,.3,1),width .28s cubic-bezier(.16,1,.3,1),height .28s cubic-bezier(.16,1,.3,1)}.px-coach-bubble{position:fixed;width:min(320px,calc(100vw - 24px));padding:18px 20px 16px;overflow:auto;border-radius:16px;background:var(--px-surface);box-shadow:var(--px-shadow-pop);transition:top .28s cubic-bezier(.16,1,.3,1),left .28s cubic-bezier(.16,1,.3,1)}.px .px-coach-bubble:is(:focus,:focus-visible){outline:none}.px-coach-count{margin:0 0 6px;color:var(--px-ink-faint);font-size:12.5px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.px-coach-bubble h2{font-size:20px;font-weight:600;letter-spacing:-.02em}.px-coach-body{margin:8px 0 0;color:var(--px-ink-secondary);font-size:15px;line-height:1.55}.px-coach-actions{display:flex;align-items:center;gap:8px;margin-top:16px}.px-coach-actions .px-btn-ghost,.px-coach-actions .px-btn-primary{min-height:32px;padding:4px 14px;font-size:14px}.px-coach-actions .px-btn-primary{margin-left:auto}.px-coach-skip{min-height:32px;padding:4px 8px;border-radius:var(--px-r-pill);color:var(--px-ink-faint);font-size:13.5px}.px-coach-skip:hover{background:var(--px-tint-2);color:var(--px-ink)}@media (prefers-reduced-motion:reduce){.px-coach-bubble,.px-coach-hole{transition:none}}@media (max-width:860px){.px-topbar-right{right:14px}.px-help{padding:3px 9px}}.px-settings{width:min(100%,720px);margin-inline:0}@media (max-width:900px){.px-work-split{grid-template-columns:1fr!important;grid-template-rows:auto auto!important;overflow:auto!important}.px-pane{min-height:42vh}.px-dock-actions{flex-wrap:wrap;flex-shrink:1;justify-content:flex-end;gap:8px}.px-ai-hero,.px-dock-actions .px-btn-ghost,.px-dock-save{flex:0 1 auto}}@media (max-width:860px){.px-sec-head{flex-wrap:wrap;gap:10px 14px}.px-sec-head :is(h1,h2){flex:1 1 100%}.px-sec-head .px-seg{flex:1 1 100%;justify-content:space-between}.px-sec-head .px-seg button{flex:1 1}.px-side-brand a{min-width:40px;min-height:40px;align-items:center;justify-content:center;border-radius:10px}.px-sess-x{width:32px;min-height:32px;font-size:19px}.px-class-foot-inline .px-btn-danger,.px-class-foot-inline .px-btn-ghost{min-height:34px;padding:5px 14px}button.px-class-card-top{min-height:40px;align-items:center}.px-block-desc a{display:inline-block;padding:5px 0}}.px-topbar-title{margin:0;color:var(--px-ink);font-size:16px;letter-spacing:-.01em}@media (max-width:860px){.px-topbar-title{font-size:15px}.px-daytabs{flex-wrap:wrap;overflow:visible}.px-report-rows a{grid-template-columns:minmax(0,1fr) auto;gap:10px}.px-report-rows a>b,.px-report-rows time{display:none}.px-report-ready-list li{grid-template-columns:minmax(0,1fr)}.px-report-ready-list li>button{grid-column:1;grid-row:auto;justify-self:start}.px-btn-danger,.px-btn-ghost,.px-btn-primary,.px-btn-secondary,.px-class-foot-inline .px-btn-danger,.px-class-foot-inline .px-btn-ghost,.px-daytabs button,.px-help,.px-leveltabs button,.px-seg button,.px-side-out,.px-wexam-act .px-btn-danger,.px-wexam-act .px-btn-primary,.px-wexam-act .px-btn-secondary{min-height:36px}.px-examqueue-empty a{display:inline-block;padding:8px 0}}.px-body,.px-shell{background:var(--px-surface)}.px-work-canvas{background:var(--px-tint)}.px-page{width:100%;max-width:1480px;padding:32px 40px 80px}.px-skip-link{position:fixed;left:16px;top:-100px;z-index:1000;padding:12px 20px;border-radius:var(--px-r-control);background:var(--px-ink);color:#fff}.px-skip-link:focus{top:12px}.px-workspace-main{display:flex;flex:1 1;min-height:0;flex-direction:column}.px-workspace-main>.px-work{flex:1 1}.px-side{width:240px;gap:0;padding:16px 12px 12px;background:var(--px-nav-surface);border-right:1px solid #dfe7d9}.px-side-brand{padding:4px 12px 16px;margin-bottom:0;border-bottom:1px solid #dfe7d9}.px-side-brand a{min-height:32px;font-size:var(--px-fs-lg);letter-spacing:-.02em}.px-side-space{margin:12px 0 0;padding:8px 12px;min-height:40px;background:transparent;border-radius:0;color:var(--px-ink);font-size:15px}.px-side-space b{font-weight:600}.px-side-section{margin-top:16px}.px-side-label{margin:0 12px 6px;color:var(--px-ink-faint);font-size:var(--px-fs-cap);font-weight:600;letter-spacing:.04em}.px-side-group{gap:2px}.px-side-item{min-height:40px;padding:8px 12px;gap:12px;border-radius:8px;color:var(--px-ink-secondary);font-size:15px;font-weight:400}.px-side-item svg{width:18px;height:18px}.px-side-item:hover{background:#e7efe0;color:var(--px-ink)}.px-side-item.is-current{background:var(--px-surface);color:var(--px-ink);font-weight:600;box-shadow:0 0 0 1px #dfe7d9}.px-side-item.is-current svg{color:var(--px-primary-deep);stroke-width:2}.px-side-account{display:block;margin-top:12px;padding:12px 12px 0;border-top:1px solid #dfe7d9;font-size:15px}.px-side-account summary{display:flex;align-items:center;gap:6px;min-height:40px;color:var(--px-ink-secondary);cursor:pointer;list-style:none;overflow-wrap:anywhere}.px-side-account summary::-webkit-details-marker{display:none}.px-side-account summary:after{content:"";flex:none;width:6px;height:6px;margin-left:auto;border-right:1.5px solid;border-bottom:1.5px solid;transform:rotate(45deg) translate(-2px,-2px)}.px-side-account[open] summary:after{transform:rotate(-135deg) translate(-2px,-2px)}.px-side-account small{display:block;color:var(--px-ink-faint);font-size:var(--px-fs-sm)}.px-side-out{min-height:32px;margin-top:4px;padding:4px 0;color:var(--px-ink-faint);font-size:var(--px-fs-base)}.px-side-out:hover{color:var(--px-ink)}.px-topbar{position:relative;height:60px;padding:0 36px;border-bottom:1px solid var(--px-line);background:var(--px-surface)}.px-topbar-title{font-size:var(--px-fs-xl);font-weight:600;letter-spacing:-.025em}.px-topbar-right{right:36px}.px-help{display:inline-flex;align-items:center;min-height:32px;padding:6px 10px;border-radius:var(--px-r-control);background:transparent;color:var(--px-ink-secondary);font-size:var(--px-fs-base)}.px-help:hover{background:var(--px-tint);color:var(--px-ink)}.px :is(.px-btn-primary,.px-btn-secondary,.px-btn-ghost,.px-btn-danger){min-height:34px;padding:6px 14px;border-radius:var(--px-r-control);font-size:var(--px-fs-base);font-weight:600;box-shadow:none;transform:none}.px-btn-primary{border:1px solid var(--px-primary);background:var(--px-primary);color:var(--px-on-primary)}.px-btn-primary:hover:not(:disabled){border-color:var(--px-primary-pressed);background:var(--px-primary-pressed);box-shadow:none}.px-btn-ghost,.px-btn-secondary{border:1px solid var(--px-line-strong);background:var(--px-surface);color:var(--px-ink)}.px-btn-ghost:hover:not(:disabled),.px-btn-secondary:hover:not(:disabled){border-color:var(--px-line-hover);background:var(--px-tint);box-shadow:none}.px-btn-ghost{color:var(--px-ink-secondary)}.px-btn-danger{border:1px solid var(--px-danger-line);background:var(--px-surface);color:var(--px-danger)}.px-btn-danger:hover:not(:disabled){border-color:var(--px-danger);background:var(--px-danger-soft)}.px-btn-primary:disabled:hover{background:var(--px-primary)}.px :is(input,select,textarea){min-height:34px;border-radius:var(--px-r-control);font-size:var(--px-fs-base)}.px :focus-visible{outline:2px solid var(--px-primary-deep);outline-offset:2px}.px ::selection{background:var(--px-primary-soft);color:var(--px-primary-deep)}.px-sess-x{display:grid;width:32px;height:32px;place-items:center;border-radius:var(--px-r-control);color:var(--px-ink-faint);opacity:0;transition:opacity var(--px-t),background-color var(--px-t),color var(--px-t)}.px-sess-x:focus-visible,.px-wexam:hover .px-sess-x{opacity:1}.px-sess-x svg{width:15px;height:15px}.px-sess-x:hover{background:var(--px-tint-2);color:var(--px-ink)}.px-daytabs,.px-leveltabs,.px-list-filters,.px-report-filters,.px-seg{display:inline-flex;align-items:center;flex-wrap:wrap;gap:2px;padding:0;border:0;border-radius:0;background:none;box-shadow:none}.px-list-filters,.px-report-filters{display:flex;gap:4px;margin:0 0 18px}.px :is(.px-list-filters,.px-report-filters,.px-seg,.px-daytabs,.px-leveltabs) button{min-height:32px;padding:5px 12px;border:0;border-radius:var(--px-r-pill);background:transparent;color:var(--px-ink-secondary);font:inherit;font-size:var(--px-fs-base);font-weight:400;cursor:pointer;transition:background-color var(--px-t),color var(--px-t)}.px :is(.px-list-filters,.px-report-filters,.px-seg,.px-daytabs,.px-leveltabs) button:hover{background:var(--px-tint-2);color:var(--px-ink)}.px :is(.px-list-filters,.px-report-filters,.px-seg,.px-daytabs,.px-leveltabs) button:is(.is-on,.is-active,[aria-pressed=true]),.px-daypick-chip.is-on{background:var(--px-primary-deep);color:#fff;font-weight:600}.px-leveltabs button:nth-child(2):is(.is-on,[aria-pressed=true]){background:var(--px-m0);color:var(--px-m0-ink)}.px-leveltabs button:nth-child(3):is(.is-on,[aria-pressed=true]){background:var(--px-h0);color:var(--px-h0-ink)}.px-list-filters button span,.px-report-filters button span{margin-left:6px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;opacity:.75}.px-list-filters>span{margin-left:auto;color:var(--px-ink-faint);font-size:var(--px-fs-sm)}.px-card,.px-card-pad{border:1px solid var(--px-line);border-radius:var(--px-r-panel);box-shadow:none}.px-table thead th{background:var(--px-tint);color:var(--px-ink-secondary);font-size:var(--px-fs-cap)}.px-table tbody td{font-size:var(--px-fs-base)}.px-table tbody tr:hover{background:var(--px-tint)}.px-table .px-act{white-space:nowrap}.px-exams-table-wrap,.px-grade-table{max-height:65vh;overflow:auto}.px-exams-table-wrap thead th,.px-grade-table thead th{position:sticky;top:0;z-index:1;background:var(--px-tint);box-shadow:0 1px 0 var(--px-line)}.px-grade-empty{display:block;padding:28px 12px}.px-grade-empty .px-btn-ghost{margin-left:12px}.px-table .px-act .px-btn-danger{width:34px;padding:0}.px-table .px-act .px-btn-danger svg{width:16px;height:16px}.px-run-head{display:flex;align-items:center;gap:8px;margin:0 0 20px;padding:0 0 20px;border-bottom:1px solid var(--px-line)}.px-run-head .px-run-new{min-height:34px;font-size:var(--px-fs-base)}.px-run-head .px-run-new:first-of-type{margin-left:auto}.px-run-stats{display:flex;align-items:center;gap:6px;margin:0}.px-run-stats>*{display:inline-flex;align-items:baseline;gap:8px;min-height:34px;padding:6px 12px;border-radius:var(--px-r-control);font-size:var(--px-fs-base)}.px-run-stats dd,.px-run-stats dt{margin:0;font-size:var(--px-fs-base)}.px-run-stats dd{font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.px-run-stats .is-running{background:var(--px-running-soft);color:var(--px-running)}.px-run-stats .is-ready{background:var(--px-waiting-soft);color:var(--px-waiting)}.px-run-stats .is-review{background:var(--px-review-soft);color:var(--px-review)}.px-run-stats a:hover{text-decoration:underline;text-underline-offset:3px}.px-home-workspace{display:grid;grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:32px}.px-classboard{min-width:0}.px-classboard-head{display:flex;align-items:center;gap:16px;min-height:40px;margin-bottom:20px}.px-classboard-head>div:first-child{display:flex;align-items:baseline;gap:10px;min-width:0}.px-classboard-head h2,.px-examqueue-head h2{margin:0;font-size:20px;font-weight:600;letter-spacing:-.02em}.px-classboard-head span,.px-examqueue-head span{color:var(--px-ink-faint);font-size:var(--px-fs-base);white-space:nowrap}.px-board-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.px-board-actions .px-btn-primary,.px-board-actions .px-btn-secondary{min-height:40px;padding:8px 16px;font-size:15px}.px-class-search{width:240px;margin:0}.px-class-search input{min-height:40px;padding:8px 14px;font-size:15px;border:1px solid var(--px-line-strong);border-radius:10px;background:var(--px-surface)}.px-board-filters{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 24px;padding:0}.px-daytabs,.px-leveltabs{display:inline-flex;gap:2px;padding:4px;border-radius:12px;background:var(--px-tint)}.px-leveltabs{margin-left:0}.px :is(.px-daytabs,.px-leveltabs) button{min-height:36px;min-width:44px;padding:6px 14px;border-radius:8px;font-size:15px}.px-classboard-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.px-classboard .px-wclass{display:flex;flex-direction:column;gap:12px;min-height:0;padding:20px;border:1px solid var(--tone-line);border-radius:var(--px-r-card);background:var(--tone);box-shadow:none;transition:box-shadow var(--px-t),transform var(--px-t)}.px-classboard .px-wclass,.px-classboard .px-wclass[data-tone=h0]{--tone:var(--px-h0);--tone-ink:var(--px-h0-ink);--tone-line:var(--px-h0-line)}.px-classboard .px-wclass[data-tone=m0]{--tone:var(--px-m0);--tone-ink:var(--px-m0-ink);--tone-line:var(--px-m0-line)}.px-classboard .px-wclass[data-tone=m1]{--tone:var(--px-m1);--tone-ink:var(--px-m1-ink);--tone-line:var(--px-m1-line)}.px-classboard .px-wclass[data-tone=m2]{--tone:var(--px-m2);--tone-ink:var(--px-m2-ink);--tone-line:var(--px-m2-line)}.px-classboard .px-wclass[data-tone=h1]{--tone:var(--px-h1);--tone-ink:var(--px-h1-ink);--tone-line:var(--px-h1-line)}.px-classboard .px-wclass[data-tone=h2]{--tone:var(--px-h2);--tone-ink:var(--px-h2-ink);--tone-line:var(--px-h2-line)}.px-classboard .px-wclass:hover{transform:translateY(-2px);box-shadow:var(--px-shadow-card)}.px-wclass:before{display:none}.px-classboard .px-wclass-head{display:grid;gap:4px;padding:0 96px 0 0}.px-wclass-assign{position:absolute;top:14px;right:14px;display:inline-flex;align-items:center;gap:4px;min-height:28px;padding:3px 10px 3px 8px;border-radius:var(--px-r-pill);background:rgba(255,255,255,.72);color:var(--tone-ink);font-size:var(--px-fs-sm);font-weight:600;opacity:0;transition:opacity var(--px-t),background-color var(--px-t)}.px-wclass-assign svg{width:14px;height:14px}.px-wclass-assign[aria-expanded=true],.px-wclass:focus-within .px-wclass-assign,.px-wclass:hover .px-wclass-assign{opacity:1}.px-wclass-assign:hover,.px-wclass-assign[aria-expanded=true]{background:#fff}.px-classboard .px-wclass-head>div{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 8px}.px-classboard .px-wclass-head b{font-size:18px;font-weight:600;letter-spacing:-.015em;color:var(--tone-ink);white-space:normal}.px-classboard .px-wclass-head>div>span{justify-self:start;padding:0;background:none;font-size:var(--px-fs-base);color:var(--tone-ink);opacity:.78}.px-classboard .px-wclass-days{justify-self:start;padding:3px 10px;border-radius:var(--px-r-pill);background:rgba(255,255,255,.72);color:var(--tone-ink);font-size:var(--px-fs-sm);font-weight:600}.px-classboard .px-wclass-rows{display:grid;gap:8px;min-width:0;padding:0;border:0}.px-classboard .px-wclass-hint{width:100%;padding:10px 12px;border:1px dashed var(--tone-line);border-radius:var(--px-r-panel);background:rgba(255,255,255,.5);color:var(--tone-ink);font-size:var(--px-fs-sm);font-weight:600;text-align:center;pointer-events:auto}.px-classboard .px-wclass-hint:hover,.px-classboard .px-wclass-hint[aria-expanded=true]{border-style:solid;border-color:var(--tone-ink);background:#fff}.px-wexam{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;margin:0;padding:12px 14px;border-radius:var(--px-r-panel);background:rgba(255,255,255,.82)}.px-wexam:hover{background:#fff}.px-wexam-title{flex:1 1 100%;min-width:0;white-space:normal;overflow-wrap:anywhere;font-size:15px;font-weight:600;color:var(--px-ink);letter-spacing:-.01em}.px-wexam-title:hover{text-decoration:underline;text-underline-offset:3px}.px-wexam-act{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px;width:100%}.px-wexam-act .px-dot{margin-right:auto}.px-wclass.is-drop{outline:2px dashed var(--tone-ink);outline-offset:-4px;transform:translateY(-2px);box-shadow:var(--px-shadow-card)}.px-agenda-empty,.px-classboard-empty{padding:28px 0;border-radius:0;background:transparent;color:var(--px-ink);box-shadow:none}.px-agenda-empty{margin:0 0 24px;padding-bottom:28px;border-bottom:1px solid var(--px-line)}.px-agenda-empty h2{font-size:var(--px-fs-xl)}.px-dot{font-size:var(--px-fs-sm)}.px-dot.is-ready{color:var(--px-waiting)}.px-dot.is-ready:before{background:var(--px-waiting)}.px-dot.is-collecting,.px-dot.is-ended{color:var(--px-done)}.px-dot.is-collecting:before,.px-dot.is-ended:before{background:var(--px-done)}.px-status.is-ready{background:var(--px-waiting-soft);border-color:transparent;color:var(--px-waiting)}.px-examqueue{position:sticky;top:16px;max-height:none;padding:18px;border:1px solid var(--px-line);border-radius:var(--px-r-card);background:var(--px-tint);color:var(--px-ink);box-shadow:none}.px-examqueue-head{display:flex;align-items:center;gap:8px;min-height:40px;margin-bottom:16px}.px-examqueue-head>div{display:flex;align-items:baseline;gap:8px}.px-examqueue-head h2{font-size:17px}.px-examqueue-all{margin-left:auto;min-height:32px;display:inline-flex;align-items:center;padding:4px 10px;border-radius:8px;color:var(--px-ink-secondary);font-size:var(--px-fs-base);font-weight:600}.px-examqueue-all:hover{background:var(--px-tint-2);color:var(--px-ink)}.px-examqueue-list{display:grid;grid-template-columns:1fr;gap:12px}.px-qexam{display:grid;gap:8px;padding:14px 14px 14px 8px;border:1px solid var(--px-line);border-radius:var(--px-r-panel);background:var(--px-surface);cursor:grab;transition:box-shadow var(--px-t),transform var(--px-t),border-color var(--px-t)}.px-qexam:hover{border-color:var(--px-line-strong);transform:translateY(-1px);box-shadow:var(--px-shadow-card)}.px-qexam.is-dragging{opacity:.5;cursor:grabbing}.px-qexam.is-saved{border-color:var(--px-ink)}.px-qexam-title{display:flex;align-items:flex-start;gap:2px}.px-qexam-title>a{flex:1 1;padding-top:5px;font-size:15px;font-weight:600;letter-spacing:-.01em;white-space:normal;overflow-wrap:anywhere}.px-qexam-title>a:hover{text-decoration:underline;text-underline-offset:3px}.px-rex-grip{display:grid;flex:none;width:28px;height:30px;place-items:center;border-radius:var(--px-r-control);color:var(--px-line-hover);cursor:grab}.px-rex-grip:hover,.px-rex-grip[aria-expanded=true]{background:var(--px-tint-2);color:var(--px-ink)}.px-qexam>p{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin:0 0 0 28px;opacity:1;color:var(--px-ink-secondary);font-size:var(--px-fs-sm)}.px-qexam>p>span:first-child{padding:2px 9px;border-radius:var(--px-r-pill);background:var(--px-tint-2);color:var(--px-ink-secondary);font-size:var(--px-fs-cap);font-weight:600}.px-examqueue-empty{padding:20px 4px;color:var(--px-ink-faint);font-size:var(--px-fs-base);text-align:center}.px-examqueue-empty a{color:var(--px-primary-deep);font-weight:600;text-underline-offset:3px}.px-examqueue-empty a:hover{text-decoration:underline}.px-pick{display:grid;gap:6px;padding:10px;border:1px solid var(--px-line-strong);border-radius:var(--px-r-panel);background:var(--px-surface);color:var(--px-ink);box-shadow:var(--px-shadow-pop)}.px-pick>b{padding:0 4px;font-size:var(--px-fs-sm);color:var(--px-ink-faint)}.px-pick ul{display:grid;gap:2px;margin:0;padding:0;list-style:none;max-height:240px;overflow:auto}.px-pick li button{display:grid;width:100%;gap:1px;padding:7px 8px;border-radius:var(--px-r-control);text-align:left;font-weight:400}.px-pick li button:hover{background:var(--px-tint)}.px-pick li button span{font-size:var(--px-fs-base);font-weight:600}.px-pick li button small{color:var(--px-ink-faint);font-size:var(--px-fs-cap)}.px-pick p{margin:0;padding:6px 4px;color:var(--px-ink-secondary);font-size:var(--px-fs-sm)}.px-pick p a{color:var(--px-ink);font-weight:600;text-decoration:underline;text-underline-offset:3px}@media (prefers-reduced-motion:reduce){.px-classboard .px-wclass,.px-qexam{transition:none}.px-classboard .px-wclass:hover,.px-qexam:hover{transform:none}}.px-report-list{max-width:none}.px-report-list>.px-card{padding:0;border:0;border-radius:0}.px-report-section-head{align-items:center}.px-report-section-head h2{font-size:var(--px-fs-lg)}.px-report-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin-bottom:12px}.px-report-toolbar input{max-width:280px;margin-left:auto}.px-report-filters{display:flex;flex-wrap:wrap;gap:6px}.px-report-filters button{min-height:32px;padding:6px 12px;border-radius:var(--px-r-control);font-weight:400}.px-report-filters button,.px-report-ready-list small,.px-report-rows time{font-size:var(--px-fs-base)}.px-report-rows a{border-radius:0}.px-report-rows a>b{display:inline-flex;align-items:center;gap:6px;color:var(--px-primary-deep);font-size:var(--px-fs-base)}.px-report-rows a>b:after{content:"";width:6px;height:6px;border-top:1.5px solid;border-right:1.5px solid;transform:rotate(45deg)}.px-report-rows a:hover>b{text-decoration:underline;text-underline-offset:3px}.px-class-card.is-middle .px-level-chip,.px-roster-head.is-middle .px-level-chip{border-color:transparent;background:var(--px-middle-soft);color:var(--px-middle)}.px-class-card.is-high .px-level-chip,.px-roster-head.is-high .px-level-chip{border-color:transparent;background:var(--px-high-soft);color:var(--px-high)}.px-class-card.is-high,.px-class-card.is-middle{border:1px solid var(--px-line);background:var(--px-surface);color:var(--px-ink)}.px-class-card.is-high:hover,.px-class-card.is-middle:hover{border-color:var(--px-line-hover);background:var(--px-tint);color:var(--px-ink);transform:none}.px-class-card.is-selected,.px-class-card[aria-pressed=true]{border-color:var(--px-primary-deep);outline:1px solid var(--px-primary-deep);background:var(--px-primary-soft);box-shadow:none}.px-class-add,.px-class-card{min-height:132px;border-radius:var(--px-r-panel)}.px-class-add{background:var(--px-tint)}.px-class-card,.px-class-card[data-tone=h0],.px-class-card[data-tone]{--tone:var(--px-h0);--tone-ink:var(--px-h0-ink);--tone-line:var(--px-h0-line)}.px-class-card[data-tone=m0]{--tone:var(--px-m0);--tone-ink:var(--px-m0-ink);--tone-line:var(--px-m0-line)}.px-class-card[data-tone=m1]{--tone:var(--px-m1);--tone-ink:var(--px-m1-ink);--tone-line:var(--px-m1-line)}.px-class-card[data-tone=m2]{--tone:var(--px-m2);--tone-ink:var(--px-m2-ink);--tone-line:var(--px-m2-line)}.px-class-card[data-tone=h1]{--tone:var(--px-h1);--tone-ink:var(--px-h1-ink);--tone-line:var(--px-h1-line)}.px-class-card[data-tone=h2]{--tone:var(--px-h2);--tone-ink:var(--px-h2-ink);--tone-line:var(--px-h2-line)}.px-class-card[data-tone]{border-color:var(--tone-line);background:var(--tone)}.px-class-card[data-tone] .px-class-card-top h3{color:var(--tone-ink)}.px-class-card[data-tone].is-selected,.px-class-card[data-tone]:hover{border-color:var(--tone-ink);background:var(--tone)}.px-class-card[data-tone].is-selected{outline:0;box-shadow:0 0 0 1px var(--tone-ink),var(--px-shadow-card)}.px-class-card[data-tone] .px-level-chip{border-color:transparent;background:rgba(255,255,255,.75);color:var(--tone-ink)}.px-class-detail-panel,.px-class-list-panel,.px-student-sheet{padding:0;border:0;border-radius:0}.px-class-list-panel{padding-right:24px;border-right:1px solid var(--px-line)}.px-work-dock{box-shadow:none}.px-board-actions .px-btn-primary,.px-board-actions .px-btn-secondary,.px-classboard-head h2{white-space:nowrap}@media (max-width:1400px){.px-classboard-head{flex-wrap:wrap;row-gap:12px}.px-board-actions{flex:1 1 100%;margin-left:0}.px-board-actions .px-class-search{flex:1 1 auto;width:auto;min-width:180px}.px-board-filters{flex-wrap:wrap;row-gap:10px}.px :is(.px-daytabs,.px-leveltabs) button{min-width:40px;padding:6px 11px}}@media (min-width:1024px) and (max-width:1240px){.px-side{width:184px}.px-page{padding:24px}.px-topbar{padding:0 24px}.px-topbar-right{right:24px}.px-home-workspace{grid-template-columns:minmax(0,1fr) 268px;gap:20px}.px-classboard-list{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}}.px-settings{display:grid;gap:16px}.px-settings-list{gap:0}.px-settings-list>div{align-items:baseline;padding:12px 0;font-size:var(--px-fs-base)}.px-settings-list>div:first-child{border-top:0;padding-top:4px}.px-block-title{margin:0 0 10px;font-size:var(--px-fs-lg);letter-spacing:-.02em}.px-block-desc{margin:0;font-size:var(--px-fs-base)}.px-pane{border-radius:var(--px-r-card)}.px-pane-head{min-height:44px;padding:6px 10px 6px 16px;font-size:var(--px-fs-sm);background:var(--px-surface);border-radius:var(--px-r-card) var(--px-r-card) 0 0}.px-pane-body{background:var(--px-tint)}.px-drop{border-radius:var(--px-r-card);border-color:var(--px-line-strong)}.px-drop b{font-size:var(--px-fs-md)}.px-drop small{font-size:var(--px-fs-base)}.px-drop.is-over,.px-drop:hover{border-color:var(--px-primary-deep);background:var(--px-primary-soft);box-shadow:none;transform:none}.px-work-split{gap:16px;padding:16px!important}.px-work-dock{min-height:68px;padding:12px 24px}.px-dock-note{font-size:var(--px-fs-base)}.px :is(button,a).px-dot{min-height:30px;padding:4px 8px}.px :is(button,a).px-dot:hover{background:var(--px-tint-2)}.px-class-card-top{min-height:32px;padding:2px 0}.px-classboard .px-wclass-rows{margin-bottom:0}.px-classboard .px-wclass-hint{margin:0}.px-classboard .px-wclass-head>div>span.px-wclass-level{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--px-r-pill);background:var(--tone-ink);color:#fff;opacity:1;font-size:var(--px-fs-cap);font-weight:600;letter-spacing:.01em}.px-classboard .px-wclass-head>div{gap:4px 8px}.px-classboard .px-wclass-head>div>span:not(.px-wclass-level){font-size:var(--px-fs-sm)}.px-home-workspace.is-docs{display:grid;grid-template-columns:minmax(0,1fr);gap:36px}.px-examqueue.is-strip{position:static;max-height:none;overflow:visible;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.px-examqueue.is-strip .px-examqueue-head{min-height:32px;margin-bottom:14px}.px-examqueue.is-strip .px-examqueue-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:14px;margin:0}.px-examqueue.is-strip .px-qexam{display:grid;gap:10px;padding:14px 14px 12px;border-bottom:1px solid var(--px-line);border:1px solid var(--px-line);border-radius:var(--px-r-panel);background:var(--px-surface);transition:border-color var(--px-t),box-shadow var(--px-t),transform var(--px-t),opacity .18s ease}.px-examqueue.is-strip .px-qexam:hover{border-color:var(--px-line-strong);box-shadow:var(--px-shadow-card);transform:translateY(-1px)}.px-examqueue.is-strip .px-qexam.is-saved{box-shadow:0 0 0 2px var(--px-primary) inset}.px-examqueue.is-strip .px-qexam-title{align-items:center;gap:6px}.px-qexam-icon{display:inline-grid;width:28px;height:28px;flex:none;place-items:center;border-radius:7px;background:var(--px-tint-2);color:var(--px-ink-secondary)}.px-qexam-icon svg{width:16px;height:16px}.px-examqueue.is-strip .px-qexam-title>a{font-size:15px}.px-examqueue.is-strip .px-qexam>p{margin:0 0 0 41px;font-size:var(--px-fs-sm);opacity:1;color:var(--px-ink-faint)}.px-examqueue.is-strip .px-examqueue-empty{padding:18px 0}.px-viewtoggle{display:inline-flex;gap:2px;padding:3px;border-radius:10px;background:var(--px-tint-2)}.px-viewtoggle button{display:inline-grid;width:34px;height:34px;place-items:center;border-radius:8px;color:var(--px-ink-faint)}.px-viewtoggle button svg{width:18px;height:18px}.px-viewtoggle button:hover{color:var(--px-ink)}.px-viewtoggle button.is-on{background:var(--px-surface);color:var(--px-ink);box-shadow:0 1px 2px rgba(11,11,10,.08)}.is-docs .px-daytabs,.is-docs .px-leveltabs{gap:6px;padding:0;border-radius:0;background:transparent}.px .is-docs :is(.px-daytabs,.px-leveltabs) button{min-height:34px;min-width:40px;padding:5px 13px;border:1px solid var(--px-line-strong);border-radius:var(--px-r-pill);background:var(--px-surface);color:var(--px-ink-secondary);font-size:var(--px-fs-base)}.px .is-docs :is(.px-daytabs,.px-leveltabs) button:hover{border-color:var(--px-ink-faint);background:var(--px-surface);color:var(--px-ink)}.px .is-docs .px-daytabs button.is-on{border-color:var(--px-primary-deep);background:var(--px-primary-deep);color:#fff}.px .is-docs .px-leveltabs button.is-on{border-color:var(--px-h0-line);background:var(--px-h0);color:var(--px-h0-ink)}.is-docs .px-board-filters{margin:0 0 20px}.is-docs .px-classboard-list.is-grid{grid-template-columns:repeat(auto-fill,minmax(264px,1fr));gap:20px}.is-docs .px-classboard .px-wclass{gap:0;padding:0;overflow:hidden;border:1px solid var(--px-line);background:var(--px-surface)}.is-docs .px-classboard .px-wclass:hover{border-color:var(--px-line-strong)}.px-doc-cover{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:8px;min-height:92px;padding:12px 16px;background:var(--tone);color:var(--tone-ink)}.px-doc-cover-grade{font-size:30px;font-weight:600;letter-spacing:-.03em;line-height:1}.px-doc-cover-count{padding:3px 9px;border-radius:var(--px-r-pill);background:rgba(255,255,255,.7);font-size:var(--px-fs-cap);font-weight:600}.px-doc-cover-drop{position:absolute;inset:0;display:grid;place-items:center;background:rgba(255,255,255,.55);font-size:var(--px-fs-base);font-weight:600}.is-docs .px-classboard .px-wclass-head{padding:14px 16px 0}.is-docs .px-classboard .px-wclass-head b{color:var(--px-ink);font-size:17px}.is-docs .px-classboard .px-wclass-head>div>span:not(.px-wclass-level){color:var(--px-ink-faint);opacity:1}.is-docs .px-classboard .px-wclass-days{margin-top:6px;background:var(--px-tint-2);color:var(--px-ink-secondary)}.is-docs .px-classboard .px-wclass-rows{margin:12px 16px 16px}.is-docs .px-classboard .px-wclass-hint{width:auto;margin:12px 16px 16px;border-color:var(--px-line-strong);background:var(--px-tint);color:var(--px-ink-secondary)}.is-docs .px-classboard .px-wclass-hint:hover,.is-docs .px-classboard .px-wclass-hint[aria-expanded=true]{border-color:var(--px-ink-faint);background:var(--px-surface);color:var(--px-ink)}.is-docs .px-wexam{background:var(--px-tint)}.is-docs .px-wexam:hover{background:var(--px-tint-2)}.is-docs .px-wclass-assign{background:rgba(255,255,255,.8)}.is-docs .px-wclass.is-drop{outline:2px solid var(--tone-ink);outline-offset:-2px}.is-docs .px-pick{margin:0 16px 16px}.is-docs .px-classboard-list.is-list{display:grid;grid-template-columns:minmax(0,1fr);gap:0;overflow:hidden;border:1px solid var(--px-line);border-radius:var(--px-r-card);background:var(--px-surface)}.is-docs .px-classboard-list.is-list .px-wclass{display:grid;grid-template-columns:44px minmax(220px,.9fr) minmax(0,1.4fr);align-items:start;gap:12px 16px;padding:12px 16px;border:0;border-top:1px solid var(--px-line);border-radius:0;overflow:visible}.is-docs .px-classboard-list.is-list .px-wclass:first-child{border-top:0}.is-docs .px-classboard-list.is-list .px-wclass:hover{border-color:var(--px-line);background:var(--px-tint);transform:none;box-shadow:none}.is-docs .px-classboard-list.is-list .px-doc-cover{min-height:44px;width:44px;padding:0;display:grid;place-items:center;border-radius:10px}.is-docs .px-classboard-list.is-list .px-doc-cover-grade{font-size:15px}.is-docs .px-classboard-list.is-list .px-doc-cover-count,.is-docs .px-classboard-list.is-list .px-doc-cover-drop{display:none}.is-docs .px-classboard-list.is-list .px-wclass-head{align-self:center;padding:0}.is-docs .px-classboard-list.is-list .px-wclass-head b{font-size:16px}.is-docs .px-classboard-list.is-list .px-wclass-days{margin-top:4px}.is-docs .px-classboard-list.is-list .px-wclass-hint,.is-docs .px-classboard-list.is-list .px-wclass-rows{grid-column:3;margin:0}.is-docs .px-classboard-list.is-list .px-wclass-hint{justify-self:start;min-height:36px;padding:6px 14px}.is-docs .px-classboard-list.is-list .px-wexam{padding:8px 12px}.is-docs .px-classboard-list.is-list .px-wexam-title{flex:1 1 200px}.is-docs .px-classboard-list.is-list .px-wexam-act{width:auto;margin-left:auto}.is-docs .px-classboard-list.is-list .px-wclass-assign{position:static;grid-column:2;justify-self:start;opacity:1;margin-top:-4px;background:var(--px-tint-2);color:var(--px-ink-secondary)}.is-docs .px-classboard-list.is-list .px-pick{grid-column:3;margin:0}@media (min-width:1024px) and (max-width:1240px){.px-home-workspace.is-docs{grid-template-columns:minmax(0,1fr);gap:28px}.is-docs .px-classboard-list.is-grid{grid-template-columns:repeat(auto-fill,minmax(236px,1fr))}.is-docs .px-classboard-list.is-list .px-wclass{grid-template-columns:44px minmax(0,1fr)}.is-docs .px-classboard-list.is-list .px-pick,.is-docs .px-classboard-list.is-list .px-wclass-hint,.is-docs .px-classboard-list.is-list .px-wclass-rows{grid-column:2}}.px-home-workspace.is-days{gap:28px}.is-days .px-board-filters{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 28px;padding:0 0 20px;border-bottom:1px solid var(--px-line)}.is-days .px-board-tools{display:flex;align-items:center;gap:10px;flex:none}.px .is-days .px-daytabs{gap:4px;padding:4px;border-radius:12px;background:var(--px-tint)}.px .is-days .px-daytabs button{min-height:42px;min-width:52px;padding:8px 16px;border:0;border-radius:9px;background:transparent;color:var(--px-ink-secondary);font-size:16px;font-weight:600}.px .is-days .px-daytabs button:hover{background:var(--px-tint-2);color:var(--px-ink)}.px .is-days .px-daytabs button.is-today:not(.is-on){color:var(--px-primary-deep);box-shadow:inset 0 -2px 0 var(--px-primary)}.px .is-days .px-daytabs button.is-on{background:var(--px-primary-deep);color:#fff}.px .is-days .px-leveltabs{gap:2px;padding:3px;border-radius:10px;background:var(--px-tint-2)}.px .is-days .px-leveltabs button{min-height:34px;min-width:40px;padding:5px 12px;border:0;border-radius:8px;background:transparent;color:var(--px-ink-faint);font-size:var(--px-fs-base)}.px .is-days .px-leveltabs button.is-on{background:var(--px-surface);color:var(--px-ink);box-shadow:0 1px 2px rgba(11,11,10,.08)}.px-class-search.is-small{width:190px}.px-class-search.is-small input{min-height:34px;padding:5px 12px;border-color:var(--px-line);border-radius:9px;font-size:var(--px-fs-base)}.px-class-search.is-small input:focus{border-color:var(--px-ink-secondary)}.px-add-tile{display:flex;align-items:center;justify-content:center;gap:6px;min-height:56px;padding:12px 16px;border:1.5px dashed var(--px-line-strong);border-radius:var(--px-r-card);color:var(--px-ink-secondary);font-size:15px;font-weight:600;text-decoration:none;transition:border-color var(--px-t),background-color var(--px-t),color var(--px-t)}.px-add-tile svg{width:18px;height:18px}.px-add-tile:hover{border-color:var(--px-primary-deep);background:var(--px-primary-soft);color:var(--px-primary-deep)}.px-examqueue.is-strip .px-qexam.is-add{display:block;padding:0;border:0;background:transparent;box-shadow:none;cursor:default}.px-examqueue.is-strip .px-qexam.is-add:hover{transform:none;box-shadow:none}.px-add-tile.is-exam{height:100%;min-height:84px;border-radius:var(--px-r-panel)}.px-fold{border-top:1px solid var(--px-line)}.px-fold-summary{display:flex;align-items:baseline;gap:10px;min-height:56px;padding:16px 0;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.px-fold-summary::-webkit-details-marker{display:none}.px-fold-summary h2{margin:0;color:var(--px-ink);font-size:18px;font-weight:600;letter-spacing:-.02em}.px-fold-summary>span:last-child{color:var(--px-ink-faint);font-size:var(--px-fs-base)}.px-fold-caret{width:8px;height:8px;margin-right:4px;align-self:center;border-right:2px solid var(--px-ink-faint);border-bottom:2px solid var(--px-ink-faint);transform:translateY(-2px) rotate(-45deg);transition:transform var(--px-t)}.px-fold[open] .px-fold-caret{transform:translateY(-3px) rotate(45deg)}.px-fold-summary:hover h2{text-decoration:underline;text-underline-offset:4px}.px-examfold .px-examqueue.is-strip{padding:4px 0 8px}.px-examfold .px-examqueue-all{display:inline-flex;margin:12px 0 0}.px-examfold .px-examqueue-empty{padding:8px 0 0;text-align:left}@media (max-width:1400px){.is-days .px-board-filters{flex-wrap:wrap;row-gap:12px}.is-days .px-board-tools{flex:1 1 100%}.is-days .px-board-tools .px-class-search.is-small{margin-left:auto}.px .is-days .px-daytabs button{min-width:46px;padding:8px 13px}}.px-class-tag{--tone:var(--px-tint-2);--tone-ink:var(--px-ink-secondary);--tone-line:var(--px-line);display:inline-flex;align-items:center;max-width:100%;padding:2px 9px;border:1px solid var(--tone-line);border-radius:var(--px-r-pill);background:var(--tone);color:var(--tone-ink);font-size:var(--px-fs-cap);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.px-class-tag[data-tone=m0]{--tone:var(--px-m0);--tone-ink:var(--px-m0-ink);--tone-line:var(--px-m0-line)}.px-class-tag[data-tone=m1]{--tone:var(--px-m1);--tone-ink:var(--px-m1-ink);--tone-line:var(--px-m1-line)}.px-class-tag[data-tone=m2]{--tone:var(--px-m2);--tone-ink:var(--px-m2-ink);--tone-line:var(--px-m2-line)}.px-class-tag[data-tone=h0]{--tone:var(--px-h0);--tone-ink:var(--px-h0-ink);--tone-line:var(--px-h0-line)}.px-class-tag[data-tone=h1]{--tone:var(--px-h1);--tone-ink:var(--px-h1-ink);--tone-line:var(--px-h1-line)}.px-class-tag[data-tone=h2]{--tone:var(--px-h2);--tone-ink:var(--px-h2-ink);--tone-line:var(--px-h2-line)}.px-cell-pick{display:flex;flex-wrap:wrap;gap:4px}.px-assign-pop label{display:flex;align-items:center;gap:8px}.px-assign-pop label small{margin-left:auto;color:var(--px-ink-faint);font-size:var(--px-fs-cap)}.px-ai-signup{min-height:38px;white-space:nowrap}.px-grade-name{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.px-status.is-self{border-color:var(--px-line-strong);background:var(--px-tint-2);color:var(--px-ink-secondary);font-size:var(--px-fs-cap)}.px-grade-selfnote{margin:12px 0 0;color:var(--px-ink-secondary);font-size:var(--px-fs-sm)}.px-grade-exclude{color:var(--px-ink-faint)}.px-grade-exclude:hover:not(:disabled){color:var(--px-danger)}.px-student-name{display:flex;align-items:center;gap:6px}.px-student-name .px-cell{min-width:0}.px-cell-needed{background:transparent}.px-cell-needed .px-cell::placeholder{color:var(--px-review);opacity:1}.px-chip-warn{display:inline-flex;align-items:center;min-height:34px;padding:4px 12px;border:1px solid var(--px-line-strong);border-radius:var(--px-r-pill);background:var(--px-surface);color:var(--px-ink-secondary);font-size:var(--px-fs-sm);font-weight:600;white-space:nowrap;cursor:pointer}.px-chip-warn:hover{border-color:var(--px-review)}.px-chip-warn.is-active{border-color:transparent;background:var(--px-review-soft);color:var(--px-review)}.px-work-foot{position:relative;z-index:12;flex-shrink:0}.px-exam-strip{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border-top:1px solid var(--px-line);background:var(--px-surface);overflow-x:auto;white-space:nowrap}.px-exam-chip{display:inline-flex;align-items:center;flex:none;max-width:260px;min-height:24px;padding:2px 10px;border-radius:var(--px-r-pill);background:var(--px-tint-2);color:var(--px-ink-secondary);font-size:var(--px-fs-sm);font-weight:400;overflow:hidden;text-overflow:ellipsis}.px-exam-chip:first-child{color:var(--px-ink);font-weight:600}.px-strip-edit{flex:none;margin-left:auto}.px .px-dock-save{min-height:40px;padding:8px 18px;border:1px solid var(--px-primary);background:var(--px-primary-soft);color:var(--px-primary-deep);font-size:14.5px}.px .px-dock-save:hover:not(:disabled){border-color:var(--px-primary-deep);background:#e3f9b4}.px .px-dock-save:disabled{border-color:var(--px-line);background:var(--px-tint-2);color:var(--px-ink-faint)}.px .px-ai-signup{min-height:40px}.px .px-strip-edit{min-height:32px;padding:4px 12px;font-size:var(--px-fs-sm)}.px .px-ai-hero{min-height:44px;padding:8px 20px;font-size:15px}.px .px-ai-hero,.px-glint{position:relative;overflow:hidden}.px-ai-hero.is-armed,.px-glint:not(:disabled){animation:px-ai-arm .34s cubic-bezier(.22,.61,.36,1)}.px-ai-hero.is-armed:after,.px-glint:not(:disabled):after{content:"";position:absolute;top:0;bottom:0;left:0;width:40%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);animation:px-ai-sweep 2.4s linear infinite;pointer-events:none}@keyframes px-ai-arm{0%{transform:scale(.97)}to{transform:none}}@keyframes px-ai-sweep{0%{transform:translateX(-110%)}55%,to{transform:translateX(330%)}}@media (prefers-reduced-motion:reduce){.px-ai-hero.is-armed{animation:none;border-color:var(--px-primary-deep)}.px-glint:not(:disabled){animation:none}.px-ai-hero.is-armed:after,.px-glint:not(:disabled):after{content:none}}.px-sheet-head{flex-wrap:nowrap;align-items:flex-end;gap:10px;padding:10px 18px}.px-sheet-head .px-field{min-width:0;gap:3px}.px-sheet-head .px-field>span{font-size:var(--px-fs-sm)}.px-sheet-head .px-field input,.px-sheet-head .px-field select{min-height:30px;padding:4px 8px;font-size:var(--px-fs-base)}.px-sheet-head>.px-field:nth-child(2){flex:0 0 96px}.px-sheet-head>.px-field:nth-child(3){flex:0 0 132px}.px-sheet-head .px-stepper{min-height:30px;padding:2px}.px-sheet-head .px-stepper button{width:22px;height:22px;font-size:var(--px-fs-base)}.px-sheet-head .px-stepper input{min-height:22px;font-size:var(--px-fs-base)}.px-sheet-tools{gap:8px;padding-bottom:0;white-space:nowrap}.px-sheet-tools .px-float-toggle{gap:8px;font-size:var(--px-fs-sm)}.px-sheet-tools .px-btn-ghost{min-height:30px;padding:3px 10px;font-size:var(--px-fs-sm)}.px-sheet .px-qhead,.px-sheet .px-qrow{grid-template-columns:36px 64px 64px minmax(0,1fr) minmax(0,1fr);gap:8px}.px-sheet .px-qhead{position:sticky;top:0;z-index:1;padding:6px 18px;background:var(--px-surface);border-bottom:1px solid var(--px-line)}.px-sheet-rows{padding:4px 18px 10px}.px-sheet .px-qrow{min-height:32px;padding:1px 4px}.px-sheet .px-qrow input,.px-sheet .px-qrow select{min-height:28px;padding:3px 6px;font-size:var(--px-fs-sm)}.px-sheet .px-qrow>b{font-size:var(--px-fs-sm)}@media (max-width:900px){.px-sheet .px-qhead,.px-sheet .px-qrow{grid-template-columns:32px 56px 56px minmax(0,1fr) minmax(0,1fr)}.px-sheet-head{flex-wrap:wrap}}.px-level-warn{display:flex;flex-wrap:wrap;align-items:center;gap:8px;width:100%;padding:8px 10px;border:1px solid var(--px-review);border-radius:var(--px-r-control);background:var(--px-review-soft);color:var(--px-review);font-size:13px;font-weight:400;line-height:1.45}.px-level-warn>b{flex:1 1 200px;min-width:0;font-weight:600}.px-level-warn-acts{display:flex;flex:none;gap:6px;margin-left:auto}.px-assign-pop-head{display:flex;align-items:center;gap:8px;margin:0 0 8px;padding-bottom:6px;border-bottom:1px solid var(--px-line)}.px-assign-pop-head h3{margin:0;font-size:13px;font-weight:600}.px-assign-pop-count{color:var(--px-ink-faint);font-size:12px;font-weight:400}.px-assign-pop-head>.px-btn-ghost{min-height:26px;margin-left:auto;padding:2px 10px;font-size:12.5px}.px-toast-action{min-height:28px;padding:0 2px;border:0;background:none;color:var(--px-primary);font-size:13.5px;font-weight:600;text-decoration:underline;cursor:pointer}.px-toast-action:hover{color:#fff}.px-student-table tr.is-saving .px-cell{opacity:.6}@media (max-width:1023px){.px-shell{height:100vh;min-height:0;overflow:hidden}.px-work{flex-direction:row}.px-side{width:72px;height:100%;padding:12px 8px;gap:2px;border-top:0;border-right:1px solid var(--px-line)}.px-side-brand{justify-content:center;padding:2px 0 12px}.px-side-brand span,.px-side-label,.px-side-space,.px-side-text{display:none}.px-side-item{justify-content:center;min-height:40px;padding:6px;gap:0}.px-side-item svg{width:20px;height:20px}.px-side-account{grid-template-columns:1fr;justify-items:center;gap:6px;padding:10px 0 6px}.px-side-account summary{display:grid;place-items:center;min-height:36px}.px-side-account-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--px-h0);color:var(--px-h0-ink);font-size:13px;font-weight:600}.px-side-account-name{display:none}.px-side-out{display:block;grid-column:1;justify-self:center;min-height:32px;padding:4px 8px;background:var(--px-surface);font-size:12px}.px-topbar{padding:0 16px}.px-topbar-right{right:16px}.px-page{width:100%;padding:20px 16px 56px}.px-exams-table-wrap,.px-grade-table,.px-report-table-wrap,.px-student-table-wrap,.px-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.px-body,.px-card,.px-card-pad,.px-page{min-width:0}.px-exams-table{min-width:640px}.px-home-workspace,.px-home-workspace.is-docs{grid-template-columns:minmax(0,1fr);gap:24px}.is-cards .px-classboard-list.is-grid,.is-docs .px-classboard-list.is-grid,.px-classboard-list{grid-template-columns:repeat(2,minmax(200px,1fr))}.px-examqueue{position:static;max-height:none}.px-class-split{gap:16px}.px-class-grid,.px-class-list-panel .px-class-grid,.px-class-split,.px-report-review{grid-template-columns:minmax(0,1fr)}.px-report-side{position:static;order:-1}.px-report-facts{grid-template-columns:repeat(3,minmax(0,1fr))}.px-report-rows a{grid-template-columns:minmax(0,1fr) auto;gap:10px}.px-work-split{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto auto!important;overflow:auto!important}.px-work-dock{flex-wrap:wrap}.px-grade{max-width:none}.px-grade-actions{margin-left:0}.px .px-btn-danger,.px .px-btn-ghost,.px .px-btn-primary,.px .px-btn-secondary{min-height:36px}}.px-tour-rail{gap:8px;height:32px;padding:0 18px;border-top:1px solid var(--px-line);background:var(--px-tint)}.px-tour-rail,.px-tour-rail ol{display:flex;align-items:center}.px-tour-rail ol{gap:4px;min-width:0;margin:0;padding:0;list-style:none;overflow-x:auto;white-space:nowrap}.px-tour-rail li{display:inline-flex;align-items:center;gap:5px;flex:none;padding:0 8px;color:var(--px-ink-faint);font-size:var(--px-fs-sm);font-weight:400}.px-tour-rail li+li:before{content:"";width:10px;height:1px;margin-right:5px;background:var(--px-line-strong)}.px-tour-rail-mark{display:inline-grid;width:16px;height:16px;place-items:center;flex:none;border:1px solid var(--px-line-strong);border-radius:var(--px-r-pill);background:var(--px-surface);font-size:10.5px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.px-tour-rail li.is-done{color:var(--px-ink-secondary)}.px-tour-rail li.is-done .px-tour-rail-mark{border-color:var(--px-primary);background:var(--px-primary-soft);color:var(--px-primary-deep)}.px-tour-rail li.is-now{color:var(--px-primary-deep);font-weight:600}.px-tour-rail li.is-now .px-tour-rail-mark{border-color:var(--px-primary-deep);color:var(--px-primary-deep)}.px .px-tour-rail-close{display:grid;width:24px;height:24px;place-items:center;flex:none;margin-left:auto;border-radius:var(--px-r-pill);color:var(--px-ink-faint)}.px .px-tour-rail-close:hover{background:var(--px-tint-2);color:var(--px-ink)}.px .px-tour-rail-close svg{width:14px;height:14px}.px .px-exam-chip.is-quiet{max-width:none;padding-left:0;background:transparent;color:var(--px-ink-faint);font-weight:400}.px-coach-actions .px-btn-primary{display:inline-flex;align-items:center;min-height:32px;padding:4px 14px;font-size:14px;text-decoration:none}.px-coach-head{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}.px-coach-head .px-coach-count{flex:none;margin:0}.px-coach-map{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 4px;min-width:0;margin:0;padding:0;list-style:none;font-size:12.5px;line-height:1.5}.px-coach-map li{color:var(--px-ink);font-weight:400}.px-coach-map li+li:before{content:"·";margin-right:4px;color:var(--px-ink-faint)}.px-coach-map li.is-past{color:var(--px-ink-secondary)}.px-coach-map li.is-skipped{color:var(--px-ink-faint)}.px-coach-map li.is-now{color:var(--px-primary-deep);font-weight:600;border-bottom:2px solid var(--px-primary-deep)}.px-coach-actions .px-btn-primary{margin-left:0}.px-coach-actions .px-coach-skip{margin-left:auto}.px-tour-rail-check{color:var(--px-primary-deep);font-size:11px}.px-coach{z-index:120}.px .px-checklist{display:flex;flex-direction:column;gap:8px;max-height:160px;margin:0 0 12px;padding:12px 14px;border-radius:var(--px-r-panel);box-shadow:var(--px-shadow-card)}.px .px-checklist-head{display:flex;align-items:center;gap:8px}.px .px-checklist-head h2{margin:0;font-size:var(--px-fs-md);font-weight:600;color:var(--px-ink)}.px .px-checklist-count{font-size:var(--px-fs-cap);font-weight:600;color:var(--px-ink-faint);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.px .px-checklist-fold{display:inline-flex;align-items:center;gap:4px;min-height:26px;margin-left:auto;padding:2px 8px;border-radius:var(--px-r-control);background:transparent;color:var(--px-ink-secondary);font-size:var(--px-fs-cap);font-weight:400}.px .px-checklist-fold:hover{background:var(--px-tint);color:var(--px-ink)}.px .px-checklist-fold .px-fold-caret{margin-right:0;transform:translateY(-3px) rotate(45deg)}.px .px-checklist-fold.is-collapsed .px-fold-caret{transform:translateY(1px) rotate(-135deg)}.px .px-checklist-close{min-height:26px;padding:2px 10px;border:1px solid var(--px-line);border-radius:var(--px-r-control);background:var(--px-surface);color:var(--px-ink-secondary);font-size:var(--px-fs-cap);font-weight:600}.px .px-checklist-close:hover{border-color:var(--px-line-hover);color:var(--px-ink)}.px .px-checklist-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;min-height:0;margin:0;padding:0;list-style:none;overflow:hidden}.px .px-checklist-steps>li{display:grid;grid-template-columns:20px minmax(0,1fr);grid-template-rows:auto auto auto;gap:2px 8px;align-content:start;padding:8px 10px;border-radius:var(--px-r-control)}.px .px-checklist-mark{display:grid;grid-row:1;width:20px;height:20px;place-items:center;border-radius:var(--px-r-pill);border:1px solid var(--px-line-strong);background:var(--px-surface);color:var(--px-ink-faint);font-size:var(--px-fs-cap);font-weight:600}.px .px-checklist-steps>li.is-now .px-checklist-mark{border-color:var(--px-primary-deep);color:var(--px-primary-deep)}.px .px-checklist-steps>li.is-done .px-checklist-mark{border-color:var(--px-primary-deep);background:var(--px-primary-deep);color:var(--px-primary-soft)}.px .px-checklist-steps>li>b{grid-row:1;align-self:center;font-size:var(--px-fs-sm);font-weight:600;color:var(--px-ink)}.px .px-checklist-steps>li>small{display:-webkit-box;grid-row:2;grid-column:2;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;font-size:var(--px-fs-cap);font-weight:400;line-height:1.45;color:var(--px-ink-secondary)}.px .px-checklist-steps>li>a{grid-row:3;grid-column:2;justify-self:start;font-size:var(--px-fs-cap);font-weight:600;color:var(--px-primary-deep)}.px .px-checklist-steps>li>a:hover{text-decoration:underline;text-underline-offset:3px}.px .px-checklist-here{grid-row:3;grid-column:2;font-size:var(--px-fs-cap);font-weight:400;color:var(--px-ink-faint)}@media (max-width:1080px){.px .px-checklist{gap:6px;padding:8px 12px}.px .px-checklist-steps{grid-template-columns:minmax(0,1fr);gap:3px}.px .px-checklist-steps>li{grid-template-columns:20px minmax(0,1fr) auto;grid-template-rows:auto;align-items:center;padding:2px 8px}.px .px-checklist-steps>li>small{display:none}.px .px-checklist-here,.px .px-checklist-steps>li>a{grid-row:1;grid-column:3}}.px .px-ccard-exam-act .px-dot.is-running.is-over{color:var(--px-review)}.px .px-ccard-exam-act .px-dot.is-running.is-over:before{background:var(--px-review)}.px .px-ccard-exam-act .px-btn-danger.is-urgent,.px .px-ccard-exam-act .px-btn-danger.is-urgent:hover:not(:disabled){border-color:var(--px-review);background:var(--px-review-soft);color:var(--px-review)}.px .px-endconfirm{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px}.px .px-endconfirm small{font-size:var(--px-fs-cap);font-weight:400;color:var(--px-ink-secondary)}.px .px-endconfirm .px-btn-ghost{min-height:30px;padding:3px 10px;font-size:13px}.px-tone{--tone:var(--px-tint-2);--tone-ink:var(--px-ink-secondary);--tone-line:var(--px-line)}.px-tone[data-tone=m0]{--tone:var(--px-m0);--tone-ink:var(--px-m0-ink);--tone-line:var(--px-m0-line)}.px-tone[data-tone=m1]{--tone:var(--px-m1);--tone-ink:var(--px-m1-ink);--tone-line:var(--px-m1-line)}.px-tone[data-tone=m2]{--tone:var(--px-m2);--tone-ink:var(--px-m2-ink);--tone-line:var(--px-m2-line)}.px-tone[data-tone=h0]{--tone:var(--px-h0);--tone-ink:var(--px-h0-ink);--tone-line:var(--px-h0-line)}.px-tone[data-tone=h1]{--tone:var(--px-h1);--tone-ink:var(--px-h1-ink);--tone-line:var(--px-h1-line)}.px-tone[data-tone=h2]{--tone:var(--px-h2);--tone-ink:var(--px-h2-ink);--tone-line:var(--px-h2-line)}.px-ledgerpage{display:grid;gap:28px}.px-ledger-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin-bottom:10px}.px-ledger-head h2{display:flex;align-items:baseline;gap:8px;margin:0;color:var(--px-ink);font-size:16px;font-weight:600;letter-spacing:-.01em;white-space:nowrap}.px-ledger-head h2 span{color:var(--px-ink-faint);font-size:13px;font-weight:400;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.px-ledger-tools{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-left:auto}.px .px-ledger-search input,.px .px-ledger-tools .px-pillselect select,.px .px-ledger-tools .px-seg.is-day,.px .px-ledger-tools .px-seg.is-day button{border-radius:2px}.px .px-ledger-tools .px-seg.is-day{padding:2px}.px .px-ledger-tools .px-seg.is-day button{min-width:40px;min-height:26px;padding:2px 10px 3px;font-size:13px}.px .px-ledger-tools .px-seg.is-day button.is-today:after{bottom:2px}.px .px-ledger-tools .px-pillselect select{min-height:30px;font-size:13px}.px-ledger-search{flex:none;width:150px}.px .px-ledger-search input{min-height:30px;padding:0 10px;border-color:var(--px-line-strong);font-size:13px}.px .px-ledger-new{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;border:1px solid var(--px-primary-deep);border-radius:2px;background:var(--px-primary-deep);color:#fff;font-size:13px;font-weight:600;text-decoration:none}.px .px-ledger-new:hover{background:#33500e}.px-ledger-wrap{border:1px solid var(--px-line-strong);border-radius:2px;background:var(--px-surface)}.px-ledger-table{width:100%;min-width:860px;border-collapse:collapse;table-layout:fixed}.px-ledger-table col.c-name{width:188px}.px-ledger-table col.c-grade{width:64px}.px-ledger-table col.c-days{width:104px}.px-ledger-table.is-exams col.c-level{width:88px}.px-ledger-table.is-exams col.c-subject{width:72px}.px-ledger-table.is-exams col.c-state{width:96px}.px-ledger-table.is-exams col.c-date{width:76px}.px-ledger-table.is-exams col.c-classes{width:168px}.px-ledger-table td,.px-ledger-table th{padding:0 12px;border-right:1px solid var(--px-line);border-bottom:1px solid var(--px-line);text-align:left;vertical-align:middle}.px-ledger-table td:last-child,.px-ledger-table th:last-child{border-right:0}.px-ledger-table tbody tr:last-child td,.px-ledger-table tbody tr:last-child th{border-bottom:0}.px-ledger-table thead th{height:32px;background:var(--px-tint);color:var(--px-ink-faint);font-size:12px;font-weight:600;letter-spacing:.01em;white-space:nowrap}.px-ledger-table tbody tr{transition:background-color var(--px-t)}.px-ledger-table.is-exams tbody tr{height:40px;cursor:grab}.px-ledger-table.is-exams tbody tr:hover td{background:var(--px-tint)}.px-ledger-table tbody th.px-ledger-name{height:72px;background:var(--tone);color:var(--tone-ink);font-size:15px;letter-spacing:-.01em}.px-ledger-num{color:var(--px-ink-secondary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.px-ledger-days{color:var(--px-ink-secondary);font-size:13px}.px-ledger-title{color:var(--px-ink);font-weight:600}.px-ledger-classes,.px-ledger-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.px-ledger-classes{color:var(--px-ink-secondary);font-size:13px}.px-ledger-faint{color:var(--px-ink-faint)}.px-ledger-level{display:table-cell}.px-ledger-level i{display:inline-block;width:10px;height:10px;margin:0 6px -1px 0;border:1px solid var(--tone-line);background:var(--tone)}.px-ledger-exam{padding:8px 10px}.px-ledger-exam-title{display:block;overflow:hidden;color:var(--px-ink);font-size:14px;font-weight:600;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.px-ledger-exam-foot{display:flex;align-items:center;gap:6px;margin-top:6px}.px-ledger-state{display:inline-flex;align-items:center;gap:6px;flex:1 1 auto;min-width:0;color:var(--px-ink-secondary);font-size:12px;font-style:normal;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.px-ledger-state:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--px-line-hover)}.px-ledger-state.is-running{color:var(--px-running)}.px-ledger-state.is-running:before{background:var(--px-running)}.px-ledger-state.is-ready{color:var(--px-waiting)}.px-ledger-state.is-ready:before{background:var(--px-waiting)}.px-ledger-state.is-grading,.px-ledger-state.is-todo{color:var(--px-review)}.px-ledger-state.is-grading:before,.px-ledger-state.is-todo:before{background:var(--px-review)}.px-ledger-state.is-done{color:var(--px-done)}.px-ledger-state.is-done:before{background:var(--px-done)}.px .px-ledger-btn{min-height:24px;padding:0 10px;border:1px solid var(--px-primary-deep);border-radius:2px;background:var(--px-primary-deep);color:#fff;font-size:12px;font-weight:600}.px .px-ledger-btn.is-danger{border-color:var(--px-danger-line);background:var(--px-danger-soft);color:var(--px-danger)}.px .px-ledger-x{width:20px;min-height:20px;border-radius:2px;color:var(--px-ink-faint);font-size:14px;line-height:1;opacity:.6}.px-ledger-exam.is-empty span{display:grid;height:40px;place-items:center;border:1px dashed var(--px-line-strong);color:var(--px-ink-faint);font-size:12px}.px-ledger-exam.is-running{box-shadow:inset 2px 0 0 var(--px-running)}.px-ledger-addrow td{height:36px;padding:0 12px}.px .px-ledger-addrow a{color:var(--px-ink-secondary);font-size:13px;font-weight:600;text-decoration:none}.px .px-ledger-addrow a:hover{color:var(--px-ink)}@media (max-width:1023px){.px-ledger-table{min-width:760px}.px-ledger-tools{flex:1 1 100%;margin-left:0}}.px-table.is-classes{min-width:460px}.px-table.is-classes td{white-space:nowrap}.px-table.is-classes .px-num{width:64px}.px-class-detail-panel .px-table{min-width:520px}.px-table.is-reports{min-width:640px}.px-table .px-table-name{text-align:left;font-weight:600;white-space:nowrap}.px-table tbody tr+tr th{border-top:1px solid var(--px-line)}.px-table-addrow td{padding:0}.px-table-addrow>td>button{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:10px 16px}.px-form-row{display:grid;gap:10px;margin-top:12px;padding:14px 16px}.px-class-split{grid-template-columns:minmax(0,.9fr) minmax(0,1fr)}.px-class-list-panel{position:static;max-height:none;overflow:visible}.px-grade-sheet{display:grid;gap:14px}.px-report-list section+section{margin-top:18px}@media (max-width:1023px){.px-class-split{grid-template-columns:1fr;gap:16px}}.px-class-workspace{display:grid;grid-template-columns:minmax(300px,34%) minmax(0,1fr);overflow:hidden;border:1px solid var(--px-line);border-radius:var(--px-r-panel);background:var(--px-surface)}.px-class-workspace>.px-class-detail-panel,.px-class-workspace>.px-class-list-panel{min-width:0;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none}.px-class-workspace>.px-class-list-panel{padding:20px 18px;border-right:1px solid var(--px-line);background:var(--px-tint)}.px-class-workspace>.px-class-detail-panel{padding:20px 24px}.px-class-workspace .px-table-wrap{border:0}.px-class-workspace .px-table tbody tr.is-selected{background:var(--px-primary-soft)}.px-class-workspace .px-table tbody tr.is-selected th{border-left:0}.px-class-select{display:block;width:100%;padding:9px 10px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.px-class-select:focus-visible{outline:2px solid var(--px-primary-deep);outline-offset:-2px}@media (max-width:1023px){.px-class-workspace{grid-template-columns:1fr}.px-class-workspace>.px-class-list-panel{border-right:0;border-bottom:1px solid var(--px-line)}}:is(.px-class-workspace,.px-pick-list) .px-class-picker-list{display:flex;flex-direction:column;gap:2px;margin:0 -18px;padding:0;list-style:none}:is(.px-class-workspace,.px-pick-list) .px-class-picker-item{border-radius:var(--px-r-control);background:transparent}.px-class-workspace .px-class-picker-item.is-selected{border-radius:0;background:var(--px-surface);box-shadow:none}.px-class-workspace .px-class-picker-item:hover{background:var(--px-tint)}.px-class-workspace .px-class-picker-item.is-selected:hover{background:var(--px-surface)}:is(.px-class-workspace,.px-pick-list) .px-class-select{min-width:0;padding:11px 30px}:is(.px-class-workspace,.px-pick-list) .px-class-select span,:is(.px-class-workspace,.px-pick-list) .px-class-select strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:is(.px-class-workspace,.px-pick-list) .px-class-select strong{color:var(--px-ink);font-size:14px;font-weight:600}:is(.px-class-workspace,.px-pick-list) .px-class-select span{margin-top:3px;color:var(--px-ink-faint);font-size:12px}:is(.px-class-workspace,.px-pick-list) .px-class-picker-add{margin-top:6px}:is(.px-class-workspace,.px-pick-list) .px-class-picker-add :is(button,a){display:flex;width:100%;align-items:center;justify-content:center;gap:6px;min-height:42px;border:1px dashed var(--px-line-strong);border-radius:var(--px-r-control);background:transparent;color:var(--px-ink-secondary);cursor:pointer}.px-class-workspace .px-class-run{margin:18px 0 4px;padding:0;border:0;border-radius:0;background:transparent}.px-class-workspace .px-class-run-list>li{border-color:var(--px-line);border-radius:var(--px-r-control)}.px-class-workspace .px-detail-tabs{display:flex;gap:6px;margin:16px 0 4px;border-bottom:1px solid var(--px-line)}.px-class-workspace .px-detail-tabs button{min-height:36px;padding:0 12px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--px-ink-faint);font:inherit;font-size:14px;cursor:pointer}.px-class-workspace .px-detail-tabs button[aria-pressed=true]{border-bottom-color:var(--px-primary-deep);color:var(--px-ink);font-weight:600}.px-class-workspace .px-inline-details{position:relative}.px-class-workspace .px-ended-details summary,.px-class-workspace .px-inline-details summary{color:var(--px-ink-secondary);cursor:pointer;font-size:13px;list-style:none}.px-class-workspace .px-ended-details summary::-webkit-details-marker,.px-class-workspace .px-inline-details summary::-webkit-details-marker{display:none}.px-class-workspace .px-ended-details summary:after,.px-class-workspace .px-inline-details summary:after{content:"＋";margin-left:5px}.px-class-workspace .px-ended-details[open] summary:after,.px-class-workspace .px-inline-details[open] summary:after{content:"−"}.px-class-workspace .px-inline-details .px-roster-edit{display:flex;gap:6px;margin-top:8px}.px-class-workspace .px-inline-form{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:-4px 0 12px}.px-class-workspace .px-inline-form .px-field{margin:0}.px-class-workspace .px-ended-details{margin-top:14px}.px-class-workspace .px-ended-details .px-class-run-list{margin-top:8px}.px-ledger-table col.c-act{width:96px}.px-ledger-table td.px-ledger-act{text-align:right}.px-ledger-more{display:block;margin-top:4px}.px-ledger-exam-foot .px-endconfirm{display:flex;align-items:center;flex:1 1 auto;gap:6px;min-width:0}.px-ledger-exam-foot .px-endconfirm small{flex:1 1 auto;min-width:0}.px-ledger-pickrow td{padding:8px 12px}.px-ledger-pick{display:flex;align-items:flex-start;gap:10px}.px-ledger-picklist{display:grid;flex:1 1 auto;gap:4px;min-width:0;max-height:220px;margin:0;padding:0;overflow-y:auto;list-style:none}.px-ledger-picklist li{display:flex;align-items:center;gap:8px;min-width:0}.px-ledger-pickname{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.px-ledger-picklist li .px-ledger-state{flex:none}.px-ledger-table thead th .px-ledger-sort{display:inline-flex;align-items:center;width:100%;white-space:nowrap}.px-shell{flex-direction:column}.px-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:16px;min-height:48px;flex-shrink:0;padding:0 20px}.px-top-brand a{display:inline-flex;align-items:center;gap:8px}.px-tabs{display:flex;gap:4px;margin:0 auto}.px-tab,.px-tabs{align-items:center}.px-tab{display:inline-flex;gap:6px;min-height:32px;padding:0 10px}.px-tab svg{width:16px;height:16px;flex:none}.px-top-actions{display:inline-flex;align-items:center;gap:10px;flex:none}.px-top-space{overflow:hidden;max-width:160px;text-overflow:ellipsis}.px-top-link,.px-top-space{flex:none;white-space:nowrap}.px-top-link{display:inline-flex;align-items:center;gap:6px;min-height:28px}.px-top-link svg{width:15px;height:15px;flex:none}.px-top-account{position:relative}.px-top-account>summary{display:inline-flex;align-items:center;gap:6px;min-height:28px;cursor:pointer;list-style:none}.px-top-account>summary::-webkit-details-marker{display:none}.px-top-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:30;display:grid;gap:2px;min-width:120px;background:var(--px-surface);border:1px solid var(--px-line)}.px-top-menu>*{justify-self:start;min-height:26px}.px-subtabs{display:flex;align-items:center;gap:4px;min-height:34px;flex-shrink:0;padding:0 20px}.px-subtab{display:inline-flex;align-items:center;min-height:26px;padding:0 8px}.px-main{height:auto}.px-page.is-centered{margin:0 auto}.px-home-summary-head{align-items:center}.px-home-summary-actions{display:flex;gap:8px;flex-wrap:wrap}.px-home-summary-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);gap:16px}.px-home-summary .px-card{min-width:0}.px-home-summary-block+.px-home-summary-block{margin-top:20px}.px-home-summary-block h3{margin:0 0 8px;font-size:14px}.px-home-summary-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-top:1px solid var(--px-line)}.px-home-summary-item>div{min-width:0;display:grid;gap:3px}.px-home-summary-item span,.px-home-summary-item strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.px-home-summary-item span{color:var(--px-ink-secondary);font-size:13px}.px-home-summary-callout{display:flex;align-items:center;gap:12px;padding:12px;background:var(--px-tint-2);border-radius:var(--px-r-panel)}.px-home-summary-callout span{flex:1 1;color:var(--px-ink-secondary);font-size:13px}.px-home-class-list{margin:0;padding:0;list-style:none}.px-home-class-list li{border-top:1px solid var(--px-line)}.px-home-class-list a{display:flex;justify-content:space-between;gap:12px;padding:13px 0;color:inherit;text-decoration:none}.px-home-class-list span{color:var(--px-ink-secondary);font-size:13px}@media (max-width:760px){.px-home-summary-grid{grid-template-columns:1fr}.px-home-summary-head{align-items:flex-start}}@media (max-width:1023px){.px-top{flex-wrap:wrap;gap:8px 12px;padding:6px 14px}.px-tabs{margin:0;order:3;width:100%;overflow-x:auto}.px-top-actions{margin-left:auto}.px-subtabs{padding:0 14px;overflow-x:auto}}.px-shell{height:100vh;overflow:hidden}.px-main,.px-shell{background:var(--px-tint)}.px-main{flex:1 1;min-height:0;overflow:auto}.px .px-page,.px-page{width:100%;max-width:1180px;margin:0 auto;padding:24px 24px 72px}.px-page.is-centered{max-width:1180px}@media (max-width:1023px){.px .px-page,.px-page{padding:16px 14px 56px}}.px-top{min-height:60px;padding:0 24px;background:var(--px-surface);border-bottom:1px solid var(--px-line)}.px-top-brand a{color:var(--px-ink);font-size:17px;font-weight:600;letter-spacing:-.02em;text-decoration:none}.px-top-brand svg{width:21px;height:21px}.px-tabs{gap:2px;padding:4px;background:var(--px-tint-2)}.px .px-tab,.px-tabs{border-radius:var(--px-r-pill)}.px .px-tab{min-height:34px;padding:0 16px;font-size:14px;text-decoration:none}.px .px-tab[aria-current=page]{background:var(--px-surface);box-shadow:0 1px 3px rgba(20,24,18,.14)}.px .px-tab svg{width:16px;height:16px;color:currentcolor;opacity:.75}.px .px-help,.px .px-top-link,.px-top-space{color:var(--px-ink-secondary);font-size:13px;font-weight:600}.px .px-help,.px .px-top-link{min-height:32px;padding:0 12px;border-radius:var(--px-r-pill);text-decoration:none}.px .px-help:hover,.px .px-top-link:hover{background:var(--px-tint-2);color:var(--px-ink)}.px .px-top-account>summary{min-height:32px;padding:0 12px;border:1px solid var(--px-line);border-radius:var(--px-r-pill);background:var(--px-surface);color:var(--px-ink);font-size:13px;font-weight:600}.px .px-top-account>summary:hover{border-color:var(--px-line-strong);background:var(--px-tint)}.px-top-menu{padding:6px;border:0;border-radius:var(--px-r-panel);box-shadow:var(--px-shadow-pop)}.px .px-top-menu>a,.px .px-top-menu>button{width:100%;justify-content:flex-start;min-height:32px;padding:0 12px;border-radius:var(--px-r-control);color:var(--px-ink);font-size:13.5px;font-weight:600;text-decoration:none}.px .px-top-menu>a:hover,.px .px-top-menu>button:hover{background:var(--px-tint)}.px-subtabs{min-height:44px;padding:0 24px;background:var(--px-surface);border-bottom:1px solid var(--px-line)}.px .px-subtab{min-height:30px;padding:0 12px;border-radius:var(--px-r-pill);color:var(--px-ink-faint);font-size:13.5px;font-weight:600;text-decoration:none}.px .px-subtab:hover{background:var(--px-tint);color:var(--px-ink)}.px .px-subtab[aria-current=page]{background:var(--px-primary-soft);color:var(--px-primary-deep)}@media (max-width:1023px){.px-top{padding:6px 14px}.px-subtabs{padding:0 14px}}.px-card{border:1px solid var(--px-line);border-radius:var(--px-r-card);background:var(--px-surface);box-shadow:none}.px-card-pad{padding:20px 22px}.px-page-head,.px-sec-head{margin-bottom:16px;padding-top:0}.px-page-head h1,.px-sec-head :is(h1,h2){font-size:22px;font-weight:600;letter-spacing:-.02em}.px-page-head p,.px-sec-head p{color:var(--px-ink-secondary);font-size:14px}.px-form-row{margin-top:14px;padding:16px 18px;border:1px solid var(--px-line);border-radius:var(--px-r-panel);background:var(--px-surface)}.px-settings-card{max-width:none;padding:20px 22px;border:1px solid var(--px-line);border-radius:var(--px-r-card);background:var(--px-surface)}.px-settings-card+.px-settings-card{margin-top:16px;border-top:1px solid var(--px-line)}.px-ledger-wrap,.px-table-wrap{max-width:none;margin:0;border:1px solid var(--px-line);border-radius:var(--px-r-card);background:var(--px-surface);overflow:hidden auto}.px-ledger-wrap,.px-table-wrap{overflow-x:auto}.px-ledger-table td,.px-ledger-table th,.px-table td,.px-table th{border-right:0;border-bottom:1px solid var(--px-line);padding:0 16px}.px-ledger-table td:first-child,.px-ledger-table th:first-child,.px-table td:first-child,.px-table th:first-child{padding-left:20px}.px-ledger-table td:last-child,.px-ledger-table th:last-child,.px-table td:last-child,.px-table th:last-child{padding-right:20px}.px-ledger-table thead th,.px-table thead th{height:40px;background:var(--px-tint);color:var(--px-ink-faint);font-size:12px;font-weight:600;letter-spacing:.02em;border-bottom:1px solid var(--px-line)}.px-table tbody td,.px-table tbody th{height:48px;font-size:14px}.px-ledger-table tbody tr:last-child td,.px-ledger-table tbody tr:last-child th,.px-table tbody tr:last-child td,.px-table tbody tr:last-child th{border-bottom:0}.px-table tbody tr:hover td,.px-table tbody tr:hover th{background:var(--px-tint)}.px-table tbody tr.is-selected td,.px-table tbody tr.is-selected th{background:var(--px-primary-soft)}.px-table tbody th.px-table-name{background:transparent;color:var(--px-ink);font-size:14.5px;font-weight:600}.px-table tbody tr.is-selected th.px-table-name{box-shadow:inset 3px 0 0 var(--px-primary-deep)}.px .px-table-addrow>td>a,.px .px-table-addrow>td>button{justify-content:flex-start;min-height:44px;padding:0 20px;border-radius:0;color:var(--px-ink-secondary);font-size:13.5px;font-weight:600}.px .px-table-addrow>td>a:hover,.px .px-table-addrow>td>button:hover{background:var(--px-tint);color:var(--px-primary-deep)}.px .px-table .px-btn-danger,.px .px-table .px-btn-ghost,.px .px-table .px-btn-primary,.px .px-table .px-btn-secondary{min-height:30px;padding:3px 12px;font-size:13px}.px-ledgerpage{gap:20px}.px-ledger-head{min-height:40px;margin-bottom:12px}.px-ledger-head h2{font-size:17px;letter-spacing:-.015em}.px-ledger-table{font-size:14px}.px-ledger-table td,.px-ledger-table th{height:52px}.px-ledger-table thead th{height:40px}.px-ledger-table tbody tr:hover td,.px-ledger-table tbody tr:hover th{background:var(--px-tint)}.px-ledger-table tbody th.px-ledger-name{height:auto;background:transparent;color:var(--px-ink);font-size:14.5px;font-weight:600;white-space:nowrap}.px-ledger-swatch{display:inline-block;width:10px;height:10px;margin:0 9px -1px 0;border-radius:3px;border:1px solid var(--tone-line);background:var(--tone)}.px-ledger-level i{border-radius:3px}.px-ledger-exam{padding:8px 12px;vertical-align:middle}.px-ledger-exam.is-empty span,.px-ledger-exam.is-empty:before{display:none}.px-ledger-exam-title{font-size:13.5px}.px-ledger-exam-foot{margin-top:5px}.px-ledger-exam.is-running{box-shadow:inset 3px 0 0 var(--px-running)}.px .px-ledger-btn{min-height:26px;padding:0 11px;border-radius:var(--px-r-control)}.px .px-ledger-btn:hover{background:#33500e}.px .px-ledger-btn.is-ghost{border-color:var(--px-line-strong);background:var(--px-surface);color:var(--px-ink-secondary)}.px .px-ledger-btn.is-ghost:hover{border-color:var(--px-line-hover);background:var(--px-tint);color:var(--px-ink)}.px .px-ledger-btn.is-danger:hover{background:#ffe9e5}.px .px-ledger-x{border-radius:var(--px-r-pill);opacity:0}.px .px-ledger-x:focus-visible,.px-ledger-table tbody tr:hover .px-ledger-x{opacity:.6}.px .px-ledger-x:hover{background:var(--px-tint-2);color:var(--px-ink);opacity:1}.px .px-ledger-add{min-height:26px;padding:0 8px;margin-left:-8px;border-radius:var(--px-r-pill);color:var(--px-ink-faint);font-size:12.5px;font-weight:600;opacity:0;transition:opacity var(--px-t),background-color var(--px-t),color var(--px-t)}.px .px-ledger-add:focus-visible,.px .px-ledger-add[aria-expanded=true],.px-ledger-table tbody tr:hover .px-ledger-add{opacity:1}.px .px-ledger-add:hover{color:var(--px-primary-deep)}.px .px-ledger-add:hover,.px-ledger-table tbody tr.is-drop td,.px-ledger-table tbody tr.is-drop th{background:var(--px-primary-soft)}.px-ledger-table tbody tr.is-drop .px-ledger-exam.is-empty{box-shadow:inset 0 0 0 1px var(--px-primary-deep)}.px-ledger-pickrow td{background:var(--px-tint)}.px-ledger-picklist li{min-height:30px;font-size:13.5px}.px .px-ledger-table thead th .px-ledger-sort{min-height:0;padding:0;color:inherit;font:inherit;letter-spacing:inherit}.px .px-ledger-table thead th .px-ledger-sort:hover{color:var(--px-ink)}.px .px-ledger-new{min-height:32px;padding:0 14px;border-radius:var(--px-r-control)}.px-ledger-addrow td{height:44px}.px .px-ledger-addrow a{font-size:13.5px}.px-panel-empty{min-height:56px;margin:0;padding:0 20px;color:var(--px-ink-secondary);font-size:14px}.px .px-panel-clear{min-height:30px;padding:0 4px;color:var(--px-primary-deep);font-size:13.5px;font-weight:600;text-decoration:underline;text-underline-offset:3px}.px .px-ledger-tools .px-seg.is-day,.px .px-seg.is-day{height:auto;padding:3px;border:1px solid var(--px-line);border-radius:var(--px-r-pill);background:var(--px-tint-2);box-shadow:none}.px .px-ledger-tools .px-seg.is-day button,.px .px-seg.is-day button{position:relative;min-width:42px;min-height:28px;padding:2px 12px 3px;border-radius:var(--px-r-pill);color:var(--px-ink-secondary);font-size:13px;font-weight:600}.px .px-seg.is-day button:hover{background:rgba(255,255,255,.7);color:var(--px-ink)}.px .px-seg.is-day button.is-on,.px .px-seg.is-day button.is-on:hover{background:var(--px-primary-deep);color:#fff}.px .px-seg.is-day button.is-today:after{content:"";position:absolute;bottom:3px;left:50%;width:4px;height:4px;border-radius:50%;background:var(--px-primary-deep);translate:-50% 0}.px .px-seg.is-day button.is-today.is-on:after{background:var(--px-primary)}.px-pillselect{display:inline-flex}.px .px-ledger-tools .px-pillselect select,.px .px-pillselect select{width:auto;min-height:32px;padding:0 28px 0 12px;border:1px solid var(--px-line);border-radius:var(--px-r-pill);background:var(--px-surface) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' fill='none' stroke='%234e544b' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat right 11px center;color:var(--px-ink-secondary);font-size:13px;font-weight:600;line-height:1;appearance:none;-webkit-appearance:none;cursor:pointer}.px .px-pillselect select:hover{border-color:var(--px-line-strong);color:var(--px-ink)}.px .px-pillselect.is-on select{border-color:var(--px-primary-deep);background-color:var(--px-primary-soft);color:var(--px-primary-deep)}.px .px-ledger-search input,.px .px-panel-search input{min-height:32px;padding:0 14px;border-color:var(--px-line);border-radius:var(--px-r-pill);font-size:13px}.px .px-checklist{max-height:none;margin:0 0 20px;padding:16px 18px;border:1px solid var(--px-line);border-radius:var(--px-r-card);background:var(--px-surface);box-shadow:none}.px .px-checklist-steps>li{padding:10px 12px;border:1px solid var(--px-line);border-radius:var(--px-r-panel);background:var(--px-tint)}.px .px-checklist-steps>li:first-child{padding-left:12px}.px .px-checklist-steps>li.is-now{border-color:var(--px-primary-deep);background:var(--px-surface)}.px .px-checklist-steps>li.is-done{border-color:transparent;background:var(--px-primary-soft)}.px-exam-screen .px-step{gap:16px;padding:20px 22px;border:1px solid var(--px-line);border-radius:var(--px-r-card);background:var(--px-surface)}.px-exam-screen .px-step.is-3,.px-exam-screen .px-step.is-4{flex:0 0 auto}.px-exam-screen .px-step-actions{margin-top:4px}.px-trial{padding:14px 16px;border:1px solid var(--px-primary);border-radius:var(--px-r-panel);background:var(--px-primary-soft);color:var(--px-ink);font-size:14px}.px-trial small{color:var(--px-ink-secondary);font-size:13px}.px-exam-screen .px-pane{border-radius:var(--px-r-panel)}.px-exam-screen .px-assign-list ul{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.px-exam-screen .px-assign-list label{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:12px;min-height:56px;padding:10px 14px;border-radius:var(--px-r-panel);cursor:pointer}.px-exam-screen .px-assign-list label>input{width:17px;height:17px;margin:0;accent-color:var(--px-primary-deep)}.px-exam-screen .px-assign-list label:hover{border-color:var(--px-line-strong);background:var(--px-tint)}.px-exam-screen .px-assign-list label:has(input:checked){border-color:var(--px-primary-deep);background:var(--px-primary-soft)}.px-step.is-2 .px-sheet{border-radius:var(--px-r-panel)}.px-live h2,.px-step-done{font-size:22px;letter-spacing:-.02em}.px-live-qr{padding:28px 24px;border:1px solid var(--px-line);border-radius:var(--px-r-card);background:var(--px-surface)}.px-live-qr h3{margin:0;font-size:22px;font-weight:600;letter-spacing:-.02em}.px-live-qr img{border:1px solid var(--px-line);border-radius:var(--px-r-panel)}.px-live-roster{padding:20px 22px;border:1px solid var(--px-line);border-radius:var(--px-r-card);background:var(--px-surface)}.px-live-roster h3{margin:0;font-size:17px;font-weight:600}.px-live-cell{border:1px solid var(--px-line);border-radius:var(--px-r-panel);background:var(--px-tint);font-size:14px;font-weight:600;box-shadow:none}.px-live-cell.is-graded,.px-live-cell.is-submitted{border-color:var(--px-done);background:var(--px-done-soft)}.px .px-live-tabs button{min-height:34px;padding:0 14px;border:1px solid var(--px-line);border-radius:var(--px-r-pill);background:var(--px-surface);color:var(--px-ink-secondary);font-size:13.5px;font-weight:600}.px .px-live-tabs button[aria-selected=true]{border-color:var(--px-primary-deep);background:var(--px-primary-deep);color:#fff}.px-dot.is-todo{color:var(--px-ink-secondary)}.px-dot.is-todo:before{background:var(--px-line-hover)}.px-dot.is-review{color:var(--px-review)}.px-dot.is-review:before{background:var(--px-review)}.px-dot.is-ready{color:var(--px-done)}.px-dot.is-ready:before{background:var(--px-done)}.px-dot.is-running{color:var(--px-running)}.px-dot.is-running:before{background:var(--px-running)}.px-dot.is-ended{color:var(--px-ink-faint)}.px-dot.is-ended:before{background:var(--px-line-hover)}.px-live-cells{align-items:stretch}.px-live-cell{align-content:start;min-height:74px}.px-live-cells>li{height:78px;min-height:0}.px-ledger-table.is-exams td:not(.px-ledger-title):not(.px-ledger-classes){white-space:nowrap}.px-ledger-table.is-exams col.c-level{width:96px}.px-ledger-table.is-exams col.c-grade{width:76px}.px-ledger-table.is-exams col.c-subject{width:82px}.px-ledger-table.is-exams col.c-state{width:108px}.px-ledger-table.is-exams col.c-date{width:88px}.px-live-cells>.px-card+.px-card{margin-top:0}.px-page-head .px-seg,.px-sec-head .px-seg{flex:0 0 auto;padding:3px;border:1px solid var(--px-line);border-radius:var(--px-r-pill);background:var(--px-tint-2);box-shadow:none}.px-page-head .px-seg button,.px-sec-head .px-seg button{min-width:56px;min-height:28px;padding:2px 14px;border-radius:var(--px-r-pill);font-size:13px}.px-sec-head .px-seg button.is-active{background:var(--px-primary-deep);color:#fff}.px-page:has(.px-exam-screen){height:100%;padding-bottom:20px;overflow:hidden}.px-exam-screen{flex:1 1;min-height:0;gap:12px}.px-wizard-note{min-height:0}.px-wizard-note:empty{display:none}.px-exam-screen .px-wizard-title{max-width:380px;flex:1 1 260px}.px-exam-screen .px-step.is-1{flex:1 1;min-height:0;padding:16px 18px}.px-exam-screen .px-step.is-1 .px-work-split{gap:16px}.px-exam-screen .px-step.is-1 .px-pane{height:100%;min-height:0}.px-exam-screen .px-pane{height:auto}.px-pane-body .px-drop{width:min(74%,460px);padding:48px 24px}.px-pane-body .px-drop b{font-size:17px}.px-drop-icons svg{width:34px;height:34px}@media (max-width:1023px){.px-page:has(.px-exam-screen){height:auto;overflow:visible}.px-exam-screen .px-step.is-1 .px-pane{height:clamp(240px,34vh,400px)}}.px-page:has(.px-exam-screen){max-width:1600px}.px-exam-screen .px-step{overflow:auto}.px-exam-screen .px-pane-body{padding:16px}.px-exam-screen .px-pane-body .px-drop{width:100%;height:100%;max-width:none;padding:24px;border-width:2px;border-radius:var(--px-r-card);background:var(--px-surface)}.px-exam-screen .px-pane-body .px-drop.is-over{border-color:var(--px-primary-deep);background:var(--px-primary-soft)}.px-exam-top{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:16px;min-height:40px}.px-exam-top-name{min-width:0}.px-exam-top-name h2{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.px .px-exam-top-title,.px-exam-top-name h2{font-size:var(--px-fs-lg);font-weight:600;letter-spacing:-.02em}.px .px-exam-top-title{width:100%;max-width:340px;min-height:32px;padding:4px 8px;margin-left:-8px;border:1px solid transparent;border-radius:var(--px-r-control);background:transparent}.px .px-exam-top-title::placeholder{color:var(--px-ink-faint);font-weight:600}.px .px-exam-top-title:hover{border-color:var(--px-line)}.px .px-exam-top-title:focus{border-color:var(--px-primary-deep);background:var(--px-surface)}.px-exam-top .px-wizard-mark{display:none}.px-exam-top-do{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.px .px-exam-top-list{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:6px 12px;border:1px solid var(--px-line);border-radius:var(--px-r-control);background:var(--px-surface);color:var(--px-ink-secondary);font-size:var(--px-fs-base);white-space:nowrap}.px .px-exam-top-list svg{width:15px;height:15px}.px .px-exam-top-list:hover{border-color:var(--px-line-strong);background:var(--px-tint);color:var(--px-ink)}.px .px-exam-top-do .px-ai-hero{min-height:34px;padding:6px 14px;font-size:var(--px-fs-base)}.px .px-exam-top-do .px-ai-hero svg{width:16px;height:16px}@media (max-width:1023px){.px-exam-top{grid-template-columns:minmax(0,1fr) auto}.px-exam-top .px-wizard-steps{order:3;grid-column:1/-1;justify-self:center}}.px-top{gap:10px}.px-tabs{align-self:stretch;gap:0;margin:0 0 0 14px;padding:0;border-radius:0;background:transparent}.px .px-tab{position:relative;min-height:100%;padding:0 14px;border-radius:0;color:var(--px-ink-secondary);font-size:var(--px-fs-md);font-weight:600}.px .px-tab:hover{background:transparent;color:var(--px-ink)}.px .px-tab[aria-current=page]{background:transparent;color:var(--px-primary-deep);box-shadow:none}.px .px-tab[aria-current=page]:after{content:"";position:absolute;right:14px;bottom:0;left:14px;height:3px;border-radius:3px 3px 0 0;background:var(--px-primary-deep)}.px .px-tab svg{width:18px;height:18px;opacity:1}.px-top-actions{margin-left:auto}@media (max-width:1023px){.px-tabs{align-self:auto;margin:0}.px .px-tab[aria-current=page]:after{bottom:-4px}}.px-exam-screen .px-step.is-1{display:flex;flex-direction:column;gap:0;padding:0;overflow:hidden;border:1px solid var(--px-line);border-radius:var(--px-r-card);background:var(--px-surface);box-shadow:var(--px-shadow-card)}.px-exam-screen .px-step.is-1 .px-work-split{flex:1 1;min-height:0;gap:0;padding:0!important}.px-exam-screen .px-step.is-1 .px-pane{border:0;border-radius:0;background:transparent;box-shadow:none}.px-exam-screen .px-step.is-1 .px-pane+.px-pane{border-left:1px solid var(--px-line)}.px-exam-screen .px-step.is-1 .px-pane-head{background:transparent;border-bottom:1px solid var(--px-line)}.px-exam-screen .px-step.is-1 .px-pane-body{padding:0;background:transparent}.px-exam-screen .px-step.is-1 .px-pane-body:not(:has(.px-drop)){background:var(--px-tint)}.px-exam-screen .px-step.is-1 .px-pane-body .px-drop{width:100%;height:100%;max-width:none;padding:24px;border:2px dashed transparent;border-radius:0;background:transparent;box-shadow:none}.px-exam-screen .px-step.is-1 .px-pane-body .px-drop:hover{background:var(--px-tint)}.px-exam-screen .px-step.is-1 .px-pane-body .px-drop.is-over{border-color:var(--px-primary-deep);background:var(--px-primary-soft)}.px .px-header-compact{min-height:64px;flex-wrap:nowrap;gap:10px}.px .px-header-compact .px-tabs{align-self:stretch}.px .px-header-compact .px-tab{min-height:64px}.px .px-header-compact .px-home-summary-item .px-btn-ghost,.px .px-header-compact .px-home-summary-item .px-btn-primary{flex:0 0 auto}.px-home-summary ul{margin:0;padding:0;list-style:none}.px-home-summary-item>a{flex:0 0 auto}@media (max-width:1023px){.px .px-header-compact{min-height:60px;flex-wrap:wrap}.px .px-header-compact .px-tab{min-height:34px}}.px-drop-mark{display:grid;place-items:center;width:76px;height:76px;margin-bottom:16px;border-radius:22px;background:var(--px-primary-soft);color:var(--px-primary-deep)}.px-drop-mark svg{width:36px;height:36px;stroke-width:1.4}.px-exam-screen .px-drop>b{font-size:var(--px-fs-md);font-weight:600}.px-exam-screen .px-drop>small{color:var(--px-ink-faint)}.px-deck-foot{display:flex;align-items:center;gap:12px;flex:none;min-height:68px;padding:12px 18px;border-top:1px solid var(--px-line);background:var(--px-surface)}.px-deck-note{flex:1 1;min-width:0;color:var(--px-ink-faint);font-size:var(--px-fs-base)}.px .px-deck-foot .px-ai-hero{min-height:44px;padding:10px 22px;border-radius:var(--px-r-pill);font-size:15px}.px-roster-edit{display:inline-flex;gap:4px;margin-left:12px}.px-class-run{margin:18px 0 4px;padding:14px 16px;border:1px solid var(--px-line);border-radius:var(--px-r-panel);background:var(--px-tint)}.px-class-run .px-sec-head{margin:0 0 10px}.px-class-run h3{margin:0;font-size:var(--px-fs-md);font-weight:600}.px-class-run-pick{display:inline-flex;align-items:center;gap:8px}.px-class-run-pick .px-field{margin:0}.px-class-run-pick select{min-width:180px;max-width:260px}.px-class-run-empty{display:flex;align-items:center;gap:14px;margin:0;padding:18px 0 6px;color:var(--px-ink-faint);font-size:var(--px-fs-base)}.px-class-run-empty p{margin:0}.px-class-run-list{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.px-class-run-list>li{display:flex;align-items:center;gap:10px;min-height:48px;padding:8px 12px;border:1px solid var(--px-line);border-radius:var(--px-r-control);background:var(--px-surface)}.px-class-run-list>li>b{flex:none;max-width:42%;overflow:hidden;font-size:var(--px-fs-base);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.px-class-run-meta{flex:1 1;min-width:0;color:var(--px-ink-faint);font-size:var(--px-fs-sm);white-space:nowrap}.px-class-run-list .px-ledger-state{flex:none}.px-class-run-time{margin:0}.px-class-run-list .px-btn-primary,.px-class-run-time select{min-height:32px}@media (max-width:1023px){.px-class-run-list>li{flex-wrap:wrap}.px-class-run-list>li>b{max-width:100%}}.px-roster-actions{justify-content:space-between;align-items:center}.px-roster-actions h3{margin:0;font-size:var(--px-fs-md);font-weight:600}.px-class-detail-panel .px-sec-head{margin-bottom:10px}.px-act svg{flex:none;width:16px;height:16px}.px-pickgrid{min-width:0;margin:0;padding:0;border:0}.px-pickgrid legend{padding:0 0 10px;color:var(--px-ink-secondary);font-size:var(--px-fs-md);font-weight:600}.px-pickgrid ul{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}.px-pickgrid li{min-width:0}.px-pickgrid label{display:inline-flex;align-items:baseline;gap:10px;min-height:54px;padding:12px 20px;border:2px solid var(--px-line);border-radius:var(--px-r-card);background:var(--px-surface);cursor:pointer;transition:border-color .12s ease,background .12s ease}.px-pickgrid input{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.px-pickgrid label>b{font-size:19px;font-weight:600;letter-spacing:-.02em}.px-pickgrid label>em{flex:none;color:var(--px-ink-faint);font-size:var(--px-fs-base);font-style:normal}.px-pickgrid label:hover{border-color:var(--px-line-strong);background:var(--px-tint)}.px-pickgrid label.is-on{border-color:var(--px-primary-deep);background:var(--px-primary-soft)}.px-pickgrid label.is-on>b{color:var(--px-primary-deep)}.px-pickgrid label.is-on>b:before{content:"✓ ";font-weight:600}.px-pickgrid label.is-on>em{color:var(--px-primary-deep);opacity:.8}.px-pickgrid label:has(input:focus-visible){box-shadow:0 0 0 4px var(--px-primary-glow)}.px-pickgrid.is-row label{min-height:50px;padding:10px 22px}.px-pickgrid.is-compact legend{padding-bottom:8px;font-size:var(--px-fs-base)}.px-pickgrid.is-compact ul{gap:8px}.px-pickgrid.is-compact label{min-height:44px;padding:9px 18px;border-width:2px}.px-pickgrid.is-compact label>b{font-size:var(--px-fs-md)}.px :is(.px-field,.px-student-filter,.px-inline-form,.px-grade-exam) :is(select,input){min-height:40px;font-size:var(--px-fs-md)}:is(.px-class-workspace.is-list,.px-pick-list) .px-class-picker-list{max-width:none;gap:0;margin:0;border-top:1px solid var(--px-line)}:is(.px-class-workspace.is-list,.px-pick-list) .px-class-picker-item{border-bottom:1px solid var(--px-line);border-radius:0}:is(.px-class-workspace.is-list,.px-pick-list) .px-class-select{padding:16px 12px}:is(.px-class-workspace.is-list,.px-pick-list) .px-class-select strong{font-size:17px}:is(.px-class-workspace.is-list,.px-pick-list) .px-class-select span{margin-top:5px;font-size:13px}.px-pick-list .px-class-select span{display:inline-flex;align-items:center;gap:8px}.px-pick-list .px-class-select .px-dot{font-size:13px;font-style:normal}:is(.px-class-workspace,.px-pick-list) .px-class-picker-add :is(button,a) svg{flex:none;width:16px;height:16px}.px-pick-list .px-class-picker-add a{display:flex;width:100%;align-items:center;justify-content:center;gap:6px;min-height:42px;border:1px dashed var(--px-line-strong);border-radius:var(--px-r-control);color:var(--px-ink-secondary)}.px-pick-list .px-class-picker-add a:hover{border-color:var(--px-primary-deep);color:var(--px-primary-deep)}