:root{--px-accent:#7c3aed;--px-accent-dark:#6d28d9;--px-accent-light:#ede9fe;--px-bg:#f9fafb;--px-surface:#fff;--px-sidebar:#1e1b4b;--px-sidebar-text:#c4b5fd;--px-sidebar-active:#7c3aed;--px-text:#111827;--px-text-muted:#6b7280;--px-border:#e5e7eb;--px-danger:#dc2626;--px-success:#16a34a;--px-warning:#d97706}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--px-bg);color:var(--px-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}.btn{cursor:pointer;border:none;border-radius:6px;align-items:center;gap:6px;padding:8px 16px;font-size:14px;font-weight:500;transition:opacity .15s;display:inline-flex}.btn:hover{opacity:.85}.btn-primary{background:var(--px-accent);color:#fff}.btn-secondary{color:var(--px-text);border:1px solid var(--px-border);background:#fff}.btn-danger{background:var(--px-danger);color:#fff}.card{background:var(--px-surface);border:1px solid var(--px-border);border-radius:8px;padding:20px}.badge{border-radius:12px;align-items:center;padding:2px 8px;font-size:12px;font-weight:500;display:inline-flex}input,select,textarea{border:1px solid var(--px-border);background:#fff;border-radius:6px;outline:none;width:100%;padding:8px 12px;font-size:14px}input:focus,select:focus,textarea:focus{border-color:var(--px-accent);box-shadow:0 0 0 3px var(--px-accent-light)}label{color:var(--px-text);margin-bottom:6px;font-weight:500;display:block}.form-group{margin-bottom:16px}.page{max-width:1200px;padding:32px}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-title{font-size:24px;font-weight:700}.grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.grid-4{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--px-border);padding:12px 16px}th{color:var(--px-text-muted);text-transform:uppercase;font-size:12px;font-weight:600}.status-TODO{color:#374151;background:#f3f4f6}.status-IN_PROGRESS{color:#1d4ed8;background:#dbeafe}.status-IN_REVIEW{color:#92400e;background:#fef3c7}.status-DONE{color:#065f46;background:#d1fae5}.status-BLOCKED{color:#991b1b;background:#fee2e2}.priority-LOW{color:#6b7280;background:#f3f4f6}.priority-MEDIUM{color:#1d4ed8;background:#dbeafe}.priority-HIGH{color:#92400e;background:#fef3c7}.priority-URGENT{color:#991b1b;background:#fee2e2}.goal-DRAFT{color:#6b7280;background:#f3f4f6}.goal-ON_TRACK{color:#065f46;background:#d1fae5}.goal-AT_RISK{color:#92400e;background:#fef3c7}.goal-BEHIND{color:#991b1b;background:#fee2e2}.goal-DONE{color:#3730a3;background:#e0e7ff}.progress-bar{background:var(--px-border);border-radius:4px;height:8px;overflow:hidden}.progress-fill{background:var(--px-accent);border-radius:4px;height:100%;transition:width .3s}.error-msg{color:var(--px-danger);margin-top:8px;font-size:13px}.empty-state{text-align:center;color:var(--px-text-muted);padding:60px 20px}
