@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";
@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.8e0177b5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.b97b3418.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.853070df.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist","Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.c1fdd6c2.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.799d8ef8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.dbea232f.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial}}}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.top-1\/2{top:50%}.left-1\/2{left:50%}.z-10{z-index:10}.col-span-full{grid-column:1/-1}.mx-auto{margin-inline:auto}.mt-auto{margin-top:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-full{height:100%}.h-screen{height:100vh}.w-px{width:1px}.max-w-\[100px\]{max-width:100px}.min-w-\[1000px\]{min-width:1000px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.text-center{text-align:center}.text-\[10px\]{font-size:10px}.whitespace-nowrap{white-space:nowrap}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.duration-300{--tw-duration:.3s;transition-duration:.3s}@media (hover:hover){.group-hover\:block:is(:where(.group):hover *){display:block}}:root{--bg-primary:#fff;--bg-secondary:#f8fafc;--bg-tertiary:#f1f5f9;--border-color:#e2e8f0;--border-light:#f1f5f9;--text-primary:#1e293b;--text-secondary:#475569;--text-muted:#94a3b8;--accent-blue:#3b82f6;--accent-primary:var(--accent-blue);--accent-green:#7c9a5e;--accent-olive:#8b9a6e;--accent-red:#ef4444;--accent-orange:#f59e0b;--accent-purple:#8b5cf6;--sidebar-bg:#1e40af;--sidebar-hover:#1d4ed8}[data-theme=dark]{--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--border-color:#334155;--border-light:#475569;--text-primary:#f1f5f9;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--accent-blue:#60a5fa;--accent-green:#84cc16;--accent-olive:#a3b769;--accent-red:#f87171;--accent-orange:#fbbf24;--accent-purple:#a78bfa;--sidebar-bg:#1e293b;--sidebar-hover:#334155;--danger-bg:#2d1b1b;--danger-border:#7f1d1d;--danger-text:#fca5a5;--danger-text-light:#f87171}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-secondary);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;transition:background-color .2s,color .2s}.sidebar{background:var(--sidebar-bg);flex-direction:column;align-items:center;gap:4px;width:48px;padding:12px 0;display:flex}.sidebar-icon{color:#ffffffb3;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex}.sidebar-icon:hover,.sidebar-icon.active{background:var(--sidebar-hover);color:#fff}.header-bar{background:var(--bg-primary);border-bottom:1px solid var(--border-color);align-items:center;gap:16px;height:48px;padding:0 16px;display:flex}.header-title{color:var(--text-primary);font-size:18px;font-weight:600}.header-controls{align-items:center;gap:8px;display:flex}.control-btn{border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;transition:all .2s;display:flex}.control-btn:hover{background:var(--bg-secondary);border-color:var(--accent-blue)}.project-list{background:var(--bg-primary);border-right:1px solid var(--border-color);width:280px;overflow-y:auto}.project-group{border-bottom:1px solid var(--border-light)}.project-group-header{color:var(--text-secondary);background:var(--bg-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:10px 12px;font-size:13px;font-weight:500;display:flex}.project-group-header:hover{background:var(--bg-secondary)}.project-item{color:var(--text-primary);border-bottom:1px solid var(--border-light);cursor:pointer;align-items:center;gap:8px;padding:10px 12px 10px 28px;font-size:13px;transition:background .15s;display:flex}.project-item:hover{background:var(--bg-secondary)}.project-item.milestone{background:var(--accent-blue);color:#fff;border-radius:0;margin:0}.project-item.deadline{background:var(--accent-orange);color:#fff}.timeline-container{background:var(--bg-primary);flex:1;overflow-x:auto}.timeline-header{border-bottom:1px solid var(--border-color);background:var(--bg-primary);z-index:10;display:flex;position:sticky;top:0}.timeline-year{text-align:center;border-right:1px solid var(--border-color);color:var(--text-primary);padding:8px 0 4px;font-size:13px;font-weight:600}.timeline-quarters{display:flex}.timeline-quarter{text-align:center;color:var(--text-muted);border-right:1px solid var(--border-light);flex:1;padding:4px 0 8px;font-size:12px}.timeline-quarter:last-child{border-right:1px solid var(--border-color)}.gantt-row{border-bottom:1px solid var(--border-light);align-items:center;height:40px;display:flex;position:relative}.gantt-row:hover{background:#3b82f608}.gantt-row.group-header{background:var(--bg-tertiary);height:36px}.gantt-bar{cursor:pointer;color:#fff;white-space:nowrap;border-radius:3px;align-items:center;height:20px;padding:0 8px;font-size:11px;font-weight:500;transition:all .2s;display:flex;position:absolute;overflow:hidden}.gantt-bar:hover{transform:scaleY(1.1);box-shadow:0 2px 8px #00000026}.gantt-bar.blue{background:#5b8ff9}.gantt-bar.olive{background:#7c9a5e}.gantt-bar.green{background:#52c41a}.gantt-bar.gray{background:#94a3b8}.gantt-bar.orange{background:#fa8c16}.milestone-line{border-left:2px dashed var(--accent-red);z-index:5;width:2px;position:absolute;top:0;bottom:0}.today-line{background:var(--accent-blue);z-index:6;width:2px;position:absolute;top:0;bottom:0}.today-label{background:var(--accent-blue);color:#fff;white-space:nowrap;border-radius:3px;padding:2px 6px;font-size:10px;font-weight:600;position:absolute;top:-24px;left:50%;transform:translate(-50%)}.grid-line{background:var(--border-light);width:1px;position:absolute;top:0;bottom:0}.grid-line.quarter{background:var(--border-color)}.btn-primary{background:var(--accent-blue);color:#fff;cursor:pointer;border:none;border-radius:6px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.btn-primary:hover{background:#2563eb}.modal-overlay{z-index:100;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-primary);border-radius:12px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 50px #00000026}.modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-title{color:var(--text-primary);font-size:16px;font-weight:600}.modal-body{padding:20px}.form-group{margin-bottom:16px}.form-label{color:var(--text-secondary);align-items:center;gap:6px;margin-bottom:8px;font-size:13px;font-weight:600;display:flex}.form-input{border:1px solid var(--border-light);background:var(--bg-secondary);width:100%;color:var(--text-primary);border-radius:10px;outline:none;padding:12px 16px;font-size:14px;transition:border-color .2s}.form-input:focus{border-color:var(--accent-blue);outline:none;box-shadow:0 0 0 3px #3b82f61a}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.modal-footer{border-top:1px solid var(--border-color);justify-content:flex-end;gap:8px;padding:16px 20px;display:flex}.btn-secondary{color:var(--text-secondary);border:1px solid var(--border-color);cursor:pointer;background:0 0;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .2s}.btn-secondary:hover{background:var(--bg-secondary)}.btn-danger{color:var(--accent-red);cursor:pointer;background:0 0;border:none;padding:8px 16px;font-size:13px;font-weight:500}.btn-danger:hover{text-decoration:underline}.status-badge{border-radius:4px;align-items:center;gap:4px;padding:4px 8px;font-size:11px;font-weight:500;display:inline-flex}.status-badge.todo{color:#3b82f6;background:#eff6ff}.status-badge.in-progress{color:#d97706;background:#fef3c7}.status-badge.done{color:#16a34a;background:#dcfce7}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.glass-card{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:8px;transition:all .2s;box-shadow:0 1px 3px #0000000d}.glass-card:hover{border-color:var(--border-color);box-shadow:0 4px 12px #00000014}.app-footer{background:var(--bg-primary);border-top:1px solid var(--border-color);color:var(--text-muted);justify-content:space-between;align-items:center;padding:12px 24px;font-size:12px;display:flex}.app-footer a{color:var(--accent-blue);text-decoration:none}.app-footer a:hover{text-decoration:underline}@media print{*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}body{background:#fff!important;margin:0!important;padding:0!important}.sidebar,.header-bar,.no-print,.app-footer,.modal-overlay,.project-list,.print-header>div:last-child,nav,header,footer,aside{visibility:hidden!important;width:0!important;height:0!important;display:none!important;overflow:hidden!important}.print-only{display:block!important}.print-header{background:#fff!important;border:none!important;margin-bottom:16px!important;padding:12px 0!important}.print-header h2{margin-bottom:4px!important;font-size:22px!important}.print-content,.timeline-container{width:100%!important;height:auto!important;overflow:visible!important}.timeline-header{border-bottom:2px solid #333!important}.gantt-bar{border-radius:4px!important}.gantt-bar.blue{color:#fff!important;background:#3b82f6!important}.gantt-bar.orange{color:#fff!important;background:#f59e0b!important}.gantt-bar.olive{color:#fff!important;background:#84cc16!important}.today-line,.today-label{display:none!important}.grid-line{border-left-color:#e5e7eb!important}.glass-card{box-shadow:none!important;background:0 0!important;border:none!important}@page{size:A4 landscape;margin:.5cm}}.dropdown-menu{background:var(--bg-primary);border:1px solid var(--border-color);z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:12px;width:220px;margin-top:8px;padding:6px;animation:.15s ease-out dropdown-slide-in;position:absolute;top:100%;right:0;box-shadow:0 12px 40px #0000001f,0 4px 12px #0000000f}[data-theme=dark] .dropdown-menu{border-color:var(--border-light);box-shadow:0 12px 40px #0006,0 4px 12px #0003}[data-theme=dark] .glass-card{background:var(--bg-secondary);border-color:var(--border-color);box-shadow:0 1px 3px #0003}[data-theme=dark] .glass-card:hover{box-shadow:0 4px 12px #0000004d}[data-theme=dark] .btn-primary{background:var(--accent-blue);color:#0f172a}[data-theme=dark] .gantt-bar{box-shadow:0 1px 3px #0000004d}[data-theme=dark] .status-badge{opacity:.9}[data-theme=dark] input,[data-theme=dark] textarea,[data-theme=dark] select{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-color)}[data-theme=dark] input::placeholder,[data-theme=dark] textarea::placeholder{color:var(--text-muted)}[data-theme=dark] input:focus,[data-theme=dark] textarea:focus,[data-theme=dark] select:focus{border-color:var(--accent-blue);outline-color:var(--accent-blue)}[data-theme=dark] ::-webkit-scrollbar-track{background:var(--bg-secondary)}[data-theme=dark] ::-webkit-scrollbar-thumb{background:var(--border-color)}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}[data-theme=dark] .bg-slate-50{background:var(--bg-primary)!important}@keyframes dropdown-slide-in{0%{opacity:0;transform:translateY(-6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.dropdown-menu-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding:8px 12px 6px;font-size:11px;font-weight:600}.dropdown-menu-item{width:100%;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:9px 12px;font-size:13px;font-weight:450;transition:all .15s;display:flex}.dropdown-menu-item:hover{background:var(--bg-tertiary);color:var(--accent-blue)}.dropdown-menu-item:active{transform:scale(.98)}.dropdown-menu-item .menu-icon{background:var(--bg-tertiary);width:28px;height:28px;color:var(--text-secondary);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.dropdown-menu-item:hover .menu-icon{background:var(--accent-blue);color:#fff}.dropdown-menu-divider{background:var(--border-light);height:1px;margin:4px 8px}.print-only{display:none}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}
