.past-papers-root{gap:var(--space-3);max-width:1200px;padding-block:var(--space-3);flex-direction:column;margin-inline:auto;display:flex}.past-papers-header{flex-direction:column;gap:4px;display:flex}.past-papers-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.past-papers-empty{padding:var(--space-4);color:var(--text-3);border:1px dashed var(--border-2);border-radius:var(--r-lg);text-align:center;grid-column:1/-1;justify-content:center;align-items:center;font-size:.9rem;display:flex}.past-papers-pagination{align-items:center;gap:var(--space-2);padding-block:var(--space-2);border-top:1px solid var(--border);display:flex}.past-papers-page-info{text-align:center;color:var(--text-3);font-size:.8rem;font-family:var(--font-mono);letter-spacing:.05em;flex:1}.pp-filter-bar{gap:var(--space-1);background:linear-gradient(160deg, var(--surface) 0%, var(--surface-2) 100%);border:1px solid var(--border);border-radius:var(--r-xl);padding:var(--space-2) var(--space-3);flex-direction:column;display:flex;box-shadow:0 2px 16px #00000040,inset 0 1px #ffffff0a}.pp-filter-row{align-items:center;gap:var(--space-1);display:flex}.pp-chips-row{flex-wrap:wrap;row-gap:6px}.pp-filter-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);flex-shrink:0;min-width:56px;font-size:.68rem}.pp-chips{flex-wrap:wrap;flex:1;gap:5px;display:flex}.pp-chip{border:1px solid var(--border-2);background:var(--surface-3);color:var(--text-2);font-size:.75rem;font-family:var(--font-mono);letter-spacing:.04em;cursor:pointer;transition:background var(--t) var(--ease), border-color var(--t) var(--ease), color var(--t) var(--ease);border-radius:999px;align-items:center;padding:4px 10px;display:inline-flex}.pp-chip:hover{background:var(--surface-3);border-color:var(--gold-border);color:var(--text-1)}.pp-chip.active{background:var(--gold-dim);border-color:var(--gold-border);color:var(--gold);font-weight:600}.pp-chip-memo{color:var(--green);background:#10b9810d;border-color:#10b98133}.pp-chip-memo:hover{color:var(--green);background:#10b9811a;border-color:#10b98166}.pp-chip-memo.active{background:var(--green-dim);color:var(--green);border-color:#10b98166}.pp-search-input{background:var(--surface-3);border:1px solid var(--border-2);border-radius:var(--r-md);width:100%;color:var(--text-1);font-family:var(--font-body);transition:border-color var(--t) var(--ease), box-shadow var(--t) var(--ease);outline:none;padding:9px 14px;font-size:.875rem}.pp-search-input::placeholder{color:var(--text-3)}.pp-search-input:focus{border-color:var(--gold-border);box-shadow:0 0 0 3px #ffd70014}.pp-clear-btn{border:1px solid var(--border-2);color:var(--text-3);font-size:.72rem;font-family:var(--font-mono);letter-spacing:.06em;cursor:pointer;transition:color var(--t) var(--ease), border-color var(--t) var(--ease);white-space:nowrap;background:0 0;border-radius:999px;margin-left:auto;padding:4px 12px}.pp-clear-btn:hover{color:var(--text-1);border-color:var(--border-2)}.pp-card{padding:var(--space-2) var(--space-2);background:linear-gradient(160deg, var(--surface) 0%, var(--surface-2) 100%);border:1px solid var(--border);border-radius:var(--r-lg);color:inherit;cursor:pointer;transition:border-color var(--t) var(--ease), transform var(--t) var(--ease), box-shadow var(--t) var(--ease);flex-direction:column;gap:10px;text-decoration:none;display:flex;position:relative;overflow:hidden}.pp-card:before{content:"";opacity:0;transition:opacity var(--t) var(--ease);pointer-events:none;background:linear-gradient(160deg,#ffd70008 0%,#0000 60%);position:absolute;inset:0}.pp-card:hover{border-color:var(--gold-border);transform:translateY(-2px);box-shadow:0 8px 32px #0000004d,0 0 #0000}.pp-card:hover:before{opacity:1}.pp-card-subject{font-family:var(--font-display);color:var(--text-1);font-size:1.2rem;font-weight:600;line-height:1.3}.pp-card-badges,.pp-card-meta{flex-wrap:wrap;gap:5px;display:flex}.pp-card-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:auto;padding-top:8px;display:flex}.pp-card-cta{color:var(--text-3);font-size:.75rem;font-family:var(--font-mono);letter-spacing:.06em;transition:color var(--t) var(--ease)}.pp-card:hover .pp-card-cta{color:var(--gold)}.pp-badge{border:1px solid var(--border);background:var(--surface-3);color:var(--text-2);font-size:.7rem;font-family:var(--font-mono);letter-spacing:.05em;white-space:nowrap;border-radius:999px;align-items:center;padding:2px 8px;line-height:1.6;display:inline-flex}.pp-badge-grade{border-color:var(--gold-border);background:var(--gold-dim);color:var(--gold)}.pp-badge-muted{color:var(--text-3);background:0 0;border-color:#0000}.pp-memo-badge{font-size:.68rem;font-family:var(--font-mono);letter-spacing:.04em;white-space:nowrap;border-radius:999px;align-items:center;padding:2px 8px;display:inline-flex}.pp-memo-available{background:var(--green-dim);color:var(--green);border:1px solid #10b98140}.pp-memo-pending{border:1px solid var(--border);color:var(--text-3);background:0 0}.pp-detail{gap:var(--space-2);flex-direction:column;max-width:860px;margin-inline:auto;display:flex}.pp-detail-nav{justify-content:space-between;align-items:center;display:flex}.pp-back-link{color:var(--text-3);font-size:.8rem;font-family:var(--font-mono);letter-spacing:.06em;transition:color var(--t) var(--ease);align-items:center;gap:6px;text-decoration:none;display:inline-flex}.pp-back-link:hover{color:var(--text-1)}.pp-detail-title{margin-block:0;line-height:1.2}.pp-detail-meta-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pp-detail-actions{gap:var(--space-1);padding-block:var(--space-2);border-block:1px solid var(--border);flex-direction:column;display:flex}.pp-action-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pp-detail-attempt-bar{padding:var(--space-2);background:var(--gold-dim);border:1px solid var(--gold-border);border-radius:var(--r-lg);flex-wrap:wrap;align-items:center;gap:12px;display:flex}.pp-attempt-stats{color:var(--text-2);font-size:.8rem;font-family:var(--font-mono);letter-spacing:.04em}.pp-detail-preview{padding-top:var(--space-1);flex-direction:column;gap:10px;display:flex}.pp-preview-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);font-size:.68rem}.pp-preview-frame{border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface-3);overflow:hidden}.pp-preview-expand{font-size:.78rem;font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-3);transition:color var(--t) var(--ease);align-self:flex-end;text-decoration:none;display:inline-flex}.pp-preview-expand:hover{color:var(--gold)}.pp-bookmark-btn{border-radius:var(--r-md);border:1px solid var(--border-2);background:var(--surface-3);width:36px;height:36px;color:var(--text-3);cursor:pointer;transition:color var(--t) var(--ease), border-color var(--t) var(--ease), background var(--t) var(--ease);flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;display:inline-flex}.pp-bookmark-btn:hover:not(:disabled){color:var(--gold);border-color:var(--gold-border)}.pp-bookmark-btn.active{color:var(--gold);border-color:var(--gold-border);background:var(--gold-dim)}.pp-bookmark-btn:disabled{opacity:.4;cursor:wait}.btn-primary{background:linear-gradient(135deg, var(--gold) 0%, #e5c100 100%);color:#07101f;letter-spacing:.1em;border-color:#0000;font-weight:700}.btn-primary:hover{background:linear-gradient(135deg, #ffe44d 0%, var(--gold) 100%);color:#07101f;border-color:#0000}.outline-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}@media (max-width:640px){.past-papers-grid{grid-template-columns:1fr}.pp-filter-bar{padding:var(--space-2)}.pp-filter-label{min-width:46px;font-size:.63rem}.pp-detail-actions{gap:var(--space-2)}.pp-action-group,.pp-detail-attempt-bar{flex-direction:column;align-items:stretch}.pp-chips{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-bottom:2px;overflow-x:auto}}:root[data-theme=light] .pp-card,:root[data-theme=light] .pp-filter-bar{background:linear-gradient(160deg,#fff 0%,#f8f9ff 100%)}:root[data-theme=light] .pp-badge-grade,:root[data-theme=light] .pp-chip.active{color:#4f46e5;background:#4f46e514;border-color:#4f46e54d}:root[data-theme=light] .btn-primary{color:#fff;background:linear-gradient(135deg,#4f46e5 0%,#6366f1 100%)}:root[data-theme=light] .btn-primary:hover{color:#fff;background:linear-gradient(135deg,#6366f1 0%,#4f46e5 100%)}