.brand{align-items:center;gap:var(--space-2);display:inline-flex}.brand__wordmark{flex-direction:column;line-height:1;display:flex}.brand__name{font-size:var(--font-size-lg);font-weight:var(--font-weight-black);color:var(--color-brand-ink);font-style:italic}.brand__tagline{color:var(--color-text-secondary);font-size:.625rem;font-style:italic}.auth-shell{justify-content:center;align-items:center;gap:var(--space-5);min-height:100vh;padding:var(--space-6) var(--space-4);flex-direction:column;display:flex;position:relative;overflow:hidden}.auth-shell__glow{background:radial-gradient(circle, var(--color-primary-glow) 0%, transparent 70%);filter:blur(10px);pointer-events:none;border-radius:50%;width:520px;height:520px;position:absolute;inset:-20% -10% auto auto}.auth-card{width:100%;max-width:var(--auth-card-width);gap:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-glow);flex-direction:column;display:flex;position:relative}.auth-card__header{align-items:center;gap:var(--space-3);text-align:center;flex-direction:column;display:flex}.auth-card__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-black)}.auth-card__subtitle{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.auth-shell__footer{font-size:var(--font-size-xs);color:var(--color-text-muted);position:relative}.app-header{z-index:10;justify-content:space-between;align-items:center;gap:var(--space-4);min-height:var(--header-height);padding:var(--space-3) var(--space-6);background:var(--color-header-bg);border-bottom:1px solid var(--color-border-subtle);display:flex;position:sticky;top:0}.app-header__right{align-items:center;gap:var(--space-4);display:flex}.app-header__user{align-items:center;gap:var(--space-3);display:flex}.avatar{border:2px solid var(--color-primary);background:var(--color-primary-soft);width:44px;height:44px;color:var(--color-error);font-weight:var(--font-weight-bold);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.app-header__identity{flex-direction:column;line-height:1.2;display:flex}.app-header__name{font-weight:var(--font-weight-bold)}.app-header__role{font-size:var(--font-size-xs);color:var(--color-text-secondary)}@media (width<=600px){.app-header{padding:var(--space-3) var(--space-4)}.app-header__identity,.app-header .brand__wordmark{display:none}}.page{width:100%;max-width:var(--container-max-width);padding:var(--space-6) var(--space-5) var(--space-7);margin:0 auto}.page__greeting{font-size:var(--font-size-2xl);font-weight:var(--font-weight-black)}.page__lede{margin-top:var(--space-1);color:var(--color-text-secondary)}@media (width<=600px){.page{padding:var(--space-5) var(--space-4) var(--space-6)}.page__greeting{font-size:var(--font-size-xl)}}.captcha-form{gap:var(--space-4);flex-direction:column;display:flex}.captcha-box{align-items:center;gap:var(--space-3);display:flex}.captcha-box__challenge{min-height:84px;padding:var(--space-2);border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);color:var(--color-primary);flex:1;justify-content:center;align-items:center;display:flex;overflow:hidden}.captcha-box__challenge img{width:auto;max-height:72px}.captcha-box__text{padding:0 var(--space-3);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);text-align:center;color:var(--color-text-primary);line-height:1.4}.captcha-box__placeholder{font-size:var(--font-size-sm);color:var(--color-text-muted)}.login-form,.data-table{gap:var(--space-4);flex-direction:column;display:flex}.data-table__toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.data-table__search{max-width:280px}.data-table__count{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.data-table__scroll{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);overflow-x:auto}.data-table table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.data-table th,.data-table td{padding:var(--space-3) var(--space-4);text-align:left;white-space:nowrap}.data-table th{background:var(--color-primary-soft);color:var(--color-text-heading);font-weight:var(--font-weight-bold)}.data-table tbody tr+tr td{border-top:1px solid var(--color-border-subtle)}.data-table tbody tr:hover td{background:var(--color-surface-muted)}.data-table__index{color:var(--color-text-muted)}.data-table__empty{padding:var(--space-5);text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.data-table__pager{justify-content:flex-end;align-items:center;gap:var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex}.data-table__pager .icon-btn{width:36px;height:36px}@media (width<=600px){.data-table__search{max-width:none}}.dashboard-product{justify-content:space-between;align-items:center;gap:var(--space-4);margin-top:var(--space-6);padding:var(--space-4) var(--space-6);border-radius:var(--radius-pill);background:var(--gradient-primary);box-shadow:var(--shadow-button);color:var(--color-text-inverse);flex-wrap:wrap;display:flex}.dashboard-product__label{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.dashboard-product__change{padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-accent);font-weight:var(--font-weight-bold);border:0;text-decoration:none}.dashboard-notice{margin-top:var(--space-5)}.dashboard-filters{align-items:flex-end;gap:var(--space-4);margin-top:var(--space-5);padding:var(--space-5);flex-wrap:wrap;display:flex}.dashboard-filters__board{flex:0 360px;min-width:0}.dashboard-filters__alert{flex:280px}.stat-grid{gap:var(--space-5);margin-top:var(--space-5);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}@media (width<=960px){.stat-grid{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr))}}.stat-card{column-gap:var(--space-4);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:radial-gradient(circle at 85% 20%, var(--color-primary-glow) 0%, transparent 45%), var(--color-surface);box-shadow:var(--shadow-glow);grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;display:grid}.stat-card__icon{border-radius:var(--radius-md);background:var(--color-primary-soft);width:52px;height:52px;color:var(--color-primary);grid-row:span 2;justify-content:center;align-items:center;display:inline-flex}.stat-card__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.stat-card__value{min-height:2.25rem;font-size:var(--font-size-xl);font-weight:var(--font-weight-black);color:var(--color-text-heading);align-items:center;display:flex}.stat-card__value .spinner{color:var(--color-primary)}.dashboard-panel{gap:var(--space-4);margin-top:var(--space-5);flex-direction:column;min-width:0;display:flex}.dashboard-panel__header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);flex-wrap:wrap;display:flex}.dashboard-panel__header h2{font-size:var(--font-size-lg);color:var(--color-text-heading)}.dashboard-panel__subtitle{margin-top:var(--space-1);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.dashboard-panel__actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.dashboard-panel__status{padding:var(--space-5);color:var(--color-primary);justify-content:center;display:flex}.dashboard-inline-field .input{width:auto;min-height:44px}@media (width<=600px){.dashboard-panel__actions,.dashboard-inline-field,.dashboard-inline-field .input{width:100%}.dashboard-panel__actions .icon-btn{margin-left:auto}.dashboard-product{padding:var(--space-4);border-radius:var(--radius-lg)}.dashboard-product__label{font-size:var(--font-size-lg)}}.revision-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.revision-card{gap:var(--space-4);padding:var(--space-4) var(--space-5);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-surface);flex-direction:column;display:flex}.revision-card__header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.revision-card__who{min-width:0}.revision-card__name{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-text-heading);overflow-wrap:anywhere}.revision-card__sub{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:2px}.revision-card__score{min-width:72px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-primary-soft);flex-direction:column;flex-shrink:0;align-items:center;display:flex}.revision-card__score-value{font-size:var(--font-size-lg);font-weight:var(--font-weight-black);color:var(--color-text-accent);line-height:1.1}.revision-card__score-label{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.revision-card__stars{font-size:var(--font-size-xs);letter-spacing:1px;color:var(--color-brand-gold);margin-top:2px}.revision-card__stars-empty{color:var(--color-border-subtle)}.revision-card dl,.revision-card dd{margin:0}.revision-card__meta{gap:var(--space-2) var(--space-4);font-size:var(--font-size-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.revision-card__wide{grid-column:1/-1}.revision-card__meta dt,.revision-card__stat dt{font-size:var(--font-size-xs);color:var(--color-text-muted)}.revision-card__meta dd{color:var(--color-text-primary);font-weight:var(--font-weight-semibold);overflow-wrap:anywhere}.revision-card__stats{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.revision-card__stat{padding:var(--space-2);border-radius:var(--radius-sm);background:var(--color-surface-muted);text-align:center}.revision-card__stat dd{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-text-heading)}.revision-card__stat--good dd{color:var(--color-success)}.revision-card__stat--bad dd{color:var(--color-error)}@media (width<=480px){.revision-grid{grid-template-columns:1fr}.revision-card{padding:var(--space-4)}.revision-card__stats{grid-template-columns:repeat(2,minmax(0,1fr))}}:root{--color-primary:#ff7f4c;--color-primary-hover:#f26a33;--color-primary-strong:#ff4d00;--color-primary-soft:#fff1ea;--color-primary-glow:#ff704059;--color-brand-gold:#f5b70a;--color-brand-ink:#1b1b1b;--gradient-primary:linear-gradient(90deg, var(--color-primary-strong) 0%, #ff8a4c 100%);--color-page-bg:#f5f5f4;--color-surface:#fff;--color-surface-muted:#f5f6fa;--color-header-bg:#fff;--color-text-primary:#202224;--color-text-heading:#2b2b2b;--color-text-secondary:#6b7280;--color-text-muted:#9ca3af;--color-text-inverse:#fff;--color-text-accent:var(--color-primary-strong);--color-success:#00b69b;--color-success-soft:#e6f8f5;--color-error:#e5304a;--color-error-soft:#fdecef;--color-warning:#c27c00;--color-warning-soft:#fff6e0;--color-info-soft:#eef2ff;--color-border:#f3c4ae;--color-border-subtle:#ececec;--color-focus-ring:#ff7f4c59;--radius-sm:6px;--radius-md:12px;--radius-lg:18px;--radius-xl:28px;--radius-pill:999px;--shadow-card:0 4px 20px #0000000f;--shadow-stat:0 6px 14px #0000001a;--shadow-button:0 6px 14px #ff704059;--shadow-glow:0 6px 22px var(--color-primary-glow);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--container-max-width:1200px;--auth-card-width:440px;--header-height:76px;--control-height:48px;--font-family-base:"Nunito Sans", "Segoe UI", system-ui, -apple-system, Arial, sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.25rem;--font-size-xl:1.75rem;--font-size-2xl:2.25rem;--font-weight-regular:400;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-black:800;--transition-fast:.15s ease;--transition-normal:.25s ease}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-page-bg);min-height:100vh;color:var(--color-text-primary);font-family:var(--font-family-base);font-size:var(--font-size-base);-webkit-font-smoothing:antialiased;line-height:1.5}h1,h2,h3,p{margin:0}h1,h2,h3{color:var(--color-text-heading);font-weight:var(--font-weight-bold);line-height:1.2}img,svg{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important;animation-duration:0s!important}}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-6)}@media (width<=480px){.card{padding:var(--space-5) var(--space-4)}}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--control-height);padding:0 var(--space-5);border-radius:var(--radius-pill);font-weight:var(--font-weight-bold);font-size:var(--font-size-base);transition:background var(--transition-fast), box-shadow var(--transition-fast), opacity var(--transition-fast), transform var(--transition-fast);border:1px solid #0000;display:inline-flex}.btn:disabled{cursor:not-allowed;opacity:.55;box-shadow:none}.btn--primary{background:var(--color-primary);color:var(--color-text-inverse);box-shadow:var(--shadow-button)}.btn--primary:not(:disabled):hover{background:var(--color-primary-hover)}.btn--primary:not(:disabled):active{transform:translateY(1px)}.btn--ghost{background:var(--color-surface-muted);color:var(--color-text-primary);border-color:var(--color-border-subtle)}.btn--ghost:not(:disabled):hover{background:var(--color-primary-soft)}.btn--block{width:100%}.icon-btn{width:var(--control-height);height:var(--control-height);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-primary);transition:background var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon-btn:not(:disabled):hover{background:var(--color-primary-soft)}.icon-btn:disabled{cursor:not-allowed;opacity:.55}.field{gap:var(--space-2);flex-direction:column;display:flex}.field__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.field__required{color:var(--color-error);margin-left:2px}.field__control{align-items:center;display:flex;position:relative}.input{width:100%;min-height:var(--control-height);padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted);color:var(--color-text-primary);transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.input::placeholder{color:var(--color-text-muted)}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-focus-ring);background:var(--color-surface);outline:none}.input[aria-invalid=true]{border-color:var(--color-error)}.input:disabled{opacity:.7;cursor:not-allowed}.input--with-action{padding-right:calc(var(--control-height) + var(--space-1))}.field__action{right:var(--space-1);border-radius:var(--radius-sm);width:40px;height:40px;color:var(--color-text-secondary);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex;position:absolute}.field__action:hover{color:var(--color-primary)}.field__error{font-size:var(--font-size-sm);color:var(--color-error)}.alert{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);line-height:1.4;display:flex}.alert__body{flex:1}.alert__action{font-weight:var(--font-weight-bold);color:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.alert--error{background:var(--color-error-soft);color:var(--color-error)}.alert--success{background:var(--color-success-soft);color:var(--color-success)}.alert--warning{background:var(--color-warning-soft);color:var(--color-warning)}.alert--info{background:var(--color-info-soft);color:var(--color-text-secondary)}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.pill{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);display:inline-flex}.pill:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.pill--success{background:var(--color-success-soft);color:var(--color-success)}
