.hp-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.hp-heading .hm-sec-label { margin: 0 0 0 4px; }
.hp-edit { border: 0; background: transparent; color: var(--text-sub); font-family: inherit; font-size: .8rem; font-weight: 600; padding: 7px 5px 7px 12px; cursor: pointer; }
.hp-edit:focus-visible, .hp-more:focus-visible, .hp-tile:focus-visible, .hp-editor button:focus-visible { outline: 2px solid #b7d5ff; outline-offset: 3px; }
.hp-surface { position: relative; border: 1px solid var(--border); border-radius: 21px; padding: 16px 12px 12px; background: color-mix(in srgb, var(--card-bg) 80%, transparent); -webkit-backdrop-filter: blur(12px) saturate(120%); backdrop-filter: blur(12px) saturate(120%); box-shadow: inset 0 1px rgba(255,255,255,.07), 0 12px 28px rgba(0,0,0,.08); }
.hp-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px 5px; }
.hp-tile { --hp-glow: 125,191,255; display: flex; flex-direction: column; align-items: center; gap: 7px; min-width: 0; border: 0; color: var(--text-main); background: transparent; font-family: inherit; cursor: pointer; padding: 0 1px 3px; animation: hp-arrive .35s both; animation-delay: calc(var(--hp-i, 0) * 35ms); }
.hp-tile:active { transform: scale(.93); }
.hp-icon { width: clamp(48px, 13vw, 62px); height: clamp(48px, 13vw, 62px); display: grid; place-items: center; border-radius: 17px; background: linear-gradient(145deg, rgba(var(--hp-glow), .24), rgba(var(--hp-glow), .055) 70%), rgba(15,17,28,.25); border: 1px solid rgba(var(--hp-glow), .31); box-shadow: inset 0 1px rgba(255,255,255,.15), 0 5px 13px rgba(0,0,0,.18); transition: transform .2s cubic-bezier(.2,.8,.3,1.3), box-shadow .2s ease, border-color .2s ease; }
.hp-icon svg { width: 27px; height: 27px; color: rgb(var(--hp-glow)); filter: drop-shadow(0 1px 5px rgba(var(--hp-glow),.22)); }
.hp-name { max-width: 100%; text-align: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: clamp(.66rem, 2.9vw, .8rem); line-height: 1.35; font-weight: 650; }
@media (hover: hover) { .hp-tile:hover .hp-icon { transform: translateY(-3px); border-color: rgba(var(--hp-glow), .55); box-shadow: inset 0 1px rgba(255,255,255,.2), 0 8px 18px rgba(var(--hp-glow), .15); } }
.hp-tile-dictionary { --hp-glow: 139,202,255; }
.hp-tile-weakness { --hp-glow: 255,161,157; }
.hp-tile-campaign { --hp-glow: 249,211,122; }
.hp-tile-grammar { --hp-glow: 184,174,255; }
.hp-tile-academy { --hp-glow: 156,225,188; }
.hp-tile-reading { --hp-glow: 255,188,224; }
.hp-tile-ai { --hp-glow: 210,166,255; }
.hp-tile-report { --hp-glow: 159,213,220; }
.hp-more { display: block; width: 100%; margin: 10px 0 0; padding: 6px; border: 0; border-top: 1px solid rgba(255,255,255,.09); color: var(--text-sub); background: transparent; font-family: inherit; font-size: .74rem; font-weight: 600; cursor: pointer; }
.hp-empty { grid-column: 1 / -1; padding: 17px; border: 1px dashed var(--border); border-radius: 12px; background: transparent; color: var(--text-sub); font: inherit; cursor: pointer; }
.hp-more-tools { display: flex; gap: 8px; margin-top: 12px; }
.hp-more-tools .mode-btn { flex: 1; }
@keyframes hp-arrive { from { opacity: 0; transform: translateY(8px) scale(.96); } to { opacity: 1; transform: translateY(0) scale(1); } }

