.problem-bank-page{max-width:none;margin:0;padding:52px max(var(--tm-edge-pad,24px),calc((100vw - var(--tm-content-max,920px))/2)) 88px;color:var(--tm-ink)}.problem-bank-page>header{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:30px;flex-wrap:wrap}.problem-bank-page header p{color:var(--tm-signal);font-size:14px;font-weight:700;margin:0 0 9px}.problem-bank-page h1{font-size:38px;letter-spacing:-1.8px;margin:0 0 12px;color:var(--tm-ink)}.problem-bank-page header span{color:var(--tm-ink-soft)}.problem-bank-header-actions>a,.problem-bank-page header>a{background:var(--tm-signal);color:#fff;border-radius:var(--tm-r-sm);padding:13px 18px;white-space:nowrap;font-weight:650;display:inline-flex;align-items:center;gap:8px;text-decoration:none;transition:background var(--tm-fast) var(--tm-ease),transform var(--tm-fast) var(--tm-ease),box-shadow var(--tm-fast) var(--tm-ease)}.problem-bank-header-actions>a:hover,.problem-bank-page header>a:hover{background:var(--tm-signal-ink);box-shadow:var(--tm-lift);transform:translateY(-1px)}.problem-bank-header-actions>a:active,.problem-bank-page header>a:active{transform:translateY(0)}.problem-bank-header-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.problem-bank-filters{display:grid;gap:18px;margin:0 0 28px;padding:22px;border:1px solid #dfe5ef;border-radius:18px;background:#fff}.problem-bank-search{display:flex;flex-direction:column;gap:6px;max-width:420px}.problem-bank-search label{font-size:13px;font-weight:700;color:#526882}.problem-bank-search input{min-height:44px;padding:0 14px;border:1px solid #c7d3ec;border-radius:12px;font-size:14px;color:#20304d;background:#fff}.problem-bank-search input:focus-visible{outline:3px solid #12305d;outline-offset:2px}.filter-row{display:flex;align-items:stretch;gap:14px;flex-wrap:wrap}.filter-row-curriculum fieldset{flex:1 1 205px}.filter-row-rating fieldset{flex:0 1 330px}.filter-row>button{align-self:center;min-height:48px;padding:0 20px;border:1px solid #c7d3ec;border-radius:12px;background:#f0f4ff;color:#284ec2;font-weight:800}.filter-row>button:disabled{opacity:.45}.problem-bank-filters fieldset{min-width:178px;max-width:310px;border:1px solid #dfe5ef;border-radius:12px;padding:11px 13px;margin:0}.problem-bank-filters fieldset:disabled{opacity:.45;background:#f5f7fc}.problem-bank-filters legend{padding:0 4px;color:#526882;font-size:12px;font-weight:700}.problem-bank-filters fieldset>div{display:flex;flex-wrap:wrap;gap:7px}.problem-bank-filters label{display:inline-flex;align-items:center;gap:6px;padding:7px 9px;border:1px solid #d7deec;border-radius:8px;background:#fff;color:#20304d;font-size:13px;cursor:pointer}.filter-price-range label input[type=number]{width:84px;border:1px solid #d7deec;border-radius:6px;padding:3px 6px}.problem-bank-filters label:has(input:checked){border-color:#315ee7;background:#eef3ff;color:#284ec2;font-weight:700}.problem-bank-filters input{accent-color:#315ee7}.filter-row-rating{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}.filter-row-rating fieldset{grid-column:1;max-width:none!important;width:100%;box-sizing:border-box}.filter-row-rating fieldset>div{flex-wrap:nowrap!important;overflow-x:auto;padding-bottom:2px}.filter-row-rating label{flex:none;white-space:nowrap}.filter-row-rating>button{grid-column:2;grid-row:1/3;align-self:center}@media(max-width:800px){.filter-row{display:grid;grid-template-columns:1fr}.filter-row-curriculum fieldset,.filter-row-rating fieldset{min-width:0}.filter-row>button{justify-self:start}.filter-row-rating{display:grid;grid-template-columns:1fr}.filter-row-rating>button{grid-column:1;grid-row:auto;justify-self:start}.filter-row-rating fieldset>div{flex-wrap:wrap!important;overflow:visible}}.filter-popover{position:relative;flex:1 1 205px;min-width:178px;max-width:310px}.filter-popover-summary{display:flex;align-items:center;justify-content:space-between;gap:8px;list-style:none;cursor:pointer;min-height:44px;padding:0 13px;border:1px solid #d7deec;border-radius:12px;background:#fff;color:#20304d;font-size:13px;font-weight:600}.filter-popover-summary::-webkit-details-marker{display:none}.filter-popover-summary:after{content:"▾";color:#7889a1;font-size:11px}.filter-popover[open]>.filter-popover-summary:after{content:"▴"}.filter-popover:has(>.filter-popover-summary:focus-visible){outline:3px solid #315ee7;outline-offset:2px;border-radius:12px}.filter-popover-count{min-width:20px;padding:1px 7px;border-radius:999px;background:#315ee7;color:#fff;font-size:11px;font-weight:700;text-align:center}.filter-popover-panel{position:absolute;z-index:5;top:calc(100% + 6px);left:0;width:max(100%,260px);border:1px solid #dfe5ef;border-radius:12px;background:#fff;box-shadow:0 14px 32px #17357f26;padding:10px;display:grid;gap:8px}.filter-popover-head{display:flex;gap:8px;align-items:center}.filter-popover-head input{flex:1;min-height:38px;padding:0 10px;border:1px solid #c7d3ec;border-radius:9px;font-size:13px;color:#20304d}.filter-popover-head input:focus-visible{outline:3px solid #12305d;outline-offset:2px}.filter-popover-head button{min-height:38px;padding:0 10px;border:1px solid #d7deec;border-radius:9px;background:#fff;color:#284ec2;font-weight:700;font-size:12px;white-space:nowrap}.filter-popover-head button:disabled{opacity:.45}.filter-popover-options{display:flex;flex-direction:column;gap:4px;max-height:240px;overflow-y:auto}.filter-popover-options label{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:8px;font-size:13px;color:#20304d;cursor:pointer}.filter-popover-options label:has(input:checked){background:#eef3ff;color:#284ec2;font-weight:700}.filter-popover-options input{accent-color:#315ee7}.filter-popover-empty{margin:0;padding:8px;color:#8493ac;font-size:12.5px}@media(max-width:800px){.filter-popover{min-width:0;max-width:none}.filter-popover-panel{position:static;box-shadow:none;margin-top:6px}}.problem-bank-filter-toggle-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.problem-bank-filter-toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid #c7d3ec;border-radius:12px;background:#f0f4ff;color:#284ec2;font-weight:800;font-size:14px}.problem-bank-filter-toggle-caret{font-size:12px}.problem-bank-filter-badge{border-radius:999px;padding:3px 9px;background:#284ec2;color:#fff;font-size:11px;font-weight:700}.problem-bank-filter-clear{min-height:44px;padding:0 14px;border:1px solid #d7deec;border-radius:12px;background:#fff;color:#284ec2;font-weight:700;font-size:13px}.problem-bank-filter-panel{margin-top:18px}.problem-bank-count{color:#7889a1;margin:0 2px 18px}.problem-bank-error{color:#a4412e;background:#fff4f0;padding:14px;border-radius:12px;margin:0 0 18px}.problem-bank-notice{color:#284ec2;background:#eef3ff;padding:14px 16px;border-radius:12px;margin:0 0 24px;line-height:1.7}.problem-bank-notice a,.problem-bank-notice>button{color:#284ec2;font-weight:700}.problem-bank-notice>button{min-height:44px;padding:0;border:0;background:transparent;text-decoration:underline}.problem-bank-notice>button:focus-visible{outline:3px solid #12305d;outline-offset:3px;border-radius:6px}.problem-bank-empty{padding:60px;text-align:center;border:1px dashed #c7d3ec;border-radius:18px;background:#fff}.problem-bank-empty h2,.problem-bank-empty h3{font-size:20px;margin:0}.problem-bank-empty p{color:#7889a1;margin:10px 0 0}.problem-bank-selection-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 18px;padding:12px 14px;border-radius:12px;background:#eef3ff;color:#284ec2}.problem-bank-selection-bar span{font-weight:800;margin-right:auto}.problem-bank-selection-bar button{border:1px solid #b9c9f2;background:#fff;color:#284ec2;border-radius:8px;padding:8px 10px}.problem-bank-selection-bar .danger{border-color:#f0c1b3;color:#a4412e;background:#fff7f4}.problem-bank-selection-bar small{flex-basis:100%;color:#5a6d8c}.problem-bank-selection-bar .problem-bank-queue-status{font-weight:600;margin-right:0;color:#5a6d8c;font-size:13px}.problem-bank-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.problem-bank-card{background:#fff;border:1px solid #dfe5ef;border-radius:18px;padding:14px;display:flex;flex-direction:column;align-items:stretch;gap:10px;color:inherit;text-align:left;font:inherit;text-decoration:none;transition:border-color .18s,box-shadow .18s,transform .18s}button.problem-bank-card{cursor:pointer}.problem-bank-card:focus-visible,.problem-bank-card:hover{border-color:#315ee7;box-shadow:0 10px 28px #17357f1a;transform:translateY(-2px);outline:none}.problem-bank-card-select{all:unset;box-sizing:border-box;display:flex;flex-direction:column;gap:10px;width:100%;position:relative}button.problem-bank-card-select{cursor:pointer}.problem-bank-card-select:focus-visible{outline:2px solid #315ee7;outline-offset:2px;border-radius:12px}.problem-bank-card.selected{border:2px solid #315ee7;padding:13px;box-shadow:0 0 0 3px #dee8ff}.problem-bank-card-check{position:absolute;top:8px;left:8px;z-index:1;width:24px;height:24px;border:1px solid #c7d3ec;border-radius:7px;background:#fff;display:grid;place-items:center;font-size:14px;font-weight:800;color:#284ec2}.problem-bank-card.selected .problem-bank-card-check{background:#315ee7;border-color:#315ee7;color:#fff}.problem-bank-card-figure{position:relative}.problem-bank-card img{object-fit:contain;display:block}.problem-bank-card img,.problem-bank-card-placeholder{width:100%;aspect-ratio:1.28;background:#f5f7fc;border-radius:12px}.problem-bank-card-placeholder{display:grid;place-items:center;text-align:center;padding:10px;font-size:12px;color:#8493ac;line-height:1.5}.problem-bank-card-curriculum{margin:0;display:grid;gap:6px;font-size:13px;line-height:1.5}.problem-bank-card-curriculum p{margin:0;display:grid}.problem-bank-card-curriculum .grade{color:#284ec2;font-weight:700;font-size:12px}.problem-bank-card-curriculum .unit{color:#20304d}.problem-bank-card-curriculum .subunit{color:#5a6d8c;padding-left:12px}.problem-bank-more{display:flex;justify-content:center;margin:24px 0 0}.problem-bank-more button{min-height:46px;padding:0 24px;border:1px solid #c7d3ec;border-radius:12px;background:#fff;color:#284ec2;font-weight:750}.problem-bank-more button:disabled{opacity:.45}.problem-bank-card-tags{display:flex;flex-wrap:wrap;gap:5px}.problem-bank-card-tags span{font-size:11px;border-radius:999px;padding:5px 8px;background:#eef3ff;color:#284ec2}.problem-bank-card h2,.problem-bank-card h3{font-size:20px;margin:2px 0;color:#1d2a42;min-height:0}.problem-bank-card-subunit{font-size:13px;color:#5a6d8c;margin:0;line-height:1.55;min-height:38px}.problem-bank-card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:12px;color:#5a6d8c}.difficulty-badge,.origin-badge,.progress-badge,.quality-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:700}.origin-badge.uploaded{background:#eef3ff;color:#284ec2}.origin-badge.purchased{background:#fff2e2;color:#a5641b}.progress-badge{background:#eef3ff;color:#284ec2}.progress-badge.complete{background:#e9f7ef;color:#1c7a4c}.progress-badge.pending{background:#fff1ed;color:#b33e2d}.difficulty-badge{background:#eef2f5;color:#536660}.quality-badge{background:#fff2e2;color:#a5641b}.problem-bank-card>small{font-size:12px;color:#8493ac}.problem-bank-card-footer{display:flex;flex-direction:column;gap:8px;margin-top:auto;padding-top:6px;border-top:1px solid #eef1f6}.problem-bank-card-footer strong{font-size:18px;color:#1d2a42}.problem-bank-card-price{display:flex;justify-content:space-between;align-items:center;gap:8px}.problem-bank-card-action{border:1px solid #315ee7;background:#315ee7;color:#fff;border-radius:10px;padding:9px 12px;font-weight:700;font-size:13px;text-align:center}.problem-bank-card-action:disabled{border-color:#dfe5ef;background:#f5f7fc;color:#8493ac;cursor:not-allowed}.problem-bank-card-action.secondary{background:#fff;color:#284ec2}.problem-bank-card-reason{font-size:12px;color:#8493ac;line-height:1.6;margin:0}.problem-bank-card-state{font-size:12px;font-weight:700;color:#7889a1}.problem-bank-card-state.owned{color:#1c7a4c}@media(max-width:900px){.problem-bank-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.problem-bank-page{padding-block:32px 64px}.problem-bank-page>header{align-items:start;flex-direction:column}.problem-bank-page h1{font-size:29px}.problem-bank-filters fieldset{max-width:none;width:100%}.problem-bank-grid{grid-template-columns:1fr}}.problem-bank-page>header span{display:block;margin-top:2px;color:#5a6d8c;font-size:14px;line-height:1.6}.problem-bank-selection-bar .primary{background:#315ee7;border-color:#315ee7;color:#fff;font-weight:750;min-height:44px;padding:0 14px}.problem-bank-selection-bar .primary:disabled{background:#eef1f8;border-color:#d7deec;color:#8493ac;cursor:not-allowed}.problem-bank-selection-bar button{min-height:44px}.problem-bank-selection-more{position:relative}.problem-bank-selection-more>summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border:1px solid #b9c9f2;border-radius:8px;background:#fff;font-size:14px;font-weight:650}.problem-bank-selection-more>summary::-webkit-details-marker{display:none}.problem-bank-selection-more>summary:after{content:"▾"}.problem-bank-selection-more>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.problem-bank-card-market{border-top:1px solid #eef1f6;padding-top:6px}.problem-bank-card-market>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px;min-height:40px;font-size:12px;font-weight:700;color:#7889a1}.problem-bank-card-market>summary::-webkit-details-marker{display:none}.problem-bank-card-market>summary:before{content:"▸"}.problem-bank-card-market[open]>summary:before{content:"▾"}.problem-bank-card-market>div{display:grid;gap:8px;padding-bottom:4px}.problem-bank-card-market>summary:focus-visible,.problem-bank-selection-more>summary:focus-visible{outline:3px solid #315ee7;outline-offset:2px;border-radius:8px}@media(max-width:600px){.problem-bank-selection-bar .primary,.problem-bank-selection-more,.problem-bank-selection-more>summary{width:100%}}.problem-bank-bins{display:flex;gap:6px;margin:0 0 10px;padding:4px;border-radius:14px;background:#eef2f9;overflow-x:auto;scrollbar-width:none}.problem-bank-bins::-webkit-scrollbar{display:none}.problem-bank-bin{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;padding:10px 16px;border:0;border-radius:11px;background:transparent;color:#5a6b85;font-size:15px;font-weight:650;letter-spacing:-.01em;cursor:pointer;transition:background .14s ease,color .14s ease}.problem-bank-bin:hover{color:#1f2e46}.problem-bank-bin.active{background:#fff;color:#16233a;box-shadow:0 1px 2px #0b1b3a14,0 0 0 1px #dfe5ef}.problem-bank-bin-count{min-width:20px;padding:1px 7px;border-radius:999px;background:#dde4ef;color:#5a6b85;font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums}.problem-bank-bin.active .problem-bank-bin-count{background:#315ee7;color:#fff}.problem-bank-bin:focus-visible{outline:3px solid #315ee7;outline-offset:2px}.problem-bank-bin-note{margin:0 2px 20px;color:#7889a1;font-size:14px;line-height:1.6}@media(max-width:600px){.problem-bank-bin{padding:9px 13px;font-size:14px}.problem-bank-bin-note{margin-bottom:16px}}.problem-bank-select-all{display:inline-flex;align-items:center;gap:8px;margin-left:auto;font-size:14px;font-weight:600;color:#324867;cursor:pointer;user-select:none;white-space:nowrap}.problem-bank-select-all input{width:17px;height:17px;accent-color:#315ee7;cursor:pointer}.problem-bank-select-all span{font-weight:500;color:#7889a1;font-size:13px}@media(max-width:560px){.problem-bank-select-all{margin-left:0;width:100%;padding-top:4px}}.marketplace-preview-locked{margin:14px 0 0;padding:14px 16px;border:1px dashed #cedbed;border-radius:12px;background:#F6F9FE;color:#46586F;font-size:14px;line-height:1.7}