:root{--tos-ease-spring:cubic-bezier(.16,1,.3,1);--tos-ease-out:cubic-bezier(.4,0,.2,1);--tos-shadow-sm:0 1px 2px #0f172a0a,0 1px 3px #0f172a0f;--tos-shadow-md:0 4px 12px -2px #0f172a14,0 2px 6px -1px #0f172a0a;--tos-shadow-lg:0 20px 40px -8px #0f172a1f,0 8px 16px -4px #0f172a14;--tos-shadow-float:0 24px 48px -12px #0f172a33;--tos-radius-xs:6px;--tos-radius-sm:8px;--tos-radius-md:12px;--tos-radius-lg:16px;--tos-radius-xl:24px;--tos-radius-full:9999px;--tos-bg-app:#f8fafc;--tos-bg-surface:#fff;--tos-bg-surface-hover:#f1f5f9;--tos-bg-surface-muted:#f8fafc;--tos-border-light:#e2e8f0;--tos-border-default:#cbd5e1;--tos-border-strong:#94a3b8;--tos-text-primary:#0f172a;--tos-text-secondary:#475569;--tos-text-muted:#64748b;--tos-brand-primary:#3b82f6;--tos-brand-hover:#2563eb;--tos-brand-light:#eff6ff;--tos-success:#10b981;--tos-warning:#f59e0b;--tos-danger:#f43f5e}[data-theme=dark]{--tos-bg-app:#0b0f19;--tos-bg-surface:#111827;--tos-bg-surface-hover:#1f2937;--tos-bg-surface-muted:#111827;--tos-border-light:#ffffff0f;--tos-border-default:#ffffff1f;--tos-border-strong:#fff3;--tos-text-primary:#f8fafc;--tos-text-secondary:#cbd5e1;--tos-text-muted:#94a3b8;--tos-brand-light:#3b82f626;--tos-shadow-sm:0 1px 2px #0000004d;--tos-shadow-md:0 4px 12px #0006;--tos-shadow-lg:0 20px 40px #00000080}.tos-wrapper,.tos-wrapper *,.tos-overlay,.tos-overlay *{font-family:Open Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.tos-wrapper{background-color:var(--tos-bg-app);animation:tos-fade-in .4s var(--tos-ease-spring);flex-direction:column;width:100%;height:100%;display:flex}.tos-main-island{background:var(--tos-bg-surface);border:1px solid var(--tos-border-light);border-radius:var(--tos-radius-lg);box-shadow:var(--tos-shadow-sm);flex-direction:column;flex:1;margin:16px;transition:background-color .3s,border-color .3s;display:flex;position:relative;overflow:hidden}.tos-content-area{flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden auto}.tos-toolbar{border-bottom:1px solid var(--tos-border-light);-webkit-backdrop-filter:blur(16px);z-index:10;background:#fffc;flex-direction:column;gap:16px;padding:20px;display:flex;position:sticky;top:0}[data-theme=dark] .tos-toolbar{background:#111827cc}.tos-toolbar-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.tos-stat-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;padding:20px;display:grid}.tos-stat-card{background:var(--tos-bg-surface);border:1px solid var(--tos-border-light);border-radius:var(--tos-radius-md);box-shadow:var(--tos-shadow-sm);transition:transform .2s var(--tos-ease-spring),box-shadow .2s ease;cursor:default;justify-content:space-between;align-items:center;padding:20px;display:flex}.tos-stat-card:hover{box-shadow:var(--tos-shadow-md);transform:translateY(-2px)}.tos-stat-content{flex-direction:column;gap:6px;display:flex}.tos-stat-label{color:var(--tos-text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:13px;font-weight:600}.tos-stat-value-wrap{align-items:baseline;gap:4px;display:flex}.tos-stat-value{color:var(--tos-text-primary);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:28px;font-weight:800;line-height:1}.tos-stat-unit{color:var(--tos-text-muted);font-size:13px;font-weight:600}.tos-stat-icon-wrap{border-radius:var(--tos-radius-sm);justify-content:center;align-items:center;width:48px;height:48px;display:flex}.tos-view-toggle{background:var(--tos-bg-surface-muted);border:1px solid var(--tos-border-light);border-radius:var(--tos-radius-sm);align-items:center;gap:4px;padding:4px;display:inline-flex}.tos-view-btn{border-radius:var(--tos-radius-xs);color:var(--tos-text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;gap:6px;height:32px;padding:0 16px;font-size:13px;font-weight:600;transition:all .2s;display:flex}.tos-view-btn:hover{color:var(--tos-text-primary)}.tos-view-btn--active{background:var(--tos-bg-surface);color:var(--tos-text-primary);box-shadow:0 1px 3px #00000014}.tos-search-input-wrap{background:var(--tos-bg-surface);border:1px solid var(--tos-border-default);border-radius:var(--tos-radius-sm);flex:1;align-items:center;gap:8px;min-width:240px;max-width:400px;height:38px;padding:0 14px;transition:border-color .2s,box-shadow .2s;display:flex}.tos-search-input-wrap:focus-within{border-color:var(--tos-brand-primary);box-shadow:0 0 0 3px var(--tos-brand-light)}.tos-search-input{color:var(--tos-text-primary);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:14px}.tos-search-input::placeholder{color:var(--tos-text-muted)}.tos-clear-btn{cursor:pointer;color:var(--tos-text-muted);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:4px;transition:background .2s,color .2s;display:flex}.tos-clear-btn:hover{background:var(--tos-bg-surface-hover);color:var(--tos-text-primary)}.tos-dropdown-container{display:inline-block;position:relative}.tos-dropdown-trigger{background:var(--tos-bg-surface);border:1px solid var(--tos-border-default);border-radius:var(--tos-radius-sm);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-width:160px;height:38px;padding:0 14px;transition:all .2s;display:flex}.tos-dropdown-trigger:hover{border-color:var(--tos-border-strong);background:var(--tos-bg-surface-hover)}.tos-dropdown-trigger--active{border-color:var(--tos-brand-primary);box-shadow:0 0 0 3px var(--tos-brand-light)}.tos-dropdown-label{color:var(--tos-text-primary);font-size:13px;font-weight:600}.tos-dropdown-menu{background:var(--tos-bg-surface);border:1px solid var(--tos-border-light);border-radius:var(--tos-radius-md);box-shadow:var(--tos-shadow-lg);z-index:100;animation:tos-slide-down .2s var(--tos-ease-spring);min-width:200px;padding:6px;position:absolute;top:calc(100% + 6px);right:0}.tos-dropdown-item{border-radius:var(--tos-radius-xs);cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;padding:10px 12px;transition:background .15s;display:flex}.tos-dropdown-item:hover{background:var(--tos-bg-surface-hover)}.tos-dropdown-item--active{background:var(--tos-brand-light)}.tos-dropdown-item-text{color:var(--tos-text-primary);font-size:13px;font-weight:500}.tos-dropdown-item--active .tos-dropdown-item-text{color:var(--tos-brand-hover);font-weight:600}.tos-list-container{background:var(--tos-bg-surface);flex-direction:column;flex:1;display:flex}.tos-table-header{background:var(--tos-bg-surface-muted);border-bottom:1px solid var(--tos-border-light);z-index:5;align-items:center;padding:12px 20px;display:flex;position:sticky;top:0}.tos-th{color:var(--tos-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:700}.tos-table-row{border-bottom:1px solid var(--tos-border-light);cursor:pointer;animation:tos-row-enter .4s var(--tos-ease-spring)both;align-items:center;padding:16px 20px;transition:background .2s,transform .2s;display:flex}.tos-table-row:hover{background:var(--tos-bg-surface-hover)}.tos-table-row:active{background:var(--tos-border-light)}.tos-col-date{flex:2.5}.tos-col-type{flex:2}.tos-col-reason{flex:3.5;padding-right:16px}.tos-col-hours{text-align:right;flex:1.5}.tos-col-status{flex:2;justify-content:flex-end;display:flex}.tos-col-actions{flex:1;justify-content:flex-end;display:flex}.tos-cell-date-primary{color:var(--tos-text-primary);font-size:14px;font-weight:600;display:block}.tos-cell-date-sub{color:var(--tos-text-muted);margin-top:4px;font-size:12px;display:block}.tos-cell-reason{color:var(--tos-text-secondary);-webkit-line-clamp:2;line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.tos-cell-reason--empty{color:var(--tos-text-muted);font-style:italic}.tos-cell-hours{color:var(--tos-text-primary);font-variant-numeric:tabular-nums;font-size:14px;font-weight:700}.tos-status-badge{border-radius:var(--tos-radius-full);text-transform:capitalize;letter-spacing:.02em;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:700;display:inline-flex}.tos-status-badge .tos-status-dot{border-radius:50%;width:6px;height:6px}.tos-pagination{background:var(--tos-bg-surface);border-top:1px solid var(--tos-border-light);justify-content:space-between;align-items:center;margin-top:auto;padding:16px 20px;display:flex}.tos-page-info{color:var(--tos-text-muted);font-size:13px;font-weight:500}.tos-page-controls{align-items:center;gap:6px;display:flex}.tos-page-btn{border-radius:var(--tos-radius-sm);border:1px solid var(--tos-border-light);background:var(--tos-bg-surface);color:var(--tos-text-primary);cursor:pointer;justify-content:center;align-items:center;min-width:32px;height:32px;padding:0 8px;font-size:13px;font-weight:600;transition:all .2s;display:flex}.tos-page-btn:hover:not(:disabled){background:var(--tos-bg-surface-hover);border-color:var(--tos-border-default)}.tos-page-btn:disabled{opacity:.4;cursor:not-allowed}.tos-page-btn--active{background:var(--tos-brand-primary);border-color:var(--tos-brand-primary);color:#fff}.tos-page-btn--active:hover:not(:disabled){background:var(--tos-brand-hover)}.tos-page-ellipsis{color:var(--tos-text-muted);padding:0 4px;font-weight:700}.tos-flow-container{flex-direction:column;gap:24px;width:100%;max-width:800px;margin:0 auto;padding:24px;display:flex}.tos-flow-summary-card{background:var(--tos-bg-surface);border:1px solid var(--tos-border-light);border-radius:var(--tos-radius-lg);box-shadow:var(--tos-shadow-md);align-items:center;gap:24px;padding:24px;display:flex}.tos-flow-chart-wrap{justify-content:center;align-items:center;width:80px;height:80px;display:flex;position:relative}.tos-flow-chart-text{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute}.tos-flow-chart-val{color:var(--tos-text-primary);font-size:20px;font-weight:800;line-height:1.1}.tos-flow-chart-lbl{color:var(--tos-text-muted);text-transform:uppercase;font-size:10px;font-weight:600}.tos-flow-details{flex:1}.tos-flow-progress-bar{background:var(--tos-border-light);border-radius:4px;height:8px;margin:12px 0;overflow:hidden}.tos-flow-progress-fill{background:var(--tos-brand-primary);transition:width 1s var(--tos-ease-spring);border-radius:4px;height:100%}.tos-flow-legend{flex-wrap:wrap;gap:16px;display:flex}.tos-flow-legend-item{align-items:center;gap:6px;display:flex}.tos-timeline-item{gap:20px;display:flex;position:relative}.tos-timeline-line-wrap{flex-direction:column;flex-shrink:0;align-items:center;width:20px;display:flex}.tos-timeline-dot{background:var(--tos-bg-surface);z-index:2;box-shadow:0 0 0 4px var(--tos-bg-app);border:3px solid;border-radius:50%;width:14px;height:14px}.tos-timeline-line{background:var(--tos-border-light);flex:1;width:2px;margin-top:8px;margin-bottom:8px}.tos-timeline-card{background:var(--tos-bg-surface);border:1px solid var(--tos-border-light);border-radius:var(--tos-radius-lg);box-shadow:var(--tos-shadow-sm);cursor:pointer;flex:1;margin-bottom:16px;padding:20px;transition:transform .2s,box-shadow .2s}.tos-timeline-card:hover{box-shadow:var(--tos-shadow-md);transform:translateY(-2px)}.tos-progress-nodes{border-top:1px solid var(--tos-border-light);justify-content:space-between;align-items:center;margin-top:20px;padding-top:20px;display:flex;position:relative}.tos-pnode-wrap{z-index:2;flex-direction:column;flex:1;align-items:center;gap:8px;display:flex}.tos-pnode-circle{background:var(--tos-bg-surface-hover);border:2px solid var(--tos-bg-surface);box-shadow:0 0 0 2px var(--tos-border-light);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;transition:all .3s;display:flex}.tos-pnode-circle--active{box-shadow:0 0 0 2px var(--tos-brand-primary);background:var(--tos-brand-light)}.tos-pnode-circle--done{box-shadow:0 0 0 2px var(--tos-success);background:var(--tos-success);color:#fff}.tos-pnode-label{color:var(--tos-text-muted);text-align:center;font-size:11px;font-weight:600}.tos-pnode-label--active{color:var(--tos-text-primary)}.tos-pnode-connector{background:var(--tos-border-light);z-index:1;height:2px;position:absolute;top:34px;left:10%;right:10%}.tos-pnode-connector-fill{background:var(--tos-success);height:100%;transition:width .5s}.tos-cal-container{flex-direction:column;width:100%;max-width:1000px;margin:0 auto;padding:24px;display:flex}.tos-cal-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.tos-cal-nav-btn{border-radius:var(--tos-radius-sm);border:1px solid var(--tos-border-light);background:var(--tos-bg-surface);color:var(--tos-text-primary);cursor:pointer;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex}.tos-cal-nav-btn:hover{background:var(--tos-bg-surface-hover);border-color:var(--tos-border-default)}.tos-cal-title{color:var(--tos-text-primary);letter-spacing:-.02em;font-size:20px;font-weight:800}.tos-cal-grid-wrapper{background:var(--tos-bg-surface);border:1px solid var(--tos-border-light);border-radius:var(--tos-radius-lg);box-shadow:var(--tos-shadow-sm);overflow:hidden}.tos-cal-days-header{background:var(--tos-bg-surface-muted);border-bottom:1px solid var(--tos-border-light);grid-template-columns:repeat(7,1fr);display:grid}.tos-cal-day-name{text-align:center;color:var(--tos-text-muted);text-transform:uppercase;letter-spacing:.05em;padding:12px;font-size:12px;font-weight:700}.tos-cal-grid{grid-template-columns:repeat(7,1fr);display:grid}.tos-cal-cell{border-right:1px solid var(--tos-border-light);border-bottom:1px solid var(--tos-border-light);min-height:100px;padding:8px;transition:background .2s}.tos-cal-cell:nth-child(7n){border-right:none}.tos-cal-cell:hover{background:var(--tos-bg-surface-hover)}.tos-cal-cell--empty{background:var(--tos-bg-surface-muted)}.tos-cal-date-num{color:var(--tos-text-primary);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;margin-bottom:8px;font-size:13px;font-weight:600;display:inline-flex}.tos-cal-date-num--today{background:var(--tos-brand-primary);color:#fff}.tos-cal-event-dot{border-radius:4px;width:8px;height:8px;margin-right:4px;display:inline-block}.tos-cal-event-list{flex-direction:column;gap:4px;display:flex}.tos-cal-event-item{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:4px;align-items:center;padding:4px 6px;font-size:11px;font-weight:600;transition:transform .1s,filter .1s;display:flex;overflow:hidden}.tos-cal-event-item:hover{filter:brightness(.95);transform:scale(1.02)}.tos-overlay{-webkit-backdrop-filter:blur(4px);z-index:999;background:#0f172a66;justify-content:flex-end;animation:.2s tos-fade-in;display:flex;position:fixed;inset:0}.tos-side-panel{background:var(--tos-bg-surface);animation:tos-slide-in-right .3s var(--tos-ease-spring);flex-direction:column;width:100%;max-width:500px;height:100%;display:flex;box-shadow:-8px 0 32px #0000001a}.tos-modal-center{justify-content:center;align-items:center;padding:20px}.tos-modal-card{background:var(--tos-bg-surface);border-radius:var(--tos-radius-xl);box-shadow:var(--tos-shadow-lg);animation:tos-pop-in .3s var(--tos-ease-spring);flex-direction:column;width:100%;max-width:600px;max-height:90vh;display:flex;overflow:hidden}.tos-panel-header{border-bottom:1px solid var(--tos-border-light);justify-content:space-between;align-items:center;padding:24px;display:flex}.tos-panel-title{color:var(--tos-text-primary);letter-spacing:-.02em;font-size:20px;font-weight:800}.tos-panel-close{background:var(--tos-bg-surface-muted);cursor:pointer;color:var(--tos-text-secondary);border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:background .2s,color .2s;display:flex}.tos-panel-close:hover{background:var(--tos-border-light);color:var(--tos-text-primary)}.tos-panel-body{flex-direction:column;flex:1;gap:20px;padding:24px;display:flex;overflow-y:auto}.tos-panel-footer{border-top:1px solid var(--tos-border-light);background:var(--tos-bg-surface-muted);justify-content:flex-end;gap:12px;padding:20px 24px;display:flex}.tos-form-group{flex-direction:column;gap:8px;display:flex}.tos-form-label{color:var(--tos-text-primary);font-size:13px;font-weight:600}.tos-input{background:var(--tos-bg-surface);border:1px solid var(--tos-border-default);border-radius:var(--tos-radius-md);color:var(--tos-text-primary);outline:none;width:100%;min-height:44px;padding:10px 14px;font-family:inherit;font-size:14px;transition:all .2s}.tos-input:focus{border-color:var(--tos-brand-primary);box-shadow:0 0 0 3px var(--tos-brand-light)}.tos-textarea{resize:vertical;min-height:120px;line-height:1.5}.tos-date-picker-wrap{border:1px solid var(--tos-border-default);border-radius:var(--tos-radius-md);background:var(--tos-bg-surface);padding:16px}.tos-btn{border-radius:var(--tos-radius-md);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;height:44px;padding:0 20px;font-family:inherit;font-size:14px;font-weight:600;transition:all .2s;display:inline-flex}.tos-btn:disabled{opacity:.6;cursor:not-allowed}.tos-btn--primary{background:var(--tos-brand-primary);color:#fff;box-shadow:0 2px 4px #3b82f64d}.tos-btn--primary:hover:not(:disabled){background:var(--tos-brand-hover);transform:translateY(-1px);box-shadow:0 4px 8px #3b82f666}.tos-btn--secondary{background:var(--tos-bg-surface);color:var(--tos-text-primary);border-color:var(--tos-border-default);box-shadow:var(--tos-shadow-sm)}.tos-btn--secondary:hover:not(:disabled){background:var(--tos-bg-surface-hover);border-color:var(--tos-border-strong)}.tos-btn--danger{color:var(--tos-danger);background:#fef2f2;border-color:#fecaca}.tos-btn--danger:hover:not(:disabled){background:#fee2e2;border-color:#fca5a5}[data-theme=dark] .tos-btn--danger{background:#f43f5e1a;border-color:#f43f5e33}.tos-toast-container{z-index:10000;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:32px;left:50%;transform:translate(-50%)}.tos-toast{background:var(--tos-bg-surface);border:1px solid var(--tos-border-light);border-radius:var(--tos-radius-full);box-shadow:var(--tos-shadow-lg);animation:tos-toast-enter .4s var(--tos-ease-spring)forwards;pointer-events:auto;align-items:center;gap:12px;padding:12px 20px;display:flex}.tos-toast--success{border-left:4px solid var(--tos-success)}.tos-toast--error{border-left:4px solid var(--tos-danger)}.tos-toast-text{color:var(--tos-text-primary);font-size:14px;font-weight:600}.tos-empty-state{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:64px 24px;display:flex}.tos-empty-icon{background:var(--tos-brand-light);color:var(--tos-brand-primary);border-radius:20px;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:24px;display:flex}.tos-empty-title{color:var(--tos-text-primary);margin-bottom:8px;font-size:18px;font-weight:800}.tos-empty-desc{color:var(--tos-text-secondary);max-width:400px;font-size:14px;line-height:1.5}.tos-loader-wrap{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;min-height:300px;display:flex}.tos-spinner{border:3px solid var(--tos-border-default);border-top-color:var(--tos-brand-primary);border-radius:50%;width:32px;height:32px;animation:1s linear infinite tos-spin}@keyframes tos-fade-in{0%{opacity:0}to{opacity:1}}@keyframes tos-slide-in-right{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes tos-pop-in{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes tos-row-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes tos-slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes tos-toast-enter{0%{opacity:0;transform:translateY(20px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes tos-spin{to{transform:rotate(360deg)}}@media (width<=768px){.tos-main-island{border-bottom:none;border-left:none;border-right:none;border-radius:0;margin:0}.tos-toolbar-row{flex-direction:column;align-items:stretch}.tos-search-input-wrap{max-width:100%}.tos-table-header{display:none}.tos-table-row{flex-direction:column;align-items:flex-start;gap:12px;padding:16px}.tos-col-date,.tos-col-type,.tos-col-reason,.tos-col-hours,.tos-col-status,.tos-col-actions{text-align:left;flex:none;justify-content:flex-start;width:100%}.tos-col-actions{border-top:1px solid var(--tos-border-light);margin-top:8px;padding-top:12px}}.tos-detail-section{background:var(--tos-bg-surface-muted);border-radius:var(--tos-radius-md);border:1px solid var(--tos-border-light);padding:16px}.tos-detail-row{border-bottom:1px solid var(--tos-border-default);justify-content:space-between;margin-bottom:12px;padding-bottom:12px;display:flex}.tos-detail-row:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}