@import "https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@300;400;500;600;700;900&family=Playfair+Display:wght@500;600;700&display=swap";:root{--peach-50:#fef5f2;--peach-100:#fde8e0;--peach-200:#f9c4bc;--peach-300:#f0a09a;--peach-400:#e8806a;--peach-500:#d4604a;--peach-600:#b84a35;--peach-700:#8b4a4a;--peach-800:#6b3030;--peach-900:#4a2020;--white:#fff;--gray-50:#f9f6f5;--gray-100:#f0ecea;--gray-200:#e0d5d3;--gray-300:#c8bcba;--gray-400:#a89490;--gray-500:#887875;--gray-600:#685855;--gray-700:#483838;--gray-800:#2a2020;--success:#4caf7d;--success-bg:#4caf7d1f;--warning:#e8943a;--warning-bg:#e8943a1f;--danger:#e05050;--danger-bg:#e050501f;--info:#5a8fd8;--info-bg:#5a8fd81f;--purple:#9b7bc0;--purple-bg:#9b7bc01f;--glass-bg:#ffffff9e;--glass-border:#ffffffd9;--glass-blur:blur(24px);--glass-shadow:0 8px 32px #8c3c321a, 0 2px 8px #8c3c320f;--glass-shadow-hover:0 16px 48px #8c3c3229, 0 4px 16px #8c3c3214;--sidebar-width:248px;--header-height:68px;--radius-sm:10px;--radius-md:16px;--radius-lg:20px;--radius-xl:28px;--radius-full:9999px}*{box-sizing:border-box;margin:0;padding:0}html{height:100%}body{min-height:100vh;color:var(--gray-800);-webkit-font-smoothing:antialiased;background-color:#0000;background-image:radial-gradient(at 15% 10%,#f9c4bcb3 0%,#0000 50%),radial-gradient(at 85% 20%,#e8a08c80 0%,#0000 45%),radial-gradient(at 50% 80%,#f0a09a66 0%,#0000 55%),radial-gradient(at 90% 90%,#d4604a33 0%,#0000 40%),linear-gradient(160deg,#fef0ec 0%,#fad0c4 40%,#f5bcb4 70%,#f0a8a0 100%);background-position:0 0,0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat,repeat;background-size:auto,auto,auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box,border-box;font-family:Noto Sans TC,-apple-system,sans-serif;font-size:14px;line-height:1.6}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#d4604a40;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#d4604a73}h1,h2,h3,h4,h5{color:var(--peach-900);font-weight:700;line-height:1.25}.brand-title{color:var(--peach-700);font-family:Playfair Display,serif}.app-layout{min-height:100vh;display:flex}.main-content{margin-left:var(--sidebar-width);flex-direction:column;flex:1;min-height:100vh;display:flex}.page-content{max-height:calc(100vh - var(--header-height));flex:1;padding:32px 36px;overflow-y:auto}.card{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow);border:1px solid var(--glass-border);padding:24px}.card-hover{cursor:pointer;transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s}.card-hover:hover{box-shadow:var(--glass-shadow-hover);transform:translateY(-3px)}.btn{border-radius:var(--radius-full);cursor:pointer;white-space:nowrap;letter-spacing:.2px;border:none;align-items:center;gap:7px;padding:9px 20px;font-family:inherit;font-size:13px;font-weight:600;text-decoration:none;transition:all .2s cubic-bezier(.34,1.2,.64,1);display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--peach-500) 0%, var(--peach-600) 100%);color:var(--white);box-shadow:0 4px 16px #d4604a59}.btn-primary:hover{background:linear-gradient(135deg, var(--peach-400) 0%, var(--peach-500) 100%);transform:translateY(-1px);box-shadow:0 6px 20px #d4604a73}.btn-secondary{color:var(--peach-700);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffb3;border:1px solid #d4604a33}.btn-secondary:hover{background:#ffffffe6}.btn-outline{color:var(--peach-600);background:0 0;border:1.5px solid #d4604a66}.btn-outline:hover{background:#d4604a0f}.btn-ghost{color:var(--gray-500);background:0 0}.btn-ghost:hover{color:var(--gray-700);background:#ffffff80}.btn-danger{background:var(--danger-bg);color:var(--danger);border:1px solid #e0505033}.btn-danger:hover{background:#e0505033}.btn-success{background:var(--success-bg);color:var(--success);border:1px solid #4caf7d33}.btn-success:hover{background:#4caf7d38}.btn-dark{background:var(--peach-900);color:#fff;box-shadow:0 4px 14px #4a20204d}.btn-dark:hover{background:var(--peach-800);transform:translateY(-1px)}.btn-sm{padding:5px 14px;font-size:12px}.btn-lg{padding:12px 28px;font-size:15px}.btn-icon{border-radius:var(--radius-md);padding:8px}.badge{border-radius:var(--radius-full);letter-spacing:.2px;align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.badge-urgent{color:#c84040;background:#e050501f;border:1px solid #e0505033}.badge-high{color:#c07020;background:#e8943a1f;border:1px solid #e8943a33}.badge-medium{color:#907800;background:#c8b41e1f;border:1px solid #c8b41e33}.badge-low{color:#2a8a50;background:#4caf7d1f;border:1px solid #4caf7d33}.badge-pending{color:var(--gray-500);background:#a894901f;border:1px solid #a8949033}.badge-active{color:#3a72c0;background:#5a8fd81f;border:1px solid #5a8fd833}.badge-executing{color:#c07020;background:#e8943a1f;border:1px solid #e8943a33}.badge-completed,.badge-approved{color:#2a8a50;background:#4caf7d1f;border:1px solid #4caf7d33}.badge-rejected{color:#c84040;background:#e050501f;border:1px solid #e0505033}.badge-review{color:var(--peach-700);background:#d4604a1f;border:1px solid #d4604a33}.progress-bar{border-radius:var(--radius-full);background:#d4604a1f;height:6px;overflow:hidden}.progress-fill{border-radius:var(--radius-full);background:linear-gradient(90deg, var(--peach-300), var(--peach-500), var(--peach-600));height:100%;transition:width .6s cubic-bezier(.34,1.2,.64,1);box-shadow:0 0 8px #d4604a66}.input,.select,.textarea{border-radius:var(--radius-md);width:100%;color:var(--gray-800);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffb3;border:1.5px solid #d4604a26;outline:none;padding:10px 16px;font-family:inherit;font-size:13px;transition:border-color .2s,box-shadow .2s,background .2s}.select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23A89490' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.input:focus,.select:focus,.textarea:focus{background:#ffffffe0;border-color:#d4604a80;box-shadow:0 0 0 4px #d4604a14}.textarea{resize:vertical;min-height:80px}.input-group{flex-direction:column;gap:6px;display:flex}.input-label{color:var(--gray-500);letter-spacing:.6px;text-transform:uppercase;font-size:11px;font-weight:700}.avatar{border-radius:var(--radius-full);color:#fff;border:2px solid #fffc;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:11px;font-weight:700;display:inline-flex;box-shadow:0 2px 8px #0000001f}.avatar-sm{border-width:1.5px;width:26px;height:26px;font-size:9px}.avatar-lg{width:42px;height:42px;font-size:14px}.avatar-group{display:flex}.avatar-group .avatar{margin-left:-8px}.avatar-group .avatar:first-child{margin-left:0}.tag{border-radius:var(--radius-full);color:var(--peach-700);background:#d4604a1a;border:1px solid #d4604a26;align-items:center;padding:3px 10px;font-size:11px;font-weight:500;display:inline-flex}.modal-overlay{-webkit-backdrop-filter:blur(12px);z-index:1000;background:#4a20204d;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{-webkit-backdrop-filter:blur(32px);border-radius:var(--radius-xl);background:#ffffffe0;border:1px solid #ffffffe6;width:100%;max-width:560px;max-height:90vh;padding:32px;overflow-y:auto;box-shadow:0 24px 64px #8c3c3233}.modal-header{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.modal-title{color:var(--peach-900);font-size:20px;font-weight:700}.modal-footer{border-top:1px solid #d4604a1a;justify-content:flex-end;gap:10px;margin-top:28px;padding-top:22px;display:flex}.divider{background:#d4604a14;height:1px;margin:16px 0}.empty-state{color:var(--gray-400);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px 24px;display:flex}.empty-state p{font-size:14px}.grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.grid-3{grid-template-columns:1fr 1fr 1fr;gap:16px;display:grid}.grid-4{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-4{gap:4px}.gap-6{gap:6px}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-20{gap:20px}.flex-1{flex:1}.flex-wrap{flex-wrap:wrap}.text-sm{font-size:12px}.text-xs{font-size:11px}.text-muted{color:var(--gray-400)}.text-danger{color:var(--danger)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-medium{font-weight:500}.deadline-overdue{color:var(--danger);font-weight:700}.deadline-today{color:var(--warning);font-weight:700}.deadline-soon{color:var(--peach-500);font-weight:600}.deadline-ok{color:var(--gray-400)}.filter-tabs{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--radius-full);background:#ffffff73;border:1px solid #ffffffb3;gap:2px;padding:3px;display:flex}.filter-tab{border-radius:var(--radius-full);cursor:pointer;color:var(--gray-500);background:0 0;border:none;padding:7px 18px;font-family:inherit;font-size:13px;font-weight:500;transition:all .2s}.filter-tab.active{color:var(--peach-700);background:#ffffffe0;font-weight:700;box-shadow:0 2px 12px #d4604a26}.page-header{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.page-header h2{font-size:24px;font-weight:800}.page-header p{color:var(--gray-400);margin-top:2px;font-size:13px}.section-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.section-title{color:var(--peach-900);letter-spacing:.2px;align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.priority-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.priority-dot.urgent{background:var(--danger);box-shadow:0 0 6px #e0505080}.priority-dot.high{background:var(--warning);box-shadow:0 0 6px #e8943a80}.priority-dot.medium{background:var(--info)}.priority-dot.low{background:var(--success)}.stat-card{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow);border:1px solid var(--glass-border);align-items:center;gap:16px;padding:22px 24px;display:flex}.stat-icon{border-radius:var(--radius-lg);flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.stat-value{color:var(--peach-900);font-variant-numeric:tabular-nums;font-size:32px;font-weight:900;line-height:1}.stat-label{color:var(--gray-400);margin-top:4px;font-size:12px;font-weight:500}.task-row{border-radius:var(--radius-md);cursor:pointer;background:#ffffff73;border:1px solid #ffffffb3;align-items:center;gap:10px;margin-bottom:6px;padding:11px 14px;transition:all .2s;display:flex}.task-row:hover{background:#ffffffb8;transform:translate(2px);box-shadow:0 4px 16px #8c3c3214}.notif-dot{background:var(--danger);border:2px solid #fff;border-radius:50%;width:8px;height:8px;box-shadow:0 0 6px #e0505080}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:.3s cubic-bezier(.34,1.2,.64,1) fadeInUp}@keyframes slideIn{0%{opacity:0;transform:scale(.94)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.slide-in{animation:.22s cubic-bezier(.34,1.2,.64,1) slideIn}@media (width<=1280px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}.calendar-layout{grid-template-columns:1fr 300px;gap:16px;display:grid}.cal-event-dots{display:none}.cal-event-labels{display:block}.sidebar-overlay{z-index:199;-webkit-backdrop-filter:blur(2px);background:#1e141459;animation:.2s fadeIn;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.app-sidebar{transition:transform .28s cubic-bezier(.4,0,.2,1)}.sidebar-close-btn,.mobile-bottom-nav{display:none}.mobile-nav-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:8px 4px;font-family:inherit;display:flex;position:relative}.mobile-nav-indicator{background:var(--peach-500);border-radius:0 0 3px 3px;width:28px;height:3px;position:absolute;top:0;left:50%;transform:translate(-50%)}@media (width<=768px){:root{--sidebar-width:0px}.app-sidebar{box-shadow:none;transform:translate(-100%);width:272px!important}.app-sidebar.open{transform:translate(0);box-shadow:8px 0 48px #8c3c3233!important}.sidebar-close-btn{display:flex!important}.main-content{margin-left:0!important}.app-header{padding:0 16px!important}.header-menu-btn{display:flex!important}.header-subtitle{display:none}.page-content{max-height:none!important;padding:16px 16px 80px!important}.grid-2{grid-template-columns:1fr!important}.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)!important}.card{padding:14px}.filter-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;width:100%;padding-bottom:4px;overflow-x:auto;flex-wrap:nowrap!important;display:flex!important}.filter-tabs::-webkit-scrollbar{display:none}.filter-tab{white-space:nowrap;flex-shrink:0}.page-header{flex-wrap:wrap;gap:8px;margin-bottom:16px!important}.page-header h2{font-size:18px!important}.page-header>.flex{flex-wrap:wrap;gap:8px}.mobile-bottom-nav{-webkit-backdrop-filter:blur(24px);z-index:90;height:60px;padding:0 8px;padding-bottom:env(safe-area-inset-bottom,0px);background:#ffffffeb;border-top:1px solid #ffffffbf;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 20px #8c3c3214}.modal-backdrop{padding:12px}.modal{max-height:92vh;overflow-y:auto;max-width:100%!important}.btn{min-height:40px}.assign-btn-text:before{content:"指派任務"}.assign-btn-text{font-size:0}.assign-btn-text:before{font-size:14px}.grid-3 .card,.grid-4 .card{padding:16px 14px!important}.grid-3 .card p,.grid-4 .card p{font-size:10px!important}.calendar-layout{grid-template-columns:1fr!important}.cal-event-labels{display:none!important}.cal-event-dots{flex-wrap:wrap;gap:1px;margin-top:2px;display:flex!important}.cal-cell{min-height:52px!important;padding:4px 3px!important}.cal-cell>div:first-child{width:22px!important;height:22px!important;margin-bottom:2px!important;font-size:11px!important}.cal-add-btn-text{display:none}}
