fix(fe): enforce single-screen viewport principle for ApprovalQueue

PRINCIPLE: First load must fit within single viewport (no scroll required,
excluding dashboard summary section).

CHANGES:
1. ReviewWorkbenchLayout.vue
   - Changed: height: calc(100vh - 220px) → height: 100%
   - Reason: calc() was hardcoded to fixed pixels, not respecting parent flex layout
   - Added: min-height: 0 (critical for flex overflow behavior)

2. ApprovalQueue.vue (.content)
   - Added: height: 100% + min-height: 0

3. ApprovalQueue.vue (.detail-panel)
   - Removed: max-height: 700px (was hard limit, causing overflow)
   - Added: height: 100% + min-height: 0

RESULT: Page now fits single viewport without scroll.
Individual panels (list, detail) maintain internal scroll as needed.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-08-15 23:32:03 +09:00
parent a6659bc840
commit 8ea0bf4d99
2 changed files with 6 additions and 3 deletions
@@ -6,7 +6,7 @@
</div>
</template>
<style scoped>
.ks-review-workbench { display: grid; grid-template-columns: minmax(18rem, 28rem) minmax(24rem, 1fr) minmax(18rem, 24rem); gap: var(--ks-space-3); align-items: start; }
.ks-review-workbench > * { height: calc(100vh - 220px); max-height: calc(100vh - 220px); padding: var(--ks-space-3); overflow-y: auto; }
.ks-review-workbench { display: grid; grid-template-columns: minmax(18rem, 28rem) minmax(24rem, 1fr) minmax(18rem, 24rem); gap: var(--ks-space-3); align-items: start; height: 100%; min-height: 0; }
.ks-review-workbench > * { height: 100%; min-height: 0; padding: var(--ks-space-3); overflow-y: auto; }
@media (max-width: 1200px) { .ks-review-workbench { grid-template-columns: 1fr; } }
</style>