:root{--bg:#fff;--surface:#fff;--border:#e5e7eb;--border-light:#f3f4f6;--text:#111827;--text-secondary:#6b7280;--text-muted:#9ca3af;--primary:#7c3aed;--primary-hover:#6d28d9;--primary-light:#f5f3ff;--success:#059669;--success-bg:#ecfdf5;--warning:#d97706;--warning-bg:#fffbeb;--danger:#dc2626;--danger-bg:#fef2f2;--radius:6px;--shadow-sm:0 1px 2px #0000000a;--shadow:0 1px 3px #0000000f}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5}.app{flex-direction:column;align-items:center;min-height:100vh;display:flex}.app-header{text-align:center;padding:40px 20px 8px}.app-header h1{letter-spacing:-.02em;color:var(--text);font-size:1.35rem;font-weight:700}.app-header p{color:var(--text-secondary);margin-top:3px;font-size:.82rem;font-weight:450}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);width:100%;max-width:900px;margin:20px auto}.card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.card-header h2{color:var(--text);font-size:.9rem;font-weight:600}.card-body{padding:0}.btn{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;background:var(--surface);color:var(--text);justify-content:center;align-items:center;gap:6px;padding:7px 14px;font-family:Inter,sans-serif;font-size:.8rem;font-weight:500;line-height:1.4;transition:all .12s;display:inline-flex}.btn:hover{background:var(--border-light)}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-danger{color:var(--danger);background:0 0;border-color:#0000}.btn-danger:hover{background:var(--danger-bg);border-color:#0000}.btn-icon{cursor:pointer;border-radius:var(--radius);color:var(--text-muted);background:0 0;border:none;justify-content:center;align-items:center;padding:6px;transition:all .12s;display:inline-flex}.btn-icon:hover{color:var(--text);background:var(--border-light)}.table{border-collapse:collapse;width:100%}.table th{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);background:var(--surface);padding:10px 20px;font-size:.72rem;font-weight:600}.table td{border-bottom:1px solid var(--border-light);vertical-align:middle;padding:12px 20px;font-size:.85rem}.table tbody tr{transition:background .1s}.table tbody tr:hover{background:#fafafa}.table tbody tr:last-child td{border-bottom:none}.table .cell-actions{align-items:center;gap:4px;display:flex}.status-badge{border-radius:100px;align-items:center;gap:5px;padding:3px 10px;font-size:.75rem;font-weight:500;line-height:1.4;display:inline-flex}.status-done{background:var(--success-bg);color:var(--success)}.status-ongoing{background:var(--warning-bg);color:var(--warning)}.status-planned{background:var(--primary-light);color:var(--primary)}.form-group{margin-bottom:16px}.form-group label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;margin-bottom:5px;font-size:.75rem;font-weight:600;display:block}.form-group input,.form-group textarea{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;color:var(--text);padding:8px 12px;font-family:Inter,sans-serif;font-size:.85rem;line-height:1.5;transition:border-color .12s}.form-group input:focus,.form-group textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);outline:none}.form-group textarea{resize:vertical;min-height:80px}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-actions{border-top:1px solid var(--border-light);justify-content:flex-end;gap:8px;margin-top:16px;padding-top:16px;display:flex}.breadcrumb{color:var(--text-muted);align-items:center;gap:6px;font-size:.82rem;display:flex}.breadcrumb a{color:var(--primary);cursor:pointer;font-weight:500;text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.breadcrumb span{color:var(--text-muted)}.breadcrumb .current{color:var(--text);font-weight:500}.detail-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;padding:16px 20px;display:flex}.checklist{padding:4px 0}.checklist-item{cursor:pointer;border-bottom:1px solid var(--border-light);align-items:center;gap:10px;padding:10px 20px;transition:background .1s;display:flex}.checklist-item:last-child{border-bottom:none}.checklist-item:hover{background:#fafafa}.checklist-item.completed{opacity:.65}.checklist-item.completed .checklist-label{color:var(--text-muted);text-decoration:line-through}.checklist-checkbox{cursor:pointer;width:16px;height:16px;accent-color:var(--primary);border:1.5px solid var(--border);border-radius:3px;flex-shrink:0}.checklist-label{color:var(--text);font-size:.85rem;line-height:1.4}.section{border-top:1px solid var(--border);padding:16px 20px}.section-label{text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary);margin-bottom:8px;font-size:.75rem;font-weight:600}.empty-state,.loading{text-align:center;color:var(--text-muted);padding:48px 20px;font-size:.85rem}.not-found{text-align:center;color:var(--text-muted);padding:48px 20px}.back-link{color:var(--primary);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;font-family:Inter,sans-serif;font-size:.82rem;font-weight:500;text-decoration:none;transition:opacity .12s;display:inline-flex}.back-link:hover{opacity:.8}.modal-overlay{z-index:100;background:#0006;border:none;justify-content:center;align-items:center;width:100%;max-width:100%;height:100%;max-height:100%;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:10px;width:100%;max-width:400px;padding:24px;animation:.15s modalIn;box-shadow:0 8px 32px #0000001f}@keyframes modalIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.modal-title{margin-bottom:8px;font-size:1rem;font-weight:600}.modal-message{color:var(--text-secondary);margin-bottom:20px;font-size:.85rem;line-height:1.5}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.toast-container{z-index:200;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.toast{border-radius:var(--radius);max-width:360px;padding:10px 16px;font-size:.85rem;font-weight:500;animation:.2s toastIn;box-shadow:0 4px 16px #0000001a}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toast-success{color:#fff;background:#065f46}.toast-error{color:#fff;background:#991b1b}.toast-info{color:#fff;background:#1e3a5f}.skeleton-list{padding:0}.skeleton-row{border-bottom:1px solid var(--border-light);grid-template-columns:1fr 1fr auto 32px 32px;align-items:center;gap:0;padding:12px 20px;display:grid}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e8e8e8 50%,#f0f0f0 75%) 0 0/200% 100%;border-radius:4px;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{height:14px}.skeleton-badge{border-radius:100px;width:64px;height:22px}.skeleton-icon{border-radius:var(--radius);width:28px;height:28px}.w-40{width:140px}.w-32{width:120px}@media (max-width:640px){.app-header{padding:24px 16px 4px}.card{width:auto;margin:12px}.card-header{padding:12px 14px}.table td,.table th{padding:8px 12px}.table th:nth-child(2),.table td:nth-child(2){display:none}.form-row{grid-template-columns:1fr}.detail-header{flex-direction:column;gap:10px}.checklist-item{padding:8px 14px}.section{padding:12px 14px}}
