@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--qfp-orange: #FF5600;--qfp-orange-hover: #E04D00;--qfp-orange-tint: #FFF5F0;--qfp-orange-border: #FFD4C0;--qfp-dark: #000000;--qfp-green: #3A5D4F;--qfp-green-hover: #2E4A3F;--qfp-green-ring: #95B1AC;--qfp-green-tint: rgba(184, 200, 197, .3);--qfp-green-tint-strong: rgba(184, 200, 197, .45);--text-primary: #4D4D4D;--text-secondary: #4D4D4D;--text-muted: #7D8784;--text-light: #6B8A83;--text-faint: #8A9494;--text-on-accent: #FFFFFF;--bg-page: #F2F2F2;--bg-surface: #FFFFFF;--bg-subtle: #F2F2F2;--bg-hover: #ECECEC;--border: #ECECEC;--border-light: #F2F2F2;--font-family: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono: "JetBrains Mono", "Menlo", "Monaco", "Consolas", "Courier New", monospace;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08), 0 2px 4px rgba(0, 0, 0, .04);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .1), 0 4px 8px rgba(0, 0, 0, .05);--shadow-glow: 0 0 0 3px rgba(255, 86, 0, .15);--shadow-popover: 0 8px 24px rgba(0, 0, 0, .12), 0 2px 6px rgba(0, 0, 0, .05);--tooltip-bg: #1B1B1B;--tooltip-text: #FFFFFF;--rail-w: 48px}@media(max-width:1024px){:root{--rail-w: 0px}}:root{--cat-preproduction: #579BFC;--cat-preproduction-bg: linear-gradient(135deg, #579BFC, #4A8AE8);--cat-preproduction-soft: #E8F0FE;--cat-production: #FF7575;--cat-production-bg: linear-gradient(135deg, #FF7575, #E86464);--cat-production-soft: #FFF0F0;--cat-postproduction: #00C875;--cat-postproduction-bg: linear-gradient(135deg, #00C875, #00B46A);--cat-postproduction-soft: #E6F9F0;--cat-clientaction: #FDAB3D;--cat-clientaction-bg: linear-gradient(135deg, #FDAB3D, #E89A2E);--cat-clientaction-soft: #FFF5E6;--cat-delivery: #2D5BFF;--cat-delivery-bg: linear-gradient(135deg, #2D5BFF, #2248CC);--cat-delivery-soft: #EBF0FF}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;font-family:var(--font-family);font-size:13px;color:var(--text-primary);background:var(--bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{display:flex;flex-direction:column;overflow:hidden}#app{display:flex;flex-direction:row;height:100vh;overflow:hidden}.app-main{display:flex;flex-direction:column;flex:1;min-width:0;overflow:hidden}.rail{z-index:445}.app-body{display:flex;flex:1;overflow:hidden}@media(min-width:1025px){#app.sidebar-collapsed>.sidebar{display:none}}button{font-family:var(--font-family);cursor:pointer;border:none;background:none;font-size:inherit;color:inherit}input,select,textarea{font-family:var(--font-family);font-size:13px;color:var(--text-primary);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;outline:none;transition:all .2s ease;background:var(--bg-surface)}input:focus,select:focus,textarea:focus{border-color:var(--qfp-orange);box-shadow:var(--shadow-glow)}input:hover:not(:focus),select:hover:not(:focus),textarea:hover:not(:focus){border-color:#bcc1c1}textarea{resize:vertical;min-height:70px}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;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='%23999' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#bcc1c1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#95b1ac}.qfp-sortable-chosen{cursor:grabbing}.qfp-sortable-ghost{opacity:.35}.qfp-sortable-drag{opacity:1!important;background:var(--bg-surface, #fff)!important;border-radius:var(--radius-sm, 6px);box-shadow:var(--shadow-lg, 0 10px 30px rgba(0, 0, 0, .1))!important;transform:scale(1.02);will-change:transform;cursor:grabbing}tr.qfp-sortable-drag{display:table;table-layout:fixed}.inline-confirm{z-index:4000;display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--bg-surface, #fff);border:1px solid var(--border, #d9dede);border-radius:var(--radius-sm, 6px);box-shadow:var(--shadow-lg, 0 10px 30px rgba(0, 0, 0, .15));font-size:13px;white-space:nowrap}.inline-confirm-label{color:var(--text, #2b3230);font-weight:500}.inline-confirm-btn{padding:4px 12px;border-radius:var(--radius-sm, 6px);border:1px solid var(--border, #d9dede);background:var(--bg-surface, #fff);color:var(--text, #2b3230);font-size:13px;font-weight:600;cursor:pointer;line-height:1.2}.inline-confirm-btn:hover{background:var(--bg-muted, #f2f4f4)}.inline-confirm-yes{background:#d6402f;border-color:#d6402f;color:#fff}.inline-confirm-yes:hover{background:#bd3728;border-color:#bd3728}.inline-confirm-yes:focus-visible{outline:2px solid #D6402F;outline-offset:2px}#qfp-toast-host{position:fixed;left:50%;bottom:24px;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:4000;pointer-events:none}.qfp-toast{max-width:min(92vw,420px);padding:10px 16px;border-radius:999px;background:#1e2022f5;color:#fff;font-size:13px;line-height:1.3;text-align:center;box-shadow:0 6px 20px #00000038;border:1px solid rgba(255,255,255,.12);opacity:0;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease}.qfp-toast.show{opacity:1;transform:translateY(0)}.header{position:sticky;top:0;z-index:100;background:var(--bg-surface);border-bottom:1px solid var(--border)}.header-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;row-gap:6px;padding:10px 24px;gap:16px;min-width:0;min-height:52px}.header-left{display:flex;align-items:center;gap:8px;flex:1 1 180px;min-width:0}.header-right{display:flex;align-items:center;gap:10px;flex-shrink:0;margin-left:auto}.crumbs{display:flex;align-items:center;gap:2px;min-width:0}.crumb-app{flex:0 0 auto;padding:5px 8px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;color:var(--text-muted);text-decoration:none;white-space:nowrap;transition:background .15s ease,color .15s ease}.crumb-app:hover,.crumb-app:focus-visible{background:var(--bg-hover);color:var(--qfp-dark);outline:none}.crumbs.is-tight .crumb-folder-name{display:none}.crumbs.is-tight .crumb-folder{padding:5px 6px}.crumbs.is-tighter .crumb-app,.crumbs.is-tighter .crumb-app+.crumb-sep{display:none}@media(max-width:1024px){.crumbs.is-tightest .crumb-folder,.crumbs.is-tightest .crumb-folder+.crumb-sep{display:none}}.crumb-folder{display:inline-flex;align-items:center;gap:6px;max-width:180px;min-width:0;flex:0 0 auto;padding:5px 8px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;color:var(--text-muted);background:transparent;white-space:nowrap;transition:background .15s ease,color .15s ease}.crumb-folder:hover,.crumb-folder:focus-visible{background:var(--bg-hover);color:var(--qfp-dark);outline:none}.crumb-folder-icon{width:16px;height:16px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.crumb-folder-name{min-width:0;overflow:hidden;text-overflow:ellipsis}.crumb-sep{flex-shrink:0;color:#c9cecd;font-size:18px;font-weight:300;padding:0 2px;-webkit-user-select:none;user-select:none}.header-title-text{font-size:18px;font-weight:700;color:var(--qfp-dark);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:0 1 auto;padding:3px 6px;border-radius:var(--radius-sm);cursor:text;transition:background .15s ease}.header-title-text:hover{background:var(--bg-hover)}.header-title-text:focus-visible{outline:none;background:var(--bg-hover);box-shadow:0 0 0 2px #ff560040}.header-title-input{font-size:18px;font-weight:700;color:var(--qfp-dark);line-height:1.2;font-family:var(--font-family);border:1.5px solid var(--qfp-orange);border-radius:var(--radius-sm);padding:1px 5px;margin:0;outline:none;background:var(--bg-surface);max-width:420px;min-width:120px}.header-title-caret-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:28px;padding:0;margin:0;background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s ease;flex-shrink:0}.header-title-caret-btn:hover,.header-title-caret-btn[aria-expanded=true]{background:var(--bg-hover)}.header-title-caret{font-size:12px;color:var(--text-muted);flex-shrink:0;line-height:1}.hd-budget-chip{flex:none;display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 9px;font-size:12px;font-weight:600;color:var(--text-secondary);background:var(--bg-surface);border:1px solid var(--text-muted);border-radius:var(--radius-sm);text-decoration:none;white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease}.hd-budget-chip:hover{background:var(--bg-hover);border-color:var(--qfp-dark);color:var(--qfp-dark)}.hd-budget-chip:focus-visible{outline:2px solid var(--qfp-dark);outline-offset:1px}.hd-budget-chip[aria-busy=true]{cursor:progress}.view-toggle{display:flex;align-items:center;background:var(--bg-hover);border:1px solid var(--border-light);border-radius:7px;padding:2px;gap:2px}.view-toggle-btn{padding:4px 11px;font-size:11px;font-weight:600;color:var(--text-secondary);background:transparent;border:1px solid transparent;border-radius:5px;cursor:pointer;transition:all .15s ease;letter-spacing:.3px;font-family:var(--font-family)}.view-toggle-btn:hover{color:var(--qfp-dark)}.view-toggle-btn.active{background:var(--bg-surface);border-color:var(--text-muted);color:var(--qfp-dark);font-weight:700;box-shadow:var(--shadow-sm)}.view-toggle-btn:focus-visible{outline:2px solid var(--qfp-dark);outline-offset:0}.month-nav-today{padding:5px 14px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--qfp-orange);border:1.5px solid var(--qfp-orange);border-radius:var(--radius-sm);background:transparent;cursor:pointer;transition:all .15s ease}.month-nav-today:hover{background:var(--qfp-orange);color:#fff}.hd-btn{height:30px;padding:0 12px;display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);background:transparent;border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease;font-family:var(--font-family);white-space:nowrap}.hd-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--qfp-dark);color:var(--qfp-dark)}.hd-btn:active:not(:disabled){transform:translateY(.5px)}.hd-btn:disabled{opacity:.35;cursor:default}.hd-btn-icon{font-size:12px;line-height:1}.hd-btn-caret{font-size:10px;margin-left:2px;opacity:.85}.hd-btn-toggle.is-on{color:#fff;background:var(--qfp-orange);border-color:var(--qfp-orange)}.hd-btn-toggle.is-on:hover:not(:disabled){background:var(--qfp-orange-hover);border-color:var(--qfp-orange-hover);color:#fff}.hd-btn-primary{color:#fff;background:var(--qfp-orange);border-color:var(--qfp-orange)}.hd-btn-primary:hover:not(:disabled){background:var(--qfp-orange-hover);border-color:var(--qfp-orange-hover);color:#fff}#share-btn{position:relative}.hd-share-dot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 0 1.5px var(--qfp-orange);display:none;pointer-events:none}.hd-share-dot.visible{display:block}.hd-share-wrap,.hd-overflow-wrap{position:relative}.hd-icon-group{display:flex;align-items:center;gap:4px}.hd-icon-btn{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;font-size:15px;line-height:1;color:var(--text-muted);background:transparent;border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease;font-family:var(--font-family)}.hd-icon-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--qfp-dark);color:var(--qfp-dark)}.hd-icon-btn:disabled{opacity:.35;cursor:default}.hd-btn-icon-only{padding:0;width:30px;justify-content:center}.hd-popover-overflow{min-width:300px}.hd-popover-overflow,#share-popover{max-height:calc(100vh - 80px);overflow-y:auto}.hd-popover-item-toggle.is-on{background:var(--qfp-orange-tint)}.hd-popover-item-toggle.is-on .hd-popover-icon{background:var(--qfp-orange);color:#fff}.hd-popover-item-toggle.is-on:hover{background:var(--qfp-orange-border)}.hd-popover{position:absolute;top:calc(100% + 10px);right:0;min-width:320px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 12px 32px #00000024,0 2px 6px #0000000f;padding:6px;display:none;z-index:200}.hd-popover.open{display:block;animation:hd-popover-in .14s ease}@keyframes hd-popover-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.hd-popover:before{content:"";position:absolute;top:-7px;right:22px;width:12px;height:12px;background:var(--bg-surface);border-top:1px solid var(--border);border-left:1px solid var(--border);transform:rotate(45deg)}.hd-popover-item{width:100%;display:flex;align-items:center;gap:12px;padding:12px 14px;background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background .12s ease;text-align:left;font-family:var(--font-family)}.hd-popover-item:hover{background:var(--bg-hover)}.hd-popover-item:disabled{opacity:.4;cursor:not-allowed}.hd-popover-item:disabled:hover{background:transparent}.hd-popover-item-destructive .hd-popover-title{color:#c00}.hd-popover-item-destructive:hover:not(:disabled){background:#fff5f5}.hd-popover-divider{height:1px;background:var(--border-light, #EEF0F2);margin:6px 8px}.hd-popover-item.copied{background:#2ea04314}.hd-popover-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--bg-hover);color:var(--qfp-orange);font-size:14px;flex-shrink:0}.hd-popover-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.hd-popover-title{font-size:13px;font-weight:700;color:var(--qfp-dark)}.hd-popover-desc{font-size:11px;color:var(--text-muted)}.hd-popover-action{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--qfp-orange);flex-shrink:0}.hd-popover-item.copied .hd-popover-action{color:var(--qfp-green)}.hd-popover-check{width:100%;display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--radius-sm);cursor:pointer;transition:background .12s ease}.hd-popover-check:hover{background:var(--bg-hover)}.hd-popover-check input{width:16px;height:16px;flex-shrink:0;margin:0 8px;accent-color:var(--qfp-orange);cursor:pointer}@media(max-width:1280px){.header-bar{padding:10px 18px;gap:12px}.crumb-folder-name{display:none}.crumb-folder{flex-shrink:0;padding:5px 6px}}@media(max-width:1024px){.header-bar{padding:8px 14px}.header-right{gap:6px;flex-wrap:wrap;justify-content:flex-end}}@media(max-width:768px){.header-title-text{font-size:16px}.header-left{flex:1 1 100%}.header-right{flex:1 1 100%;min-width:0}.hd-btn{padding:0 9px}.hd-btn-label,.hd-btn-caret{display:none}.view-toggle-btn{padding:4px 7px;font-size:10px}}@media(max-width:480px){.header-right{justify-content:flex-start;row-gap:8px}.view-toggle{flex:1 1 100%}.view-toggle-btn{flex:1 1 0;min-width:0;padding:4px 2px}.hd-icon-group{margin-right:auto}.hd-share-wrap,.hd-overflow-wrap{position:static}.hd-popover,.hd-popover-overflow,#share-popover{top:calc(100% + 4px);left:8px;right:8px;min-width:0;max-height:calc(100dvh - 160px)}.hd-popover:before{display:none}}.sidebar{width:300px;min-width:300px;background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.sidebar-section{padding:10px 20px;border-bottom:1px solid var(--border-light)}.sidebar-section-title{font-size:10px;font-weight:700;color:var(--text-light);text-transform:uppercase;letter-spacing:2px;margin-bottom:8px}.sidebar-section-collapsible:has(.legend-collapsed) .sidebar-section-title{margin-bottom:0}.sidebar-section-label-only{padding-top:8px;padding-bottom:4px}.sidebar-section-label-only .sidebar-section-title{margin-bottom:0}.sidebar-section-toggle{cursor:pointer;display:flex;justify-content:space-between;-webkit-user-select:none;user-select:none}.sidebar-chevron{font-size:8px;color:var(--text-faint);transition:transform .2s ease}.sidebar-chevron.collapsed{transform:rotate(-90deg)}.legend{display:flex;flex-direction:column;gap:8px;max-height:520px;transition:max-height .25s ease,opacity .25s ease}.legend.legend-collapsed{max-height:0;opacity:0;overflow:hidden}.markers-editor{display:flex;flex-direction:column;gap:6px;padding-top:4px}.markers-editor.legend-collapsed{max-height:0;opacity:0;overflow:hidden;padding-top:0}.marker-edit-group{display:flex;flex-direction:column;gap:3px}.marker-edit-row{display:flex;align-items:center;gap:8px}.marker-edit-desc{width:100%;border:1px solid transparent;background:transparent;font-size:11px;color:var(--text-light);padding:2px 6px 2px 22px;border-radius:5px}.marker-edit-desc::placeholder{color:var(--text-faint);font-style:italic}.marker-edit-desc:hover{background:var(--bg-subtle)}.marker-edit-desc:focus{background:var(--bg-surface);border-color:var(--qfp-green-ring);outline:none;color:var(--text-secondary)}.marker-edit-chip{width:14px;height:14px;border-radius:3px;flex-shrink:0}.marker-edit-row.is-section .marker-edit-chip{background:#b8bcc2}.marker-edit-row.is-lock .marker-edit-chip{background:#e8836f}.marker-edit-color{border:none;padding:0;cursor:pointer}.marker-edit-color:hover{box-shadow:0 0 0 2px var(--bg-hover)}.marker-edit-color:focus-visible{outline:2px solid var(--qfp-dark);outline-offset:2px}.marker-edit-label{flex:1;min-width:0;border:1.5px solid transparent;background:transparent;font-size:12px;font-weight:600;color:var(--text-primary);padding:4px 6px;border-radius:6px}.marker-edit-label:hover{background:var(--bg-subtle)}.marker-edit-label:focus{background:var(--bg-surface);border-color:var(--qfp-orange);outline:none}.marker-edit-date{flex-shrink:0;font-size:10px;font-weight:700;color:var(--text-light);background:var(--bg-subtle);border:1px solid var(--border);border-radius:5px;padding:3px 7px;cursor:pointer;white-space:nowrap}.marker-edit-date:hover{color:var(--text-secondary);border-color:var(--text-light)}.marker-edit-remove{flex-shrink:0;width:20px;height:20px;border:none;background:transparent;color:var(--text-faint);cursor:pointer;border-radius:5px;font-size:16px;line-height:1}.marker-edit-remove:hover{background:var(--bg-hover);color:var(--text-secondary)}.marker-add-row{display:flex;gap:6px;margin-top:2px}.marker-add-btn{flex:1;font-size:11px;font-weight:600;color:var(--text-light);background:var(--bg-subtle);border:1px dashed var(--border);border-radius:6px;padding:6px;cursor:pointer;transition:all .12s ease}.marker-add-btn:hover{color:var(--text-secondary);border-color:var(--text-light);background:var(--bg-hover)}.cat-editor{display:flex;flex-direction:column;gap:6px}.cat-edit-row{display:flex;align-items:center;gap:8px}.cat-edit-swatch{width:22px;height:22px;border-radius:var(--radius-sm);flex-shrink:0;border:none;padding:0;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.cat-edit-swatch:hover{transform:scale(1.15);box-shadow:0 0 0 2px #0000001a}.cat-edit-label{flex:1;min-width:0;border:1.5px solid transparent;background:transparent;font-size:12px;font-weight:500;font-family:var(--font-family);color:var(--text-secondary);padding:5px 8px;border-radius:var(--radius-sm);outline:none;transition:border-color .15s ease,background .15s ease}.cat-edit-label:hover{background:var(--bg-hover)}.cat-edit-label:focus{border-color:var(--qfp-orange);background:var(--bg-surface);box-shadow:0 0 0 3px #ff560014}.cat-edit-remove{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-faint);font-size:15px;line-height:1;cursor:pointer;border-radius:var(--radius-sm);transition:all .15s ease;flex-shrink:0}.cat-edit-remove:hover{background:#cc000014;color:#c00}.cat-edit-add{display:flex;align-items:center;justify-content:center;gap:4px;padding:6px;margin-top:2px;border:1.5px dashed var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-light);font-size:11px;font-weight:600;font-family:var(--font-family);cursor:pointer;transition:all .2s ease;width:100%}.cat-edit-add:hover{color:var(--qfp-orange);border-color:var(--qfp-orange);background:var(--qfp-orange-tint)}.task-quick-add{display:flex;align-items:center;gap:6px;padding:8px 16px 4px}.task-quick-add-input{flex:1;min-width:0;padding:7px 10px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:12px;font-weight:500;font-family:var(--font-family);color:var(--text-primary);background:var(--bg-surface);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.task-quick-add-input:focus{border-color:var(--qfp-orange);box-shadow:0 0 0 3px #ff560014}.task-quick-add-input::placeholder{color:var(--text-faint);font-weight:400}.task-quick-add-cat{position:relative;display:flex;align-items:center;flex-shrink:0}.task-quick-add-dot{position:absolute;left:8px;width:8px;height:8px;border-radius:50%;pointer-events:none}.task-quick-add-select{max-width:96px;padding:7px 6px 7px 22px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:11px;font-weight:600;font-family:var(--font-family);color:var(--text-secondary);background:var(--bg-surface);cursor:pointer;outline:none;transition:border-color .15s ease}.task-quick-add-select:focus{border-color:var(--qfp-orange)}.task-quick-add-btn{width:32px;height:32px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-sm);background:var(--qfp-orange);color:#fff;font-size:18px;line-height:1;cursor:pointer;transition:background .15s ease,transform .1s ease}.task-quick-add-btn:hover{background:var(--qfp-orange-hover)}.task-quick-add-btn:active{transform:scale(.94)}.cat-color-picker{position:fixed;z-index:600;background:var(--bg-surface, white);border:1px solid var(--border, #ECECEC);border-radius:10px;padding:8px;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;box-shadow:0 8px 24px #00000026;animation:cat-picker-in .15s ease}.cat-color-auto{grid-column:1 / -1;display:flex;align-items:center;gap:7px;padding:5px 8px;font-size:11px;font-weight:600;color:var(--text-secondary);background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;cursor:pointer}.cat-color-auto:hover{background:var(--bg-hover)}.cat-color-auto.active{border-color:var(--qfp-dark);color:var(--qfp-dark)}.cat-color-auto:focus-visible{outline:2px solid var(--qfp-dark);outline-offset:2px}.cat-color-auto-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}@keyframes cat-picker-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.cat-picker{position:fixed;z-index:600;background:var(--bg-surface, white);border:1px solid var(--border, #ECECEC);border-radius:10px;padding:6px;min-width:168px;max-height:60vh;overflow-y:auto;box-shadow:0 8px 24px #00000026;animation:cat-picker-in .15s ease}.cat-picker-item{width:100%;display:flex;align-items:center;gap:10px;padding:8px 10px;background:transparent;border:none;border-radius:7px;cursor:pointer;text-align:left;font-family:var(--font-family);font-size:13px;font-weight:600;color:var(--text-primary);transition:background .1s ease}.cat-picker-item:hover{background:var(--bg-hover)}.cat-picker-item.active{background:var(--bg-subtle)}.cat-picker-dot{width:11px;height:11px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 2px #0000000f}.cat-picker-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-picker-check{color:var(--qfp-orange);font-weight:800}.cat-edit-grip{flex-shrink:0;cursor:grab;color:var(--text-faint, #B8BCC2);font-size:13px;line-height:1;letter-spacing:-2px;padding:2px 1px;-webkit-user-select:none;user-select:none;transition:color .12s ease}.cat-edit-grip:hover{color:var(--text-light, #8E9196)}.cat-edit-grip:active{cursor:grabbing}.cat-edit-row.dragging{opacity:.4;border-radius:var(--radius-sm);outline:1.5px dashed var(--border, #ECECEC);outline-offset:-1px}.cat-edit-row.drop-above{box-shadow:inset 0 2px 0 var(--qfp-orange)}.cat-edit-row.drop-below{box-shadow:inset 0 -2px 0 var(--qfp-orange)}.cat-color-swatch{width:26px;height:26px;border-radius:6px;border:2px solid transparent;cursor:pointer;padding:0;transition:transform .1s ease,border-color .1s ease}.cat-color-swatch:hover{transform:scale(1.15);border-color:#0003}.cat-color-swatch.active{border-color:var(--qfp-dark, #4D4D4D);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--qfp-dark, #4D4D4D)}.cat-color-custom-wrap{position:relative;width:26px;height:26px;display:inline-flex;border-radius:6px}.cat-color-custom-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:26px;height:26px;margin:0;padding:0;border:2px solid transparent;border-radius:6px;cursor:pointer;background:none;transition:transform .1s ease,border-color .1s ease}.cat-color-custom-input::-webkit-color-swatch-wrapper{padding:0}.cat-color-custom-input::-webkit-color-swatch{border:none;border-radius:4px}.cat-color-custom-input::-moz-color-swatch{border:none;border-radius:4px}.cat-color-custom-wrap:hover .cat-color-custom-input{transform:scale(1.15);border-color:#0003}.cat-color-custom-wrap.active .cat-color-custom-input{border-color:var(--qfp-dark, #4D4D4D);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--qfp-dark, #4D4D4D)}.cat-color-custom-plus{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;line-height:1;color:#fff;text-shadow:0 0 2px rgba(0,0,0,.6),0 1px 1px rgba(0,0,0,.4);pointer-events:none}.task-list-scroll{flex:1;overflow-y:auto;padding:12px 16px}.task-list-empty{text-align:center;color:var(--text-light);font-size:13px;padding:var(--space-xl) var(--space-md);line-height:1.8}.task-list-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-md);cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,opacity .15s ease;margin-bottom:2px;position:relative}.task-list-grip{flex:0 0 auto;display:inline-flex;align-items:center;color:var(--text-faint, #BCC1C1);opacity:0;transition:opacity .15s ease;margin-right:-4px;cursor:grab}.task-list-item:hover .task-list-grip{opacity:1}.task-list-item:active .task-list-grip{cursor:grabbing}.task-list-item:hover{background:var(--bg-hover);transform:translate(2px);z-index:10}.task-insert-btn{position:absolute;left:50%;transform:translate(-50%);width:22px;height:22px;border:none;border-radius:50%;background:var(--qfp-orange);box-shadow:0 2px 6px #ff560066;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;opacity:0;pointer-events:none;transition:opacity .12s ease,transform .12s ease;z-index:6}.task-insert-btn.is-top{top:-11px}.task-insert-btn.is-bottom{bottom:-11px}.task-list-item:hover .task-insert-btn,.task-insert-btn:hover,.task-insert-btn:focus-visible{opacity:1;pointer-events:auto}.task-insert-btn:hover{background:var(--qfp-orange-dark, #e04e00);transform:translate(-50%) scale(1.12)}.task-list-item-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 2px #0000000f;border:none;padding:0;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.task-list-item-dot:hover{transform:scale(1.25);box-shadow:0 0 0 3px #ff560040}.task-list-item-info{flex:1;min-width:0}.task-list-item-name{font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:fit-content;max-width:100%}.task-list-item:hover .task-list-item-name{cursor:text}.task-list-item.complete .task-list-item-name{color:var(--text-faint)}.task-list-item.complete .task-list-item-name:before{content:"✓";color:var(--cat-postproduction, #00C875);font-weight:700;margin-right:5px}.task-list-item.in-progress{outline:1.5px solid var(--qfp-orange);outline-offset:-1.5px}.task-list-item.complete .task-list-item-name.editing-inline:before{content:none}.task-list-item.complete .task-list-item-datetext{opacity:.7}.task-list-item-name.editing-inline{cursor:text;white-space:normal;overflow:visible;text-overflow:clip;outline:none;color:var(--text-primary);background:var(--bg-surface);box-shadow:0 0 0 2px var(--qfp-green-ring);border-radius:4px;padding:1px 4px;margin:-1px -4px}.task-list-item-dates{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--text-muted);margin-top:2px}.task-list-item-datetext{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-day-stepper{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}.task-day-btn{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;background:transparent;color:var(--text-light);font-size:14px;line-height:1;cursor:pointer;border-radius:4px;transition:background .15s ease,color .15s ease}.task-day-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.task-day-count{font-size:11px;font-weight:600;color:var(--text-muted);min-width:16px;text-align:center}.task-restore-btn{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--bg-surface);cursor:pointer;transition:all .15s ease;position:relative;font-size:13px;padding:0}.task-restore-btn:hover{border-color:var(--qfp-orange);background:var(--qfp-orange-tint);transform:scale(1.1)}.task-restore-icon{pointer-events:none;display:flex;align-items:center;justify-content:center;color:var(--text-light);transition:color .15s ease}.task-restore-btn:hover .task-restore-icon{color:var(--qfp-orange)}.task-restore-date{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;width:100%;height:100%;cursor:pointer;border:none;padding:0}.task-list-item{cursor:grab}.task-list-item:active{cursor:grabbing}.task-list-item.selected{background:var(--qfp-green-tint);box-shadow:inset 0 0 0 2px var(--qfp-green-ring)}.task-list-item.selected:hover{background:var(--qfp-green-tint-strong)}.task-list-item.editing{box-shadow:inset 0 0 0 1.5px var(--qfp-green-ring);background:var(--qfp-green-tint)}.task-list-item.editing:hover{background:var(--qfp-green-tint)}.tasks-header-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.tasks-select-all{border:none;background:transparent;color:var(--qfp-green-ring);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:2px 6px;border-radius:5px;cursor:pointer;transition:background .12s ease,color .12s ease}.tasks-select-all:hover{background:var(--qfp-green-tint);color:var(--text-primary)}.task-list-marker{display:flex;align-items:center;gap:8px;padding:6px 12px;margin-bottom:2px;border-radius:var(--radius-md);cursor:pointer;position:relative;transition:background .15s ease}.task-list-marker:hover{background:var(--bg-hover)}.task-list-marker.is-section{background:var(--bg-subtle)}.task-list-marker-chip{width:12px;height:12px;border-radius:3px;flex-shrink:0}.task-list-marker.is-section .task-list-marker-chip{background:#b8bcc2}.task-list-marker.is-lock .task-list-marker-chip{background:#e8836f}.task-list-marker-label{flex:1;min-width:0;font-size:12px;font-weight:700;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-list-marker.is-section .task-list-marker-label{text-transform:uppercase;letter-spacing:.4px;font-size:11px}.task-list-marker-date{flex-shrink:0;font-size:10px;font-weight:700;color:var(--text-faint)}.task-list-marker.selected{background:var(--qfp-green-tint);box-shadow:inset 0 0 0 1.5px var(--qfp-green-ring)}.task-list-item.tbd .task-list-item-dot{opacity:.4}.task-tbd-label{color:var(--text-light);font-style:italic;font-size:11px}.task-action-bar{background:var(--bg-hover);border-bottom:1px solid var(--border-light);padding:8px 12px}.task-action-default,.task-action-shift{display:flex;flex-direction:column;align-items:stretch;gap:6px}.bulk-shift-reason{display:flex;flex-direction:column;gap:6px;padding:8px 12px;background:var(--qfp-orange-tint, rgba(255, 86, 0, .06));border-bottom:1px solid var(--border-light)}.bulk-shift-reason-msg{font-size:11px;font-weight:600;color:var(--text-secondary)}.bulk-shift-reason-row{display:flex;gap:6px}.bulk-shift-reason-input{flex:1;min-width:0;padding:5px 8px;font-size:12px;font-family:var(--font-family);color:var(--text-primary);background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);outline:none}.bulk-shift-reason-input:focus{border-color:var(--qfp-orange);box-shadow:var(--shadow-glow)}.bulk-shift-reason-type{flex-shrink:0;padding:5px 6px;font-size:11px;font-family:var(--font-family);color:var(--text-primary);background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);outline:none}.bulk-shift-reason-actions{display:flex;justify-content:flex-end;gap:6px}.task-action-shift,.task-action-bar.shift-mode .task-action-default{display:none}.task-action-bar.shift-mode .task-action-shift{display:flex}.task-action-buttons,.task-action-shift-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.task-action-count{font-size:10px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px}.task-action-btn{padding:4px 8px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);background:transparent;border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease;font-family:var(--font-family);white-space:nowrap}.task-action-btn:hover{color:var(--qfp-orange);border-color:var(--qfp-orange);background:#ff56000f}.task-action-btn-primary{color:#fff;background:var(--qfp-orange);border-color:var(--qfp-orange)}.task-action-btn-primary:hover{color:#fff;background:var(--qfp-orange-hover);border-color:var(--qfp-orange-hover)}.task-action-shift-stepper{display:inline-flex;align-items:stretch;border:1.5px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-surface)}.task-action-shift-btn{width:22px;background:transparent;border:none;color:var(--text-muted);font-size:13px;font-weight:700;line-height:1;cursor:pointer;padding:0;transition:background .15s ease,color .15s ease}.task-action-shift-btn:hover{background:var(--bg-hover);color:var(--qfp-orange)}.task-action-shift-input{width:44px;border:none;background:transparent;text-align:center;font-size:12px;font-weight:700;color:var(--qfp-dark);font-family:var(--font-family);padding:4px 0;-moz-appearance:textfield}.task-action-shift-input::-webkit-outer-spin-button,.task-action-shift-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.task-action-shift-input:focus{outline:none;background:var(--qfp-orange-tint)}.task-action-shift-unit{font-size:11px;font-weight:600;color:var(--text-secondary);margin-right:auto}.task-action-delete{padding:4px 8px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#c00;background:#cc00000f;border:1.5px solid rgba(204,0,0,.2);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease;font-family:var(--font-family);white-space:nowrap}.task-action-delete:hover{color:#fff;background:#c00;border-color:#c00}.task-action-clear{padding:2px 6px;font-size:12px;color:var(--text-light);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease;font-family:var(--font-family);line-height:1}.task-action-clear:hover{color:var(--text-primary);background:var(--bg-surface)}@media(max-width:1024px){.sidebar{position:fixed;left:0;top:0;bottom:0;z-index:200;transform:translate(-100%);transition:transform .3s ease;box-shadow:4px 0 24px #0000001f}.sidebar.open{transform:translate(0)}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:199;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sidebar-overlay.active{display:block}}.sidebar-toggle{display:none;width:36px;height:36px;padding:0;align-items:center;justify-content:center;border-radius:8px;color:var(--text-muted);border:1px solid transparent;background:transparent;cursor:pointer;transition:background .12s ease,color .12s ease;flex-shrink:0}.sidebar-toggle .nav-icon{width:20px;height:20px}.sidebar-toggle:hover,.sidebar-toggle:focus-visible{background:var(--bg-hover);color:var(--qfp-dark)}.sidebar-toggle:focus-visible{outline:2px solid var(--qfp-dark);outline-offset:2px}@media(max-width:1024px){.sidebar-toggle{display:flex}}@media(max-width:768px){.sidebar-toggle{width:40px;height:40px}}.sidebar-collapse-tab{position:fixed;top:50%;left:calc(var(--rail-w) + 300px);transform:translate(-50%,-50%);width:20px;height:48px;display:flex;align-items:center;justify-content:center;padding:0;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);color:var(--text-muted);cursor:pointer;z-index:120;opacity:.55;transition:opacity .15s ease,color .15s ease,left .15s ease}.sidebar-collapse-tab:hover{opacity:1;color:var(--qfp-dark)}.sidebar-collapse-chevron{font-size:14px;line-height:1}#app.sidebar-collapsed .sidebar-collapse-tab{left:var(--rail-w);transform:translateY(-50%);border-top-left-radius:0;border-bottom-left-radius:0;opacity:.8}@media(max-width:1024px){.sidebar-collapse-tab{display:none}}.calendar-container{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-page);padding:20px 24px}.calendar-grid{flex:1;display:flex;flex-direction:column;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.calendar-header-row{display:grid;grid-template-columns:repeat(7,1fr);background:var(--bg-subtle);border-bottom:1px solid var(--border);flex-shrink:0}.calendar-header-cell{padding:12px 14px;font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:1.5px;text-align:center;border-right:1px solid var(--border-light)}.calendar-header-cell:last-child{border-right:none}.calendar-header-cell.weekend{color:var(--text-faint)}.calendar-weeks{flex:1;display:flex;flex-direction:column;overflow-y:auto}.calendar-week-row{display:grid;grid-template-columns:repeat(7,1fr);min-height:110px;flex:none;position:relative;border-bottom:1px solid var(--border-light)}.calendar-week-row:last-child{border-bottom:none}.calendar-day{position:relative;border-right:1px solid var(--border-light);padding:8px 10px;cursor:pointer;transition:all .15s ease;min-height:110px}.calendar-day:last-child{border-right:none}.calendar-day:hover{background:var(--bg-hover)}.calendar-day.outside-month{background:var(--bg-subtle);opacity:.35}.calendar-day.weekend{background:var(--bg-subtle)}.calendar-day.today{background:var(--qfp-orange-tint);box-shadow:inset 0 0 0 1px #ff560026}.calendar-day.drop-target{background:#ff56001f;box-shadow:inset 0 0 0 2px var(--qfp-orange)}.calendar-day.today .calendar-day-number{color:var(--bg-surface);font-weight:700;background:var(--qfp-orange);width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:12px}.calendar-day-number{font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:4px;-webkit-user-select:none;user-select:none;display:inline-block}.calendar-day.outside-month .calendar-day-number{color:var(--text-faint)}.calendar-week-tasks{position:absolute;top:32px;left:0;right:0;bottom:4px;pointer-events:none}.cal-phase-band{position:absolute;left:0;top:0;bottom:0;width:5px;z-index:0;opacity:.9}.cal-phase-label{position:absolute;top:3px;left:26px;z-index:6;font-size:9px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:#fff;padding:2px 7px;border-radius:4px;white-space:nowrap;max-width:55%;overflow:hidden;text-overflow:ellipsis;box-shadow:0 1px 3px #0000002e}.cal-lock-line{position:absolute;left:0;right:0;top:0;height:0;border-top:2px solid rgba(192,57,43,.7);z-index:4;pointer-events:none}.cal-lock-label{position:absolute;top:3px;right:10px;z-index:6;font-size:9px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:#fff;background:#c0392b;padding:2px 7px;border-radius:4px;white-space:nowrap;box-shadow:0 1px 3px #c0392b4d}.cal-phase-label.selected,.cal-lock-label.selected{box-shadow:0 0 0 2px var(--qfp-green-ring),0 1px 3px #0000002e}.cal-phase-band.selected{width:7px;box-shadow:inset -2px 0 0 var(--qfp-green-ring)}.cal-lock-line.selected{border-top-color:var(--qfp-green-ring);border-top-width:3px}.task-bar{position:absolute;height:28px;border-radius:var(--radius-sm);display:flex;align-items:center;padding:0 10px;cursor:pointer;pointer-events:all;transition:all .2s ease;-webkit-user-select:none;user-select:none;overflow:hidden;z-index:1;box-shadow:0 1px 3px #0000001a}.task-bar:hover{box-shadow:var(--shadow-md);transform:translateY(-1px);z-index:5}.task-bar.dragging{opacity:.9;box-shadow:var(--shadow-lg);z-index:10;transform:scale(1.02)}.task-bar.selected,.task-bar.editing{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--qfp-green-ring),var(--shadow-sm);z-index:4}.task-bar-compact.selected,.task-bar-compact.editing{box-shadow:0 0 0 2px var(--qfp-green-ring);z-index:4}.task-bar-label.inline-editing,.task-bar[data-category] .task-bar-label.inline-editing{outline:none;background:#fffffff5;color:#000;text-shadow:none;border-radius:3px;padding:0 3px;box-shadow:0 0 0 2px var(--qfp-green-ring);cursor:text;white-space:nowrap;overflow:visible}.task-bar:has(.inline-editing){overflow:visible;z-index:30}.task-bar-label{font-size:11px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto;min-width:0;line-height:1;letter-spacing:.2px;cursor:text}.task-bar.task-complete,.task-bar-compact.task-complete{opacity:.55}.task-bar.task-complete .task-bar-label:before{content:"✓ ";font-weight:800}.task-bar.task-complete .task-bar-label.inline-editing:before{content:none}.task-bar.task-in-progress,.task-bar-compact.task-in-progress{outline:1.5px solid var(--qfp-orange);outline-offset:-1.5px}.task-bar[data-category=pre-production]{background:var(--cat-preproduction-bg);border:none}.task-bar[data-category=pre-production] .task-bar-label{color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.1)}.task-bar[data-category=production]{background:var(--cat-production-bg);border:none}.task-bar[data-category=production] .task-bar-label{color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.1)}.task-bar[data-category=post-production]{background:var(--cat-postproduction-bg);border:none}.task-bar[data-category=post-production] .task-bar-label{color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.1)}.task-bar[data-category=client-action]{background:var(--cat-clientaction-bg);border:none}.task-bar[data-category=client-action] .task-bar-label{color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.1)}.task-bar[data-category=delivery]{background:var(--cat-delivery-bg);border:none}.task-bar[data-category=delivery] .task-bar-label{color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.1)}.task-bar-handle{position:absolute;top:0;bottom:0;width:10px;cursor:col-resize;z-index:2;opacity:0;transition:opacity .2s ease}.task-bar:hover .task-bar-handle{opacity:1}.task-bar-handle-left{left:0;border-radius:var(--radius-sm) 0 0 var(--radius-sm);background:linear-gradient(90deg,rgba(0,0,0,.15),transparent)}.task-bar-handle-right{right:0;border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:linear-gradient(-90deg,rgba(0,0,0,.15),transparent)}.calendar-day-add{position:absolute;bottom:2px;right:2px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:16px;color:var(--text-faint);opacity:0;transition:all .2s ease}.calendar-day:hover .calendar-day-add{opacity:1}.calendar-day-add:hover{background:var(--qfp-orange);color:#fff;box-shadow:var(--shadow-sm);transform:scale(1.1)}.calendar-zoom-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin-bottom:12px}.calendar-zoom-toggle,.calendar-density-toggle{display:flex;align-items:center;width:fit-content;background:var(--bg-hover);border:1px solid var(--border-light);border-radius:7px;padding:2px;gap:2px}.calendar-zoom-btn,.calendar-density-btn{padding:4px 11px;font-size:11px;font-weight:600;letter-spacing:.3px;color:var(--text-secondary);background:transparent;border:1px solid transparent;border-radius:5px;cursor:pointer;transition:all .15s ease;font-family:var(--font-family)}.calendar-zoom-btn:hover,.calendar-density-btn:hover{color:var(--qfp-dark)}.calendar-zoom-btn.active,.calendar-density-btn.active{background:var(--bg-surface);border-color:var(--text-muted);color:var(--qfp-dark);font-weight:700;box-shadow:var(--shadow-sm)}.calendar-zoom-btn:focus-visible,.calendar-density-btn:focus-visible{outline:2px solid var(--qfp-dark);outline-offset:0}.calendar-expanded .task-bar{height:42px;padding-top:4px;padding-bottom:4px}.calendar-expanded .task-bar-label:not(.inline-editing){white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2;overflow:hidden}.calendar-header-sticky{position:sticky;top:0;z-index:5}.calendar-month-divider{grid-column:1 / -1;padding:12px 16px;font-size:13px;font-weight:800;color:var(--text-primary);text-transform:uppercase;letter-spacing:2px;background:var(--bg-subtle);border-bottom:2px solid var(--border);position:sticky;top:0;z-index:4;pointer-events:none}.calendar-compact .calendar-month-divider{padding:8px 12px;font-size:11px;font-weight:700;letter-spacing:1.5px}.calendar-compact .calendar-grid{overflow:hidden}.calendar-compact .calendar-weeks{overflow-y:auto}.calendar-compact .calendar-header-cell{padding:6px 4px;font-size:9px;letter-spacing:.5px}.calendar-compact .calendar-week-row{min-height:36px;flex:none}.calendar-compact .calendar-day{padding:3px 4px;min-height:36px}.calendar-compact .calendar-day-number{font-size:9px;margin-bottom:0}.calendar-compact .calendar-day.today .calendar-day-number{width:16px;height:16px;font-size:8px}.calendar-compact .calendar-week-tasks{top:18px;bottom:1px}.calendar-compact .calendar-day:hover{background:var(--bg-hover);cursor:pointer}.task-bar-compact{position:absolute;height:6px;border-radius:3px;pointer-events:all;cursor:pointer;opacity:.85;transition:opacity .15s ease;z-index:1}.task-bar-compact:hover{opacity:1;box-shadow:0 0 0 2px #00000026;z-index:5}.preview-bar{position:absolute;height:22px;border-radius:4px;font-size:10px;font-weight:600;color:#fff;padding:3px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;z-index:10;transition:all .2s ease}.preview-ghost{opacity:.2;border:2px dashed rgba(0,0,0,.15)}.preview-proposed{opacity:.85;border:2px dashed white;box-shadow:0 2px 8px #00000026;animation:preview-pulse 1.5s ease-in-out infinite}@keyframes preview-pulse{0%,to{opacity:.85}50%{opacity:.65}}.task-popover{position:fixed;z-index:700;max-width:280px;padding:10px 12px;background:var(--qfp-dark, #1f2a26);color:#fff;border-radius:var(--radius-sm);box-shadow:0 6px 24px #00000047;pointer-events:none;font-family:var(--font-family)}.task-popover-name{font-size:13px;font-weight:700;line-height:1.25;margin-bottom:3px;word-break:break-word}.task-popover-meta{font-size:11px;font-weight:600;opacity:.85;margin-bottom:5px}.task-popover-cat{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;opacity:.9}.task-popover-dot{width:9px;height:9px;border-radius:50%;flex:none;box-shadow:0 0 0 2px #ffffff26}.task-popover-note{margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.14);font-size:11px;font-weight:500;line-height:1.35;opacity:.9;white-space:pre-wrap;word-break:break-word;max-height:120px;overflow:hidden}.task-panel{position:fixed;top:0;left:0;width:340px;max-width:calc(100vw - 24px);max-height:calc(100vh - 88px);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;box-shadow:var(--shadow-lg);z-index:450;opacity:0;visibility:hidden;transform:scale(.98);transition:opacity .18s ease,transform .18s ease,visibility .18s ease}.task-panel.active{opacity:1;visibility:visible;transform:scale(1)}.task-panel-header{cursor:move;-webkit-user-select:none;user-select:none}.task-panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:2px solid var(--qfp-orange)}.task-panel-title{font-size:15px;font-weight:700;color:var(--qfp-dark)}.task-panel-close{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-light);font-size:16px;cursor:pointer;transition:all .2s ease}.task-panel-close:hover{background:var(--bg-hover);color:var(--text-primary);transform:rotate(90deg)}.task-panel-body{padding:16px 18px;display:flex;flex-direction:column;gap:14px;overflow-y:auto;flex:1}.task-panel-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;row-gap:8px;padding:12px 14px;border-top:1px solid var(--border-light)}.task-panel-footer-left,.task-panel-footer-right{display:flex;align-items:center;gap:6px}.task-panel .form-label{font-size:10px;letter-spacing:1.2px}.task-panel .form-group{gap:4px}.task-panel input[type=text],.task-panel textarea,.task-panel select{font-size:13px;padding:8px 12px}.task-panel textarea{min-height:60px}.task-panel .days-stepper{height:44px}.task-panel .days-stepper-btn{width:44px;font-size:14px}.task-panel .days-stepper-input{width:52px;font-size:13px;padding:0 2px}.status-segmented{display:flex;gap:4px;background:var(--bg-subtle);padding:3px;border-radius:var(--radius-sm)}.status-seg{flex:1;padding:7px 6px;font-size:12px;font-weight:600;font-family:var(--font-family);color:var(--text-muted);background:transparent;border:1.5px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease;white-space:nowrap}.status-seg:hover{background:var(--bg-hover)}.status-seg:focus-visible{outline:2px solid var(--qfp-orange);outline-offset:1px}.status-seg.active[data-status=not_started]{background:var(--bg-hover);color:var(--text-secondary);border-color:var(--border)}.status-seg.active[data-status=in_progress]{background:#ff56001f;color:var(--qfp-orange);border-color:var(--qfp-orange)}.status-seg.active[data-status=complete]{background:#00c87524;color:#0a8f53;border-color:#00c875}.task-panel .btn-primary,.task-panel .btn-secondary{padding:8px 12px;font-size:12px}.task-panel .btn-danger{padding:8px 10px;font-size:11px}.task-panel .category-select-wrapper select{padding-left:30px;padding-right:32px;text-overflow:ellipsis}.task-panel .category-dot{left:12px}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:1.5px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.btn-primary{padding:10px 24px;font-size:13px;font-weight:700;color:#fff;background:var(--qfp-orange);border-radius:var(--radius-sm);transition:all .2s ease;letter-spacing:.3px}.btn-primary:hover{background:var(--qfp-orange-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{padding:10px 24px;font-size:13px;font-weight:600;color:var(--text-secondary);background:transparent;border:1.5px solid var(--border);border-radius:var(--radius-sm);transition:all .2s ease}.btn-secondary:hover{border-color:#bcc1c1;background:var(--bg-subtle)}.btn-danger{padding:10px 16px;font-size:12px;font-weight:600;color:#d32f2f;background:transparent;border:none;border-radius:var(--radius-sm);transition:all .2s ease}.btn-danger:hover{background:#fff5f5}.btn-danger.confirming{color:#fff;background:#d32f2f;border-radius:var(--radius-sm);padding:8px 14px;font-weight:700;font-size:12px}.category-option{display:flex;align-items:center;gap:var(--space-sm)}.category-select-wrapper{position:relative}.category-dot{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 2px #0000000f}.category-select-wrapper select{padding-left:32px}.form-row-cat-days{grid-template-columns:1fr auto}.form-group-days{min-width:110px}.task-wknd-check{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:12px;color:var(--text-secondary, #4D4D4D);cursor:pointer;white-space:nowrap}.task-wknd-check input{width:14px;height:14px;cursor:pointer;accent-color:var(--qfp-orange, #FF5600)}.task-days-note{font-weight:500;font-size:10px;color:var(--text-faint, #8E9196);text-transform:none;letter-spacing:0}.days-stepper{display:flex;align-items:center;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;height:44px}.days-stepper-btn{width:44px;height:100%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;color:var(--text-secondary);background:var(--bg-subtle);border:none;cursor:pointer;transition:background .15s ease;-webkit-user-select:none;user-select:none}.days-stepper-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.days-stepper-input{width:52px;text-align:center;font-size:13px;font-weight:700;font-family:var(--font-family);color:var(--text-primary);border:none;border-left:1px solid var(--border);border-right:1px solid var(--border);background:#fff;outline:none;-moz-appearance:textfield;height:100%;padding:0 2px}.days-stepper-input::-webkit-inner-spin-button,.days-stepper-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.form-input-with-icon{position:relative}.form-input-with-icon input{width:100%}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:500;opacity:0;visibility:hidden;transition:all .25s ease}.modal-overlay.active{opacity:1;visibility:visible}.modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:500px;max-height:90vh;overflow-y:auto;transform:translateY(16px) scale(.96);transition:transform .25s cubic-bezier(.32,.72,0,1);box-shadow:var(--shadow-lg)}.modal-overlay.active .modal{transform:translateY(0) scale(1)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:22px 28px 18px;border-bottom:1px solid var(--border-light)}.modal-title{font-size:18px;font-weight:700;color:var(--qfp-dark)}.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-light);font-size:18px;transition:all .2s ease}.modal-close:hover{background:var(--bg-hover);color:var(--text-primary);transform:rotate(90deg)}.modal-body{padding:24px 28px;display:flex;flex-direction:column;gap:20px}.modal-footer{display:flex;align-items:center;justify-content:space-between;padding:18px 28px 22px;border-top:1px solid var(--border-light)}.modal-footer-right{display:flex;gap:10px}.timeline-container{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-page);padding:20px 24px}.timeline-wrapper{flex:1;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-sm)}.timeline-scroll{flex:1;overflow-x:auto;overflow-y:auto}.timeline-inner{display:flex;flex-direction:column;min-height:100%}.timeline-head{flex-shrink:0;position:sticky;top:0;z-index:15}.timeline-header{display:flex;border-bottom:2px solid var(--border);background:var(--bg-subtle)}.timeline-label-col{width:var(--tl-label, 260px);min-width:var(--tl-label, 260px);padding:12px 20px;font-size:10px;font-weight:700;color:var(--text-light);text-transform:uppercase;letter-spacing:2px;border-right:1px solid var(--border);display:flex;align-items:center;gap:8px;position:sticky;left:0;z-index:12;background:var(--bg-subtle)}.tl-density-btn{margin-left:auto;display:inline-flex;align-items:center;gap:5px;padding:4px 9px;font-size:10px;font-weight:700;letter-spacing:.5px;color:var(--text-secondary);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease;flex-shrink:0}.tl-density-btn:hover{color:var(--qfp-dark);border-color:var(--text-muted)}.tl-density-btn:focus-visible{outline:2px solid var(--qfp-dark);outline-offset:2px}.tl-density-btn.active,.tl-density-btn.active:hover{color:var(--qfp-dark);background:var(--bg-hover);border-color:var(--qfp-dark)}.timeline-dates-header{flex:1;display:flex;position:relative;min-width:0}.timeline-date-col{flex:1;min-width:var(--tl-col, 36px);padding:8px 2px;text-align:center;border-right:1px solid var(--border-light);display:flex;flex-direction:column;align-items:center;gap:2px}.timeline-date-col:last-child{border-right:none}.timeline-date-col.weekend{background:var(--bg-hover)}.timeline-date-col.today{background:var(--qfp-orange-tint)}.timeline-date-day-name{font-size:9px;font-weight:700;color:var(--text-faint);text-transform:uppercase;letter-spacing:.5px}.timeline-date-day-num{font-size:12px;font-weight:600;color:var(--text-secondary)}.timeline-date-col.today .timeline-date-day-num{color:var(--bg-surface);font-weight:700;background:var(--qfp-orange);width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:10px}.timeline-date-col.weekend .timeline-date-day-num{color:var(--text-faint)}.timeline-body{flex:1;position:relative}.timeline-drop-target{position:absolute;top:0;bottom:0;background:#ff56001f;box-shadow:inset 0 0 0 2px var(--qfp-orange);pointer-events:none;z-index:5}.timeline-row{display:flex;border-bottom:1px solid var(--border-light);min-height:44px;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,opacity .15s ease}.timeline-row.alt,.timeline-row.alt .timeline-row-label{background:var(--bg-subtle)}.timeline-row:not(.alt) .timeline-row-label{background:var(--bg-surface)}.timeline-row.is-selected .timeline-row-label,.timeline-row.is-selected:hover .timeline-row-label{background:var(--qfp-green-tint)}.timeline-row.is-selected .timeline-row-name{color:var(--text-primary)}.timeline-row:last-child{border-bottom:none}.timeline-row:hover{background:var(--bg-hover)}.timeline-row.is-next,.timeline-row.is-next .timeline-row-label,.timeline-row.is-next:hover{background:var(--qfp-orange-tint)}.timeline-row-label{width:var(--tl-label, 260px);min-width:var(--tl-label, 260px);padding:10px 20px;display:flex;align-items:center;gap:12px;border-right:1px solid var(--border);cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,opacity .15s ease;position:sticky;left:0;z-index:5;background:inherit}.timeline-row-label:hover{background:#00000005}.timeline-row-grip{flex:0 0 auto;display:inline-flex;align-items:center;color:var(--text-faint, #BCC1C1);opacity:0;transition:opacity .15s ease;margin:0 -6px 0 -8px;cursor:grab}.timeline-row:hover .timeline-row-grip{opacity:1}.timeline-row-label:active .timeline-row-grip{cursor:grabbing}.timeline-row-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 2px #0000000f}.timeline-row-info{flex:1;min-width:0}.timeline-row-name{font-size:13px;font-weight:600;color:var(--text-primary);white-space:normal;overflow-wrap:anywhere;word-break:break-word;line-height:1.25;width:fit-content;max-width:100%;cursor:text}.timeline-row-dates{font-size:11px;color:var(--text-light);margin-top:2px}.timeline-row-next-badge{font-size:9px;font-weight:800;color:var(--qfp-orange);text-transform:uppercase;letter-spacing:1.5px;background:#fff;border:1.5px solid var(--qfp-orange);border-radius:var(--radius-sm);padding:3px 8px;margin-left:auto;white-space:nowrap;flex-shrink:0;box-shadow:0 1px 3px #ff560026}.timeline-row-bars{flex:1;position:relative;display:flex;align-items:center;overflow:hidden;z-index:1}.weekend-hatch{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(45deg,transparent,transparent 3px,rgba(0,0,0,.18) 3px,rgba(0,0,0,.18) 5px);pointer-events:none}.timeline-grid-lines{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;pointer-events:none}.timeline-grid-line{flex:1;min-width:0;border-right:1px solid var(--border-light)}.timeline-grid-line:last-child{border-right:none}.timeline-grid-line.weekend{background:#ececec66}.timeline-grid-line.today,.timeline-date-col.today{border-left:2px solid #FF5600}.timeline-task-bar{position:absolute;min-height:26px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;padding:4px 10px;cursor:grab;z-index:5;transition:box-shadow .2s ease,transform .2s ease,opacity .2s ease;overflow:hidden;box-shadow:0 1px 3px #0000001a}.timeline-task-bar:hover{box-shadow:var(--shadow-md);transform:translateY(-1px);z-index:8}.timeline-task-bar.dragging{cursor:grabbing;opacity:.75;box-shadow:0 4px 16px #0003;z-index:20}.timeline-task-bar.selected{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--qfp-green-ring),var(--shadow-sm);z-index:9}.timeline-task-bar.is-in-progress{outline:1.5px solid var(--qfp-orange);outline-offset:-1.5px}.timeline-task-bar.is-complete{opacity:.6}.timeline-task-bar.is-complete .timeline-task-bar-label:not(.inline-editing):before{content:"✓ ";font-weight:800}.timeline-task-bar.ghost{background:transparent!important;border:1.5px dashed var(--text-light);box-shadow:none;opacity:.85}.timeline-task-bar.ghost .timeline-task-bar-label{color:var(--text-light)!important;text-shadow:none!important;font-weight:700;letter-spacing:.3px}.timeline-task-bar.ghost.selected{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--qfp-green-ring)}.timeline-row.is-ghost .timeline-row-name{color:var(--text-light);font-style:italic}.timeline-row-tbd-badge{font-size:9px;font-weight:800;color:var(--text-light);text-transform:uppercase;letter-spacing:1.5px;background:var(--bg-subtle);border:1.5px dashed var(--border);border-radius:var(--radius-sm);padding:3px 8px;margin-left:auto;white-space:nowrap;flex-shrink:0}.timeline-task-bar-label{font-size:10px;font-weight:700;white-space:normal;overflow-wrap:anywhere;word-break:break-word;line-height:1.15;text-align:center;letter-spacing:.2px;cursor:text}.timeline-task-bar.is-narrow{overflow:visible}.timeline-task-bar.is-narrow .timeline-task-bar-label:not(.inline-editing){position:absolute;left:calc(100% + 6px);top:0;width:max-content;max-width:220px;text-align:left;color:var(--text-primary);text-shadow:none}.timeline-task-bar.is-narrow.is-narrow-left .timeline-task-bar-label:not(.inline-editing){left:auto;right:calc(100% + 6px);text-align:right}.timeline-task-bar[data-category=pre-production]{background:var(--cat-preproduction-bg);border:none}.timeline-task-bar[data-category=pre-production] .timeline-task-bar-label{color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.1)}.timeline-task-bar[data-category=production]{background:var(--cat-production-bg);border:none}.timeline-task-bar[data-category=production] .timeline-task-bar-label{color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.1)}.timeline-task-bar[data-category=post-production]{background:var(--cat-postproduction-bg);border:none}.timeline-task-bar[data-category=post-production] .timeline-task-bar-label{color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.1)}.timeline-task-bar[data-category=client-action]{background:var(--cat-clientaction-bg);border:none}.timeline-task-bar[data-category=client-action] .timeline-task-bar-label{color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.1)}.timeline-task-bar[data-category=delivery]{background:var(--cat-delivery-bg);border:none}.timeline-task-bar[data-category=delivery] .timeline-task-bar-label{color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.1)}.timeline-pin{display:inline-flex;vertical-align:middle;margin-right:2px}.timeline-task-bar-label.inline-editing,.timeline-row-name.inline-editing,.timeline-task-bar[data-category] .timeline-task-bar-label.inline-editing{outline:none;background:#fffffff5;color:#000;text-shadow:none;border-radius:3px;padding:0 3px;box-shadow:0 0 0 2px var(--qfp-green-ring);cursor:text;overflow:visible}.timeline-task-bar .timeline-task-bar-label.inline-editing{min-width:120px;white-space:normal}.timeline-task-bar:has(.inline-editing){overflow:visible;z-index:30}.tl-lanes{background:var(--bg-surface);border-bottom:2px solid var(--border)}.tl-lane{display:flex;height:34px}.tl-lane+.tl-lane{border-top:1px solid var(--border-light)}.tl-lane-label{width:var(--tl-label, 260px);min-width:var(--tl-label, 260px);padding:0 20px;display:flex;align-items:center;font-size:10px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--text-light);border-right:1px solid var(--border);background:var(--bg-surface);position:sticky;left:0;z-index:6}.tl-lane-track{flex:1;position:relative;overflow-x:clip;overflow-y:visible}.tl-phase{position:absolute;top:6px;height:22px;box-sizing:border-box;margin-left:2px;border-radius:11px;padding:0 10px;display:flex;align-items:center;min-width:0;overflow:clip;white-space:nowrap;font-size:11px;font-weight:700;background:color-mix(in srgb,var(--ph) 16%,var(--bg-surface));color:color-mix(in srgb,var(--ph) 45%,var(--qfp-dark));border:1px solid color-mix(in srgb,var(--ph) 42%,transparent);cursor:pointer;transition:box-shadow .15s ease,background .15s ease}.tl-phase.is-short{padding:0 5px}.tl-phase-text{min-width:0;overflow:hidden;text-overflow:ellipsis;position:sticky;left:calc(var(--tl-label, 260px) + 10px)}.tl-phase:hover{background:color-mix(in srgb,var(--ph) 26%,var(--bg-surface))}.tl-lock{position:absolute;top:6px;height:22px;transform:translate(-50%);display:flex;align-items:center;gap:5px;max-width:220px;padding:0 9px;border-radius:11px;background:var(--qfp-dark);color:var(--text-on-accent);font-size:11px;font-weight:600;white-space:nowrap;cursor:pointer;z-index:1}.tl-lock:after{content:"";position:absolute;left:50%;top:100%;height:6px;border-left:1.5px dashed color-mix(in srgb,var(--qfp-dark) 35%,transparent)}.tl-lock-icon{width:12px;height:12px;flex-shrink:0}.tl-lock-text{min-width:0;overflow:hidden;text-overflow:ellipsis}.tl-lock:hover{background:var(--text-primary)}.tl-lock.is-icon{padding:0 6px}.tl-lock.is-icon .tl-lock-text{display:none}.tl-lock.is-nudged:after{display:none}.tl-phase.is-selected,.tl-lock.is-selected{box-shadow:0 0 0 2px var(--qfp-green-ring)}.tl-phase:focus-visible,.tl-lock:focus-visible{outline:2px solid var(--qfp-dark);outline-offset:2px}.timeline-lock-line{position:absolute;top:0;bottom:0;width:0;border-left:1.5px dashed color-mix(in srgb,var(--qfp-dark) 35%,transparent);z-index:1;pointer-events:none}.timeline-container.compact .timeline-row{min-height:24px}.timeline-container.compact .timeline-row-label{padding:2px 10px;gap:7px}.timeline-container.compact .timeline-row-dot{width:7px;height:7px;box-shadow:0 0 0 1px #0000000f}.timeline-container.compact .timeline-row-name{font-size:11px}.timeline-container.compact .timeline-row-dates,.timeline-container.compact .timeline-row-next-badge,.timeline-container.compact .timeline-row-tbd-badge{display:none}.timeline-container.compact .timeline-task-bar{min-height:16px;border-radius:3px;padding:2px 5px;box-shadow:0 1px 2px #0000001f}.timeline-container.compact .timeline-task-bar-label{font-size:9px;line-height:1.1;letter-spacing:0}.timeline-container.compact .timeline-row-name{line-height:1.2}.timeline-container.compact .timeline-date-col{padding:5px 1px}.timeline-container.compact .timeline-date-day-name{font-size:8px}.timeline-container.compact .timeline-date-day-num{font-size:10px}.timeline-container.compact .timeline-date-col.today .timeline-date-day-num{width:16px;height:16px;font-size:8px}.timeline-empty{padding:60px var(--space-xl);text-align:center;color:var(--text-light);font-size:14px}.timeline-container.compact .tl-lane{height:28px}.timeline-container.compact .tl-lane-label{padding:0 10px}.timeline-container.compact .tl-phase,.timeline-container.compact .tl-lock{top:5px;height:18px;font-size:10px}.timeline-container.compact .tl-lock:after{height:5px}.brief-container{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-page);padding:20px 24px}.brief-wrapper{flex:1;display:flex;flex-direction:column;gap:16px;overflow-y:auto}.brief-section{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;box-shadow:var(--shadow-sm);overflow:hidden}.brief-section-header{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;min-height:56px;border-bottom:1px solid var(--border);background:var(--bg-subtle);flex-shrink:0;box-sizing:border-box}.brief-section-label{display:flex;align-items:center;gap:8px}.brief-section-icon{font-size:16px}.brief-section-title{font-size:14px;font-weight:700;color:var(--qfp-dark)}.brief-header-right{display:flex;align-items:center;gap:14px}.brief-saved-indicator{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--cat-production);opacity:0;transition:opacity .3s ease}.brief-saved-indicator.visible{opacity:1}.brief-saved-dot{width:6px;height:6px;border-radius:50%;background:var(--cat-production)}.brief-textarea{flex:1;width:100%;padding:16px 20px;border:none;outline:none;resize:none;font-family:Inter,monospace;font-size:13px;line-height:1.9;color:var(--text-primary);background:var(--bg-surface);box-shadow:none}.scope-textarea{min-height:240px;max-height:420px;resize:none}.scope-textarea:hover,.scope-textarea:focus{resize:vertical}.brief-textarea:focus{box-shadow:none;border:none}.brief-textarea::placeholder{color:var(--text-faint);font-style:normal}.brief-generate-btn{padding:8px 18px;font-size:12px;font-weight:700;color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:6px;letter-spacing:.2px;background:var(--qfp-orange);font-family:var(--font-family)}.brief-generate-btn:hover:not(:disabled){background:var(--qfp-orange-hover);transform:translateY(-1px);box-shadow:0 4px 12px #ff56004d}.brief-generate-btn:disabled{opacity:.5;cursor:not-allowed}.brief-generate-btn.loading{opacity:.7;animation:pulse-btn 1.2s ease-in-out infinite}.brief-generate-btn.success{background:var(--qfp-green)!important;opacity:1!important}.brief-generate-btn.error{background:#c00!important;opacity:1!important}@keyframes pulse-btn{0%,to{opacity:.7}50%{opacity:1}}.brief-ai-icon{font-size:14px}.brief-workback-section{flex:1;min-height:300px}.workback-content{padding:20px 24px;font-family:Inter,monospace;font-size:13px;line-height:1.9;color:var(--text-primary);white-space:pre-wrap;word-wrap:break-word}.workback-textarea{min-height:200px;resize:vertical;white-space:pre-wrap}.workback-placeholder{padding:24px;text-align:center;color:var(--text-light);font-size:13px;line-height:1.7}.workback-placeholder p{margin:0 0 6px}.workback-placeholder strong{color:var(--text-secondary)}.brief-top-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch}@media(max-width:900px){.brief-top-grid{grid-template-columns:1fr}}.brief-spec-section{min-height:220px}.brief-spec-body{flex:1;display:flex;flex-direction:column;overflow:hidden}.brief-spec-output-wrap{position:relative;flex:1;display:flex;flex-direction:column}.brief-spec-output{margin:0;padding:16px 44px 16px 20px;font-family:var(--font-mono);font-size:12px;line-height:1.7;color:var(--text-primary);background:var(--bg-surface);width:100%;min-height:240px;max-height:420px;border:none;outline:none;resize:none;white-space:pre-wrap;word-wrap:break-word;overflow-y:auto}.brief-spec-output-wrap:hover .brief-spec-output,.brief-spec-output:focus{resize:vertical}.brief-spec-output:focus{box-shadow:none;border:none}.brief-copy-icon-btn{position:absolute;top:8px;right:10px;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-faint);cursor:pointer;opacity:.55;transition:opacity .15s ease,background .15s ease,color .15s ease;z-index:1}.brief-copy-icon-btn:hover{opacity:1;background:var(--bg-subtle);color:var(--text-secondary)}.brief-copy-icon-btn.copied{opacity:1;color:var(--cat-production);background:transparent}.brief-spec-placeholder{padding:24px;text-align:center;color:var(--text-light);font-size:13px;line-height:1.7}.brief-spec-placeholder p{margin:0}.brief-spec-placeholder strong{color:var(--text-secondary)}.brief-spec-error{padding:20px 24px;text-align:center;color:var(--text-secondary);font-size:13px;line-height:1.6}.brief-spec-error p{margin:0 0 10px;color:#b33a00}.brief-spec-retry{padding:6px 14px;font-size:12px;font-weight:600;color:var(--qfp-orange);background:transparent;border:1px solid var(--qfp-orange);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-family);transition:all .15s ease}.brief-spec-retry:hover{background:var(--qfp-orange);color:#fff}.brief-collapse-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:background .15s ease,color .15s ease,transform .2s ease}.brief-collapse-btn svg{transition:transform .2s ease}.brief-collapse-btn:hover{background:var(--bg-hover);color:var(--text-secondary)}.brief-section.collapsed .brief-collapse-btn svg{transform:rotate(-90deg)}.brief-section.collapsed>*:not(.brief-section-header){display:none}.brief-top-grid>.brief-section.collapsed{align-self:start;min-height:0}.ip-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:500;opacity:0;pointer-events:none;transition:opacity .3s ease}.ip-overlay.active{opacity:1;pointer-events:all}.ip-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.95);width:92vw;max-width:1100px;max-height:85vh;background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:501;display:flex;flex-direction:column;overflow:hidden;opacity:0;pointer-events:none;transition:all .3s ease}.ip-modal.active{opacity:1;pointer-events:all;transform:translate(-50%,-50%) scale(1)}.ip-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border);background:var(--bg-subtle);flex-shrink:0}.ip-header-left{display:flex;flex-direction:column;gap:3px}.ip-title{font-size:18px;font-weight:700;color:var(--qfp-dark)}.ip-subtitle{font-size:12px;color:var(--text-light)}.ip-header-right{display:flex;align-items:center;gap:10px}.ip-cancel-btn{padding:8px 18px;font-size:12px;font-weight:600;color:var(--text-muted);background:transparent;border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease}.ip-cancel-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.ip-confirm-btn{padding:8px 20px;font-size:12px;font-weight:700;color:#fff;background:var(--qfp-orange);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease;display:flex;align-items:center;gap:6px}.ip-confirm-btn:hover{background:var(--qfp-orange-hover);transform:translateY(-1px);box-shadow:0 4px 12px #ff56004d}.ip-confirm-icon{font-size:14px}.ip-tbd-btn{padding:8px 14px;font-size:12px;font-weight:600;color:var(--text-secondary);background:transparent;border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease}.ip-tbd-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.ip-restore-dates-btn{padding:8px 14px;font-size:12px;font-weight:600;color:var(--qfp-orange);background:transparent;border:1.5px solid var(--qfp-orange);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease}.ip-restore-dates-btn:hover{background:#ff56000f}.ip-table-wrap{flex:1;overflow-y:auto;padding:0}.ip-table{width:100%;border-collapse:collapse;font-size:12px}.ip-th{position:sticky;top:0;background:var(--bg-subtle);padding:10px 12px;text-align:left;font-size:10px;font-weight:700;color:var(--text-light);text-transform:uppercase;letter-spacing:1px;border-bottom:2px solid var(--border);z-index:2}.ip-th-dot{width:28px}.ip-th-name{min-width:180px}.ip-th-cat{width:150px}.ip-th-date{width:130px}.ip-th-notes{min-width:140px}.ip-th-del{width:40px}.ip-row{border-bottom:1px solid var(--border-light);transition:background .15s ease}.ip-row:hover{background:var(--bg-subtle)}.ip-cell{padding:6px 8px;vertical-align:middle}.ip-cell-dot{text-align:center}.ip-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.ip-input,.ip-select{width:100%;padding:6px 8px;font-size:12px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--text-primary);font-family:var(--font-family);transition:all .2s ease}.ip-input:hover,.ip-select:hover{border-color:var(--border)}.ip-input:focus,.ip-select:focus{border-color:var(--qfp-orange);background:#fff;box-shadow:0 0 0 2px #ff56001a;outline:none}.ip-select{cursor:pointer;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;padding-right:8px;background-image:none}.ip-del-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-faint);font-size:12px;border-radius:4px;cursor:pointer;transition:all .2s ease}.ip-del-btn:hover{background:#fff0f0;color:#c00}.ip-cell-days,.ip-th-days{width:70px;min-width:70px;text-align:center}.ip-days-wrap{display:flex;align-items:center;justify-content:center;gap:4px}.ip-days-count{font-size:12px;font-weight:700;color:var(--text-primary);min-width:20px;text-align:center}.ip-days-btn{width:18px;height:18px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);background:var(--bg-subtle);border-radius:3px;font-size:7px;color:var(--text-muted);cursor:pointer;transition:all .15s;padding:0;line-height:1}.ip-days-btn:hover{background:var(--qfp-orange);border-color:var(--qfp-orange);color:#fff}.ip-footer{padding:12px 24px;border-top:1px solid var(--border-light);background:var(--bg-subtle);flex-shrink:0}.ip-add-btn{padding:6px 16px;font-size:12px;font-weight:600;color:var(--qfp-orange);background:transparent;border:1.5px dashed var(--qfp-orange);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease}.ip-add-btn:hover{background:var(--qfp-orange-tint)}.ip-header-center{display:flex;align-items:center;gap:12px}.ip-toggle{display:flex;background:var(--bg-hover);border-radius:var(--radius-sm);padding:3px;gap:2px}.ip-toggle-btn{padding:5px 14px;font-size:11px;font-weight:600;color:var(--text-light);background:transparent;border:none;border-radius:4px;cursor:pointer;transition:all .15s ease;font-family:var(--font-family)}.ip-toggle-btn.active{background:#fff;color:var(--qfp-dark);box-shadow:0 1px 3px #00000014}.ip-month-nav{display:flex;align-items:center;gap:6px}.ip-month-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-light);cursor:pointer;font-size:12px;transition:all .15s;font-family:var(--font-family)}.ip-month-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.ip-month-label{font-size:12px;font-weight:700;min-width:120px;text-align:center;text-transform:uppercase;letter-spacing:.8px;color:var(--qfp-dark)}.ip-cal-wrap{flex:1;overflow-y:auto;padding:16px}.ip-cal-grid{border:1px solid var(--border-light);border-radius:8px;overflow:hidden}.ip-cal-hdr-row{display:grid;grid-template-columns:repeat(7,1fr)}.ip-cal-hdr{padding:8px;text-align:center;font-size:10px;font-weight:700;color:var(--text-light);text-transform:uppercase;letter-spacing:.8px;border-bottom:2px solid var(--border);background:var(--bg-subtle)}.ip-cal-week-row{display:grid;grid-template-columns:repeat(7,1fr);position:relative;min-height:80px}.ip-cal-cell{border-bottom:1px solid var(--border-light);border-right:1px solid var(--border-light);padding:4px;background:#fff;min-height:80px}.ip-cal-week-row:last-child .ip-cal-cell{border-bottom:none}.ip-cal-cell:nth-child(7n){border-right:none}.ip-cal-cell.other,.ip-cal-cell.weekend{background:var(--bg-subtle)}.ip-cal-cell.today{background:#fff5f0}.ip-cal-day{font-size:11px;font-weight:600;color:var(--text-muted);padding:2px 4px;display:inline-block}.ip-cal-day.is-today{color:#fff;background:#ff5600;border-radius:50%;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center}.ip-cal-bars{position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:none}.ip-cal-bar{position:absolute;height:20px;display:flex;align-items:center;padding:0 5px;pointer-events:auto}.ip-cal-bar-label{font-size:9px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 1px rgba(0,0,0,.1)}.ip-cascade-toast{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:10px 18px;background:var(--qfp-dark);color:#fff;border-radius:var(--radius-sm);box-shadow:0 4px 20px #00000040;z-index:520;animation:cascade-slide-up .25s ease;font-size:13px}@keyframes cascade-slide-up{0%{transform:translate(-50%) translateY(10px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.ip-cascade-text{font-weight:500;white-space:nowrap}.ip-cascade-btn{padding:5px 14px;font-size:12px;font-weight:700;color:#fff;background:#ff5600;border:none;border-radius:4px;cursor:pointer;transition:background .2s;white-space:nowrap}.ip-cascade-btn:hover{background:#e04d00}.ip-cascade-dismiss{padding:2px 6px;font-size:12px;color:var(--text-faint);background:none;border:none;cursor:pointer;transition:color .15s}.ip-cascade-dismiss:hover{color:#fff}.rs-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:600;opacity:0;pointer-events:none;transition:opacity .25s ease}.rs-overlay.active{opacity:1;pointer-events:auto}.rs-panel{position:fixed;top:0;right:-440px;width:420px;height:100vh;background:#fff;z-index:601;box-shadow:-4px 0 24px #0000001f;transition:right .3s ease;overflow-y:auto}.rs-panel.active{right:0}.rs-inner{padding:0}.rs-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:3px solid #FF5600;position:sticky;top:0;background:#fff;z-index:2}.rs-title{font-size:16px;font-weight:700;color:var(--qfp-dark)}.rs-close{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;background:var(--bg-hover);border-radius:var(--radius-sm);cursor:pointer;font-size:12px;color:var(--text-light);transition:all .15s}.rs-close:hover{background:#ececec;color:var(--text-primary)}.rs-section{padding:14px 20px;border-bottom:1px solid var(--border)}.rs-section-title{font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:10px}.rs-row{display:flex;gap:10px;margin-bottom:8px}.rs-field{margin-bottom:8px}.rs-field-half{flex:1;margin-bottom:0}.rs-label{display:block;font-size:11px;font-weight:600;color:var(--text-primary);margin-bottom:3px}.rs-input,.rs-select{width:100%;padding:6px 10px;font-size:12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-family);color:var(--text-primary);background:#fff;outline:none;transition:border-color .15s;box-sizing:border-box}.rs-input:focus,.rs-select:focus{border-color:var(--qfp-orange);box-shadow:var(--shadow-glow)}.rs-checkbox-field-wrap{display:flex;align-items:flex-end;gap:6px;padding-bottom:6px}.rs-checkbox-field-wrap input[type=checkbox]{accent-color:var(--qfp-orange)}.rs-checkbox-field-wrap label{font-size:11px;color:var(--text-primary);font-weight:500;white-space:nowrap}.rs-info{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--text-light)}.rs-preview-section{max-height:220px;overflow-y:auto;background:var(--bg-subtle);padding:12px 20px!important}.rs-preview-table{display:flex;flex-direction:column;gap:4px}.rs-preview-empty{font-size:11px;color:var(--text-faint);font-style:italic;padding:8px 0}.rs-prow{display:flex;flex-direction:column;padding:5px 8px;background:#ff56000f;border-radius:4px;border:1px solid rgba(255,86,0,.4);gap:2px}.rs-prow-name{font-size:11px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rs-prow-dates{display:flex;align-items:center;gap:6px;font-size:10px}.rs-prow-orig{color:var(--text-faint);text-decoration:line-through}.rs-prow-arrow{color:var(--text-faint);font-size:10px}.rs-prow-prop{color:var(--qfp-orange);font-weight:600}.rs-actions{padding:12px 20px;display:flex;gap:8px;border-bottom:1px solid var(--border)}.rs-apply-btn{flex:1;padding:8px;font-size:12px;font-weight:700;color:#fff;background:var(--qfp-orange);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s;font-family:var(--font-family)}.rs-apply-btn:hover:not(:disabled){background:var(--qfp-orange-hover);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.rs-apply-btn:disabled{opacity:.45;cursor:not-allowed}.rs-prow-marker .rs-prow-name{font-style:italic;color:var(--text-secondary)}.rs-log-section{border-bottom:none}.rs-log-summary{display:flex;align-items:center;gap:10px;margin-bottom:8px;padding:6px 10px;background:var(--bg-subtle);border-radius:var(--radius-sm)}.rs-log-total{font-size:13px;font-weight:700;color:var(--text-primary)}.rs-log-tag{font-size:10px;font-weight:600}.rs-log-list{max-height:160px;overflow-y:auto}.rs-log-entry{display:flex;align-items:center;gap:6px;padding:4px 0;border-bottom:1px solid var(--border-light);font-size:11px}.rs-log-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}.rs-log-date{font-weight:600;color:var(--text-muted);min-width:44px}.rs-log-type{font-weight:700;color:var(--text-primary);min-width:52px}.rs-log-days{font-weight:600;color:var(--qfp-orange);min-width:28px}.rs-log-reason{color:var(--text-muted);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rs-log-empty{font-size:11px;color:var(--text-faint);font-style:italic;padding:4px 0}.rs-log-delete{flex-shrink:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-faint);border-radius:var(--radius-sm);font-size:11px;line-height:1;cursor:pointer;opacity:.5;transition:opacity .12s,background .12s,color .12s}.rs-log-entry:hover .rs-log-delete{opacity:1}.rs-log-delete:hover{background:#fdecec;color:#c0392b;opacity:1}.form-group-inline{display:flex;align-items:center;gap:12px}.form-group-inline .form-label{margin-bottom:0;min-width:70px}.review-modal{max-width:600px}.review-modal .modal-body{gap:16px;max-height:60vh;overflow-y:auto}.review-card{border:1.5px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-surface)}.review-card-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-subtle);border-bottom:1px solid var(--border-light)}.review-card-title{font-size:13px;font-weight:700;color:var(--qfp-dark);text-transform:uppercase;letter-spacing:1px}.review-card-remove{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-light);font-size:16px;cursor:pointer;transition:all .2s ease;background:transparent;border:none}.review-card-remove:hover{background:#fff0f0;color:#d32f2f}.review-links-list{padding:12px 16px;display:flex;flex-direction:column;gap:10px}.review-link-row{display:flex;align-items:center;gap:8px}.review-version-badge{font-size:10px;font-weight:800;color:#fff;background:var(--qfp-orange);border-radius:4px;padding:3px 8px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;flex-shrink:0}.review-link-title{flex:1;min-width:0;padding:8px 12px;font-size:13px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-family);outline:none;transition:all .2s ease}.review-link-title:focus{border-color:var(--qfp-orange);box-shadow:0 0 0 3px #ff560026}.review-link-url{flex:2;min-width:0;padding:8px 12px;font-size:13px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-family);outline:none;transition:all .2s ease}.review-link-url:focus{border-color:var(--qfp-orange);box-shadow:0 0 0 3px #ff560026}.review-link-remove{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-light);font-size:18px;cursor:pointer;transition:all .2s ease;background:transparent;border:none;flex-shrink:0}.review-link-remove:hover{background:#fff0f0;color:#d32f2f}.review-add-version{display:block;width:100%;padding:10px 16px;font-size:12px;font-weight:600;color:var(--qfp-orange);background:transparent;border:none;border-top:1px solid var(--border-light);cursor:pointer;transition:all .2s ease;font-family:var(--font-family);text-align:left}.review-add-version:hover{background:var(--qfp-orange-tint)}.ref-section{border:1.5px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-surface)}.ref-section-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-subtle);border-bottom:1px solid var(--border-light)}.ref-section-title{font-size:13px;font-weight:700;color:var(--qfp-dark);text-transform:uppercase;letter-spacing:1px}.ref-add-btn{font-size:12px;font-weight:600;color:var(--qfp-orange);background:transparent;border:none;cursor:pointer;font-family:var(--font-family);padding:4px 8px;border-radius:var(--radius-sm);transition:all .15s}.ref-add-btn:hover{background:var(--qfp-orange-tint)}.ref-list{padding:12px 16px;display:flex;flex-direction:column;gap:10px}.ref-row{display:flex;align-items:center;gap:8px}.ref-title{flex:1;min-width:0;padding:8px 12px;font-size:13px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-family);outline:none;transition:all .2s ease}.ref-title:focus{border-color:var(--qfp-orange);box-shadow:0 0 0 3px #ff560026}.ref-url{flex:2;min-width:0;padding:8px 12px;font-size:13px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-family);outline:none;transition:all .2s ease}.ref-url:focus{border-color:var(--qfp-orange);box-shadow:0 0 0 3px #ff560026}.ref-remove{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-light);font-size:18px;cursor:pointer;transition:all .2s ease;background:transparent;border:none;flex-shrink:0}.ref-remove:hover{background:#fff0f0;color:#d32f2f}.review-done-btn{padding:10px 28px;font-size:13px;font-weight:700;color:#fff;background:#ff5600;border:none;border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-family);transition:all .2s ease}.review-done-btn:hover{background:#e04d00;transform:translateY(-1px);box-shadow:0 4px 12px #ff56004d}.reviews-btn{padding:6px 14px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:#fff;background:var(--qfp-green);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease;display:flex;align-items:center;gap:5px;font-family:var(--font-family)}.reviews-btn:hover{background:var(--qfp-green-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.reviews-btn:active{transform:translateY(0)}@media(max-width:768px){.review-modal{max-width:95vw}.review-link-row{flex-wrap:wrap;gap:6px}.review-link-title,.review-link-url{flex:1 1 100%}.ref-row{flex-wrap:wrap;gap:6px}.ref-title,.ref-url{flex:1 1 100%}.reviews-btn span:last-child{display:none}}.pb-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:500;opacity:0;pointer-events:none;transition:opacity .3s ease}.pb-overlay.active{opacity:1;pointer-events:all}.pb-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.96);width:92vw;max-width:640px;max-height:85vh;background:#fff;border-radius:20px;box-shadow:0 32px 64px #0000002e,0 2px 8px #0000000f;z-index:501;display:flex;flex-direction:column;overflow:hidden;opacity:0;pointer-events:none;transition:all .3s ease}.pb-modal.active{opacity:1;pointer-events:all;transform:translate(-50%,-50%) scale(1)}.pb-header{display:flex;align-items:center;justify-content:space-between;padding:28px 32px;flex-shrink:0}.pb-title{font-size:20px;font-weight:700;color:var(--text-primary, #4D4D4D);margin:0}.pb-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm, 8px);color:var(--text-light, #95B1AC);font-size:18px;border:none;background:transparent;cursor:pointer;transition:all .2s ease}.pb-close:hover{background:var(--bg-hover, #ECECEC);color:var(--text-primary, #4D4D4D);transform:rotate(90deg)}.pb-body{padding:8px 32px 24px;display:flex;flex-direction:column;gap:28px;overflow-y:auto;flex:1;scrollbar-gutter:stable}.pb-body.pb-fade-bottom{-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 32px),transparent 100%);mask-image:linear-gradient(to bottom,#000 calc(100% - 32px),transparent 100%)}.pb-name-group{display:flex;flex-direction:column;gap:6px}.pb-label{font-size:11px;font-weight:700;color:var(--text-muted, #7D8784);text-transform:uppercase;letter-spacing:1.5px}.pb-name-input{padding:10px 14px;border:1.5px solid var(--border, #ECECEC);border-radius:var(--radius-md, 10px);font-size:14px;font-weight:600;font-family:var(--font-family);color:var(--text-primary, #4D4D4D);outline:none;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.pb-name-input:focus{border-color:var(--qfp-orange, #FF5600);box-shadow:0 0 0 3px #ff560014}.pb-name-input::placeholder{color:var(--text-faint, #BCC1C1);font-weight:400}.pb-group{display:flex;flex-direction:column;gap:10px;padding-top:20px;border-top:1px solid var(--border-light, #F2F2F2)}.pb-group-label{font-size:11px;font-weight:700;color:var(--text-muted, #7D8784);text-transform:uppercase;letter-spacing:1.5px}.pb-group-hint{font-weight:600;color:var(--text-faint, #BCC1C1);letter-spacing:.5px;text-transform:none}.pb-collapse-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:transparent;border:none;padding:0;margin:0;cursor:pointer;font-family:var(--font-family);-webkit-user-select:none;user-select:none}.pb-chevron{font-size:9px;color:var(--text-faint, #BCC1C1);transition:transform .2s ease}.pb-chevron.collapsed{transform:rotate(-90deg)}.pb-collapsible{max-height:600px;overflow:hidden;transition:max-height .25s ease,opacity .25s ease,margin .25s ease;opacity:1}.pb-collapsible.collapsed{max-height:0;opacity:0}.pb-ai-desc{font-size:12px;line-height:1.5;color:var(--text-muted, #7D8784);margin:0}.pb-ai-text{width:100%;min-height:76px;resize:vertical;padding:10px 12px;border:1.5px solid var(--border, #ECECEC);border-radius:var(--radius-md, 10px);font-size:13px;font-family:var(--font-family);color:var(--text-primary, #4D4D4D);outline:none;transition:border-color .2s ease,box-shadow .2s ease}.pb-ai-text:focus{border-color:var(--qfp-orange, #FF5600);box-shadow:0 0 0 3px #ff560014}.pb-ai-text::placeholder{color:var(--text-faint, #BCC1C1)}.pb-ai-files{display:flex;flex-wrap:wrap;gap:6px}.pb-ai-chip{display:inline-flex;align-items:center;gap:6px;max-width:200px;padding:4px 6px 4px 10px;background:var(--bg-subtle, #F2F2F2);border-radius:999px;font-size:11px;font-weight:600;color:var(--text-secondary, #4D4D4D)}.pb-ai-chip-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pb-ai-chip-x{width:16px;height:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-light, #95B1AC);font-size:14px;line-height:1;cursor:pointer;border-radius:50%}.pb-ai-chip-x:hover{background:#cc000014;color:#c00}.pb-ai-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pb-ai-attach{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border:1.5px solid var(--border, #ECECEC);border-radius:var(--radius-md, 10px);background:var(--bg-subtle, #F2F2F2);color:var(--text-secondary, #4D4D4D);font-size:12px;font-weight:700;font-family:var(--font-family);cursor:pointer;transition:all .2s ease}.pb-ai-attach:hover{color:var(--qfp-orange, #FF5600);border-color:var(--qfp-orange, #FF5600);background:var(--qfp-orange-tint, #FFF5F0)}.pb-ai-attach-icon{font-size:14px;line-height:1;font-weight:700}.pb-ai-note{font-size:12px;font-weight:600;color:var(--text-muted, #7D8784)}.pb-ai-group{position:relative}.pb-ai-group.pb-ai-dragover{outline:2px dashed var(--qfp-orange, #FF5600);outline-offset:4px;border-radius:var(--radius-md, 10px)}.pb-ai-drop-veil{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:none;align-items:center;justify-content:center;background:var(--qfp-orange-tint, #FFF5F0);border-radius:var(--radius-md, 10px);pointer-events:none}.pb-ai-group.pb-ai-dragover .pb-ai-drop-veil{display:flex}.pb-ai-drop-veil span{font-size:13px;font-weight:700;color:var(--qfp-orange, #FF5600)}.pb-ai-build{margin-left:auto}.pb-ai-build:disabled{opacity:.6;cursor:progress}.pb-ai-error{font-size:12px;font-weight:500;color:#c00}.pb-ai-dates-toggle{display:flex;align-items:flex-start;gap:8px;margin:10px 0 2px;font-size:12.5px;line-height:1.4;color:var(--text-secondary, #4D4D4D);cursor:pointer}.pb-ai-dates-toggle input{margin-top:2px;accent-color:var(--qfp-orange, #FF5600);cursor:pointer;flex-shrink:0}.pb-ai-review{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:12px;padding:10px 12px;background:var(--bg-subtle, #F2F2F2);border-radius:var(--radius-md, 10px);font-size:12.5px;color:var(--text-muted, #7D8784)}.pb-ai-review-dated{font-weight:700;color:var(--cat-postproduction, #00C875)}.pb-ai-review-unsched{font-weight:700;color:var(--text-secondary, #4D4D4D)}.pb-ai-review-sep,.pb-ai-review-hint{color:var(--text-faint, #BCC1C1)}.pb-ai-created{margin-top:14px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}.pb-ai-created-title{font-size:12px;font-weight:700;color:var(--text-muted, #7D8784)}.pb-ai-created-chips{display:flex;flex-wrap:wrap;gap:8px}.pb-ai-created-chip{display:inline-flex;align-items:center;gap:7px;padding:4px 8px 4px 10px;background:var(--bg-subtle, #F2F2F2);border:1.5px solid var(--border, #ECECEC);border-radius:999px}.pb-ai-created-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.pb-ai-created-label{font-size:12px;font-weight:700;color:var(--text-primary, #4D4D4D)}.pb-ai-created-remove{border:none;background:transparent;color:var(--text-muted, #7D8784);font-size:15px;line-height:1;padding:0 2px;cursor:pointer;border-radius:4px;transition:color .15s ease,background .15s ease}.pb-ai-created-remove:hover{color:var(--qfp-orange, #FF5600);background:var(--qfp-orange-tint, #FFF5F0)}.pb-ai-cats{margin-top:14px}.pb-ai-cat-groups{display:flex;flex-direction:column;gap:8px;margin-top:8px}.pb-ai-cat-group{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}.pb-ai-cat-group-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted, #7D8784);min-width:108px}.pb-cat-editor-wrap .cat-editor{gap:6px}.pb-rows{display:flex;flex-direction:column;gap:8px}.pb-row{display:flex;align-items:center;gap:8px;background:var(--bg-subtle, #F2F2F2);border-radius:var(--radius-md, 10px);padding:8px 8px 8px 6px}.pb-row-handle{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:18px;height:28px;color:var(--text-faint, #BCC1C1);cursor:grab;border-radius:4px;transition:color .15s ease,background .15s ease}.pb-row-handle:hover{color:var(--text-muted, #7D8784);background:var(--bg-hover, #ECECEC)}.pb-row-handle:active{cursor:grabbing}.pb-row.dragging{opacity:.4}.pb-row.drop-above{box-shadow:0 -2px 0 0 var(--qfp-orange, #FF5600)}.pb-row.drop-below{box-shadow:0 2px 0 0 var(--qfp-orange, #FF5600)}.pb-row .pb-seg-name{flex:1 1 auto}.pb-row-daterange{flex-shrink:0;font-size:11px;line-height:1.2;color:var(--text-muted, #7D8784);white-space:nowrap;font-variant-numeric:tabular-nums}.pb-row-cat{position:relative;display:flex;align-items:center;flex-shrink:0}.pb-row-cat-dot{position:absolute;left:9px;width:9px;height:9px;border-radius:50%;pointer-events:none}.pb-row-cat-select{max-width:130px;padding:7px 8px 7px 24px;border:1px solid var(--border, #ECECEC);border-radius:var(--radius-sm, 8px);background:#fff;font-size:12px;font-weight:600;font-family:var(--font-family);color:var(--text-secondary, #4D4D4D);cursor:pointer;outline:none;transition:border-color .15s ease}.pb-row-cat-select:focus{border-color:var(--qfp-orange, #FF5600)}.pb-add-row{margin-top:0}.pb-section{padding-top:20px;border-top:1px solid var(--border-light, #F2F2F2)}.pb-section:first-of-type{border-top:none;padding-top:0}.pb-section-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.pb-section-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.pb-section-label{font-size:13px;font-weight:700;color:var(--text-primary, #4D4D4D)}.pb-segment-list{display:flex;flex-direction:column;gap:8px}.pb-segment{display:flex;align-items:center;gap:8px;background:var(--bg-subtle, #F2F2F2);border-radius:var(--radius-md, 10px);padding:8px 12px;position:relative}.pb-segment.pb-slide-in{animation:pb-slide-in .25s ease forwards}.pb-seg-name{flex:1;min-width:0;border:none;background:transparent;font-size:13px;font-weight:500;font-family:var(--font-family);color:var(--text-primary, #4D4D4D);outline:none;padding:6px 8px;border-radius:var(--radius-sm, 8px);transition:box-shadow .2s ease}.pb-seg-name:focus{box-shadow:0 0 0 2px #ff560026}.pb-seg-name::placeholder{color:var(--text-faint, #BCC1C1)}.pb-seg-stepper{display:flex;align-items:center;border:1px solid var(--border, #ECECEC);border-radius:var(--radius-sm, 8px);overflow:hidden;height:34px;flex-shrink:0;background:#fff}.pb-seg-stepper-btn{width:28px;height:100%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:var(--text-secondary, #4D4D4D);background:var(--bg-subtle, #F2F2F2);border:none;cursor:pointer;transition:background .15s ease;-webkit-user-select:none;user-select:none}.pb-seg-stepper-btn:hover{background:var(--bg-hover, #ECECEC);color:var(--text-primary, #4D4D4D)}.pb-seg-stepper-val{width:48px;text-align:center;font-size:13px;font-weight:700;font-family:var(--font-family);color:var(--text-primary, #4D4D4D);border:none;border-left:1px solid var(--border, #ECECEC);border-right:1px solid var(--border, #ECECEC);background:#fff;outline:none;-moz-appearance:textfield;height:100%;padding:0 2px}.pb-seg-stepper-val::-webkit-inner-spin-button,.pb-seg-stepper-val::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pb-seg-stepper-val.pb-bump{animation:pb-bump .2s ease}.pb-seg-remove{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-faint, #BCC1C1);font-size:16px;cursor:pointer;border-radius:var(--radius-sm, 8px);transition:all .15s ease;flex-shrink:0}.pb-seg-remove:hover{background:#cc000014;color:#c00}.pb-add-segment{display:flex;align-items:center;justify-content:center;gap:4px;padding:8px;margin-top:4px;border:1.5px dashed var(--border, #ECECEC);border-radius:var(--radius-md, 10px);background:transparent;color:var(--text-light, #95B1AC);font-size:12px;font-weight:600;font-family:var(--font-family);cursor:pointer;transition:all .2s ease;width:100%}.pb-add-segment:hover{color:var(--qfp-orange, #FF5600);border-color:var(--qfp-orange, #FF5600);background:var(--qfp-orange-tint, #FFF5F0)}.pb-deadline-group{display:flex;flex-direction:column;gap:6px;padding-top:20px;border-top:1px solid var(--border-light, #F2F2F2)}.pb-deadline-input{padding:10px 14px;border:1.5px solid var(--border, #ECECEC);border-radius:var(--radius-md, 10px);font-size:13px;font-family:var(--font-family);color:var(--text-primary, #4D4D4D);outline:none;transition:border-color .2s ease,box-shadow .2s ease;width:100%;max-width:200px}.pb-deadline-input:focus{border-color:var(--qfp-orange, #FF5600);box-shadow:0 0 0 3px #ff560014}.pb-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:20px 32px;border-top:1px solid var(--border-light, #F2F2F2);flex-shrink:0}@keyframes pb-slide-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes pb-bump{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}@media(max-width:600px){.pb-modal{width:100vw;height:100vh;max-height:100vh;max-width:100vw;border-radius:0;top:0;left:0;transform:translateY(20px)}.pb-modal.active{transform:translateY(0)}.pb-header{padding:20px}.pb-body{padding:8px 20px 20px}.pb-footer{padding:16px 20px}}.overview-container{padding:48px 24px 64px;max-width:640px;margin:0 auto;overflow-y:auto;flex:1}.overview-empty{text-align:center;color:var(--text-light);font-size:14px;padding:64px 24px}.overview-list{position:relative;display:flex;flex-direction:column;gap:0}.overview-list:before{content:"";position:absolute;top:28px;left:23px;width:2px;background:var(--border);z-index:0;height:var(--connector-height, 0px)}.overview-item{position:relative;display:flex;align-items:flex-start;gap:20px;padding:16px 0;z-index:1;cursor:pointer}.overview-dot-wrap{flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center}.overview-dot{width:14px;height:14px;border-radius:50%;border:3px solid white;box-shadow:0 0 0 2px currentColor,0 2px 8px #00000014;transition:transform .2s ease,box-shadow .2s ease}.overview-active .overview-dot{transform:scale(1.3);box-shadow:0 0 0 2px currentColor,0 0 0 6px #ff560026,0 2px 8px #00000014}.overview-active .overview-card{border-color:var(--qfp-orange);box-shadow:0 2px 12px #ff56001a,0 1px 4px #0000000a}.overview-up-next .overview-dot{animation:overview-pulse 2s ease-in-out infinite}.overview-up-next .overview-card{border-color:var(--qfp-orange);border-style:dashed}@keyframes overview-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.25)}}.overview-done .overview-card{opacity:.55}.overview-done .overview-dot{opacity:.5}.overview-status-badge{font-size:9px;font-weight:800;padding:3px 10px;border-radius:20px;letter-spacing:1px;text-transform:uppercase;white-space:nowrap;flex-shrink:0}.overview-status-now{background:var(--qfp-orange);color:#fff}.overview-status-next{background:transparent;color:var(--qfp-orange);border:1.5px solid var(--qfp-orange)}.overview-card{flex:1;background:var(--bg-surface);border:1.5px solid var(--border);border-radius:14px;padding:20px 24px;box-shadow:0 1px 4px #0000000a;transition:all .25s cubic-bezier(.4,0,.2,1)}.overview-item:hover .overview-card{transform:translate(6px) translateY(-2px);box-shadow:0 8px 24px #00000014,0 2px 8px #0000000a;border-color:var(--qfp-orange)}.overview-card-top{display:flex;align-items:center;gap:10px}.overview-name{font-size:16px;font-weight:700;color:var(--text-primary);letter-spacing:-.1px;flex:1;min-width:0}.overview-badge{font-size:10px;font-weight:700;padding:4px 12px;border-radius:20px;letter-spacing:.5px;text-transform:uppercase;white-space:nowrap;flex-shrink:0}.overview-tbd-badge{font-size:10px;font-weight:700;padding:4px 12px;border-radius:20px;letter-spacing:.5px;text-transform:uppercase;white-space:nowrap;flex-shrink:0;background:var(--border);color:var(--text-muted)}.overview-dates{margin-top:8px;font-size:13px;color:var(--text-muted);font-weight:500;display:flex;align-items:center;gap:8px}.overview-duration{font-size:11px;color:var(--text-faint);font-weight:600}.overview-phase-header{position:relative;z-index:1;display:flex;align-items:baseline;gap:10px;margin:10px 0 2px 68px;padding:6px 0;border-bottom:2px solid var(--border)}.overview-phase-label{font-size:12px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--text-secondary)}.overview-phase-date{font-size:11px;font-weight:700;color:var(--text-faint)}.overview-lock-item{cursor:default}.overview-lock-item:hover .overview-card{transform:none;border-color:#f0c4be;box-shadow:0 1px 4px #0000000a}.overview-lock-dot{color:#c0392b;background:#c0392b}.overview-lock-card{border-color:#f0c4be;background:#fdecec}.overview-lock-badge{font-size:10px;font-weight:700;padding:4px 12px;border-radius:20px;letter-spacing:.5px;text-transform:uppercase;white-space:nowrap;flex-shrink:0;background:#c0392b;color:#fff}@media(max-width:768px){.overview-container{padding:24px 12px 48px}.overview-list:before{left:19px}.overview-phase-header{margin-left:58px}.overview-dot-wrap{width:40px;height:40px}.overview-card{padding:16px 18px}.overview-name{font-size:14px}.overview-dates{font-size:12px}.overview-badge,.overview-tbd-badge{font-size:9px;padding:3px 10px}}.overview-toolbar{display:flex;justify-content:flex-end;align-items:center;gap:16px;margin-bottom:20px}.overview-mode-toggle{display:inline-flex;background:var(--bg-hover, #ECECEC);border-radius:var(--radius-md, 10px);padding:3px;gap:2px}.overview-mode-btn{border:none;background:transparent;padding:6px 16px;font-family:var(--font-family);font-size:12px;font-weight:700;color:var(--text-muted, #7D8784);border-radius:var(--radius-sm, 6px);cursor:pointer;transition:all .15s ease}.overview-mode-btn:hover{color:var(--text-primary, #4D4D4D)}.overview-mode-btn.active{background:var(--bg-surface, #FFFFFF);color:var(--qfp-orange, #FF5600);box-shadow:var(--shadow-sm)}.overview-complete .overview-name{color:var(--text-faint)}.overview-complete-badge{font-size:9px;font-weight:800;padding:3px 10px;border-radius:20px;letter-spacing:1px;text-transform:uppercase;white-space:nowrap;flex-shrink:0;background:var(--cat-postproduction-soft, #E6F9F0);color:#00a05e}.overview-container-table{max-width:1100px;padding:32px 24px 64px}.overview-table-wrap{background:var(--bg-surface, #FFFFFF);border:1.5px solid var(--border, #ECECEC);border-radius:var(--radius-lg, 14px);overflow:hidden;box-shadow:var(--shadow-sm)}.overview-table{width:100%;border-collapse:collapse;font-size:13px}.overview-table thead th{text-align:left;font-size:10px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--text-muted, #7D8784);padding:12px 14px;background:var(--bg-subtle, #F2F2F2);border-bottom:1.5px solid var(--border, #ECECEC);white-space:nowrap}.overview-table td{padding:9px 14px;border-bottom:1px solid var(--border-light, #F2F2F2);vertical-align:middle;color:var(--text-primary, #4D4D4D)}.ovt-row:last-child td{border-bottom:none}.ovt-row{transition:background .12s ease}.ovt-row:hover{background:var(--bg-subtle, #F2F2F2)}.ovt-handle-col{width:30px;text-align:center}.ovt-cat-col{width:140px}.ovt-days-col{width:54px;text-align:right;color:var(--text-muted);font-weight:600;white-space:nowrap}.ovt-status-col{width:148px}.ovt-sched-col{width:100px;white-space:nowrap}.ovt-end-col{width:92px;white-space:nowrap;color:var(--text-muted)}.ovt-handle{display:inline-flex;color:var(--text-faint, #BCC1C1);cursor:grab}.ovt-handle:active{cursor:grabbing}.ovt-edit-cell{cursor:pointer}.ovt-edit-cell:hover{text-decoration:underline;text-underline-offset:2px}.ovt-name{font-weight:600;cursor:text;display:inline-block;min-width:40px;outline:none;border-radius:4px}.ovt-name.editing-inline{box-shadow:0 0 0 2px var(--qfp-orange, #FF5600);padding:0 4px}.ovt-complete .ovt-name{color:var(--text-faint);text-decoration:none}.ovt-complete .ovt-name:before{content:"✓";color:var(--cat-postproduction, #00C875);font-weight:700;margin-right:5px}.ovt-complete .ovt-name.editing-inline:before{content:none}.ovt-chip{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.ovt-status{font-size:12px;padding:5px 22px 5px 9px;width:100%;max-width:148px;border-radius:var(--radius-sm, 6px);border:1.5px solid var(--border, #d9dede);font-weight:600}.ovt-status-not_started{border-color:var(--text-faint, #BCC1C1)!important;color:var(--text-secondary, #4D4D4D)}.ovt-status-in_progress{border-color:var(--qfp-orange, #FF5600)!important;color:var(--qfp-orange, #FF5600)}.ovt-status-complete{border-color:#00c875!important;color:#0a8f53}.ovt-empty{color:var(--text-faint, #BCC1C1)}.ovt-tbd{color:var(--text-faint, #BCC1C1);font-weight:700;font-size:10px;letter-spacing:.5px}.ovt-section-row td{background:var(--bg-hover, #ECECEC);font-size:10px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--text-muted, #7D8784);padding:7px 14px}.ovt-phase-date{margin-left:10px;font-weight:700;text-transform:none;letter-spacing:0;opacity:.8}.ovt-lock-row td{background:#fdecec;color:#c0392b;font-size:11px;font-weight:700;padding:7px 14px}.ovt-lock-badge{display:inline-block;margin-left:8px;font-size:9px;font-weight:800;letter-spacing:1px;padding:1px 7px;border-radius:999px;background:#c0392b;color:#fff}.ovt-lock-date{margin-left:8px;font-weight:700;opacity:.85}.ovt-lock-desc{margin-left:8px;font-weight:500;opacity:.8;text-transform:none}.ovt-unscheduled-header td{background:var(--bg-subtle, #F2F2F2);color:var(--text-muted, #7D8784)}.ovt-unscheduled-empty td,.ovt-scheduled-empty td{color:var(--text-faint, #BCC1C1);font-size:12px;text-align:center;padding:16px}.datepicker-trigger-wrap{position:relative;display:flex;align-items:center}.datepicker-trigger{width:100%;cursor:pointer;padding-right:36px!important}.datepicker-trigger-icon{position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--text-muted);display:flex;align-items:center}.datepicker-trigger-icon svg{width:16px;height:16px}.datepicker-dropdown{display:none;position:fixed;z-index:510;width:280px;background:var(--bg-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:12px;-webkit-user-select:none;user-select:none}.datepicker-dropdown.open{display:block}.datepicker-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.datepicker-nav-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);font-size:14px;color:var(--text-secondary);transition:background .15s ease}.datepicker-nav-btn:hover{background:var(--bg-hover)}.datepicker-nav-label{font-size:13px;font-weight:700;color:var(--text-primary)}.datepicker-dow{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px}.datepicker-dow span{text-align:center;font-size:10px;font-weight:600;text-transform:uppercase;color:var(--text-muted);padding:2px 0}.datepicker-dow span.weekend{color:var(--text-faint)}.datepicker-week{display:grid;grid-template-columns:repeat(7,1fr);position:relative;min-height:34px}.datepicker-day{display:flex;align-items:flex-start;justify-content:center;padding-top:4px;height:34px;font-size:12px;color:var(--text-primary);cursor:pointer;border-radius:var(--radius-sm);transition:background .1s ease;position:relative;z-index:1}.datepicker-day:hover{background:var(--bg-hover)}.datepicker-day.weekend{background:var(--bg-subtle);color:var(--text-muted)}.datepicker-day.weekend:hover{background:var(--bg-hover)}.datepicker-day.outside{opacity:.35}.datepicker-day.today{color:var(--qfp-orange);font-weight:700}.datepicker-day.selected{color:var(--qfp-orange);font-weight:700;border-bottom:2px solid var(--qfp-orange);border-radius:0;background:transparent}.datepicker-bars{position:absolute;left:0;right:0;bottom:1px;height:13px;pointer-events:none}.datepicker-bar{position:absolute;height:2px;border-radius:1px;opacity:.7;pointer-events:none}.cs-wrap{position:relative;width:100%}.cs-trigger{width:100%;display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:12px;font-family:var(--font-family);color:var(--text-primary);background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;text-align:left;outline:none;transition:border-color .15s;box-sizing:border-box}.cs-trigger:focus,.cs-trigger[aria-expanded=true]{border-color:var(--qfp-orange);box-shadow:var(--shadow-glow)}.cs-trigger-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cs-caret{flex-shrink:0;font-size:10px;color:var(--text-light)}.cs-dot{width:11px;height:11px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 2px #0000000f}.cs-listbox{position:fixed;z-index:620;background:var(--bg-surface, white);border:1px solid var(--border, #ECECEC);border-radius:10px;padding:6px;max-height:260px;overflow-y:auto;box-shadow:0 8px 24px #00000026;animation:cs-in .12s ease}@keyframes cs-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.cs-option{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:7px;cursor:pointer;font-size:12px;font-weight:600;color:var(--text-primary)}.cs-option-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cs-option-meta{flex-shrink:0;font-size:11px;font-weight:600;color:var(--text-light)}.cs-option:hover,.cs-option.active{background:var(--bg-hover)}.cs-option.selected{background:var(--bg-subtle)}.cs-option.selected .cs-option-label{font-weight:700}.signin-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-base)}.signin-card{display:flex;flex-direction:column;align-items:center;gap:16px;padding:48px 56px;background:var(--bg-surface);border-radius:var(--radius-lg, 12px);box-shadow:0 4px 24px #00000014;border:1px solid var(--border);max-width:400px;width:100%}.signin-logo{height:64px;width:auto;margin-bottom:8px}.signin-title{font-size:24px;font-weight:700;color:var(--qfp-dark);margin:0;text-align:center}.signin-subtitle{font-size:14px;color:var(--text-muted);margin:0;text-align:center;line-height:1.5}.signin-google-btn{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:12px;padding:12px 32px;font-size:14px;font-weight:600;font-family:var(--font-family);color:#333;background:#fff;border:1.5px solid #dadce0;border-radius:var(--radius-sm, 6px);cursor:pointer;transition:all .15s ease;width:100%}.signin-google-btn:hover:not(:disabled){background:#f8f9fa;border-color:#c6c9cc;box-shadow:0 2px 8px #00000014;transform:translateY(-1px)}.signin-google-btn:active:not(:disabled){transform:translateY(0)}.signin-google-btn:disabled{opacity:.7;cursor:wait}.signin-google-icon{flex-shrink:0}.signin-footer{font-size:12px;color:var(--text-muted);margin:8px 0 0;opacity:.7}.signin-loading{flex:1;display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-base)}.signin-loading-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--qfp-orange);border-radius:50%;animation:signin-spin .8s linear infinite}@keyframes signin-spin{to{transform:rotate(360deg)}}@media(max-width:480px){.signin-card{padding:36px 24px;margin:16px}}.signin-notice{margin:0;padding:10px 14px;width:100%;box-sizing:border-box;text-align:center;font-size:13px;color:#b4232a;background:#b4232a14;border:1px solid rgba(180,35,42,.25);border-radius:var(--radius-md, 8px)}.ci-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:600;opacity:0;pointer-events:none;transition:opacity .25s ease}.ci-overlay.active{opacity:1;pointer-events:all}.ci-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.96);width:92vw;max-width:460px;background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:601;display:flex;flex-direction:column;overflow:hidden;opacity:0;pointer-events:none;transition:all .25s ease}.ci-modal.active{opacity:1;pointer-events:all;transform:translate(-50%,-50%) scale(1)}.ci-body{padding:28px 28px 20px;display:flex;flex-direction:column;gap:14px;text-align:center}.ci-eyebrow{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--qfp-orange)}.ci-title{font-size:22px;font-weight:700;color:var(--qfp-dark);margin:0;line-height:1.25;word-wrap:break-word}.ci-message{font-size:14px;color:var(--text-muted);margin:0;line-height:1.5}.ci-stats{list-style:none;padding:12px 14px;margin:4px 0 0;background:var(--bg-subtle);border-radius:var(--radius-sm);display:flex;justify-content:center;gap:22px;font-size:13px;color:var(--text-primary)}.ci-stats li strong{color:var(--qfp-dark);font-weight:700;margin-right:4px}.ci-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 20px;border-top:1px solid var(--border);background:var(--bg-subtle)}.ci-btn{padding:9px 18px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px;border-radius:var(--radius-sm);cursor:pointer;border:1.5px solid transparent;transition:all .15s ease;font-family:var(--font-family);display:inline-flex;align-items:center;gap:6px}.ci-btn-ghost{color:var(--text-muted);background:transparent;border-color:var(--border)}.ci-btn-ghost:hover{color:var(--qfp-dark);border-color:var(--qfp-dark)}.ci-btn-primary{color:#fff;background:var(--qfp-orange);border-color:var(--qfp-orange)}.ci-btn-primary:hover:not(:disabled){background:var(--qfp-orange-hover);border-color:var(--qfp-orange-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.ci-btn-primary:active:not(:disabled){transform:translateY(0)}.ci-btn-primary:disabled{opacity:.7;cursor:wait}.ci-btn-icon{font-size:13px}.ci-spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--qfp-orange);border-radius:50%;animation:ci-spin .8s linear infinite;margin:8px auto 0}.ci-loading-text{font-size:13px;color:var(--text-muted);margin:0}@keyframes ci-spin{to{transform:rotate(360deg)}}.pnav-scrim{position:fixed;top:0;right:0;bottom:0;left:var(--rail-w);z-index:430;background:#00000052;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility 0s linear .25s}.pnav-scrim.active{opacity:1;visibility:visible;transition:opacity .25s ease}.pnav-drawer{position:fixed;top:0;bottom:0;left:var(--rail-w);z-index:440;width:360px;max-width:calc(100vw - var(--rail-w) - 40px);display:flex;flex-direction:column;background:var(--bg-surface);border-right:1px solid var(--border);box-shadow:8px 0 32px #00000024;transform:translate(-100%);visibility:hidden;transition:transform .28s cubic-bezier(.32,.72,0,1),visibility 0s linear .28s}.pnav-drawer.active{transform:translate(0);visibility:visible;transition:transform .28s cubic-bezier(.32,.72,0,1)}.pnav-drawer *{transition-property:background,background-color,border-color,color,box-shadow,opacity,transform}@media(prefers-reduced-motion:reduce){.pnav-drawer,.pnav-drawer.active,.pnav-scrim,.pnav-scrim.active{transition:none}}.pnav-head{display:flex;align-items:center;gap:10px;height:52px;padding:0 10px 0 18px;flex-shrink:0}.pnav-title{flex:1;font-size:16px;font-weight:700;color:var(--qfp-dark)}.pnav-search-wrap{position:relative;margin:0 14px;flex-shrink:0}.pnav-search-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:14px;height:14px;fill:none;stroke:var(--text-faint);stroke-width:2;stroke-linecap:round;pointer-events:none}.pnav-search{width:100%;padding:8px 12px 8px 32px;font-size:13px;background:var(--bg-subtle);border-color:transparent}.pnav-search:focus{background:var(--bg-surface)}.pnav-actions{display:flex;gap:8px;margin:10px 14px 6px;flex-shrink:0}.pnav-actions>*{flex:1;min-width:0}.pnav-head-btn{height:32px;padding:0 12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);background:transparent;border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease;font-family:var(--font-family)}.pnav-head-btn:hover{border-color:var(--qfp-dark);color:var(--qfp-dark)}.pnav-head-btn-primary{color:#fff;background:var(--qfp-orange);border-color:var(--qfp-orange)}.pnav-head-btn-primary:hover{background:var(--qfp-orange-hover);border-color:var(--qfp-orange-hover);color:#fff}.pnav-new-folder-input{height:32px;padding:0 10px;font-size:13px}.pnav-close{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-muted);font-size:14px;background:transparent;border:none;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease;flex-shrink:0}.pnav-close:hover{background:var(--bg-hover);color:var(--qfp-dark)}.pnav-body{flex:1;overflow-y:auto;padding:4px 8px 16px}.pnav-group{margin-top:6px}.pnav-folder-head{display:flex;align-items:center;gap:4px;padding-right:4px;border-radius:var(--radius-sm);transition:background .12s ease,box-shadow .2s ease}.pnav-folder-head:hover{background:var(--bg-subtle)}.pnav-folder-head.is-revealed{background:var(--qfp-green-tint);box-shadow:inset 0 0 0 1.5px var(--qfp-green-ring)}.pnav-folder-toggle{display:flex;align-items:center;gap:7px;flex:1;min-width:0;padding:7px 6px;background:transparent;border:none;cursor:pointer;text-align:left;color:var(--qfp-dark);font-size:13px;font-weight:600;font-family:var(--font-family)}.pnav-folder-toggle.pnav-folder-static{cursor:default;padding-left:10px;color:var(--text-light);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.6px}.pnav-ficon{width:16px;height:16px;flex-shrink:0;fill:none;stroke:var(--qfp-green);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.pnav-group[data-folder-id=archive-pre-shared] .pnav-ficon,.pnav-deleted .pnav-ficon{stroke:var(--text-faint)}.pnav-folder-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pnav-caret{width:12px;font-size:9px;color:var(--text-faint);text-align:center;flex-shrink:0;transition:transform .15s ease}.pnav-group.collapsed .pnav-caret{transform:rotate(-90deg)}.pnav-count{color:var(--text-faint);font-size:11px;font-weight:600}.pnav-group[data-folder-id]:not([data-folder-id=__unfiled__])>.pnav-folder-items{margin-left:20px}.pnav-group.collapsed .pnav-folder-items{display:none}.pnav-empty{padding:6px 10px;font-size:12px;font-style:italic;color:var(--text-muted)}.pnav-row{display:flex;align-items:center;gap:9px;min-height:34px;padding:6px 6px 6px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:background .12s ease}.pnav-project.is-active{background:var(--qfp-orange-tint)}.pnav-project.is-active:hover{background:#ffede3}.pnav-row:hover,.pnav-row:focus-visible{background:var(--bg-hover);outline:none}.pnav-row:focus-visible{box-shadow:inset 0 0 0 2px var(--qfp-green-ring)}.pnav-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:transparent;box-shadow:inset 0 0 0 1.5px var(--border)}.pnav-dot.on{background:var(--qfp-orange);box-shadow:none}.pnav-project.is-active .pnav-name{font-weight:700;color:var(--qfp-dark)}.pnav-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--qfp-dark)}.pnav-meta{flex-shrink:0;font-size:11px;color:var(--text-muted)}.pnav-rename-input{flex:1;min-width:0;padding:4px 8px;font-size:13px}.pnav-project{position:relative}.pnav-project .pnav-rowmenu{position:absolute;right:4px;top:50%;transform:translateY(-50%)}.pnav-project:hover .pnav-meta,.pnav-project:focus-within .pnav-meta{visibility:hidden;min-width:80px}.pnav-rowmenu{display:flex;align-items:center;gap:2px;flex-shrink:0;opacity:0;transition:opacity .12s ease}.pnav-row:hover .pnav-rowmenu,.pnav-row:focus-within .pnav-rowmenu,.pnav-folder-head:hover .pnav-rowmenu,.pnav-folder-head:focus-within .pnav-rowmenu,.pnav-rowmenu:focus-within{opacity:1}.pnav-act{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-size:13px;cursor:pointer;transition:background .12s ease,color .12s ease}.pnav-act:hover,.pnav-act:focus-visible{background:var(--bg-surface);color:var(--qfp-dark);outline:none;box-shadow:var(--shadow-sm)}.pnav-act-danger:hover,.pnav-act-danger:focus-visible{background:var(--qfp-orange-tint);color:var(--qfp-orange)}.pnav-deleted .pnav-folder-name{color:var(--text-muted)}.pnav-deleted-row{cursor:default}.pnav-deleted-row:hover{background:transparent}.pnav-restore{flex-shrink:0;padding:5px 12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--qfp-orange);background:transparent;border:1.5px solid var(--qfp-orange-border);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.pnav-restore:hover{background:var(--qfp-orange);color:#fff;border-color:var(--qfp-orange)}.pnav-move-menu{position:fixed;z-index:3000;min-width:180px;max-width:220px;padding:4px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.pnav-move-item{display:block;width:100%;text-align:left;padding:8px 10px;border:none;background:transparent;border-radius:var(--radius-sm);font-size:13px;color:var(--qfp-dark);cursor:pointer;font-family:var(--font-family)}.pnav-move-item:hover{background:var(--bg-hover)}.pnav-move-empty{padding:8px 10px;font-size:12px;font-style:italic;color:var(--text-muted)}.pnav-banner{display:flex;align-items:center;gap:10px;margin:0 14px 10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-subtle);font-size:12px;line-height:1.4;color:var(--text-secondary);flex-shrink:0}.pnav-banner[hidden]{display:none}.pnav-banner-text{flex:1;min-width:0;margin:0;overflow-wrap:anywhere}.pnav-banner-text strong{color:var(--qfp-dark)}.pnav-drawer.is-picking .pnav-actions,.pnav-drawer.is-picking .pnav-rowmenu{display:none}.pnav-drawer.is-picking .pnav-project:hover .pnav-meta,.pnav-drawer.is-picking .pnav-project:focus-within .pnav-meta{visibility:visible;min-width:0}.pnav-tag{flex-shrink:0;padding:1px 7px;font-size:11px;font-weight:600;color:var(--text-secondary);border:1px solid var(--text-muted);border-radius:var(--radius-sm)}.pnav-deleted-row.is-revealed{background:var(--qfp-green-tint);box-shadow:inset 0 0 0 1.5px var(--qfp-green-ring)}.hub-main{background:var(--bg-page)}.hub-title{font-size:18px;font-weight:700;color:var(--qfp-dark);line-height:1.2;padding:3px 6px}.hub-title:focus{outline:none}.hub-account{display:none;margin-top:0}.hub-account .rail-menu{left:auto;right:0;bottom:auto;top:calc(100% + 8px);z-index:200}.hub-body{flex:1;min-height:0;overflow-y:auto}.hub-wrap{max-width:960px;margin:0 auto;padding:var(--space-lg) var(--space-lg) var(--space-xl)}.hub-kicker{font-size:10px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--text-muted)}.hub-hello{font-size:24px;font-weight:700;letter-spacing:-.3px;color:var(--qfp-dark);margin-top:2px}.hub-tiles{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);margin-top:18px}.hub-tile{position:relative;display:flex;flex-direction:column;min-width:0;padding:20px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.hub-tile-top{display:flex;align-items:center;gap:12px;padding-right:40px;margin-bottom:6px}.hub-tile-ic{flex:none;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--text-muted);color:var(--text-muted)}.hub-glyph{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.hub-tile-name{font-size:17px;font-weight:700;color:var(--qfp-dark)}.hub-tile-meta{color:var(--text-muted)}.hub-tile-plus{position:absolute;top:16px;right:16px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:1px solid var(--text-muted);background:var(--bg-surface);color:var(--text-muted);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.hub-tile-plus .hub-glyph{width:16px;height:16px;stroke-width:2}.hub-tile-plus:hover,.hub-tile-plus:focus-visible{border-color:var(--qfp-orange);color:var(--qfp-orange);background:var(--qfp-orange-tint);outline:none}.hub-tile-plus[aria-busy=true],.hub-go[aria-busy=true],.hub-row[aria-busy=true]{cursor:progress}.hub-tile-empty{margin-top:10px;padding-top:10px;border-top:1px solid var(--border-light);color:var(--text-muted)}.hub-go{align-self:flex-start;margin-top:auto;padding-top:12px;font-size:12px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--qfp-orange);text-decoration:none}.hub-go:hover,.hub-go:focus-visible{color:var(--qfp-orange-hover);text-decoration:underline;outline:none}.hub-list{list-style:none;margin-top:10px;border-top:1px solid var(--border-light)}.hub-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;width:100%;padding:9px 0;border:0;border-bottom:1px solid var(--border-light);background:transparent;font:inherit;text-align:left;text-decoration:none;color:inherit;cursor:pointer}.hub-list li:last-child .hub-row{border-bottom:0}.hub-row-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;color:var(--qfp-dark)}.hub-row-meta{flex-shrink:0;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}.hub-row:hover .hub-row-name{color:var(--qfp-orange-hover)}.hub-row:focus-visible{outline:none;border-radius:var(--radius-sm);box-shadow:0 0 0 2px var(--qfp-green-ring)}.hub-results-list{margin-top:8px;padding:0 16px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-surface)}.hub-search{position:relative;margin-top:18px}.hub-search input{width:100%;height:50px;padding:0 56px 0 46px;border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);box-shadow:var(--shadow-sm);font:inherit;font-size:15px;color:var(--qfp-dark);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.hub-search input::placeholder{color:var(--text-faint)}.hub-search input:focus{border-color:var(--qfp-green-ring);box-shadow:0 0 0 4px var(--qfp-green-tint)}.hub-search input::-webkit-search-cancel-button{display:none}.hub-search-ic{position:absolute;left:16px;top:16px;width:18px;height:18px;fill:none;stroke:var(--text-faint);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.hub-kbd{position:absolute;right:14px;top:15px;padding:2px 6px;border:1px solid var(--border);border-radius:5px;background:var(--bg-subtle);font-family:inherit;font-size:11px;font-weight:700;color:var(--text-muted);pointer-events:none}.hub-sec-h{margin-top:22px;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--text-muted)}.hub-empty{margin-top:12px;padding:16px;border:1.5px dashed var(--border);border-radius:var(--radius-lg);text-align:center;color:var(--text-muted)}.hub-empty-note{margin-top:4px;font-size:12px;color:var(--text-faint)}@media(max-width:1024px){.hub-account{display:block}.hub-kbd{display:none}.hub-search input{padding-right:16px}}@media(max-width:760px){.hub-tiles{grid-template-columns:1fr}}@media(max-width:768px){.hub-wrap{padding:14px 12px var(--space-xl)}.hub-hello{font-size:21px}.hub-tile{padding:16px}.hub-tile-plus{top:12px;right:12px}.hub-row{flex-direction:column;align-items:stretch;gap:1px}.hub-row-meta{max-width:none}}.bl-dialog{margin:auto;width:min(420px,calc(100vw - 32px));padding:20px 22px 18px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-surface);color:var(--text-primary);box-shadow:var(--shadow-lg);font-family:var(--font-family)}.bl-title{margin:0 0 8px;font-size:16px;font-weight:700;line-height:1.3;color:var(--qfp-dark);overflow-wrap:anywhere}.bl-desc{margin:0;font-size:13px;line-height:1.45;color:var(--text-secondary);overflow-wrap:anywhere}.bl-actions{display:flex;gap:8px;margin-top:18px}.bl-actions .hd-btn:focus-visible{outline:2px solid var(--qfp-dark);outline-offset:2px}.rail{box-sizing:border-box;width:var(--rail-w);min-width:var(--rail-w);height:100vh;height:100dvh;position:sticky;top:0;align-self:flex-start;flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 0 10px;margin:0;background:var(--bg-surface);border-right:1px solid var(--border);font-family:var(--font-family);line-height:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.rail *,.rail *:before,.rail *:after{box-sizing:border-box}.rail-logo{display:block;width:34px;height:auto;margin:0 0 12px;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.rail-group{display:flex;flex-direction:column;align-items:center;gap:6px;margin:0;padding:0}.rail-sep{display:block;width:20px;height:1px;margin:3px 0;background:var(--border)}.rail-spacer{flex:1}.rail-btn,.rail-avatar,.rail-menu-item{margin:0;font-family:var(--font-family);font-size:inherit;cursor:pointer;text-decoration:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.rail-btn{position:relative;width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:8px;color:var(--text-muted);background:transparent;border:1px solid transparent;transition:background .12s ease,color .12s ease,border-color .12s ease}.rail-btn:hover:not([aria-disabled=true]),.rail-btn:focus-visible{background:var(--bg-hover);color:var(--qfp-dark)}.rail-btn:focus-visible,.rail-avatar:focus-visible{outline:2px solid var(--qfp-dark);outline-offset:2px}.rail-btn[aria-expanded=true]{background:var(--qfp-orange-tint);border-color:var(--qfp-orange-border);color:var(--qfp-orange)}.rail-btn[aria-current=page],.rail-btn[aria-current=page]:hover:not([aria-disabled=true]),.rail-btn[aria-current=page]:focus-visible{background:var(--qfp-green-tint);border-color:var(--qfp-green-ring);color:var(--qfp-green);cursor:default}.rail-btn[aria-busy=true]{cursor:progress}.rail-btn[aria-disabled=true]{color:var(--text-faint);opacity:.55;cursor:default}.rail-icon{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.rail [data-tip]:hover:after,.rail [data-tip]:focus-visible:after{content:attr(data-tip);position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:var(--tooltip-bg);color:var(--tooltip-text);font-family:var(--font-family);font-size:11px;font-weight:600;line-height:normal;padding:4px 8px;border-radius:5px;white-space:nowrap;pointer-events:none;z-index:2}.rail-avatar-wrap{position:relative;margin-top:4px}.rail-avatar{position:relative;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:0;padding:0;color:inherit;background:transparent}.rail-avatar[aria-expanded=true]:after,.rail-avatar[aria-expanded=true]:hover:after{display:none}.rail-avatar-img{display:block;width:30px;height:30px;border-radius:50%;object-fit:cover;border:1.5px solid var(--border)}.rail-avatar-fallback{display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--text-on-accent);background:var(--qfp-orange);border-color:var(--qfp-orange)}.rail-menu{position:absolute;left:calc(100% + 10px);bottom:0;min-width:220px;max-width:300px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-popover);padding:4px;display:none}.rail-menu.open{display:block}.rail-menu-id{display:flex;flex-direction:column;gap:1px;padding:8px 10px;border-bottom:1px solid var(--border-light);margin-bottom:4px}.rail-menu-name{font-size:13px;font-weight:600;color:var(--qfp-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rail-menu-email{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rail-menu-item{width:100%;display:block;text-align:left;padding:8px 10px;border:0;border-radius:var(--radius-sm);background:transparent;font-size:13px;font-weight:500;color:var(--qfp-dark)}.rail-menu-item:hover,.rail-menu-item:focus-visible{background:var(--bg-hover);outline:none}@media(max-width:1024px){.rail{display:none}}.nav-icon{display:block;flex-shrink:0;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.nav-menu-btn{box-sizing:border-box;display:none;flex-shrink:0;align-items:center;justify-content:center;width:36px;height:36px;margin:0;padding:0;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text-muted);font-family:var(--font-family);font-size:inherit;line-height:normal;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:background .12s ease,color .12s ease,border-color .12s ease}.nav-menu-btn .nav-icon{width:20px;height:20px}.nav-menu-btn:hover,.nav-menu-btn:focus-visible{background:var(--bg-hover);color:var(--qfp-dark)}.nav-menu-btn:focus-visible{outline:2px solid var(--qfp-dark);outline-offset:2px}.nav-menu-btn[aria-expanded=true]{background:var(--bg-hover);color:var(--qfp-dark)}@media(max-width:1024px){.nav-menu-btn{display:inline-flex}}@media(max-width:768px){.nav-menu-btn{width:40px;height:40px}}.nav-foot{box-sizing:border-box;display:flex;flex-direction:column;flex-shrink:0;margin:0;font-family:var(--font-family);line-height:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.nav-foot *,.nav-foot *:before,.nav-foot *:after{box-sizing:border-box}.nav-foot-apps{display:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0;padding:10px 12px;border-top:1px solid var(--border-light)}@media(max-width:1024px){.nav-foot-apps{display:grid}}.nav-foot-app{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;min-height:52px;margin:0;padding:7px 4px 6px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text-muted);font-family:var(--font-family);font-size:12px;font-weight:600;line-height:1.2;text-align:center;text-decoration:none;cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.nav-foot-app-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-foot-app:hover,.nav-foot-app:focus-visible{background:var(--bg-hover);color:var(--qfp-dark)}.nav-foot-app:focus-visible{outline:2px solid var(--qfp-dark);outline-offset:2px}.nav-foot-app[aria-current=page],.nav-foot-app[aria-current=page]:hover,.nav-foot-app[aria-current=page]:focus-visible{background:var(--qfp-green-tint);border-color:var(--qfp-green-ring);color:var(--qfp-green);cursor:default}.nav-foot-app[aria-busy=true]{cursor:progress}.nav-foot-id{display:flex;align-items:center;gap:10px;margin:0;padding:12px 18px;border-top:1px solid var(--border-light)}.nav-foot-avatar{display:block;flex-shrink:0;width:32px;height:32px;border-radius:50%;object-fit:cover;border:1.5px solid var(--border)}.nav-foot-avatar-fallback{display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:var(--text-on-accent);background:var(--qfp-orange);border-color:var(--qfp-orange)}.nav-foot-text{display:flex;flex:1;flex-direction:column;gap:1px;min-width:0}.nav-foot-name,.nav-foot-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-foot-name{font-size:13px;font-weight:600;color:var(--qfp-dark)}.nav-foot-email{font-size:11px;color:var(--text-muted)}.nav-foot-signout{flex-shrink:0;margin:0;padding:7px 14px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-family:var(--font-family);font-size:12px;font-weight:700;line-height:normal;letter-spacing:.6px;text-transform:uppercase;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:background .15s ease,border-color .15s ease,color .15s ease}.nav-foot-signout:hover,.nav-foot-signout:focus-visible{border-color:var(--qfp-dark);color:var(--qfp-dark)}.nav-foot-signout:focus-visible{outline:2px solid var(--qfp-dark);outline-offset:2px}
