.app-shell { align-items: flex-start; }
.sidebar { flex: 0 0 190px; min-height: calc(100vh - 68px); }
.main-content { flex: 1 1 0; min-width: 0; max-width: none; padding: 28px 20px 70px; }
#workflow.is-visible { grid-template-columns: 190px minmax(0,1fr); gap: 12px; }
.assistant-panel { flex: 0 0 330px; position: sticky; top: 80px; height: calc(100dvh - 92px); overflow-y: auto; background: white; border: 1px solid var(--line); border-radius: 10px; padding: 16px; margin: 12px 12px 12px 0; overflow-wrap: anywhere; }
.assistant-panel h3 { margin: 0 0 8px; }
.assistant-panel p { line-height: 1.45; }
.assistant-panel textarea { font: inherit; resize: vertical; border: 1px solid var(--line); border-radius: 6px; padding: 8px; }
.assistant-panel .assistant-events { max-height: 160px; overflow: auto; font-size: 12px; padding-left: 20px; }
.assistant-panel .assistant-events li { margin: 6px 0; }
.assistant-panel .assistant-events [data-state="error"] { color: #a02d2d; }
.assistant-panel .assistant-caption { font-size: 12px; color: var(--muted); }
.assistant-panel .assistant-help { margin-bottom: 12px; }
.assistant-panel summary { cursor: pointer; }
.assistant-panel #assistant-project-title { border-left: 3px solid #476889; padding-left: 9px; font-weight: 600; }
.assistant-example { display: block; width: 100%; text-align: left; font: inherit; font-size: 12px; background: #f5f8fb; border: 1px solid var(--line); border-radius: 6px; padding: 8px; margin: 6px 0; cursor: pointer; }
.assistant-example:hover { background: #eaf1f7; }
.assistant-message { border-radius: 7px; background: #f4f7fa; padding: 10px; margin: 8px 0; }
.assistant-message[data-role="user"] { background: #edf4fd; }
.assistant-context-message { display: block; margin: 8px 0; font-size: 12px; }
.assistant-proposal { border: 1px solid #96acc1; border-radius: 8px; padding: 12px; margin: 12px 0; background: #f9fbfd; }
.assistant-proposal h4 { margin: 0 0 8px; }
.assistant-proposal h5 { font-size: 14px; margin: 14px 0 8px; }
.assistant-proposal .assistant-change { padding-top: 8px; border-top: 1px solid var(--line); margin-top: 8px; }
.assistant-change dl { margin: 6px 0 8px; }
.assistant-change dt { font-size: 11px; color: var(--muted); margin-top: 8px; }
.assistant-change dd { margin: 2px 0 6px; padding: 6px 8px; border-radius: 5px; white-space: pre-wrap; background: #eef1f4; font-size: 13px; }
.assistant-change dd:last-child { background: #e8f3ec; }
.assistant-proposal-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.assistant-proposal-actions .button { white-space: normal; }
.assistant-proposal-status { font-size: 13px; }
.assistant-proposal[data-status="applied"] { border-color: #609677; }
.assistant-proposal[data-status="stale"],.assistant-proposal[data-status="partial"] { border-color: #b0833e; }
.assistant-panel #assistant-refresh-notice:not(:empty) { border-radius: 7px; padding: 10px; margin-top: 10px; background: #fff5dd; }
.assistant-mobile-toggle { display: none; }
.vsoim-document-card { min-width: 0; width: 100%; border: 1px solid var(--line); border-radius: 8px; padding: 12px; margin: 12px 0; display: flex; flex-direction: column; align-items: stretch; gap: 9px; }
.vsoim-document-card legend { font-weight: 600; overflow-wrap: anywhere; max-width: 100%; }
.vsoim-document-card textarea { display: block; width: 100%; resize: vertical; margin-top: 5px; }
.vsoim-document-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.vsoim-signer { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 8px 0; }
.vsoim-signer input[data-vsoim-signer-name] { flex: 1 1 160px; min-width: 0; padding: 7px; }
.vsoim-document-card button { align-self: flex-start; }
.vsoim-document-card select { max-width: 100%; }
.project-stage { background: #fff; border: 1px solid var(--line); border-radius: 9px; padding: 16px; }
.project-stage h3 { margin-top: 0; }
.stage-part { border-top: 1px solid var(--line); padding-top: 12px; margin-top: 12px; }
.stage-dialog { border: 1px solid var(--line); border-radius: 10px; width: min(680px,94vw); max-height: 88dvh; overflow: auto; padding: 24px; }
.stage-dialog::backdrop { background: #15233466; }
.stage-dialog label { display: block; margin: 10px 0; }
.stage-dialog input,.stage-dialog textarea { display: block; width: 100%; padding: 8px; border: 1px solid var(--line); border-radius: 6px; font: inherit; }
.block-completion { border-top: 1px solid var(--line); padding-top: 12px; margin-top: 14px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.block-completion p { flex-basis: 100%; margin: 3px 0; color: var(--muted); }
.sidebar { position: sticky; top: 68px; align-self: flex-start; height: calc(100dvh - 68px); min-height: 0; overflow-y: auto; }
.workspace-mobile-toggle { display: none; }
.rating-stars { display: inline-flex; gap: 2px; }
.project-docs .rating-star,.rating-star { font-size: 24px; border: 0; background: transparent; color: #7a8490; cursor: pointer; padding: 2px; grid-column: auto; grid-row: auto; }
.project-docs .rating-star.is-selected,.rating-star.is-selected { color: #946200; }
.project-docs .block-completion { grid-column: 1/-1; }
.project-docs .block-completion button { grid-column: auto; grid-row: auto; }
@media (min-width: 951px) and (max-width: 1250px) { .sidebar { display: flex; flex-basis: 170px; padding-left: 8px; padding-right: 8px; } #workflow.is-visible { display: block; } #workflow>.projects-panel { position: static; } }
@media (max-width: 950px) {
  .workspace-mobile-toggle { display: block; position: fixed; bottom: 14px; left: 12px; z-index: 16; }
  .sidebar.is-open { display: flex; position: fixed; top: 68px; left: 0; width: min(260px,90vw); height: calc(100dvh - 130px); z-index: 15; box-shadow: 0 8px 32px #0003; }
}
body:has(#auth-screen:not([hidden])) .workspace-mobile-toggle { display: none; }
body:has(#auth-screen:not([hidden])) .assistant-panel, body:has(#auth-screen:not([hidden])) .assistant-mobile-toggle { display: none; }
@media (max-width: 1250px) { .sidebar { display: none; } }
@media (max-width: 950px) {
  .assistant-mobile-toggle { display: block; position: fixed; right: 12px; bottom: 14px; z-index: 16; }
  .assistant-panel { display: none; position: fixed; right: 0; top: 70px; width: min(350px,95vw); height: calc(100dvh - 140px); z-index: 15; box-shadow: 0 8px 32px #0003; }
  .assistant-panel.is-open { display: block; }
}
@media (max-width: 850px) { #workflow.is-visible { display: block; } }
.public-consultant { margin-top:24px;padding:20px;border:1px solid var(--line);border-radius:16px;background:#ffffff;box-shadow:0 8px 32px #17283b0c;color:#24354a; }
.public-consultant h2 { font-size:22px;line-height:1.25; }
.public-consultant textarea { display:block;width:100%;padding:10px;margin:8px 0;border:1px solid #bdc9d5;border-radius:8px;font:inherit; }
#public-assistant-messages { max-height:230px;overflow:auto;white-space:pre-wrap; }
.assistant-voice-controls { display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0; }
.assistant-voice-controls small,.assistant-voice-controls p { flex-basis:100%;margin:0; }
.assistant-voice-controls label { display:flex;align-items:center;gap:4px;font-size:14px; }
.assistant-mobile-close { display:none; }
#fieldwork-panel form { display:grid;gap:10px;margin:16px 0; }
#fieldwork-panel form label { display:block; }
#fieldwork-panel form input:not([type=checkbox]),#fieldwork-panel form textarea,#fieldwork-panel form select { display:block;width:100%;padding:9px;border:1px solid var(--line);border-radius:7px;font:inherit; }
#fieldwork-panel details { margin:16px 0; }
#fieldwork-panel summary { font-weight:600;cursor:pointer; }
#registry-files { max-height:340px;overflow:auto; }
#registry-entries,#field-note-list { overflow-wrap:anywhere; }
@media (max-width:950px) {
  .assistant-panel.is-open { inset:0;width:100%;height:100dvh;max-width:none;z-index:1000;padding:16px 16px max(18px,env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;background:#fff; }
  .assistant-mobile-close { display:block;position:sticky;top:0;background:#fff;z-index:2;margin-bottom:12px; }
  .assistant-panel textarea,.public-consultant textarea { font-size:16px;min-height:88px; }
  .assistant-panel .button,.public-consultant .button { min-height:44px; }
  .assistant-panel #assistant-messages { max-height:none!important;min-height:25dvh; }
  .assistant-panel #assistant-form { position:sticky;bottom:0;padding:10px 0;background:#fff;z-index:1; }
  .public-consultant { padding:16px;margin-top:20px; }
}
