:root{--color-bg: #f4f5f7;--color-surface: #ffffff;--color-border: #e2e5ea;--color-text: #1c2024;--color-text-muted: #5b6169;--color-accent: #2f6f5e;--color-accent-hover: #24594c;--color-accent-soft: #e4efec;--color-danger: #b3432b;--color-danger-soft: #fbe9e5;--color-success-soft: #e4f1e8;--color-success-text: #2c6b3f;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-heading: Georgia, "Times New Roman", serif;--radius: 10px;--shadow-card: 0 1px 2px rgba(20, 20, 20, .04), 0 1px 12px rgba(20, 20, 20, .03)}*{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);-webkit-font-smoothing:antialiased}h1,h2{font-family:var(--font-heading);font-weight:600;margin:0 0 6px;letter-spacing:-.01em}h1{font-size:1.75rem}h2{font-size:1.15rem}a{color:inherit}button{font-family:inherit}.navbar{border-bottom:1px solid var(--color-border);background:var(--color-surface)}.navbar-inner{max-width:1080px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;gap:32px}.navbar-brand{font-family:var(--font-heading);font-weight:700;font-size:1.1rem}.navbar-links{display:flex;gap:20px;flex:1}.navbar-link{color:var(--color-text-muted);text-decoration:none;font-size:.92rem;padding:6px 0;border-bottom:2px solid transparent}.navbar-link.active{color:var(--color-text);border-bottom-color:var(--color-accent)}.navbar-user{display:flex;align-items:center;gap:12px}.navbar-username{font-size:.9rem;color:var(--color-text-muted)}.page{max-width:1080px;margin:0 auto;padding:32px 24px 80px}.page-content h1{margin-bottom:4px}.page-subtitle{color:var(--color-text-muted);margin:0 0 28px}.page-header-row{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.page-header-row .page-subtitle{margin-bottom:0}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.auth-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:36px 32px;width:100%;max-width:380px}.auth-subtitle{color:var(--color-text-muted);margin:0 0 24px;font-size:.92rem}.auth-footer{margin:20px 0 0;text-align:center;font-size:.9rem;color:var(--color-text-muted)}.field{display:block;margin-bottom:16px}.field>span{display:block;font-size:.85rem;color:var(--color-text-muted);margin-bottom:6px}.field input[type=text],.field input[type=email],.field input[type=password],.field input[type=date],.field textarea,.field input[type=file]{width:100%;padding:10px 12px;border:1px solid var(--color-border);border-radius:8px;font-size:.95rem;background:var(--color-surface);color:var(--color-text)}.field input:focus,.field textarea:focus{outline:2px solid var(--color-accent);outline-offset:1px;border-color:var(--color-accent)}.field textarea{width:100%;min-height:96px;padding:10px 12px;border:1px solid var(--color-border);border-radius:8px;font-size:.95rem;background:var(--color-surface);color:var(--color-text);resize:vertical}.file-input{width:100%}.field-checkbox{display:flex;align-items:center;gap:10px}.field-checkbox input{width:16px;height:16px}.field-checkbox>span{margin:0;color:var(--color-text);font-size:.92rem}.field-row-end{display:flex;justify-content:flex-end;margin:-8px 0 16px}.field-hint{font-size:.82rem;color:var(--color-text-muted);margin:-8px 0 16px}.form-actions{display:flex;gap:12px;margin-top:4px}.btn{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:8px;padding:10px 18px;font-size:.92rem;font-weight:600;cursor:pointer;text-decoration:none;transition:background .15s ease}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:#fff;width:100%}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn-secondary{background:var(--color-accent-soft);color:var(--color-accent)}.btn-ghost{background:transparent;color:var(--color-text-muted);border:1px solid var(--color-border)}.btn-ghost:hover:not(:disabled){color:var(--color-text)}.btn-danger{background:var(--color-danger-soft);color:var(--color-danger)}.btn-danger:hover:not(:disabled){background:var(--color-danger);color:#fff}.link{color:var(--color-accent);text-decoration:none;font-weight:500}.link:hover{text-decoration:underline}.link-button{background:none;border:none;color:var(--color-accent);cursor:pointer;font-size:.88rem;padding:0}.link-button:hover:not(:disabled){text-decoration:underline}.link-button-danger{color:var(--color-danger)}.link-button:disabled{opacity:.5;cursor:not-allowed}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;align-items:start}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:24px}.card-form{max-width:480px}.card-danger{border-color:var(--color-danger-soft)}.detail-list{margin:0 0 16px}.detail-list>div{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--color-border);font-size:.92rem}.detail-list>div:last-child{border-bottom:none}.detail-list dt{color:var(--color-text-muted)}.detail-list dd{margin:0;font-weight:500}.table-wrap{overflow-x:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.table{width:100%;border-collapse:collapse;font-size:.92rem}.table th,.table td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--color-border);white-space:nowrap}.table th{color:var(--color-text-muted);font-weight:500;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}.table tbody tr:last-child td{border-bottom:none}.table-actions{display:flex;gap:14px}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.78rem;font-weight:600;background:var(--color-border);color:var(--color-text-muted)}.badge-success{background:var(--color-success-soft);color:var(--color-success-text)}.badge-muted{background:var(--color-border);color:var(--color-text-muted)}.badge-accent{background:var(--color-accent-soft);color:var(--color-accent)}.alert{padding:10px 14px;border-radius:8px;font-size:.88rem;margin-bottom:18px}.alert-error{background:var(--color-danger-soft);color:var(--color-danger)}.alert-success{background:var(--color-success-soft);color:var(--color-success-text)}.report-form{display:flex;flex-direction:column;gap:4px}.report-list{display:flex;flex-direction:column;gap:16px}.report-item{border:1px solid var(--color-border);border-radius:10px;padding:16px;background:#fbfcfd}.report-item-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.report-meta{margin:4px 0 0;color:var(--color-text-muted);font-size:.9rem}.report-description{margin:10px 0 0;color:var(--color-text)}.report-summary{margin-top:14px;padding:14px;border-radius:10px;background:#f7f8fa;border:1px solid var(--color-border);display:flex;flex-direction:column;gap:12px}.report-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.report-summary-grid strong,.report-summary-section h4{display:block;margin-bottom:4px;color:var(--color-text-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.report-summary-grid p,.report-summary-text{margin:0;color:var(--color-text)}.report-summary-section{display:flex;flex-direction:column;gap:8px}.report-summary-section-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.report-summary-editor{display:flex;flex-direction:column;gap:10px}.report-summary-editor textarea{width:100%;min-height:500px;height:500px;resize:vertical;padding:12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);color:var(--color-text);font-family:var(--font-body);font-size:.95rem;line-height:1.5}.report-summary-editor textarea:focus{outline:2px solid var(--color-accent);outline-offset:1px;border-color:var(--color-accent)}.markdown-content{display:flex;flex-direction:column;gap:8px}.markdown-content p,.markdown-content li,.markdown-content code{color:var(--color-text)}.markdown-heading{margin:0;color:var(--color-text)}.markdown-list{margin:0;padding-left:20px}.markdown-code{margin:0;padding:12px;border-radius:8px;background:#fff;border:1px solid var(--color-border);overflow-x:auto}.report-actions{display:flex;gap:12px;flex-wrap:wrap}.empty-state{color:var(--color-text-muted);margin:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#101828b8;display:flex;align-items:center;justify-content:center;padding:24px;z-index:1000}.modal-card{background:var(--color-surface);border-radius:12px;width:min(960px,100%);max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-card)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--color-border)}.modal-preview-image{width:100%;max-height:70vh;object-fit:contain;padding:16px;background:#f7f8fa}.modal-preview-frame{width:100%;min-height:70vh;border:0;background:#f7f8fa}.spinner-wrap{display:flex;align-items:center;gap:10px;color:var(--color-text-muted);padding:40px 0;justify-content:center;font-size:.9rem}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--color-border);border-top-color:var(--color-accent);animation:spin .7s linear infinite}@media (prefers-reduced-motion: reduce){.spinner{animation:none}}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 640px){.navbar-inner{flex-wrap:wrap;gap:12px}.navbar-links{order:3;width:100%;justify-content:space-between}.page-header-row{flex-direction:column;gap:12px}}
