:root{font-family:system-ui,Segoe UI,sans-serif;color:#234239;background:#f5f8f6;--line:#cbd9d1;--accent:#255b50}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{padding:9px;border:1px solid #bdcec5;border-radius:8px;cursor:pointer;background:white;color:#24534a}.primary{background:var(--accent);color:white}.danger{color:#aa4039}a{color:#245c68}.top{display:flex;align-items:center;gap:18px;padding:12px 20px;background:white;border-bottom:1px solid var(--line)}.brand{font-size:22px;font-weight:700;text-decoration:none;display:flex;align-items:center;gap:12px}.mark{padding:8px 13px;border-radius:10px;background:var(--accent);color:white}.brand small{display:block;font-size:10px}.top nav{display:flex;flex-wrap:wrap;gap:10px;margin-left:auto}.small,.muted,.header-note{font-size:12px;color:#5e7167}.app{display:grid;grid-template-columns:255px minmax(0,1fr);min-height:90vh}.left{padding:18px;background:white;border-right:1px solid var(--line)}.main{padding:24px;min-width:0}.stack,.library{display:grid;gap:7px}.library button{text-align:left}.eyebrow{font-size:11px;letter-spacing:.08em;color:#487564;font-weight:700}.editor-header,.panehead,.preview-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.actions,.row,.add-actions{display:flex;flex-wrap:wrap;gap:8px}.story-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0}.workspace-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.outline,.inspector,.below{background:white;border:1px solid var(--line);border-radius:12px;padding:18px;min-width:0}.below{margin-top:15px}.alerts{min-height:24px;color:#286b56;font-size:13px}.alerts.error{color:#a43b31}h1{font-size:25px;margin:0}h2{font-size:18px}h3{font-size:15px}label{display:block;font-size:13px;font-weight:600;margin:10px 0}input:not([type=checkbox]),select,textarea{width:100%;padding:9px;margin-top:5px;border:1px solid #bccdc3;border-radius:8px;background:white}textarea{resize:vertical}#node-tree{max-height:55vh;min-height:125px;overflow:auto;display:grid;gap:4px}.tree-item{display:flex;width:100%;align-items:center;gap:8px;text-align:left;background:transparent;border:1px solid transparent;padding:8px}.tree-item[aria-selected=true]{background:#e7f3ea;border-color:#8cbaa1}.type{font-size:10px;color:#60766c;min-width:74px}.name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route{font-size:10px}.add-actions{margin-top:18px}.skip{position:absolute;left:-9999px}.skip:focus{left:5px;top:5px;background:white}dialog{width:min(780px,95vw);max-height:90vh;overflow:auto;padding:22px;border:1px solid var(--line);border-radius:12px}dialog::backdrop{background:#0c281f88}dialog .close{float:right}#preview-frame{padding:12px;background:#eaf2ec}#preview-frame.mobile{max-width:390px;margin:auto}#preview-content{background:white;padding:18px;min-height:350px}.visual{background:#f4f8f5;border:1px dashed #bad0c2;padding:14px}.exception{background:#fff4e9;border-left:3px solid #aa7442;padding:8px}.visual-item{border:1px solid var(--line);border-radius:8px;margin:8px 0;padding:12px}.visual-item.blocked{background:#f5f5f5}.badge-state.ready{color:#267455}.badge-state.blocked{color:#956536}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #b47d37;outline-offset:2px}
.saved-item{padding:9px 6px;border-bottom:1px solid var(--line);display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.saved-item strong{display:block;width:100%;font-size:12px;font-weight:650;overflow-wrap:anywhere}
.saved-item button{font-size:12px;min-height:34px;flex:1 1 auto}
#preview-content .visual details{background:#fff;border:1px solid var(--line);border-radius:7px;padding:7px;margin:8px 0}
#preview-content .visual details p{font-size:12px;color:#566d62}

/* F1628 editor layout: full-height outline, separate slim add-item rail, details to the right. */
.main{padding:10px 14px 12px}
.studio-columns{display:grid;grid-template-columns:118px minmax(330px,.86fr) minmax(370px,1.14fr);gap:12px;align-items:start;min-width:0}
.palette-actions,.studio-columns>.outline{position:sticky;top:76px;height:calc(100dvh - 88px);min-height:460px;background:#fff;border:1px solid var(--line);border-radius:10px;min-width:0;overflow:hidden}
.palette-actions{padding:9px 6px;display:flex;flex-direction:column}
.palette-actions h2{font-size:14px;margin:0 0 8px;padding:0 4px;line-height:1.3}
.palette-actions .add-actions{display:flex;flex:1;min-height:0;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:5px;overflow-y:auto;padding:0 2px 4px;margin:0}
.palette-actions .add-actions button{width:100%;min-height:33px;font-size:11px;padding:6px 5px;line-height:1.22;text-align:left;white-space:normal}
.studio-columns>.outline{padding:8px 7px 6px;display:flex;flex-direction:column}
.studio-columns>.outline .panehead{flex:0 0 auto;align-items:baseline;gap:6px;padding:0 4px 6px}
.studio-columns>.outline .panehead h2{font-size:16px;line-height:1.2;margin:0}
.studio-columns>.outline .panehead .small{font-size:10px;white-space:nowrap}
#node-tree{min-height:0;max-height:none;flex:1;overflow-y:auto;overflow-x:hidden;align-content:start;gap:1px}
#node-tree .tree-item{padding-top:3px;padding-bottom:3px;padding-right:4px;min-height:25px;line-height:1.15;gap:5px;border-radius:5px}
#node-tree .tree-item .type{min-width:64px;font-size:9px;line-height:1.05}
#node-tree .tree-item .name{font-size:12px;line-height:1.12}
.detail-column{min-width:0;display:flex;flex-direction:column;gap:8px}
.detail-column>.editor-header{display:flex;flex-direction:column;align-items:stretch;gap:5px}
.story-identification .eyebrow{margin:0 0 3px}
.story-identification h1{margin:0 0 2px;font-size:24px;line-height:1.2}
.story-identification .muted{margin:3px 0 0;line-height:1.35}
.detail-column>.editor-header .alerts{min-height:0;margin:0 0 3px}
.action-stack{display:flex;flex-direction:column;gap:7px}
.action-stack .actions,.action-stack .secondary-actions{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-start}
.action-stack .actions button{min-height:38px}
.action-stack .secondary-actions button{min-height:34px;font-size:12px}
.story-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin:3px 0 2px}
.story-fields label{margin:0;min-width:0}
.story-fields .county-field{grid-column:1 / -1}
.story-fields input,.story-fields select{margin-top:4px}
.detail-column>.inspector{padding:13px 15px}
.detail-column>.inspector h2{margin:2px 0 10px}
.detail-column>.below{padding:10px 14px;margin:0}
.detail-column>.below h2{font-size:14px;margin:0 0 4px}
.detail-column>.below p{font-size:12px;line-height:1.35;margin:3px 0}
@media(max-width:1220px) and (min-width:701px){
 .studio-columns{grid-template-columns:112px minmax(0,1fr)}
 .studio-columns>.detail-column{grid-column:1 / -1}
 .palette-actions,.studio-columns>.outline{height:min(68dvh,740px);min-height:400px;position:static}
 .detail-column>.inspector{margin-top:4px}
}


/* F1628 refined authoring hierarchy and persistent header — 2026-10-24. */
:root{--header-height:64px;--compact-header-left:65%}
html{scroll-padding-top:var(--header-height)}
.top{position:sticky;top:0;z-index:35;min-height:56px;box-shadow:0 1px 0 #dae3dc}
.header-toggle{flex:0 0 auto;margin-left:6px;font-size:12px;padding:7px 9px;white-space:nowrap;min-height:34px}
.header-toggle[aria-pressed=true]{background:#e5f0eb;border-color:#91b6a6;color:#204c41}
.left{position:sticky;top:var(--header-height);height:calc(100dvh - var(--header-height));overflow-y:auto;align-self:start;scrollbar-width:thin}
.palette-actions,.studio-columns>.outline{top:calc(var(--header-height) + 7px);height:calc(100dvh - var(--header-height) - 16px)}
/* Always put node TYPE in a clearer depth column. Retain larger gaps for structural boundaries. */
#node-tree{gap:0;grid-auto-rows:max-content;align-content:start}
#node-tree .tree-item{padding-top:0;padding-bottom:1px;min-height:19px;line-height:1.08;gap:6px}
#node-tree .tree-item .type{min-width:69px;font-size:9px}
#node-tree .tree-item .name{font-size:12px;line-height:1.08}
#node-tree .tree-item.structural{padding-top:9px;padding-bottom:4px;min-height:29px;line-height:1.2}
#node-tree .tree-item.structural .type,
#node-tree .tree-item.structural .name{font-weight:750;color:#24483c}
#node-tree .tree-item.structural[data-node-type=PAGE]{padding-top:12px}
/* Split the right editor area: 3/4 item inspector, 1/4 story configuration. */
.detail-column{display:grid;grid-template-columns:minmax(0,3fr) minmax(180px,1fr);gap:10px;align-items:start}
.detail-edit-panel,.detail-settings-panel{min-width:0}
.detail-edit-panel .inspector{padding:13px 15px;min-height:200px}
.detail-edit-panel .inspector h2{margin:2px 0 11px}
.detail-settings-panel{display:flex;flex-direction:column;gap:9px}
.detail-settings-panel .editor-header{display:flex;flex-direction:column;gap:6px;align-items:stretch}
.detail-settings-panel .story-identification h1{font-size:20px;line-height:1.16}
.detail-settings-panel .story-identification .muted{font-size:11px;line-height:1.32}
.detail-settings-panel .action-stack .actions,
.detail-settings-panel .action-stack .secondary-actions{display:flex;flex-direction:column;gap:6px}
.detail-settings-panel .action-stack button{width:100%;text-align:left;white-space:normal;padding:7px 8px}
.detail-settings-panel .action-stack .secondary-actions button{font-size:11px}
.detail-settings-panel .story-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin:0}
.detail-settings-panel .story-fields .county-field{grid-column:auto}
.detail-settings-panel .story-fields label{font-size:12px;min-width:0;overflow-wrap:anywhere}
.detail-settings-panel .story-fields input,.detail-settings-panel .story-fields select{width:100%;min-width:0}
.detail-settings-panel .below{padding:11px 9px;margin:0;overflow-wrap:anywhere}
.detail-settings-panel .below p{font-size:11px}
html.header-condensed .top{
 position:fixed;top:0;left:var(--compact-header-left);right:0;width:auto;
 z-index:40;padding:6px 10px;min-height:48px;gap:7px;
 border-left:1px solid var(--line);border-bottom-left-radius:9px;
 box-shadow:0 3px 12px #1b3b3022
}
html.header-condensed .top .brand{font-size:16px;gap:5px}
html.header-condensed .top .mark{padding:4px 8px;border-radius:7px;font-size:16px}
html.header-condensed .top .brand small,
html.header-condensed .top .header-note{display:none}
html.header-condensed .top nav{margin-left:auto;gap:8px}
html.header-condensed .top nav a{font-size:12px;white-space:nowrap}
html.header-condensed .top nav button{min-height:30px;padding:5px 7px;font-size:12px}
html.header-condensed .header-toggle{font-size:11px;margin-left:2px;min-height:30px}
html.header-condensed .left{top:0;height:100dvh}
html.header-condensed .palette-actions,
html.header-condensed .studio-columns>.outline{top:7px;height:calc(100dvh - 14px)}
html.header-condensed .detail-column{padding-top:calc(var(--header-height) + 7px)}
/* Readable fallbacks for a smaller available desktop authoring width. */
@media(max-width:1620px) and (min-width:1221px){
 .detail-column{grid-template-columns:minmax(0,1fr);gap:10px}
 .detail-settings-panel .action-stack .actions,.detail-settings-panel .action-stack .secondary-actions{flex-direction:row;flex-wrap:wrap}
 .detail-settings-panel .action-stack button{width:auto;flex:1 1 140px}
 .detail-settings-panel .story-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
 .detail-settings-panel .story-fields .county-field{grid-column:1/-1}
}
@media(max-width:1220px) and (min-width:701px){
 .left{position:static;height:auto;overflow:visible}
 .palette-actions,.studio-columns>.outline{top:auto;position:static;height:min(68dvh,740px)}
 .detail-column{grid-template-columns:minmax(0,1fr);gap:10px}
 .detail-settings-panel .action-stack .actions,.detail-settings-panel .action-stack .secondary-actions{flex-direction:row;flex-wrap:wrap}
 .detail-settings-panel .action-stack button{width:auto;flex:1 1 150px}
 .detail-settings-panel .story-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
 .detail-settings-panel .story-fields .county-field{grid-column:1/-1}
 html.header-condensed .detail-column{padding-top:0}
}

/* F1645: planned Iris authoring/status — status is never equivalent to publication. */
.readiness-tools{display:flex;justify-content:space-between;align-items:center;gap:7px;flex-wrap:wrap;padding:2px 4px 8px;border-bottom:1px solid var(--line)}
.readiness-tools p{font-size:11px;color:#526e5f;margin:0;line-height:1.35}
.readiness-tools label{display:flex;gap:5px;align-items:center;font-size:11px;font-weight:600;margin:0;white-space:nowrap}
.readiness-tools input{accent-color:#205d4a;margin:0}
#node-tree .tree-item .readiness-dot{display:inline-block;flex:0 0 9px;width:9px;height:9px;border-radius:50%;outline:1px solid #8a8f8a;outline-offset:1px}
#node-tree .tree-item .readiness-dot.unbuilt{background:#bb3735;outline-color:#cf9b98}
#node-tree .tree-item .readiness-dot.ready{background:#27854c;outline-color:#90bba2}
#node-tree .tree-item{column-gap:5px}
#node-tree .tree-item .name{min-width:0}
.visual-spec-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.visual-spec-top>label{min-width:180px;flex:1}
.visual-spec-top>.required-toggle{display:flex;align-items:center;gap:7px;font-size:12px}
.spec-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px}
.spec-field{min-width:0;display:block;font-size:12px;margin:4px 0}
.spec-field:has(textarea){grid-column:1/-1}
.spec-field textarea,.spec-field input{width:100%;min-width:0;margin-top:4px;font-size:12px;line-height:1.35}
.spec-field textarea{min-height:60px}
.spec-field[data-spec-field=build_instructions] textarea{min-height:220px}
.spec-field span{font-weight:700}
.field-origin{font-weight:400;color:#677c71;font-size:10px;display:inline-block;margin-left:8px}
.visual-spec-readout{border-left:3px solid #ac6457;padding:2px 10px;background:#fbf5f2;font-size:12px}
.visual-spec-readout p{margin:3px 0}
.advanced-spec{border:1px solid var(--line);border-radius:8px;padding:9px;margin:12px 0}
.advanced-spec summary{cursor:pointer;font-size:12px}
.advanced-spec textarea{font-size:11px;width:100%;margin-top:8px;white-space:pre;tab-size:2}
.iris-source-footer{font-size:11px;line-height:1.4;margin:8px 0 0;padding-top:6px;border-top:1px solid var(--line);color:#5d6e66}
.iris-source-footer a{color:#275d68}
#generate-outstanding{font-size:11px;line-height:1.3;white-space:normal;text-align:left}
#generate-outstanding:disabled{background:#f3f4f3;color:#6e7970;cursor:not-allowed}

/* Mira uploaded brand and clear private library state */
.brand-logo{display:block;width:46px;height:46px;object-fit:contain;flex:0 0 auto;border-radius:50%}
html.header-condensed .top .brand-logo{width:34px;height:34px}
.signin-library{padding:9px;border:1px solid #a9c7b9;border-radius:8px;background:#f1f7f3;margin:10px 0 12px}
.signin-library p{font-size:12px;line-height:1.45;color:#365f52;margin:0 0 8px}
.signin-library button{display:block;background:#285a4d;border-color:#285a4d;color:#fff;width:100%;font-size:12px}
.signin-library button:hover{background:#204c41}

/* F1624/F1625 reusable Mira public map/chart blocks.
   Frames are same-origin F1626 audience-checked Iris viewers and never clip the
   per-visual export menu or original attribution beneath each map/chart. */
.mira-published-visual{width:100%;min-width:0;overflow:visible;contain:none}
.mira-published-visual .visual-placeholder{padding:22px;border:1px solid var(--line);border-radius:9px;color:#5d7168}
.mira-public-visual-frame{display:block;width:100%;height:780px;border:0;background:#fff;border-radius:8px}
@media(max-width:700px){.mira-public-visual-frame{height:790px}}
@media print{.mira-public-visual-frame{height:720px;break-inside:avoid}}
