/* Extended workbench controls used by timestamp, URL, hash, and status pages. */
.workbench-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.workbench-panel,
.query-panel {
    min-width: 0;
    border: 2px solid var(--ink);
    background: var(--paper);
    padding: 18px;
}

.workbench-panel-heading {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: -18px -18px 18px;
    padding: 10px 12px;
    border-bottom: 2px solid var(--ink);
    background: var(--paper-deep);
}

.workbench-panel-heading span {
    display: grid;
    place-items: center;
    min-width: 30px;
    height: 26px;
    border: 2px solid var(--ink);
    background: var(--orange);
    font: 900 .62rem/1 "Courier New", monospace;
}

.workbench-panel-heading strong {
    font: 900 .72rem/1 "Arial Black", Arial, sans-serif;
    letter-spacing: .05em;
}

.tool-field {
    display: grid;
    gap: 7px;
    margin-bottom: 14px;
}

.tool-field > span,
.field-caption {
    color: var(--muted);
    font: 800 .64rem/1.2 "Courier New", monospace;
    letter-spacing: .06em;
}

.single-line-tool-input,
.tool-select,
.wide-tool-textarea {
    width: 100%;
    min-width: 0;
    border: 2px solid var(--ink);
    border-radius: 0;
    background: var(--white);
    color: var(--ink);
    outline: 0;
    padding: 12px 13px;
    font: 700 .84rem/1.45 "Courier New", monospace;
}

.single-line-tool-input,
.tool-select { min-height: 46px; }

.single-line-tool-input:focus,
.tool-select:focus,
.wide-tool-textarea:focus { box-shadow: 4px 4px 0 var(--orange); }

.wide-tool-textarea {
    min-height: 112px;
    resize: vertical;
}

.inline-field-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 150px;
    gap: 8px;
}

.live-clock-badge {
    border: 2px solid var(--ink);
    background: var(--ink);
    color: var(--green);
    padding: 10px 12px;
    font: 800 .68rem/1 "Courier New", monospace;
}

.compact-mode-row {
    align-items: center;
    margin: 4px 0 14px;
}

.result-table {
    display: grid;
    gap: 7px;
    margin-top: 16px;
}

.result-copy-row {
    min-width: 0;
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr) auto;
    align-items: stretch;
    border: 2px solid var(--ink);
    background: var(--white);
}

.result-copy-row > span {
    display: flex;
    align-items: center;
    padding: 9px 10px;
    border-right: 2px solid var(--ink);
    background: var(--paper-deep);
    font: 800 .58rem/1.2 "Courier New", monospace;
}

.result-copy-row code {
    min-width: 0;
    display: flex;
    align-items: center;
    overflow-wrap: anywhere;
    padding: 9px 10px;
    font: 700 .7rem/1.4 "Courier New", monospace;
}

.mini-copy {
    min-width: 58px;
    border: 0;
    border-left: 2px solid var(--ink);
    background: var(--yellow);
    cursor: pointer;
    padding: 8px;
    font: 900 .58rem/1 "Courier New", monospace;
}

.mini-copy:hover,
.mini-copy:focus-visible { background: var(--orange); outline: 0; }

.url-action-bar { margin-top: 2px; }

.url-parts-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 18px;
}

.url-full-row { grid-column: 1 / -1; }
.query-panel { margin-top: 4px; }

.query-param-list {
    display: grid;
    gap: 7px;
}

.query-param-row {
    min-width: 0;
    display: grid;
    grid-template-columns: 42px minmax(120px, .7fr) minmax(0, 1.3fr) 58px;
    border: 2px solid var(--ink);
    background: var(--white);
}

.query-param-row > span {
    display: grid;
    place-items: center;
    border-right: 2px solid var(--ink);
    background: var(--orange);
    font: 900 .58rem "Courier New", monospace;
}

.query-param-row code {
    min-width: 0;
    padding: 10px;
    overflow-wrap: anywhere;
    border-right: 1px solid var(--paper-deep);
    font: 700 .7rem/1.4 "Courier New", monospace;
}

.query-empty {
    padding: 16px;
    border: 2px dashed var(--muted);
    color: var(--muted);
    text-align: center;
    font: 800 .64rem "Courier New", monospace;
}

.hash-source-panel { margin-bottom: 16px; }
.hash-textarea { min-height: 170px; }

.file-picker {
    display: grid;
    place-items: center;
    gap: 9px;
    min-height: 170px;
    border: 3px dashed var(--ink);
    background: var(--paper);
    cursor: pointer;
    padding: 24px;
    text-align: center;
}

.file-picker:hover,
.file-picker:focus-within { background: var(--yellow); }

.file-picker > span {
    font: 900 .75rem "Arial Black", Arial, sans-serif;
}

.file-picker > strong {
    max-width: 100%;
    overflow-wrap: anywhere;
    color: var(--muted);
    font: 700 .68rem/1.4 "Courier New", monospace;
}

.file-picker input {
    width: min(100%, 420px);
    font: 700 .68rem "Courier New", monospace;
}

.hash-control-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 12px;
    margin-bottom: 16px;
}

.hash-control-row .tool-field { margin-bottom: 0; }

.hash-output-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 90px;
    gap: 10px;
}

.hash-output {
    min-height: 96px;
    resize: vertical;
    overflow-wrap: anywhere;
}

.status-page {
    min-height: 58vh;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding-top: 80px;
    padding-bottom: 80px;
}

.status-code {
    display: inline-block;
    margin-bottom: 18px;
    border: 2px solid var(--ink);
    background: var(--yellow);
    padding: 8px 11px;
    font: 900 .66rem "Courier New", monospace;
    letter-spacing: .06em;
}

.status-page h1 {
    max-width: 850px;
    margin: 0 0 18px;
    font: 900 clamp(3rem, 7vw, 6.5rem)/.9 "Arial Black", Impact, sans-serif;
    letter-spacing: -.06em;
    text-transform: uppercase;
}

.status-page p {
    max-width: 650px;
    margin: 0 0 28px;
    font: 400 1.08rem/1.55 Georgia, "Times New Roman", serif;
}

@media (max-width: 900px) {
    .workbench-grid,
    .url-parts-grid { grid-template-columns: 1fr; }
    .url-full-row { grid-column: auto; }
}

@media (max-width: 680px) {
    .inline-field-grid,
    .hash-control-row,
    .hash-output-row { grid-template-columns: 1fr; }

    .result-copy-row { grid-template-columns: 78px minmax(0, 1fr) 54px; }
    .query-param-row { grid-template-columns: 34px minmax(0, 1fr) 54px; }
    .query-param-row code:nth-of-type(2) { grid-column: 2; border-top: 1px solid var(--paper-deep); }
    .query-param-row .mini-copy { grid-column: 3; grid-row: 1 / span 2; }
    .live-clock-badge { width: 100%; text-align: center; }
    .status-page { min-height: 52vh; padding-top: 52px; padding-bottom: 52px; }
}
