@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap");:root{--font-main:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--bg-app:#f8fafc;--bg-surface:#ffffff;--bg-subtle:#f1f5f9;--bg-elevated:#ffffff;--text-main:#0f172a;--text-muted:#64748b;--text-subtle:#94a3b8;--text-inverse:#ffffff;--border-light:#e2e8f0;--border-subtle:#f1f5f9;--border-focus:#3b82f6;--color-primary:#3b82f6;--color-primary-hover:#2563eb;--color-primary-subtle:#eff6ff;--color-success:#10b981;--color-success-subtle:#ecfdf5;--color-warning:#f59e0b;--color-warning-subtle:#fffbeb;--color-danger:#ef4444;--color-danger-subtle:#fef2f2;--color-purple:#8b5cf6;--color-purple-subtle:#f5f3ff;--shadow-sm:0 1px 2px 0 rgba(0,0,0,0.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.07),0 2px 4px -2px rgba(0,0,0,0.05);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.08),0 4px 6px -4px rgba(0,0,0,0.04);--shadow-xl:0 20px 25px -5px rgba(0,0,0,0.1),0 8px 10px -6px rgba(0,0,0,0.04);--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-xl:24px;--radius-full:9999px;--header-height:72px;--mobile-nav-height:68px;--max-content-width:1440px}*{box-sizing:border-box;padding:0;margin:0;-webkit-tap-highlight-color:transparent}body,html{max-width:100vw;overflow-x:clip;font-family:var(--font-main);background-color:var(--bg-app);color:var(--text-main);line-height:1.5;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer;border:none;background:none;outline:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}input,select,textarea{font-family:inherit;font-size:1rem}a{color:inherit;text-decoration:none}:root{--sidebar-width-expanded:240px;--sidebar-width-collapsed:68px;--top-navbar-height:58px}.app-shell{display:flex;min-height:100vh;width:100%;background-color:var(--bg-app);position:relative}.sidebar-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:90;transition:opacity .2s ease}@media (min-width:768px){.sidebar-backdrop{display:none}}.app-sidebar{position:fixed;top:0;bottom:0;left:0;width:var(--sidebar-width-expanded);height:100dvh;max-height:100dvh;background:#ffffff;border-right:1px solid var(--border-light);display:flex;flex-direction:column;z-index:100;transition:width .25s cubic-bezier(.4,0,.2,1),transform .25s ease,box-shadow .25s ease;overflow:hidden;overscroll-behavior:none}@media (min-width:768px){.app-sidebar{position:-webkit-sticky;position:sticky;top:0;height:100dvh;max-height:100dvh}.app-shell.sidebar-collapsed .app-sidebar{width:var(--sidebar-width-collapsed)}.app-shell.sidebar-collapsed .app-sidebar.is-hovered,.app-shell.sidebar-collapsed .app-sidebar:hover{width:var(--sidebar-width-expanded);box-shadow:6px 0 28px -4px rgba(15,23,42,.15)}}@media (max-width:767px){.app-sidebar{transform:translateX(-100%);box-shadow:var(--shadow-xl)}.app-sidebar.mobile-open{transform:translateX(0)}}.sidebar-header{height:var(--top-navbar-height);justify-content:space-between;padding:0 14px;border-bottom:1px solid var(--border-subtle);flex-shrink:0;gap:8px}.sidebar-brand,.sidebar-header{display:flex;align-items:center}.sidebar-brand{gap:10px;overflow:hidden;white-space:nowrap;min-width:0}.sidebar-brand .brand-icon{width:38px;height:38px;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.25rem;box-shadow:var(--shadow-sm);color:white;flex-shrink:0}.sidebar-brand .brand-title{font-size:1.15rem;font-weight:800;color:var(--text-main);letter-spacing:-.02em;white-space:nowrap}.sidebar-header-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.sidebar-toggle-btn{display:none;width:32px;height:32px;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-muted);background:transparent;transition:all .15s ease;cursor:pointer;flex-shrink:0}@media (min-width:768px){.sidebar-toggle-btn{display:flex}}.sidebar-toggle-btn:hover{background:var(--bg-subtle);color:var(--text-main)}.mobile-close-btn{display:none;width:32px;height:32px;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-muted)}@media (max-width:767px){.mobile-close-btn{display:flex}}.sidebar-family-box{padding:10px 10px 4px;flex-shrink:0}.sidebar-family-pill{width:100%;display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--bg-subtle);border:1px solid var(--border-light);border-radius:var(--radius-md);text-align:left;transition:all .15s ease;overflow:hidden}.sidebar-family-pill:hover{background:#e2e8f0}.family-pill-icon{font-size:1.2rem;flex-shrink:0;width:24px;display:flex;align-items:center;justify-content:center}.family-pill-text{display:flex;flex-direction:column;min-width:0;overflow:hidden}.family-pill-name{font-size:.8rem;font-weight:800;color:var(--text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.family-pill-code{font-size:.72rem;font-weight:800;color:var(--color-primary);display:inline-flex;align-items:center;gap:3px;font-family:monospace}.family-pill-tag{font-size:.68rem;font-weight:700;color:var(--text-muted)}.sidebar-nav{flex:1 1;min-height:0;padding:8px;display:flex;flex-direction:column;gap:3px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.sidebar-nav::-webkit-scrollbar{width:4px}.sidebar-nav::-webkit-scrollbar-thumb{background:#e2e8f0;border-radius:var(--radius-full)}.sidebar-nav-item{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:var(--radius-md);color:var(--text-muted);font-size:.88rem;font-weight:700;transition:all .15s ease;white-space:nowrap}.sidebar-nav-item:hover{background:var(--bg-subtle);color:var(--text-main)}.sidebar-nav-item.active{background:var(--color-primary-subtle);color:var(--color-primary)}.sidebar-nav-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0}.sidebar-nav-label-wrap{display:flex;align-items:center;justify-content:space-between;flex:1 1;min-width:0}.sidebar-nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-nav-badge{font-size:.68rem;font-weight:800;background:#f1f5f9;color:#475569;padding:2px 6px;border-radius:6px}.sidebar-footer{padding:8px;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:3px;flex-shrink:0;margin-top:auto}.sidebar-footer-btn{width:100%;display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:var(--radius-md);color:var(--text-muted);font-size:.82rem;font-weight:700;transition:all .15s ease;white-space:nowrap}.sidebar-footer-btn:hover{background:var(--bg-subtle);color:var(--text-main)}@media (min-width:768px){.app-shell.sidebar-collapsed .app-sidebar:not(:hover) .sidebar-header{justify-content:center;padding:0}.app-shell.sidebar-collapsed .app-sidebar:not(:hover) .sidebar-brand{justify-content:center;gap:0}.app-shell.sidebar-collapsed .app-sidebar:not(:hover) .brand-title,.app-shell.sidebar-collapsed .app-sidebar:not(:hover) .sidebar-family-pill .family-pill-text,.app-shell.sidebar-collapsed .app-sidebar:not(:hover) .sidebar-header-actions{display:none!important}.app-shell.sidebar-collapsed .app-sidebar:not(:hover) .sidebar-family-pill{justify-content:center;padding:8px 0}.app-shell.sidebar-collapsed .app-sidebar:not(:hover) .sidebar-nav-label-wrap{display:none!important}.app-shell.sidebar-collapsed .app-sidebar:not(:hover) .sidebar-nav-item{justify-content:center;padding:10px 0}.app-shell.sidebar-collapsed .app-sidebar:not(:hover) .sidebar-footer-btn span{display:none!important}.app-shell.sidebar-collapsed .app-sidebar:not(:hover) .sidebar-footer-btn{justify-content:center;padding:8px 0}}.main-wrapper{flex:1 1;min-width:0;display:flex;flex-direction:column}.top-navbar{position:-webkit-sticky;position:sticky;top:0;z-index:50;height:calc(var(--top-navbar-height) + env(safe-area-inset-top, 0px));padding-top:env(safe-area-inset-top,0);background:rgba(255,255,255,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}@media (min-width:768px){.top-navbar{height:var(--top-navbar-height);padding-top:0;padding-left:24px;padding-right:24px}}.top-navbar-left{display:flex;align-items:center;gap:12px;min-width:0}.mobile-menu-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);color:var(--text-main);background:var(--bg-subtle)}@media (min-width:768px){.mobile-menu-btn{display:none}}.page-title-wrap{display:flex;flex-direction:column}.page-title-row{display:flex;align-items:center;gap:10px}.page-title{font-size:1.15rem;font-weight:800;color:var(--text-main);letter-spacing:-.02em;margin:0;white-space:nowrap}.page-subtitle-pill{display:none;align-items:center;gap:5px;font-size:.76rem;font-weight:700;color:var(--text-muted);background:var(--bg-subtle);padding:3px 8px;border-radius:var(--radius-full)}@media (min-width:768px){.page-subtitle-pill{display:inline-flex}}.top-navbar-right{display:flex;align-items:center;gap:10px}@media (max-width:480px){.top-navbar-right{gap:6px}}.navbar-action-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:38px;height:38px;padding:0;border-radius:var(--radius-full);background:var(--color-primary);color:#ffffff;font-size:.84rem;font-weight:800;box-shadow:0 2px 8px rgba(59,130,246,.25);transition:all .15s ease;flex-shrink:0}.navbar-action-btn .btn-label{display:none}@media (min-width:768px){.navbar-action-btn{width:auto;height:auto;padding:7px 14px;border-radius:var(--radius-md)}.navbar-action-btn .btn-label{display:inline}}.navbar-action-btn:hover{background:var(--color-primary-hover);transform:translateY(-1px)}.navbar-action-btn:active{transform:scale(.95)}.navbar-member-dropdown-wrap{position:relative;display:flex;align-items:center}.navbar-member-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--radius-full);background:transparent;padding:0;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;flex-shrink:0}.navbar-member-btn:hover{transform:scale(1.05)}.navbar-member-btn:active{transform:scale(.95)}.navbar-member-avatar{width:36px;height:36px;border-radius:var(--radius-full);border:2.5px solid var(--border-light);display:flex;align-items:center;justify-content:center;font-size:1.15rem;box-shadow:var(--shadow-sm);transition:all .15s ease}.navbar-member-btn.active .navbar-member-avatar{box-shadow:0 0 0 3px rgba(59,130,246,.3)}.navbar-member-dropdown-menu{position:absolute;top:calc(100% + 8px);right:0;width:250px;max-width:calc(100vw - 32px);background:#ffffff;border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);z-index:70;padding:6px;display:flex;flex-direction:column;gap:2px;animation:dropdownSlideIn .18s cubic-bezier(.16,1,.3,1);transform-origin:top right}@keyframes dropdownSlideIn{0%{opacity:0;transform:scale(.95) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.dropdown-header{padding:8px 10px 6px;border-bottom:1px solid var(--border-subtle);margin-bottom:4px;display:flex;flex-direction:column}.dropdown-header-title{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.dropdown-header-sub{font-size:.85rem;font-weight:800;color:var(--text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dropdown-items{display:flex;flex-direction:column;gap:2px;max-height:280px;overflow-y:auto}.dropdown-item{width:100%;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-md);background:transparent;transition:all .12s ease;text-align:left;cursor:pointer}.dropdown-item:hover{background:var(--bg-subtle)}.dropdown-item.selected{background:var(--color-primary-subtle)}.dropdown-item-avatar{width:32px;height:32px;border-radius:var(--radius-full);border:2px solid var(--border-light);display:flex;align-items:center;justify-content:center;font-size:1.05rem;background:#ffffff;flex-shrink:0}.dropdown-item-info{display:flex;flex-direction:column;min-width:0;flex:1 1}.dropdown-item-name{font-size:.86rem;font-weight:800;color:var(--text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dropdown-item-role{font-size:.72rem;font-weight:700;color:var(--text-muted)}.dropdown-item-check{color:var(--color-primary);flex-shrink:0}.navbar-icon-btn{width:36px;height:36px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;background:var(--bg-subtle);color:var(--text-muted);transition:all .15s ease}.navbar-icon-btn:hover{background:var(--border-light);color:var(--text-main)}.content-container{flex:1 1;width:100%;max-width:var(--max-content-width);margin:0 auto;padding:16px 16px 20px;display:flex;flex-direction:column;min-height:0}@media (min-width:768px){.content-container{padding:18px 24px 24px}}.main-content{width:100%;padding:0;flex:1 1;display:flex;flex-direction:column;min-height:0}.today-schedule-container{margin-bottom:16px}.today-schedule-capsule{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:8px 16px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-full);box-shadow:var(--shadow-sm);transition:all .18s cubic-bezier(.16,1,.3,1);cursor:pointer;text-decoration:none}.today-schedule-capsule:hover{background:var(--bg-subtle);border-color:#cbd5e1;box-shadow:var(--shadow-md);transform:translateY(-1px)}.today-schedule-capsule:active{transform:scale(.99)}.capsule-left{display:flex;align-items:center;gap:10px;min-width:0;flex:1 1}.capsule-icon-wrap{width:28px;height:28px;border-radius:var(--radius-full);background:var(--color-primary-subtle);display:flex;align-items:center;justify-content:center;flex-shrink:0}.capsule-icon{font-size:1rem;line-height:1}.capsule-calendar-icon{color:var(--color-primary)}.capsule-content{display:flex;align-items:center;gap:10px;min-width:0;overflow:hidden}.capsule-title{font-size:.88rem;font-weight:800;color:var(--text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.capsule-meta{display:inline-flex;align-items:center;gap:4px;font-size:.78rem;font-weight:600;color:var(--text-muted);white-space:nowrap}.capsule-location-meta{display:none}@media (min-width:768px){.capsule-location-meta{display:inline-flex}}.capsule-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.capsule-more-badge{font-size:.72rem;font-weight:700;background:var(--bg-subtle);color:var(--text-muted);border:1px solid var(--border-light);padding:2px 7px}.capsule-badge,.capsule-more-badge{border-radius:var(--radius-full);white-space:nowrap}.capsule-badge{font-size:.75rem;font-weight:800;background:var(--color-primary-subtle);color:var(--color-primary);padding:3px 9px}.capsule-badge.is-now{background:var(--color-success-subtle);color:var(--color-success)}.capsule-action{display:flex;align-items:center;gap:2px;color:var(--text-muted)}.capsule-action-text{display:none;font-size:.78rem;font-weight:700}@media (min-width:768px){.capsule-action-text{display:inline-block}}.capsule-chevron{color:var(--text-muted);transition:transform .15s ease}.today-schedule-capsule:hover .capsule-chevron{transform:translateX(2px);color:var(--color-primary)}.board-grid{display:flex;gap:12px;align-items:stretch;overflow-x:auto;padding-bottom:8px;flex:1 1;min-height:0;height:calc(100dvh - 195px);scrollbar-width:thin}@media (min-width:768px){.board-grid{gap:14px;height:calc(100dvh - 205px)}}.board-grid::-webkit-scrollbar{height:8px}.board-grid::-webkit-scrollbar-track{background:var(--bg-subtle);border-radius:var(--radius-full)}.board-grid::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:var(--radius-full)}.member-column{background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;overflow:hidden;transition:box-shadow .2s ease,transform .2s ease;min-width:270px;width:290px;flex:0 0 290px;height:100%}@media (min-width:1280px){.member-column{min-width:300px;width:320px;flex:0 0 320px}}.member-column:hover{box-shadow:var(--shadow-md)}.member-column.expanded-view{width:100%;max-width:920px;flex:1 1;min-height:0;height:calc(100dvh - 150px);margin:0 auto}@media (min-width:768px){.member-column.expanded-view{height:calc(100dvh - 155px)}}.member-column.expanded-view .column-body{max-height:none;overflow-y:auto}@media (min-width:640px){.member-column.expanded-view .task-list.task-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:10px;gap:10px}}.column-header{padding:12px 14px;border-bottom:1px solid var(--border-subtle);position:relative;flex-shrink:0}.column-header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:0}.member-info{display:flex;align-items:center;gap:10px}.member-info-clickable{cursor:pointer;border-radius:var(--radius-md);padding:4px 6px;margin:-4px -6px;transition:all .15s ease}.member-info-clickable:hover{background:var(--bg-subtle);transform:translateY(-1px)}.member-avatar-wrapper{width:40px;height:40px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:1.35rem;background:var(--bg-subtle);border:2.5px solid;box-shadow:var(--shadow-sm);flex-shrink:0}.member-name-group{display:flex;flex-direction:column}.member-name{font-size:1.02rem;font-weight:800;letter-spacing:-.01em;color:var(--text-main);line-height:1.2}.member-level-tag{display:flex;align-items:center;gap:3px;font-size:.74rem;font-weight:700;color:var(--text-muted)}.points-pill{display:flex;padding:4px 10px;background:var(--bg-subtle);border-radius:var(--radius-full);font-size:.88rem;color:var(--text-main);flex-shrink:0}.points-pill,.streak-badge{align-items:center;gap:4px;font-weight:800}.streak-badge{display:inline-flex;padding:3px 8px;background:#fff7ed;border:1px solid #fed7aa;color:#c2410c;font-size:.75rem;border-radius:var(--radius-full)}.level-progress-bar{width:100%;height:6px;background:var(--bg-subtle);border-radius:var(--radius-full);overflow:hidden;margin-top:8px}.level-progress-fill{height:100%;border-radius:var(--radius-full);transition:width .4s cubic-bezier(.4,0,.2,1)}.column-body{padding:12px 12px 20px;display:flex;flex-direction:column;gap:12px;flex:1 1;min-height:0;max-height:none;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.column-body::-webkit-scrollbar{width:5px}.column-body::-webkit-scrollbar-track{background:transparent}.column-body::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:var(--radius-full)}.column-body::-webkit-scrollbar-thumb:hover{background:#94a3b8}.task-section-title{display:flex;align-items:center;justify-content:space-between;font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:6px}.task-list{display:flex;flex-direction:column;gap:8px}.time-sections-container{display:flex;flex-direction:column;gap:10px}.time-section-block{display:flex;flex-direction:column;gap:6px}.time-section-header{display:flex;align-items:center;justify-content:space-between;padding:2px 2px 4px;border-bottom:1.5px solid var(--border-subtle);margin-bottom:0}.time-section-title{display:flex;align-items:center;gap:5px;font-size:.8rem;font-weight:800;color:var(--text-main);letter-spacing:-.01em}.time-section-icon{font-size:.9rem;line-height:1}.time-section-label{font-weight:800}.time-section-count{font-size:.7rem;font-weight:800;color:var(--text-muted);background:var(--bg-subtle);padding:2px 6px;border-radius:var(--radius-full)}.task-card{background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:11px 13px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow-sm);transition:all .18s cubic-bezier(.4,0,.2,1);position:relative}.task-card:hover{border-color:#cbd5e1;box-shadow:var(--shadow-md)}.task-card.completed{background:#f8fafc;border-color:var(--border-subtle);opacity:.85}.task-card.pending-approval{background:#fffbeb;border-color:#fde68a}.task-card.rejected{background:#fff7ed;border-color:#fdba74}.task-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.task-title-group{display:flex;align-items:center;gap:7px;flex:1 1;min-width:0}.task-emoji-icon{font-size:1.15rem;line-height:1;flex-shrink:0}.task-title{font-size:.9rem;font-weight:700;color:var(--text-main);line-height:1.3}.task-card.completed .task-title{text-decoration:line-through;color:var(--text-muted)}.parent-check-shield{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-sm);background:#fef3c7;color:#b45309;border:1px solid #fde68a;cursor:pointer;position:relative;flex-shrink:0;transition:transform .15s ease}.parent-check-shield:hover{transform:scale(1.1);background:#fde68a}.shield-tooltip{position:absolute;bottom:calc(100% + 6px);right:0;background:#0f172a;color:#f8fafc;font-size:.72rem;font-weight:700;padding:4px 8px;border-radius:var(--radius-sm);white-space:nowrap;box-shadow:var(--shadow-md);z-index:20;animation:fadeIn .15s ease}.task-desc{font-size:.78rem;color:var(--text-muted);line-height:1.35}.task-badges-row{width:100%}.task-badges,.task-badges-row{display:flex;align-items:center}.task-badges{gap:6px;flex-wrap:wrap}.task-action-row{display:flex;width:100%;margin-top:2px}.task-action-btn{display:inline-flex;align-items:center;justify-content:center;width:100%;gap:6px;padding:7px 12px;font-size:.82rem;font-weight:800;border-radius:var(--radius-md);background:var(--color-primary-subtle);color:var(--color-primary);border:1px solid rgba(59,130,246,.25);transition:all .15s cubic-bezier(.4,0,.2,1);cursor:pointer}.task-action-btn:hover{background:var(--color-primary);color:white;transform:translateY(-1px);box-shadow:var(--shadow-sm)}.task-action-btn.completed{background:#dcfce7;color:#15803d;border-color:#86efac}.task-action-btn.completed:hover{background:#bbf7d0;color:#166534}.task-action-btn.pending{background:#fef3c7;color:#b45309;border-color:#fde68a}.task-action-btn.rejected{background:#ffedd5;color:#c2410c;border-color:#fdba74}.badge-tag{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;font-weight:700;padding:2px 7px;border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-muted)}.badge-points{background:#eff6ff;color:#2563eb;font-weight:800}.badge-approval{background:#fef3c7;color:#92400e}.badge-routine{background:#f1f5f9;color:#475569}.rewards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:20px;gap:20px}.reward-card{background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-xl);padding:20px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:var(--shadow-sm);transition:all .2s ease;position:relative;overflow:hidden}.reward-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.reward-icon-badge{width:56px;height:56px;background:var(--bg-subtle);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:2rem;margin-bottom:14px}.reward-title{font-size:1.1rem;font-weight:800;color:var(--text-main);margin-bottom:4px}.reward-desc{font-size:.85rem;color:var(--text-muted);margin-bottom:16px}.reward-cost-badge{justify-content:space-between;margin-bottom:16px;font-size:.95rem;font-weight:800}.cost-tag,.reward-cost-badge{display:flex;align-items:center}.cost-tag{gap:4px;color:var(--color-primary);font-size:1.15rem}.btn-primary{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 18px;background:var(--color-primary);color:white;font-weight:700;font-size:.95rem;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:all .15s ease}.btn-primary:hover{background:var(--color-primary-hover);box-shadow:var(--shadow-md)}.btn-primary:disabled{background:var(--bg-subtle);color:var(--text-subtle);cursor:not-allowed;box-shadow:none}.modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.65);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:16px;z-index:1000;animation:fadeIn .2s ease;overflow-y:auto}.modal-card,.modal-content{background:var(--bg-surface);border-radius:var(--radius-xl);padding:24px;width:100%;max-width:480px;max-height:min(88vh,88dvh);display:flex;flex-direction:column;box-shadow:var(--shadow-xl);position:relative;animation:scaleUp .25s cubic-bezier(.16,1,.3,1);overflow:hidden;box-sizing:border-box}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-shrink:0}.modal-title{font-size:1.25rem;font-weight:800;color:var(--text-main);letter-spacing:-.02em}.modal-subtitle{font-size:.8rem;font-weight:600;color:var(--text-muted)}.modal-body,.modal-card>form,.modal-content>form,.modal-form{flex:1 1;min-height:0;overflow-y:auto;padding-right:4px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.modal-body::-webkit-scrollbar,.modal-card>form::-webkit-scrollbar,.modal-content>form::-webkit-scrollbar,.modal-form::-webkit-scrollbar{width:6px}.modal-body::-webkit-scrollbar-track,.modal-card>form::-webkit-scrollbar-track,.modal-content>form::-webkit-scrollbar-track,.modal-form::-webkit-scrollbar-track{background:transparent}.modal-body::-webkit-scrollbar-thumb,.modal-card>form::-webkit-scrollbar-thumb,.modal-content>form::-webkit-scrollbar-thumb,.modal-form::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:9999px}.modal-body::-webkit-scrollbar-thumb:hover,.modal-card>form::-webkit-scrollbar-thumb:hover,.modal-content>form::-webkit-scrollbar-thumb:hover,.modal-form::-webkit-scrollbar-thumb:hover{background:#94a3b8}@media (max-width:767px){.modal-overlay{padding:12px;align-items:flex-end}.modal-card,.modal-content{padding:20px 16px 24px;border-radius:var(--radius-xl);max-height:min(86vh,86dvh)}}.assignee-quick-btn{font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:var(--radius-full);background:var(--bg-subtle);color:var(--text-muted);border:1px solid var(--border-light);cursor:pointer;transition:all .15s ease}.assignee-quick-btn:hover{background:var(--border-light);color:var(--text-main)}.assignee-quick-btn.active{background:var(--color-primary-subtle);color:var(--color-primary);border-color:var(--color-primary)}.assignee-pills-grid{display:flex;flex-wrap:wrap;gap:8px}.assignee-pill{display:flex;align-items:center;gap:8px;padding:7px 12px;border-radius:var(--radius-full);border:1.5px solid var(--border-light);background:var(--bg-surface);cursor:pointer;transition:all .15s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.assignee-pill.selected{box-shadow:var(--shadow-sm);opacity:1}.assignee-pill:not(.selected){opacity:.6;background:var(--bg-subtle)}.assignee-pill:hover{opacity:1;transform:translateY(-1px)}.approval-item{background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px;box-shadow:var(--shadow-sm)}.approval-actions{display:flex;align-items:center;gap:8px}.btn-approve{padding:8px 16px;background:var(--color-success);color:white;font-weight:700;font-size:.85rem;border-radius:var(--radius-md);transition:all .15s ease}.btn-approve:hover{background:#059669}.btn-reject{padding:8px 16px;background:var(--bg-subtle);color:var(--color-danger);font-weight:700;font-size:.85rem;border-radius:var(--radius-md);transition:all .15s ease}.btn-reject:hover{background:var(--color-danger-subtle)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes pulseGlow{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.pulse-anim{animation:pulseGlow .3s ease-in-out}.calendar-day-cell:hover{background-color:var(--bg-subtle)!important}@media (max-width:768px){.calendar-day-cell{min-height:70px!important;padding:4px 2px!important}}.date-selector-wrapper{margin-bottom:14px}.date-selector-container{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-xl);padding:8px 14px;box-shadow:var(--shadow-sm)}.top-navbar-center{display:none}@media (min-width:768px){.top-navbar-center{display:flex;align-items:center;justify-content:center;position:absolute;left:50%;transform:translateX(-50%);pointer-events:auto;z-index:10}}.navbar-date-mobile{display:flex;align-items:center}@media (min-width:768px){.navbar-date-mobile{display:none}}.date-mobile-wrap{position:relative;display:flex;align-items:center}.date-mobile-trigger{display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 9px;border-radius:var(--radius-full);background:var(--bg-subtle);border:1px solid var(--border-light);color:var(--text-main);font-size:.8rem;font-weight:700;cursor:pointer;transition:all .15s ease;white-space:nowrap}.date-mobile-trigger.active,.date-mobile-trigger:hover{background:var(--color-primary-subtle);border-color:var(--color-primary);color:var(--color-primary)}.date-mobile-trigger.past-date{background:#fef3c7;border-color:#fde68a;color:#b45309;font-weight:800}.date-mobile-icon{color:inherit;flex-shrink:0}.date-mobile-label{letter-spacing:.02em;line-height:1}@media (max-width:380px){.date-mobile-trigger{height:30px;padding:0 7px;font-size:.76rem;gap:3px}}.date-navbar-wrap{display:inline-flex;align-items:center;gap:4px;background:var(--bg-surface);padding:3px 6px;border-radius:var(--radius-full);border:1px solid var(--border-light);box-shadow:0 1px 3px rgba(0,0,0,.04);transition:all .15s ease}.date-navbar-wrap:hover{border-color:#cbd5e1;box-shadow:0 2px 5px rgba(0,0,0,.06)}.date-navbar-arrow{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--text-muted);background:transparent;border:none;cursor:pointer;transition:all .15s ease}.date-navbar-arrow:hover:not(.disabled){background:var(--color-primary-subtle);color:var(--color-primary)}.date-navbar-arrow.disabled{opacity:.25;cursor:not-allowed;pointer-events:none}.date-navbar-trigger{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;font-weight:700;color:var(--text-main);background:var(--bg-subtle);border:1px solid transparent;padding:4px 10px;border-radius:var(--radius-full);cursor:pointer;transition:all .15s ease;white-space:nowrap}.date-navbar-trigger:hover{background:var(--color-primary-subtle);color:var(--color-primary)}.date-navbar-trigger.past-date{background:var(--color-warning-subtle);border-color:var(--color-warning);color:#b45309;font-weight:800}.date-navbar-reset{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;font-weight:800;color:#b45309;background:#fef3c7;border:1px solid #fde68a;padding:3px 8px;border-radius:var(--radius-full);cursor:pointer;transition:all .15s ease;margin-left:2px}.date-navbar-reset:hover{background:#fde68a;color:#78350f;transform:translateY(-1px)}.date-selector-nav{display:flex;align-items:center;gap:6px}.date-nav-arrow{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-light);color:var(--text-main);cursor:pointer;transition:all .15s ease}.date-nav-arrow:hover:not(.disabled){background:var(--color-primary-subtle);color:var(--color-primary);border-color:var(--color-primary)}.date-nav-arrow.disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.date-picker-button-wrap{position:relative;display:flex;align-items:center}.date-picker-trigger{display:flex;align-items:center;gap:8px;padding:6px 14px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-light);font-size:.88rem;font-weight:700;color:var(--text-main);cursor:pointer;transition:all .15s ease;white-space:nowrap}.date-picker-trigger.active,.date-picker-trigger:hover{background:var(--color-primary-subtle);border-color:var(--color-primary);color:var(--color-primary)}.date-picker-trigger.past-date{background:var(--color-warning-subtle);border-color:var(--color-warning);color:#b45309}@keyframes popoverScaleIn{0%{opacity:0;transform:translateX(-50%) scale(.95)}to{opacity:1;transform:translateX(-50%) scale(1)}}.date-custom-popover{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);width:280px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-xl);box-shadow:0 10px 25px -5px rgba(0,0,0,.12),0 8px 10px -6px rgba(0,0,0,.06);padding:14px;z-index:200;animation:popoverScaleIn .15s cubic-bezier(.16,1,.3,1)}@keyframes popoverScaleRight{0%{opacity:0;transform:scale(.94) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.date-mobile-wrap .date-custom-popover{left:auto;right:-35px;transform:none;transform-origin:top right;animation:popoverScaleRight .15s cubic-bezier(.16,1,.3,1);max-width:calc(100vw - 24px)}.calendar-popover-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.calendar-popover-month-title{font-size:.88rem;font-weight:800;color:var(--text-main);text-align:center}.calendar-popover-nav-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-light);color:var(--text-main);cursor:pointer;transition:all .15s ease}.calendar-popover-nav-btn:hover:not(.disabled){background:var(--color-primary-subtle);color:var(--color-primary);border-color:var(--color-primary)}.calendar-popover-nav-btn.disabled{opacity:.25;cursor:not-allowed;pointer-events:none}.calendar-popover-weekdays{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:2px;gap:2px;margin-bottom:6px;text-align:center}.calendar-popover-weekday{font-size:.72rem;font-weight:800;color:var(--text-subtle);text-transform:uppercase;padding:2px 0}.calendar-popover-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:3px;gap:3px}.calendar-popover-day{height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);font-size:.82rem;font-weight:600;color:var(--text-main);background:transparent;border:none;cursor:pointer;transition:all .12s ease}.calendar-popover-day:hover:not(.future-disabled):not(.selected){background:var(--bg-subtle);color:var(--color-primary)}.calendar-popover-day.other-month{color:#cbd5e1;font-weight:500}.calendar-popover-day.today:not(.selected){font-weight:800;color:var(--color-primary);background:var(--color-primary-subtle)}.calendar-popover-day.selected{background:var(--color-primary)!important;color:#ffffff!important;font-weight:800;box-shadow:0 2px 6px rgba(59,130,246,.35)}.calendar-popover-day.future-disabled{opacity:.25;cursor:not-allowed;pointer-events:none}.calendar-popover-footer{margin-top:10px;padding-top:8px;border-top:1px solid var(--border-light);display:flex;justify-content:center}.calendar-popover-today-btn{font-size:.76rem;font-weight:800;color:var(--color-primary);background:transparent;border:none;cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm);transition:all .12s ease}.calendar-popover-today-btn:hover{background:var(--color-primary-subtle)}.date-native-input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;pointer-events:none}.past-date-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 16px;margin-top:8px;background:linear-gradient(135deg,#fffbeb,#fef3c7);border:1px solid #fde68a;border-radius:var(--radius-lg);color:#92400e;font-size:.85rem;animation:fadeIn .2s ease}.past-date-banner-content{display:flex;align-items:center;gap:8px;line-height:1.4}.past-date-banner-icon{font-size:1.05rem;flex-shrink:0}.past-date-today-btn{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;background:#ffffff;border:1px solid #fcd34d;border-radius:var(--radius-full);font-size:.78rem;font-weight:700;color:#b45309;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.05);transition:all .15s ease;flex-shrink:0}.past-date-today-btn:hover{background:#fef3c7;border-color:#f59e0b;color:#78350f;transform:translateY(-1px)}@media (max-width:640px){.date-selector-container{padding:6px 10px}.date-selector-nav{justify-content:space-between}.date-picker-button-wrap{flex:1 1;justify-content:center}.date-picker-trigger{width:100%;justify-content:center}.past-date-banner{flex-direction:column;align-items:flex-start;gap:8px}.past-date-today-btn{align-self:flex-end}}