.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--sp-6)}.grid{display:grid;gap:var(--sp-5)}.grid--2{grid-template-columns:repeat(2,1fr)}.grid--3{grid-template-columns:repeat(3,1fr)}.grid--4{grid-template-columns:repeat(4,1fr)}@media (max-width:1024px){.grid--4{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.grid--3{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.grid--2,.grid--3{grid-template-columns:1fr}.grid--4{grid-template-columns:1fr 1fr}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-6);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;line-height:var(--lh-tight);text-decoration:none;text-align:center;border:2px solid transparent;border-radius:var(--r-md);cursor:pointer;transition:background 0.2s,color 0.2s,box-shadow 0.2s,transform 0.15s;user-select:none;white-space:nowrap}.btn:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px}.btn--primary{background:var(--brand-600);color:#fff;border-color:var(--brand-600)}.btn--primary:hover{background:var(--brand-700);border-color:var(--brand-700);color:#fff;transform:translateY(-1px);box-shadow:0 4px 14px rgba(var(--brand-rgb),0.3);text-decoration:none}.btn--secondary{background:var(--accent-500);color:#fff;border-color:var(--accent-500)}.btn--secondary:hover{background:var(--accent-600);border-color:var(--accent-600);color:#fff;transform:translateY(-1px);text-decoration:none}.btn--outline{background:transparent;color:var(--brand-600);border-color:var(--brand-600)}.btn--outline:hover{background:var(--brand-600);color:#fff;text-decoration:none}[data-theme="dark"] .btn--outline{color:var(--brand-400);border-color:var(--brand-400)}[data-theme="dark"] .btn--outline:hover{background:var(--brand-400);color:#0D0D0D}.btn--ghost{background:transparent;color:var(--text-2);border-color:transparent}.btn--ghost:hover{background:var(--surface);color:var(--text);text-decoration:none}.btn--sm{padding:var(--sp-1) var(--sp-3);font-size:var(--text-xs);border-radius:var(--r-sm)}.btn--lg{padding:var(--sp-4) var(--sp-8);font-size:var(--text-base);border-radius:var(--r-md)}.btn--block{display:flex;width:100%}.badge{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);font-family:var(--font-sans);font-size:var(--text-xs);font-weight:600;line-height:var(--lh-normal);border-radius:999px;white-space:nowrap}.badge--success{background:rgba(22,163,74,0.1);color:var(--success)}.badge--warning{background:rgba(245,158,11,0.1);color:var(--warning)}.badge--error{background:rgba(220,38,38,0.1);color:var(--error)}.badge--brand{background:rgba(var(--brand-rgb),0.1);color:var(--brand-600)}.badge--neutral{background:var(--surface);color:var(--muted)}[data-theme="dark"] .badge--success{background:rgba(22,163,74,0.15)}[data-theme="dark"] .badge--warning{background:rgba(245,158,11,0.15)}[data-theme="dark"] .badge--error{background:rgba(220,38,38,0.15)}[data-theme="dark"] .badge--brand{background:rgba(var(--brand-rgb),0.15)}[data-theme="dark"] .badge--neutral{background:rgba(255,255,255,0.06)}.card{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-1);overflow:hidden;transition:transform 0.25s ease,box-shadow 0.25s ease}.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-2)}[data-theme="dark"] .card{background:var(--nsp-bg-card)}.card__media{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover}.card__body{padding:var(--sp-5)}.card__title{font-size:var(--text-base);font-weight:700;line-height:var(--lh-tight);margin:0 0 var(--sp-2);color:var(--text)}.card__text{font-size:var(--text-sm);color:var(--text-2);line-height:var(--lh-normal);margin:0}.card__footer{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.card--glass{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(180%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(180%);border-color:var(--glass-border)}.input{display:block;width:100%;padding:var(--sp-3) var(--sp-4);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--lh-normal);color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);transition:border-color 0.2s,box-shadow 0.2s;appearance:none}.input::placeholder{color:var(--muted)}.input:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px rgba(var(--brand-rgb),0.15)}.input:disabled{opacity:0.55;cursor:not-allowed}[data-theme="dark"] .input{background:var(--surface)}select.input{padding-right:var(--sp-10);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--sp-3) center}textarea.input{resize:vertical;min-height:100px}.label{display:block;font-size:var(--text-sm);font-weight:600;color:var(--text);margin-bottom:var(--sp-1)}.field{margin-bottom:var(--sp-4)}.input--error{border-color:var(--error)}.input--error:focus{box-shadow:0 0 0 3px rgba(220,38,38,0.15)}.field__error{font-size:var(--text-xs);color:var(--error);margin-top:var(--sp-1)}.divider{border:none;border-top:1px solid var(--border);margin:var(--sp-6) 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}