@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap'); :root{--color-bg:#f6f6f6;--color-surface:#efefef;--color-surface-raised:#ffffff;--color-overlay:rgba(0, 0, 0, 0.5);--color-border:rgba(0, 0, 0, 0.12);--color-border-subtle:rgba(0, 0, 0, 0.08);--color-text:rgba(0, 0, 0, 0.87);--color-text-secondary:rgba(0, 0, 0, 0.54);--color-text-body:rgba(0, 0, 0, 0.74);--color-text-muted:rgba(0, 0, 0, 0.38);--color-text-disabled:rgba(0, 0, 0, 0.26);--color-primary:#1d70a1;--color-primary-strong:#15577e;--color-primary-hover:rgba(29, 112, 161, 0.08);--color-primary-subtle:rgba(29, 112, 161, 0.04);--color-primary-text:#ffffff;--color-secondary:#7b4fc9;--color-secondary-strong:#9334d6;--color-secondary-hover:rgba(180, 78, 255, 0.08);--color-secondary-subtle:rgba(180, 78, 255, 0.04);--color-secondary-text:#ffffff;--color-focus:#0b5cab;--color-white:#ffffff;--color-white-12:rgba(255, 255, 255, 0.12);--color-white-15:rgba(255, 255, 255, 0.15);--color-white-42:rgba(255, 255, 255, 0.42);--color-black-12:rgba(0, 0, 0, 0.12);--color-black-06:rgba(0, 0, 0, 0.06);--color-status-validated-bg:#2e7d32;--color-status-validated-text:#ffffff;--color-status-draft-bg:#1d70a1;--color-status-draft-text:#ffffff;--color-status-pending-bg:#757575;--color-status-pending-text:#ffffff;--color-status-rejected-bg:#c62828;--color-status-rejected-text:#ffffff;--color-status-edited-bg:#e65100;--color-status-edited-text:#ffffff;--font-family:'Poppins', sans-serif;--font-family-heading:Timeless, Georgia, serif;--text-h1-size:34px;--text-h2-size:24px;--text-h3-size:20px;--text-body1-size:16px;--text-body2-size:14px;--text-caption-size:12px;--text-button-size:14px;--text-h1-lh:1.235;--text-h3-lh:1.6;--text-body1-lh:1.5;--text-body2-lh:1.43;--text-subtitle2-lh:1.57;--text-caption-lh:1.66;--text-button-lh:24px;--text-h1-ls:0.25px;--text-h3-ls:0.15px;--text-body1-ls:0.15px;--text-body2-ls:0.15px;--text-subtitle2-ls:0.1px;--text-caption-ls:0.4px;--text-button-ls:0.4px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-xs:4px;--radius-sm:8px;--radius-md:15px;--radius-pill:20px;--radius-circle:9999px;--icon-size-sm:16px;--icon-size-md:20px;--icon-size-lg:24px;--icon-size-xl:32px;--shadow-1:0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14),
    0px 1px 3px 0px rgba(0, 0, 0, 0.12);--shadow-2:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14),
    0px 1px 5px 0px rgba(0, 0, 0, 0.12);--sidebar-width:260px;--topbar-height:54px;--report-plan-column-width:20%;--report-editor-column-width:60%;--report-assistant-column-width:20%;--report-collapsed-column-width:max-content;--report-collapsed-column-min-width:44px;--transition:all 0.15s ease;--transition-fast:all 0.1s ease}:root[data-theme='dark']{color-scheme:dark;--color-bg:#101b22;--color-surface:#172932;--color-surface-raised:#1e333d;--color-overlay:rgba(0, 0, 0, 0.72);--color-border:#6f8792;--color-border-subtle:#435b66;--color-text:#f4f8fa;--color-text-secondary:#d1e0e6;--color-text-body:#e3edf1;--color-text-muted:#b8cbd3;--color-text-disabled:#8ba2ac;--color-primary:#72c7f0;--color-primary-strong:#9bdbf7;--color-primary-hover:rgba(114, 199, 240, 0.18);--color-primary-subtle:rgba(114, 199, 240, 0.12);--color-primary-text:#062033;--color-secondary:#cf8aff;--color-secondary-strong:#e4b8ff;--color-secondary-hover:rgba(207, 138, 255, 0.18);--color-secondary-subtle:rgba(207, 138, 255, 0.12);--color-secondary-text:#190826;--color-focus:#9bdbf7;--color-white:#f4f8fa;--color-white-12:rgba(244, 248, 250, 0.16);--color-white-15:rgba(244, 248, 250, 0.2);--color-white-42:rgba(244, 248, 250, 0.58);--color-black-12:rgba(0, 0, 0, 0.32);--color-black-06:rgba(0, 0, 0, 0.2);--color-status-validated-bg:#72c47a;--color-status-validated-text:#071f0b;--color-status-draft-bg:#72c7f0;--color-status-draft-text:#062033;--color-status-pending-bg:#c0ccd1;--color-status-pending-text:#16232a;--color-status-rejected-bg:#ffb4ab;--color-status-rejected-text:#690005;--color-status-edited-bg:#ffb77a;--color-status-edited-text:#432100;--shadow-1:0 2px 6px rgba(0, 0, 0, 0.45);--shadow-2:0 8px 20px rgba(0, 0, 0, 0.5);--background-paper:var(--color-surface-raised);--color-neutral-900:var(--color-text)}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}:root[data-theme='dark'] .ali-document-editor,:root[data-theme='dark'] .ali-document-page,:root[data-theme='dark'] .app-report-template-viewer,:root[data-theme='dark'] .app-project-detail__panel,:root[data-theme='dark'] .app-project-detail__card{background-color:var(--color-surface-raised);color:var(--color-text)}:root[data-theme='dark'] .app-topbar{border-bottom-color:var(--color-border)}:root[data-theme='dark']{--ali-figma-text:var(--color-white)}:root[data-theme='dark'] input,:root[data-theme='dark'] textarea,:root[data-theme='dark'] select{background-color:var(--color-surface-raised);color:var(--color-text);border-color:var(--color-border)}:root[data-theme='dark'] .app-topbar__action-btn{color:var(--color-text)}:root[data-theme='dark'] .app-topbar__action-btn--outlined{background:var(--color-surface-raised);border-color:var(--color-primary);color:var(--color-primary)}:root[data-theme='dark'] .app-rich-editor__canvas,:root[data-theme='dark'] .app-rich-editor__paper,:root[data-theme='dark'] .app-rich-editor__toolbar,:root[data-theme='dark'] .app-rich-editor__color-panel,:root[data-theme='dark'] .app-rich-editor__comment-card,:root[data-theme='dark'] .app-rich-editor__comment-input-popup,:root[data-theme='dark'] .app-rich-editor__link-popup,:root[data-theme='dark'] .app-rich-editor__prosemirror,:root[data-theme='dark'] .ali-document-editor__toolbar,:root[data-theme='dark'] .ali-document-editor__content,:root[data-theme='dark'] .ali-document-page,:root[data-theme='dark'] .app-project-detail__report-page,:root[data-theme='dark'] .app-project-detail__report-layout,:root[data-theme='dark'] .app-project-detail__report-header{background-color:var(--color-surface-raised);color:var(--color-text);border-color:var(--color-border)}:root[data-theme='dark'] .app-rich-editor__prosemirror tr:nth-child(even) td,:root[data-theme='dark'] .app-rich-editor__stream-preview .sp-table tr:nth-child(even) td,:root[data-theme='dark'] .app-project-detail__data-table tbody tr:nth-child(even),:root[data-theme='dark'] .app-project-detail__summary-table tbody tr:nth-child(even){background:var(--color-surface)}:root[data-theme='dark'] .app-rich-editor__prosemirror tr:nth-child(odd) td,:root[data-theme='dark'] .app-rich-editor__stream-preview .sp-table tr:nth-child(odd) td,:root[data-theme='dark'] .app-project-detail__data-table tbody tr:nth-child(odd),:root[data-theme='dark'] .app-project-detail__summary-table tbody tr:nth-child(odd){background:var(--color-surface-raised)}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}button>app-icon,button>.app-icon,button>svg{align-self:center;vertical-align:middle}button>app-icon{display:inline-flex;align-items:center;justify-content:center;line-height:1}body{font-family:var(--font-family);font-size:var(--text-body2-size);font-weight:400;line-height:var(--text-body2-lh);letter-spacing:var(--text-body2-ls);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}.text-h1{font-size:var(--text-h1-size);font-weight:700;line-height:var(--text-h1-lh);letter-spacing:var(--text-h1-ls);color:var(--color-text)}.text-h3{font-size:var(--text-h3-size);font-weight:500;line-height:var(--text-h3-lh);letter-spacing:var(--text-h3-ls);color:var(--color-text)}.text-body1{font-size:var(--text-body1-size);font-weight:400;line-height:var(--text-body1-lh);letter-spacing:var(--text-body1-ls)}.text-body2{font-size:var(--text-body2-size);font-weight:400;line-height:var(--text-body2-lh);letter-spacing:var(--text-body2-ls)}.text-subtitle2{font-size:var(--text-body2-size);font-weight:500;line-height:var(--text-subtitle2-lh);letter-spacing:var(--text-subtitle2-ls)}.text-caption{font-size:var(--text-caption-size);font-weight:400;line-height:var(--text-caption-lh);letter-spacing:var(--text-caption-ls)}.text-muted{color:var(--color-text-muted)}.text-secondary{color:var(--color-text-secondary)}.text-primary{color:var(--color-primary)}.app-shell{display:flex;height:100vh;overflow:hidden;background-color:var(--color-bg)}.app-main{flex:1;display:flex;flex-direction:column;overflow:hidden}.app-content{flex:1;overflow-y:auto;padding:var(--space-2) var(--space-2)}.btn{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-family);font-size:var(--text-button-size);font-weight:500;line-height:var(--text-button-lh);letter-spacing:var(--text-button-ls);text-transform:uppercase;border:none;border-radius:var(--radius-xs);cursor:pointer;transition:var(--transition);white-space:nowrap;text-decoration:none}.btn-primary{background-color:var(--color-primary);color:var(--color-primary-text);padding:8px 22px;box-shadow:var(--shadow-2)}.btn-primary:hover{background-color:var(--color-primary-strong);box-shadow:var(--shadow-2)}.btn-outlined{background-color:transparent;color:var(--color-primary);border:1px solid var(--color-primary);padding:8px 22px}.btn-outlined:hover{background-color:var(--color-primary-subtle)}.btn-text{background-color:transparent;color:var(--color-primary);padding:6px 8px}.btn-text:hover{background-color:var(--color-primary-subtle)}.btn-sm{padding:4px 10px;font-size:13px}.btn-lg{padding:8px 22px;font-size:15px;letter-spacing:0.46px}.btn:disabled,.btn[disabled]{opacity:0.38;cursor:not-allowed;pointer-events:none}.badge{display:inline-flex;align-items:center;padding:4px 6.5px;border-radius:var(--radius-pill);font-size:var(--text-caption-size);font-weight:500;letter-spacing:0.14px;line-height:12px;white-space:nowrap}.badge-primary{background-color:var(--color-primary);color:var(--color-white)}.badge-validated{background-color:var(--color-status-validated-bg);color:var(--color-status-validated-text)}.badge-draft{background-color:var(--color-status-draft-bg);color:var(--color-status-draft-text)}.badge-pending{background-color:var(--color-status-pending-bg);color:var(--color-status-pending-text)}.badge-rejected{background-color:var(--color-status-rejected-bg);color:var(--color-status-rejected-text)}.badge-edited{background-color:var(--color-status-edited-bg);color:var(--color-status-edited-text)}.form-label{display:block;font-size:var(--text-caption-size);font-weight:500;color:var(--color-text-secondary);margin-bottom:var(--space-1)}.form-input,.form-select,.form-textarea{width:100%;background-color:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px;font-family:var(--font-family);font-size:var(--text-body1-size);font-weight:400;color:var(--color-text);line-height:var(--text-body1-lh);letter-spacing:var(--text-body1-ls);transition:var(--transition);outline:none}.form-input::-moz-placeholder,.form-textarea::-moz-placeholder{color:var(--color-text-muted);opacity:0.6}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-muted);opacity:0.6}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary)}.form-textarea{resize:vertical;min-height:96px}.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.form-error{font-size:var(--text-caption-size);color:var(--color-status-rejected-bg);margin-top:var(--space-1)}.form-checkbox{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);cursor:pointer;border-radius:var(--radius-xs);transition:var(--transition)}.form-checkbox:hover{background-color:var(--color-white-12)}.form-checkbox input[type='checkbox']{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0}.card{background-color:var(--color-surface);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-1)}.divider{height:1px;background-color:var(--color-white-12);width:100%}.spinner{width:24px;height:24px;border:2px solid var(--color-white-15);border-top-color:var(--color-primary);border-radius:50%;animation:spin 0.7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.progress-bar{position:relative;height:4px;border-radius:var(--radius-sm);background-color:var(--color-primary);opacity:0.6}.progress-bar__fill{position:absolute;top:0;left:0;height:100%;background-color:var(--color-primary);opacity:1;border-radius:var(--radius-sm);transition:width 0.3s ease}.list-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);transition:var(--transition);cursor:pointer}.list-item:hover{background-color:var(--color-white-12)}.list-item__icon{flex-shrink:0;width:24px;height:24px;color:var(--color-text-secondary)}.list-item__content{flex:1;min-width:0}.list-item__title{font-size:var(--text-body2-size);font-weight:400;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-item__subtitle{font-size:var(--text-caption-size);color:var(--color-text-secondary);margin-top:2px}.page-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) 0}.page-title{font-size:var(--text-h1-size);font-weight:700;line-height:var(--text-h1-lh);letter-spacing:var(--text-h1-ls);color:var(--color-text)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-12) var(--space-6);text-align:center;color:var(--color-text-muted)}.modal-overlay{position:fixed;inset:0;background-color:var(--color-overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background-color:var(--color-surface);border-radius:var(--radius-xs);box-shadow:var(--shadow-2);width:751px;max-width:calc(100vw - var(--space-8));max-height:calc(100vh - var(--space-8));display:flex;flex-direction:column;overflow:hidden}.modal__header{padding:var(--space-5) var(--space-6);flex-shrink:0}.modal__title{font-size:var(--text-h3-size);font-weight:500;color:var(--color-text);line-height:var(--text-h3-lh)}.modal__subtitle{font-size:var(--text-caption-size);color:var(--color-text-secondary);margin-top:2px}.modal__body{flex:1;overflow-y:auto;padding:0 var(--space-6) var(--space-4)}.modal__footer{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-6);flex-shrink:0}.stepper{display:flex;align-items:center;gap:0}.stepper__step{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-body2-size);font-weight:500;color:var(--color-text-muted)}.stepper__step--active{color:var(--color-text)}.stepper__step--done{color:var(--color-primary)}.stepper__circle{width:24px;height:24px;border-radius:50%;border:2px solid currentColor;display:flex;align-items:center;justify-content:center;font-size:var(--text-caption-size);font-weight:500;flex-shrink:0}.stepper__step--active .stepper__circle{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.stepper__step--done .stepper__circle{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.stepper__connector{flex:1;height:1px;background-color:var(--color-border);margin:0 var(--space-4);min-width:60px}@media (max-width: 768px){.app-shell{flex-direction:column}.app-main{min-height:0}.modal{width:100%;max-width:100%;border-radius:var(--radius-md) var(--radius-md) 0 0;max-height:90vh;margin-top:auto}}.doc-page__content ul,.doc-page__content ol,.app-rich-editor__body ul,.app-rich-editor__body ol{padding-left:1.6em;margin:4px 0}.doc-page__content ul,.app-rich-editor__body ul{list-style-type:disc}.doc-page__content ol,.app-rich-editor__body ol{list-style-type:decimal}.doc-page__content li,.app-rich-editor__body li{display:list-item;margin:2px 0}.doc-page__content ul ul,.app-rich-editor__body ul ul{list-style-type:circle;margin:0}.doc-page__content ul ul ul,.app-rich-editor__body ul ul ul{list-style-type:square}.doc-page__content ol ol,.app-rich-editor__body ol ol{list-style-type:lower-alpha;margin:0}.ProseMirror,.app-rich-editor__prosemirror{font-family:'Arial', 'Helvetica Neue', sans-serif !important;font-size:13px !important;color:var(--color-text) !important;line-height:1.65 !important;outline:none}.ProseMirror p,.app-rich-editor__prosemirror p{margin:0 0 12px !important;text-align:justify;line-height:1.65}.ProseMirror li p,.ProseMirror th p,.ProseMirror td p,.app-rich-editor__prosemirror li p,.app-rich-editor__prosemirror th p,.app-rich-editor__prosemirror td p{margin:0 !important;text-align:left}.ProseMirror ul,.ProseMirror ol,.app-rich-editor__prosemirror ul,.app-rich-editor__prosemirror ol{margin:0 0 12px !important;padding-left:28px}.ProseMirror li,.app-rich-editor__prosemirror li{margin-bottom:3px;text-align:justify}.ProseMirror h1,.ProseMirror h2,.ProseMirror h3,.app-rich-editor__prosemirror h1,.app-rich-editor__prosemirror h2,.app-rich-editor__prosemirror h3{font-weight:700;color:var(--color-text);line-height:1.25;margin-top:20px !important;margin-bottom:6px !important}.ProseMirror h1,.app-rich-editor__prosemirror h1{font-size:18px;border-bottom:1.5px solid #888;padding-bottom:4px;margin-bottom:12px !important}.ProseMirror h2,.app-rich-editor__prosemirror h2{font-size:14px;border-bottom:1px solid #ccc;padding-bottom:2px}.ProseMirror h3,.app-rich-editor__prosemirror h3{font-size:13px;font-weight:700}.ProseMirror blockquote,.app-rich-editor__prosemirror blockquote{padding:10px 14px !important;border-left:4px solid #e67e22 !important;background:#fef9f0 !important;border-radius:0 4px 4px 0;color:#7d4e0f !important;font-size:13px;margin:16px 0 20px !important;line-height:1.6}.ProseMirror table,.app-rich-editor__prosemirror table{width:100%;border-collapse:collapse;margin:18px 0 !important;font-size:12.5px;border:1px solid #999}.ProseMirror th,.ProseMirror td,.app-rich-editor__prosemirror th,.app-rich-editor__prosemirror td{border:1px solid #bbb;padding:6px 10px;text-align:left;vertical-align:top;min-width:60px}.ProseMirror th,.app-rich-editor__prosemirror th{background:#d9d9d9 !important;color:var(--color-text);font-weight:700}.ProseMirror tr:nth-child(even) td,.app-rich-editor__prosemirror tr:nth-child(even) td{background:var(--color-bg)}.ProseMirror tr:nth-child(odd) td,.app-rich-editor__prosemirror tr:nth-child(odd) td{background:var(--color-surface-raised)}.ProseMirror hr,.app-rich-editor__prosemirror hr{margin:20px 0 !important;border:0;border-top:1px solid #ccc}.ProseMirror code,.app-rich-editor__prosemirror code{padding:1px 4px;background:#f0f0f0;border-radius:3px;font-family:monospace;font-size:0.92em}