.fangst-dialog{border:1px solid #dce1e8;border-radius:18px;width:min(1100px,94vw);max-height:90vh;padding:0;color:#182438;background:#f7f9fc;font:14px system-ui;box-shadow:0 28px 100px #10203055}.fangst-dialog::backdrop{background:#17243b88}.hub-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px;background:#14263c;color:white;position:sticky;top:0;z-index:2}.hub-head h2{margin:3px 0;font-size:23px}.hub-body{padding:22px}.fangst-dialog button,.fangst-dialog .file-upload{border:1px solid #b9c6d6;border-radius:8px;background:white;color:#14263c;padding:10px 14px;cursor:pointer;font:inherit;font-weight:650}.fangst-dialog button.primary{background:#d6f04a;border-color:#d6f04a}.fangst-dialog button:disabled{opacity:.5;cursor:wait}.fangst-dialog input,.fangst-dialog textarea,.fangst-dialog select{width:100%;box-sizing:border-box;padding:10px;border:1px solid #bdc8d6;border-radius:8px;background:white;color:#14263c;font:inherit}.hub-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:18px}.hub-tools label{flex:1;min-width:160px}.hub-status{padding:10px 0;white-space:pre-wrap}.file-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.file-card,.proposal,.ai-bubble{background:white;border:1px solid #dae1e9;border-radius:12px;padding:16px;overflow-wrap:anywhere}.file-card img{width:100%;height:160px;object-fit:contain;background:#edf1f6;border-radius:7px}.file-card h3{margin:12px 0 6px}.file-card small{display:block;color:#617086;margin-bottom:12px}.file-card details{margin:12px 0}.file-card a{display:block;margin:8px 0;color:#235da1}.file-upload input{position:absolute;opacity:0;width:1px;height:1px}.file-upload:focus-within{outline:2px solid #2563eb}.ai-chat{display:flex;flex-direction:column;gap:12px;max-height:36vh;overflow:auto;margin-bottom:18px}.ai-bubble.user{background:#eaf1fc;margin-left:12%}.ai-bubble.assistant{margin-right:8%}.ai-bubble p{white-space:pre-wrap;margin:0;line-height:1.6}.ai-compose{display:flex;gap:10px;align-items:flex-end;margin:18px 0}.ai-compose label{flex:1}.ai-compose textarea{min-height:80px;resize:vertical}.ai-changes{display:grid;gap:10px;margin:14px 0}.ai-change{padding:12px;background:#f2f5f9;border-radius:8px}.ai-diff{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-height:280px;overflow:auto}.ai-diff>div{padding:10px;background:white;border-radius:6px;white-space:pre-wrap}.ai-value{margin:5px 0 5px 12px;border-left:2px solid #dce3ed;padding-left:10px}.ai-value b{font-weight:650}.hub-note{color:#536379;line-height:1.5}.hub-head button{white-space:nowrap}.backup-list{width:100%;border-collapse:collapse}.backup-list td,.backup-list th{padding:9px;text-align:left;border-bottom:1px solid #ddd}@media(max-width:600px){.hub-body{padding:14px}.hub-head{padding:16px}.ai-diff{grid-template-columns:1fr}.ai-compose{flex-direction:column;align-items:stretch}.ai-bubble.user,.ai-bubble.assistant{margin:0}.hub-head h2{font-size:19px}.file-grid{grid-template-columns:1fr}}

.help-content{margin:20px 0;background:white;border:1px solid #dae1e9;border-radius:12px;padding:20px}.help-content p{line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere}.help-content h3{margin-top:0}

/* Help follows the application's palette, including System and both portals.
   Scoped to this dialog so AI, documents and their handlers are unchanged. */
@media screen {
  #help-dialog {
    width:min(960px,calc(100vw - 32px));max-height:calc(100dvh - 40px);
    box-sizing:border-box;background:var(--ui-card,#fafbf8);color:var(--ui-ink,#25312e);
    border:1px solid var(--ui-line,#ccd3cc);border-radius:16px;
    color-scheme:var(--ui-color-scheme,light);font-family:inherit;
  }
  #help-dialog::backdrop {background:rgb(10 18 22 / .55)}
  #help-dialog .hub-head {background:var(--ui-head,#dde4dc);color:var(--ui-ink,#25312e);border-bottom:1px solid var(--ui-line,#ccd3cc);padding:18px 24px}
  #help-dialog .hub-head small {color:var(--ui-ink2,#59675f);font-size:10px;letter-spacing:.1em;font-weight:700}
  #help-dialog .hub-head h2 {font-size:21px;line-height:1.3}
  #help-dialog .hub-body {padding:20px 24px;background:var(--ui-board,#edf0e9)}
  #help-dialog .hub-note {margin:0 0 16px;color:var(--ui-ink2,#59675f);line-height:1.6;max-width:80ch}
  #help-dialog label {font-size:12px;font-weight:650;color:var(--ui-ink2,#59675f)}
  #help-dialog select {min-height:42px;font-size:14px;background:var(--ui-card,#fafbf8);color:var(--ui-ink,#25312e);border-color:var(--ui-line,#ccd3cc)}
  #help-dialog .help-content {background:var(--ui-card,#fafbf8);color:var(--ui-ink,#25312e);border:1px solid var(--ui-line,#ccd3cc);padding:22px 24px;margin:18px 0;border-radius:10px;overflow-wrap:anywhere}
  #help-dialog .help-content h3 {font-size:20px;line-height:1.35;margin:0 0 18px;color:var(--ui-ink,#25312e)}
  #help-dialog .help-content h4 {font-size:15px;margin:22px 0 10px}
  #help-dialog .help-content :is(p,li) {font-size:14px;line-height:1.75;white-space:normal;max-width:90ch}
  #help-dialog .help-content p {margin:14px 0}
  #help-dialog .help-content :is(ul,ol) {padding-left:24px;margin:14px 0}
  #help-dialog .help-content li {padding-left:4px;margin:8px 0}
  #help-dialog .help-content li::marker {color:var(--ui-petrol,#3d6057);font-weight:650}
  #help-dialog .help-content strong {font-weight:650}
  #help-dialog .help-content>:last-child {margin-bottom:0}
  #help-dialog .help-actions {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-top:4px}
  #help-dialog #help-status {color:var(--ui-red,#b83d43);margin:0;line-height:1.5;flex:1 1 220px}
  #help-dialog #help-status:empty {display:none}
  #help-dialog button {background:var(--ui-card,#fafbf8);color:var(--ui-ink,#25312e);border-color:var(--ui-line,#ccd3cc);border-radius:8px;padding:9px 13px;min-height:38px}
  #help-dialog #help-ask {color:var(--ui-petrol,#3d6057);margin-left:auto}
  #help-dialog button:hover {background:var(--ui-soft,#e1e6e1);border-color:var(--ui-petrol,#3d6057)}
  #help-dialog button:active {transform:translateY(1px)}
  #help-dialog :is(button,select):focus-visible {outline:2px solid var(--ui-accent,#f2a900);outline-offset:3px}
  @media(max-width:600px) {
    #help-dialog {width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}
    #help-dialog :is(.hub-head,.hub-body) {padding:16px}
    #help-dialog .hub-head {gap:12px}
    #help-dialog .hub-head h2 {font-size:18px}
    #help-dialog .help-content {padding:18px 16px}
    #help-dialog #help-ask {width:100%;margin:0}
  }
}

.hub-body label:not(.file-upload){display:block;margin:12px 0}.hub-body label>input,.hub-body label>select{margin-top:5px}
.ai-consent{max-width:720px;margin:0 auto;background:#fff;border:1px solid #dae1e9;border-radius:14px;padding:24px}.ai-consent h3{font-size:22px;margin:10px 0 18px}.ai-consent p{line-height:1.65}.ai-test-badge{display:inline-block;border-radius:999px;padding:4px 9px;background:#fff3cd;color:#715300;font-size:11px;font-weight:800;letter-spacing:.08em}.ai-consent-check{display:flex!important;align-items:flex-start;gap:10px;margin:22px 0!important;padding:14px;border:1px solid #b9c6d6;border-radius:10px;background:#f7f9fc;font-weight:650}.ai-consent-check input{width:auto!important;margin:3px 0 0!important;flex:none}.ai-consent>button.primary{min-width:150px}.ai-consent .hub-status{font-weight:650}

/* Document navigation stays compact on desktop and stacks on phones. */
.files-tools{align-items:flex-end}.files-tools label{flex:1 1 220px;min-width:0;max-width:100%;display:flex;flex-direction:column;gap:6px}.files-tools select{display:block;width:100%;min-width:0;max-width:100%;box-sizing:border-box}.files-location{overflow-wrap:anywhere}
@media(max-width:600px){.files-tools label{flex-basis:100%}}

:is(#files-page,#files-page-project) .hub-note,:is(#files-page,#files-page-project) .file-card small{color:var(--ink2)}
:is(#files-page,#files-page-project) :is(select,button,.file-upload){border:1px solid var(--line);background:var(--board);color:var(--ink);border-radius:9px;padding:9px 12px;font:inherit}
:is(#files-page,#files-page-project) :is(button,.file-upload){cursor:pointer}
:is(#files-page,#files-page-project) .file-upload{display:inline-block}
:is(#files-page,#files-page-project) :is(select,button):focus-visible{outline:2px solid var(--hivis);outline-offset:2px}
:is(#files-page,#files-page-project) .file-card{background:var(--card);border-color:var(--line)}
:is(#files-page,#files-page-project) .file-card a{color:var(--ink);text-decoration:underline}
.files-tools :disabled{opacity:.6;cursor:wait}

.files-project{flex:1 1 220px;min-width:0;display:flex;flex-direction:column;gap:6px}.files-project strong{overflow-wrap:anywhere;padding:9px 0}

/* The document dialog uses the same palette as the planner and Min dag.
   Keep its native dialog, controls and file handlers intact. */
@media screen {
  #files-dialog {
    --files-card:var(--ui-card,#fff);--files-board:var(--ui-board,#f7f7f6);
    --files-ground:var(--ui-ground,#eef0f1);--files-soft:var(--ui-soft,#eff0ef);
    --files-line:var(--ui-line,#d2d6d9);--files-ink:var(--ui-ink,#232c35);
    --files-muted:var(--ui-ink2,#5f6872);--files-petrol:var(--ui-petrol,#315d78);
    --files-accent:var(--ui-accent,#f2a900);--files-danger:var(--ui-red,#b83d43);
    width:min(1040px,calc(100vw - 32px));max-height:calc(100dvh - 40px);
    box-sizing:border-box;border:1px solid var(--files-line);border-radius:16px;
    background:var(--files-card);color:var(--files-ink);color-scheme:var(--ui-color-scheme,light);
    font:13px/1.5 Inter,"Segoe UI",-apple-system,BlinkMacSystemFont,Arial,sans-serif;
    box-shadow:0 24px 70px #0006;
  }
  #files-dialog::backdrop {background:#0e192d99}
  #files-dialog *,#files-dialog *::before,#files-dialog *::after {box-sizing:border-box}
  #files-dialog .hub-head {
    padding:16px 21px 14px;gap:16px;border-bottom:1px solid var(--files-line);
    background:var(--files-card);color:var(--files-ink);align-items:flex-start;
  }
  #files-dialog .hub-head small {font-size:10px;font-weight:750;letter-spacing:.14em;color:var(--files-accent)}
  #files-dialog .hub-head h2 {margin:3px 0 0;font:700 22px/1.25 var(--disp,Inter,"Segoe UI",sans-serif);letter-spacing:0;color:var(--files-ink)}
  #files-dialog .hub-head [data-close] {flex:none;min-height:32px;padding:6px 10px;font-size:11px;background:var(--files-card);color:var(--files-muted)}
  #files-dialog .hub-body {padding:18px 21px 21px;background:var(--files-ground)}
  #files-dialog .hub-note {color:var(--files-muted);font-size:11.5px;line-height:1.65;margin:0 0 12px}
  #files-dialog .files-tools {
    padding:12px;margin:0 0 10px;gap:10px;align-items:flex-end;
    border:1px solid var(--files-line);border-radius:9px;background:var(--files-card);
  }
  #files-dialog .files-tools label {margin:0;flex:1 1 200px;min-width:0;font-size:11px;font-weight:600;color:var(--files-muted)}
  #files-dialog .files-tools select {margin:0}
  #files-dialog :is(button,.file-upload) {
    min-height:34px;padding:7px 10px;border:1px solid var(--files-line);border-radius:6px;
    background:var(--files-card);color:var(--files-ink);
    font-family:inherit;font-size:12px;font-weight:550;line-height:1.4;
    transition:background-color .12s,border-color .12s,box-shadow .12s;
  }
  #files-dialog :is(button,.file-upload):hover:not(:disabled) {background:var(--files-soft);border-color:var(--files-muted)}
  #files-dialog :is(button,.file-upload):active:not(:disabled) {box-shadow:inset 0 1px 3px #15233825}
  #files-dialog :is(button,input,select,textarea,summary,a):focus-visible {outline:2px solid var(--files-accent);outline-offset:2px}
  #files-dialog :is(button,input,select):disabled {opacity:.55;cursor:wait}
  #files-dialog :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea) {
    min-height:34px;padding:7px 10px;border:1px solid var(--files-line);border-radius:6px;
    background:var(--files-board);color:var(--files-ink);font:inherit;font-size:12px;
  }
  #files-dialog .hub-body>.file-upload {
    display:inline-flex;align-items:center;gap:6px;margin:2px 0 12px;
    background:var(--files-accent);border-color:var(--files-accent);color:#201806;font-weight:650;
  }
  #files-dialog .hub-body>.file-upload:hover {background:var(--files-accent);border-color:var(--ui-accent-border);box-shadow:0 1px 3px #15233820}
  #files-dialog .file-upload:focus-within {outline:2px solid var(--files-accent);outline-offset:2px}
  #files-dialog .hub-body>label:has(#files-share-upload) {
    display:flex;align-items:flex-start;gap:8px;margin:0 0 14px;padding:10px 12px;
    background:var(--files-card);border:1px solid var(--files-line);border-radius:7px;font-size:11.5px;
  }
  #files-dialog input[type=checkbox] {width:14px;height:14px;flex:none;padding:0;margin:2px 0 0;accent-color:var(--files-petrol)}
  #files-dialog .hub-status {margin:0 0 12px;padding:9px 12px;border:1px solid var(--files-line);border-left:3px solid var(--files-accent);border-radius:6px;background:var(--files-card);font-size:12px}
  #files-dialog .hub-status:empty {display:none}
  #files-dialog .file-grid {grid-template-columns:repeat(auto-fill,minmax(min(270px,100%),1fr));gap:12px;align-items:start}
  #files-dialog .file-card {min-width:0;padding:14px;border:1px solid var(--files-line);border-radius:9px;background:var(--files-card);box-shadow:0 1px 2px #15233808}
  #files-dialog .file-card h3 {margin:10px 0 6px;color:var(--files-ink);font-size:13px;font-weight:650;letter-spacing:0;line-height:1.5}
  #files-dialog .file-card>h3:first-child {margin-top:0}
  #files-dialog .file-card img {height:140px;border:1px solid var(--files-line);border-radius:6px;background:var(--files-board)}
  #files-dialog .file-card :is(p,small) {font-size:11px;color:var(--files-muted);line-height:1.6}
  #files-dialog .file-card small {margin:9px 0 10px}
  #files-dialog .file-card a {color:var(--files-petrol);font-size:12px;text-underline-offset:3px;line-height:1.6}
  #files-dialog .file-card>a {display:inline-flex;align-items:center;min-height:32px;padding:6px 10px;margin:2px 0 8px;border:1px solid var(--files-line);border-radius:6px;background:var(--files-board);color:var(--files-ink);font-size:11px;font-weight:550;text-decoration:none}
  #files-dialog .file-card>a:hover {border-color:var(--files-muted);text-decoration:underline}
  #files-dialog .file-card details {margin:5px 0 12px;font-size:11px;color:var(--files-muted)}
  #files-dialog summary {cursor:pointer}
  #files-dialog .file-card .hub-tools {gap:6px;margin:12px 0 0;padding-top:10px;border-top:1px solid var(--files-line)}
  #files-dialog .file-card :is(button,.file-upload) {min-height:30px;padding:5px 8px;font-size:11px;background:var(--files-board)}
  #files-dialog .file-card .file-upload {flex:0 1 auto;min-width:0;margin:0;display:inline-flex;align-items:center}
  #files-dialog [data-trash] {color:var(--files-danger)}
  #files-dialog .file-grid>p {grid-column:1/-1;margin:0;padding:28px 16px;text-align:center;border:1px dashed var(--files-line);border-radius:9px;background:var(--files-card);color:var(--files-muted);font-size:12px}
}
@media screen and (max-width:600px) {
  #files-dialog {width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:12px}
  #files-dialog .hub-head {padding:14px 16px}
  #files-dialog .hub-head h2 {font-size:20px}
  #files-dialog .hub-body {padding:14px}
  #files-dialog .files-tools label {flex-basis:100%}
  #files-dialog .file-grid {grid-template-columns:1fr}
  #files-dialog :is(button,.file-upload,select) {min-height:38px}
}
@media (prefers-reduced-motion:reduce) {#files-dialog :is(button,.file-upload) {transition:none}}
