.dat-terminal {
    --dat-green: #91ff72;
    --dat-dim: #8ca88b;
    --dat-amber: #ffca57;
    --dat-bg: #080b09;
    --dat-panel: #101611;
    --dat-line: #38513a;
    position: relative;
    max-width: 920px;
    margin: 2rem auto;
    border: 1px solid var(--dat-line);
    border-radius: 3px;
    background:
        repeating-linear-gradient(0deg, rgba(255,255,255,.018) 0, rgba(255,255,255,.018) 1px, transparent 1px, transparent 4px),
        var(--dat-bg);
    color: #d6dfd4;
    box-shadow: 0 0 0 4px #050705, 0 15px 45px rgba(0,0,0,.45);
    font: 15px/1.55 Consolas, "Courier New", monospace;
    overflow: hidden;
}

.dat-terminal::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(ellipse at center, transparent 55%, rgba(0,0,0,.32) 100%);
}

.dat-terminal__bar,
.dat-search-form,
.dat-status,
.dat-results,
.dat-terminal noscript {
    position: relative;
    z-index: 1;
}

.dat-terminal__bar {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--dat-line);
    background: #121812;
    color: var(--dat-green);
    letter-spacing: .06em;
}

.dat-terminal__lights { display: inline-flex; gap: 6px; }
.dat-terminal__lights i { width: 9px; height: 9px; border-radius: 50%; background: #792c2c; }
.dat-terminal__lights i:nth-child(2) { background: #856d26; }
.dat-terminal__lights i:nth-child(3) { background: #477a39; }

.dat-search-form { padding: 24px; }
.dat-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 16px; }
.dat-terminal label { display: block; margin: 0 0 16px; }
.dat-terminal label > span { display: block; margin: 0 0 6px; color: var(--dat-dim); text-transform: uppercase; letter-spacing: .08em; font-size: 12px; }

.dat-terminal input,
.dat-terminal select {
    box-sizing: border-box;
    width: 100%;
    min-height: 44px;
    padding: 9px 11px;
    border: 1px solid var(--dat-line);
    border-radius: 2px;
    background: #050805;
    color: #edf4ec;
    font: inherit;
}

.dat-terminal input:focus,
.dat-terminal select:focus {
    border-color: var(--dat-green);
    outline: 2px solid rgba(145,255,114,.16);
}

.dat-terminal button {
    min-height: 44px;
    padding: 10px 18px;
    border: 1px solid var(--dat-green);
    border-radius: 2px;
    background: transparent;
    color: var(--dat-green);
    font: 700 14px/1 Consolas, "Courier New", monospace;
    letter-spacing: .07em;
    cursor: pointer;
}

.dat-terminal button:hover,
.dat-terminal button:focus { background: var(--dat-green); color: #071007; }
.dat-terminal button:disabled { opacity: .55; cursor: wait; }
.dat-hint { margin: 12px 0 0; color: var(--dat-dim); font-size: 12px; }

.dat-status {
    padding: 11px 24px;
    border-block: 1px solid var(--dat-line);
    background: rgba(50,85,52,.18);
    color: var(--dat-green);
    font-size: 13px;
    letter-spacing: .08em;
}

.dat-cursor { display: inline-block; width: 8px; height: 1em; margin-left: 7px; vertical-align: -.15em; background: var(--dat-green); animation: dat-blink 1s steps(1) infinite; }
@keyframes dat-blink { 50% { opacity: 0; } }

.dat-results { padding: 0 24px; }
.dat-result-list { margin: 0; padding: 0; list-style: none; }
.dat-result { padding: 20px 0; border-bottom: 1px dashed #2c3b2d; }
.dat-result h3 { margin: 0 0 5px; color: #f0f3ef; font: 700 18px/1.35 Consolas, "Courier New", monospace; }
.dat-meta { margin: 0 0 7px; color: var(--dat-amber); font-size: 12px; text-transform: uppercase; }
.dat-url { margin: 0 0 10px; color: var(--dat-dim); font-size: 12px; overflow-wrap: anywhere; }
.dat-result a { color: var(--dat-green); font-weight: 700; text-decoration: none; }
.dat-result a:hover, .dat-result a:focus { text-decoration: underline; }
.dat-empty, .dat-error, .dat-note { margin: 0; padding: 20px 0; }
.dat-error { color: #ff8f8f; }
.dat-note { color: var(--dat-dim); font-size: 12px; }

@media (max-width: 600px) {
    .dat-grid { grid-template-columns: 1fr; gap: 0; }
    .dat-search-form, .dat-results { padding-inline: 16px; }
    .dat-status { padding-inline: 16px; }
    .dat-terminal__bar { font-size: 12px; }
}

@media (prefers-reduced-motion: reduce) {
    .dat-cursor { animation: none; }
}

