.candidate-page {
 background-color: #0f172a;
}
.candidate-page::before {
 content: "";
 position: fixed;
 inset: 0;
 pointer-events: none;
 background-image:
 linear-gradient(rgba(143, 212, 138, 0.035) 1px, transparent 1px),
 linear-gradient(90deg, rgba(143, 212, 138, 0.035) 1px, transparent 1px);
 background-size: 60px 60px;
 z-index: 0;
}
.candidate-page header,
.candidate-page main,
.candidate-page footer {
 position: relative;
 z-index: 1;
}
.candidate-page header,
.candidate-page footer {
 background: #0f172a;
}
.candidate-page header {
 border-bottom-color: rgba(143, 212, 138, 0.12);
}
.candidate-page footer {
 border-top-color: rgba(143, 212, 138, 0.12);
}
.test-page main {
 visibility: hidden;
}
.test-page.is-authorized main {
 visibility: visible;
}
.candidate-page section {
 padding: var(--space-2xl) 0;
}
.candidate-page section.form-panel {
 padding: var(--space-xl);
}
.candidate-hero {
 min-height: auto;
 display: flex;
 align-items: center;
}
.candidate-hero-grid {
 display: grid;
 grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr);
 gap: var(--space-2xl);
 align-items: center;
}
.candidate-hero-copy h1 {
 max-width: 900px;
}
.candidate-actions {
 display: flex;
 gap: var(--space-m);
 flex-wrap: wrap;
 margin-top: var(--space-xl);
}
.btn-secondary {
 border-color: var(--color-border);
 color: var(--color-text-secondary);
}
.btn-danger {
 border-color: rgba(220, 80, 80, 0.6);
 color: #dc5050;
}
.btn-danger:hover {
 background: rgba(220, 80, 80, 0.12);
 border-color: #dc5050;
}
.danger-zone {
 border-color: rgba(220, 80, 80, 0.25);
}
.candidate-brief,
.candidate-card,
.test-card,
.form-panel,
.result-panel {
 background: #1a2030;
 border: 1px solid rgba(143, 212, 138, 0.18);
 border-radius: 10px;
}
.candidate-brief {
 padding: var(--space-l);
}
.brief-row {
 display: flex;
 justify-content: space-between;
 gap: var(--space-m);
 padding: var(--space-m) 0;
 border-bottom: 1px solid rgba(143, 212, 138, 0.12);
}
.brief-row:first-child {
 padding-top: 0;
}
.brief-row:last-child {
 padding-bottom: 0;
 border-bottom: 0;
}
.brief-row span,
.test-time,
.test-code,
.test-note,
.submit-note {
 color: var(--color-text-muted);
 font-size: 0.75rem;
 text-transform: uppercase;
 letter-spacing: 0.08em;
}
.brief-row strong {
 color: #8fd48a;
 font-size: 0.875rem;
 text-align: right;
}
.candidate-grid,
.test-catalog {
 display: grid;
 gap: var(--space-l);
}
.candidate-grid-3 {
 grid-template-columns: repeat(3, 1fr);
}
.candidate-grid-4 {
 grid-template-columns: repeat(4, 1fr);
}
.candidate-card,
.test-card,
.form-panel {
 padding: var(--space-l);
}
.form-panel {
 padding: var(--space-xl);
}
.icon-card::before {
 content: none;
}
.candidate-card-icon {
 display: block;
 width: 44px;
 height: 44px;
 margin-bottom: var(--space-m);
 opacity: 0.92;
}
.compact-hero {
 min-height: auto;
 padding-top: var(--space-2xl);
}
.cabinet-status-list {
 display: flex;
 gap: var(--space-m);
 flex-wrap: wrap;
 margin-top: var(--space-l);
}
.cabinet-status {
 display: inline-flex;
 gap: var(--space-m);
 align-items: center;
 padding: var(--space-s) var(--space-m);
 border: 1px solid rgba(143, 212, 138, 0.22);
 border-radius: 6px;
 background: rgba(26, 32, 48, 0.7);
}
.cabinet-status span {
 color: var(--color-text-muted);
 font-size: 0.75rem;
 text-transform: uppercase;
 letter-spacing: 0.08em;
}
.cabinet-status strong {
 color: #8fd48a;
}
.cabinet-grid .btn {
 margin-top: var(--space-l);
}
.muted-card {
 opacity: 0.68;
}
.activity-done {
 border-color: rgba(143, 212, 138, 0.38);
}
.activity-done .btn {
 pointer-events: none;
 opacity: 0.65;
}
.candidate-card p,
.test-card p {
 margin-bottom: 0;
}
.test-catalog {
 grid-template-columns: repeat(2, 1fr);
}
.selection-protocol {
 display: grid;
 gap: var(--space-m);
 max-width: 900px;
 margin: var(--space-xl) 0 0;
 padding: 0;
 list-style: none;
 counter-reset: protocol;
}
.selection-protocol li {
 counter-increment: protocol;
 display: grid;
 grid-template-columns: 64px minmax(0, 1fr);
 gap: var(--space-l);
 align-items: start;
 padding: var(--space-l) 0;
 border-top: 1px solid rgba(143, 212, 138, 0.12);
}
.selection-protocol li::before {
 content: counter(protocol, decimal-leading-zero);
 color: #8fd48a;
 font-size: 0.875rem;
 font-weight: 700;
 letter-spacing: 0.08em;
}
.selection-protocol h3 {
 margin-bottom: var(--space-s);
}
.selection-protocol p {
 max-width: 720px;
 margin-bottom: 0;
}
.test-card-head,
.test-panel-head {
 display: flex;
 justify-content: space-between;
 gap: var(--space-m);
 align-items: flex-start;
 margin-bottom: var(--space-m);
}
.test-code,
.test-timer {
 color: #8fd48a;
}
.test-timer {
 min-width: 78px;
 padding: var(--space-s);
 border: 1px solid rgba(143, 212, 138, 0.28);
 border-radius: 6px;
 text-align: center;
 font-weight: 700;
 letter-spacing: 0.08em;
}
.test-timer.warning {
 color: #e8b84d;
 border-color: rgba(232, 184, 77, 0.5);
}
.test-timer.expired {
 color: #d46a6a;
 border-color: rgba(212, 106, 106, 0.5);
}
.candidate-form {
 display: grid;
 gap: var(--space-l);
 margin-top: var(--space-xl);
}
.candidate-locked {
 display: grid;
 gap: var(--space-l);
 position: relative;
}
.candidate-locked.is-locked {
 opacity: 0.46;
 filter: grayscale(0.35);
}
.panel-note,
.form-message,
.field-error {
 max-width: 760px;
 font-size: 0.875rem;
 line-height: 1.7;
}
.panel-note {
 color: var(--color-text-secondary);
}
.form-message {
 min-height: 1.4em;
 margin-top: var(--space-m);
 margin-bottom: 0;
 color: var(--color-text-muted);
}
.form-message.ready {
 color: #8fd48a;
}
.form-message.error,
.field-error {
 color: #d46a6a;
}
.field-error {
 margin-top: var(--space-s);
 margin-bottom: 0;
}
.registration-actions {
 display: flex;
 gap: var(--space-m);
 flex-wrap: wrap;
 margin-top: var(--space-m);
}
.form-panel h3 {
 color: #8fd48a;
}
.form-panel .panel-note {
 margin-bottom: var(--space-l);
}
.candidate-page .form-group input,
.candidate-page .form-group textarea,
.candidate-page .form-group select,
.question textarea {
 padding: 18px 22px;
}
.candidate-page .form-row {
 grid-template-columns: repeat(3, minmax(0, 1fr));
}
.question {
 margin-top: var(--space-l);
 padding-top: var(--space-l);
 border: 0;
 border-top: 1px solid rgba(143, 212, 138, 0.12);
}
.question legend,
.question > label:first-child,
.likert-question > span {
 display: block;
 color: var(--color-text-primary);
 font-weight: 500;
 margin-bottom: var(--space-m);
}
.question label {
 display: flex;
 gap: var(--space-s);
 align-items: flex-start;
 color: var(--color-text-secondary);
 margin-bottom: var(--space-s);
 line-height: 1.55;
}
.question label:has(input[type="radio"]) {
 position: relative;
 display: block;
 min-height: 48px;
 padding: 14px 18px 14px 48px;
 border: 1px solid var(--color-border);
 border-radius: 2px;
 background: var(--color-surface);
 color: var(--color-text-secondary);
 cursor: pointer;
 transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}
