*{box-sizing:border-box}body{margin:0;background:#f4f6fa;color:#202c3b;font:15px system-ui,-apple-system,Segoe UI,sans-serif}header{background:#132d47;color:white;display:flex;align-items:center;gap:32px;padding:17px 28px}.logo{font-weight:800;font-size:19px}main{max-width:1440px;padding:28px;margin:auto}.heading h1{margin:0;font-size:26px}.heading p,.panel p{color:#52657c}.tag{background:#e6edf5;color:#34485e;border-radius:18px;padding:5px 11px;font-size:12px}header .tag{margin-left:auto}.panel{background:white;border:1px solid #d9e1eb;border-radius:10px;padding:20px;min-width:0}.panel h2{margin:0 0 16px;font-size:17px}.login{max-width:510px}.login label,.panel>label{display:block;margin-bottom:14px}.login input,.panel>label input{display:block;width:100%;margin-top:5px}input,select{padding:9px;border:1px solid #bbc9d8;border-radius:6px;background:white;color:inherit;min-width:0}button{background:#2366aa;color:white;border:0;padding:10px 14px;border-radius:6px;cursor:pointer}button:disabled{opacity:.55;cursor:wait}.secondary{background:#e8eef6;color:#154570}.danger{background:#fce9e9;color:#a12e2e;padding:6px 9px}.workspace-bar,.toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:18px 0}.workspace-bar label{display:flex;flex-direction:column;gap:5px}.workspace-bar input{width:350px}.tabs{display:flex;gap:9px;margin:20px 0}.tabs button{background:#e5eaf0;color:#324b65}.tabs button.active{background:#235f9e;color:white}.explorer,.editor{display:grid;grid-template-columns:330px minmax(0,1fr);gap:15px}.table-list{max-height:65vh;overflow:auto;margin-top:12px}.table-choice{width:100%;display:flex;justify-content:space-between;gap:7px;background:white;color:#273e56;border-bottom:1px solid #ebeff4;border-radius:0;text-align:left;padding:10px 7px}.table-choice.selected,.table-choice:hover{background:#e6f1fa}.table-choice small{color:#7c8899;white-space:nowrap}.detail{overflow:auto}table{border-collapse:collapse;width:100%;margin-bottom:20px}td,th{text-align:left;padding:10px;border-bottom:1px solid #ebeff4}th{background:#f5f7fa;font-size:13px}.relation{color:#2269ad}.editor-heading{display:flex;justify-content:space-between}.entity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(315px,1fr));gap:14px}.entity-card{border:1px solid #d6dfeb;border-radius:8px;padding:11px;background:#fcfdff}.entity-header,.column-row{display:flex;gap:5px;margin-bottom:9px}.entity-header input,.column-row input{width:100%}.entity-header select{max-width:120px}.column-row select{max-width:128px}.link-button{background:none;color:#2366aa;padding:5px}.hint{font-size:13px}.status{padding:12px 16px;border-left:4px solid #2366aa;background:#eaf0f7;margin-top:15px}@media(max-width:850px){.explorer,.editor{grid-template-columns:1fr}.workspace-bar input{width:100%}header{gap:12px;flex-wrap:wrap}}
.diagram-surface{width:100%;min-height:240px;max-height:680px;overflow:auto;border:1px solid #d4e1ed;border-radius:9px;background-color:#f8fbfe;background-image:radial-gradient(#d6e2ec 1px,transparent 1px);background-size:16px 16px;margin:10px 0 20px}
.diagram-surface svg{min-width:540px;min-height:240px}
.relation-row{display:flex;align-items:center;gap:14px;border:1px solid #dce6f0;border-radius:6px;background:#f9fbfd;padding:9px 12px;margin:6px 0;flex-wrap:wrap}
.relation-row span{font-family:monospace;font-size:12px;word-break:break-word}
.relation-row small{color:#64748b;margin-left:auto}
.editor h3{font-size:15px;margin-top:20px}
.toolbar label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:600;color:#455a6d}
.toolbar select{max-width:230px}

.diagram-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#52657c;font-size:12px;margin:12px 0}
.diagram-surface svg{touch-action:none;user-select:none;cursor:grab}
.diagram-surface svg:active{cursor:grabbing}
.diagram-surface .node-header{cursor:move}

.relation-picker{border:1px solid #d7e2ed;border-radius:9px;background:#f8fbfe;padding:12px;margin:10px 0}
.relation-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:10px;margin:12px 0}
.relation-node{background:white;color:#244661;border:1px solid #b9ccdf;border-radius:8px;display:flex;flex-direction:column;align-items:flex-start;gap:5px;text-align:left}
.relation-node.source{border:2px solid #2563a5;background:#e8f2ff}
.relation-node.target{border:2px solid #087f5b;background:#e9f7f0}
.relation-node small{color:#61758a}.relation-node span{font-size:12px;font-weight:600}
.comparison{margin-top:16px}.comparison td{vertical-align:top}

.sql-preview{max-height:400px;overflow:auto;background:#16283c;color:#e6f0fb;border-radius:8px;padding:16px;font-family:Consolas,monospace;font-size:13px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}

.catalog-diagram{margin-top:20px}
.catalog-diagram-controls{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin:14px 0}
.catalog-diagram-controls label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600;color:#465b70}
.catalog-diagram-controls select{min-width:205px}
.catalog-diagram .diagram-surface{max-height:650px}


/* Form consultation: no external renderer or script is required. */
.survey-form-viewer{margin:18px 0}.survey-form-viewer .editor-heading{align-items:center;gap:12px;flex-wrap:wrap}
.form-diagram-legend{display:flex;gap:20px;flex-wrap:wrap;margin:16px 0;font-size:13px;color:#52657c}
.form-diagram-legend span{display:flex;align-items:center;gap:8px}.form-diagram-legend i{display:inline-block;width:28px;border-top:2px solid #7a8c9f}
.form-diagram-legend .flow-condition{border-top:2px dashed #2366aa}
.form-flow-surface{overflow:auto;max-height:620px;margin:16px 0;border:1px solid #d4e1ed;border-radius:9px;background:#f8fbfe}
.form-flow-svg{display:block;max-width:none}.form-flow-node{cursor:pointer}.form-flow-node rect{fill:white;stroke:#adc3d8;stroke-width:1.5}
.form-flow-node:hover rect,.form-flow-node:focus rect{stroke:#2366aa;stroke-width:2.5}.form-flow-node.selected rect{fill:#eaf3fc;stroke:#2366aa;stroke-width:3}
.form-sheet-details{padding:16px;border:1px solid #d9e1eb;border-radius:8px;background:#fcfdff}.form-sheet-details h4{font-size:18px;margin:0 0 14px}
.form-question-table{overflow:auto}.form-question-table td{vertical-align:top;min-width:130px;max-width:360px;overflow-wrap:anywhere}
.form-option-list{padding-left:18px;margin:8px 0}.form-option-list code{display:inline-block;margin-left:5px;color:#52657c;font-size:12px}
.form-binding{padding:10px;background:#eaf3fc;border-radius:6px}.form-technical{margin-top:20px}.form-technical summary{cursor:pointer;color:#52657c;font-weight:600}
@media(max-width:600px){.form-sheet-details{padding:10px}.survey-form-viewer .editor-heading .tag{font-size:11px}}

.form-condition-editor{display:grid;grid-template-columns:minmax(200px,1fr) minmax(180px,1fr);gap:10px;margin:10px 0;padding:10px;background:#f0f5fb;border-radius:7px;grid-column:1/-1}
.form-condition-editor label{display:flex;flex-direction:column;gap:5px;font-size:13px}.form-condition-editor select,.form-condition-editor input{width:100%}
.form-condition-editor p{grid-column:1/-1;margin:0}@media(max-width:650px){.form-condition-editor{grid-template-columns:1fr}}

.form-steps { display:flex; flex-wrap:wrap; gap:.5rem; margin:1rem 0; }
.form-steps .active { outline:3px solid #78b9e8; outline-offset:2px; }
.form-designer .entity-header { flex-wrap:wrap; }
.form-designer .entity-header input { min-width:12rem; }
.form-designer .form-question-row { border-left:3px solid #4b88b8; padding:1rem; margin:.8rem 0; }
.form-designer .validation-message { color:#a02424; border-left:3px solid #a02424; padding:.5rem; }

.form-authoring-layout {display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;}
.form-authoring-layout:has(aside) {grid-template-columns:minmax(0,1.4fr) minmax(20rem,1fr);}
.form-authoring-layout aside {align-self:start;position:sticky;top:1rem;max-height:85vh;overflow:auto;}
@media(max-width:1000px) {.form-authoring-layout:has(aside) {grid-template-columns:minmax(0,1fr);} .form-authoring-layout aside {position:static;max-height:none;}}
.form-section-collapse{margin-bottom:12px}.form-section-collapse>summary,.form-choice-collapse>summary{cursor:pointer;padding:8px 4px;font-weight:600;color:#154570}.form-section-collapse[open]>summary,.form-choice-collapse[open]>summary{margin-bottom:12px}.form-section-collapse>summary:focus-visible,.form-choice-collapse>summary:focus-visible{outline:2px solid #2366aa;outline-offset:3px;border-radius:4px}.form-choice-collapse{min-width:0;width:100%}

/* One editor: questions first, optional storage second. */
.form-designer .form-authoring-layout:has(.form-question-library){grid-template-columns:205px minmax(280px,1fr)}
.form-designer .form-authoring-layout:has(.form-properties){grid-template-columns:205px minmax(280px,1fr) minmax(290px,370px)}
.form-designer .form-authoring-layout>.form-question-library,.form-designer .form-authoring-layout>.form-properties{position:sticky;top:12px;max-height:85vh;overflow:auto;align-self:start;border:1px solid #d6dfeb;border-radius:8px;background:#f8fbfe;padding:12px}
.form-question-library button{display:block;width:100%;text-align:left;margin:6px 0}.form-question-library select{width:100%}
.form-question-properties{display:flex;flex-direction:column;gap:12px}.form-question-properties label{display:flex;flex-direction:column;gap:5px}.form-question-properties label:has(input[type=checkbox]){display:block}
.form-question-properties input:not([type=checkbox]),.form-question-properties select{width:100%}
.form-question-properties .form-condition-editor{grid-template-columns:minmax(0,1fr)}
.form-designer .form-question-row.selected{background:#eaf6f0;border-left-color:#087f5b;outline:1px solid #087f5b;border-radius:5px}
.form-condition-badge{font-size:12px;background:#e5effa;border-radius:5px;padding:6px;overflow-wrap:anywhere}
.form-canvas{min-width:0}.form-storage fieldset{border:0;padding:0;display:grid;gap:10px}.form-storage label{display:block;margin:10px 0}.form-storage select{max-width:100%}
.form-authoring-layout>aside:last-child:not(.form-properties):not(.form-question-library){grid-column:1/-1;position:static}
@media(max-width:1150px){.form-designer .form-authoring-layout:has(.form-properties){grid-template-columns:160px minmax(220px,1fr) minmax(250px,300px)}}
@media(max-width:900px){.form-designer .form-authoring-layout:has(.form-question-library),.form-designer .form-authoring-layout:has(.form-properties){grid-template-columns:minmax(0,1fr)}.form-designer .form-authoring-layout>.form-question-library,.form-designer .form-authoring-layout>.form-properties{position:static;max-height:none}.form-question-library button{display:inline-block;width:auto;margin:4px}.form-properties{order:2}}



/* Parcel-first GIS review, with technical controls kept in a secondary section. */
.gis-table-scroll{max-width:100%;overflow:auto}.gis-proposal-list td{vertical-align:top}.gis-proposal-list small{display:block;margin-top:6px;color:#52657c}.gis-proposal-list .toolbar{margin:0;gap:6px}.gis-proposal-list tr.selected{background:#eaf6f0}.gis-selected-review{margin:18px 0;border-left:4px solid #087f5b}.gis-selected-review>label{display:block;margin:12px 0}.gis-selected-review textarea{width:100%;max-width:700px}.gis-advanced>summary{cursor:pointer;font-weight:600;padding:12px;color:#154570}
.gis-comparison svg{display:block;width:100%;max-height:440px;background:#f8fbfe;border:1px solid #d9e1eb;border-radius:8px}.gis-shape-before{fill:#b42332;fill-opacity:.07;stroke:#b42332;stroke-width:2;stroke-dasharray:5 3}.gis-shape-after{fill:#087f5b;fill-opacity:.10;stroke:#087f5b;stroke-width:2}.gis-move{stroke:#2463c4;stroke-width:2}.gis-before{color:#b42332;font-weight:600}.gis-after{color:#087f5b;font-weight:600}.gis-legend{font-size:13px}.gis-comparison td{font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
@media(max-width:700px){.gis-proposal-list td,.gis-proposal-list th{padding:8px}.gis-proposal-list button{padding:8px}.gis-selected-review{padding:12px}}

.gis-proposal-list .validation-message{color:#b42332;font-weight:600}
