.tf-tree{text-align:center}.tf-tree *{box-sizing:border-box;margin:0;padding:0}.tf-tree ul{display:inline-flex;position:relative;padding-top:20px;transition:all .5s}.tf-tree li{display:flex;flex-direction:column;align-items:center;position:relative;padding:20px 5px 0}.tf-tree li:before,.tf-tree li:after{content:"";position:absolute;top:0;right:50%;border-top:2px solid #ccc;width:50%;height:20px}.tf-tree li:after{right:auto;left:50%;border-left:2px solid #ccc}.tf-tree li:only-child:after,.tf-tree li:only-child:before{display:none}.tf-tree li:only-child{padding-top:0}.tf-tree li:first-child:before,.tf-tree li:last-child:after{border:0 none}.tf-tree li:last-child:before{border-right:2px solid #ccc;border-radius:0 5px 0 0}.tf-tree li:first-child:after{border-radius:5px 0 0}.tf-tree ul ul:before{content:"";position:absolute;top:0;left:50%;border-left:2px solid #ccc;width:0;height:20px;transform:translate(-1px)}.tf-nc{position:relative;display:inline-block}.dept-card{background:#fff;border:2px solid #1a73e8;border-radius:4px;padding:10px 15px;min-width:150px;box-shadow:0 2px 5px #0000000d;display:flex;flex-direction:column;align-items:center;gap:8px;transition:all .3s ease}.dept-card:hover{background:#f8faff;box-shadow:0 4px 8px #0000001a}.dept-name{font-weight:500;color:#333;font-size:14px;text-align:center}.dept-actions{display:flex;gap:8px;opacity:0;transition:opacity .3s}.dept-card:hover .dept-actions{opacity:1}.dept-actions button{background:none;border:none;cursor:pointer;color:#666;padding:2px;display:flex;align-items:center;justify-content:center;border-radius:4px}.dept-actions button:hover{background:#eef2f6;color:#1a73e8}.dept-actions button.text-danger:hover{background:#fee;color:#dc3545}:root{--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-display: "Outfit", var(--font-sans);--hue: 250;--primary: hsl(var(--hue), 72%, 58%);--primary-hover: hsl(var(--hue), 72%, 50%);--primary-light: hsl(var(--hue), 25%, 95%);--primary-glow: hsla(var(--hue), 72%, 58%, .15);--background: hsl(220, 25%, 97%);--surface: hsl(0, 0%, 100%);--surface-border: hsl(220, 15%, 90%);--text: hsl(224, 71%, 4%);--text-muted: hsl(220, 10%, 45%);--success: hsl(142, 72%, 29%);--success-bg: hsl(142, 70%, 94%);--success-border: hsl(142, 60%, 86%);--warning: hsl(38, 92%, 35%);--warning-bg: hsl(48, 100%, 94%);--warning-border: hsl(40, 90%, 86%);--danger: hsl(0, 84%, 40%);--danger-bg: hsl(0, 100%, 95%);--danger-border: hsl(0, 90%, 88%);--info: hsl(199, 89%, 36%);--info-bg: hsl(204, 100%, 95%);--info-border: hsl(200, 80%, 88%);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .05), 0 2px 4px -1px rgba(0, 0, 0, .03);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .04), 0 4px 6px -2px rgba(0, 0, 0, .02);--shadow-glow: 0 0 20px hsla(var(--hue), 72%, 58%, .2);--transition-fast: .15s ease;--transition-normal: .25s cubic-bezier(.4, 0, .2, 1)}[data-theme=dark]{--background: hsl(224, 25%, 10%);--surface: hsl(224, 20%, 14%);--surface-border: hsl(224, 15%, 20%);--text: hsl(220, 15%, 95%);--text-muted: hsl(220, 10%, 65%);--primary-light: hsl(var(--hue), 25%, 20%);--success: hsl(142, 60%, 45%);--success-bg: hsla(142, 70%, 15%, .3);--success-border: hsla(142, 60%, 30%, .4);--warning: hsl(45, 90%, 55%);--warning-bg: hsla(45, 90%, 15%, .2);--warning-border: hsla(45, 80%, 30%, .4);--danger: hsl(0, 80%, 60%);--danger-bg: hsla(0, 80%, 15%, .2);--danger-border: hsla(0, 70%, 30%, .4);--info: hsl(199, 80%, 55%);--info-bg: hsla(199, 80%, 15%, .2);--info-border: hsla(199, 70%, 30%, .4)}*{box-sizing:border-box;margin:0;padding:0;font-family:var(--font-sans)}body{background-color:var(--background);color:var(--text);overflow-x:hidden;line-height:1.5;transition:background-color var(--transition-normal),color var(--transition-normal)}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}a{text-decoration:none;color:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--background)}::-webkit-scrollbar-thumb{background:var(--surface-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.app-container{display:flex;min-height:100vh}.main-content{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow-y:auto}.content-body{padding:2rem;max-width:1600px;width:100%;margin:0 auto}.sidebar{width:260px;background-color:var(--surface);border-right:1px solid var(--surface-border);display:flex;flex-direction:column;transition:background-color var(--transition-normal),border-right var(--transition-normal)}.sidebar-header{padding:1.5rem;display:flex;align-items:center;gap:.75rem;border-bottom:1px solid var(--surface-border)}.logo-icon{background:linear-gradient(135deg,var(--primary),hsl(var(--hue),85%,65%));color:#fff;width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-glow)}.logo-text{font-family:var(--font-display);font-weight:700;font-size:1.15rem;background:linear-gradient(to right,var(--text),var(--primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.sidebar-menu{flex:1;padding:1.5rem 1rem;display:flex;flex-direction:column;gap:.35rem}.menu-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:var(--radius-md);font-weight:500;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.menu-item:hover,.menu-item.active{background-color:var(--primary-light);color:var(--primary)}.sidebar-footer{padding:1.25rem 1rem;border-top:1px solid var(--surface-border)}.user-profile{display:flex;align-items:center;gap:.75rem;padding:.5rem;border-radius:var(--radius-md)}.avatar{background-color:var(--primary-light);color:var(--primary);width:36px;height:36px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-weight:600;font-family:var(--font-display)}.user-info{display:flex;flex-direction:column;min-width:0}.user-name{font-weight:600;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.75rem;color:var(--text-muted)}.navbar{height:70px;background-color:var(--surface);border-bottom:1px solid var(--surface-border);display:flex;align-items:center;justify-content:space-between;padding:0 2rem;position:sticky;top:0;z-index:10}.version-badge{font-family:var(--font-display);font-size:.75rem;font-weight:600;background-color:var(--primary-light);color:var(--primary);padding:.25rem .6rem;border-radius:var(--radius-full);margin-left:.5rem;letter-spacing:.05em}.card{background-color:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.card-title{font-family:var(--font-display);font-weight:700;font-size:1.15rem;margin-bottom:1rem}.badge{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.badge-success{background-color:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.badge-warning{background-color:var(--warning-bg);color:var(--warning);border:1px solid var(--warning-border)}.badge-danger{background-color:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border)}.badge-info{background-color:var(--info-bg);color:var(--info);border:1px solid var(--info-border)}.table-container{overflow-x:auto;border:1px solid var(--surface-border);border-radius:var(--radius-lg);background-color:var(--surface);box-shadow:var(--shadow-sm)}table{width:100%;border-collapse:collapse;text-align:left}th{background-color:var(--primary-light);color:var(--text);font-weight:600;padding:1rem;font-size:.875rem;border-bottom:1px solid var(--surface-border)}td{padding:1rem;border-bottom:1px solid var(--surface-border);font-size:.875rem}tr:last-child td{border-bottom:none}tr:hover td{background-color:var(--primary-light)}.form-group{margin-bottom:1.25rem;display:flex;flex-direction:column;gap:.35rem}.form-label{font-weight:500;font-size:.875rem;color:var(--text-muted)}.form-control{padding:.65rem .9rem;border:1px solid var(--surface-border);border-radius:var(--radius-md);background-color:var(--surface);outline:none;transition:all var(--transition-fast)}.form-control:focus{border-color:var(--primary);box-shadow:var(--shadow-glow)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem 1.25rem;border-radius:var(--radius-md);font-weight:600;cursor:pointer;border:none;transition:all var(--transition-fast)}.btn-primary{background-color:var(--primary);color:#fff;box-shadow:var(--shadow-glow)}.btn-primary:hover{background-color:var(--primary-hover)}.btn-secondary{background-color:var(--surface-border);color:var(--text)}.btn-secondary:hover{background-color:var(--text-muted);color:#fff}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn var(--transition-fast)}.modal-content{background-color:var(--surface);border-radius:var(--radius-lg);max-width:500px;width:90%;padding:2rem;position:relative;box-shadow:var(--shadow-lg);animation:scaleUp var(--transition-fast)}.drawer{position:fixed;top:0;right:0;height:100vh;width:450px;background-color:var(--surface);box-shadow:-10px 0 30px #0000001a;z-index:100;padding:2rem;display:flex;flex-direction:column;animation:slideIn var(--transition-normal)}.quick-tags-container{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem;margin-bottom:1rem}.quick-tag-btn{background-color:var(--background);border:1px solid var(--surface-border);padding:.4rem .8rem;border-radius:var(--radius-full);font-size:.8rem;cursor:pointer;transition:all var(--transition-fast)}.quick-tag-btn:hover,.quick-tag-btn.active{background-color:var(--primary-light);border-color:var(--primary);color:var(--primary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}