.question label:has(input[type="radio"])::before {
 content: "";
 position: absolute;
 top: 18px;
 left: 18px;
 width: 12px;
 height: 12px;
 border: 1px solid rgba(143, 212, 138, 0.45);
 background: transparent;
}
.question label:has(input[type="radio"]:checked) {
 border-color: #7abb75;
 background: rgba(143, 212, 138, 0.08);
 color: var(--color-text-primary);
}
.question label:has(input[type="radio"]:checked)::before {
 background: #8fd48a;
 box-shadow: inset 0 0 0 3px var(--color-surface);
}
.question label:has(input[type="radio"]:focus-visible) {
 border-color: var(--color-accent);
 box-shadow: 0 0 0 1px var(--color-accent-muted);
}
.question input[type="radio"] {
 position: absolute;
 opacity: 0;
 pointer-events: none;
}
.form-group.has-error input,
.form-group.has-error textarea,
.form-group.has-error select,
.form-group.has-error .tf-select-trigger,
.question.has-error {
 border-color: rgba(212, 106, 106, 0.75);
}
.form-group input::placeholder,
.form-group textarea::placeholder {
 color: rgba(122, 130, 140, 0.75);
}
.question textarea {
 width: 100%;
 min-height: 180px;
 padding: var(--space-m);
 background: var(--color-surface);
 border: 1px solid var(--color-border);
 border-radius: 2px;
 color: var(--color-text-primary);
 font-family: var(--font-main);
 font-size: 0.875rem;
 line-height: 1.6;
 box-sizing: border-box;
 resize: vertical;
 transition: border-color 0.2s ease, box-shadow 0.2s ease;
 appearance: none;
 -webkit-appearance: none;
}
.question textarea:focus {
 outline: none;
 border-color: var(--color-accent);
 box-shadow: 0 0 0 1px var(--color-accent-muted);
}
.question textarea::placeholder {
 color: rgba(122, 130, 140, 0.75);
}
.question.has-error textarea {
 border-color: rgba(212, 106, 106, 0.75);
}
.answer-textarea {
 min-height: 180px;
}
.native-select-hidden {
 position: absolute;
 width: 1px;
 height: 1px;
 opacity: 0;
 pointer-events: none;
}
.tf-select-shell {
 position: relative;
}
.tf-select-trigger {
 width: 100%;
 min-height: 52px;
 padding: var(--space-m);
 background: var(--color-surface);
 border: 1px solid var(--color-border);
 border-radius: 2px;
 color: var(--color-text-muted);
 font-family: var(--font-main);
 font-size: 0.875rem;
 text-align: left;
 display: flex;
 align-items: center;
 justify-content: space-between;
}
.tf-select-trigger:focus {
 outline: none;
 border-color: #7abb75;
 box-shadow: 0 0 0 1px rgba(143, 212, 138, 0.18);
}
.tf-select-trigger.has-value {
 color: var(--color-text-primary);
}
.tf-select-trigger::after {
 content: "▾";
 color: #8fd48a;
 font-size: 0.75rem;
}
.tf-select-shell.open .tf-select-trigger {
 border-color: #7abb75;
 box-shadow: 0 0 0 1px rgba(143, 212, 138, 0.18);
}
.tf-select-options {
 display: none;
 position: absolute;
 z-index: 20;
 top: calc(100% + 4px);
 left: 0;
 right: 0;
 max-height: 260px;
 overflow-y: auto;
 background: #1a2030;
 border: 1px solid rgba(143, 212, 138, 0.28);
 border-radius: 6px;
}
.tf-select-shell.open .tf-select-options {
 display: block;
}
.tf-select-option {
 width: 100%;
 padding: var(--space-m);
 border-bottom: 1px solid rgba(143, 212, 138, 0.08);
 color: var(--color-text-secondary);
 font-family: var(--font-main);
 font-size: 0.875rem;
 text-align: left;
}
.tf-select-option:last-child {
 border-bottom: 0;
}
.tf-select-option:hover {
 background: rgba(143, 212, 138, 0.08);
 color: var(--color-text-primary);
}
.likert-grid {
 display: grid;
 gap: var(--space-m);
}
.likert-scale {
 display: grid;
 grid-template-columns: minmax(120px, 0.8fr) repeat(5, minmax(120px, 1fr));
 gap: var(--space-xs);
 align-items: stretch;
 margin-bottom: var(--space-m);
 color: var(--color-text-secondary);
 font-size: 0.75rem;
 line-height: 1.35;
}
.likert-scale-title,
.likert-scale-item {
 min-height: 42px;
 padding: 10px 12px;
 border: 1px solid rgba(143, 212, 138, 0.12);
 background: rgba(15, 23, 42, 0.55);
 display: flex;
 align-items: center;
}
.likert-scale-title {
 color: var(--color-text-primary);
 text-transform: uppercase;
 letter-spacing: 0.08em;
}
.likert-question {
 padding: var(--space-m);
 background: rgba(15, 23, 42, 0.5);
 border: 1px solid rgba(143, 212, 138, 0.12);
 border-radius: 6px;
}
.likert-options {
 display: grid;
 grid-template-columns: repeat(5, minmax(42px, 1fr));
 gap: var(--space-s);
}
.likert-options label {
 display: flex;
 align-items: center;
 justify-content: center;
 min-height: 38px;
 border: 1px solid var(--color-border);
 border-radius: 4px;
 color: var(--color-text-secondary);
 cursor: pointer;
}
.likert-value {
 color: inherit;
}
.likert-options input {
 position: absolute;
 opacity: 0;
 pointer-events: none;
}
.likert-options label:has(input:checked) {
 border-color: #7abb75;
 background: rgba(143, 212, 138, 0.1);
 color: var(--color-text-primary);
}
.result-panel {
 min-height: 96px;
 margin: var(--space-l) 0;
 padding: var(--space-l);
 white-space: pre-wrap;
 color: var(--color-text-secondary);
}
.result-panel.ready {
 border-color: #7abb75;
}
.result-panel.error {
 border-color: #d46a6a;
}
.submit-note {
 max-width: 760px;
 margin-top: var(--space-m);
 line-height: 1.7;
 text-transform: none;
 letter-spacing: 0;
}
.thanks-modal {
 position: fixed;
 inset: 0;
 z-index: 500;
 display: flex;
 align-items: center;
 justify-content: center;
 padding: var(--space-l);
 background: rgba(15, 23, 42, 0.86);
}
.thanks-dialog {
 width: min(560px, 100%);
 background: #1a2030;
 border: 1px solid rgba(143, 212, 138, 0.35);
 border-radius: 10px;
 padding: var(--space-xl);
}
.thanks-dialog h3 {
 color: #8fd48a;
}
.thanks-dialog p {
 max-width: none;
}
.commander-toolbar {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: var(--space-m);
 margin-bottom: var(--space-m);
}
.commander-login-row {
 grid-template-columns: minmax(0, 420px);
}
.commander-page .compact-hero {
 padding-top: var(--space-xl);
 padding-bottom: var(--space-l);
}
.commander-page .text-meta {
 font-size: 0.6875rem;
 letter-spacing: 0.09em;
}
.commander-page h1 {
 font-size: 2rem;
 line-height: 1.15;
 letter-spacing: 0;
 margin-bottom: var(--space-s);
}
.commander-page h2 {
 font-size: 1.25rem;
 line-height: 1.25;
 letter-spacing: 0;
}
.commander-page h3,
.commander-page .form-panel h3 {
 font-size: 0.95rem;
 line-height: 1.25;
 letter-spacing: 0.05em;
 margin-bottom: var(--space-s);
}
.commander-page .text-lead {
 max-width: 760px;
 font-size: 0.95rem;
 line-height: 1.65;
}
.commander-page .panel-note,
.commander-page .form-message,
.commander-page .field-error,
.commander-page .interview-list,
.commander-page .report-item,
.commander-page .technical-breakdown p,
.commander-page .history-item p {
 font-size: 0.8125rem;
 line-height: 1.65;
}
.commander-page .form-panel {
 padding: var(--space-l);
}
.commander-page .cabinet-status-list {
 margin-top: var(--space-m);
}
.commander-page .cabinet-status {
 padding: 0.45rem var(--space-m);
}
.commander-page .cabinet-status span,
.commander-page .status-pill,
.commander-page .history-item span {
 font-size: 0.6875rem;
}
.commander-page .cabinet-status strong,
.commander-page .axis-head,
.commander-page .score-summary span,
.commander-page .score-summary p {
 font-size: 0.8125rem;
}
.commander-page .score-summary strong {
 font-size: 1.125rem;
}
.commander-list-panel {
 min-height: 260px;
}
.commander-list {
 display: grid;
 gap: var(--space-s);
}
.commander-row {
 display: grid;
 grid-template-columns: minmax(0, 1fr) auto auto;
 gap: var(--space-m);
 align-items: center;
 padding: var(--space-m);
 border: 1px solid rgba(143, 212, 138, 0.14);
 background: rgba(15, 23, 42, 0.44);
}
.commander-row h3 {
 margin-bottom: var(--space-xs);
 color: var(--color-text-primary);
 font-size: 1rem;
}
.commander-row p {
 margin-bottom: 0;
 color: var(--color-text-muted);
 font-size: 0.875rem;
}
.status-pill {
 display: inline-flex;
 align-items: center;
 min-height: 34px;
 padding: 0 var(--space-m);
 border: 1px solid rgba(143, 212, 138, 0.22);
 color: var(--color-text-secondary);
 font-size: 0.75rem;
 text-transform: uppercase;
 letter-spacing: 0.08em;
}
.status-advance {
 border-color: rgba(143, 212, 138, 0.55);
 color: #8fd48a;
}
.status-reject {
 border-color: rgba(212, 106, 106, 0.6);
 color: #d46a6a;
}
.commander-detail {
 display: grid;
 grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
 gap: var(--space-l);
 align-items: start;
}
.commander-main,
.commander-side,
.report-stack,
.history-list,
.axis-graph,
.interview-list {
 display: grid;
 gap: var(--space-m);
}
.axis-row {
 display: grid;
 gap: var(--space-s);
}
.score-summary {
 display: grid;
 gap: var(--space-xs);
 padding: var(--space-m);
 border: 1px solid rgba(143, 212, 138, 0.18);
 background: rgba(15, 23, 42, 0.44);
}
.score-summary div {
 display: flex;
 justify-content: space-between;
 gap: var(--space-m);
 align-items: center;
}
.score-summary span,
.score-summary p {
 color: var(--color-text-muted);
 font-size: 0.875rem;
}
.score-summary strong {
 color: var(--color-text-primary);
 font-size: 1.5rem;
}
.score-summary p {
 margin-bottom: 0;
}
.technical-summary,
.technical-breakdown {
 display: grid;
 gap: var(--space-m);
}
.technical-breakdown {
 padding: var(--space-m);
 border: 1px solid rgba(143, 212, 138, 0.12);
 background: rgba(15, 23, 42, 0.36);
}
.technical-breakdown p {
 margin-bottom: 0;
 color: var(--color-text-secondary);
 font-size: 0.875rem;
 line-height: 1.6;
}
.score-strong strong,
.score-pass strong {
 color: #8fd48a;
}
.score-watch strong {
 color: #e8b84d;
}
.score-fail strong {
 color: #d46a6a;
}
.axis-head {
 display: flex;
 justify-content: space-between;
 gap: var(--space-m);
 color: var(--color-text-secondary);
 font-size: 0.875rem;
}
.axis-head strong {
 color: var(--color-text-primary);
}
.axis-empty .axis-head,
.axis-empty .axis-head strong {
 color: rgba(122, 130, 140, 0.72);
}
.axis-track {
 display: grid;
 grid-template-columns: repeat(10, 1fr);
 gap: 4px;
}
.axis-cell {
 min-height: 12px;
 border: 1px solid rgba(143, 212, 138, 0.1);
 background: rgba(15, 23, 42, 0.55);
}
.axis-cell.is-active.axis-strong {
 border-color: rgba(143, 212, 138, 0.6);
 background: rgba(143, 212, 138, 0.42);
}
.axis-cell.is-active.axis-mid {
 border-color: rgba(232, 184, 77, 0.55);
 background: rgba(232, 184, 77, 0.32);
}
.axis-cell.is-active.axis-weak {
 border-color: rgba(212, 106, 106, 0.6);
 background: rgba(212, 106, 106, 0.34);
}
.interview-list ol {
 display: grid;
 gap: var(--space-m);
 margin: 0;
 padding-left: 1.25rem;
 color: var(--color-text-secondary);
}
.report-item {
 border: 1px solid rgba(143, 212, 138, 0.14);
 background: rgba(15, 23, 42, 0.44);
}
.report-item summary {
 padding: var(--space-m);
 color: #8fd48a;
 cursor: pointer;
}
.report-item pre {
 overflow-x: auto;
 margin: 0;
 padding: var(--space-m);
 border-top: 1px solid rgba(143, 212, 138, 0.12);
 color: var(--color-text-secondary);
 font-family: var(--font-main);
 font-size: 0.8125rem;
 line-height: 1.65;
 white-space: pre-wrap;
}
.report-item .report-html {
 padding: var(--space-m);
 border-top: 1px solid rgba(143, 212, 138, 0.12);
 font-family: var(--font-main);
 font-size: 0.8125rem;
 line-height: 1.6;
}
.decision-actions {
 display: grid;
 gap: var(--space-s);
 margin-top: var(--space-m);
}
.history-item {
 display: grid;
 gap: var(--space-xs);
 padding: var(--space-m) 0;
 border-top: 1px solid rgba(143, 212, 138, 0.12);
}
.history-item:first-child {
 padding-top: 0;
 border-top: 0;
}
.history-item strong {
 color: #8fd48a;
}
.history-item span {
 color: var(--color-text-muted);
 font-size: 0.75rem;
 text-transform: uppercase;
 letter-spacing: 0.08em;
}
.history-item p {
 margin-bottom: 0;
 color: var(--color-text-secondary);
 font-size: 0.875rem;
}
@media (max-width: 900px) {
 .candidate-hero-grid,
 .candidate-grid-3,
 .candidate-grid-4,
 .candidate-page .form-row,
 .test-catalog,
 .commander-detail,
 .commander-row {
 grid-template-columns: 1fr;
 }
 .candidate-page section {
 padding: var(--space-xl) 0;
 }
}
@media (max-width: 600px) {
 .test-panel-head {
 flex-direction: column;
 }
 .selection-protocol li {
 grid-template-columns: 1fr;
 gap: var(--space-s);
 }
 .likert-options {
 grid-template-columns: repeat(5, 1fr);
 }
 .likert-scale {
 grid-template-columns: 1fr;
 }
 .profile-fields {
 grid-template-columns: 1fr;
 }
 .profile-fields label {
 margin-top: var(--space-s);
 }
}
.profile-section {
 padding-bottom: 0;
}
.profile-form .profile-fields {
 display: grid;
 grid-template-columns: max-content 1fr;
 gap: var(--space-s) var(--space-m);
 align-items: center;
 max-width: 480px;
 margin-bottom: var(--space-l);
}
.profile-form label {
 color: var(--color-text-muted);
 font-size: 0.75rem;
 text-transform: uppercase;
 letter-spacing: 0.08em;
 white-space: nowrap;
}
.profile-form input[type="text"],
.profile-form input[type="date"] {
 background: #1a2030;
 border: 1px solid rgba(143, 212, 138, 0.22);
 border-radius: 6px;
 color: var(--color-text);
 font-family: var(--font-mono);
 font-size: 0.875rem;
 padding: var(--space-s) var(--space-m);
 width: 100%;
 box-sizing: border-box;
}
.profile-form input[type="text"]:focus,
.profile-form input[type="date"]:focus {
 outline: none;
 border-color: rgba(143, 212, 138, 0.5);
}
.profile-form .profile-actions {
 display: flex;
 gap: var(--space-m);
 align-items: center;
 flex-wrap: wrap;
}
.profile-status {
 font-size: 0.8rem;
 font-family: var(--font-mono);
 color: #8fd48a;
}
.profile-status--error {
 color: #dc5050;
}
.profile-edit-btn {
 margin-top: var(--space-m);
}
.tests-locked .test-card:not(.muted-card) {
 opacity: 0.35;
 pointer-events: none;
}
