:root{--color-bg: #f4f5f7;--color-surface: #ffffff;--color-border: #e3e5ea;--color-text: #1a1d29;--color-text-muted: #6b7280;--color-primary: #4f46e5;--color-primary-hover: #4338ca;--color-primary-soft: #eef2ff;--color-danger: #dc2626;--color-danger-soft: #fef2f2;--color-success: #16a34a;--color-warning: #b45309;--color-warning-soft: #fffbeb;--radius-sm: 6px;--radius-md: 10px;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .06);--shadow-md: 0 4px 16px rgba(16, 24, 40, .08)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:-apple-system,Segoe UI,PingFang TC,Microsoft JhengHei,system-ui,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-weight:600;color:var(--color-text)}p{line-height:1.5}code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:var(--color-primary-soft);padding:1px 5px;border-radius:4px;font-size:.9em}a{color:var(--color-primary);text-decoration:none;font-weight:500}a:hover{text-decoration:underline}.app-shell{max-width:1180px;margin:0 auto;padding:0 20px 48px}.app-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 0 16px;flex-wrap:wrap}.app-title{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:700;letter-spacing:-.01em}.app-title .logo-dot{width:10px;height:10px;border-radius:3px;background:var(--color-primary);display:inline-block;transform:rotate(45deg)}.app-nav{display:flex;gap:4px;padding:6px;margin-bottom:20px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-wrap:wrap}.app-main{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:24px;overflow-x:auto}@media (max-width: 640px){.app-shell{padding:0 12px 32px}.app-main{padding:16px}}.tab-btn{padding:8px 16px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.tab-btn:hover{background:var(--color-bg);color:var(--color-text)}.tab-btn.active{background:var(--color-primary);color:#fff}button{font-family:inherit}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:background .15s,border-color .15s,opacity .15s}.btn:hover:not(:disabled){background:var(--color-bg)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-danger{background:transparent;border-color:var(--color-danger);color:var(--color-danger)}.btn-danger:hover:not(:disabled){background:var(--color-danger-soft)}.btn-sm{padding:4px 10px;font-size:12px}.btn-link{border:none;background:none;color:var(--color-primary);padding:0;font-size:inherit;font-weight:500;cursor:pointer}.btn-link:hover{text-decoration:underline}input[type=text],input[type=date],input[type=email],input[type=password],input[type=number],input:not([type]),select,textarea{width:100%;padding:8px 10px;font-size:13px;font-family:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color .15s,box-shadow .15s}input[type=text]:focus,input[type=date]:focus,input[type=email]:focus,input[type=password]:focus,input[type=number]:focus,input:not([type]):focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}input[type=checkbox],input[type=radio]{accent-color:var(--color-primary);width:14px;height:14px;cursor:pointer}textarea{resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}label{font-size:13px}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:14px}.field-label{font-size:12px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.field-hint{color:var(--color-text-muted);font-size:13px;margin:0 0 16px}.field-error{color:var(--color-danger);font-size:12px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:18px}.card{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:18px;margin-bottom:20px;background:var(--color-surface)}.card:last-child{margin-bottom:0}.card-title{font-size:14px;font-weight:600;margin:0 0 12px}.callout{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:16px;font-size:13px}.callout-warning{border-color:#fde68a;background:var(--color-warning-soft)}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--color-border);color:var(--color-text-muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}.table td{padding:10px 12px;border-bottom:1px solid var(--color-border);vertical-align:middle}.table tbody tr:hover{background:var(--color-bg)}.table tbody tr:last-child td{border-bottom:none}.table-bordered th,.table-bordered td{border:1px solid var(--color-border)}.table-sub-row td{background:var(--color-bg)}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.02em;border:1px solid transparent}.badge[data-status=DRAFT]{color:#4b5563;background:#f3f4f6;border-color:#e5e7eb}.badge[data-status=REVIEW]{color:#92400e;background:#fef3c7;border-color:#fde68a}.badge[data-status=APPROVED]{color:#1e40af;background:#dbeafe;border-color:#bfdbfe}.badge[data-status=PUBLISHED]{color:#166534;background:#dcfce7;border-color:#bbf7d0}.badge[data-status=DEPRECATED]{color:#991b1b;background:#fee2e2;border-color:#fecaca}.muted{color:var(--color-text-muted)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.stack-sm>*+*{margin-top:8px}.avatar-chip{display:inline-flex;align-items:center;gap:8px;padding:4px 6px 4px 4px;border-radius:999px;background:var(--color-bg);border:1px solid var(--color-border);font-size:13px}.avatar-circle{width:22px;height:22px;border-radius:50%;background:var(--color-primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}.scroll-box{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:10px;max-height:220px;overflow-y:auto}.diff-columns{display:flex;gap:28px;flex-wrap:wrap;font-size:13px}.diff-columns h4{margin:0 0 6px;font-size:13px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182773;display:flex;align-items:flex-start;justify-content:center;padding:48px 16px;overflow-y:auto;z-index:100}.modal{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-md);width:100%;max-width:640px;padding:24px}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal-header h3{margin:0;font-size:16px}.modal-close{border:none;background:none;cursor:pointer;font-size:18px;line-height:1;color:var(--color-text-muted);padding:4px}.modal-close:hover{color:var(--color-text)}.sop-steps{margin:0;padding-left:20px;font-size:13px;line-height:1.7}.sop-steps li{margin-bottom:10px}.sop-steps li:last-child{margin-bottom:0}.code-block{display:block;white-space:pre-wrap;word-break:break-all;background:var(--color-bg);border:1px solid var(--color-border);padding:10px 12px;border-radius:var(--radius-sm);font-size:12px;margin:6px 0}
