.app-container{display:flex;flex-direction:column;min-height:100vh;background-color:#f8fafc}.app-header{height:64px;background-color:#fff;border-bottom:1px solid #e2e8f0;position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 24px;box-shadow:0 1px 2px #0000000d}.app-header .header-brand{display:flex;align-items:center;gap:12px;text-decoration:none}.app-header .header-brand .brand-icon{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px;box-shadow:0 2px 8px #2563eb59}.app-header .header-brand .brand-title{font-size:18px;font-weight:700;color:#0f172a;letter-spacing:-.02em}.app-header .header-brand .brand-badge{font-size:11px;font-weight:600;padding:2px 8px;background:#eff6ff;color:#2563eb;border-radius:9999px;border:1px solid rgba(37,99,235,.2)}.app-header .header-user-section{display:flex;align-items:center;gap:16px}.app-header .header-user-section .user-info-badge{display:flex;align-items:center;gap:10px;background:#f1f5f9;padding:6px 14px;border-radius:9999px;border:1px solid #e2e8f0}.app-header .header-user-section .user-info-badge .user-avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#64748b,#334155);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}.app-header .header-user-section .user-info-badge .user-details{display:flex;flex-direction:column;line-height:1.2}.app-header .header-user-section .user-info-badge .user-details .user-name{font-size:13px;font-weight:600;color:#0f172a}.app-header .header-user-section .user-info-badge .user-details .user-meta{font-size:11px;color:#94a3b8;display:flex;align-items:center;gap:6px}.app-header .header-user-section .user-info-badge .role-tag{font-size:10px;font-weight:700;text-transform:uppercase;padding:2px 6px;border-radius:4px}.app-header .header-user-section .user-info-badge .role-tag.role-boss{background:#fef3c7;color:#b45309}.app-header .header-user-section .user-info-badge .role-tag.role-employee{background:#e0f2fe;color:#0369a1}.app-body{display:flex;flex:1;width:100%}.app-sidebar{width:240px;background-color:#fff;border-right:1px solid #e2e8f0;padding:20px 12px;display:flex;flex-direction:column;gap:6px;flex-shrink:0}.app-sidebar .nav-section-title{font-size:11px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;padding:8px 12px 4px}.app-sidebar .nav-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:10px;font-size:14px;font-weight:600;color:#475569;text-decoration:none;cursor:pointer;border:none;background:transparent;width:100%;text-align:left;transition:all .15s ease}.app-sidebar .nav-item .nav-icon{font-size:18px;color:#94a3b8;display:flex;align-items:center;justify-content:center}.app-sidebar .nav-item:hover{background-color:#f1f5f9;color:#2563eb}.app-sidebar .nav-item:hover .nav-icon{color:#2563eb}.app-sidebar .nav-item.active{background-color:#eff6ff;color:#2563eb}.app-sidebar .nav-item.active .nav-icon{color:#2563eb}.app-sidebar .nav-item .badge-count{margin-left:auto;font-size:11px;background:#2563eb1f;color:#2563eb;padding:2px 7px;border-radius:9999px;font-weight:700}.main-content{flex:1;padding:28px 32px;max-width:1440px;width:100%;margin:0 auto}.mobile-bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:60px;background-color:#fff;border-top:1px solid #e2e8f0;z-index:99;box-shadow:0 -2px 10px #0000000d}.mobile-bottom-nav .bottom-nav-inner{display:flex;height:100%;align-items:center;justify-content:space-around}.mobile-bottom-nav .bottom-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex:1;height:100%;color:#94a3b8;font-size:11px;font-weight:600;text-decoration:none;border:none;background:transparent;cursor:pointer}.mobile-bottom-nav .bottom-nav-item.active{color:#2563eb}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;font-size:14px;font-weight:600;border-radius:10px;border:1px solid transparent;cursor:pointer;transition:all .15s ease;text-decoration:none}.btn:disabled{opacity:.6;cursor:not-allowed}.btn.btn-primary{background-color:#2563eb;color:#fff}.btn.btn-primary:hover:not(:disabled){background-color:#1d4ed8;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}.btn.btn-secondary{background-color:#f1f5f9;color:#475569;border-color:#e2e8f0}.btn.btn-secondary:hover:not(:disabled){background-color:#e2e8f0;color:#0f172a}.btn.btn-danger{background-color:#fee2e2;color:#dc2626;border-color:#fecaca}.btn.btn-danger:hover:not(:disabled){background-color:#fecaca}.btn.btn-icon{padding:6px;width:32px;height:32px;border-radius:6px}.status-action-group{display:flex;gap:4px}.status-action-group .btn-action-start{background-color:#dbeafe;color:#1d4ed8;border:1px solid #bfdbfe;font-size:12px;padding:4px 10px;border-radius:6px}.status-action-group .btn-action-start:hover{background-color:#bfdbfe}.status-action-group .btn-action-start.current{background-color:#2563eb;color:#fff;font-weight:700}.status-action-group .btn-action-pause{background-color:#fef9c3;color:#a16207;border:1px solid #fde047;font-size:12px;padding:4px 10px;border-radius:6px}.status-action-group .btn-action-pause:hover{background-color:#fef08a}.status-action-group .btn-action-pause.current{background-color:#ca8a04;color:#fff;font-weight:700}.status-action-group .btn-action-end{background-color:#dcfce7;color:#15803d;border:1px solid #bbf7d0;font-size:12px;padding:4px 10px;border-radius:6px}.status-action-group .btn-action-end:hover{background-color:#bbf7d0}.status-action-group .btn-action-end.current{background-color:#16a34a;color:#fff;font-weight:700}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:9999px;font-size:12px;font-weight:700;border:1px solid transparent}.status-badge.status-todo{background-color:#f1f5f9;color:#475569;border-color:#cbd5e1}.status-badge.status-doing{background-color:#eff6ff;color:#2563eb;border-color:#bfdbfe}.status-badge.status-done{background-color:#f0fdf4;color:#16a34a;border-color:#bbf7d0}.priority-light{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600}.priority-light .light-dot{width:10px;height:10px;border-radius:50%;display:inline-block;box-shadow:0 0 6px #00000026}.priority-light.light-green .light-dot{background-color:#22c55e;box-shadow:0 0 6px #22c55e80}.priority-light.light-yellow .light-dot{background-color:#eab308;box-shadow:0 0 6px #eab30880}.priority-light.light-red .light-dot{background-color:#ef4444;box-shadow:0 0 6px #ef444480}.priority-light.light-purple .light-dot{background-color:#a855f7;box-shadow:0 0 6px #a855f780}.filter-bar-container{background-color:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:16px 20px;margin-bottom:24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;box-shadow:0 1px 2px #0000000d}.filter-bar-container .filter-group{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.filter-bar-container .status-pills{display:flex;background-color:#f1f5f9;padding:3px;border-radius:10px;border:1px solid #e2e8f0}.filter-bar-container .status-pills .pill-btn{padding:6px 14px;font-size:13px;font-weight:600;color:#475569;background:transparent;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease}.filter-bar-container .status-pills .pill-btn.active{background-color:#fff;color:#2563eb;box-shadow:0 1px 2px #0000000d}.filter-bar-container .date-range-filter{display:flex;align-items:center;gap:8px;font-size:13px;color:#475569}.filter-bar-container .date-range-filter input[type=date]{padding:6px 10px;border:1px solid #e2e8f0;border-radius:6px;font-size:13px;background-color:#fff;color:#0f172a;font-family:inherit}.filter-bar-container .date-range-filter input[type=date]:focus{outline:none;border-color:#3b82f6}.table-card{background-color:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}.table-card .data-table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}.table-card .data-table th{background-color:#f1f5f9;color:#475569;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:14px 18px;border-bottom:1px solid #e2e8f0;white-space:nowrap}.table-card .data-table td{padding:14px 18px;border-bottom:1px solid #e2e8f0;color:#0f172a;vertical-align:middle}.table-card .data-table tbody tr{transition:background-color .15s ease}.table-card .data-table tbody tr:hover{background-color:#eff6ff66}.table-card .data-table tbody tr:last-child td{border-bottom:none}.fab-btn{position:fixed;bottom:32px;right:32px;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;border:none;display:flex;align-items:center;justify-content:center;font-size:24px;cursor:pointer;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;z-index:90;transition:transform .15s ease,box-shadow .15s ease}.fab-btn:hover{transform:scale(1.08) translateY(-2px);box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a}.fab-btn:active{transform:scale(.95)}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.modal-backdrop .modal-dialog{background-color:#fff;border-radius:16px;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;width:100%;max-width:560px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;animation:modalScale .2s ease forwards}.modal-backdrop .modal-header{padding:18px 24px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between}.modal-backdrop .modal-header h3{font-size:17px;font-weight:700;color:#0f172a;margin:0}.modal-backdrop .modal-body{padding:24px;overflow-y:auto;flex:1}.modal-backdrop .modal-footer{padding:16px 24px;border-top:1px solid #e2e8f0;background-color:#f1f5f9;display:flex;align-items:center;justify-content:flex-end;gap:12px}@keyframes modalScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.form-group{margin-bottom:18px}.form-group label{display:block;font-size:13px;font-weight:600;color:#475569;margin-bottom:6px}.form-group label .required{color:#ef4444;margin-left:2px}.form-group .form-control{width:100%;padding:10px 14px;border:1px solid #e2e8f0;border-radius:10px;font-size:14px;color:#0f172a;background-color:#fff;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}.form-group .form-control:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.form-group .help-text{font-size:12px;color:#94a3b8;margin-top:4px}.btn-copy-success{background-color:#dcfce7!important;border-color:#86efac!important;color:#15803d!important}.copy-alert-banner{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background-color:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;color:#166534;font-size:13px;margin-bottom:16px;gap:12px}.copy-alert-banner .banner-content{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.copy-alert-banner .banner-content .banner-badge{font-weight:700;background:#dcfce7;padding:2px 8px;border-radius:4px;font-family:monospace}.copy-alert-banner .banner-close{background:transparent;border:none;color:#166534;cursor:pointer;padding:2px;display:inline-flex;opacity:.7}.copy-alert-banner .banner-close:hover{opacity:1}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper .form-control{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;letter-spacing:.5px}.status-tab-group{display:inline-flex;background-color:#f1f5f9;padding:3px;border-radius:8px;border:1px solid #e2e8f0;gap:2px;-webkit-user-select:none;user-select:none}.status-tab-group .status-tab-btn{padding:4px 10px;font-size:12px;font-weight:600;border:none;border-radius:6px;background:transparent;color:#64748b;cursor:pointer;transition:all .15s ease}.status-tab-group .status-tab-btn:hover:not(.active-enabled):not(.active-disabled){color:#1e293b;background-color:#e2e8f0}.status-tab-group .status-tab-btn.active-enabled{background-color:#16a34a;color:#fff;box-shadow:0 1px 2px #0000000d}.status-tab-group .status-tab-btn.active-disabled{background-color:#ef4444;color:#fff;box-shadow:0 1px 2px #0000000d}.status-tab-group .status-tab-btn:disabled{cursor:not-allowed;opacity:.6}.pwd-tag{display:inline-flex;align-items:center;gap:6px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:13px;font-weight:600;color:#334155;background-color:#f8fafc;border:1px solid #e2e8f0;padding:3px 8px;border-radius:6px;letter-spacing:.5px}.pwd-tag .pwd-copy-btn{background:transparent;border:none;cursor:pointer;color:#94a3b8;padding:0;display:inline-flex;align-items:center}.pwd-tag .pwd-copy-btn:hover{color:#2563eb}.auth-divider{display:flex;align-items:center;text-align:center;margin:20px 0 16px;color:#94a3b8;font-size:13px}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-bottom:1px solid #e2e8f0}.auth-divider span{padding:0 12px}.btn-google{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;background-color:#fff;color:#1e293b;border:1px solid #cbd5e1;border-radius:8px;padding:11px 16px;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease;box-shadow:0 1px 2px #0000000a}.btn-google:hover{background-color:#f8fafc;border-color:#94a3b8;box-shadow:0 2px 4px #00000014}.btn-google .google-icon{flex-shrink:0}@media(max-width:768px){.app-sidebar{display:none!important}.mobile-bottom-nav{display:block!important}.app-header{padding:0 16px}.app-header .header-user-section .user-info-badge{padding:4px 8px}.app-header .header-user-section .user-info-badge .user-details{display:none}.main-content{padding:16px 16px 80px}.filter-bar-container{flex-direction:column;align-items:stretch;gap:12px}.filter-bar-container .filter-group,.filter-bar-container .date-range-filter{width:100%;justify-content:space-between}.filter-bar-container .date-range-filter input[type=date]{flex:1}.fab-btn{bottom:76px;right:20px;width:50px;height:50px;font-size:20px}.table-card{background:transparent;border:none;box-shadow:none}.table-card .data-table{display:block;width:100%}.table-card .data-table thead{display:none}.table-card .data-table tbody{display:flex;flex-direction:column;gap:12px;width:100%}.table-card .data-table tr{display:flex;flex-direction:column;background-color:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:16px;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a;gap:8px}.table-card .data-table tr:hover{background-color:#fff}.table-card .data-table tr td{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border:none;font-size:13px}.table-card .data-table tr td:before{content:attr(data-label);font-weight:700;color:#475569;font-size:12px;margin-right:12px;flex-shrink:0}.table-card .data-table tr td.card-title-cell{border-bottom:1px solid #e2e8f0;padding-bottom:10px;margin-bottom:4px;font-size:15px;font-weight:700;color:#0f172a;justify-content:flex-start}.table-card .data-table tr td.card-title-cell:before{display:none}.table-card .data-table tr td.card-actions-cell{border-top:1px dashed #e2e8f0;padding-top:10px;margin-top:6px;justify-content:flex-end;gap:8px}.table-card .data-table tr td.card-actions-cell:before{display:none}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:Plus Jakarta Sans,Noto Sans TC,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:#f8fafc;color:#0f172a;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}.page-header-area{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.page-header-area .page-title{font-size:24px;font-weight:800;color:#0f172a;display:flex;align-items:center;gap:10px}.page-header-area .page-subtitle{font-size:14px;color:#475569;margin-top:4px}.empty-state-card{text-align:center;padding:60px 20px;background-color:#fff;border-radius:16px;border:2px dashed #e2e8f0}.empty-state-card .empty-icon{font-size:40px;margin-bottom:12px;opacity:.8}.empty-state-card h4{font-size:16px;font-weight:700;color:#0f172a;margin-bottom:6px}.empty-state-card p{font-size:13px;color:#94a3b8;max-width:400px;margin:0 auto 16px}.history-timeline{display:flex;flex-direction:column;gap:14px;position:relative;padding-left:20px}.history-timeline:before{content:"";position:absolute;left:6px;top:6px;bottom:6px;width:2px;background-color:#e2e8f0}.history-timeline .timeline-item{position:relative}.history-timeline .timeline-item .timeline-dot{position:absolute;left:-20px;top:4px;width:14px;height:14px;border-radius:50%;background-color:#2563eb;border:3px solid #ffffff;box-shadow:0 0 0 1px #e2e8f0}.history-timeline .timeline-item .timeline-content{background-color:#f1f5f9;padding:10px 14px;border-radius:10px;font-size:13px}.history-timeline .timeline-item .timeline-content .timeline-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.history-timeline .timeline-item .timeline-content .timeline-header .operator-name{font-weight:700;color:#0f172a}.history-timeline .timeline-item .timeline-content .timeline-header .timestamp{font-size:11px;color:#94a3b8}.history-timeline .timeline-item .timeline-content .timeline-action{font-weight:600;color:#2563eb;margin-bottom:2px}.history-timeline .timeline-item .timeline-content .timeline-note{font-size:12px;color:#475569}.auth-page-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f0fdfa,#e0f2fe,#f8fafc);padding:20px}.auth-page-container .auth-card{background-color:#fff;border-radius:16px;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;width:100%;max-width:440px;padding:36px;border:1px solid #e2e8f0}.auth-page-container .auth-card .auth-header{text-align:center;margin-bottom:28px}.auth-page-container .auth-card .auth-header .auth-logo{width:48px;height:48px;border-radius:10px;background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800;margin:0 auto 12px;box-shadow:0 4px 12px #2563eb59}.auth-page-container .auth-card .auth-header h2{font-size:22px;font-weight:800;color:#0f172a}.auth-page-container .auth-card .auth-header p{font-size:13px;color:#475569;margin-top:4px}.auth-page-container .auth-card .auth-footer-links{text-align:center;margin-top:20px;font-size:13px;color:#475569}.auth-page-container .auth-card .auth-footer-links a,.auth-page-container .auth-card .auth-footer-links button{color:#2563eb;font-weight:600;background:none;border:none;cursor:pointer;padding:0}.auth-page-container .auth-card .auth-footer-links a:hover,.auth-page-container .auth-card .auth-footer-links button:hover{text-decoration:underline}