.hp-editor-backdrop { position: fixed; inset: 0; z-index: 5500; display: flex; align-items: flex-end; justify-content: center; background: rgba(4,5,12,.7); animation: hp-fade .2s ease both; }
.hp-editor { --hp-glow: 125,191,255; width: min(100%, 620px); max-height: min(85dvh, 760px); overflow-y: auto; overscroll-behavior: contain; padding: 21px 20px calc(24px + env(safe-area-inset-bottom)); border: 1px solid rgba(255,255,255,.15); border-radius: 25px 25px 0 0; background: linear-gradient(150deg, rgba(255,255,255,.05), transparent 50%), #141923; color: var(--text-main); box-shadow: 0 -16px 55px rgba(0,0,0,.36); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); animation: hp-rise .3s cubic-bezier(.2,.8,.2,1) both; }
.hp-editor-open { overflow: hidden; }
.hp-editor-head { display: flex; align-items: start; justify-content: space-between; gap: 20px; }
.hp-editor-eyebrow { color: var(--text-sub); font-size: .68rem; letter-spacing: .2em; }
.hp-editor h3 { margin: 6px 0 0; font-size: 1.25rem; }
.hp-editor h3 small { margin-left: 5px; color: var(--text-sub); font-size: .75rem; font-weight: 400; }
.hp-editor-close { width: 34px; height: 34px; border: 1px solid var(--border); border-radius: 50%; background: rgba(255,255,255,.06); color: var(--text-main); font-family: inherit; font-size: 1.3rem; cursor: pointer; }
.hp-editor-intro { color: var(--text-sub); margin: 8px 0 18px; font-size: .82rem; }
.hp-editor-selected { display: grid; gap: 8px; }
.hp-editor-hint { margin: 0; padding: 14px; color: var(--text-sub); border: 1px dashed var(--border); border-radius: 12px; }
.hp-editor-row { display: flex; align-items: center; gap: 11px; min-height: 52px; padding: 5px 7px; border: 1px solid rgba(255,255,255,.09); border-radius: 12px; background: rgba(255,255,255,.04); }
.hp-editor-mark { width: 35px; height: 35px; flex: 0 0 35px; display: grid; place-items: center; border: 1px solid rgba(var(--hp-glow),.36); border-radius: 10px; color: rgb(var(--hp-glow)); background: rgba(var(--hp-glow),.1); }
.hp-editor-mark svg, .hp-editor-option svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.hp-editor-name { flex: 1; font-size: .84rem; }
.hp-editor-controls { display: flex; gap: 2px; }
.hp-editor-controls button { min-width: 35px; min-height: 35px; border: 0; border-radius: 9px; color: var(--text-main); background: rgba(255,255,255,.06); font-size: 1rem; cursor: pointer; }
.hp-editor-controls button:disabled { opacity: .25; cursor: default; }
.hp-editor-catalogue h4 { margin: 22px 2px 10px; color: var(--text-sub); font-size: .73rem; letter-spacing: .12em; }
.hp-editor-options { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
.hp-editor-option { display: flex; align-items: center; gap: 9px; min-width: 0; min-height: 50px; padding: 8px 10px; border: 1px solid rgba(255,255,255,.09); border-radius: 12px; color: var(--text-main); background: rgba(255,255,255,.035); font-family: inherit; font-size: .82rem; font-weight: 600; text-align: left; cursor: pointer; }
.hp-editor-option svg { flex: 0 0 20px; color: rgb(var(--hp-glow)); }
.hp-editor-option.is-picked { border-color: rgba(var(--hp-glow),.48); background: rgba(var(--hp-glow),.11); }
.hp-editor-option span:not(.hp-editor-check) { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hp-editor-check { color: rgb(var(--hp-glow)); font-size: 1rem; }
.hp-editor-note { min-height: 1.2em; margin: 12px 0 0; color: #ffb0a6; font-size: .78rem; }
@keyframes hp-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes hp-rise { from { transform: translateY(20px); opacity: .7; } to { transform: translateY(0); opacity: 1; } }
html[data-fx="low"] .hp-surface, html[data-fx="low"] .hp-editor { -webkit-backdrop-filter: none; backdrop-filter: none; }
@media (prefers-reduced-motion: reduce) { .hp-tile, .hp-editor-backdrop, .hp-editor { animation: none; } .hp-icon { transition: none; } }
