Eishaan's picture
Polish submission workflow and board preview
cb4d56e
Raw
History Blame Contribute Delete
32.4 kB
:root {
color-scheme: light;
--ink: #111614;
--ink-soft: #26312e;
--muted: #64706c;
--faint: #8a9691;
--canvas: #e9eef0;
--paper: #fbfbf6;
--paper-2: #f1f3ee;
--panel: #ffffff;
--panel-ink: #141918;
--line: #b7c1bd;
--line-strong: #71807b;
--rule: #1f2a27;
--cad-blue: #1f5f7d;
--cad-blue-dark: #123b51;
--survey-green: #0f766e;
--survey-green-dark: #09443f;
--amber: #c88920;
--clay: #a94d34;
--danger: #8f2f24;
--positive: #11624f;
--shadow-flat: 0 1px 0 rgba(17, 22, 20, 0.18);
--shadow-strong: 0 24px 70px rgba(24, 31, 28, 0.16);
--radius: 6px;
--font-display: "Bahnschrift", "Aptos Display", "Segoe UI Variable Display", "Segoe UI", sans-serif;
--font-body: "Aptos", "Segoe UI Variable Text", "Segoe UI", Tahoma, sans-serif;
--font-mono: "Cascadia Code", "IBM Plex Mono", Consolas, monospace;
}
html,
body,
.gradio-container {
min-height: 100%;
background:
linear-gradient(135deg, rgba(31, 95, 125, 0.16), transparent 32%),
radial-gradient(circle at 88% 9%, rgba(200, 137, 32, 0.18), transparent 25%),
linear-gradient(90deg, rgba(17, 22, 20, 0.055) 1px, transparent 1px),
linear-gradient(rgba(17, 22, 20, 0.045) 1px, transparent 1px),
var(--canvas) !important;
background-size: auto, auto, 38px 38px, 38px 38px, auto !important;
color: var(--ink) !important;
font-family: var(--font-body) !important;
letter-spacing: 0 !important;
}
html,
body {
overflow-x: hidden !important;
}
.gradio-container {
width: 100% !important;
max-width: 1840px !important;
margin: 0 auto !important;
padding: 24px 28px 40px !important;
}
.gradio-container * {
box-sizing: border-box;
}
.gradio-container > .main,
.gradio-container .contain {
max-width: none !important;
}
#app-header {
position: relative;
overflow: hidden;
border: 1px solid rgba(17, 22, 20, 0.78);
background:
linear-gradient(90deg, rgba(255, 255, 255, 0.06) 1px, transparent 1px),
linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
linear-gradient(126deg, #111614 0%, #17211e 58%, #20312c 100%);
background-size: 34px 34px, 34px 34px, auto;
border-radius: var(--radius);
padding: 28px 30px 26px;
margin: 0 0 14px;
box-shadow: var(--shadow-strong);
}
#app-header::before {
content: "";
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 8px;
background: linear-gradient(180deg, var(--cad-blue), var(--survey-green), var(--amber));
}
#app-header::after {
content: "WGS84 / OSM / OPEN-METEO / FIELD VERIFY";
position: absolute;
right: 18px;
bottom: 12px;
color: rgba(255, 255, 255, 0.22);
font-family: var(--font-mono);
font-size: 11px;
letter-spacing: 0.08em;
}
.app-kicker {
position: relative;
z-index: 1;
margin: 0 0 12px 12px;
color: #87d7ce;
font-family: var(--font-mono);
font-size: 12px;
font-weight: 800;
letter-spacing: 0.14em;
text-transform: uppercase;
}
.header-grid {
position: relative;
z-index: 1;
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(360px, 540px);
gap: 32px;
align-items: end;
padding-left: 12px;
}
#app-header h1 {
margin: 0;
color: #ffffff !important;
font-family: var(--font-display) !important;
font-size: clamp(44px, 5.8vw, 86px);
font-weight: 900;
line-height: 0.88;
letter-spacing: 0 !important;
max-width: 940px;
overflow-wrap: anywhere;
}
.app-subtitle {
margin: 18px 0 0;
max-width: 980px;
color: #dbe6e2 !important;
font-size: 17px;
line-height: 1.56;
}
.status-stack {
display: grid;
gap: 9px;
}
.status-stack div {
display: grid;
grid-template-columns: 128px 1fr;
gap: 14px;
align-items: baseline;
min-height: 58px;
border: 1px solid rgba(255, 255, 255, 0.18);
background: rgba(255, 255, 255, 0.065);
border-radius: var(--radius);
padding: 12px 14px;
backdrop-filter: blur(10px);
min-width: 0;
}
.status-stack b {
color: #ffffff;
font-family: var(--font-display);
font-size: 14px;
font-weight: 850;
line-height: 1.2;
}
.status-stack span {
color: #c4d1cc !important;
font-size: 13px;
line-height: 1.35;
overflow-wrap: anywhere;
}
.workflow-strip {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 0;
border: 1px solid var(--rule);
background: var(--paper);
border-radius: var(--radius);
overflow: hidden;
margin: 0 0 18px;
box-shadow: var(--shadow-flat);
}
.workflow-strip div {
position: relative;
min-height: 74px;
padding: 15px 18px 14px 64px;
border-right: 1px solid var(--line);
background:
linear-gradient(180deg, rgba(31, 95, 125, 0.07), transparent 58%),
var(--paper);
}
.workflow-strip div:last-child {
border-right: 0;
}
.workflow-strip b {
position: absolute;
left: 16px;
top: 16px;
display: grid;
width: 34px;
height: 34px;
place-items: center;
border: 1px solid var(--rule);
background: var(--ink);
color: #ffffff;
font-family: var(--font-mono);
font-size: 12px;
line-height: 1;
}
.workflow-strip span {
display: block;
color: var(--ink);
font-family: var(--font-display);
font-size: 16px;
font-weight: 850;
}
.workflow-strip small {
display: block;
margin-top: 5px;
color: var(--muted);
font-size: 12px;
line-height: 1.35;
}
.main-workspace {
gap: 18px !important;
align-items: stretch !important;
}
.studio-shell {
border: 1px solid var(--rule);
border-radius: var(--radius);
overflow: hidden;
background: #101716;
box-shadow: var(--shadow-strong);
margin-bottom: 16px;
}
.studio-topbar {
display: flex;
justify-content: space-between;
gap: 24px;
align-items: center;
min-height: 118px;
padding: 24px 28px;
background:
linear-gradient(90deg, rgba(255, 255, 255, 0.055) 1px, transparent 1px),
linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px),
linear-gradient(120deg, #0e1614 0%, #13211f 58%, #1d2e2a 100%);
background-size: 34px 34px, 34px 34px, auto;
}
.studio-kicker {
display: block;
color: #8ce6dc !important;
font-family: var(--font-mono);
font-size: 12px;
font-weight: 850;
letter-spacing: 0.12em;
text-transform: uppercase;
}
.gradio-container .studio-shell .studio-topbar h1,
.gradio-container .studio-shell .studio-topbar .prose h1,
.gradio-container .studio-shell .studio-topbar .markdown h1 {
margin: 10px 0 0;
color: #ffffff !important;
-webkit-text-fill-color: #ffffff !important;
font-family: var(--font-display) !important;
font-size: clamp(34px, 4.4vw, 64px);
font-weight: 900;
line-height: 0.92;
text-shadow: 0 2px 18px rgba(0, 0, 0, 0.42);
}
.studio-meta {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
gap: 8px;
}
.studio-meta span {
display: inline-flex;
min-height: 36px;
align-items: center;
border: 1px solid rgba(255, 255, 255, 0.26);
background: rgba(255, 255, 255, 0.08);
color: #ffffff !important;
border-radius: 4px;
padding: 8px 11px;
font-family: var(--font-display);
font-size: 12px;
font-weight: 850;
text-transform: uppercase;
}
.studio-briefing {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
border-top: 1px solid rgba(255, 255, 255, 0.14);
background: #ffffff;
}
.studio-briefing div {
min-height: 98px;
border-right: 1px solid var(--line);
padding: 16px 18px;
}
.studio-briefing div:last-child {
border-right: 0;
}
.studio-briefing b {
display: block;
color: var(--ink);
font-family: var(--font-display);
font-size: 16px;
font-weight: 900;
}
.studio-briefing span {
display: block;
margin-top: 6px;
color: var(--ink-soft) !important;
font-size: 13px;
line-height: 1.42;
}
.studio-proof-row {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
border-top: 1px solid var(--rule);
background: #f3f8f6;
}
.studio-proof-row div {
min-height: 68px;
padding: 13px 18px;
border-right: 1px solid var(--line);
}
.studio-proof-row div:last-child {
border-right: 0;
}
.studio-proof-row b {
display: block;
color: var(--survey-green-dark);
font-family: var(--font-display);
font-size: 13px;
font-weight: 900;
text-transform: uppercase;
}
.studio-proof-row span {
display: block;
margin-top: 4px;
color: var(--ink-soft) !important;
font-size: 13px;
}
.studio-workbench {
display: grid !important;
grid-template-columns: minmax(230px, 0.68fr) minmax(660px, 1.9fr) minmax(270px, 0.78fr);
gap: 16px !important;
align-items: start !important;
margin-top: 16px;
}
.studio-workbench > div {
min-width: 0 !important;
width: 100% !important;
}
.brief-pane,
.source-pane,
.canvas-pane {
min-width: 0 !important;
}
.brief-pane,
.source-pane {
border: 1px solid var(--rule) !important;
border-radius: var(--radius) !important;
background:
linear-gradient(90deg, rgba(17, 22, 20, 0.035) 1px, transparent 1px),
linear-gradient(rgba(17, 22, 20, 0.026) 1px, transparent 1px),
#ffffff !important;
background-size: 26px 26px, 26px 26px, auto !important;
padding: 14px !important;
box-shadow: var(--shadow-strong);
}
.canvas-pane {
padding: 0 !important;
}
.pane-heading,
.review-header {
display: grid;
grid-template-columns: 42px minmax(0, 1fr);
gap: 12px;
align-items: center;
margin-bottom: 12px;
}
.pane-heading > span,
.review-header > span {
display: grid;
width: 38px;
height: 38px;
place-items: center;
border: 1px solid var(--rule);
background: var(--ink);
color: #ffffff !important;
font-family: var(--font-mono);
font-size: 12px;
font-weight: 850;
}
.pane-heading b,
.review-header b {
display: block;
color: var(--ink);
font-family: var(--font-display);
font-size: 20px;
font-weight: 900;
line-height: 1.05;
}
.pane-heading small,
.review-header small {
display: block;
margin-top: 4px;
color: var(--muted);
font-size: 12px;
line-height: 1.35;
}
.canvas-heading {
margin: 0 0 10px;
}
.source-pane .upload-panel {
margin: 12px 0 !important;
padding: 0 !important;
border: 1px solid var(--line-strong) !important;
background: #ffffff !important;
box-shadow: none !important;
}
.source-pane .upload-panel > div {
background: transparent !important;
}
.minimum-card,
.source-card {
border: 1px solid var(--rule);
border-left: 7px solid var(--survey-green);
border-radius: var(--radius);
padding: 13px 14px;
margin: 12px 0;
background: #eef8f6;
color: var(--ink);
box-shadow: 3px 3px 0 rgba(17, 22, 20, 0.08);
}
.source-card {
border-left-color: var(--cad-blue);
background: #eef5f8;
}
.minimum-card b,
.source-card b {
display: block;
color: var(--ink);
font-family: var(--font-display);
font-size: 16px;
font-weight: 900;
}
.minimum-card span,
.source-card span {
display: block;
margin-top: 6px;
color: var(--ink-soft) !important;
font-size: 13px;
line-height: 1.42;
}
.brief-accordion,
.upload-panel {
border-radius: var(--radius) !important;
overflow: hidden !important;
}
.brief-accordion > div:first-child,
.upload-panel > div:first-child {
min-height: 44px !important;
border-bottom: 1px solid var(--line) !important;
background: #ffffff !important;
color: var(--ink) !important;
font-family: var(--font-display) !important;
font-weight: 900 !important;
}
.brief-accordion label,
.upload-panel label {
color: var(--ink) !important;
font-family: var(--font-display) !important;
font-weight: 850 !important;
}
.run-card {
border: 1px solid var(--rule);
border-left: 6px solid var(--amber);
border-radius: var(--radius);
padding: 13px 14px;
margin: 12px 0;
background: #fff8e9;
}
.run-card b {
display: block;
color: var(--ink);
font-family: var(--font-display);
font-weight: 900;
}
.run-card span {
display: block;
margin-top: 6px;
color: #47361c !important;
font-size: 13px;
line-height: 1.4;
}
.deliverables-strip {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 0;
margin: 12px 0;
border: 1px solid var(--rule);
border-radius: var(--radius);
overflow: hidden;
background: #ffffff;
box-shadow: var(--shadow-flat);
}
.deliverables-strip div {
min-height: 72px;
padding: 13px 14px;
border-right: 1px solid var(--line);
background:
linear-gradient(180deg, rgba(15, 118, 110, 0.07), transparent 65%),
#ffffff;
}
.deliverables-strip div:last-child {
border-right: 0;
}
.deliverables-strip b {
display: block;
color: var(--ink);
font-family: var(--font-display);
font-size: 15px;
font-weight: 900;
}
.deliverables-strip span {
display: block;
margin-top: 5px;
color: var(--ink-soft) !important;
font-size: 12px;
line-height: 1.35;
}
.review-header {
margin: 22px 0 12px;
border: 1px solid var(--rule);
border-left: 8px solid var(--survey-green);
border-radius: var(--radius);
padding: 14px 16px;
background: #ffffff;
box-shadow: var(--shadow-flat);
}
.review-tabs {
border: 1px solid var(--rule) !important;
border-radius: var(--radius) !important;
background: #ffffff !important;
box-shadow: var(--shadow-strong);
overflow: hidden;
}
.map-workspace,
.control-panel {
min-width: 0 !important;
}
#sis-map-shell {
border: 1px solid var(--rule);
border-radius: var(--radius);
overflow: hidden;
background: var(--panel);
box-shadow: var(--shadow-strong);
}
.map-topbar {
display: flex;
justify-content: space-between;
gap: 16px;
align-items: center;
padding: 14px 16px;
border-bottom: 1px solid var(--rule);
background:
linear-gradient(90deg, rgba(15, 118, 110, 0.22), transparent 44%),
#111614;
}
.map-topbar strong {
display: block;
color: #ffffff;
font-family: var(--font-display);
font-size: 19px;
font-weight: 900;
line-height: 1.1;
overflow-wrap: anywhere;
}
.map-topbar span {
display: block;
margin-top: 4px;
color: #ccd9d5 !important;
font-size: 13px;
line-height: 1.35;
overflow-wrap: anywhere;
}
.map-confidence {
border: 1px solid rgba(255, 255, 255, 0.32);
background: #ffffff;
color: var(--ink);
border-radius: 4px;
padding: 8px 10px;
font-family: var(--font-mono);
font-size: 11px;
font-weight: 850;
letter-spacing: 0.03em;
text-transform: uppercase;
white-space: nowrap;
}
.map-controls {
display: flex;
flex-wrap: wrap;
gap: 8px;
align-items: center;
padding: 10px;
border-bottom: 1px solid var(--line-strong);
background:
linear-gradient(90deg, rgba(17, 22, 20, 0.065) 1px, transparent 1px),
linear-gradient(rgba(17, 22, 20, 0.05) 1px, transparent 1px),
#f6f7f3;
background-size: 22px 22px, 22px 22px, auto;
}
.map-controls button,
.map-controls select {
min-height: 42px;
border: 1px solid var(--rule);
background: #ffffff;
color: var(--ink);
border-radius: 4px;
padding: 8px 12px;
font-family: var(--font-display);
font-size: 14px;
font-weight: 800;
cursor: pointer;
box-shadow: 2px 2px 0 rgba(17, 22, 20, 0.16);
transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease;
}
.map-controls button:hover,
.map-controls select:hover {
background: #f1fbf9;
transform: translate(-1px, -1px);
box-shadow: 3px 3px 0 rgba(17, 22, 20, 0.22);
}
.map-controls button.active {
background: var(--survey-green);
color: #ffffff;
border-color: var(--survey-green-dark);
}
.map-controls label {
display: inline-flex;
gap: 8px;
align-items: center;
color: var(--ink) !important;
font-family: var(--font-display);
font-size: 13px;
font-weight: 850;
}
#site-map {
width: 100%;
height: 650px;
min-height: 520px;
background: #cfd9d6;
}
.leaflet-container {
font-family: var(--font-body) !important;
}
.leaflet-control-attribution,
.leaflet-control-scale-line {
color: #16211e !important;
font-family: var(--font-mono) !important;
font-size: 10px !important;
}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
border-radius: 4px !important;
}
#map-status {
min-height: 44px;
padding: 11px 14px;
border-top: 1px solid var(--line-strong);
font-family: var(--font-mono);
font-size: 12px;
color: var(--ink-soft);
background: #ffffff;
}
#map_state {
position: absolute !important;
left: -10000px !important;
top: auto !important;
width: 1px !important;
height: 1px !important;
overflow: hidden !important;
}
.warning-note {
margin: 14px 0 0;
border: 1px solid #8a6121;
border-left: 8px solid var(--amber);
padding: 13px 15px;
background: #fff8e9;
color: #332717 !important;
border-radius: var(--radius);
line-height: 1.48;
}
.control-panel,
.upload-panel {
border: 1px solid var(--rule) !important;
background:
linear-gradient(90deg, rgba(17, 22, 20, 0.035) 1px, transparent 1px),
linear-gradient(rgba(17, 22, 20, 0.026) 1px, transparent 1px),
var(--panel) !important;
background-size: 28px 28px, 28px 28px, auto !important;
border-radius: var(--radius) !important;
padding: 18px !important;
box-shadow: var(--shadow-strong);
}
.control-panel {
position: relative;
}
.control-panel::before {
content: "INPUTS";
position: absolute;
top: 12px;
right: 14px;
color: rgba(17, 22, 20, 0.34);
font-family: var(--font-mono);
font-size: 11px;
letter-spacing: 0.12em;
}
.control-panel h3 {
margin: 0 0 12px !important;
color: var(--ink) !important;
font-family: var(--font-display) !important;
font-size: 22px !important;
font-weight: 900 !important;
}
.control-panel label,
.upload-panel label,
.gradio-container label,
.gradio-container span,
.gradio-container p,
.gradio-container li {
color: var(--ink-soft) !important;
}
.gradio-container label {
font-weight: 780 !important;
}
.gradio-container textarea,
.gradio-container input,
.gradio-container select {
color: var(--ink) !important;
background: #ffffff !important;
border: 1px solid var(--line-strong) !important;
border-radius: 4px !important;
font-family: var(--font-body) !important;
font-size: 15px !important;
box-shadow: none !important;
}
.gradio-container textarea::placeholder,
.gradio-container input::placeholder {
color: #737f7b !important;
opacity: 1 !important;
}
.gradio-container textarea:focus,
.gradio-container input:focus,
.gradio-container select:focus {
outline: 3px solid rgba(31, 95, 125, 0.24) !important;
border-color: var(--cad-blue) !important;
}
.gradio-container .form,
.gradio-container .block,
.gradio-container .block-background,
.gradio-container .input-container,
.gradio-container .wrap,
.gradio-container .output-markdown,
.gradio-container .markdown,
.gradio-container .image-container {
border-color: var(--line) !important;
background: #ffffff !important;
color: var(--ink) !important;
}
.coverage-card {
margin-top: 14px;
border: 1px solid var(--line-strong);
border-top: 5px solid var(--cad-blue);
background: rgba(255, 255, 255, 0.82);
color: var(--ink);
border-radius: var(--radius);
padding: 15px 16px;
}
.coverage-card strong {
display: block;
margin-bottom: 10px;
color: var(--cad-blue-dark);
font-family: var(--font-display);
font-weight: 900;
}
.coverage-card ul {
margin: 0;
padding-left: 18px;
}
.coverage-card li {
margin: 7px 0;
line-height: 1.4;
}
.control-panel button.secondary,
.control-panel button[variant="secondary"],
.upload-panel button.secondary,
.upload-panel button[variant="secondary"] {
min-height: 44px !important;
border: 1px solid var(--rule) !important;
background: #ffffff !important;
color: var(--cad-blue-dark) !important;
border-radius: 4px !important;
font-family: var(--font-display) !important;
font-weight: 850 !important;
box-shadow: 2px 2px 0 rgba(17, 22, 20, 0.14) !important;
}
.control-panel button.secondary:hover,
.control-panel button[variant="secondary"]:hover,
.upload-panel button.secondary:hover,
.upload-panel button[variant="secondary"]:hover {
background: #eef8f6 !important;
}
.upload-panel {
margin-top: 18px !important;
}
.upload-panel > div:first-child {
color: var(--ink) !important;
font-family: var(--font-display) !important;
font-weight: 900 !important;
}
.generate-button button,
.map-generate-button button,
button.primary {
min-height: 54px !important;
background: linear-gradient(90deg, var(--survey-green), #0b5f57) !important;
color: #ffffff !important;
border: 1px solid var(--survey-green-dark) !important;
border-radius: 4px !important;
font-family: var(--font-display) !important;
font-size: 16px !important;
font-weight: 900 !important;
letter-spacing: 0 !important;
box-shadow: 4px 4px 0 rgba(17, 22, 20, 0.24) !important;
}
.generate-button button:hover,
.map-generate-button button:hover,
button.primary:hover {
background: linear-gradient(90deg, var(--cad-blue), var(--survey-green-dark)) !important;
transform: translate(-1px, -1px);
}
.map-generate-button button {
width: 100% !important;
min-height: 58px !important;
font-size: 17px !important;
}
.tabs {
margin-top: 20px !important;
}
.tab-nav {
border-bottom: 1px solid var(--rule) !important;
}
.tab-nav button {
color: var(--ink-soft) !important;
font-family: var(--font-display) !important;
font-weight: 850 !important;
}
.tab-nav button[aria-selected="true"] {
color: var(--ink) !important;
border-bottom-color: var(--amber) !important;
background: #ffffff !important;
}
.output-intro {
display: flex;
justify-content: space-between;
gap: 14px;
align-items: center;
margin: 0 0 14px;
padding: 13px 15px;
border: 1px solid var(--rule);
border-left: 8px solid var(--cad-blue);
border-radius: var(--radius);
background: #ffffff;
box-shadow: var(--shadow-flat);
}
.output-intro strong {
color: var(--ink);
font-family: var(--font-display);
font-weight: 900;
}
.output-intro span {
color: var(--ink-soft) !important;
overflow-wrap: anywhere;
}
.board-preview-frame,
.board-preview-empty {
border: 1px solid var(--rule);
border-radius: var(--radius);
background: #ffffff;
color: var(--ink-soft);
overflow: hidden;
box-shadow: var(--shadow-strong);
}
.board-preview-empty {
min-height: 320px;
display: grid;
place-items: center;
color: var(--muted);
background:
linear-gradient(90deg, rgba(17, 22, 20, 0.05) 1px, transparent 1px),
linear-gradient(rgba(17, 22, 20, 0.05) 1px, transparent 1px),
#ffffff;
background-size: 32px 32px, 32px 32px, auto;
}
.board-preview-waiting {
min-height: 560px;
padding: 28px;
place-items: stretch;
}
.empty-board-grid {
display: grid;
height: 100%;
min-height: 500px;
grid-template-columns: 1.55fr repeat(2, minmax(0, 1fr));
grid-auto-rows: minmax(130px, auto);
gap: 14px;
}
.empty-board-title {
grid-row: span 2;
display: flex;
flex-direction: column;
justify-content: flex-end;
border: 1px solid var(--rule);
border-radius: var(--radius);
padding: 24px;
background:
linear-gradient(90deg, rgba(255, 255, 255, 0.06) 1px, transparent 1px),
linear-gradient(rgba(255, 255, 255, 0.055) 1px, transparent 1px),
#101716;
background-size: 32px 32px, 32px 32px, auto;
color: #ffffff;
}
.empty-board-title span {
color: #8ce6dc !important;
font-family: var(--font-mono);
font-size: 12px;
font-weight: 850;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.empty-board-title b {
display: block;
max-width: 540px;
margin-top: 12px;
color: #ffffff;
font-family: var(--font-display);
font-size: clamp(31px, 3vw, 54px);
font-weight: 900;
line-height: 0.98;
}
.empty-board-title small {
display: block;
max-width: 560px;
margin-top: 14px;
color: #d5e0dd !important;
font-size: 15px;
line-height: 1.45;
}
.empty-board-card {
border: 1px solid var(--line-strong);
border-radius: var(--radius);
padding: 18px;
background: #ffffff;
color: var(--ink);
box-shadow: 4px 4px 0 rgba(17, 22, 20, 0.08);
}
.empty-board-card b {
display: grid;
width: 36px;
height: 36px;
place-items: center;
margin-bottom: 20px;
background: var(--ink);
color: #ffffff;
font-family: var(--font-mono);
font-size: 12px;
}
.empty-board-card span {
display: block;
color: var(--ink);
font-family: var(--font-display);
font-size: 19px;
font-weight: 900;
line-height: 1.12;
}
.board-preview-frame img {
display: block;
width: 100%;
height: auto;
}
.prose,
.markdown,
.output-markdown {
color: var(--ink) !important;
font-size: 15px !important;
line-height: 1.58 !important;
}
.prose h1,
.prose h2,
.prose h3,
.markdown h1,
.markdown h2,
.markdown h3 {
color: var(--ink) !important;
font-family: var(--font-display) !important;
letter-spacing: 0 !important;
}
.prose h1,
.markdown h1 {
font-size: 31px !important;
}
.prose h2,
.markdown h2 {
margin-top: 26px !important;
font-size: 22px !important;
border-bottom: 1px solid var(--line);
padding-bottom: 6px;
}
.prose h3,
.markdown h3 {
font-size: 17px !important;
}
.prose code,
.markdown code {
background: #e7f0ee !important;
color: #092b28 !important;
border: 1px solid #c8d8d4;
border-radius: 3px;
padding: 1px 5px;
}
.prose table,
.markdown table {
width: 100%;
background: #ffffff !important;
color: var(--ink) !important;
border-collapse: collapse;
font-size: 13px !important;
}
.prose th,
.markdown th {
background: #14201d !important;
color: #ffffff !important;
}
.prose td,
.prose th,
.markdown td,
.markdown th {
border: 1px solid var(--line) !important;
padding: 9px !important;
}
.evidence-shell {
background: #ffffff;
border: 1px solid var(--rule);
border-radius: var(--radius);
color: var(--ink);
overflow: hidden;
box-shadow: var(--shadow-strong);
}
.evidence-header {
display: flex;
justify-content: space-between;
gap: 18px;
align-items: center;
padding: 16px 18px;
background:
linear-gradient(90deg, rgba(31, 95, 125, 0.28), transparent 60%),
#111614;
color: #ffffff;
}
.evidence-header span {
display: block;
color: #89d7ce !important;
font-family: var(--font-mono);
font-size: 11px;
font-weight: 850;
letter-spacing: 0.10em;
text-transform: uppercase;
}
.evidence-header strong {
display: block;
margin-top: 4px;
color: #ffffff;
font-family: var(--font-display);
font-size: 20px;
font-weight: 900;
}
.evidence-header b {
color: #ffffff;
font-family: var(--font-mono);
white-space: nowrap;
}
.evidence-scroll {
overflow-x: auto;
background: #ffffff;
}
.evidence-html-table {
width: 100%;
min-width: 1320px;
border-collapse: collapse;
table-layout: fixed;
background: #ffffff;
color: var(--ink);
}
.evidence-html-table th {
position: sticky;
top: 0;
z-index: 1;
background: #17211e;
color: #ffffff;
border-bottom: 2px solid var(--line-strong);
font-family: var(--font-display);
font-size: 12px;
line-height: 1.25;
text-align: left;
text-transform: uppercase;
letter-spacing: 0.04em;
padding: 12px 10px;
}
.evidence-html-table td {
vertical-align: top;
border-bottom: 1px solid var(--line);
color: var(--ink);
font-size: 13px;
line-height: 1.44;
padding: 12px 10px;
overflow-wrap: anywhere;
}
.evidence-html-table tr:nth-child(even) td {
background: #f5f8f6;
}
.evidence-id {
font-family: var(--font-mono);
color: var(--cad-blue-dark) !important;
font-weight: 850;
}
.evidence-html-table small {
display: block;
margin-top: 5px;
color: var(--muted);
}
.confidence {
display: inline-block;
border-radius: 3px;
padding: 4px 7px;
font-family: var(--font-mono);
font-size: 11px;
font-weight: 850;
text-transform: uppercase;
}
.confidence-high {
background: #d7eee9;
color: #083e36;
}
.confidence-medium {
background: #fff1cf;
color: #60410f;
}
.confidence-low {
background: #f8dcd4;
color: #722719;
}
.gradio-container a {
color: var(--cad-blue) !important;
}
.gradio-container a:visited {
color: #5b456c !important;
}
footer {
color: var(--muted) !important;
}
#app-header,
.workflow-strip,
#sis-map-shell,
.control-panel,
.upload-panel,
.tabs {
opacity: 1 !important;
transform: none !important;
animation: none !important;
filter: none !important;
}
@media (max-width: 1120px) {
.studio-workbench {
grid-template-columns: 1fr 1fr !important;
}
.canvas-pane {
grid-column: 1 / -1;
order: -1;
}
.header-grid {
grid-template-columns: 1fr;
}
.status-stack {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.status-stack div {
grid-template-columns: 1fr;
}
}
@media (max-width: 920px) {
html,
body {
width: 100% !important;
max-width: 100vw !important;
margin: 0 !important;
padding: 0 !important;
background: var(--canvas) !important;
}
gradio-app,
#root,
.app,
.main,
.contain,
.gradio-container > .main,
.gradio-container .contain {
width: 100vw !important;
max-width: 100vw !important;
min-width: 0 !important;
margin: 0 !important;
padding-left: 0 !important;
padding-right: 0 !important;
overflow-x: hidden !important;
}
.gradio-container {
padding: 10px !important;
overflow-x: hidden !important;
margin: 0 !important;
width: 100vw !important;
max-width: 100vw !important;
min-width: 0 !important;
}
#app-header {
padding: 20px 16px 34px;
width: 100%;
max-width: calc(100vw - 20px) !important;
}
#app-header h1 {
font-size: clamp(31px, 10vw, 39px);
line-height: 0.96;
}
#app-header::after {
left: 18px;
right: auto;
bottom: 10px;
}
.workflow-strip,
.status-stack {
grid-template-columns: 1fr;
}
.studio-topbar {
align-items: flex-start;
flex-direction: column;
padding: 20px 18px;
}
.gradio-container .studio-shell .studio-topbar h1,
.gradio-container .studio-shell .studio-topbar .prose h1,
.gradio-container .studio-shell .studio-topbar .markdown h1 {
font-size: clamp(31px, 9.5vw, 40px) !important;
line-height: 0.96 !important;
}
.studio-meta {
justify-content: flex-start;
}
.studio-briefing,
.studio-proof-row,
.studio-workbench {
grid-template-columns: 1fr !important;
}
.studio-shell > .deliverables-strip,
.studio-proof-row {
display: none;
}
.studio-briefing div:nth-child(n + 2) {
display: none;
}
.studio-briefing div,
.studio-proof-row div {
border-right: 0;
border-bottom: 1px solid var(--line);
}
.studio-briefing div:last-child,
.studio-proof-row div:last-child {
border-bottom: 0;
}
.canvas-pane {
order: -1;
}
.workflow-strip,
#sis-map-shell,
.warning-note,
.control-panel,
.upload-panel,
.tabs,
.studio-shell,
.brief-pane,
.source-pane,
.canvas-pane,
.review-header,
.review-tabs {
width: 100% !important;
max-width: calc(100vw - 20px) !important;
}
.workflow-strip div {
border-right: 0;
border-bottom: 1px solid var(--line);
}
.workflow-strip div:last-child {
border-bottom: 0;
}
.main-workspace,
.main-workspace > div,
.main-workspace .map-workspace,
.main-workspace .control-panel {
display: flex !important;
flex-direction: column !important;
width: 100% !important;
max-width: 100% !important;
min-width: 0 !important;
flex: 1 1 100% !important;
}
.map-topbar {
align-items: flex-start;
flex-direction: column;
}
.map-confidence {
white-space: normal;
}
#site-map {
height: 500px;
min-height: 420px;
}
.map-controls button,
.map-controls select {
flex: 1 1 calc(50% - 8px);
min-width: 0;
}
.map-controls button {
min-height: 42px;
padding: 9px 10px;
}
.map-controls label {
width: 100%;
}
.map-controls label select {
max-width: 128px;
}
.deliverables-strip {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.deliverables-strip div:nth-child(2n) {
border-right: 0;
}
.deliverables-strip div {
border-bottom: 1px solid var(--line);
}
.deliverables-strip div:nth-last-child(-n + 2) {
border-bottom: 0;
}
.empty-board-grid {
grid-template-columns: 1fr;
min-height: auto;
}
.empty-board-title {
grid-row: auto;
min-height: 260px;
}
.board-preview-waiting {
min-height: auto;
padding: 14px;
}
.control-panel {
margin-top: 16px !important;
}
.output-intro {
align-items: flex-start;
flex-direction: column;
}
}