:root{--brand-primary-50:#eff6ff;--brand-primary-100:#dbeafe;--brand-primary-200:#bfdbfe;--brand-primary-300:#93c5fd;--brand-primary-400:#60a5fa;--brand-primary-500:#3b82f6;--brand-primary-600:#2563eb;--brand-primary-700:#1d4ed8;--brand-primary-800:#1e40af;--brand-primary-900:#1e3a8a;--brand-secondary-50:#fef2f2;--brand-secondary-100:#fee2e2;--brand-secondary-200:#fecaca;--brand-secondary-300:#fca5a5;--brand-secondary-400:#f87171;--brand-secondary-500:#ef4444;--brand-secondary-600:#dc2626;--brand-secondary-700:#b91c1c;--brand-secondary-800:#991b1b;--brand-secondary-900:#7f1d1d;--brand-accent-50:#fffbeb;--brand-accent-100:#fef3c7;--brand-accent-200:#fde68a;--brand-accent-300:#fcd34d;--brand-accent-400:#fbbf24;--brand-accent-500:#f59e0b;--brand-accent-600:#d97706;--brand-accent-700:#b45309;--brand-accent-800:#92400e;--brand-accent-900:#78350f;--neutral-50:#f8fafc;--neutral-100:#f1f5f9;--neutral-200:#e2e8f0;--neutral-300:#cbd5e1;--neutral-400:#94a3b8;--neutral-500:#64748b;--neutral-600:#475569;--neutral-700:#334155;--neutral-800:#1e293b;--neutral-900:#0f172a;--color-success-50:#f0fdf4;--color-success-100:#dcfce7;--color-success-200:#bbf7d0;--color-success-300:#86efac;--color-success-400:#4ade80;--color-success-500:#22c55e;--color-success-600:#16a34a;--color-success-700:#15803d;--color-success-800:#166534;--color-success-900:#14532d;--color-warning-50:#fffbeb;--color-warning-100:#fef3c7;--color-warning-200:#fde68a;--color-warning-300:#fcd34d;--color-warning-400:#fbbf24;--color-warning-500:#f59e0b;--color-warning-600:#d97706;--color-warning-700:#b45309;--color-warning-800:#92400e;--color-warning-900:#78350f;--color-error-50:#fef2f2;--color-error-100:#fee2e2;--color-error-200:#fecaca;--color-error-300:#fca5a5;--color-error-400:#f87171;--color-error-500:#ef4444;--color-error-600:#dc2626;--color-error-700:#b91c1c;--color-error-800:#991b1b;--color-error-900:#7f1d1d;--color-info-50:#eff6ff;--color-info-100:#dbeafe;--color-info-200:#bfdbfe;--color-info-300:#93c5fd;--color-info-400:#60a5fa;--color-info-500:#3b82f6;--color-info-600:#2563eb;--color-info-700:#1d4ed8;--color-info-800:#1e40af;--color-info-900:#1e3a8a;--color-bg-primary:#fff;--color-bg-secondary:#f8fafc;--color-bg-tertiary:#f1f5f9;--color-bg-inverse:#0f172a;--color-text-primary:#0f172a;--color-text-secondary:#475569;--color-text-tertiary:#94a3b8;--color-text-inverse:#fff;--color-text-link:#2563eb;--color-text-link-hover:#1d4ed8;--color-border-primary:#e2e8f0;--color-border-secondary:#cbd5e1;--color-border-focus:#3b82f6;--color-border-error:#ef4444;--font-family-primary:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-family-chinese:"PingFang SC", "Microsoft YaHei", "微软雅黑", "Helvetica Neue", Arial, sans-serif;--font-family-mono:"Fira Code", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-none:1;--line-height-tight:1.25;--line-height-snug:1.375;--line-height-normal:1.5;--line-height-relaxed:1.625;--line-height-loose:2;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--space-0:0px;--space-px:1px;--space-0-5:.125rem;--space-1:.25rem;--space-1-5:.375rem;--space-2:.5rem;--space-2-5:.625rem;--space-3:.75rem;--space-3-5:.875rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:1.75rem;--space-8:2rem;--space-9:2.25rem;--space-10:2.5rem;--space-11:2.75rem;--space-12:3rem;--space-14:3.5rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-28:7rem;--space-32:8rem;--space-36:9rem;--space-40:10rem;--space-44:11rem;--space-48:12rem;--space-52:13rem;--space-56:14rem;--space-60:15rem;--space-64:16rem;--space-72:18rem;--space-80:20rem;--space-96:24rem;--radius-none:0px;--radius-sm:.125rem;--radius-base:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--radius-full:9999px;--shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--shadow-2xl:0 25px 50px -12px #00000040;--shadow-inner:inset 0 2px 4px 0 #0000000f;--transition-fast:.15s ease;--transition-normal:.3s ease;--transition-slow:.5s ease;--transition-slower:.7s ease;--transition-color:color .15s ease, background-color .15s ease, border-color .15s ease;--transition-opacity:opacity .15s ease;--transition-shadow:box-shadow .15s ease;--transition-transform:transform .15s ease;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--color-cyan:#0891b2;--color-cyan-soft:#0891b21f;--color-violet:#8b5cf6;--color-violet-soft:#8b5cf61f;--color-pink:#ec4899;--color-pink-soft:#ec48991f;--ease-smooth:cubic-bezier(.16, 1, .3, 1);--sidebar-w:180px;--sidebar-w-collapsed:64px;--page-padding:24px;--card-padding:16px;--toolbar-gap:12px;--grid-min:280px;--color-orange:#f59e0b;--width-xs:20rem;--width-sm:24rem;--width-md:28rem;--width-lg:32rem;--width-xl:36rem;--width-2xl:42rem;--width-3xl:48rem;--width-4xl:56rem;--width-5xl:64rem;--width-6xl:72rem;--width-7xl:80rem;--height-xs:20rem;--height-sm:24rem;--height-md:28rem;--height-lg:32rem;--height-xl:36rem;--height-2xl:42rem;--height-3xl:48rem;--height-4xl:56rem;--height-5xl:64rem;--height-6xl:72rem;--height-7xl:80rem;--max-w-none:none;--max-w-xs:20rem;--max-w-sm:24rem;--max-w-md:28rem;--max-w-lg:32rem;--max-w-xl:36rem;--max-w-2xl:42rem;--max-w-3xl:48rem;--max-w-4xl:56rem;--max-w-5xl:64rem;--max-w-6xl:72rem;--max-w-7xl:80rem;--max-w-full:100%;--max-w-min:min-content;--max-w-max:max-content;--max-w-fit:fit-content;--max-w-prose:65ch}@media (width<=639px){:root{--breakpoint:xs}}@media (width>=640px) and (width<=1023px){:root{--breakpoint:sm}}@media (width>=1024px) and (width<=1279px){:root{--breakpoint:md}}@media (width>=1280px) and (width<=1535px){:root{--breakpoint:lg}}@media (width>=1536px){:root{--breakpoint:xl}}.hidden{display:none}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.inline-grid{display:inline-grid}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-1{flex:1}.flex-auto{flex:auto}.flex-initial{flex:0 auto}.flex-none{flex:none}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.gap-10{gap:var(--space-10)}.gap-12{gap:var(--space-12)}.p-0{padding:var(--space-0)}.p-1{padding:var(--space-1)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-5{padding:var(--space-5)}.p-6{padding:var(--space-6)}.p-8{padding:var(--space-8)}.px-0{padding-left:var(--space-0);padding-right:var(--space-0)}.px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.py-0{padding-top:var(--space-0);padding-bottom:var(--space-0)}.py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.m-0{margin:var(--space-0)}.m-1{margin:var(--space-1)}.m-2{margin:var(--space-2)}.m-3{margin:var(--space-3)}.m-4{margin:var(--space-4)}.m-5{margin:var(--space-5)}.m-6{margin:var(--space-6)}.m-8{margin:var(--space-8)}.mx-0{margin-left:var(--space-0);margin-right:var(--space-0)}.mx-1{margin-left:var(--space-1);margin-right:var(--space-1)}.mx-2{margin-left:var(--space-2);margin-right:var(--space-2)}.mx-3{margin-left:var(--space-3);margin-right:var(--space-3)}.mx-4{margin-left:var(--space-4);margin-right:var(--space-4)}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:var(--space-0);margin-bottom:var(--space-0)}.my-1{margin-top:var(--space-1);margin-bottom:var(--space-1)}.my-2{margin-top:var(--space-2);margin-bottom:var(--space-2)}.my-3{margin-top:var(--space-3);margin-bottom:var(--space-3)}.my-4{margin-top:var(--space-4);margin-bottom:var(--space-4)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-3xl{font-size:var(--font-size-3xl)}.text-4xl{font-size:var(--font-size-4xl)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.leading-none{line-height:var(--line-height-none)}.leading-tight{line-height:var(--line-height-tight)}.leading-snug{line-height:var(--line-height-snug)}.leading-normal{line-height:var(--line-height-normal)}.leading-relaxed{line-height:var(--line-height-relaxed)}.leading-loose{line-height:var(--line-height-loose)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-inverse{color:var(--color-text-inverse)}.text-link{color:var(--color-text-link)}.text-success{color:var(--color-success-600)}.text-warning{color:var(--color-warning-600)}.text-error{color:var(--color-error-600)}.text-info{color:var(--color-info-600)}.bg-primary{background-color:var(--color-bg-primary)}.bg-secondary{background-color:var(--color-bg-secondary)}.bg-tertiary{background-color:var(--color-bg-tertiary)}.border{border:1px solid var(--color-border-primary)}.border-2{border:2px solid var(--color-border-primary)}.border-0{border:0}.border-t{border-top:1px solid var(--color-border-primary)}.border-r{border-right:1px solid var(--color-border-primary)}.border-b{border-bottom:1px solid var(--color-border-primary)}.border-l{border-left:1px solid var(--color-border-primary)}.rounded-none{border-radius:var(--radius-none)}.rounded-sm{border-radius:var(--radius-sm)}.rounded{border-radius:var(--radius-base)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-full{border-radius:var(--radius-full)}.shadow-xs{box-shadow:var(--shadow-xs)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.shadow-2xl{box-shadow:var(--shadow-2xl)}.shadow-inner{box-shadow:var(--shadow-inner)}.shadow-none{box-shadow:none}.transition-none{transition:none}.transition-all{transition:all var(--transition-normal)}.transition-colors{transition:var(--transition-color)}.transition-opacity{transition:var(--transition-opacity)}.transition-shadow{transition:var(--transition-shadow)}.transition-transform{transition:var(--transition-transform)}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.w-full{width:100%}.w-screen{width:100vw}.w-auto{width:auto}.w-min{width:min-content}.w-max{width:max-content}.w-fit{width:fit-content}.h-full{height:100%}.h-screen{height:100vh}.h-auto{height:auto}.h-min{height:min-content}.h-max{height:max-content}.h-fit{height:fit-content}.min-w-0{min-width:0}.min-w-full{min-width:100%}.min-w-min{min-width:min-content}.min-w-max{min-width:max-content}.min-w-fit{min-width:fit-content}.min-h-0{min-height:0}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.min-h-min{min-height:min-content}.min-h-max{min-height:max-content}.min-h-fit{min-height:fit-content}.max-w-none{max-width:none}.max-w-full{max-width:100%}.max-w-min{max-width:min-content}.max-w-max{max-width:max-content}.max-w-fit{max-width:fit-content}.max-w-prose{max-width:65ch}.max-h-none{max-height:none}.max-h-full{max-height:100%}.max-h-screen{max-height:100vh}.max-h-min{max-height:min-content}.max-h-max{max-height:max-content}.max-h-fit{max-height:fit-content}.cursor-auto{cursor:auto}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.cursor-text{cursor:text}.cursor-move{cursor:move}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.select-all{-webkit-user-select:all;user-select:all}.select-auto{-webkit-user-select:auto;user-select:auto}.outline-none{outline-offset:2px;outline:2px solid #0000}.outline{outline:2px solid var(--color-border-focus);outline-offset:2px}.outline-dashed{outline:2px dashed var(--color-border-focus);outline-offset:2px}.outline-1{outline:1px solid var(--color-border-focus);outline-offset:1px}.outline-2{outline:2px solid var(--color-border-focus);outline-offset:2px}.outline-4{outline:4px solid var(--color-border-focus);outline-offset:4px}.outline-8{outline:8px solid var(--color-border-focus);outline-offset:8px}.project-card{background-color:var(--color-bg-primary);border:1px solid var(--color-border-primary);box-shadow:var(--shadow-sm);transition:all var(--transition-normal);border-radius:8px;position:relative;overflow:hidden}.project-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-primary-300);transform:translateY(-2px)}.project-card:before{content:"";background-color:var(--brand-primary-500);height:3px;position:absolute;top:0;left:0;right:0}.project-card.urgent:before{background-color:var(--color-error-500)}.project-card.in-progress:before{background-color:var(--color-warning-500)}.project-card.completed:before{background-color:var(--color-success-500)}.project-card__header{padding:var(--space-4) var(--space-4) var(--space-3);border-bottom:1px solid var(--color-border-primary)}.project-card__title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;display:-webkit-box;overflow:hidden}.project-card__client{font-size:var(--font-size-sm);color:var(--color-text-secondary);align-items:center;gap:var(--space-2);display:flex}.project-card__client-icon{color:var(--color-text-tertiary)}.project-card__body{padding:var(--space-3) var(--space-4)}.project-card__info{gap:var(--space-2);margin-bottom:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.project-card__info-item{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex}.project-card__info-icon{color:var(--color-text-tertiary);width:16px;height:16px}.project-card__progress{margin-bottom:var(--space-3)}.project-card__progress-bar{background-color:var(--color-bg-tertiary);height:6px;margin-bottom:var(--space-1);border-radius:3px;overflow:hidden}.project-card__progress-fill{background:linear-gradient(90deg, var(--brand-primary-500) 0%, var(--brand-primary-400) 100%);height:100%;transition:width var(--transition-normal);border-radius:3px}.project-card__progress-text{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-align:right}.project-card__footer{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border-primary);background-color:var(--color-bg-secondary);justify-content:space-between;align-items:center;display:flex}.project-card__assignee{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex}.project-card__assignee-avatar{background-color:var(--brand-primary-100);width:24px;height:24px;color:var(--brand-primary-600);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border-radius:50%;justify-content:center;align-items:center;display:flex}.project-card__deadline{align-items:center;gap:var(--space-1);font-size:var(--font-size-sm);color:var(--color-text-tertiary);display:flex}.project-card__deadline--overdue{color:var(--color-error-600)}.project-card__deadline--soon{color:var(--color-warning-600)}.data-table{border-collapse:separate;border-spacing:0;background-color:var(--color-bg-primary);width:100%;box-shadow:var(--shadow-sm);border-radius:8px;overflow:hidden}.data-table__header{background-color:var(--color-bg-secondary);border-bottom:2px solid var(--brand-primary-200)}.data-table__header-cell{padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);text-align:left;white-space:nowrap;border-bottom:1px solid var(--color-border-primary);position:relative}.data-table__header-cell:after{content:"";background-color:var(--brand-primary-500);height:2px;transition:transform var(--transition-fast);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.data-table__header-cell:hover:after{transform:scaleX(1)}.data-table__header-cell--sortable{cursor:pointer}.data-table__header-cell--sortable:hover{background-color:var(--color-bg-tertiary)}.data-table__header-cell--sorted{background-color:var(--brand-primary-50)}.data-table__header-cell--sorted:after{transform:scaleX(1)}.data-table__sort-icon{margin-left:var(--space-1);color:var(--color-text-tertiary);transition:transform var(--transition-fast)}.data-table__sort-icon--asc{transform:rotate(180deg)}.data-table__body tr{transition:background-color var(--transition-fast)}.data-table__body tr:hover{background-color:var(--brand-primary-50)}.data-table__body tr:not(:last-child){border-bottom:1px solid var(--color-border-primary)}.data-table__cell{padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-primary);vertical-align:middle}.data-table__cell--status{align-items:center;gap:var(--space-2);display:flex}.data-table__cell--actions{gap:var(--space-2);display:flex}.data-table__pagination{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border-primary);background-color:var(--color-bg-secondary);justify-content:space-between;align-items:center;display:flex}.data-table__pagination-info{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.data-table__pagination-controls{align-items:center;gap:var(--space-2);display:flex}.data-table__pagination-button{padding:var(--space-1) var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-secondary);background-color:var(--color-bg-primary);border:1px solid var(--color-border-primary);cursor:pointer;transition:all var(--transition-fast);border-radius:4px}.data-table__pagination-button:hover:not(:disabled){background-color:var(--color-bg-tertiary);border-color:var(--color-border-secondary)}.data-table__pagination-button:disabled{opacity:.5;cursor:not-allowed}.data-table__pagination-button.active{background-color:var(--brand-primary-500);border-color:var(--brand-primary-500);color:var(--color-text-inverse)}.form-group{margin-bottom:var(--space-6)}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin-bottom:var(--space-2);display:block}.form-label--required:after{content:" *";color:var(--color-error-500)}.form-input{width:100%;padding:var(--space-2) var(--space-3);font-family:var(--font-family-primary);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-bg-primary);border:1px solid var(--color-border-primary);transition:all var(--transition-fast);border-radius:6px;line-height:1.5}.form-input::placeholder{color:var(--color-text-tertiary)}.form-input:hover{border-color:var(--brand-primary-400)}.form-input:focus{border-color:var(--brand-primary-500);outline:none;box-shadow:0 0 0 3px #2563eb1a}.form-input:disabled{background-color:var(--color-bg-tertiary);color:var(--color-text-tertiary);cursor:not-allowed}.form-input:read-only{background-color:var(--color-bg-tertiary);color:var(--color-text-secondary)}.form-input--error{border-color:var(--color-error-500)}.form-input--error:hover{border-color:var(--color-error-400)}.form-input--error:focus{border-color:var(--color-error-500);box-shadow:0 0 0 3px #dc26261a}.form-input--success{border-color:var(--color-success-500)}.form-input--success:hover{border-color:var(--color-success-400)}.form-input--success:focus{border-color:var(--color-success-500);box-shadow:0 0 0 3px #16a34a1a}.form-error{font-size:var(--font-size-sm);color:var(--color-error-600);margin-top:var(--space-1);align-items:center;gap:var(--space-1);display:flex}.form-error-icon{flex-shrink:0;width:16px;height:16px}.form-hint{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin-top:var(--space-1)}.form-select{width:100%;padding:var(--space-2) var(--space-3);padding-right:var(--space-10);font-family:var(--font-family-primary);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-bg-primary);border:1px solid var(--color-border-primary);transition:all var(--transition-fast);appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;border-radius:6px;line-height:1.5}.form-select:hover{border-color:var(--brand-primary-400)}.form-select:focus{border-color:var(--brand-primary-500);outline:none;box-shadow:0 0 0 3px #2563eb1a}.form-select:disabled{background-color:var(--color-bg-tertiary);color:var(--color-text-tertiary);cursor:not-allowed}.form-textarea{width:100%;padding:var(--space-2) var(--space-3);font-family:var(--font-family-primary);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-bg-primary);border:1px solid var(--color-border-primary);transition:all var(--transition-fast);resize:vertical;border-radius:6px;min-height:100px;line-height:1.5}.form-textarea::placeholder{color:var(--color-text-tertiary)}.form-textarea:hover{border-color:var(--brand-primary-400)}.form-textarea:focus{border-color:var(--brand-primary-500);outline:none;box-shadow:0 0 0 3px #2563eb1a}.form-textarea:disabled{background-color:var(--color-bg-tertiary);color:var(--color-text-tertiary);cursor:not-allowed}.form-checkbox{align-items:center;gap:var(--space-2);cursor:pointer;display:flex}.form-checkbox__input{border:2px solid var(--color-border-primary);width:18px;height:18px;transition:all var(--transition-fast);cursor:pointer;appearance:none;background-color:var(--color-bg-primary);border-radius:4px}.form-checkbox__input:checked{background-color:var(--brand-primary-500);border-color:var(--brand-primary-500);background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:100% 100%}.form-checkbox__input:focus{outline:none;box-shadow:0 0 0 3px #2563eb1a}.form-checkbox__input:disabled{opacity:.5;cursor:not-allowed}.form-checkbox__label{font-size:var(--font-size-sm);color:var(--color-text-primary);cursor:pointer}.form-checkbox__label:hover{color:var(--color-text-secondary)}.form-radio{align-items:center;gap:var(--space-2);cursor:pointer;display:flex}.form-radio__input{border:2px solid var(--color-border-primary);width:18px;height:18px;transition:all var(--transition-fast);cursor:pointer;appearance:none;background-color:var(--color-bg-primary);border-radius:50%}.form-radio__input:checked{border-color:var(--brand-primary-500);background-color:var(--brand-primary-500);box-shadow:inset 0 0 0 3px var(--color-bg-primary)}.form-radio__input:focus{outline:none;box-shadow:0 0 0 3px #2563eb1a}.form-radio__input:disabled{opacity:.5;cursor:not-allowed}.form-radio__label{font-size:var(--font-size-sm);color:var(--color-text-primary);cursor:pointer}.form-radio__label:hover{color:var(--color-text-secondary)}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-family:var(--font-family-primary);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;white-space:nowrap;border:1px solid #0000;border-radius:6px;line-height:1.5;display:inline-flex}.btn:focus-visible{outline:2px solid var(--brand-primary-500);outline-offset:2px}.btn:disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.btn--primary{background-color:var(--brand-primary-500);color:var(--color-text-inverse);border-color:var(--brand-primary-500)}.btn--primary:hover:not(:disabled){background-color:var(--brand-primary-600);border-color:var(--brand-primary-600);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn--primary:active:not(:disabled){box-shadow:var(--shadow-sm);transform:translateY(0)}.btn--secondary{background-color:var(--color-bg-primary);color:var(--brand-primary-600);border-color:var(--brand-primary-300)}.btn--secondary:hover:not(:disabled){background-color:var(--brand-primary-50);border-color:var(--brand-primary-400)}.btn--ghost{color:var(--color-text-secondary);background-color:#0000;border-color:#0000}.btn--ghost:hover:not(:disabled){background-color:var(--color-bg-tertiary);color:var(--color-text-primary)}.btn--danger{background-color:var(--color-error-500);color:var(--color-text-inverse);border-color:var(--color-error-500)}.btn--danger:hover:not(:disabled){background-color:var(--color-error-600);border-color:var(--color-error-600)}.btn--success{background-color:var(--color-success-500);color:var(--color-text-inverse);border-color:var(--color-success-500)}.btn--success:hover:not(:disabled){background-color:var(--color-success-600);border-color:var(--color-success-600)}.btn--warning{background-color:var(--color-warning-500);color:var(--color-text-inverse);border-color:var(--color-warning-500)}.btn--warning:hover:not(:disabled){background-color:var(--color-warning-600);border-color:var(--color-warning-600)}.btn--xs{padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs)}.btn--sm{padding:var(--space-1-5) var(--space-3);font-size:var(--font-size-sm)}.btn--md{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm)}.btn--lg{padding:var(--space-3) var(--space-6);font-size:var(--font-size-base)}.btn--xl{padding:var(--space-4) var(--space-8);font-size:var(--font-size-lg)}.btn--rounded{border-radius:var(--radius-full)}.btn--square{padding:var(--space-2);aspect-ratio:1}.btn--loading{pointer-events:none;position:relative}.btn--loading:after{content:"";border:2px solid #0000;border-top-color:currentColor;border-radius:50%;width:16px;height:16px;animation:1s linear infinite spin;position:absolute}@keyframes spin{to{transform:rotate(360deg)}}.btn__icon{flex-shrink:0;width:16px;height:16px}.btn__icon--left{margin-right:var(--space-1)}.btn__icon--right{margin-left:var(--space-1)}.tag{align-items:center;gap:var(--space-1);padding:.125rem var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap;border-radius:9999px;line-height:1.5;display:inline-flex}.tag--primary{background-color:var(--brand-primary-100);color:var(--brand-primary-700)}.tag--secondary{background-color:var(--neutral-100);color:var(--neutral-700)}.tag--success{background-color:var(--color-success-100);color:var(--color-success-700)}.tag--warning{background-color:var(--color-warning-100);color:var(--color-warning-700)}.tag--error{background-color:var(--color-error-100);color:var(--color-error-700)}.tag--info{background-color:var(--color-info-100);color:var(--color-info-700)}.tag--xs{padding:0 var(--space-1);font-size:10px}.tag--sm{padding:.0625rem var(--space-1-5);font-size:var(--font-size-xs)}.tag--md{padding:.125rem var(--space-2);font-size:var(--font-size-xs)}.tag--lg{padding:.25rem var(--space-3);font-size:var(--font-size-sm)}.tag--rounded{border-radius:var(--radius-base)}.tag--pill{border-radius:9999px}.tag--closable{padding-right:var(--space-1)}.tag__close{width:16px;height:16px;color:inherit;cursor:pointer;transition:all var(--transition-fast);background-color:#0000;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.tag__close:hover{background-color:#0000001a}.tag__close-icon{width:10px;height:10px}.tooltip{display:inline-block;position:relative}.tooltip__content{z-index:var(--z-index-tooltip);padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);color:var(--color-text-inverse);background-color:var(--color-bg-inverse);box-shadow:var(--shadow-lg);white-space:nowrap;opacity:0;visibility:hidden;transition:all var(--transition-fast);pointer-events:none;border-radius:6px;line-height:1.5;position:absolute}.tooltip:hover .tooltip__content{opacity:1;visibility:visible}.tooltip--top .tooltip__content{margin-bottom:var(--space-2);bottom:100%;left:50%;transform:translate(-50%)}.tooltip--bottom .tooltip__content{margin-top:var(--space-2);top:100%;left:50%;transform:translate(-50%)}.tooltip--left .tooltip__content{margin-right:var(--space-2);top:50%;right:100%;transform:translateY(-50%)}.tooltip--right .tooltip__content{margin-left:var(--space-2);top:50%;left:100%;transform:translateY(-50%)}.tooltip__arrow{background-color:var(--color-bg-inverse);width:8px;height:8px;position:absolute;transform:rotate(45deg)}.tooltip--top .tooltip__arrow{bottom:-4px;left:50%;transform:translate(-50%)rotate(45deg)}.tooltip--bottom .tooltip__arrow{top:-4px;left:50%;transform:translate(-50%)rotate(45deg)}.tooltip--left .tooltip__arrow{top:50%;right:-4px;transform:translateY(-50%)rotate(45deg)}.tooltip--right .tooltip__arrow{top:50%;left:-4px;transform:translateY(-50%)rotate(45deg)}.modal-backdrop{z-index:var(--z-index-modal-backdrop);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;visibility:hidden;transition:all var(--transition-normal);background-color:#00000080;position:fixed;inset:0}.modal-backdrop--visible{opacity:1;visibility:visible}.modal{z-index:var(--z-index-modal);padding:var(--space-4);opacity:0;visibility:hidden;transition:all var(--transition-normal);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal--visible{opacity:1;visibility:visible}.modal__content{background-color:var(--color-bg-primary);box-shadow:var(--shadow-xl);max-height:90vh;transition:transform var(--transition-normal);border-radius:12px;flex-direction:column;display:flex;overflow:hidden;transform:scale(.95)translateY(20px)}.modal--visible .modal__content{transform:scale(1)translateY(0)}.modal--xs .modal__content{width:100%;max-width:320px}.modal--sm .modal__content{width:100%;max-width:400px}.modal--md .modal__content{width:100%;max-width:500px}.modal--lg .modal__content{width:100%;max-width:600px}.modal--xl .modal__content{width:100%;max-width:700px}.modal--2xl .modal__content{width:100%;max-width:800px}.modal--3xl .modal__content{width:100%;max-width:900px}.modal--4xl .modal__content{width:100%;max-width:1000px}.modal--5xl .modal__content{width:100%;max-width:1100px}.modal--6xl .modal__content{width:100%;max-width:1200px}.modal--7xl .modal__content{width:100%;max-width:1400px}.modal--full .modal__content{border-radius:0;width:100%;max-width:100%;height:100%;max-height:100%}.modal__header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border-primary);background-color:var(--color-bg-secondary);justify-content:space-between;align-items:center;display:flex}.modal__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.modal__close{width:32px;height:32px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);background-color:#0000;border-radius:6px;justify-content:center;align-items:center;display:flex}.modal__close:hover{background-color:var(--color-bg-tertiary);color:var(--color-text-primary)}.modal__close-icon{width:20px;height:20px}.modal__body{padding:var(--space-6);flex:1;overflow-y:auto}.modal__footer{justify-content:flex-end;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border-primary);background-color:var(--color-bg-secondary);display:flex}.notification-container{top:var(--space-4);right:var(--space-4);z-index:var(--z-index-tooltip);gap:var(--space-3);flex-direction:column;max-width:400px;display:flex;position:fixed}.notification{background-color:var(--color-bg-primary);border:1px solid var(--color-border-primary);box-shadow:var(--shadow-lg);padding:var(--space-4);gap:var(--space-3);border-radius:8px;animation:.3s ease-out slideInRight;display:flex}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.notification--success{border-left:4px solid var(--color-success-500)}.notification--warning{border-left:4px solid var(--color-warning-500)}.notification--error{border-left:4px solid var(--color-error-500)}.notification--info{border-left:4px solid var(--color-info-500)}.notification__icon{flex-shrink:0;width:24px;height:24px}.notification--success .notification__icon{color:var(--color-success-500)}.notification--warning .notification__icon{color:var(--color-warning-500)}.notification--error .notification__icon{color:var(--color-error-500)}.notification--info .notification__icon{color:var(--color-info-500)}.notification__content{flex:1;min-width:0}.notification__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-1)}.notification__message{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5}.notification__close{width:24px;height:24px;color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast);background-color:#0000;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.notification__close:hover{background-color:var(--color-bg-tertiary);color:var(--color-text-primary)}.notification__close-icon{width:16px;height:16px}.skeleton{background:linear-gradient(90deg, var(--color-bg-tertiary) 25%, var(--color-bg-secondary) 50%, var(--color-bg-tertiary) 75%);background-size:200% 100%;border-radius:4px;animation:1.5s ease-in-out infinite skeleton-loading}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton--text{width:100%;height:16px}.skeleton--title{width:60%;height:24px}.skeleton--avatar{border-radius:50%;width:40px;height:40px}.skeleton--button{border-radius:6px;width:100px;height:36px}.skeleton--image{border-radius:8px;width:100%;height:200px}.skeleton--card{border-radius:8px;width:100%;height:300px}.loading-spinner{border:3px solid var(--color-border-primary);border-top-color:var(--brand-primary-500);border-radius:50%;width:24px;height:24px;animation:1s linear infinite spin}.loading-spinner--sm{border-width:2px;width:16px;height:16px}.loading-spinner--lg{border-width:4px;width:32px;height:32px}.loading-spinner--xl{border-width:5px;width:48px;height:48px}.loading-dots{gap:var(--space-1);display:flex}.loading-dots__dot{background-color:var(--brand-primary-500);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite loading-dots}.loading-dots__dot:first-child{animation-delay:0s}.loading-dots__dot:nth-child(2){animation-delay:.2s}.loading-dots__dot:nth-child(3){animation-delay:.4s}@keyframes loading-dots{0%,80%,to{opacity:.5;transform:scale(0)}40%{opacity:1;transform:scale(1)}}.loading-progress{background-color:var(--color-bg-tertiary);border-radius:2px;width:100%;height:4px;overflow:hidden}.loading-progress__bar{background:linear-gradient(90deg, var(--brand-primary-500) 0%, var(--brand-primary-400) 100%);border-radius:2px;height:100%;animation:2s ease-in-out infinite loading-progress}@keyframes loading-progress{0%{width:0%}50%{width:70%}to{width:100%}}.empty-state{padding:var(--space-12) var(--space-6);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state__icon{width:64px;height:64px;color:var(--color-text-tertiary);margin-bottom:var(--space-4);opacity:.5}.empty-state__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-2)}.empty-state__description{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-6);max-width:400px;line-height:1.6}.stat-card{background-color:var(--color-bg-primary);border:1px solid var(--color-border-primary);padding:var(--space-6);box-shadow:var(--shadow-sm);transition:all var(--transition-normal);border-radius:8px}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card__header{margin-bottom:var(--space-4);justify-content:space-between;align-items:flex-start;display:flex}.stat-card__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.stat-card__icon{background-color:var(--brand-primary-100);width:40px;height:40px;color:var(--brand-primary-600);border-radius:8px;justify-content:center;align-items:center;display:flex}.stat-card__icon svg{width:20px;height:20px}.stat-card__value{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--space-2);line-height:1.2}.stat-card__change{align-items:center;gap:var(--space-1);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);display:flex}.stat-card__change--positive{color:var(--color-success-600)}.stat-card__change--negative{color:var(--color-error-600)}.stat-card__change--neutral{color:var(--color-text-tertiary)}.stat-card__change-icon{width:16px;height:16px}.stat-card__change-value{margin-left:var(--space-1)}.stat-card__change-period{color:var(--color-text-tertiary);font-weight:var(--font-weight-normal)}.stat-card--primary .stat-card__icon{background-color:var(--brand-primary-100);color:var(--brand-primary-600)}.stat-card--success .stat-card__icon{background-color:var(--color-success-100);color:var(--color-success-600)}.stat-card--warning .stat-card__icon{background-color:var(--color-warning-100);color:var(--color-warning-600)}.stat-card--error .stat-card__icon{background-color:var(--color-error-100);color:var(--color-error-600)}.stat-card--info .stat-card__icon{background-color:var(--color-info-100);color:var(--color-info-600)}.chart-container{background-color:var(--color-bg-primary);border:1px solid var(--color-border-primary);padding:var(--space-6);box-shadow:var(--shadow-sm);border-radius:8px}.chart-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;display:flex}.chart-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.chart-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--space-1)}.chart-actions{gap:var(--space-2);display:flex}.chart-content{min-height:300px;position:relative}.chart-legend{gap:var(--space-4);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-border-primary);flex-wrap:wrap;display:flex}.chart-legend-item{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex}.chart-legend-color{border-radius:2px;flex-shrink:0;width:12px;height:12px}.chart-legend-label{white-space:nowrap}.chart-legend-value{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}@media (width<=639px){.hidden-mobile{display:none}.block-mobile{display:block}.flex-mobile{display:flex}.grid-mobile{display:grid}.text-center-mobile{text-align:center}.text-left-mobile{text-align:left}.p-mobile-2{padding:var(--space-2)}.p-mobile-4{padding:var(--space-4)}.p-mobile-6{padding:var(--space-6)}.gap-mobile-2{gap:var(--space-2)}.gap-mobile-4{gap:var(--space-4)}.w-full-mobile{width:100%}.h-auto-mobile{height:auto}}@media (width>=640px) and (width<=1023px){.hidden-tablet{display:none}.block-tablet{display:block}.flex-tablet{display:flex}.grid-tablet{display:grid}.text-center-tablet{text-align:center}.text-left-tablet{text-align:left}}@media (width>=1024px){.hidden-desktop{display:none}.block-desktop{display:block}.flex-desktop{display:flex}.grid-desktop{display:grid}}.hover-lift{transition:transform var(--transition-normal), box-shadow var(--transition-normal)}.hover-lift:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.hover-scale{transition:transform var(--transition-fast)}.hover-scale:hover{transform:scale(1.05)}.hover-glow{transition:box-shadow var(--transition-normal)}.hover-glow:hover{box-shadow:0 0 20px #2563eb4d}.btn:active:not(:disabled){transform:translateY(0)scale(.98)}.project-card--dragging{opacity:.8;box-shadow:var(--shadow-xl);transform:rotate(2deg)scale(1.02)}.project-card--dropping{animation:.3s ease-out drop}@keyframes drop{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.data-table__body tr{transition:background-color var(--transition-fast), transform var(--transition-fast)}.data-table__body tr:hover{background-color:var(--brand-primary-50);transform:scale(1.01)}.form-input:focus{transition:all var(--transition-fast);transform:scale(1.02)}.tag{transition:all var(--transition-fast)}.tag:hover{transform:scale(1.05)}.stat-card{transition:all var(--transition-normal)}.stat-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.chart-container{transition:all var(--transition-normal)}.chart-container:hover{box-shadow:var(--shadow-md)}.modal__content{transition:transform var(--transition-normal), opacity var(--transition-normal)}.modal--visible .modal__content{opacity:1;transform:scale(1)translateY(0)}.notification{animation:.3s ease-out slideInRight}.loading-spinner{animation:1s linear infinite spin}.skeleton{animation:1.5s ease-in-out infinite skeleton-loading}.loading-progress__bar{animation:2s ease-in-out infinite loading-progress}.loading-dots__dot{animation:1.4s ease-in-out infinite loading-dots}.ledger-view{background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.ledger-view__toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border-primary);background:var(--color-bg-secondary);display:flex}.ledger-view__toolbar .ledger-view__count{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.ledger-view__toolbar .ledger-view__count strong{color:var(--color-text-primary);font-weight:var(--font-weight-semibold);font-family:var(--font-family-mono)}.ledger-view .ant-table{font-size:var(--font-size-sm);color:var(--color-text-primary)}.ledger-view .ant-table-thead>tr>th{background:var(--color-bg-secondary);color:var(--color-text-secondary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-xs);letter-spacing:.02em;border-bottom:1px solid var(--color-border-primary);padding:var(--space-2) var(--space-3);white-space:nowrap}.ledger-view .ant-table-thead>tr>th:before{background-color:var(--neutral-200)!important}.ledger-view .ant-table-tbody>tr>td{padding:var(--space-1-5,6px) var(--space-3);border-bottom:1px solid var(--neutral-100);vertical-align:middle}.ledger-view .ant-table-tbody>tr:hover>td{background:var(--brand-primary-50)!important}.ledger-view .ant-table-tbody>tr:nth-child(2n)>td{background:var(--neutral-50)}.ledger-view .ant-table-tbody>tr:nth-child(2n):hover>td,.ledger-view .ant-table-tbody>tr.ant-table-row-selected>td{background:var(--brand-primary-50)!important}.ledger-view .ant-table-cell-fix-left,.ledger-view .ant-table-cell-fix-right{background:inherit}.ledger-view .ant-table-cell-fix-right:after{box-shadow:inset -1px 0 0 var(--neutral-200)}.ledger-view .ant-table-cell-fix-left:after{box-shadow:inset 1px 0 0 var(--neutral-200)}.ledger-view td.ledger-cell-money{font-family:var(--font-family-mono);text-align:right;font-variant-numeric:tabular-nums}.ledger-view th.ledger-cell-money{text-align:right}.ledger-view .ledger-inline-edit{grid-template-columns:minmax(0,1fr) 22px 22px;align-items:center;gap:1px;width:100%;min-width:0;display:grid}.ledger-view .ledger-inline-edit .ant-select,.ledger-view .ledger-inline-edit .ant-picker{width:100%;min-width:0}.ledger-view .ledger-inline-edit .ant-btn{width:22px;min-width:22px;height:22px;padding:0}.ledger-view .ledger-cell-name{-webkit-line-clamp:2;word-break:break-all;-webkit-box-orient:vertical;line-height:1.4;display:-webkit-box;overflow:hidden}.ledger-view .ledger-edit-hint{cursor:pointer;border-bottom:1px dashed var(--neutral-400)}.ledger-view .ledger-edit-hint:hover{color:var(--brand-primary-600);border-bottom-color:var(--brand-primary-600)}.ledger-view .ant-table-placeholder .ant-empty{margin-block:var(--space-10)}.ledger-view .ant-table-placeholder .ant-empty-description{color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.ledger-view ::-webkit-scrollbar{width:8px;height:8px}.ledger-view ::-webkit-scrollbar-thumb{background:var(--neutral-300);border-radius:var(--radius-full)}.ledger-view ::-webkit-scrollbar-thumb:hover{background:var(--neutral-400)}.ledger-view ::-webkit-scrollbar-track{background:0 0}@media print{.no-print{display:none!important}.print-only{display:block!important}body{color:#000;background:#fff;font-size:12pt;line-height:1.5}.modal,.notification-container{display:none!important}.project-card,.data-table,.stat-card,.chart-container{box-shadow:none;break-inside:avoid;border:1px solid #e2e8f0}a{color:#000;text-decoration:underline}img{max-width:100%!important}}.ui-card{background:var(--color-bg-primary);border:1px solid var(--neutral-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-xs)}.ui-card-pad{padding:16px}.ui-card-title{color:var(--neutral-900);font-size:14px;font-weight:600;line-height:1.4}.ui-card-sub{color:var(--neutral-400);font-size:12px;line-height:1.4}.ui-card-hover{transition:transform .2s var(--ease-smooth), box-shadow .2s var(--ease-smooth), border-color .2s}.ui-card-hover:hover{box-shadow:var(--shadow-lg);border-color:var(--color-border-secondary);transform:translateY(-2px)}.ui-muted{color:var(--neutral-400)}.ui-num{font-family:var(--font-family-mono);font-variant-numeric:tabular-nums}.ui-strong{font-weight:600}.ui-section-title{color:var(--neutral-900);font-size:14px;font-weight:600;line-height:1.4}.ui-tag{white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;line-height:16px;display:inline-flex}.ui-tag-blue{background:var(--brand-primary-50);color:var(--brand-primary-600)}.ui-tag-teal{background:var(--color-cyan-soft);color:var(--color-cyan)}.ui-tag-green{background:var(--color-success-50);color:var(--color-success-700)}.ui-tag-amber{background:var(--color-warning-50);color:var(--color-warning-700)}.ui-tag-red{background:var(--color-error-50);color:var(--color-error-700)}.ui-tag-violet{background:var(--color-violet-soft);color:var(--color-violet)}.ui-tag-slate{background:var(--neutral-100);color:var(--neutral-600)}.ui-progress{background:var(--neutral-100);border-radius:999px;height:6px;overflow:hidden}.ui-progress-fill{height:100%;transition:width .3s var(--ease-smooth);border-radius:999px}.ui-progress-fill.blue{background:linear-gradient(90deg, var(--brand-primary-500), var(--brand-primary-600))}.ui-progress-fill.green{background:linear-gradient(90deg, var(--color-success-500), var(--color-success-600))}.ui-progress-fill.amber{background:linear-gradient(90deg, var(--color-warning-400), var(--color-warning-500))}.ui-progress-fill.slate{background:var(--color-border-secondary)}.ui-hover-lift{transition:transform .2s var(--ease-smooth), box-shadow .2s var(--ease-smooth)}.ui-hover-lift:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.ui-divider{border:none;border-top:1px solid var(--neutral-200);margin:12px 0}.ui-page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.ui-page-title{letter-spacing:-.01em;color:var(--neutral-900);margin:0;font-size:17px;font-weight:600}.ui-page-desc{color:var(--neutral-400);margin-top:2px;font-size:12px}@media (hover:none) and (pointer:coarse){.ui-card-hover:hover,.ui-hover-lift:hover{box-shadow:var(--shadow-xs);transform:none}}@media (prefers-reduced-motion:reduce){.ui-card-hover,.ui-hover-lift{transition:none}.ui-card-hover:hover,.ui-hover-lift:hover{box-shadow:var(--shadow-xs);transform:none}}.pf-section-title{color:var(--neutral-900);border-bottom:1px solid var(--neutral-200);margin:20px 0 12px;padding-bottom:8px;font-size:14px;font-weight:600;line-height:1.4}.pf-section-title:first-child{margin-top:0}.pf-form .ant-form-item{margin-bottom:14px}.detail-card{background:var(--color-bg-primary);border:1px solid var(--neutral-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-xs)}.app-shell{background:var(--neutral-50);height:100vh;display:flex}.app-main{flex-direction:column;flex:1;min-width:0;display:flex}.app-content{background:var(--neutral-50);flex:1;overflow:auto}.app-suspense{justify-content:center;align-items:center;height:100%;min-height:400px;display:flex}.app-side{height:100vh;width:var(--sidebar-w);background:var(--color-bg-primary);border-right:1px solid var(--neutral-200);transition:width .28s var(--ease-smooth);z-index:40;flex-direction:column;flex-shrink:0;display:flex;position:sticky;top:0}.app-side.is-collapsed{width:var(--sidebar-w-collapsed)}.app-side__brand{align-items:center;gap:11px;padding:18px 16px 14px;display:flex}.app-side__mark{background:linear-gradient(135deg, var(--brand-primary-600), var(--color-cyan));width:36px;height:36px;box-shadow:0 6px 14px -6px var(--brand-primary-600);border-radius:10px;flex-shrink:0;place-items:center;display:grid;overflow:hidden}.app-side__mark img{object-fit:contain;width:26px;height:26px}.app-side__brand-txt{color:var(--neutral-900);white-space:nowrap;font-size:14px;font-weight:600;line-height:1.2}.app-side__brand-sub{color:var(--neutral-400);font-size:10.5px;font-weight:400}.app-side__nav{flex:1;padding:4px 12px;overflow-y:auto}.app-side__group{margin-bottom:4px}.app-side__group-label{color:var(--neutral-400);letter-spacing:.08em;text-transform:uppercase;padding:12px 10px 4px;font-size:10.5px}.app-side__item{border-radius:var(--radius-lg);color:var(--neutral-600);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:12px;padding:9px 11px;font-size:13px;transition:background .15s,color .15s;display:flex;position:relative}.app-side__item:hover{background:var(--neutral-100);color:var(--neutral-900)}.app-side__item.is-active{background:var(--brand-primary-50);color:var(--neutral-900)}.app-side__item.is-active .app-side__ico{color:var(--brand-primary-600)}.app-side__ico{flex-shrink:0;font-size:16px;display:inline-flex}.app-side__txt{white-space:nowrap;overflow:hidden}.app-side__bar{background:var(--brand-primary-600);border-radius:999px;width:3px;height:18px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.app-side.is-collapsed .app-side__item{justify-content:center}.app-side.is-collapsed .app-side__brand{justify-content:center;padding:18px 0 14px}.app-side__foot{border-top:1px solid var(--neutral-200);flex-direction:column;gap:8px;padding:12px;display:flex}.app-side__user{border-radius:var(--radius-lg);cursor:pointer;align-items:center;gap:10px;padding:6px;transition:background .15s;display:flex}.app-side__user:hover{background:var(--neutral-100)}.app-side__user-meta{min-width:0}.app-side__user-name{color:var(--neutral-900);white-space:nowrap;text-overflow:ellipsis;max-width:140px;font-size:12.5px;font-weight:500;overflow:hidden}.app-side__user-role{color:var(--neutral-400);font-size:10.5px}.app-side__toggle{border-radius:var(--radius-lg);border:1px solid var(--neutral-200);background:var(--color-bg-primary);width:100%;height:34px;color:var(--neutral-600);cursor:pointer;place-items:center;font-size:15px;transition:background .15s;display:grid}.app-side__toggle:hover{background:var(--neutral-100);color:var(--neutral-900)}.app-side__scrim{display:none}.app-top{border-bottom:1px solid var(--neutral-200);-webkit-backdrop-filter:blur(16px)saturate(180%);z-index:30;background:#f5f5f7c7;align-items:center;gap:14px;padding:12px 24px;display:flex;position:sticky;top:0}.app-top__burger{border:1px solid var(--neutral-200);background:var(--color-bg-primary);width:36px;height:36px;color:var(--neutral-600);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;font-size:16px;display:none}.app-top__title{align-items:baseline;gap:4px;display:flex}.app-top__title h1{letter-spacing:-.01em;color:var(--neutral-900);margin:0;font-size:17px;font-weight:600}.app-top__live{color:var(--color-success-600);align-items:center;gap:6px;margin-left:10px;font-size:11.5px;display:inline-flex}.app-top__dot{background:var(--color-success-600);border-radius:50%;width:7px;height:7px;animation:2s infinite app-pulse}.app-top__right{align-items:center;gap:10px;margin-left:auto;display:flex}@keyframes app-pulse{0%{box-shadow:0 0 #05966980}70%{box-shadow:0 0 0 6px #05966900}to{box-shadow:0 0 #05966900}}.proj-card-apple{transition:transform .2s var(--ease-smooth)}.proj-card-apple:hover{transform:translateY(-2px)}@keyframes kpi-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.kpi-item{animation:kpi-rise .5s var(--ease-smooth) both}.kpi-item:hover{box-shadow:var(--shadow-lg)}@keyframes proj-card-enter{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.proj-card{background:var(--color-bg-primary);border:1px solid var(--neutral-200);border-left:3px solid var(--accent,var(--brand-primary-600));box-shadow:var(--shadow-xs);cursor:grab;transition:transform .2s var(--ease-smooth), box-shadow .2s var(--ease-smooth), border-color .2s;box-sizing:border-box;border-radius:14px;flex-direction:column;gap:6px;height:auto;min-height:282px;margin-bottom:8px;padding:12px 14px;animation:.3s ease-out both proj-card-enter;display:flex;position:relative}.proj-card:hover{border-color:var(--color-border-secondary);transform:translateY(-2px);box-shadow:0 12px 28px -10px #0f172a29,0 4px 10px -4px #0f172a14}.proj-card:active{cursor:grabbing}.proj-card.is-selected{box-shadow:0 0 0 1.5px var(--color-violet), var(--shadow-lg)}.proj-card__head{align-items:flex-start;gap:6px;min-width:0;display:flex}.proj-card__drag{color:var(--neutral-400);opacity:.4;cursor:grab;flex-shrink:0;margin-top:3px;transition:opacity .15s;display:inline-flex}.proj-card:hover .proj-card__drag{opacity:1}.proj-card__drag svg{width:14px;height:14px;display:block}.proj-card__name{min-width:0;color:var(--neutral-900);overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;font-size:14px;font-weight:500;line-height:19px;display:-webkit-box;overflow:hidden}.proj-card__badges{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:3px;display:flex}.proj-card__badge{letter-spacing:.01em;white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;line-height:16px}.proj-card__badge.b-red{background:var(--color-error-50);color:var(--color-error-700)}.proj-card__badge.b-amber{background:var(--color-warning-50);color:var(--color-warning-700)}.proj-card__badge.b-green{background:var(--color-success-50);color:var(--color-success-700)}.proj-card__badge.b-slate{background:var(--neutral-100);color:var(--neutral-600)}.proj-card__sub{align-items:center;gap:6px;min-width:0;padding-left:20px;display:flex}.proj-card__client{min-width:0;color:var(--neutral-600);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12px;line-height:16px;overflow:hidden}.proj-card__sub-pill{max-width:90px;color:var(--neutral-600);background:var(--neutral-100);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;flex-shrink:0;padding:1px 6px;font-size:11px;line-height:16px;overflow:hidden}.proj-card__matrix{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;min-height:109px;padding-left:20px;padding-right:4px;display:grid}.proj-card__matrix-cell{border:1px solid var(--neutral-200);background:var(--neutral-50);border-radius:10px;flex-direction:column;justify-content:center;gap:6px;min-width:0;padding:6px 8px;display:flex}.proj-card__matrix-label{color:var(--neutral-400);white-space:nowrap;align-items:center;gap:6px;font-size:11px;line-height:13px;display:inline-flex}.proj-card__matrix-label svg{flex:0 0 11px;width:11px;height:11px}.proj-card__matrix-pills{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.proj-card__pill{white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;max-width:100%;padding:1px 5px;font-size:11px;font-weight:500;line-height:16px;display:inline-flex;overflow:hidden}.proj-card__pill.is-blue{color:var(--brand-primary-600);background:var(--brand-primary-50)}.proj-card__pill.is-teal{color:var(--color-cyan);background:var(--color-cyan-soft)}.proj-card__pill.is-red{color:var(--color-error-600);background:var(--color-error-50)}.proj-card__pill.is-amber{color:var(--color-warning-600);background:var(--color-warning-50)}.proj-card__pill.is-green{color:var(--color-success-700);background:var(--color-success-50)}.proj-card__pill.is-violet{color:var(--color-violet);background:var(--color-violet-soft)}.proj-card__pill.is-slate{color:var(--neutral-600);background:var(--neutral-100)}.proj-card__pill.is-interactive{cursor:pointer;transition:filter .12s}.proj-card__pill.is-interactive:hover{filter:brightness(.94)}.proj-card__pill.is-block{box-sizing:border-box;text-align:left;width:100%;padding:1px 5px;display:block}.proj-card__progress{align-items:center;gap:8px;padding-left:20px;display:flex}.proj-card__bar{background:var(--neutral-100);border-radius:999px;flex:1;height:6px;overflow:hidden}.proj-card__fill{height:100%;transition:width .3s var(--ease-smooth);border-radius:999px}.proj-card__fill.f-blue{background:linear-gradient(90deg, var(--brand-primary-400), var(--brand-primary-600))}.proj-card__fill.f-green{background:linear-gradient(90deg, var(--color-success-400), var(--color-success-600))}.proj-card__fill.f-amber{background:linear-gradient(90deg, var(--color-warning-400), var(--color-warning-500))}.proj-card__fill.f-slate{background:var(--color-border-secondary)}.proj-card__pct{color:var(--neutral-500);text-align:right;min-width:32px;font-size:11px;font-family:var(--font-family-mono);font-feature-settings:"tnum";white-space:nowrap}.proj-card__footer{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.proj-card__footer-sep{color:var(--color-border-secondary);flex-shrink:0;font-size:10px}.proj-card__footer-text{color:var(--neutral-600);white-space:nowrap;font-size:11px}.proj-card__labels{background:var(--neutral-50);border-radius:10px;flex-wrap:wrap;align-content:flex-start;align-items:flex-start;gap:4px 5px;min-height:22px;margin:0 14px 0 20px;padding:6px 8px;display:flex;overflow:hidden}.proj-card__tag{background:var(--neutral-100);color:var(--neutral-600);border-radius:999px;align-items:center;gap:3px;padding:1px 6px;font-size:11px;line-height:16px;display:inline-flex}.proj-card__tag.warn{background:var(--color-warning-50);color:var(--color-warning-600);cursor:pointer}.proj-card__tag svg{flex:0 0 10px;width:10px;height:10px}.proj-card__tag.is-teal{background:var(--color-cyan-soft);color:var(--color-cyan)}.proj-card__tag.is-blue{background:var(--brand-primary-50);color:var(--brand-primary-600)}.proj-card__tag.is-amber{background:var(--color-warning-50);color:var(--color-warning-600)}.proj-card__tag.is-red{background:var(--color-error-50);color:var(--color-error-600)}.proj-card__tag.is-violet{background:var(--color-violet-soft);color:var(--color-violet)}.proj-card__inline-edit{grid-template-columns:minmax(0,1fr) 22px 22px;align-items:center;gap:1px;width:100%;min-width:0;display:grid}.proj-card__inline-edit .ant-select,.proj-card__inline-edit .ant-picker{width:100%;min-width:0}.proj-card__inline-edit .ant-btn{width:22px;min-width:22px;height:22px;padding:0}.proj-card__flow-btns{opacity:0;z-index:5;gap:2px;transition:opacity .15s,transform .15s;display:flex;position:absolute;bottom:6px;right:6px;transform:scale(.9)}.proj-card:hover .proj-card__flow-btns,.proj-card__flow-btns:focus-within{opacity:1;transform:scale(1)}.proj-card__flow-btn{color:#fff;cursor:pointer;background:#0000008c;border:none;border-radius:6px;place-items:center;width:22px;height:22px;padding:0;font-size:11px;transition:background .12s;display:grid}.proj-card__flow-btn:hover{background:var(--brand-primary-600)}.proj-card__flow-btn span{line-height:1}.detail-grid{flex-direction:column;gap:10px;display:flex}.detail-group{background:var(--color-bg-primary);border:1px solid var(--neutral-200);border-radius:12px;padding:16px}.detail-group__head{border-bottom:.5px solid var(--neutral-200);align-items:baseline;gap:8px;margin-bottom:10px;padding-bottom:8px;display:flex}.detail-group__title{color:var(--neutral-900);font-size:13px;font-weight:500}.detail-group__hint{color:var(--neutral-400);font-size:11px;font-weight:400}@keyframes app-page-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.app-page{animation:app-page-enter 4s var(--ease-smooth) both}.proj-card__fill{transition:width 1.5s var(--ease-smooth)}@starting-style{.proj-card__fill{width:0!important}}@media (width<=1024px){.app-side{box-shadow:var(--shadow-lg);position:fixed;top:0;left:0;transform:translate(-100%)}.app-side.is-mobile-open{transform:translate(0)}.app-side__scrim{z-index:39;background:#00000040;display:block;position:fixed;inset:0}.app-top__burger{display:inline-flex}.app-content{padding:8px!important}.proj-card{padding:10px 12px}:root{--font-size-2xl:20px;--font-size-xl:18px;--page-padding:12px;--card-padding:12px}}@media (width<=768px){.kanban-board{-webkit-overflow-scrolling:touch;overflow-x:auto}.kanban-col{flex-shrink:0;min-width:280px}.ant-table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}.ant-modal{max-width:100vw!important;margin:0!important}.ant-modal .ant-modal-content{border-radius:0;min-height:100vh}.app-top{padding:0 8px}.app-top__title{font-size:14px}.proj-card__matrix{grid-template-columns:1fr}.app-side__item{min-height:44px}.resource-table{font-size:12px}.chart-container{width:100%!important}.filter-toolbar__row{flex-wrap:wrap;gap:6px!important;padding:8px 12px!important}.filter-toolbar__secondary{flex-wrap:wrap;gap:4px!important}.kpi-toolbar{grid-template-columns:repeat(3,1fr)!important;gap:6px!important;padding:8px 12px!important;display:grid!important}.proj-card__flow-btns{opacity:1!important;transform:scale(1)!important}.gantt-toolbar__row{flex-wrap:wrap;gap:6px!important}.gantt-toolbar__stats{flex-wrap:wrap;gap:4px!important}.resource-stats-grid{grid-template-columns:repeat(2,1fr)!important}.resource-dual-col{grid-template-columns:1fr!important}.report-dual-row{flex-direction:column!important}.report-dual-row>*{width:100%!important;min-width:0!important}.rp-daterange{flex-wrap:wrap}.detail-summary-grid{grid-template-columns:repeat(2,1fr)!important}.detail-info-grid{grid-template-columns:1fr!important}.app-page-padding{padding-left:var(--page-padding)!important;padding-right:var(--page-padding)!important}.report-header{flex-wrap:wrap;gap:8px!important}.modal-grid-4,.modal-grid-3{grid-template-columns:repeat(2,1fr)!important}}@media (width<=480px){.kpi-toolbar,.resource-stats-grid,.rp-kpi-row-7{grid-template-columns:repeat(2,1fr)!important}.rp-seg{padding:4px 8px;font-size:11px}.modal-grid-4,.modal-grid-3{grid-template-columns:1fr!important}.app-top__right{gap:4px}.proj-card{min-height:auto;padding:8px 10px}:root{--page-padding:8px;--card-padding:10px}}@media (width>=769px) and (width<=1024px){.app-side:not(.is-mobile-open){width:var(--sidebar-w-collapsed)}.app-side:not(.is-mobile-open) .app-side__txt,.app-side:not(.is-mobile-open) .app-side__group-label,.app-side:not(.is-mobile-open) .app-side__brand-txt,.app-side:not(.is-mobile-open) .app-side__user-meta{display:none}.kpi-toolbar{grid-template-columns:repeat(4,1fr)!important}.rp-kpi-row-7{grid-template-columns:repeat(5,1fr)!important}}@supports (padding:env(safe-area-inset-top)){.app-top{padding-top:max(12px, env(safe-area-inset-top))}.app-side__foot{padding-bottom:max(12px, env(safe-area-inset-bottom))}.ant-modal .ant-modal-content{padding-bottom:env(safe-area-inset-bottom)}}@media (hover:none) and (pointer:coarse){.proj-card__flow-btns{opacity:1!important;transform:scale(1)!important}.proj-card:hover,.hover-lift:hover,.data-table__body tr:hover{transform:none}}@media (prefers-reduced-motion:reduce){.app-top__dot{animation:none}.app-page,.proj-card,.proj-card-apple,.proj-card__fill{transition:none;animation:none}.proj-card:hover{transform:none}}@media (width<=768px){.ant-btn-sm{min-height:36px}.ant-btn{min-height:40px}.ant-btn-lg,.proj-card{min-height:44px}.ant-table-tbody>tr>td{padding:8px 6px!important}.ant-segmented-item{min-height:36px}.ant-select-selector{min-height:36px!important}.kanban-col__add{min-height:40px}.ant-modal-close{min-width:44px;min-height:44px}.rp-export-btn{min-height:40px}}.rp-card{background:var(--color-bg-primary);border:1px solid var(--neutral-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.rp-card-pad{padding:16px 20px}.rp-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.rp-card-title{color:var(--neutral-900);letter-spacing:-.01em;font-size:14.5px;font-weight:600}.rp-card-sub{color:var(--neutral-400);margin-top:2px;font-size:12px}.rp-chip{border:1px solid var(--color-border-secondary);color:var(--neutral-600);white-space:nowrap;background:var(--color-bg-primary);border-radius:999px;padding:3px 9px;font-size:11px}.rp-reveal{opacity:0;transform:translateY(14px)}.rp-reveal.in-view{animation:rp-rise .6s var(--ease-smooth) forwards;animation-delay:var(--rp-d,0s)}@keyframes rp-rise{to{opacity:1;transform:translateY(0)}}.rp-kpi{flex-direction:column;gap:6px;padding:16px;display:flex;overflow:hidden}.rp-kpi-top{justify-content:space-between;align-items:center;display:flex}.rp-kpi-label{color:var(--neutral-600);font-size:11.5px}.rp-kpi-icon{border-radius:8px;place-items:center;width:28px;height:28px;display:grid}.rp-kpi-icon svg{width:15px;height:15px}.rp-kpi-value{letter-spacing:-.02em;color:var(--neutral-900);font-size:24px;font-weight:600;font-family:var(--font-family-mono);font-feature-settings:"tnum";margin-top:2px}.rp-kpi-value--blue{color:var(--brand-primary-600)}.rp-kpi-value--green{color:var(--color-success-600)}.rp-kpi-value--amber{color:var(--color-warning-500)}.rp-kpi-value--red{color:var(--color-error-600)}.rp-kpi-unit{color:var(--neutral-400);margin-left:2px;font-size:12px;font-weight:500}.rp-kpi-delta{align-items:center;gap:3px;font-size:11.5px;font-weight:500;display:inline-flex}.rp-delta-up{color:var(--color-success-600)}.rp-delta-down{color:var(--color-error-600)}.rp-delta-flat{color:var(--neutral-400)}.rp-kpi-delta .vs{color:var(--neutral-400);margin-left:4px;font-weight:400}.rp-spark{width:100%;height:32px;margin-top:4px}.rp-spark path{fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px}.rp-kpi.in-view .rp-spark path{animation:rp-spark-draw 1.1s var(--ease-smooth) forwards}@keyframes rp-spark-draw{to{stroke-dashoffset:0}}.rp-chart-svg{width:100%;height:auto;display:block}.rp-grid-line{stroke:var(--neutral-200);stroke-width:1px}.rp-axis-label,.rp-bar-label{fill:var(--neutral-400);font-size:10.5px}.rp-bar{transform-box:fill-box;transform-origin:50% 100%;transform:scaleY(0)}.rp-bar-card.in-view .rp-bar{animation:rp-grow .9s var(--ease-smooth) forwards}@keyframes rp-grow{to{transform:scaleY(1)}}.rp-line-path{fill:none;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px}.rp-line-card.in-view .rp-line-path{animation:rp-draw 1.7s var(--ease-smooth) forwards}@keyframes rp-draw{to{stroke-dashoffset:0}}.rp-area{opacity:0}.rp-line-card.in-view .rp-area{animation:rp-fade .9s var(--ease-smooth) .9s forwards}@keyframes rp-fade{to{opacity:1}}.rp-dot{fill:#fff;stroke-width:2px;opacity:0;transform-box:fill-box;transform-origin:50%;transform:scale(0)}.rp-line-card.in-view .rp-dot{animation:rp-pop .4s var(--ease-smooth) forwards}@keyframes rp-pop{to{opacity:1;transform:scale(1)}}.rp-donut-wrap{position:relative}.rp-donut-wrap svg{width:100%;height:100%}.rp-donut-center{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.rp-donut-center .v{letter-spacing:-.02em;color:var(--neutral-900);font-size:24px;font-weight:600;font-family:var(--font-family-mono);font-feature-settings:"tnum"}.rp-donut-center .l{color:var(--neutral-400);margin-top:1px;font-size:11px}.rp-seg{stroke-dasharray:1 1;stroke-dashoffset:1px;transition:stroke-width .2s,opacity .2s}.rp-donut-wrap.in-view .rp-seg{animation:rp-seg-draw .9s var(--ease-smooth) forwards}@keyframes rp-seg-draw{to{stroke-dashoffset:0}}.rp-donut-wrap:hover .rp-seg{opacity:.5}.rp-seg:hover{opacity:1;stroke-width:26px}.rp-legend{flex-direction:column;flex:1;gap:10px;min-width:140px;display:flex}.rp-leg-row{align-items:center;gap:10px;font-size:12.5px;display:flex}.rp-leg-dot{border-radius:3px;flex-shrink:0;width:9px;height:9px}.rp-leg-name{color:var(--neutral-600)}.rp-leg-val{color:var(--neutral-900);font-weight:600;font-family:var(--font-family-mono);font-feature-settings:"tnum";margin-left:auto}.rp-leg-pct{color:var(--neutral-400);text-align:right;width:42px;font-size:11.5px}.rp-hbar-track{background:var(--neutral-100);border-radius:999px;overflow:hidden}.rp-hbar-fill{transform-origin:0%;transform:scaleX(0)}.rp-hbar-card.in-view .rp-hbar-fill{animation:rp-growx .9s var(--ease-smooth) forwards}@keyframes rp-growx{to{transform:scaleX(1)}}.rp-hbar-fill.is-svg{transform-box:fill-box}.rp-live-tag{color:var(--color-success-600);align-items:center;gap:6px;font-size:11.5px;font-weight:500;display:inline-flex}.rp-live-dot{background:var(--color-success-600);border-radius:50%;width:7px;height:7px;animation:2s infinite rp-pulse;box-shadow:0 0 #05966980}@keyframes rp-pulse{0%{box-shadow:0 0 #05966980}70%{box-shadow:0 0 0 7px #05966900}to{box-shadow:0 0 #05966900}}.rp-daterange{background:var(--color-bg-primary);border:1px solid var(--neutral-200);border-radius:10px;align-items:center;gap:4px;padding:4px;display:flex}.rp-seg{color:var(--neutral-600);cursor:pointer;transition:all .18s var(--ease-smooth);-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:7px;padding:6px 12px;font-family:inherit;font-size:12.5px}.rp-seg:hover{color:var(--neutral-900)}.rp-seg.is-active{background:var(--brand-primary-600);color:#fff;box-shadow:0 4px 12px -4px var(--brand-primary-600)}.rp-export-btn{color:var(--neutral-900);background:var(--color-bg-primary);border:1px solid var(--color-border-secondary);cursor:pointer;transition:all .18s var(--ease-smooth);border-radius:10px;align-items:center;gap:6px;padding:8px 14px;font-family:inherit;font-size:12.5px;font-weight:500;display:inline-flex}.rp-export-btn:hover{background:var(--neutral-100);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.rp-export-btn svg{width:15px;height:15px}.rp-tbl{border-collapse:collapse;width:100%}.rp-tbl th{text-align:left;color:var(--neutral-400);border-bottom:1px solid var(--neutral-200);white-space:nowrap;padding:10px 12px;font-size:11.5px;font-weight:500}.rp-tbl td{border-bottom:1px solid var(--neutral-200);color:var(--neutral-900);padding:9px 12px;font-size:12.5px}.rp-tbl tr:last-child td{border-bottom:none}.rp-tbl tr:hover td{background:var(--neutral-100)}.rp-tbl .num{font-family:var(--font-family-mono);font-feature-settings:"tnum"}.rp-rate-pill{border-radius:999px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-block}@media (width<=1100px){.rp-kpi-row-7{grid-template-columns:repeat(4,1fr)!important}}@media (width<=720px){.rp-kpi-row-7{grid-template-columns:repeat(2,1fr)!important}.rp-tbl-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.rp-tbl{min-width:600px}.rp-card-pad{padding:12px!important}.rp-export-btn{padding:6px 10px;font-size:12px}}@media (prefers-reduced-motion:reduce){.rp-reveal{opacity:1;transform:none}.rp-bar,.rp-hbar-fill{transform:none}.rp-line-path,.rp-spark path,.rp-seg{stroke-dashoffset:0}.rp-area,.rp-dot{opacity:1;transform:none}.rp-live-dot,.rp-reveal.in-view,.rp-bar-card.in-view .rp-bar,.rp-line-card.in-view .rp-line-path,.rp-line-card.in-view .rp-area,.rp-line-card.in-view .rp-dot,.rp-kpi.in-view .rp-spark path,.rp-donut-wrap.in-view .rp-seg,.rp-hbar-card.in-view .rp-hbar-fill{animation:none}}
