@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/f639721981034f88-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9766a7e9e2e0ad5a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b66cf8e69499582a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/aa016aab0e6d1295-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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(/_next/static/media/22a5144ee8d83bca-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,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.00%;size-adjust:104.76%}.__className_246ccd{font-family:Geist,Geist Fallback;font-style:normal}.__variable_246ccd{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/013b72fa676f92e0-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b9408752a0c24fb9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/65f03d54ccadf4a8-s.woff2) format("woff2");unicode-range:u+2000-2001,u+2004-2008,u+200a,u+23b8-23bd,u+2500-259f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e038a29029a234f2-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/2b5b02fc7e511755-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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(/_next/static/media/7d4881bb7e1bf84d-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,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.00%;size-adjust:134.59%}.__className_c29908{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_c29908{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}@import url("https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=Noto+Sans+TC:wght@300;400;500;700;900&display=swap");:root{--font-sans:"Outfit","Noto Sans TC",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--sidebar-width:260px;--primary-hsl:226,96%,64%;--primary:hsl(var(--primary-hsl));--primary-hover:hsl(226,96%,58%);--primary-glow:hsla(var(--primary-hsl),0.15);--success-hsl:142,76%,40%;--success:hsl(var(--success-hsl));--success-bg:hsla(var(--success-hsl),0.1);--danger-hsl:346,84%,48%;--danger:hsl(var(--danger-hsl));--danger-bg:hsla(var(--danger-hsl),0.1);--warning-hsl:38,92%,50%;--warning:hsl(var(--warning-hsl));--warning-bg:hsla(var(--warning-hsl),0.1);--info-hsl:196,90%,45%;--info:hsl(var(--info-hsl));--info-bg:hsla(var(--info-hsl),0.1);--background-hsl:220,20%,97%;--background:hsl(var(--background-hsl));--card-bg:rgba(255,255,255,0.75);--card-border:rgba(226,232,240,0.8);--foreground-hsl:222,47%,11%;--foreground:hsl(var(--foreground-hsl));--foreground-muted:hsl(220,9%,46%);--border-color:#e2e8f0;--sidebar-bg:#111827;--header-bg:rgba(255,255,255,0.8);--sidebar-active:rgba(59,130,246,0.12);--sidebar-active-text:#60a5fa;--sidebar-border:rgba(255,255,255,0.08);--sidebar-text-muted:#94a3b8;--shadow-sm:0 1px 2px 0 rgba(0,0,0,0.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.05),0 2px 4px -1px rgba(0,0,0,0.03);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.05),0 4px 6px -2px rgba(0,0,0,0.02);--shadow-glow:0 0 20px 0 hsla(var(--primary-hsl),0.1);--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-full:9999px;--glass-blur:12px;--welcome-bg:linear-gradient(135deg,rgba(99,102,241,0.09),rgba(168,85,247,0.05));--welcome-border:rgba(99,102,241,0.15)}[data-theme=dark]{--primary-hsl:234,100%,69%;--primary:hsl(var(--primary-hsl));--primary-hover:hsl(234,100%,75%);--primary-glow:hsla(var(--primary-hsl),0.25);--background-hsl:222,47%,6%;--background:#090b11;--card-bg:rgba(17,22,34,0.65);--card-border:rgba(255,255,255,0.05);--foreground-hsl:210,40%,98%;--foreground:hsl(var(--foreground-hsl));--foreground-muted:#8f9cae;--border-color:rgba(255,255,255,0.08);--sidebar-bg:rgba(13,17,28,0.85);--header-bg:rgba(9,11,17,0.7);--sidebar-active:rgba(255,255,255,0.06);--sidebar-active-text:#ffffff;--shadow-sm:0 1px 2px 0 rgba(0,0,0,0.5);--shadow-md:0 4px 12px rgba(0,0,0,0.4);--shadow-lg:0 12px 24px rgba(0,0,0,0.5);--shadow-glow:0 0 25px 0 hsla(var(--primary-hsl),0.2);--welcome-bg:linear-gradient(135deg,rgba(30,41,59,0.45),rgba(15,23,42,0.6));--welcome-border:rgba(255,255,255,0.08)}*{box-sizing:border-box;margin:0;padding:0;transition:background-color .3s ease,border-color .3s ease}body{background-color:var(--background);color:var(--foreground);font-family:var(--font-sans);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit}.glass{background:var(--card-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--card-border);box-shadow:var(--shadow-md)}.glass-interactive{transition:transform .2s cubic-bezier(.16,1,.3,1),box-shadow .2s ease,border-color .2s ease}.glass-interactive:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg),var(--shadow-glow);border-color:hsla(var(--primary-hsl),.3)}.app-container{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-right:1px solid var(--sidebar-border,var(--border-color));padding:24px 16px;display:flex;flex-direction:column;height:100vh;position:fixed;left:0;top:0;z-index:100;transition:width .3s cubic-bezier(.16,1,.3,1),transform .3s cubic-bezier(.16,1,.3,1)}.sidebar-logo{display:flex;align-items:center;gap:12px;padding:8px 12px;margin-bottom:32px;font-size:20px;font-weight:800;background:linear-gradient(135deg,var(--primary),#a855f7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;white-space:nowrap}.sidebar-menu{display:flex;flex-direction:column;gap:6px;list-style:none;flex:1;overflow-y:auto}.sidebar-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--radius-md);color:var(--sidebar-text-muted,var(--foreground-muted));font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;white-space:nowrap}.sidebar-item:hover{background:rgba(255,255,255,.05);color:#ffffff}.sidebar-item.active{background:var(--sidebar-active);color:var(--sidebar-active-text);box-shadow:var(--shadow-sm);font-weight:600;border-left:3px solid var(--primary)}.sidebar-footer{margin-top:auto;border-top:1px solid var(--sidebar-border,var(--border-color));padding-top:16px}.main-wrapper{flex:1;margin-left:var(--sidebar-width);display:flex;flex-direction:column;min-height:100vh;transition:margin-left .3s cubic-bezier(.16,1,.3,1)}.header{height:70px;background:var(--header-bg);backdrop-filter:blur(var(--glass-blur));border-bottom:1px solid var(--border-color);padding:0 32px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:90}.page-content{padding:32px;flex:1;background-color:var(--background)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;margin-bottom:32px}.stat-card{padding:24px;border-radius:var(--radius-lg)}.stat-title{font-size:14px;color:var(--foreground-muted);margin-bottom:8px;font-weight:500}.stat-value{font-size:28px;font-weight:700;margin-bottom:8px}.stat-trend{font-size:12px;display:flex;gap:4px}.btn,.stat-trend{align-items:center;font-weight:600}.btn{display:inline-flex;justify-content:center;gap:8px;padding:10px 18px;font-size:14px;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);box-shadow:var(--shadow-sm)}.btn-primary{background:linear-gradient(135deg,var(--primary),hsl(250,95%,70%));color:#ffffff}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px hsla(var(--primary-hsl),.4)}.btn-secondary{background:var(--card-bg);border-color:var(--border-color);color:var(--foreground)}.btn-secondary:hover{background:var(--border-color)}.btn-danger{background:var(--danger);color:#ffffff}.btn-danger:hover{background:hsl(346,84%,40%)}.btn-success{background:var(--success);color:#ffffff}.heatmap-container{overflow-x:auto;margin-top:16px}.heatmap-table{width:100%;border-collapse:separate;border-spacing:4px}.heatmap-cell{height:50px;border-radius:var(--radius-sm);text-align:center;font-weight:700;cursor:pointer;transition:all .2s ease;position:relative}.heatmap-cell:hover{transform:scale(1.05);z-index:10;box-shadow:var(--shadow-md)}.heatmap-cell.low{background-color:rgba(34,197,94,.2);color:#22c55e;border:1px solid rgba(34,197,94,.4)}.heatmap-cell.medium{background-color:rgba(234,179,8,.2);color:#eab308;border:1px solid rgba(234,179,8,.4)}.heatmap-cell.high{background-color:rgba(239,68,68,.2);color:#ef4444;border:1px solid rgba(239,68,68,.4)}.heatmap-cell.critical{background-color:rgba(239,68,68,.4);color:#f87171;border:1px solid #ef4444;box-shadow:0 0 10px rgba(239,68,68,.3)}.kanban-board{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:24px;align-items:start}.kanban-column{border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:16px;min-height:500px;display:flex;flex-direction:column;gap:12px;background:rgba(255,255,255,.4);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:all .2s ease}.kanban-col-todo{background:rgba(239,68,68,.035);border-top:3px solid #f87171}.kanban-col-in_progress{background:rgba(245,158,11,.035);border-top:3px solid #fbbf24}.kanban-col-review{background:rgba(59,130,246,.035);border-top:3px solid #60a5fa}.kanban-col-closed{background:rgba(16,185,129,.035);border-top:3px solid #34d399}.kanban-header{font-size:16px;font-weight:700;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center}.kanban-count{background:var(--border-color);padding:2px 8px;border-radius:var(--radius-sm);font-size:12px}.kanban-card{background:#ffffff!important;border:1px solid var(--border-color)!important;box-shadow:0 4px 6px -1px rgba(0,0,0,.05),0 2px 4px -1px rgba(0,0,0,.02)!important;padding:16px;border-radius:var(--radius-md);cursor:grab;transition:all .2s ease}.kanban-card:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px rgba(0,0,0,.06),0 4px 6px -2px rgba(0,0,0,.03)!important;border-color:rgba(99,102,241,.35)!important}.kanban-card:active{cursor:grabbing}.gantt-container{overflow-x:auto;padding:16px 0}.gantt-chart{display:grid;grid-template-columns:200px 1fr;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--card-bg)}.gantt-header-row{display:grid;grid-template-columns:repeat(12,1fr);border-bottom:1px solid var(--border-color)}.gantt-header-cell{padding:12px;text-align:center;font-size:12px;font-weight:600;border-right:1px solid var(--border-color)}.gantt-row{display:grid;grid-template-columns:200px 1fr;border-bottom:1px solid var(--border-color)}.gantt-label{padding:16px;font-weight:600;border-right:1px solid var(--border-color)}.gantt-timeline{position:relative;height:50px}.gantt-bar{position:absolute;height:24px;top:13px;background:linear-gradient(90deg,var(--primary),#a855f7);border-radius:var(--radius-sm);color:white;padding:0 12px;font-size:12px;font-weight:600;box-shadow:var(--shadow-sm);cursor:pointer}.gantt-bar,.modal-overlay{display:flex;align-items:center}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);justify-content:center;z-index:1000}.modal-content{width:90%;max-width:600px;border-radius:var(--radius-lg);padding:32px}.custom-table{width:100%;border-collapse:collapse;margin-top:16px}.custom-table td,.custom-table th{padding:14px 16px;text-align:left;border-bottom:1px solid var(--border-color)}.custom-table th{font-weight:700;color:var(--foreground-muted)}.custom-table tr:hover{background:rgba(255,255,255,.02)}.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:var(--radius-sm);font-size:11px;font-weight:700;text-transform:uppercase}.badge-success{background:rgba(34,197,94,.15);color:#22c55e}.badge-danger{background:rgba(239,68,68,.15);color:#ef4444}.badge-warning{background:rgba(234,179,8,.15);color:#eab308}.badge-info{background:rgba(59,130,246,.15);color:#3b82f6}.form-group{margin-bottom:20px}.form-label{display:block;font-size:14px;font-weight:600;margin-bottom:8px;color:var(--foreground-muted)}.form-input,.form-select,.form-textarea{width:100%;padding:10px 14px;border-radius:var(--radius-md);border:1px solid var(--border-color);background:rgba(255,255,255,.05);color:var(--foreground)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.portal-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 20px;background:linear-gradient(135deg,#f0f4f8,#dbeafe)}.portal-box{width:100%;max-width:650px;border-radius:var(--radius-lg);padding:40px;background:rgba(255,255,255,.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(226,232,240,.8);box-shadow:0 20px 40px rgba(0,0,0,.06);color:var(--foreground)}.five-why-step{display:flex;gap:16px;padding:12px;border-left:3px solid var(--primary);background:rgba(255,255,255,.02);border-radius:0 var(--radius-md) var(--radius-md) 0;margin-bottom:12px}.five-why-num{font-weight:800;color:var(--primary);font-size:18px}.mobile-only{display:none!important}.desktop-only{display:flex!important}.app-container.sidebar-collapsed{--sidebar-width:70px}.app-container.sidebar-collapsed .sidebar-header{justify-content:center!important}.app-container.sidebar-collapsed .sidebar-item span,.app-container.sidebar-collapsed .sidebar-logo span,.app-container.sidebar-collapsed .sidebar-user-info{display:none!important}@media (max-width:768px){:root{--sidebar-width:0px}.mobile-only{display:flex!important}.desktop-only{display:none!important}.header{padding:0 16px}.header-title-text,.header-user-info{display:none!important}.sidebar{width:260px!important;transform:translateX(-100%);box-shadow:none;z-index:100}.app-container.mobile-sidebar-open .sidebar{transform:translateX(0);box-shadow:0 0 30px rgba(0,0,0,.15)}.sidebar-close-btn{display:flex!important}.page-content{padding:16px}.dashboard-grid{grid-template-columns:1fr!important;gap:16px!important}.kanban-board{display:flex!important;grid-template-columns:none!important;overflow-x:auto!important;gap:16px!important;padding-bottom:16px;-webkit-overflow-scrolling:touch}.kanban-column{min-width:280px!important;flex-shrink:0!important}.modal-content{width:94%!important;padding:20px!important;margin:10px!important;max-height:90vh;overflow-y:auto}.glass{overflow-x:auto!important;-webkit-overflow-scrolling:touch}.custom-table{min-width:650px!important}.gantt-chart{min-width:700px!important}div[style*="grid-template-columns: 1.5fr 1fr"]{grid-template-columns:1fr!important;gap:24px!important}}@media (min-width:769px) and (max-width:1024px){.app-container{--sidebar-width:70px}.sidebar-item span,.sidebar-logo span,.sidebar-user-info{display:none!important}.sidebar-header,.sidebar-item{justify-content:center!important}.page-content{padding:24px}.kanban-board{display:flex!important;grid-template-columns:none!important;overflow-x:auto!important;gap:12px!important}.kanban-column{min-width:250px!important;flex-shrink:0!important}}