.cmp{max-width:var(--wrap);margin-inline:auto;padding:0 var(--gutter) 80px}.cmp-head{padding:38px 0 26px}.cmp-head>.sp-overline{display:block;margin-bottom:12px}.cmp-title{font-size:clamp(1.875rem,4vw,var(--fs-h1));line-height:var(--lh-h1);letter-spacing:var(--ls-h1);font-weight:var(--fw-bold);color:var(--text-heading)}.cmp-lead{margin-top:12px;max-width:56ch}.cmp-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.cmp-slot{position:relative;min-height:88px;border-radius:var(--r-lg);padding:16px 44px 16px 18px}.cmp-slot--filled{background:var(--sp-white);border:1px solid var(--border);box-shadow:var(--shadow-1)}.cmp-slot__name{display:block;font-family:var(--font-head);font-weight:var(--fw-medium);font-size:var(--fs-h4);line-height:1.25;color:var(--text-heading)}.cmp-slot__meta{display:block;margin-top:4px;font-size:var(--fs-sm);color:var(--text-muted)}.cmp-slot__x{position:absolute;top:14px;right:14px;display:grid;place-items:center;width:26px;height:26px;border-radius:var(--r-full);background:var(--bg-subtle);color:var(--text-muted);transition:background-color var(--t-hover) ease,transform var(--t-press) var(--ease-out)}.cmp-slot__x svg{width:13px;height:13px}.cmp-slot__x:active{transform:scale(.94)}.cmp-slot--empty{padding:0;border:1.5px dashed var(--border-strong);background:transparent}.cmp-slot__add{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:100%;min-height:86px;border-radius:var(--r-lg);font-weight:var(--fw-medium);color:var(--text-muted);transition:color var(--t-hover) ease,background-color var(--t-hover) ease}.cmp-slot__add span{font-family:var(--font-head);font-size:1.125rem;line-height:1}.cmp-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;padding:8px;border-radius:var(--r-md);background:var(--sp-white);border:1px solid var(--border);box-shadow:var(--shadow-2);transform-origin:top center;animation:cmp-in .15s var(--ease-out)}@keyframes cmp-in{0%{opacity:0;transform:scale(.97) translateY(-4px)}}.cmp-menu__filter{width:100%;padding:9px 12px;margin-bottom:6px;border:1.5px solid var(--border);border-radius:var(--r-sm);background:var(--bg-subtle);font-size:var(--fs-sm);color:var(--text);outline:none}.cmp-menu__filter:focus{border-color:var(--sp-blue);background:var(--sp-white)}.cmp-menu__list{max-height:260px;overflow-y:auto}.cmp-menu__opt{display:flex;align-items:baseline;justify-content:space-between;gap:12px;width:100%;padding:9px 11px;border-radius:var(--r-sm);text-align:left;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-heading);transition:background-color var(--t-hover) ease}.cmp-menu__optmeta{font-size:var(--fs-label);color:var(--text-subtle);white-space:nowrap}.cmp-menu__none{padding:12px;font-size:var(--fs-sm);color:var(--text-subtle)}.cmp-note{margin-top:12px;min-height:1.2em;font-size:var(--fs-sm);color:var(--text-subtle)}.cmp-suggest{margin-top:26px}.cmp-suggest>.sp-overline{display:block;margin-bottom:12px}.cmp-suggestlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}.cmp-sugg{display:flex;flex-direction:column;justify-content:center;height:100%;width:100%;padding:12px 16px;border-radius:var(--r-md);border:1px solid var(--border);text-align:left;transition:border-color var(--t-hover) ease,transform var(--t-press) var(--ease-out)}.cmp-sugg:active{transform:scale(.985)}.cmp-sugg__name{display:block;font-family:var(--font-head);font-weight:var(--fw-medium);color:var(--text-heading)}.cmp-sugg__meta{display:block;font-size:var(--fs-label);color:var(--text-subtle)}.cmp-tablewrap{margin-top:34px;overflow-x:auto;-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 48px),transparent 100%);mask-image:linear-gradient(to right,#000 calc(100% - 48px),transparent 100%)}.cmp-tablewrap[data-end],.cmp-tablewrap[data-nooverflow]{-webkit-mask-image:none;mask-image:none}.cmp-table{width:100%;border-collapse:collapse;min-width:560px}.cmp-table th,.cmp-table td{text-align:left;vertical-align:top;padding:15px 16px;border-bottom:1px solid var(--border)}.cmp-table thead th{padding-bottom:12px;border-bottom:1.5px solid var(--border-strong)}.cmp-colname{font-family:var(--font-head);font-weight:var(--fw-medium);font-size:var(--fs-h4);color:var(--text-heading);line-height:1.25}.cmp-rowlabel{position:sticky;left:0;z-index:1;width:150px;background:var(--bg);font-family:var(--font-head);font-weight:var(--fw-medium);font-size:var(--fs-over);letter-spacing:var(--ls-over);text-transform:uppercase;color:var(--text-subtle)}.cmp-table tr[data-same] td,.cmp-table tr[data-same] th{opacity:.45}.cmp-table tr[data-unknown] th{opacity:.6}.cmp-table td[data-best]{background:var(--blue-tint);box-shadow:inset 3px 0 0 var(--sp-blue)}.cmp-chips{display:flex;flex-wrap:wrap;gap:5px}.cmp-tag--exam{background:var(--status-ok-bg);color:var(--sp-navy)}.cmp-tag--lang{background:var(--blue-tint);color:var(--sp-blue)}.cmp-tag--age{background:var(--bg-subtle);color:var(--text-muted)}.cmp-grade{display:flex;align-items:center;gap:10px}.cmp-grade__n{font-size:var(--fs-label);color:var(--text-subtle);white-space:nowrap}.cmp-price{font-family:var(--font-head);font-weight:var(--fw-bold);font-size:var(--fs-h4);color:var(--text-heading)}.cmp-locked{font-size:var(--fs-sm);color:var(--text-subtle)}.cmp-intake{display:flex;flex-direction:column;gap:3px}.cmp-intake b{font-family:var(--font-head);font-weight:var(--fw-bold);color:var(--text-heading)}.cmp-intake__rel{font-size:var(--fs-label);color:var(--text-subtle)}.cmp-soft,.cmp-dash{color:var(--text-subtle)}.cmp-yes{font-weight:var(--fw-bold);color:var(--sp-green)}.cmp-legend{margin-top:16px;font-size:var(--fs-label);color:var(--text-subtle)}@media (max-width: 720px){.cmp-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.cmp-slot:nth-child(3){grid-column:span 2}.cmp-rowlabel{width:108px;padding-right:10px}.cmp-table th,.cmp-table td{padding:13px 12px}.cmp-table{min-width:0}.cmp-table thead th:not(:first-child),.cmp-table tbody td{min-width:152px}}@media (hover: hover) and (pointer: fine){.cmp-slot__add:hover{background:var(--blue-tint);color:var(--sp-blue)}.cmp-slot__x:hover{background:var(--border)}.cmp-menu__opt:hover{background:var(--bg-subtle)}.cmp-sugg:hover{border-color:var(--border-accent)}.cmp-colname:hover{color:var(--sp-blue)}}@media (prefers-reduced-motion: reduce){.cmp-menu{animation:cmp-fade .12s var(--ease-out)}@keyframes cmp-fade{0%{opacity:0}}.cmp-slot__x:active,.cmp-sugg:active{transform:none}}
