:root{--primary-yellow: #fed202;--primary-purple: #4b3063;--bg-light: #f7f8fa;--bg-dark: #2a1b38;--text-main: #111827;--text-muted: #6b7280;--border-subtle: #e5e7eb;--row-hover: #f7f8fa;--font-family: "Poppins", sans-serif;--color-brand: #4b3063;--color-brand-hover: #3a2450;--color-brand-subtle: #f3ebff;--color-brand-muted: #e0d8f0;--color-accent: #fed202;--color-accent-hover: #e6bd00;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--color-success: #16a34a;--color-success-bg: #f0fdf4;--color-success-border: #bbf7d0;--color-warning: #f59e0b;--color-warning-bg: #fffbeb;--color-warning-border: #fde68a;--color-danger: #ef4444;--color-danger-bg: #fef2f2;--color-danger-border: #fcd0cc;--color-danger-text: #c0392b;--color-info: #3b82f6;--color-info-bg: #eff6ff;--color-info-border: #bfdbfe;--surface-primary: #ffffff;--surface-secondary: #f7f8fa;--surface-elevated: #ffffff;--surface-overlay: rgba(0, 0, 0, .55);--text-primary: #1e1330;--text-secondary: #6b7280;--text-tertiary: #9ca3af;--text-disabled: #d1d5db;--text-on-brand: #ffffff;--text-on-accent: #4b3063;--border-default: #e5e7eb;--border-hover: #d1d5db;--border-focus: #4b3063;--border-brand: rgba(75, 48, 99, .3);--sidebar-bg: #1e1330;--sidebar-surface: #2a1d3e;--sidebar-border: rgba(255, 255, 255, .05);--sidebar-text-primary: #ffffff;--sidebar-text-secondary: rgba(255, 255, 255, .82);--sidebar-text-muted: rgba(255, 255, 255, .55);--sidebar-hover: rgba(255, 255, 255, .06);--sidebar-active: rgba(255, 255, 255, .1);--sidebar-active-hover: rgba(255, 255, 255, .13);--sidebar-accent: #fed202;--sidebar-accent-bg: rgba(254, 210, 2, .08);--sidebar-menu-bg: #2a1d3e;--sidebar-menu-border: rgba(255, 255, 255, .1);--sidebar-menu-hover: rgba(255, 255, 255, .07);--font-size-2xs: .6875rem;--font-size-xs: .75rem;--font-size-sm: .8125rem;--font-size-base: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.7;--space-0: 0;--space-0-5: .125rem;--space-1: .25rem;--space-1-5: .375rem;--space-2: .5rem;--space-2-5: .625rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--radius-xs: 2px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-2xl: 16px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .08);--shadow-md: 0 4px 16px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .15);--shadow-xl: 0 20px 60px rgba(0, 0, 0, .2);--shadow-overlay: 0 24px 64px rgba(0, 0, 0, .5);--shadow-brand-hover: 0 4px 16px rgba(75, 48, 99, .1);--transition-fast: .1s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--z-sidebar: 100;--z-sidebar-toggle: 200;--z-dropdown: 1000;--z-modal: 2000;--z-menu: 9999;--z-toast: 10000}html,body{height:100%;overflow:hidden}body{margin:0;font-family:var(--font-family);background-color:var(--bg-light);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}.h-screen{height:100vh}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.w-full{width:100%}.input-field{width:100%;padding:12px 16px;border-radius:8px;border:1px solid #ddd;background:#fafafa;color:#333;outline:none;font-family:inherit;font-size:.95rem;transition:border-color .2s}.input-field:focus{border-color:var(--primary-purple)}.input-field::placeholder{color:#aaa}.btn-primary{width:100%;padding:12px 16px;border-radius:8px;border:none;background-color:var(--primary-purple);color:#fff;font-weight:600;font-size:1rem;cursor:pointer;transition:background-color .2s}.btn-primary:hover{background-color:#3a2450}.btn-primary:disabled{opacity:.7;cursor:not-allowed}.doc-editor .ProseMirror{outline:none;font-size:.92rem;line-height:1.7;color:#1e1330;min-height:400px}.doc-editor .ProseMirror>*+*{margin-top:.25rem}.doc-editor .ProseMirror h1{font-size:1.65rem;font-weight:700;margin:1.4rem 0 .3rem;line-height:1.2}.doc-editor .ProseMirror h2{font-size:1.3rem;font-weight:700;margin:1.1rem 0 .25rem;line-height:1.25}.doc-editor .ProseMirror h3{font-size:1.1rem;font-weight:700;margin:.9rem 0 .2rem}.doc-editor .ProseMirror h4{font-size:.95rem;font-weight:700;margin:.7rem 0 .2rem;text-transform:uppercase;letter-spacing:.04em;color:#7c6f8e}.doc-editor .ProseMirror p{margin:0;min-height:1.5em}.doc-editor .ProseMirror ul,.doc-editor .ProseMirror ol{padding-left:1.4rem;margin:.2rem 0}.doc-editor .ProseMirror li{margin:.1rem 0}.doc-editor .ProseMirror a{color:#4b3063;text-decoration:underline}.doc-editor .ProseMirror mark{background-color:#fef08a;border-radius:2px;padding:.05em .15em}.doc-editor .ProseMirror blockquote{border-left:3px solid #4b3063;margin:.6rem 0;padding:.4rem 0 .4rem 1rem;color:#5a4870;font-style:italic}.doc-editor .ProseMirror pre{background:#1e1330;border-radius:8px;padding:.85rem 1rem;margin:.6rem 0;overflow-x:auto}.doc-editor .ProseMirror pre code{font-family:JetBrains Mono,Fira Code,monospace;font-size:.82rem;color:#e0d8f0;background:none;padding:0}.doc-editor .ProseMirror code{background:#f0ebf8;border-radius:3px;padding:.1em .3em;font-size:.85em;color:#4b3063;font-family:monospace}.doc-editor .ProseMirror hr{border:none;border-top:2px solid #e8e0f0;margin:1rem 0}.doc-editor .ProseMirror ul[data-type=taskList]{list-style:none;padding-left:0}.doc-editor .ProseMirror ul[data-type=taskList] li{display:flex;align-items:flex-start;gap:.5rem}.doc-editor .ProseMirror ul[data-type=taskList] li>label{flex-shrink:0;margin-top:.1rem}.doc-editor .ProseMirror ul[data-type=taskList] li>label input{accent-color:#4b3063;width:15px;height:15px;cursor:pointer}.doc-editor .ProseMirror ul[data-type=taskList] li>div{flex:1}.doc-editor .ProseMirror ul[data-type=taskList] li[data-checked=true]>div{text-decoration:line-through;color:#aaa}.doc-editor .ProseMirror img{max-width:100%;height:auto;border-radius:8px;display:block;margin:.5rem 0;cursor:default}.doc-editor .ProseMirror img.ProseMirror-selectednode{outline:2px solid #4b3063;border-radius:8px}.doc-editor .ProseMirror h1[data-page-title]{font-size:2rem;font-weight:800;color:#1e1330;margin:0 0 .75rem;line-height:1.2;border:none;outline:none}.doc-editor .ProseMirror .is-empty:before{content:attr(data-placeholder);float:left;color:#c4b8d4;pointer-events:none;height:0}.doc-banner{border-radius:8px;padding:.75rem 1rem;margin:.4rem 0;color:#fff;font-weight:600}.doc-block-controls{position:absolute;left:0;display:flex;align-items:center;gap:2px;opacity:0;transition:opacity .1s;pointer-events:auto;-webkit-user-select:none;user-select:none}.doc-block-controls:hover,.doc-block-controls.visible{opacity:1}.doc-block-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;border-radius:4px;background:transparent;color:#c4b8d4;cursor:pointer;font-size:.75rem;padding:0;line-height:1}.doc-block-btn:hover{background:#f0ebf8;color:#4b3063}.text-2xs{font-size:var(--font-size-2xs);line-height:1.3}.text-xs{font-size:var(--font-size-xs);line-height:1.4}.text-sm{font-size:var(--font-size-sm);line-height:1.45}.text-base{font-size:var(--font-size-base);line-height:1.5}.text-md{font-size:var(--font-size-md);line-height:1.5}.text-lg{font-size:var(--font-size-lg);line-height:1.4}.text-xl{font-size:var(--font-size-xl);line-height:1.3}.text-2xl{font-size:var(--font-size-2xl);line-height:1.25}.text-3xl{font-size:var(--font-size-3xl);line-height:1.2}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.font-extrabold{font-weight:var(--font-weight-extrabold)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-disabled{color:var(--text-disabled)}.text-brand{color:var(--color-brand)}.text-accent{color:var(--color-accent)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-info{color:var(--color-info)}.sidebar-menu-item{background-color:transparent;transition:background-color var(--transition-fast)}.sidebar-menu-item:hover{background-color:var(--sidebar-menu-hover)}.sidebar-nav-row{background-color:transparent;transition:background-color var(--transition-fast)}.sidebar-nav-row:hover{background-color:var(--sidebar-hover)}.sidebar-nav-row:hover .ctx-dots,.sidebar-nav-row:hover .folder-plus,.sidebar-nav-row:hover .list-plus,.sidebar-nav-row:hover .sl-plus,.sidebar-nav-row:hover .sf-btn,.sidebar-nav-row:hover .doc-rename-btn{opacity:1!important}.sidebar-nav-row[data-active=true]{background-color:var(--sidebar-active)}.sidebar-nav-row[data-active=true]:hover{background-color:var(--sidebar-active-hover)}.sidebar-icon-btn{background:none;border:none;cursor:pointer;color:var(--sidebar-text-muted);display:flex;align-items:center;padding:var(--space-0-5) var(--space-1);flex-shrink:0;opacity:0;transition:opacity var(--transition-fast),color var(--transition-fast)}.sidebar-icon-btn:hover{color:var(--sidebar-text-primary)}.sidebar-settings-row{transition:color var(--transition-fast)}.sidebar-settings-row:hover{color:var(--sidebar-text-secondary)}.sidebar-color-hover{transition:color var(--transition-fast)}.sidebar-color-hover:hover{color:var(--sidebar-text-primary)!important}.sidebar-row-hover{background-color:transparent;transition:background-color var(--transition-fast)}.sidebar-row-hover:hover{background-color:var(--sidebar-menu-hover)}.sidebar-row-reveal{transition:background-color var(--transition-fast),color var(--transition-fast)}.sidebar-row-reveal:hover{background-color:var(--sidebar-hover)}.sidebar-row-reveal:hover .ctx-dots,.sidebar-row-reveal:hover .folder-plus,.sidebar-row-reveal:hover .list-plus,.sidebar-row-reveal:hover .sl-plus,.sidebar-row-reveal:hover .sf-btn,.sidebar-row-reveal:hover .doc-rename-btn,.sidebar-row-reveal:hover .space-add-btn{opacity:1!important}.sidebar-row-reveal[data-active=true]{background-color:var(--sidebar-active)}.sidebar-row-reveal[data-active=true]:hover{background-color:var(--sidebar-active-hover)}.card-interactive{transition:box-shadow var(--transition-base),border-color var(--transition-base)}.card-interactive:hover{box-shadow:var(--shadow-brand-hover);border-color:var(--color-brand)}.sidebar-drag-handle{background-color:transparent;transition:background-color var(--transition-fast)}.sidebar-drag-handle:hover{background-color:#fed20259}.sidebar-logout-btn{transition:background-color var(--transition-fast)}.sidebar-logout-btn:hover{background-color:#ffffff1a!important}.perm-suggestion-row{transition:background-color var(--transition-fast)}.perm-suggestion-row:hover{background-color:#ffffff12}.perm-remove-btn{transition:color var(--transition-fast)}.perm-remove-btn:hover{color:var(--color-danger)!important}@keyframes pft-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:pft-spin 1s linear infinite}@keyframes pft-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.pft-skeleton{background:linear-gradient(90deg,var(--color-gray-100) 25%,var(--color-gray-200) 50%,var(--color-gray-100) 75%);background-size:200% 100%;animation:pft-shimmer 1.5s ease-in-out infinite}@keyframes pft-toast-in{0%{opacity:0;transform:translate(100%) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes pft-toast-out{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(100%) scale(.95)}}@keyframes pft-pulse{0%,to{opacity:.4}50%{opacity:.9}}.sidebar-loading-row{display:flex;align-items:center;gap:var(--space-2);color:var(--sidebar-text-muted);font-size:.72rem;padding:.3rem .5rem}.sidebar-loading-dot{width:6px;height:6px;border-radius:var(--radius-full);background-color:var(--sidebar-accent);animation:pft-pulse 1.2s ease-in-out infinite}.pft-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}.pft-page-title{margin:0;color:var(--color-brand);font-size:var(--font-size-2xl);font-weight:700}.pft-page-subtitle{margin:.25rem 0 0;color:var(--color-gray-500);font-size:var(--font-size-base)}.pft-card{background-color:#fff;border-radius:var(--radius-lg);border:1px solid var(--border-light)}.pft-card-padded{background-color:#fff;border-radius:var(--radius-lg);border:1px solid var(--border-light);padding:1.5rem}.pft-form-label{display:block;margin-bottom:.4rem;font-size:var(--font-size-base);font-weight:600;color:#555}.pft-form-group{margin-bottom:1rem}.pft-input{width:100%;box-sizing:border-box;padding:.6rem .75rem;border:1px solid #ddd;border-radius:var(--radius-md);font-size:var(--font-size-sm);outline:none;background-color:#fff;color:#333;transition:border-color var(--transition-fast)}.pft-input:focus{border-color:var(--color-brand)}.pft-select{width:100%;box-sizing:border-box;padding:.6rem .75rem;border:1px solid #ddd;border-radius:var(--radius-md);font-size:var(--font-size-sm);outline:none;background-color:#fff;color:#333;cursor:pointer}.pft-select:focus{border-color:var(--color-brand)}.pft-textarea{width:100%;box-sizing:border-box;padding:.6rem .75rem;border:1px solid #ddd;border-radius:var(--radius-md);font-size:var(--font-size-sm);outline:none;background-color:#fff;color:#333;resize:vertical}.pft-textarea:focus{border-color:var(--color-brand)}.pft-btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem 1.25rem;background-color:var(--color-brand);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;font-weight:600;font-size:var(--font-size-sm);transition:opacity var(--transition-fast),background-color var(--transition-fast)}.pft-btn-primary:hover:not(:disabled){opacity:.92}.pft-btn-primary:disabled{opacity:.55;cursor:not-allowed}.pft-btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem 1rem;background-color:var(--color-brand-50);color:var(--color-brand);border:1px solid #e0d4f0;border-radius:var(--radius-md);cursor:pointer;font-weight:600;font-size:var(--font-size-sm);transition:background-color var(--transition-fast),color var(--transition-fast)}.pft-btn-secondary:hover:not(:disabled){background-color:#eadef8}.pft-btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem 1rem;background:none;color:var(--color-gray-600);border:1px solid #ddd;border-radius:var(--radius-md);cursor:pointer;font-weight:500;font-size:var(--font-size-sm);transition:background-color var(--transition-fast)}.pft-btn-ghost:hover:not(:disabled){background-color:var(--color-gray-100)}.pft-btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem 1rem;background-color:#fee2e2;color:#dc2626;border:1px solid #fca5a5;border-radius:var(--radius-md);cursor:pointer;font-weight:600;font-size:var(--font-size-sm);transition:background-color var(--transition-fast)}.pft-btn-danger:hover:not(:disabled){background-color:#fecaca}.pft-btn-icon{background:none;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:.25rem;border-radius:var(--radius-sm);color:var(--color-gray-500);transition:color var(--transition-fast),background-color var(--transition-fast)}.pft-btn-icon:hover{color:var(--color-brand);background-color:var(--color-brand-50)}.pft-table-wrapper{background-color:#fff;border-radius:var(--radius-lg);border:1px solid var(--border-light);overflow:hidden}.pft-table{width:100%;border-collapse:collapse}.pft-table th{padding:.75rem 1.25rem;text-align:left;font-size:var(--font-size-xs);font-weight:700;color:#888;text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid #ede8f5;background-color:#faf7ff}.pft-table td{padding:.75rem 1.25rem;font-size:var(--font-size-sm);color:#333;border-bottom:1px solid #f5f0fa}.pft-table tbody tr{transition:background-color var(--transition-fast)}.pft-table tbody tr:hover{background-color:#faf7ff}.pft-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000073;z-index:2000;display:flex;align-items:center;justify-content:center;padding:1rem}.pft-modal-box{background-color:#fff;border-radius:var(--radius-lg);width:100%;max-width:500px;padding:1.75rem;box-shadow:0 20px 60px #0003;box-sizing:border-box}.pft-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .6rem;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:600;white-space:nowrap}.pft-badge-purple{background-color:var(--color-brand-50);color:var(--color-brand)}.pft-badge-green{background-color:#e8f5e9;color:#2e7d32}.pft-badge-orange{background-color:#fff3e0;color:#e65100}.pft-badge-blue{background-color:#e8f0fe;color:#1a73e8}.pft-badge-red{background-color:#fee2e2;color:#dc2626}.pft-perm-row{background-color:#fff;border-radius:var(--radius-lg);border:1px solid var(--border-light);overflow:hidden}.pft-perm-header-btn{display:flex;align-items:center;gap:.75rem;width:100%;padding:1rem 1.25rem;background:none;border:none;cursor:pointer;text-align:left;transition:background-color var(--transition-fast)}.pft-perm-header-btn:hover{background-color:#faf7ff}.pft-space-tag{display:inline-flex;align-items:center;gap:.4rem;background-color:var(--color-brand-50);color:var(--color-brand);border-radius:var(--radius-full);padding:.3rem .65rem .3rem .85rem;font-size:var(--font-size-sm);font-weight:500}.pft-space-tag-remove{background:none;border:none;cursor:pointer;color:#c084fc;display:flex;padding:0;margin-left:.15rem;transition:color var(--transition-fast)}.pft-space-tag-remove:hover{color:var(--color-danger)}.pft-space-option-btn{background-color:#fff;color:var(--color-brand);border:1px solid #c084fc;border-radius:var(--radius-full);padding:.3rem .85rem;font-size:var(--font-size-sm);font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;transition:background-color var(--transition-fast)}.pft-space-option-btn:hover:not(:disabled){background-color:var(--color-brand-50)}.pft-space-option-btn:disabled{background-color:#e8e0f0;cursor:default}.pft-add-dashed-btn{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--font-size-sm);color:var(--color-brand);background:none;border:1px dashed #c084fc;border-radius:var(--radius-md);padding:.45rem .9rem;cursor:pointer;font-weight:500;transition:background-color var(--transition-fast)}.pft-add-dashed-btn:hover{background-color:var(--color-brand-50)}.pft-modal-dark-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0000008c;z-index:2000;display:flex;align-items:center;justify-content:center}.pft-modal-dark-overlay-top{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0000008c;z-index:9999;display:flex;align-items:center;justify-content:center}.pft-modal-dark-box{background-color:#1e1330;border-radius:var(--radius-lg);width:100%;max-width:420px;padding:1.75rem;box-shadow:0 24px 64px #00000080;border:1px solid rgba(255,255,255,.08);box-sizing:border-box}.pft-modal-dark-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid rgba(255,255,255,.08)}.pft-modal-dark-body-centered{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1rem;margin-bottom:1.5rem}.pft-modal-dark-icon-wrap{width:48px;height:48px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center}.pft-modal-dark-icon-danger{background-color:#dc262626}.pft-modal-dark-icon-warning{background-color:#facc1526}.pft-modal-actions{display:flex;gap:.75rem;justify-content:flex-end}.pft-modal-dark-title{margin:0 0 .5rem;color:#fff;font-size:var(--font-size-md);font-weight:700}.pft-modal-dark-text{margin:0;color:#ffffff8c;font-size:var(--font-size-sm);line-height:1.5}.pft-modal-dark-input{width:100%;padding:.6rem .75rem;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.12);font-size:var(--font-size-sm);color:#fff;background-color:#ffffff0f;outline:none;box-sizing:border-box;transition:border-color var(--transition-fast)}.pft-modal-dark-input:focus{border-color:var(--color-brand-light, #fed202)}.pft-modal-dark-btn-ghost{background-color:transparent;color:#fff9;border:1px solid rgba(255,255,255,.15);padding:.6rem 1.1rem;border-radius:var(--radius-md);cursor:pointer;font-weight:600;font-size:var(--font-size-sm);transition:background-color var(--transition-fast),color var(--transition-fast)}.pft-modal-dark-btn-ghost:hover:not(:disabled){background-color:#ffffff14;color:#fff}.pft-modal-dark-btn-primary{background-color:var(--color-brand);color:#fff;border:none;padding:.6rem 1.25rem;border-radius:var(--radius-md);cursor:pointer;font-weight:700;font-size:var(--font-size-sm);transition:opacity var(--transition-fast)}.pft-modal-dark-btn-primary:hover:not(:disabled){opacity:.92}.pft-modal-dark-btn-primary:disabled{opacity:.55;cursor:default}.pft-modal-dark-btn-danger{background-color:#dc2626;color:#fff;border:none;padding:.6rem 1.25rem;border-radius:var(--radius-md);cursor:pointer;font-weight:700;font-size:var(--font-size-sm);transition:opacity var(--transition-fast)}.pft-modal-dark-btn-danger:hover:not(:disabled){opacity:.92}.pft-modal-dark-btn-danger:disabled{opacity:.55;cursor:default}.pft-modal-dark-close-btn{background:none;border:none;color:#ffffff80;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:.25rem;transition:color var(--transition-fast)}.pft-modal-dark-close-btn:hover{color:#fff}.pft-floating-menu{position:fixed;background-color:#2a1d3e;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);box-shadow:0 8px 24px #00000059;z-index:9999;overflow:hidden}.pft-floating-menu-header{padding:.35rem .85rem .15rem;font-size:var(--font-size-2xs);color:#fff6;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.pft-floating-menu-btn{display:flex;align-items:center;gap:.5rem;width:100%;background:none;border:none;color:#e0d8f0;padding:.55rem .85rem;cursor:pointer;font-size:var(--font-size-xs);text-align:left;transition:background-color var(--transition-fast)}.pft-floating-menu-btn:hover{background-color:var(--sidebar-menu-hover)}.pft-floating-menu-btn-delete{color:#f87171!important}.pft-toast-container{position:fixed;bottom:var(--space-5);right:var(--space-5);z-index:var(--z-toast);display:flex;flex-direction:column-reverse;gap:var(--space-2);pointer-events:none}.pft-toast-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);box-shadow:var(--shadow-overlay);color:#fff;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);max-width:380px;min-width:280px;pointer-events:auto}.pft-workspace-card{background-color:#fff;border-radius:var(--radius-lg);padding:1.5rem;cursor:pointer;border:1px solid var(--border-default);position:relative;transition:transform var(--transition-fast),box-shadow var(--transition-fast);box-shadow:0 1px 4px #4b30630f}.pft-workspace-card:hover{box-shadow:0 4px 16px #4b30631f;transform:translateY(-2px)}.pft-list-card{background-color:#fff;border-radius:10px;padding:1.1rem;border:1px solid var(--border-default);box-shadow:0 1px 3px #4b30630d;transition:box-shadow var(--transition-fast);cursor:pointer;position:relative}.pft-list-card:hover{box-shadow:0 4px 12px #4b30631a}.pft-doc-page-panel{width:220px;flex-shrink:0;background-color:#fff;border-radius:10px;border:1px solid var(--border-default);overflow:hidden}.pft-doc-page-item{display:flex;align-items:center;gap:.4rem;padding:.35rem .45rem;border-radius:var(--radius-sm);cursor:pointer;margin-bottom:.1rem;transition:background-color var(--transition-fast)}.pft-doc-page-item:hover:not([data-active=true]){background-color:var(--color-gray-50)}.pft-doc-page-item[data-active=true]{background-color:#eef0f2}.pft-simple-task-row{display:grid;grid-template-columns:1fr 120px 120px 70px 80px;align-items:center;gap:.5rem;min-height:36px;padding:.25rem 1.25rem;border-bottom:1px solid #f1f2f4;background-color:#fff;font-size:var(--font-size-sm);cursor:pointer;transition:background-color var(--transition-fast)}.pft-simple-task-row:hover{background-color:#f9fafb}.pft-simple-task-header{display:grid;grid-template-columns:1fr 120px 120px 70px 80px;gap:.5rem;padding:.3rem 1.25rem;background-color:#f9fafb;border-bottom:1px solid #e5e7eb;font-size:var(--font-size-2xs);color:#9ca3af;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.pft-select-sm{border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:.22rem .45rem;font-size:var(--font-size-xs);color:var(--color-gray-600);outline:none;background-color:#fff;cursor:pointer}.pft-grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.pft-grid-cards-sm{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem}.pft-form-stack{display:flex;flex-direction:column;gap:1rem}.pft-dropdown-item{display:flex;align-items:center;gap:.5rem;width:100%;background:none;border:none;padding:.45rem .75rem;cursor:pointer;font-size:var(--font-size-xs);color:#111827;text-align:left;transition:background-color var(--transition-fast)}.pft-dropdown-item:hover{background-color:#f7f8fa}.pft-tab-btn{display:flex;align-items:center;gap:.4rem;padding:.45rem .75rem;cursor:pointer;font-size:var(--font-size-sm);color:#6b7280;border-bottom:2px solid transparent;font-weight:500;transition:color var(--transition-fast),border-color var(--transition-fast);white-space:nowrap;background:none;border-top:none;border-left:none;border-right:none}.pft-tab-btn:hover{color:var(--color-brand)}.pft-tab-btn[data-active=true]{color:var(--color-brand);border-bottom-color:var(--color-brand);font-weight:600}.pft-task-row{display:grid;grid-template-columns:28px 1fr 100px 130px 110px 90px 28px;align-items:center;gap:.5rem;min-height:34px;padding:.15rem .75rem;border-bottom:1px solid #f1f2f4;background-color:#fff;cursor:pointer;transition:background-color var(--transition-fast)}.pft-task-row:hover{background-color:#f7f8fa}.pft-kanban-card{background-color:#fff;border-radius:var(--radius-md);padding:.75rem;box-shadow:0 1px 3px #4b306314;border:1px solid #eef0f2;cursor:pointer;margin-bottom:.5rem;transition:box-shadow var(--transition-fast)}.pft-kanban-card:hover{box-shadow:0 3px 10px #4b306321}.pft-space-task-row{display:grid;grid-template-columns:1fr 140px 120px 130px 70px 90px;align-items:center;gap:.5rem;min-height:36px;padding:.2rem 1rem;border-bottom:1px solid #f1f2f4;background-color:#fff;cursor:pointer;transition:background-color var(--transition-fast)}.pft-space-task-row:hover{background-color:#f7f8fa}.pft-space-task-header{display:grid;grid-template-columns:1fr 140px 120px 130px 70px 90px;gap:.5rem;padding:.35rem 1rem;background-color:#fafbfc;border-bottom:1px solid #e5e7eb;font-size:var(--font-size-2xs);font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.pft-date-cell-label{font-size:var(--font-size-sm);cursor:pointer;display:inline-block;padding-bottom:1px;transition:color var(--transition-fast)}.pft-date-cell-label:hover{color:var(--color-brand)!important}.pft-breadcrumb-link{cursor:pointer;transition:color var(--transition-fast)}.pft-breadcrumb-link:hover{color:var(--color-brand)!important}.pft-kanban-add-btn{display:flex;align-items:center;gap:.35rem;width:100%;background:none;border:none;padding:.35rem .4rem;cursor:pointer;color:#6b7280;font-size:var(--font-size-xs);border-radius:4px;transition:background-color var(--transition-fast),color var(--transition-fast)}.pft-kanban-add-btn:hover{background-color:#4b30630f;color:var(--color-brand)}.pft-show-closed-btn{display:flex;align-items:center;gap:.4rem;background:none;border:none;cursor:pointer;color:#9ca3af;font-size:var(--font-size-xs);padding:.5rem .75rem;border-top:1px solid #f1f2f4;width:100%;transition:color var(--transition-fast)}.pft-show-closed-btn:hover{color:var(--color-brand)}.pft-taskmodal-close-btn{position:absolute;top:.75rem;right:.75rem;background-color:#0000000d;border:none;border-radius:6px;cursor:pointer;color:#6b7280;padding:.35rem;display:flex;z-index:10;transition:background-color var(--transition-fast)}.pft-taskmodal-close-btn:hover{background-color:#0000001a}.pft-btn-delete-hover{background:none;border:none;cursor:pointer;color:#ddd;display:flex;transition:color var(--transition-fast)}.pft-btn-delete-hover:hover{color:#ef4444!important}.pft-btn-subtle-icon{background:none;border:none;cursor:pointer;color:#9ca3af;padding:.3rem;border-radius:4px;display:flex;align-items:center;transition:color var(--transition-fast)}.pft-btn-subtle-icon:hover{color:var(--color-brand)}.pft-btn-comment-action{background:none;border:none;cursor:pointer;color:#9ca3af;padding:.15rem;border-radius:4px;display:flex;transition:color var(--transition-fast)}.pft-btn-comment-action:hover{color:var(--color-brand)}.pft-btn-comment-action.danger:hover{color:#ef4444}.pft-view-type-card{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;background-color:#fff;border:1px solid var(--border-default);border-radius:10px;padding:1rem;cursor:pointer;text-align:left;transition:border-color var(--transition-fast),background-color var(--transition-fast)}.pft-view-type-card:hover{border-color:var(--color-brand);background-color:#4b306308}.pft-unscheduled-row{padding:.4rem .8rem;font-size:var(--font-size-xs);color:#374151;cursor:pointer;border-bottom:1px solid #f7f8fa;display:flex;align-items:center;gap:.35rem;transition:background-color var(--transition-fast)}.pft-unscheduled-row:hover{background-color:#f7f8fa}.pft-overdue-row{padding:.4rem .8rem;font-size:var(--font-size-xs);color:#374151;cursor:pointer;border-bottom:1px solid #f7f8fa;display:flex;align-items:center;gap:.35rem;transition:background-color var(--transition-fast)}.pft-overdue-row:hover{background-color:#fff8f8}.pft-team-task-item{padding:.3rem .2rem .3rem 1.4rem;font-size:var(--font-size-xs);color:#b4a8c4;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color var(--transition-fast)}.pft-team-task-item:hover{color:#fff}.pft-workspace-card{background-color:#fff;border-radius:12px;border:1px solid var(--border-default);padding:1.25rem 1.5rem;margin-bottom:1rem;cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.pft-workspace-card:hover{border-color:var(--color-brand);box-shadow:0 4px 16px #4b30631a}
