:root{--vt-c-white: #ffffff;--vt-c-white-soft: #f8f8f8;--vt-c-white-mute: #f2f2f2;--vt-c-black: #181818;--vt-c-black-soft: #222222;--vt-c-black-mute: #282828;--vt-c-indigo: #2c3e50;--vt-c-divider-light-1: rgba(60, 60, 60, .29);--vt-c-divider-light-2: rgba(60, 60, 60, .12);--vt-c-divider-dark-1: rgba(84, 84, 84, .65);--vt-c-divider-dark-2: rgba(84, 84, 84, .48);--vt-c-text-light-1: var(--vt-c-indigo);--vt-c-text-light-2: rgba(60, 60, 60, .66);--vt-c-text-dark-1: var(--vt-c-white);--vt-c-text-dark-2: rgba(235, 235, 235, .64)}:root{--color-background: var(--vt-c-white);--color-background-soft: var(--vt-c-white-soft);--color-background-mute: var(--vt-c-white-mute);--color-border: var(--vt-c-divider-light-2);--color-border-hover: var(--vt-c-divider-light-1);--color-heading: var(--vt-c-text-light-1);--color-text: var(--vt-c-text-light-1);--section-gap: 160px}@media (prefers-color-scheme: dark){:root{--color-background: var(--vt-c-black);--color-background-soft: var(--vt-c-black-soft);--color-background-mute: var(--vt-c-black-mute);--color-border: var(--vt-c-divider-dark-2);--color-border-hover: var(--vt-c-divider-dark-1);--color-heading: var(--vt-c-text-dark-1);--color-text: var(--vt-c-text-dark-2)}}*,*:before,*:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100vh;color:var(--color-text);background:var(--color-background);transition:color .5s,background-color .5s;line-height:1.6;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--brand-white: #ffffff}[data-theme=phasegreen]{--brand-primary: #21873e;--brand-primary-dark: #1a6b31;--brand-primary-light: #e8f5eb;--brand-primary-soft: #f4faf6;--brand-border: #d4e8da;--brand-text: #1a2e1f;--brand-text-muted: #5a7260;--brand-shadow: 0 2px 12px rgba(33, 135, 62, .08);--brand-gradient: linear-gradient(135deg, #21873e 0%, #2da855 100%);--brand-gradient-soft: linear-gradient(160deg, #f4faf6 0%, #dcefe2 100%)}[data-theme=fctech]{--brand-primary: #407bff;--brand-primary-dark: #2563eb;--brand-primary-light: #e8f0ff;--brand-primary-soft: #f5f8ff;--brand-border: #c5d9f8;--brand-text: #1a2440;--brand-text-muted: #5a6b80;--brand-shadow: 0 2px 12px rgba(64, 123, 255, .12);--brand-gradient: linear-gradient(135deg, #407bff 0%, #6b9fff 100%);--brand-gradient-soft: linear-gradient(160deg, #f5f8ff 0%, #dce8ff 100%)}[data-theme=phasegreen],[data-theme=fctech]{--pg-green: var(--brand-primary);--pg-green-dark: var(--brand-primary-dark);--pg-green-light: var(--brand-primary-light);--pg-green-soft: var(--brand-primary-soft);--pg-border: var(--brand-border);--pg-text: var(--brand-text);--pg-text-muted: var(--brand-text-muted);--pg-white: var(--brand-white);--pg-shadow: var(--brand-shadow)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--brand-primary-soft);color:var(--brand-text);font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}#app{min-height:100vh}a{color:var(--brand-primary);text-decoration:none}.page-title{margin:0 0 8px;font-size:24px;font-weight:600}.page-desc{margin:0 0 24px;color:var(--brand-text-muted);font-size:14px}.card{background:var(--brand-white);border:1px solid var(--brand-border);border-radius:12px;box-shadow:var(--brand-shadow)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s,opacity .2s,box-shadow .2s}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--brand-gradient);color:var(--brand-white);box-shadow:0 2px 8px #00000014}.btn-primary:hover:not(:disabled){background:var(--brand-primary-dark);box-shadow:0 4px 12px #0000001f}.btn-ghost{background:transparent;color:var(--brand-primary);border:1px solid var(--brand-border)}.btn-ghost:hover:not(:disabled){background:var(--brand-primary-light)}.status-tag{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:500}.status-tag.in_progress{background:#fff7e6;color:#b8860b}.status-tag.completed{background:var(--brand-primary-light);color:var(--brand-primary)}.status-tag.pending,.status-tag.not_started{background:#f0f0f0;color:#666}.empty-state{padding:48px 24px;text-align:center;color:var(--brand-text-muted)}.error-text{color:#c0392b;font-size:14px;margin-top:8px}
