:root{--bg: #ffffff;--bg2: #ffffff;--bg3: #f1f5f9;--border: rgba(15, 23, 42, .1);--border2: rgba(15, 23, 42, .18);--text: #0f172a;--text2: #475569;--text3: #94a3b8;--green: #059669;--green-dim: rgba(5, 150, 105, .12);--green-border: rgba(5, 150, 105, .4);--red: #dc2626;--red-dim: rgba(220, 38, 38, .1);--amber: #d97706;--amber-dim: rgba(217, 119, 6, .12);--blue: #2563eb;--blue-dim: rgba(37, 99, 235, .1);--accent: #059669;--accent2: #0891b2;--brand-gradient: linear-gradient(90deg, var(--accent), var(--accent2));--brand-gradient-135: linear-gradient(135deg, var(--accent), var(--accent2));--hover-bg: rgba(15, 23, 42, .04);--row-hover: rgba(15, 23, 42, .03);--focus-ring: rgba(5, 150, 105, .15);--selection: rgba(5, 150, 105, .18);--dot-halo: rgba(15, 23, 42, .06);--header-bg: rgba(255, 255, 255, .8);--glow-1: rgba(8, 145, 178, .07);--glow-2: rgba(5, 150, 105, .06);--user-bubble-bg: linear-gradient(135deg, rgba(5, 150, 105, .12), rgba(8, 145, 178, .1));--user-bubble-border: rgba(5, 150, 105, .25);--on-accent: #ffffff;--shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 8px 24px rgba(15, 23, 42, .08);--radius: 14px}@font-face{font-family:SVN-Poppins;font-weight:300;font-style:normal;font-display:swap;src:url(/fonts/SVN-PoppinsLight.woff2) format("woff2")}@font-face{font-family:SVN-Poppins;font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/SVN-Poppins.woff2) format("woff2")}@font-face{font-family:SVN-Poppins;font-weight:500;font-style:normal;font-display:swap;src:url(/fonts/SVN-PoppinsMedium.woff2) format("woff2")}@font-face{font-family:SVN-Poppins;font-weight:600;font-style:normal;font-display:swap;src:url(/fonts/SVN-PoppinsSemiBold.woff2) format("woff2")}@font-face{font-family:SVN-Poppins;font-weight:700;font-style:normal;font-display:swap;src:url(/fonts/SVN-PoppinsBold.woff2) format("woff2")}@font-face{font-family:SVN-Poppins;font-weight:900;font-style:normal;font-display:swap;src:url(/fonts/SVN-PoppinsBlack.woff2) format("woff2")}:root{--font-sans: "SVN-Poppins";--font-mono: "SVN-Poppins"}*{box-sizing:border-box;margin:0;padding:0}::selection{background:var(--selection)}html{scroll-behavior:smooth}body{background:radial-gradient(1200px 600px at 85% -10%,var(--glow-1),transparent 60%),radial-gradient(900px 500px at -10% 110%,var(--glow-2),transparent 55%),var(--bg);color:var(--text);font-family:var(--font-sans);font-size:15.5px;font-weight:500;line-height:1.5;min-height:100vh;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}.mono{font-family:var(--font-mono)}.green{color:var(--green)}.red{color:var(--red)}.amber{color:var(--amber)}.blue{color:var(--blue)}.section-label{font-size:12.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--text2);font-weight:700;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--border)}.page{animation:pageIn .28s ease}@keyframes pageIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:8px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--text3);background-clip:padding-box}.app-layout{height:100vh;overflow:hidden}#app-main{height:100vh;min-width:0;min-height:0}.app-sider{background:var(--bg2)!important;border-right:1px solid var(--border);height:100vh;overflow:auto}.app-sider.ant-layout-sider-collapsed .logo{justify-content:center;padding-left:14px;padding-right:14px}.app-drawer-body{display:flex;flex-direction:column;height:100%;background:var(--bg2)}.app-sider .logo,.app-drawer-body .logo{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:18px 14px 18px 22px;border-bottom:1px solid var(--border);margin-bottom:8px;overflow:hidden;white-space:nowrap}.app-sider .logo .logo-text,.app-drawer-body .logo .logo-text{min-width:0;overflow:hidden}.app-sider .logo .logo-text .name,.app-drawer-body .logo .logo-text .name{font-size:18px}.app-sider .logo .name,.app-drawer-body .logo .name{font-family:var(--font-mono);font-size:17px;font-weight:500;letter-spacing:-.5px;background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.app-sider .logo .sub,.app-drawer-body .logo .sub{font-size:11px;color:var(--text3);margin-top:3px;letter-spacing:.04em}.app-sider .sider-footer,.app-drawer-body .sider-footer{margin-top:auto;padding:16px 22px;border-top:1px solid var(--border)}.app-sider .sider-collapse-btn,.app-drawer-body .sider-collapse-btn{flex-shrink:0;color:var(--text2)}.app-sider .sider-collapse-btn:hover,.app-drawer-body .sider-collapse-btn:hover{color:var(--text);background:var(--hover-bg)}.api-status{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--text2);white-space:nowrap}.api-status .dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 3px var(--dot-halo)}.api-status .dot.ok{background:var(--green);box-shadow:0 0 0 3px var(--green-dim)}.api-status .dot.warn{background:var(--amber);box-shadow:0 0 0 3px var(--amber-dim)}.app-header{display:flex;justify-content:space-between;align-items:center;padding:0 32px!important;height:64px;background:var(--header-bg)!important;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.app-header .header-left{display:flex;align-items:center;gap:10px;min-width:0}.app-header .menu-trigger{font-size:18px;width:38px;height:38px;flex-shrink:0}.app-header .page-title{font-size:20px;font-weight:700;letter-spacing:-.01em;color:var(--text)}.app-header .header-right{display:flex;align-items:center;flex-shrink:0}.app-header .auth-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.app-header .user-chip{display:flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;border:1px solid var(--border);border-radius:20px;background:var(--bg2);cursor:pointer;transition:background .15s,border-color .15s}.app-header .user-chip:hover{background:var(--hover-bg);border-color:var(--border2)}.app-header .user-chip-avatar{background:var(--brand-gradient-135);flex-shrink:0}.app-header .user-chip-name{font-size:13px;font-weight:600;color:var(--text);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 720px){.app-header .user-chip-name{max-width:90px}}.app-content{padding:28px 32px;overflow-y:auto}@media (max-width: 720px){.app-header,.app-content{padding-left:18px!important;padding-right:18px!important}}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:22px}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:22px}@media (max-width: 1100px){.metrics{grid-template-columns:repeat(2,1fr)}.grid2,.grid3{grid-template-columns:1fr}}@media (max-width: 720px){.metrics{grid-template-columns:1fr}}.metric-card{position:relative;overflow:hidden}.metric-card:before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:var(--brand-gradient);opacity:.85}.metric-card .mc-label{font-size:12.5px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}.metric-card .mc-val{font-size:30px;font-weight:700;font-family:var(--font-mono);margin-bottom:4px;letter-spacing:-.02em}.metric-card .mc-sub{font-size:12.5px;font-weight:500;color:var(--text3)}.card-title{font-size:13.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text);font-weight:700;display:flex;justify-content:space-between;align-items:center}.card-title .ct-hint{color:var(--text3);font-size:11px;text-transform:none;letter-spacing:0;font-weight:400}.task-item{display:flex;align-items:flex-start;gap:11px;padding:11px 0;border-bottom:1px solid var(--border)}.task-item:last-child{border-bottom:none}.task-item .task-check{width:18px;height:18px;border-radius:6px;border:1.5px solid var(--border2);flex-shrink:0;margin-top:1px;display:flex;align-items:center;justify-content:center;font-size:11px;cursor:pointer;transition:all .15s}.task-item .task-check:hover{border-color:var(--green)}.task-item .task-check.done{background:var(--green);border-color:var(--green);color:var(--on-accent)}.task-item .task-info{flex:1}.task-item .task-title{font-size:14.5px;color:var(--text);margin-bottom:3px;font-weight:600}.task-item .task-title.done-text{text-decoration:line-through;color:var(--text3)}.task-item .task-meta{font-size:12.5px;color:var(--text3);font-weight:500}.kanban-card{padding:9px 0;border-bottom:1px solid var(--border)}.kanban-card:last-child{border-bottom:none}.kanban-card .kc-title{font-size:14.5px;font-weight:600;color:var(--text);margin-bottom:3px}.kanban-card .kc-meta{font-size:12.5px;font-weight:500;color:var(--text3);margin-bottom:7px}.kanban-card .kc-actions{display:flex;gap:5px}.empty-col{font-size:11px;color:var(--text3);padding:8px;text-align:center}.form-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:14px}.form-group{display:flex;flex-direction:column;gap:5px}.form-group label{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.05em}@media (max-width: 720px){.form-grid{grid-template-columns:1fr!important}}.result-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);font-size:14.5px;font-weight:500}.result-row .rl{color:var(--text2);font-weight:500}.result-row span:last-child{font-family:var(--font-mono)}.result-row:last-child{border-bottom:none;font-size:16.5px;font-weight:700;margin-top:6px;padding-top:14px;border-top:1px dashed var(--border2)}.pl-empty{color:var(--text3);font-size:12px;padding:20px 0;text-align:center}.note-box{margin-top:12px;padding:11px 13px;background:var(--bg3);border-radius:9px;font-size:12.5px;color:var(--text2);line-height:1.6}.note-box strong{color:var(--amber)}.info-box{margin-top:16px;padding:12px;background:var(--bg3);border-radius:6px;font-size:12px;color:var(--text3);line-height:1.6}.info-box strong{color:var(--amber)}.quick-notes{margin-top:10px;display:flex;flex-direction:column;gap:6px}.quick-notes .qn-row{display:flex;gap:8px;align-items:flex-start;padding:6px 10px;background:var(--bg3);border-radius:6px;font-size:12px}.quick-notes .qn-row .qn-time{color:var(--text3);font-family:var(--font-mono);flex-shrink:0}.quick-notes .qn-row .qn-text{color:var(--text2)}.team-loading{display:flex;justify-content:center;align-items:center;min-height:320px}.member-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:28px;max-width:1044px;margin:0 auto;padding:48px 0}@media (max-width: 720px){.member-grid{padding:28px 0}}.member-card{position:relative;width:240px;flex:0 0 auto;display:flex;flex-direction:column;align-items:center;padding:0 16px 16px;background:var(--bg2);border:1px solid var(--border);border-radius:14px;box-shadow:0 2px 6px #0f172a14,0 12px 32px #0f172a24;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}.member-card:hover{transform:translateY(-4px);box-shadow:0 6px 16px #0f172a1f,0 24px 56px #0f172a33}.member-card.is-inactive{opacity:.6}.member-card .mc-banner{width:100%;height:64px;background:var(--brand-gradient-135)}.member-card .mc-avatar{margin-top:-42px;padding:4px;background:var(--bg2);border-radius:50%;box-shadow:0 2px 6px #0f172a1f}.member-card .mc-name{margin-top:10px;font-size:15px;font-weight:700;color:var(--blue);text-align:center;text-transform:uppercase;letter-spacing:.02em}.member-card .mc-role{margin-top:2px;font-size:13px;font-weight:600;color:var(--text);text-transform:uppercase;letter-spacing:.04em}.member-card .mc-info{width:100%;margin-top:14px;display:flex;flex-direction:column;gap:9px}.member-card .mc-row{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--text2)}.member-card .mc-row .anticon{color:var(--text3);font-size:14px;flex-shrink:0}.member-card .mc-row .mc-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-card .mc-footer{width:100%;margin-top:16px;padding:9px 0;background:var(--bg3);border:none;border-radius:6px;color:var(--blue);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s ease}.member-card .mc-footer:hover{background:var(--blue-dim)}.profile-detail{max-width:1080px;margin:0 auto;padding:24px 0 48px}.pd-card{background:var(--bg2);border:1px solid var(--border);border-radius:14px;box-shadow:0 2px 6px #0f172a14,0 12px 32px #0f172a1f;padding:36px 48px 44px}.pd-head{text-align:center;margin-bottom:8px}.pd-head .ant-avatar{box-shadow:0 2px 8px #0f172a24}.pd-name{margin:16px 0 0;font-size:26px;font-weight:700;color:var(--text);text-transform:uppercase;letter-spacing:.01em}.pd-edit{display:inline-block;margin-top:6px;font-size:13px;font-style:italic;color:var(--blue);text-decoration:underline}.pd-edit:hover{color:var(--accent)}.pd-section{margin-top:28px}.pd-section-title{margin:0 0 4px;font-size:20px;font-weight:600;color:var(--text)}.pd-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:56px}.pd-field{display:flex;align-items:flex-start;gap:12px;padding:15px 0;border-bottom:1px solid var(--border)}.pd-field .pd-icon{color:var(--blue);font-size:17px;margin-top:3px;flex-shrink:0}.pd-field .pd-field-body{display:flex;flex-direction:column;min-width:0}.pd-field .pd-label{font-size:12px;color:var(--text3);margin-bottom:3px}.pd-field .pd-value{font-size:14.5px;font-weight:600;color:var(--text);word-break:break-word}@media (max-width: 720px){.pd-card{padding:28px 20px 32px}.pd-grid{grid-template-columns:1fr;column-gap:0}}.chat-container{display:flex;flex-direction:column;height:calc(100vh - 140px)}.chat-context{background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius);padding:13px 16px;margin-bottom:14px;font-size:12px;color:var(--text2);line-height:1.7}.chat-context strong{color:var(--amber)}.quick-btns{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.chat-messages{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding:4px 2px 12px}.msg{display:flex;gap:10px;animation:fadeIn .25s ease}.msg .msg-avatar{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;flex-shrink:0;margin-top:2px}.msg .msg-bubble{background:var(--bg3);border:1px solid var(--border);border-radius:14px;padding:11px 15px;font-size:13px;line-height:1.7;color:var(--text);max-width:78%}.msg .msg-bubble strong{color:var(--accent);font-weight:600}.msg.ai .msg-avatar{background:var(--brand-gradient-135);color:var(--on-accent)}.msg.ai .msg-bubble{border-bottom-left-radius:4px}.msg.user{flex-direction:row-reverse}.msg.user .msg-avatar{background:var(--bg3);border:1px solid var(--border2);color:var(--text2)}.msg.user .msg-bubble{background:var(--user-bubble-bg);border-color:var(--user-bubble-border);border-bottom-right-radius:4px}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.typing{display:flex;gap:4px;padding:4px 0}.typing span{width:6px;height:6px;border-radius:50%;background:var(--text3);animation:bounce 1.2s infinite}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-5px)}}.chat-input-area{display:flex;gap:10px;margin-top:12px;align-items:flex-end}.settings-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--border)}.settings-row:last-child{border-bottom:none}.settings-row .settings-label{font-size:14.5px;color:var(--text);font-weight:600}.settings-row .settings-desc{font-size:12.5px;color:var(--text3);margin-top:3px;font-weight:500}#finance-page .section-label{margin-bottom:8px;padding-bottom:6px}#finance-page .metrics{gap:8px;margin-bottom:14px}#finance-page .grid2{gap:14px;margin-bottom:14px}#finance-page .ant-card-head{min-height:0;padding:0 12px}#finance-page .ant-card-head-title{padding:8px 0}#finance-page .ant-card-body{padding:12px!important}#finance-page .metric-card .ant-card-body{padding:12px 14px!important}#finance-page .metric-card .mc-label{font-size:10.5px;margin-bottom:5px}#finance-page .metric-card .mc-val{font-size:18px;margin-bottom:2px}#finance-page .metric-card .mc-sub{font-size:11px}#finance-page .form-grid{gap:9px;margin-bottom:8px}#finance-page .form-group label{font-size:10px}#finance-page .result-row{padding:6px 0;font-size:13px}#finance-page .result-row:last-child{font-size:14.5px;padding-top:9px;margin-top:3px}#finance-page .result-row span:last-child{font-size:inherit!important}#finance-page .info-box{margin-top:10px;padding:9px 10px;font-size:11px;line-height:1.5}#finance-page .ant-table-cell{padding:5px 10px!important;font-size:12.5px}#profile-page{display:flex;flex-direction:column;gap:22px}.profile-header{display:flex;align-items:center;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--border)}.profile-header .profile-name{font-size:18px;font-weight:700;color:var(--text)}.profile-header .profile-sub{font-size:11px;color:var(--text3);opacity:.5;margin-top:4px;display:flex;align-items:center;gap:6px}#tasks-page{height:calc(100vh - 64px);margin:-28px -32px;padding:18px 28px 8px;display:flex;flex-direction:column;overflow:hidden}.tb-board{display:flex;flex-direction:column;flex:1;min-height:0}.tb-state{flex:1;display:flex;align-items:center;justify-content:center;min-height:60vh}.tb-head{display:flex;align-items:center;gap:10px;padding:2px 2px 16px;flex-shrink:0}.tb-head .tb-project{font-size:22px;font-weight:700;letter-spacing:-.01em;color:var(--text)}.tb-head .tb-project-select{margin-left:-10px;font-size:30px!important}.tb-head .tb-project-select .ant-select-selector{height:52px!important;padding:0 14px!important;border-radius:9px;transition:background .15s}.tb-head .tb-project-select .ant-select-selection-item,.tb-head .tb-project-select .ant-select-selection-placeholder,.tb-head .tb-project-select .ant-select-selection-search,.tb-head .tb-project-select .ant-select-selection-search-input{font-size:30px!important;font-weight:800!important;line-height:52px!important;height:52px!important;letter-spacing:-.02em;color:var(--text)}.tb-head .tb-project-select .ant-select-selection-item{padding-inline-end:34px}.tb-head .tb-project-select .ant-select-arrow{color:var(--text2);font-size:18px;inset-inline-end:8px}.tb-head .tb-project-select:hover .ant-select-selector{background:var(--hover-bg)}.tb-head .tb-head-sep{font-size:11px;color:var(--text3)}.tb-head .tb-sprint-select .ant-select-selector{height:36px!important;padding:0 10px!important;border-radius:9px;transition:background .15s}.tb-head .tb-sprint-select .ant-select-selection-item,.tb-head .tb-sprint-select .ant-select-selection-placeholder,.tb-head .tb-sprint-select .ant-select-selection-search,.tb-head .tb-sprint-select .ant-select-selection-search-input{font-size:15px!important;font-weight:600!important;line-height:36px!important;height:36px!important;color:var(--text2)}.tb-head .tb-sprint-select .ant-select-selection-item{padding-inline-end:26px}.tb-head .tb-sprint-select .ant-select-arrow{color:var(--text3);inset-inline-end:6px}.tb-head .tb-sprint-select:hover .ant-select-selector{background:var(--hover-bg)}.tb-head .tb-sprint-select .ant-select-prefix{margin-inline-end:6px}.tb-head .tb-sprint-select .tb-sprint-icon{color:var(--text3);font-size:14px}.tb-head .tb-sprint-select.ant-select-disabled .ant-select-selector{cursor:default;background:transparent!important}.tb-head .tb-sprint-select.ant-select-disabled .ant-select-selection-item{color:var(--text2)}.tb-head .tb-sprint-select.ant-select-disabled .ant-select-arrow{display:none}.tb-head .tb-sprint{font-size:16px;font-weight:600;color:var(--text2)}.tb-head .tb-sprint-dates{font-size:12px;font-weight:600;color:var(--text3);background:var(--bg3);border-radius:20px;padding:3px 10px;font-family:var(--font-mono)}.tb-head .tb-head-divider{margin-left:auto;width:1px;align-self:stretch;min-height:24px;background:var(--border2)}.tb-head .tb-head-actions{display:flex;align-items:center;gap:8px}.tb-project-popup-sep{height:1px;margin:4px 0;background:var(--border2)}.tb-project-popup-add{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;border-radius:6px;background:transparent;color:var(--accent2, var(--text));font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.tb-project-popup-add .anticon{font-size:13px}.tb-project-popup-add:hover{background:var(--hover-bg)}.tb-tagmgr{display:flex;flex-direction:column;gap:14px;margin-top:4px}.tb-tagmgr .tb-tagmgr-add,.tb-tagmgr .tb-tagmgr-row{display:flex;align-items:center;gap:10px}.tb-tagmgr .tb-tagmgr-name{flex:1;min-width:0}.tb-tagmgr .tb-tagmgr-add{padding-bottom:14px;border-bottom:1px solid var(--border2)}.tb-tagmgr .tb-tagmgr-list{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow-y:auto}.tb-cols{flex:1;min-height:0;display:flex;gap:16px;overflow-x:auto;overflow-y:hidden;padding-bottom:8px}.tb-col{flex:0 0 348px;width:348px;display:flex;flex-direction:column;min-height:0;max-height:100%;border-radius:16px;background:color-mix(in srgb,var(--col-accent) 7%,var(--bg2));transition:background .18s ease,box-shadow .18s ease}.tb-col.is-target{background:color-mix(in srgb,var(--col-accent) 13%,var(--bg2));box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--col-accent) 55%,transparent)}.tb-col-head{display:flex;align-items:center;gap:9px;padding:14px 16px 12px;flex-shrink:0;position:relative}.tb-col-head:after{content:"";position:absolute;left:16px;right:16px;bottom:0;height:2.5px;border-radius:3px;background:var(--col-accent)}.tb-col-head .tb-col-dot{width:9px;height:9px;border-radius:50%;background:var(--col-accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--col-accent) 18%,transparent);flex-shrink:0}.tb-col-head .tb-col-title{font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text)}.tb-col-head .tb-col-count{font-size:11px;font-weight:700;color:var(--col-accent);background:color-mix(in srgb,var(--col-accent) 16%,var(--bg2));border-radius:20px;min-width:22px;height:20px;padding:0 7px;display:inline-flex;align-items:center;justify-content:center}.tb-col-body{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:11px;padding:14px 12px}.tb-col-empty{margin:auto 0;padding:20px 10px;text-align:center;font-size:12px;color:var(--text3)}.tb-drop-line{height:3px;border-radius:3px;background:var(--col-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--col-accent) 22%,transparent);animation:tbDrop .12s ease}@keyframes tbDrop{0%{opacity:0;transform:scaleX(.6)}to{opacity:1;transform:scaleX(1)}}.tb-col-newtask{flex-shrink:0;margin:0 12px 12px;padding:10px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1.5px dashed color-mix(in srgb,var(--col-accent) 40%,var(--border2));border-radius:9px;background:transparent;color:var(--text2);font-size:13px;font-weight:600;cursor:pointer;opacity:0;transform:translateY(-4px);transition:opacity .16s ease,transform .16s ease,background .16s ease,color .16s ease,border-color .16s ease}.tb-col-newtask .anticon{font-size:12px}.tb-col-newtask:hover{background:color-mix(in srgb,var(--col-accent) 14%,var(--bg2));border-color:var(--col-accent);color:var(--col-accent)}.tb-col.can-add:hover .tb-col-newtask,.tb-col.can-add:focus-within .tb-col-newtask{opacity:1;transform:translateY(0)}.tb-card{background:var(--bg2);border:1px solid var(--border);border-radius:14px;padding:17px 18px 15px;box-shadow:0 1px 2px #0f172a0d;cursor:grab;transition:box-shadow .16s ease,transform .16s ease,border-color .16s ease}.tb-card:hover{border-color:color-mix(in srgb,var(--col-accent) 45%,var(--border2));box-shadow:0 4px 10px #0f172a14,0 12px 28px #0f172a12;transform:translateY(-2px)}.tb-card:active{cursor:grabbing}.tb-card.is-dragging{opacity:.35;box-shadow:none;transform:none}.tb-card.is-done{background:var(--bg3)}.tb-card.is-locked{cursor:pointer}.tb-card.is-locked:hover{transform:none;border-color:var(--border);box-shadow:0 1px 2px #0f172a0d}.tb-tm-lock-note{margin-right:auto;font-size:13px;font-weight:500;color:var(--text3)}.tb-role.is-locked{cursor:default}.tb-card-title{display:flex;align-items:flex-start;gap:7px;font-size:15px;font-weight:500;line-height:1.5;color:var(--text)}.tb-card-title .tb-card-bug-icon{color:var(--red);font-size:15px;margin-top:2px;flex-shrink:0}.tb-card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.tb-card-tags .tb-tag{font-size:11px;font-weight:700;line-height:1;padding:4px 9px;border-radius:20px;white-space:nowrap}.tb-card-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;min-height:26px}.tb-card-foot .tb-card-meta{display:flex;align-items:center;gap:12px}.tb-card-foot .tb-chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--text2)}.tb-card-foot .tb-chip .anticon{font-size:12px}.tb-card-addtag{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;border-radius:6px;background:transparent;color:var(--text3);cursor:pointer;transition:background .15s,color .15s}.tb-card-addtag .anticon{font-size:14px}.tb-card-addtag:hover{background:var(--bg3);color:var(--text)}.tb-tagpick{min-width:160px;max-height:240px;overflow-y:auto}.tb-tagpick .tb-tagpick-list{display:flex;flex-direction:column;gap:8px}.tb-tagpick .tb-tagpick-list .ant-checkbox-wrapper{margin:0;font-size:13px}.tb-tagpick .tb-tagpick-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;vertical-align:middle}.tb-tagpick .tb-tagpick-empty{font-size:12px;color:var(--text3);max-width:180px}.tb-opt-user{display:inline-flex;align-items:center;gap:8px}.tb-modal .ant-modal-content{padding:0;overflow:hidden;border-radius:14px}.tb-tm-top{padding:14px 22px 12px;border-bottom:1px solid var(--border)}.tb-tm-crumb{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:var(--text);margin-bottom:12px}.tb-tm-crumb .tb-tm-crumb-proj{color:var(--accent)}.tb-tm-crumb .tb-tm-crumb-sep{color:var(--text3);font-weight:400}.tb-tm-toolbar{display:flex;align-items:center;gap:14px}.tb-tm-status{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 14px;border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--st);background:color-mix(in srgb,var(--st) 14%,var(--bg2));transition:background .15s}.tb-tm-status:hover{background:color-mix(in srgb,var(--st) 22%,var(--bg2))}.tb-tm-status .anticon{font-size:10px;opacity:.7}.tb-tm-check{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border2);border-radius:6px;background:var(--bg2);color:var(--text3);cursor:pointer;transition:all .15s}.tb-tm-check:hover{border-color:var(--green-border);color:var(--green)}.tb-tm-check.is-done{background:var(--green);border-color:var(--green);color:#fff}.tb-tm-roles{display:flex;align-items:flex-start;gap:18px}.tb-role{display:flex;flex-direction:column;align-items:center;gap:5px;border:none;background:none;padding:0;cursor:pointer}.tb-role .tb-role-label{font-size:11px;font-weight:600;color:var(--text3)}.tb-role:hover .tb-role-label{color:var(--text2)}.tb-role:hover .tb-role-empty{border-color:var(--accent);color:var(--accent)}.tb-role-stack{position:relative;display:inline-flex}.tb-role-stack .tb-role-empty{width:32px;height:32px;border-radius:50%;border:1.5px dashed var(--border2);display:inline-block;transition:border-color .15s}.tb-role-stack .tb-role-avatars{display:inline-flex}.tb-role-stack .tb-role-avatar{position:relative}.tb-role-stack .tb-role-avatar:not(:first-child){margin-left:-9px}.tb-role-stack .tb-role-avatar:hover{z-index:2}.tb-role-stack .tb-role-avatar .tb-role-remove{position:absolute;top:-4px;right:-4px;width:15px;height:15px;border-radius:50%;background:var(--red);border:1.5px solid var(--bg2);color:#fff;display:none;align-items:center;justify-content:center;font-size:7px;cursor:pointer}.tb-role-stack .tb-role-avatar:hover .tb-role-remove{display:inline-flex}.tb-role-stack .tb-role-plus{position:absolute;right:-3px;bottom:-3px;width:16px;height:16px;border-radius:50%;background:var(--bg2);border:1px solid var(--border2);color:var(--text2);display:inline-flex;align-items:center;justify-content:center;font-size:8px}.tb-role-stack .ant-avatar{border:2px solid var(--bg2)}.tb-tm-actions{margin-left:auto;display:flex;align-items:center;gap:6px}.tb-tm-icon{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:6px;background:var(--bg2);color:var(--text3);cursor:pointer;font-size:15px;transition:all .15s}.tb-tm-icon:hover{border-color:var(--border2);color:var(--text);background:var(--hover-bg)}.tb-tm-icon.is-on{color:var(--amber);border-color:var(--amber)}.tb-tm-body{padding:18px 22px 4px;max-height:62vh;overflow-y:auto}.tb-tm-title-row{display:flex;align-items:center;gap:8px;margin-bottom:14px}.tb-tm-title-row .tb-tm-title-icon{color:var(--text3);font-size:18px;flex-shrink:0}.tb-tm-title-row .tb-tm-title-input{font-size:22px;font-weight:700;padding:0;color:var(--text)}.tb-tm-title-row .tb-tm-title-input::placeholder{color:var(--text3);font-weight:600}.tb-tm-section{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}.tb-tm-section .tb-tm-section-label{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:600;color:var(--text2)}.tb-tm-section .tb-tm-section-label .anticon{color:var(--text3)}.tb-tm-desc{font-size:14px;padding:6px 0!important;color:var(--text)}.tb-tm-desc::placeholder{color:var(--text3)}.tb-tm-tabs .ant-tabs-nav{margin-bottom:14px}.tb-tm-details{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}.tb-tm-details .tb-tm-field{display:flex;flex-direction:column;gap:5px}.tb-tm-details .tb-tm-field-wide{grid-column:1/-1}.tb-tm-details .tb-tm-field-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text3)}.tb-tm-details .tb-tm-checklist{grid-column:1/-1;margin-top:2px}.tb-tm-empty{padding:18px 0;text-align:center;font-size:13px;color:var(--text3)}.tb-tm-attach{margin-top:18px}.tb-tm-attach .tb-tm-attach-label{font-size:14px;font-weight:700;color:var(--text);margin-bottom:8px}.tb-tm-attach .tb-tm-dragger .tb-tm-dragger-icon{font-size:30px;color:var(--text3);margin-bottom:4px}.tb-tm-attach .tb-tm-dragger .tb-tm-dragger-text{font-size:13px;color:var(--text3);margin:0}.tb-tm-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px;border-top:1px solid var(--border)}@media (max-width: 720px){#tasks-page{margin-left:-18px;margin-right:-18px;padding-left:16px;padding-right:16px}.tb-col{flex-basis:86vw;width:86vw}.tb-tm-toolbar{flex-wrap:wrap}.tb-tm-roles{gap:14px}.tb-tm-details{grid-template-columns:1fr}}.attendance-card .attc-head{display:flex;flex-direction:column;align-items:center;text-align:center;padding-bottom:16px}.attendance-card .attc-avatar{border:3px solid var(--bg2);box-shadow:0 2px 8px #0f172a1f}.attendance-card .attc-name{margin-top:10px;font-size:22px;font-weight:800;letter-spacing:.02em;color:var(--text);text-transform:uppercase}.attendance-card .attc-role{margin-top:2px;font-size:16px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.05em}.attendance-card .attc-selectors{display:flex;gap:10px;margin-top:14px}.attendance-card .attc-grid{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--border);border-radius:9px;overflow:hidden}.attendance-card .attc-weekday{padding:8px 0;font-size:12px;font-weight:600;color:var(--text2);text-align:center;background:var(--bg3);border-bottom:1px solid var(--border)}.attendance-card .attc-cell{position:relative;min-height:72px;padding:6px 8px;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.attendance-card .attc-cell:nth-child(7n+7){border-right:none}.attendance-card .attc-cell .attc-daynum{font-size:13px;font-weight:600;color:var(--text2);font-family:var(--font-mono)}.attendance-card .attc-cell.is-out{background:var(--bg3)}.attendance-card .attc-cell.is-out .attc-daynum{color:var(--text3);opacity:.7}.attendance-card .attc-cell.is-today{background:var(--blue-dim);box-shadow:inset 0 0 0 2px var(--blue)}.attendance-card .attc-cell.is-today .attc-daynum{color:var(--blue);font-weight:800}@media (max-width: 720px){.attendance-card .attc-cell{min-height:52px;padding:4px 6px}}.auth-form-wrap .auth-head{text-align:center;margin-bottom:20px}.auth-form-wrap .auth-logo{font-family:var(--font-mono);font-size:22px;font-weight:600;letter-spacing:-.5px;background:var(--brand-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.auth-form-wrap .auth-subtitle{margin:6px 0 0;font-size:13px;color:var(--text2)}.auth-form-wrap .auth-tabs{display:flex;gap:4px;padding:4px;margin-bottom:22px;background:var(--bg3);border-radius:9px}.auth-form-wrap .auth-tab{flex:1;padding:9px 0;border:none;border-radius:6px;background:transparent;color:var(--text2);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}.auth-form-wrap .auth-tab:hover{color:var(--text)}.auth-form-wrap .auth-tab.is-active{background:var(--bg2);color:var(--text);box-shadow:var(--shadow)}.auth-form-wrap .auth-form .ant-form-item{margin-bottom:16px}.auth-form-wrap .auth-form .ant-form-item-label>label{font-size:12px;color:var(--text2)}.auth-form-wrap .auth-submit{margin-top:4px;font-weight:600}.auth-modal .ant-modal-content{border-radius:14px;padding:28px 28px 30px}@media (max-width: 720px){.auth-modal-root .ant-modal{max-width:calc(100vw - 24px)}.auth-modal .ant-modal-content{padding:22px 18px 24px}}.auth-screen{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px;overflow:hidden;background:var(--bg)}.auth-screen .auth-screen-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:radial-gradient(circle at 20% 20%,var(--glow-1),transparent 45%),radial-gradient(circle at 80% 30%,var(--glow-2),transparent 40%),radial-gradient(circle at 50% 100%,var(--glow-1),transparent 50%);pointer-events:none}.auth-screen .auth-screen-card{position:relative;z-index:1;width:100%;max-width:400px;padding:36px 32px 34px;background:var(--bg2);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}.auth-screen .auth-screen-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;border-radius:14px 14px 0 0;background:var(--brand-gradient)}@media (max-width: 720px){.auth-screen{padding:16px}.auth-screen .auth-screen-card{padding:28px 22px 26px}}.app-sider .ant-menu{background:transparent;border-inline-end:none!important}.app-sider .ant-menu .ant-menu-item{width:calc(100% - 24px);margin:2px 12px;border-radius:9px;color:var(--text2);font-weight:600}.app-sider .ant-menu .ant-menu-item:hover{color:var(--text)!important;background:var(--hover-bg)!important}.app-sider .ant-menu .ant-menu-item.ant-menu-item-selected{color:var(--accent)!important;background:var(--green-dim)!important}.app-sider .ant-menu .ant-menu-item-group-title{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--text3);padding:16px 24px 6px}.ant-card{box-shadow:var(--shadow)}.ant-table-wrapper .ant-table{background:transparent;font-size:14px}.ant-table-wrapper .ant-table-thead>tr>th{background:transparent!important;color:var(--text3)!important;font-size:12px;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.ant-tag{border-radius:20px;display:inline-flex;align-items:center;gap:6px;font-weight:700;padding-inline:11px}.ant-tag:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}
