*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}#root{zoom:1.15}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:var(--text-base-size);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-app);color:var(--text-primary)}:root{--bg-app: #0D0D0F;--bg-subtle: #111115;--bg-surface: #18181D;--bg-elevated: #1F1F26;--bg-hover: rgba(255, 255, 255, .04);--bg-active: rgba(255, 255, 255, .08);--bg-pressed: rgba(255, 255, 255, .12);--bg-zebra: rgba(255, 255, 255, .024);--border-faint: rgba(255, 255, 255, .05);--border-dim: rgba(255, 255, 255, .08);--border-base: rgba(255, 255, 255, .12);--border-strong: rgba(255, 255, 255, .22);--text-primary: #EDEDF0;--text-secondary: #9292A4;--text-tertiary: #55556B;--text-disabled: #363648;--accent: #5E6AD2;--accent-hover: #6B79E2;--accent-active: #5560C8;--accent-soft: rgba(94, 106, 210, .12);--accent-border: rgba(94, 106, 210, .28);--success: #30A46C;--success-soft: rgba(48, 164, 108, .11);--success-border: rgba(48, 164, 108, .25);--warning: #F59F00;--warning-soft: rgba(245, 159, 0, .11);--warning-border: rgba(245, 159, 0, .25);--danger: #E54D2E;--danger-soft: rgba(229, 77, 46, .11);--danger-border: rgba(229, 77, 46, .25);--font-mono-stack: "JetBrains Mono", "Fira Code", "Cascadia Code", "Consolas", monospace;--text-2xs-size: 10px;--text-2xs-lh: 16px;--text-2xs-ls: .04em;--text-xs-size: 11px;--text-xs-lh: 16px;--text-xs-ls: .02em;--text-sm-size: 12px;--text-sm-lh: 18px;--text-sm-ls: .01em;--text-base-size: 13px;--text-base-lh: 20px;--text-base-ls: -.01em;--text-md-size: 14px;--text-md-lh: 22px;--text-md-ls: -.01em;--text-lg-size: 15px;--text-lg-lh: 24px;--text-lg-ls: -.02em;--text-xl-size: 18px;--text-xl-lh: 28px;--text-xl-ls: -.03em;--text-2xl-size: 22px;--text-2xl-lh: 32px;--text-2xl-ls: -.04em;--text-3xl-size: 28px;--text-3xl-lh: 36px;--text-3xl-ls: -.04em;--sp-0: 0px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-7: 28px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sp-16: 64px;--r-1: 4px;--r-2: 6px;--r-3: 8px;--r-4: 10px;--r-5: 12px;--r-6: 16px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5), 0 1px 3px rgba(0, 0, 0, .3);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .6), 0 2px 8px rgba(0, 0, 0, .25);--shadow-xl: 0 24px 64px rgba(0, 0, 0, .7), 0 0 0 .5px rgba(255, 255, 255, .06);--shadow-accent: 0 4px 14px rgba(94, 106, 210, .35);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--t-instant: 80ms;--t-fast: .12s;--t-base: .18s;--t-slow: .28s;--color-background-primary: var(--bg-app);--color-background-secondary: var(--bg-subtle);--color-background-tertiary: var(--bg-surface);--color-background-elevated: var(--bg-elevated);--color-background-info: var(--accent-soft);--color-background-success: var(--success-soft);--color-background-warning: var(--warning-soft);--color-background-danger: var(--danger-soft);--color-background-secondary-solid: var(--bg-active);--color-border-tertiary: var(--border-faint);--color-border-secondary: var(--border-dim);--color-border-primary: var(--border-strong);--color-border-info: var(--accent);--color-border-success: var(--success);--color-border-warning: var(--warning);--color-border-danger: var(--danger);--color-text-primary: var(--text-primary);--color-text-secondary: var(--text-secondary);--color-text-tertiary: var(--text-tertiary);--color-text-info: var(--accent);--color-text-success: var(--success);--color-text-warning: var(--warning);--color-text-danger: var(--danger);--radius-sm: var(--r-2);--radius-md: var(--r-3);--radius-lg: var(--r-4);--transition-fast: var(--t-fast) ease;--transition-base: var(--t-base) ease;--font-mono: var(--font-mono-stack)}[data-theme=light]{--bg-app: #FFFFFF;--bg-subtle: #F8F8FA;--bg-surface: #F1F1F4;--bg-elevated: #E8E8ED;--bg-hover: rgba(0, 0, 0, .04);--bg-active: rgba(0, 0, 0, .07);--bg-pressed: rgba(0, 0, 0, .1);--bg-zebra: rgba(0, 0, 0, .02);--border-faint: rgba(0, 0, 0, .06);--border-dim: rgba(0, 0, 0, .1);--border-base: rgba(0, 0, 0, .14);--border-strong: rgba(0, 0, 0, .22);--text-primary: #1A1A2E;--text-secondary: #5C5C72;--text-tertiary: #8E8EA0;--text-disabled: #B8B8C8;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .06);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08), 0 1px 3px rgba(0, 0, 0, .04);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .1), 0 2px 8px rgba(0, 0, 0, .04);--shadow-xl: 0 24px 64px rgba(0, 0, 0, .12), 0 0 0 .5px rgba(0, 0, 0, .04)}[data-theme=light] input[type=date]{color-scheme:light}[data-theme=light] ::-webkit-scrollbar-thumb{background:#0000001f}[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:#0003}[data-theme=light] .skeleton{background:linear-gradient(90deg,var(--bg-surface) 25%,var(--bg-elevated) 50%,var(--bg-surface) 75%);background-size:200% 100%}[data-theme=light] .data-table tbody tr:nth-child(2n){background:var(--bg-zebra)}@media (prefers-color-scheme: light){[data-theme=system]{--bg-app: #FFFFFF;--bg-subtle: #F8F8FA;--bg-surface: #F1F1F4;--bg-elevated: #E8E8ED;--bg-hover: rgba(0, 0, 0, .04);--bg-active: rgba(0, 0, 0, .07);--bg-pressed: rgba(0, 0, 0, .1);--bg-zebra: rgba(0, 0, 0, .02);--border-faint: rgba(0, 0, 0, .06);--border-dim: rgba(0, 0, 0, .1);--border-base: rgba(0, 0, 0, .14);--border-strong: rgba(0, 0, 0, .22);--text-primary: #1A1A2E;--text-secondary: #5C5C72;--text-tertiary: #8E8EA0;--text-disabled: #B8B8C8;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .06);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08), 0 1px 3px rgba(0, 0, 0, .04);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .1), 0 2px 8px rgba(0, 0, 0, .04);--shadow-xl: 0 24px 64px rgba(0, 0, 0, .12), 0 0 0 .5px rgba(0, 0, 0, .04)}[data-theme=system] input[type=date]{color-scheme:light}[data-theme=system] ::-webkit-scrollbar-thumb{background:#0000001f}[data-theme=system] ::-webkit-scrollbar-thumb:hover{background:#0003}[data-theme=system] .skeleton{background:linear-gradient(90deg,var(--bg-surface) 25%,var(--bg-elevated) 50%,var(--bg-surface) 75%);background-size:200% 100%}[data-theme=system] .data-table tbody tr:nth-child(2n){background:var(--bg-zebra)}}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:#ffffff2e}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input:not([type]),input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=search],input[type=tel],select,textarea{background:var(--bg-surface);border:1px solid var(--border-dim);border-radius:var(--r-2);color:var(--text-primary);font-family:inherit;font-size:var(--text-base-size);letter-spacing:var(--text-base-ls);padding:0 var(--sp-3);height:32px;line-height:32px;transition:border-color var(--t-fast) var(--ease-out),box-shadow var(--t-fast) var(--ease-out);width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}input[type=date]{color-scheme:dark}textarea{height:auto;min-height:80px;line-height:1.6;padding-top:var(--sp-2);padding-bottom:var(--sp-2);resize:vertical}.input-sm{height:28px!important;line-height:28px!important;font-size:var(--text-sm-size)!important;padding:0 var(--sp-2)!important}.input-lg{height:38px!important;line-height:38px!important;font-size:var(--text-md-size)!important;padding:0 var(--sp-4)!important}.input-wrapper{position:relative;display:flex;align-items:center}.input-wrapper input{flex:1}.input-prefix{position:absolute;left:var(--sp-3);display:flex;align-items:center;color:var(--text-tertiary);pointer-events:none;z-index:1}.input-prefix+input,.input-wrapper:has(.input-prefix) input{padding-left:var(--sp-8)}.input-suffix{position:absolute;right:var(--sp-3);display:flex;align-items:center;color:var(--text-tertiary)}button{font-family:inherit;cursor:pointer;border:none;background:none;transition:background var(--t-fast) var(--ease-out),border-color var(--t-fast) var(--ease-out),color var(--t-fast) var(--ease-out),box-shadow var(--t-fast) var(--ease-out),transform var(--t-instant) var(--ease-out),opacity var(--t-fast) var(--ease-out)}button:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 var(--sp-3);border-radius:var(--r-2);font-size:var(--text-base-size);font-weight:500;letter-spacing:var(--text-base-ls);white-space:nowrap;cursor:pointer;border:1px solid transparent;transition:background var(--t-fast) var(--ease-out),border-color var(--t-fast) var(--ease-out),color var(--t-fast) var(--ease-out),box-shadow var(--t-fast) var(--ease-out),transform var(--t-instant) var(--ease-out)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:not(:disabled):active{transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.btn-sm{height:28px;padding:0 var(--sp-2);font-size:var(--text-sm-size);gap:4px}.btn-lg{height:38px;padding:0 var(--sp-4);font-size:var(--text-md-size);gap:8px}.btn-icon{width:32px;height:32px;padding:0;flex-shrink:0}.btn-icon.btn-sm{width:28px;height:28px}.btn-primary{background:var(--accent);color:#fff;border-color:transparent;box-shadow:inset 0 1px #ffffff1a,var(--shadow-xs)}.btn-primary:not(:disabled):hover{background:var(--accent-hover);box-shadow:inset 0 1px #ffffff1f,var(--shadow-sm),var(--shadow-accent)}.btn-primary:not(:disabled):active{background:var(--accent-active);box-shadow:inset 0 1px #ffffff0f}.btn-secondary{background:var(--bg-surface);color:var(--text-primary);border-color:var(--border-base);box-shadow:var(--shadow-xs)}.btn-secondary:not(:disabled):hover{background:var(--bg-elevated);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.btn-secondary:not(:disabled):active{background:var(--bg-pressed)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:transparent}.btn-ghost:not(:disabled):hover{background:var(--bg-hover);color:var(--text-primary)}.btn-ghost:not(:disabled):active{background:var(--bg-active)}.btn-danger{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-border)}.btn-danger:not(:disabled):hover{background:#e54d2e2e;border-color:var(--danger)}.btn-danger:not(:disabled):active{background:#e54d2e38}.card{background:var(--bg-surface);border:1px solid var(--border-dim);border-radius:var(--r-3);box-shadow:var(--shadow-xs)}.card-sm{padding:var(--sp-3)}.card-md{padding:var(--sp-4)}.card-lg{padding:var(--sp-6)}.card:not(.card-sm):not(.card-md):not(.card-lg){padding:var(--sp-4)}.card-hover{transition:background var(--t-base) var(--ease-out),border-color var(--t-base) var(--ease-out),box-shadow var(--t-base) var(--ease-out)}.card-hover:hover{background:var(--bg-elevated);border-color:var(--border-base);box-shadow:var(--shadow-sm)}.card-active{cursor:pointer}.card-active:not(:disabled):active{transform:scale(.995)}.stat-card{background:var(--bg-surface);border:1px solid var(--border-dim);border-radius:var(--r-3);padding:var(--sp-4);box-shadow:var(--shadow-xs);transition:border-color var(--t-base) var(--ease-out),box-shadow var(--t-base) var(--ease-out)}.stat-card:hover{border-color:var(--border-base);box-shadow:var(--shadow-sm)}.stat-card .stat-label{font-size:var(--text-2xs-size);line-height:var(--text-2xs-lh);letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);font-weight:500}.stat-card .stat-value{font-size:var(--text-2xl-size);line-height:var(--text-2xl-lh);letter-spacing:var(--text-2xl-ls);color:var(--text-primary);font-weight:600;margin-top:var(--sp-1)}.stat-card .stat-sub{font-size:var(--text-xs-size);line-height:var(--text-xs-lh);color:var(--text-tertiary);margin-top:var(--sp-1)}.data-table-container{border:1px solid var(--border-dim);border-radius:var(--r-3);overflow:hidden}.data-table{width:100%;border-collapse:collapse;font-size:var(--text-sm-size)}.data-table thead{background:transparent}.data-table th{text-align:left;padding:var(--sp-2) var(--sp-3);font-size:var(--text-2xs-size);line-height:var(--text-2xs-lh);text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);border-bottom:1px solid var(--border-dim);white-space:nowrap;font-weight:500}.data-table td{padding:10px var(--sp-3);border-bottom:1px solid var(--border-faint);font-size:var(--text-sm-size);color:var(--text-primary)}.data-table tbody tr{transition:background var(--t-instant) var(--ease-out)}.data-table tbody tr:hover{background:var(--bg-hover)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:nth-child(2n){background:var(--bg-zebra)}.badge{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-1);font-size:var(--text-2xs-size);line-height:var(--text-2xs-lh);font-weight:500;letter-spacing:var(--text-2xs-ls);white-space:nowrap}.badge-default{background:var(--bg-active);color:var(--text-secondary)}.badge-accent{background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-border)}.badge-success{background:var(--success-soft);color:var(--success);border:1px solid var(--success-border)}.badge-warning{background:var(--warning-soft);color:var(--warning);border:1px solid var(--warning-border)}.badge-danger{background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger-border)}.badge-dot:before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}@keyframes dt-spin{to{transform:rotate(360deg)}}@keyframes skeleton-wave{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton{background:linear-gradient(90deg,var(--bg-surface) 25%,var(--bg-elevated) 50%,var(--bg-surface) 75%);background-size:200% 100%;animation:skeleton-wave 1.8s ease-in-out infinite;border-radius:var(--r-2)}.skeleton-text{height:13px;border-radius:var(--r-1)}.skeleton-title{height:18px;border-radius:var(--r-1)}.kanban-card:hover{box-shadow:0 4px 12px #0000001f;border-color:var(--color-border-info)}.kanban-card:focus-visible{outline:2px solid var(--color-border-info);outline-offset:2px}.toast-container{position:fixed;bottom:32px;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column-reverse;align-items:center;gap:var(--sp-2);pointer-events:none}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(4px)}}.toast{background:var(--bg-elevated);border:1px solid var(--border-dim);border-radius:var(--r-5);padding:var(--sp-3) var(--sp-4);font-size:var(--text-base-size);line-height:var(--text-base-lh);color:var(--text-primary);box-shadow:var(--shadow-lg);pointer-events:all;display:flex;align-items:center;gap:10px;animation:toast-in .2s var(--ease-out) both;min-width:240px;max-width:400px;cursor:pointer}.toast.success{border-left:3px solid var(--success)}.toast.error{border-left:3px solid var(--danger)}.toast.info{border-left:3px solid var(--accent)}.toast.warning{border-left:3px solid var(--warning)}.toast-icon{font-size:15px;flex-shrink:0}.divider{height:0;border:none;border-top:.5px solid var(--border-faint)}.nav-item{display:flex;align-items:center;gap:var(--sp-2);height:36px;padding:0 var(--sp-3);border-radius:var(--r-2);font-size:13px;letter-spacing:var(--text-sm-ls);color:var(--text-secondary);text-decoration:none;transition:background var(--t-fast) var(--ease-out),color var(--t-fast) var(--ease-out);cursor:pointer;border:none;background:transparent;width:100%;font-family:inherit;font-weight:400}.nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-item.active{background:var(--bg-active);color:var(--text-primary);font-weight:500}.row-interactive{cursor:pointer;transition:background var(--t-instant) var(--ease-out)}.row-interactive:hover{background:var(--bg-hover)}.interactive-row{cursor:pointer;transition:background var(--t-fast) var(--ease-out)}.interactive-row:hover{background:var(--bg-hover)}@keyframes cti-pulse{0%,to{opacity:1;box-shadow:0 0 #30a46c66}50%{opacity:.8;box-shadow:0 0 0 4px #30a46c00}}@keyframes bulkSlideUp{0%{opacity:0;transform:translate(-50%) translateY(16px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
