* { box-sizing: border-box; }
body { font: 14px/1.5 -apple-system, Segoe UI, Roboto, sans-serif; margin: 0; background: #f4f5f7; color: #172b4d; }
header.zw-header { display: flex; align-items: center; justify-content: space-between; padding: 12px 24px; background: #0052cc; color: #fff; }
header.zw-header a { color: #fff; text-decoration: none; font-weight: 600; margin-right: 16px; }
header.zw-header nav { display: flex; align-items: center; }
main { max-width: 900px; margin: 24px auto; padding: 0 16px; }
.zw-card { background: #fff; border-radius: 8px; padding: 20px; margin-bottom: 16px; box-shadow: 0 1px 2px rgba(0,0,0,0.1); }
input, select, textarea { width: 100%; padding: 8px 10px; margin-top: 4px; border: 1px solid #dfe1e6; border-radius: 6px; font: inherit; }
label { display: block; margin-bottom: 14px; font-weight: 600; }
button { padding: 8px 16px; border: 0; border-radius: 6px; background: #0052cc; color: #fff; font-weight: 600; cursor: pointer; }
button:hover { background: #0747a6; }
button.zw-link-button { background: transparent; color: #6b778c; font-weight: 400; padding: 4px 8px; }
.zw-required { color: #de350b; }
.zw-error { color: #de350b; }
.zw-status { margin: 10px 0; color: #5e6c84; }
.zw-issue-card { border: 1px solid #dfe1e6; border-radius: 8px; padding: 12px 14px; margin-bottom: 10px; background: #fafbfc; }
.zw-issue-title { font-weight: 600; }
.zw-issue-meta { color: #6b778c; font-size: 12px; margin-top: 2px; }
.zw-issue-details { margin-top: 10px; padding-top: 10px; border-top: 1px solid #dfe1e6; }
.zw-comment { background: #f4f5f7; border-radius: 6px; padding: 8px 10px; margin: 6px 0; }
.zw-comment pre { white-space: pre-wrap; margin: 4px 0 0; font: inherit; }
.zw-login-overlay { position: fixed; inset: 0; background: rgba(9,30,66,0.6); display: flex; align-items: center; justify-content: center; z-index: 100; }
.zw-login-card { background: #fff; border-radius: 8px; padding: 24px; width: 340px; }
.zw-user-badge { font-weight: 600; margin-right: 8px; }
.zw-empty { color: #6b778c; }
