@import "https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700;800&family=Noto+Sans+TC:wght@400;500;700&display=swap";:root{--color-cream:#fff9e3;--color-cream-deep:#fff3c4;--color-tofu:#fff;--color-tofu-hover:#fffdf7;--color-wood:#8b7355;--color-wood-light:#a89070;--color-wood-dark:#6b5640;--color-text:#5a4a3a;--color-text-light:#8b7b6b;--color-text-muted:#b0a090;--color-border:#e8dcc8;--color-border-light:#f0e8d8;--color-pink:#ffe4e1;--color-pink-deep:#ffd0cc;--color-blue:#e0f0ff;--color-blue-deep:#c0dfff;--color-green:#e8f5e0;--color-green-deep:#c8e8b8;--color-yellow:#fff3d0;--color-yellow-deep:#ffe8a0;--color-purple:#f0e8ff;--color-purple-deep:#e0d0ff;--color-orange:#fff0e0;--color-orange-deep:#ffe0c0;--color-pending:#ffe8a0;--color-delayed:#ffd0cc;--color-completed:#c8e8b8;--color-reviewing:#c0dfff;--color-reviewed:#e0d0ff;--shadow-sm:0 2px 8px #8b73550f;--shadow-md:0 4px 16px #8b735514;--shadow-lg:0 8px 32px #8b73551f;--shadow-tofu:0 4px 12px #8b73550f, 0 1px 3px #8b73550a;--shadow-tofu-hover:0 8px 24px #8b73551a, 0 2px 6px #8b73550f;--shadow-tofu-active:0 2px 6px #8b735514;--radius-sm:12px;--radius-md:16px;--radius-lg:24px;--radius-xl:32px;--radius-full:9999px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--transition-bounce:cubic-bezier(.34, 1.56, .64, 1);--transition-smooth:cubic-bezier(.4, 0, .2, 1);--duration-fast:.15s;--duration-normal:.25s;--duration-slow:.4s;--font-family:"Nunito", "Noto Sans TC", -apple-system, BlinkMacSystemFont, sans-serif;--font-size-xs:.75rem;--font-size-sm:.8125rem;--font-size-base:.9375rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.375rem;--font-size-2xl:1.75rem;--font-size-3xl:2.25rem;--sidebar-width:260px;--sidebar-collapsed-width:72px;--header-height:64px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-family);background-color:var(--color-cream);color:var(--color-text);min-height:100vh;line-height:1.6;overflow-x:hidden}#root{min-height:100vh}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:var(--font-family);border:none;outline:none}input,select,textarea{font-family:var(--font-family);outline:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-wood-light)}@keyframes tofu-bounce-in{0%{opacity:0;transform:scale(.9)}50%{transform:scale(1.02)}to{opacity:1;transform:scale(1)}}@keyframes tofu-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes tofu-slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes tofu-slide-right{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes tofu-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}@keyframes tofu-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes number-pop{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}@keyframes overlay-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-bounce{0%{opacity:0;transform:translate(-50%,-50%)scale(.85)}60%{transform:translate(-50%,-50%)scale(1.03)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.animate-fade-in{animation:tofu-fade-in var(--duration-normal) var(--transition-smooth) both}.animate-slide-up{animation:tofu-slide-up var(--duration-slow) var(--transition-bounce) both}.animate-bounce-in{animation:tofu-bounce-in var(--duration-slow) var(--transition-bounce) both}.stagger-children>*{animation:tofu-fade-in var(--duration-normal) var(--transition-smooth) both}.stagger-children>:first-child{animation-delay:0s}.stagger-children>:nth-child(2){animation-delay:50ms}.stagger-children>:nth-child(3){animation-delay:.1s}.stagger-children>:nth-child(4){animation-delay:.15s}.stagger-children>:nth-child(5){animation-delay:.2s}.stagger-children>:nth-child(6){animation-delay:.25s}.stagger-children>:nth-child(7){animation-delay:.3s}.stagger-children>:nth-child(8){animation-delay:.35s}.stagger-children>:nth-child(9){animation-delay:.4s}.stagger-children>:nth-child(10){animation-delay:.45s}.tofu-spinner{border:3px solid var(--color-border);border-top-color:var(--color-wood);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}.number-pop{animation:number-pop var(--duration-normal) var(--transition-bounce)}.tofu-toast-container{z-index:9999;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;right:24px}.tofu-toast{border-radius:var(--radius-lg);background:var(--color-tofu);box-shadow:var(--shadow-lg);font-size:var(--font-size-sm);color:var(--color-text);align-items:center;gap:10px;min-width:240px;max-width:400px;padding:14px 20px;font-weight:600;display:flex}.tofu-toast--success{border-left:4px solid var(--color-green-deep)}.tofu-toast--error{border-left:4px solid var(--color-pink-deep)}.tofu-toast--info{border-left:4px solid var(--color-blue-deep)}.tofu-toast__icon{flex-shrink:0;font-size:1.1rem}.tofu-avatar{border-radius:var(--radius-md);border:2px solid var(--color-border-light);background:var(--color-cream);flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.tofu-avatar img{object-fit:cover;width:100%;height:100%}.sidebar{background:var(--color-tofu);height:100vh;box-shadow:var(--shadow-md);z-index:100;flex-direction:column;display:flex;position:fixed;top:0;left:0;overflow:hidden}.sidebar__header{padding:var(--space-lg) var(--space-md);border-bottom:1px solid var(--color-border-light);justify-content:space-between;align-items:center;min-height:72px;display:flex}.sidebar__logo{cursor:pointer;align-items:center;gap:10px;display:flex}.sidebar__logo-icon{flex-shrink:0;font-size:1.6rem}.sidebar__logo-text{font-size:var(--font-size-lg);color:var(--color-wood-dark);white-space:nowrap;font-weight:800}.sidebar__toggle{background:var(--color-cream);border-radius:var(--radius-sm);cursor:pointer;width:28px;height:28px;color:var(--color-text-light);transition:all var(--duration-fast) var(--transition-smooth);border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;display:flex}.sidebar__toggle:hover{background:var(--color-cream-deep)}.sidebar--collapsed .sidebar__toggle{margin:0 auto}.sidebar__nav{padding:var(--space-md) var(--space-sm);flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.sidebar__link{color:inherit;text-decoration:none}.sidebar__link-inner{border-radius:var(--radius-md);transition:all var(--duration-fast) var(--transition-smooth);color:var(--color-text-light);align-items:center;gap:12px;padding:10px 14px;display:flex}.sidebar__link:hover .sidebar__link-inner{background:var(--color-cream);color:var(--color-text)}.sidebar__link--active .sidebar__link-inner{background:var(--color-cream-deep);color:var(--color-wood-dark);font-weight:700}.sidebar__link-icon{text-align:center;flex-shrink:0;width:24px;font-size:1.2rem}.sidebar__link-label{font-size:var(--font-size-sm);white-space:nowrap;font-weight:600}.sidebar--collapsed .sidebar__link-inner{justify-content:center;padding:10px}.sidebar__footer{padding:var(--space-md);border-top:1px solid var(--color-border-light)}.sidebar__user{align-items:center;gap:10px;display:flex}.sidebar__user-info{flex-direction:column;display:flex;overflow:hidden}.sidebar__user-name{font-size:var(--font-size-sm);color:var(--color-text);white-space:nowrap;font-weight:700}.sidebar__user-role{font-size:var(--font-size-xs);color:var(--color-text-muted)}.sidebar--collapsed .sidebar__user{justify-content:center}.tofu-btn{border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast) var(--transition-smooth);white-space:nowrap;font-weight:600;font-family:var(--font-family);border:none;justify-content:center;align-items:center;gap:6px;display:inline-flex}.tofu-btn:disabled{opacity:.5;cursor:not-allowed}.tofu-btn--sm{font-size:var(--font-size-xs);border-radius:var(--radius-sm);padding:6px 14px}.tofu-btn--md{font-size:var(--font-size-sm);padding:10px 20px}.tofu-btn--lg{font-size:var(--font-size-md);padding:14px 28px}.tofu-btn--primary{background:var(--color-wood);color:#fff}.tofu-btn--primary:hover:not(:disabled){background:var(--color-wood-dark)}.tofu-btn--secondary{background:var(--color-cream-deep);color:var(--color-wood-dark)}.tofu-btn--secondary:hover:not(:disabled){background:var(--color-cream)}.tofu-btn--ghost{color:var(--color-wood);background:0 0}.tofu-btn--ghost:hover:not(:disabled){background:var(--color-cream)}.tofu-btn--danger{background:var(--color-pink-deep);color:#8b3a3a}.tofu-btn--danger:hover:not(:disabled){background:#ffbbb5}.tofu-btn--success{background:var(--color-green-deep);color:#3a6b3a}.tofu-btn--success:hover:not(:disabled){background:#b8d8a8}.tofu-btn__icon{align-items:center;font-size:1.1em;display:flex}.header{height:var(--header-height);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:0 var(--space-xl);z-index:50;transition:left var(--duration-slow) var(--transition-smooth);border-bottom:1px solid var(--color-border-light);background:#fff9e3d9;justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;right:0}.header__title{font-size:var(--font-size-xl);color:var(--color-wood-dark);font-weight:800}.header__right{align-items:center;gap:var(--space-md);display:flex}.header__admin-badge{background:var(--color-yellow-deep);border-radius:var(--radius-full);font-size:var(--font-size-xs);color:var(--color-wood-dark);padding:4px 12px;font-weight:700}.header__greeting{font-size:var(--font-size-sm);color:var(--color-text-light);font-weight:600}.main-layout{min-height:100vh}.main-layout__content{padding-top:calc(var(--header-height) + var(--space-lg));padding-left:var(--space-xl);padding-right:var(--space-xl);padding-bottom:var(--space-2xl);transition:margin-left var(--duration-slow) var(--transition-smooth);min-height:100vh}.tofu-input-wrap{flex-direction:column;gap:6px;display:flex}.tofu-input-label{font-size:var(--font-size-sm);color:var(--color-text);font-weight:600}.tofu-input-required{color:#d4726a;margin-left:2px}.tofu-input-container{align-items:center;display:flex;position:relative}.tofu-input-icon{color:var(--color-text-muted);pointer-events:none;font-size:1.1em;position:absolute;left:14px}.tofu-input{border:2px solid var(--color-border-light);border-radius:var(--radius-md);width:100%;font-size:var(--font-size-base);background:var(--color-tofu);color:var(--color-text);transition:all var(--duration-normal) var(--transition-bounce);font-family:var(--font-family);padding:12px 16px}.tofu-input-icon+.tofu-input{padding-left:40px}.tofu-input::placeholder{color:var(--color-text-muted)}.tofu-input:focus{border-color:var(--color-wood-light);transform:scale(1.01);box-shadow:0 0 0 3px #8b73551a}.tofu-input:disabled{background:var(--color-cream);opacity:.6;cursor:not-allowed}.tofu-textarea{resize:vertical;min-height:80px}.tofu-input-wrap--error .tofu-input{border-color:var(--color-pink-deep)}.tofu-input-error{font-size:var(--font-size-xs);color:#d4726a}.tofu-input-wrap--focused .tofu-input-label{color:var(--color-wood)}.login-page{background:var(--color-cream);min-height:100vh;padding:var(--space-xl);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.login-avatars{pointer-events:none;opacity:.3;position:absolute;inset:0}.login-avatar-float{position:absolute}.login-card{background:var(--color-tofu);border-radius:var(--radius-xl);padding:var(--space-2xl) var(--space-xl);box-shadow:var(--shadow-lg);z-index:1;text-align:center;width:100%;max-width:420px;position:relative}.login-card--shake{animation:.4s ease-in-out tofu-shake}.login-card__logo{margin-bottom:var(--space-md);font-size:3.5rem}.login-card__title{font-size:var(--font-size-2xl);color:var(--color-wood-dark);margin-bottom:4px;font-weight:800}.login-card__subtitle{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-xl)}.login-card__form{gap:var(--space-md);text-align:left;flex-direction:column;display:flex}.login-card__error{background:var(--color-pink);border-radius:var(--radius-sm);color:#8b3a3a;font-size:var(--font-size-sm);text-align:center;padding:10px 14px;font-weight:600}.login-card__hint{margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--color-border-light)}.login-card__hint p{font-size:var(--font-size-xs);color:var(--color-text-muted);line-height:1.8}.tofu-card{background:var(--color-tofu);border-radius:var(--radius-lg);box-shadow:var(--shadow-tofu);transition:box-shadow var(--duration-normal) var(--transition-smooth);flex-direction:column;display:flex;overflow:hidden}.tofu-card__header{padding:var(--space-md) var(--space-lg);background:#ffffff4d;border-bottom:1px solid #0000000d}.tofu-card__header h3{color:var(--color-primary);margin:0;font-size:1.1rem;font-weight:600}.tofu-card__body{padding:var(--space-lg);flex:1}.tofu-card--hoverable:hover{box-shadow:var(--shadow-tofu-hover)}.dashboard{gap:var(--space-xl);flex-direction:column;display:flex}.dashboard-loading{justify-content:center;align-items:center;gap:var(--space-md);min-height:60vh;color:var(--color-text-muted);flex-direction:column;display:flex}.dashboard__welcome h2{font-size:var(--font-size-2xl);color:var(--color-wood-dark);font-weight:800}.dashboard__welcome p{font-size:var(--font-size-base);color:var(--color-text-muted);margin-top:4px}.dashboard__stats{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.stat-card{text-align:center;padding:var(--space-lg) var(--space-md)!important}.stat-card__header{margin-bottom:var(--space-sm);justify-content:center;align-items:center;gap:6px;display:flex}.stat-card__icon{font-size:1.3rem}.stat-card__label{font-size:var(--font-size-sm);color:var(--color-text-light);font-weight:700}.stat-card__value{font-size:var(--font-size-3xl);color:var(--color-wood-dark);font-weight:800}.stat-card--yellow{border-top:4px solid var(--color-pending)}.stat-card--pink{border-top:4px solid var(--color-delayed)}.stat-card--green{border-top:4px solid var(--color-completed)}.stat-card--blue{border-top:4px solid var(--color-reviewing)}.stat-card--purple{border-top:4px solid var(--color-reviewed)}.dashboard__summary{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.summary-card__header{margin-bottom:var(--space-md);align-items:center;gap:8px;display:flex}.summary-card__header span{font-size:1.4rem}.summary-card__header h3{font-size:var(--font-size-md);color:var(--color-text);font-weight:700}.summary-card__body{gap:var(--space-sm);flex-direction:column;display:flex}.summary-item{padding:var(--space-sm) 0;justify-content:space-between;align-items:center;display:flex}.summary-item__label{font-size:var(--font-size-sm);color:var(--color-text-light)}.summary-item__value{font-size:var(--font-size-lg);color:var(--color-wood-dark);font-weight:800}.summary-item__value--warn{color:#d4726a}.summary-card__note{font-size:var(--font-size-sm);color:var(--color-text-light);line-height:1.8}.monthly-goals{flex-direction:column;gap:8px;margin-top:4px;display:flex}.monthly-goal-item{background:var(--color-tofu);border-radius:var(--radius-sm);font-size:var(--font-size-sm);border-left:3px solid var(--color-sage);align-items:flex-start;gap:8px;padding:8px 10px;display:flex}.goal-bullet{color:var(--color-sage);font-weight:700}.goal-text{color:var(--color-text);line-height:1.4}.tofu-tabs{background:var(--color-cream);border-radius:var(--radius-lg);flex-wrap:wrap;gap:4px;padding:4px;display:flex;overflow-x:auto}.tofu-tab{border-radius:var(--radius-md);color:var(--color-text-light);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--duration-fast) var(--transition-smooth);white-space:nowrap;font-weight:600;font-family:var(--font-family);background:0 0;border:none;align-items:center;gap:6px;padding:10px 18px;display:flex}.tofu-tab:hover{color:var(--color-text);background:#ffffff80}.tofu-tab--active{background:var(--color-tofu);color:var(--color-wood-dark);box-shadow:var(--shadow-sm)}.tofu-tab__icon{font-size:1em}.tofu-tab__count{border-radius:var(--radius-full);background:var(--color-cream-deep);justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:.7rem;font-weight:700;display:inline-flex}.tofu-tab--active .tofu-tab__count{background:var(--color-wood);color:#fff}.tofu-table-wrapper{border-radius:var(--radius-lg);background:var(--color-tofu);box-shadow:var(--shadow-sm);overflow-x:auto}.tofu-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.tofu-table thead{background:var(--color-cream)}.tofu-table th{text-align:left;color:var(--color-wood-dark);font-weight:700;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;border-bottom:2px solid var(--color-border-light);padding:14px 16px}.tofu-table td{border-bottom:1px solid var(--color-border-light);color:var(--color-text);vertical-align:middle;white-space:nowrap;padding:12px 16px}.tofu-table tbody tr{transition:background var(--duration-fast) var(--transition-smooth)}.tofu-table tbody tr:hover{background:var(--color-cream)}.tofu-table tbody tr:last-child td{border-bottom:none}.tofu-table__clickable{cursor:pointer}.tofu-table__actions{align-items:center;gap:6px;display:flex}.tofu-table-empty{padding:var(--space-2xl);color:var(--color-text-muted);justify-content:center;align-items:center;gap:var(--space-sm);flex-direction:column;display:flex}.tofu-table-empty__icon{font-size:2.5rem}.tofu-badge{font-weight:700;font-size:var(--font-size-xs);white-space:nowrap;border:1px solid #0000;border-radius:6px;align-items:center;padding:4px 12px;display:inline-flex}.tofu-badge--sm{padding:2px 8px;font-size:.65rem}.tofu-badge--lg{font-size:var(--font-size-sm);padding:6px 16px}.tofu-badge--yellow{color:#d48806;background:#fffbe6;border-color:#ffe58f}.tofu-badge--red{color:#cf1322;background:#fff1f0;border-color:#ffa39e}.tofu-badge--green{color:#389e0d;background:#f6ffed;border-color:#b7eb8f}.tofu-badge--purple{color:#531dab;background:#f9f0ff;border-color:#d3adf7}.tofu-badge--blue{color:#096dd9;background:#e6f7ff;border-color:#91d5ff}.tofu-badge--orange{color:#d4380d;background:#fff2e8;border-color:#ffbb96}.tofu-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#5a4a3a4d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.tofu-modal{background:var(--color-tofu);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);z-index:1001;flex-direction:column;max-height:90vh;display:flex;position:relative;overflow:hidden}.tofu-modal--sm{width:min(400px,90vw)}.tofu-modal--md{width:min(560px,90vw)}.tofu-modal--lg{width:min(780px,92vw)}.tofu-modal--xl{width:min(960px,95vw)}.tofu-modal__header{padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--color-border-light);justify-content:space-between;align-items:center;display:flex}.tofu-modal__title{font-size:var(--font-size-lg);color:var(--color-text);font-weight:700}.tofu-modal__close{background:var(--color-cream);border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-text-light);cursor:pointer;transition:all var(--duration-fast) var(--transition-smooth);border:none;justify-content:center;align-items:center;font-size:14px;display:flex}.tofu-modal__close:hover{background:var(--color-cream-deep);color:var(--color-text)}.tofu-modal__body{padding:var(--space-xl);flex:1;overflow-y:auto}.tofu-modal__footer{justify-content:flex-end;gap:var(--space-sm);padding:var(--space-md) var(--space-xl) var(--space-lg);border-top:1px solid var(--color-border-light);display:flex}.modal-form-grid{gap:var(--space-md);grid-template-columns:1fr 1fr;display:grid}.modal-form-grid .full-width{grid-column:1/-1}@media (width<=600px){.modal-form-grid{grid-template-columns:1fr}}.tofu-select-wrap{flex-direction:column;gap:6px;display:flex}.tofu-select-label{font-size:var(--font-size-sm);color:var(--color-text);font-weight:600}.tofu-select{border:2px solid var(--color-border-light);border-radius:var(--radius-md);width:100%;font-size:var(--font-size-base);background:var(--color-tofu);color:var(--color-text);cursor:pointer;appearance:none;transition:all var(--duration-normal) var(--transition-bounce);font-family:var(--font-family);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238B7355' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding:12px 36px 12px 16px}.tofu-select:focus{border-color:var(--color-wood-light);outline:none;transform:scale(1.01);box-shadow:0 0 0 3px #8b73551a}.tofu-select:disabled{background:var(--color-cream);opacity:.6;cursor:not-allowed}.tofu-checkbox{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:12px;display:inline-flex}.tofu-checkbox__box{background:#fff;border:2px solid #e0e0e0;border-radius:6px;justify-content:center;align-items:center;width:24px;height:24px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 2px 4px #00000005}.tofu-checkbox__box:hover{border-color:#8d7b68}.tofu-checkbox__box--checked{background:#639832;border-color:#639832;box-shadow:0 4px 8px #6398324d}.tofu-checkbox__box--disabled{cursor:default;background:#f5f5f5;border-color:#eee}.tofu-checkbox__box--checked.tofu-checkbox__box--disabled{opacity:.8;background:#a8c686;border-color:#a8c686}.tofu-checkbox__label{color:#555;font-size:14px;font-weight:500}.tofu-checkbox--disabled .tofu-checkbox__label{color:#bbb}.excel-import{gap:var(--space-md);flex-direction:column;display:flex}.excel-import__input{display:none}.excel-import__label{border:2px dashed var(--color-border);border-radius:var(--radius-lg);background:var(--color-cream);cursor:pointer;transition:all var(--duration-fast) var(--transition-smooth);font-size:var(--font-size-sm);color:var(--color-text-light);align-items:center;gap:10px;padding:14px 20px;display:flex}.excel-import__label:hover{border-color:var(--color-wood-light);background:var(--color-cream-deep);color:var(--color-text)}.excel-import__error{color:#d4726a;font-size:var(--font-size-xs)}.excel-import__preview{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--color-green);border-radius:var(--radius-md);flex-wrap:wrap;display:flex}.excel-import__info{font-size:var(--font-size-sm);color:var(--color-text)}.delayed-highlight{border-radius:var(--radius-sm);background:#ff4d4f0d;border:2px solid #ff4d4f;padding:4px 8px;animation:2s infinite pulse-red;display:inline-block}@keyframes pulse-red{0%{box-shadow:0 0 #ff4d4f66}70%{box-shadow:0 0 0 10px #ff4d4f00}to{box-shadow:0 0 #ff4d4f00}}.tasks-page{gap:var(--space-lg);flex-direction:column;display:flex}.tasks-header{justify-content:space-between;align-items:center;gap:var(--space-md);flex-wrap:wrap;display:flex}.tasks-actions{gap:var(--space-sm);display:flex}.sop-progress-mini{cursor:pointer;align-items:center;gap:8px;margin-top:4px;display:flex}.sop-progress-bar{background:#eee;border-radius:3px;flex:1;min-width:60px;height:6px;overflow:hidden}.sop-progress-fill{background:var(--color-sage);border-radius:3px;height:100%;transition:width .3s}.sop-progress-text{color:var(--color-text-muted);white-space:nowrap;font-size:10px;font-weight:600}.sop-tracker{flex-direction:column;gap:10px;display:flex}.sop-tracker-item{cursor:pointer;background:#f9f9f9;border-radius:6px;align-items:center;gap:12px;padding:10px;transition:background .2s;display:flex}.sop-tracker-item:hover{background:#f0f0f0}.sop-tracker-item.done{background:#e6fffa}.sop-tracker-item.done .sop-tracker-label{color:#999;text-decoration:line-through}.client-data-page{gap:var(--space-lg);flex-direction:column;height:calc(100vh - 120px);display:flex}.client-data-page__toolbar{gap:var(--space-sm);flex-shrink:0;display:flex}.client-data-content{gap:var(--space-lg);flex:1;min-height:0;display:flex}.client-table-container{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);background:#fff;flex:1;overflow:auto}.client-table-container .tofu-table-wrapper{overflow:visible}.tofu-table th{z-index:10;background:var(--color-cream);position:sticky;top:0}.alloc-page{gap:var(--space-lg);flex-direction:column;display:flex}.alloc-page__toolbar{gap:var(--space-sm);display:flex}.alloc-layout{gap:var(--space-xl);flex-direction:column;align-items:stretch;display:flex}.alloc-unassigned{width:100%}.alloc-list{gap:var(--space-xs);flex-direction:column;max-height:250px;padding-right:4px;display:flex;overflow-y:auto}.alloc-client-item{align-items:center;gap:var(--space-md);background:var(--color-cream);border-radius:var(--radius-md);padding:10px 16px;font-size:1.1rem;display:flex}.alloc-client-name{font-size:1.1rem;font-weight:600}.alloc-handler-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(400px,1fr));display:grid}.alloc-handler-card{padding:var(--space-lg)!important}.alloc-handler-name{font-size:1.2rem;font-weight:700}.alloc-status-label{color:#666;border-bottom:1px solid var(--color-border-light);margin-top:10px;font-size:14px;font-weight:700}.alloc-org-label{color:var(--color-wood-dark);font-size:12px;font-weight:700}.alloc-handler-client-row{justify-content:space-between;align-items:center;gap:var(--space-md);border-radius:var(--radius-sm);background:#fff;margin-bottom:4px;padding:8px 16px;font-size:1rem;display:flex;box-shadow:0 1px 2px #00000005}.alloc-client-actions{gap:var(--space-sm);display:flex}.alloc-handler-client-info{flex:1;align-items:center;gap:8px;display:flex}.alloc-assign-client{padding:var(--space-md);background:var(--color-cream);border-radius:var(--radius-md);font-size:var(--font-size-sm);gap:var(--space-sm);display:flex}.sop-page{gap:var(--space-lg);flex-direction:column;display:flex}.sop-page__toolbar{gap:var(--space-sm);display:flex}.sop-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(400px,1fr));display:grid}.sop-card__header{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.sop-card__title{font-size:var(--font-size-md);color:var(--color-wood-dark);font-weight:700}.sop-card__actions{gap:4px;display:flex}.sop-card__footer{margin-top:var(--space-md);padding-top:var(--space-sm);border-top:1px solid var(--color-border-light)}.sop-steps{flex-direction:column;gap:2px;display:flex}.sop-step{align-items:center;gap:var(--space-sm);background:var(--color-cream);border-radius:var(--radius-sm);padding:8px 12px;display:flex;position:relative}.sop-step__number{background:var(--color-wood);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:.7rem;font-weight:800;display:flex}.sop-step__label{font-size:var(--font-size-sm);color:var(--color-text);font-weight:500}.sop-steps--preview{max-height:300px;overflow-y:auto}.sop-preview__title{font-size:var(--font-size-sm);color:var(--color-text-light);margin-bottom:var(--space-sm);font-weight:600}.sop-empty{padding:var(--space-2xl);color:var(--color-text-muted);align-items:center;gap:var(--space-sm);flex-direction:column;grid-column:1/-1;font-size:2rem;display:flex}.sop-empty p{font-size:var(--font-size-sm)}.billing-page{gap:var(--space-lg);flex-direction:column;display:flex}.billing-stats{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.billing-stat-card{text-align:center;padding:var(--space-lg)!important}.billing-stat-icon{margin-bottom:4px;font-size:1.8rem;display:block}.billing-stat-label{font-size:var(--font-size-sm);color:var(--color-text-light);font-weight:600;display:block}.billing-stat-value{font-size:var(--font-size-2xl);color:var(--color-wood-dark);margin-top:4px;font-weight:800;display:block}.billing-stat-card--green{border-top:4px solid var(--color-green-deep)}.billing-stat-card--red{border-top:4px solid var(--color-pink-deep)}.billing-handler-grid{gap:var(--space-sm);flex-direction:column;display:flex}.billing-handler-item{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-cream);border-radius:var(--radius-md);display:flex}.billing-handler-info{flex-direction:column;flex:1;display:flex}.billing-handler-name{font-size:var(--font-size-sm);font-weight:700}.billing-handler-detail{color:var(--color-text-muted);font-size:.75rem}.form-row-multi{gap:var(--space-md);grid-template-columns:1fr 1fr;display:grid}.billing-toolbar{gap:var(--space-sm);display:flex}.annual-page{gap:var(--space-lg);flex-direction:column;display:flex}.annual-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.month-card{flex-direction:column;height:100%;display:flex}.month-tasks{flex-direction:column;gap:8px;display:flex}.month-task-item{background:var(--color-tofu);border-radius:var(--radius-sm);font-size:var(--font-size-sm);justify-content:space-between;align-items:center;padding:8px 12px;transition:all .2s;display:flex}.month-task-item:hover{background:var(--color-cream);transform:translate(4px)}.month-task-actions{opacity:0;gap:4px;transition:opacity .2s;display:flex}.month-task-item:hover .month-task-actions{opacity:1}.month-empty{font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:center;margin-top:8px;font-style:italic}
