.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%;z-index:1000}.cdk-overlay-backdrop{position:absolute;inset:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0;touch-action:manipulation;z-index:1000;transition:opacity .4s cubic-bezier(.25,.8,.25,1)}@media(prefers-reduced-motion){.cdk-overlay-backdrop{transition-duration:1ms}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors:active){.cdk-overlay-backdrop-showing{opacity:.6}}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px;z-index:1000}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}:root{--bg: #070B0E;--bg-2: #090F12;--sidebar: #0B1115;--card: #0D171B;--card-elevated: #121D22;--hover: #162329;--input: #0B1114;--glass: rgba(13, 23, 27, .72);--glass-strong: rgba(18, 29, 34, .86);--overlay: rgba(3, 6, 8, .66);--border: rgba(255, 255, 255, .08);--border-soft: rgba(255, 255, 255, .05);--border-input: rgba(255, 255, 255, .09);--border-strong: rgba(0, 212, 199, .22);--highlight: rgba(255, 255, 255, .04);--accent: #00D4C7;--accent-bright: #19E6D5;--accent-rgb: 0, 212, 199;--accent-ink: #00201E;--accent-soft: rgba(0, 212, 199, .1);--accent-softer: rgba(0, 212, 199, .06);--violet: #8B5CF6;--violet-deep: #7C3AED;--violet-rgb: 139, 92, 246;--violet-soft: rgba(139, 92, 246, .12);--blue: #3B82F6;--blue-rgb: 59, 130, 246;--blue-soft: rgba(59, 130, 246, .12);--text: #F3F7F7;--text-2: #8B979C;--text-3: #5F6A70;--success: #20C997;--success-rgb: 32, 201, 151;--success-soft: rgba(32, 201, 151, .12);--warning: #F4B740;--warning-rgb: 244, 183, 64;--warning-soft: rgba(244, 183, 64, .12);--error: #F05D5D;--error-rgb: 240, 93, 93;--error-soft: rgba(240, 93, 93, .12);--info: #3B9EFF;--info-soft: rgba(59, 158, 255, .12);--font: "Inter", "Geist", "Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace;--fs-display: clamp(24px, 1.4rem + .9vw, 32px);--fs-h2: 18px;--fs-h3: 15px;--fs-body: 13.5px;--fs-sm: 12.5px;--fs-xs: 11.5px;--fs-2xs: 10.5px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--s-12: 48px;--page-x: 28px;--page-y: 24px;--gap: 16px;--r-xs: 4px;--r-sm: 6px;--r-md: 8px;--r-lg: 10px;--r-xl: 12px;--r-2xl: 14px;--r-3xl: 16px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 8px 24px -8px rgba(0, 0, 0, .55);--shadow-lg: 0 24px 64px -16px rgba(0, 0, 0, .7);--glow-accent: 0 0 0 1px rgba(var(--accent-rgb), .18), 0 0 24px -6px rgba(var(--accent-rgb), .35);--glow-accent-sm: 0 0 16px -4px rgba(var(--accent-rgb), .45);--glow-violet: 0 0 0 1px rgba(var(--violet-rgb), .2), 0 0 32px -8px rgba(var(--violet-rgb), .4);--focus-ring: 0 0 0 2px var(--bg), 0 0 0 4px rgba(var(--accent-rgb), .65);--sidebar-w: 236px;--sidebar-rail-w: 72px;--topbar-h: 64px;--ai-panel-w: 304px;--bottom-nav-h: 64px;--content-max: 1600px;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px);--ease: cubic-bezier(.2, .7, .2, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--t-fast: .15s;--t-base: .2s;--t-slow: .32s;--z-sticky: 20;--z-nav: 40;--z-drawer: 60;--z-modal: 70;--z-palette: 80;--z-toast: 90;--z-tooltip: 100;color-scheme:dark}:root[data-accent=violet]{--accent: #8B5CF6;--accent-bright: #A78BFA;--accent-rgb: 139, 92, 246;--accent-ink: #FFFFFF;--accent-soft: rgba(139, 92, 246, .12);--accent-softer: rgba(139, 92, 246, .07);--border-strong: rgba(139, 92, 246, .28)}:root[data-theme=light]{--bg: #F4F7F8;--bg-2: #EEF2F4;--sidebar: #FFFFFF;--card: #FFFFFF;--card-elevated: #FFFFFF;--hover: #EEF3F5;--input: #F7FAFB;--glass: rgba(255, 255, 255, .82);--glass-strong: rgba(255, 255, 255, .94);--overlay: rgba(15, 23, 28, .38);--border: rgba(15, 23, 28, .09);--border-soft: rgba(15, 23, 28, .06);--border-input: rgba(15, 23, 28, .12);--highlight: rgba(255, 255, 255, .6);--text: #0E1A1F;--text-2: #55646B;--text-3: #85939A;--accent: #00A79D;--accent-bright: #00BFB3;--accent-rgb: 0, 167, 157;--accent-ink: #FFFFFF;--shadow-md: 0 8px 24px -10px rgba(15, 23, 28, .18);--shadow-lg: 0 24px 64px -20px rgba(15, 23, 28, .28);color-scheme:light}:root[data-theme=light][data-accent=violet]{--accent: #7C3AED;--accent-bright: #8B5CF6;--accent-rgb: 124, 58, 237}:root[data-density=compact]{--page-x: 20px;--page-y: 18px;--gap: 12px;--fs-body: 13px}@media(max-width:1279px){:root{--sidebar-w: 212px;--page-x: 22px;--gap: 14px}}@media(max-width:767px){:root{--page-x: 16px;--page-y: 16px;--gap: 12px;--topbar-h: 56px}}@media(max-width:359px){:root{--page-x: 12px;--gap: 10px}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--bg)}html,body{height:100%}body{margin:0;font-family:var(--font);font-size:var(--fs-body);line-height:1.5;color:var(--text);background:transparent;font-feature-settings:"cv11","ss01","ss03";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}h1,h2,h3,h4,h5,h6,p{margin:0}h1,h2,h3,h4{font-weight:600;letter-spacing:-.01em}a{color:inherit;text-decoration:none}img,svg{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0;padding:0}ul,ol{margin:0;padding:0;list-style:none}table{border-collapse:collapse;width:100%}hr{border:0;border-top:1px solid var(--border);margin:0}::selection{background:rgba(var(--accent-rgb),.3)}:focus{outline:none}:focus-visible{outline:2px solid rgba(var(--accent-rgb),.8);outline-offset:2px;border-radius:var(--r-sm)}*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:8px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background-color:#ffffff2e}*::-webkit-scrollbar-track{background:transparent}:root[data-theme=light] *{scrollbar-color:rgba(15,23,28,.18) transparent}.tf-atmosphere{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}.tf-atmosphere:before,.tf-atmosphere:after{content:"";position:absolute;border-radius:50%;filter:blur(90px)}.tf-atmosphere:before{width:52vw;height:52vw;max-width:900px;max-height:900px;left:-18vw;bottom:-26vw;background:radial-gradient(closest-side,rgba(var(--accent-rgb),.14),transparent 70%)}.tf-atmosphere:after{width:46vw;height:46vw;max-width:820px;max-height:820px;right:-14vw;top:-22vw;background:radial-gradient(closest-side,rgba(var(--violet-rgb),.15),transparent 70%)}.tf-atmosphere__wave{position:absolute;inset:auto -10% -6%;height:46vh;opacity:.85}.tf-atmosphere__noise{position:absolute;inset:0;opacity:.035;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}:root[data-theme=light] .tf-atmosphere{opacity:.5}.page-title{font-size:var(--fs-display);font-weight:600;letter-spacing:-.025em;line-height:1.15}.page-subtitle{color:var(--text-2);font-size:var(--fs-body);margin-top:6px}.section-title{font-size:var(--fs-h3);font-weight:600;letter-spacing:-.01em}.card-title{font-size:14px;font-weight:600;letter-spacing:-.005em}.label{font-size:var(--fs-2xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.text-2{color:var(--text-2)}.text-3{color:var(--text-3)}.text-sm{font-size:var(--fs-sm)}.text-xs{font-size:var(--fs-xs)}.text-accent{color:var(--accent)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-error{color:var(--error)}.text-violet{color:var(--violet)}.tabular{font-variant-numeric:tabular-nums}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.break-words{overflow-wrap:anywhere}.page{width:100%;max-width:var(--content-max);margin:0 auto;padding:var(--page-y) var(--page-x) calc(var(--page-y) + 16px);animation:tf-page-in .36s var(--ease-out) backwards;min-width:0}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap;margin-bottom:var(--s-6)}.page-header__actions{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:var(--gap);min-width:0}.row{display:flex;align-items:center;gap:var(--s-2);min-width:0}.row-between{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);min-width:0}.grow{flex:1 1 auto;min-width:0}.grid{display:grid;gap:var(--gap);min-width:0}.grid>*{min-width:0}@media(max-width:767px){.page{padding-bottom:calc(var(--bottom-nav-h) + var(--safe-bottom) + 24px)}.page-header{align-items:flex-start;margin-bottom:var(--s-5)}}.card{position:relative;background:linear-gradient(180deg,var(--highlight),transparent 40%),var(--glass);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-sm),inset 0 1px 0 var(--highlight);backdrop-filter:blur(14px) saturate(120%);-webkit-backdrop-filter:blur(14px) saturate(120%);min-width:0;transition:border-color var(--t-base) var(--ease),background-color var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease),transform var(--t-base) var(--ease)}.card--pad{padding:var(--s-5)}.card--pad-sm{padding:var(--s-4)}.card--interactive{cursor:pointer}.card--interactive:hover{border-color:#ffffff21;background-color:var(--card-elevated)}.card--glow{border-color:var(--border-strong);box-shadow:var(--glow-accent),inset 0 1px 0 var(--highlight)}.card--violet{border-color:rgba(var(--violet-rgb),.24);box-shadow:var(--glow-violet),inset 0 1px 0 var(--highlight)}.card--elevated{background:var(--card-elevated)}.card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-4);min-width:0}.card__header .card-title{min-width:0}@media(max-width:767px){.card--pad{padding:var(--s-4)}}.btn{--btn-h: 36px;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--btn-h);padding:0 14px;border-radius:var(--r-md);font-size:var(--fs-sm);font-weight:500;line-height:1;white-space:nowrap;border:1px solid transparent;-webkit-user-select:none;user-select:none;transition:background-color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),box-shadow var(--t-base) var(--ease),filter var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--sm{--btn-h: 30px;padding:0 10px;font-size:var(--fs-xs);border-radius:var(--r-sm);gap:6px}.btn--lg{--btn-h: 42px;padding:0 18px;font-size:var(--fs-body)}.btn--block{width:100%}.btn--primary{background:linear-gradient(180deg,var(--accent-bright),var(--accent));color:var(--accent-ink);font-weight:600;box-shadow:0 0 0 1px rgba(var(--accent-rgb),.4),0 6px 18px -8px rgba(var(--accent-rgb),.7),inset 0 1px #ffffff40}.btn--primary:hover:not(:disabled){filter:brightness(1.08);box-shadow:0 0 0 1px rgba(var(--accent-rgb),.5),0 8px 26px -8px rgba(var(--accent-rgb),.85),inset 0 1px #ffffff4d}.btn--secondary{background:var(--card-elevated);border-color:var(--border);color:var(--text)}.btn--secondary:hover:not(:disabled){background:var(--hover);border-color:#ffffff24}.btn--ghost{color:var(--text-2)}.btn--ghost:hover:not(:disabled){background:var(--hover);color:var(--text)}.btn--soft{background:var(--accent-soft);color:var(--accent);border-color:rgba(var(--accent-rgb),.2)}.btn--soft:hover:not(:disabled){background:rgba(var(--accent-rgb),.16)}.btn--violet{background:linear-gradient(180deg,#9D74F8,var(--violet-deep));color:#fff;font-weight:600;box-shadow:0 0 0 1px rgba(var(--violet-rgb),.45),0 6px 20px -8px rgba(var(--violet-rgb),.8),inset 0 1px #ffffff38}.btn--violet:hover:not(:disabled){filter:brightness(1.1)}.btn--danger{background:var(--error-soft);color:var(--error);border-color:rgba(var(--error-rgb),.28)}.btn--danger:hover:not(:disabled){background:rgba(var(--error-rgb),.2)}.btn--icon{width:var(--btn-h);padding:0}.icon-btn{position:relative;display:inline-grid;place-items:center;width:36px;height:36px;border-radius:var(--r-md);color:var(--text-2);flex:none;transition:background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}.icon-btn:hover{background:var(--hover);color:var(--text)}.icon-btn:active{transform:scale(.94)}.icon-btn--sm{width:28px;height:28px;border-radius:var(--r-sm)}.icon-btn--bordered{border:1px solid var(--border);background:var(--card)}.icon-btn--active{color:var(--accent);background:var(--accent-soft)}.icon-btn__dot{position:absolute;top:7px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--error);box-shadow:0 0 0 2px var(--bg)}@media(pointer:coarse){.icon-btn{width:44px;height:44px}.icon-btn--sm{width:36px;height:36px}.btn{--btn-h: 42px}.btn--sm{--btn-h: 36px}}.input,.select,.textarea{width:100%;min-width:0;height:40px;padding:0 12px;background:var(--input);border:1px solid var(--border-input);border-radius:var(--r-md);color:var(--text);font-size:var(--fs-sm);transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),background-color var(--t-fast) var(--ease)}.textarea{height:auto;min-height:88px;padding:10px 12px;resize:vertical;line-height:1.5}.input::placeholder,.textarea::placeholder{color:var(--text-3)}.input:hover,.select:hover,.textarea:hover{border-color:#ffffff24}.input:focus,.select:focus,.textarea:focus,.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline:none;border-color:rgba(var(--accent-rgb),.6);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.14),0 0 18px -6px rgba(var(--accent-rgb),.5)}.select{appearance:none;padding-right:34px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238B979C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.select option{background:var(--card-elevated);color:var(--text)}.input--sm{height:32px;font-size:var(--fs-xs)}input[type=date].input,input[type=time].input{color-scheme:dark}:root[data-theme=light] input[type=date].input,:root[data-theme=light] input[type=time].input{color-scheme:light}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field__label{font-size:var(--fs-xs);font-weight:500;color:var(--text-2)}.field__label .req{color:var(--error);margin-left:2px}.field__hint{font-size:var(--fs-2xs);color:var(--text-3)}.field__error{font-size:var(--fs-2xs);color:var(--error)}.input.is-invalid{border-color:rgba(var(--error-rgb),.6)}.input-group{position:relative;display:flex;align-items:center;min-width:0}.input-group>.input{padding-left:36px}.input-group__icon{position:absolute;left:12px;color:var(--text-3);pointer-events:none}.input-group__suffix{position:absolute;right:8px}.checkbox{appearance:none;-webkit-appearance:none;flex:none;width:18px;height:18px;margin:0;border-radius:50%;border:1.5px solid rgba(255,255,255,.22);background:transparent;cursor:pointer;display:inline-grid;place-items:center;transition:border-color var(--t-fast) var(--ease),background-color var(--t-fast) var(--ease),box-shadow var(--t-base) var(--ease),transform var(--t-fast) var(--ease)}.checkbox:hover{border-color:var(--accent)}.checkbox:after{content:"";width:5px;height:9px;border:solid var(--accent-ink);border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg) scale(0);transition:transform var(--t-base) var(--ease-out)}.checkbox:checked{background:var(--accent);border-color:var(--accent);animation:tf-check-pulse .42s var(--ease-out)}.checkbox:checked:after{transform:translateY(-1px) rotate(45deg) scale(1)}.checkbox--square{border-radius:5px;width:16px;height:16px}.checkbox--square:after{width:4px;height:8px}:root[data-theme=light] .checkbox{border-color:#0f171c40}.switch{appearance:none;-webkit-appearance:none;margin:0;flex:none;position:relative;width:36px;height:20px;border-radius:999px;background:#ffffff1f;cursor:pointer;transition:background-color var(--t-base) var(--ease)}.switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform var(--t-base) var(--ease-out)}.switch:checked{background:var(--accent);box-shadow:var(--glow-accent-sm)}.switch:checked:after{transform:translate(16px)}:root[data-theme=light] .switch{background:#0f171c29}:root[data-theme=light] .switch:checked{background:var(--accent)}.segmented{display:inline-flex;padding:3px;gap:2px;background:var(--input);border:1px solid var(--border);border-radius:var(--r-md)}.segmented__btn{height:28px;padding:0 12px;border-radius:var(--r-sm);font-size:var(--fs-xs);font-weight:500;color:var(--text-2);display:inline-flex;align-items:center;gap:6px;transition:background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.segmented__btn:hover{color:var(--text)}.segmented__btn.is-active{background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.28)}.tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;min-width:0}.tabs::-webkit-scrollbar{display:none}.tab{flex:none;height:32px;padding:0 12px;border-radius:var(--r-md);font-size:var(--fs-sm);font-weight:500;color:var(--text-2);border:1px solid transparent;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;transition:background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.tab:hover{color:var(--text);background:var(--hover)}.tab.is-active{color:var(--accent);background:var(--accent-soft);border-color:rgba(var(--accent-rgb),.28);box-shadow:0 0 14px -6px rgba(var(--accent-rgb),.55)}.tab__count{font-size:var(--fs-2xs);color:inherit;opacity:.8;font-variant-numeric:tabular-nums}.tabs--underline{gap:2px;border-bottom:1px solid var(--border)}.tabs--underline .tab{border-radius:0;height:40px;background:none;border:0;box-shadow:none;position:relative}.tabs--underline .tab.is-active{background:none;box-shadow:none}.tabs--underline .tab.is-active:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;border-radius:2px;background:var(--accent);box-shadow:0 0 10px rgba(var(--accent-rgb),.8)}.badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:var(--r-sm);font-size:var(--fs-2xs);font-weight:600;letter-spacing:.01em;white-space:nowrap;border:1px solid transparent;flex:none}.badge--sm{height:18px;padding:0 6px;font-size:10px}.badge__dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.badge--high{background:rgba(var(--error-rgb),.12);color:#ff7a7a;border-color:rgba(var(--error-rgb),.22)}.badge--medium{background:rgba(var(--warning-rgb),.11);color:var(--warning);border-color:rgba(var(--warning-rgb),.22)}.badge--low{background:rgba(var(--blue-rgb),.1);color:#7fa8d9;border-color:rgba(var(--blue-rgb),.2)}.badge--todo{background:#8b979c1f;color:#a9b7c4;border-color:#8b979c33}.badge--in-progress{background:#00d4c71a;color:#19e6d5;border-color:#00d4c740}.badge--review{background:rgba(var(--violet-rgb),.12);color:#a78bfa;border-color:rgba(var(--violet-rgb),.26)}.badge--done{background:rgba(var(--success-rgb),.11);color:var(--success);border-color:rgba(var(--success-rgb),.24)}.badge--neutral{background:#ffffff0d;color:var(--text-2);border-color:var(--border)}.badge--accent{background:var(--accent-soft);color:var(--accent);border-color:rgba(var(--accent-rgb),.25)}.badge--violet{background:var(--violet-soft);color:#a78bfa;border-color:rgba(var(--violet-rgb),.25)}.badge--success{background:var(--success-soft);color:var(--success);border-color:rgba(var(--success-rgb),.24)}.badge--warning{background:var(--warning-soft);color:var(--warning);border-color:rgba(var(--warning-rgb),.24)}.badge--error{background:var(--error-soft);color:#ff7a7a;border-color:rgba(var(--error-rgb),.24)}.badge--info{background:var(--info-soft);color:var(--info);border-color:#3b9eff3d}:root[data-theme=light] .badge--high,:root[data-theme=light] .badge--error{color:#d63f3f}:root[data-theme=light] .badge--in-progress{color:#00978e}:root[data-theme=light] .badge--review,:root[data-theme=light] .badge--violet{color:#6d28d9}:root[data-theme=light] .badge--medium,:root[data-theme=light] .badge--warning{color:#b7791f}:root[data-theme=light] .badge--todo{color:#5b6b78}:root[data-theme=light] .badge--low{color:#3567a8}.chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:var(--r-sm);font-size:var(--fs-xs);color:var(--text-2);background:#ffffff0a;border:1px solid var(--border);white-space:nowrap}.dot{width:8px;height:8px;border-radius:50%;flex:none;display:inline-block}.dot--sm{width:6px;height:6px}.dot--online{background:var(--success);box-shadow:0 0 8px rgba(var(--success-rgb),.6)}.dot--away{background:var(--warning)}.dot--offline{background:var(--text-3)}.kbd{display:inline-flex;align-items:center;gap:2px;height:20px;padding:0 6px;border-radius:5px;font-size:10.5px;font-family:var(--font);font-weight:500;color:var(--text-3);background:#ffffff0a;border:1px solid var(--border);white-space:nowrap}.c-cyan{--c: #19E6D5;--c-rgb: 25, 230, 213}.c-teal{--c: #00D4C7;--c-rgb: 0, 212, 199}.c-violet{--c: #8B5CF6;--c-rgb: 139, 92, 246}.c-blue{--c: #3B82F6;--c-rgb: 59, 130, 246}.c-green{--c: #20C997;--c-rgb: 32, 201, 151}.c-amber{--c: #F4B740;--c-rgb: 244, 183, 64}.c-red{--c: #F05D5D;--c-rgb: 240, 93, 93}.c-pink{--c: #EC4899;--c-rgb: 236, 72, 153}.progress{position:relative;height:6px;border-radius:999px;overflow:hidden;background:#ffffff12;min-width:0}.progress__bar{position:absolute;inset:0 auto 0 0;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-bright));box-shadow:0 0 10px rgba(var(--accent-rgb),.55);transform-origin:left center;animation:tf-grow-x .9s var(--ease-out) both}.progress--sm{height:4px}.progress--warning .progress__bar{background:linear-gradient(90deg,#E8A21C,var(--warning));box-shadow:0 0 10px rgba(var(--warning-rgb),.45)}.progress--error .progress__bar{background:linear-gradient(90deg,#D84848,var(--error));box-shadow:0 0 10px rgba(var(--error-rgb),.45)}.progress--violet .progress__bar{background:linear-gradient(90deg,var(--violet-deep),var(--violet));box-shadow:0 0 10px rgba(var(--violet-rgb),.5)}:root[data-theme=light] .progress{background:#0f171c14}.list-row{display:flex;align-items:center;gap:var(--s-3);padding:10px 12px;border-radius:var(--r-md);min-width:0;transition:background-color var(--t-fast) var(--ease)}.list-row:hover{background:#ffffff08}.divide>*+*{border-top:1px solid var(--border-soft)}.table{font-size:var(--fs-sm)}.table th{text-align:left;font-weight:500;font-size:var(--fs-xs);color:var(--text-3);padding:10px 12px;white-space:nowrap;border-bottom:1px solid var(--border)}.table td{padding:10px 12px;border-bottom:1px solid var(--border-soft);vertical-align:middle}.table tbody tr{transition:background-color var(--t-fast) var(--ease)}.table tbody tr:hover{background:#ffffff07}.table tbody tr:last-child td{border-bottom:0}:root[data-theme=light] .table tbody tr:hover,:root[data-theme=light] .list-row:hover{background:#0f171c08}.scroll-x{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}.menu{min-width:180px;padding:6px;background:var(--card-elevated);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);animation:tf-pop-in .16s var(--ease-out) both;z-index:var(--z-drawer)}.menu__item{display:flex;align-items:center;gap:10px;width:100%;height:34px;padding:0 10px;border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--text-2);text-align:left}.menu__item:hover,.menu__item:focus-visible{background:var(--hover);color:var(--text)}.menu__item--danger{color:var(--error)}.menu__sep{height:1px;background:var(--border);margin:6px 4px}[data-tooltip]{position:relative}[data-tooltip]:hover:after,[data-tooltip]:focus-visible:after{content:attr(data-tooltip);position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);padding:5px 9px;border-radius:var(--r-sm);background:var(--card-elevated);border:1px solid var(--border);color:var(--text);font-size:var(--fs-xs);font-weight:500;white-space:nowrap;box-shadow:var(--shadow-md);z-index:var(--z-tooltip);pointer-events:none;animation:tf-fade-in .12s var(--ease) both}.backdrop{position:fixed;inset:0;background:var(--overlay);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:tf-fade-in var(--t-base) var(--ease) both}.modal{position:fixed;left:50%;top:50%;width:min(560px,calc(100vw - 32px));max-height:min(86vh,860px);display:flex;flex-direction:column;background:var(--glass-strong);border:1px solid var(--border);border-radius:var(--r-3xl);box-shadow:var(--shadow-lg),inset 0 1px 0 var(--highlight);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);transform:translate(-50%,-50%);animation:tf-modal-in .24s var(--ease-out) both;overflow:hidden}.modal__header,.drawer__header{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:16px 20px;border-bottom:1px solid var(--border);flex:none}.modal__body,.drawer__body{padding:20px;overflow-y:auto;flex:1 1 auto;min-height:0;overscroll-behavior:contain}.modal__footer,.drawer__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--s-2);padding:14px 20px;border-top:1px solid var(--border);flex:none}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(480px,100vw);display:flex;flex-direction:column;background:var(--glass-strong);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);animation:tf-drawer-in var(--t-slow) var(--ease-out) both}@media(max-width:767px){.modal{inset:auto 0 0;width:100%;max-height:calc(100dvh - 24px);transform:none;border-radius:18px 18px 0 0;border-bottom:0;animation:tf-sheet-in var(--t-slow) var(--ease-out) both}.modal__footer,.drawer__footer{padding-bottom:calc(14px + var(--safe-bottom))}.modal__footer>.btn{flex:1 1 0}.drawer{width:100%;border-left:0;animation:tf-sheet-in var(--t-slow) var(--ease-out) both}.modal__header,.drawer__header{padding:14px 16px}.modal__body,.drawer__body{padding:16px}}.sheet-handle{width:36px;height:4px;border-radius:4px;background:#ffffff2e;margin:8px auto 0;display:none}@media(max-width:767px){.sheet-handle{display:block}}.avatar{--size: 28px;width:var(--size);height:var(--size);flex:none;border-radius:50%;display:inline-grid;place-items:center;font-size:calc(var(--size) * .38);font-weight:600;letter-spacing:.02em;color:#fff;position:relative;-webkit-user-select:none;user-select:none}.skeleton{position:relative;overflow:hidden;background:#ffffff0d;border-radius:var(--r-sm)}.skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent);animation:tf-shimmer 1.4s infinite}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(var(--accent-rgb),.25);border-top-color:var(--accent);animation:tf-spin .8s linear infinite}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.show-mobile{display:none!important}@media(max-width:767px){.hide-mobile{display:none!important}.show-mobile{display:revert!important}}@media(max-width:1023px){.hide-tablet{display:none!important}}@media(min-width:768px){.only-mobile{display:none!important}}@keyframes tf-page-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes tf-fade-in{0%{opacity:0}to{opacity:1}}@keyframes tf-fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes tf-pop-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}@keyframes tf-modal-in{0%{opacity:0;transform:translate(-50%,-48%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes tf-drawer-in{0%{transform:translate(100%)}to{transform:none}}@keyframes tf-sheet-in{0%{transform:translateY(100%)}to{transform:none}}@keyframes tf-grow-x{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes tf-shimmer{to{transform:translate(100%)}}@keyframes tf-spin{to{transform:rotate(360deg)}}@keyframes tf-check-pulse{0%{box-shadow:0 0 rgba(var(--accent-rgb),.55);transform:scale(.9)}60%{box-shadow:0 0 0 7px rgba(var(--accent-rgb),0);transform:scale(1.06)}to{box-shadow:0 0 rgba(var(--accent-rgb),0);transform:scale(1)}}@keyframes tf-pulse-dot{0%,to{box-shadow:0 0 rgba(var(--accent-rgb),.6)}50%{box-shadow:0 0 0 5px rgba(var(--accent-rgb),0)}}.stagger>*{animation:tf-fade-up .42s var(--ease-out) both}.stagger>*:nth-child(2){animation-delay:40ms}.stagger>*:nth-child(3){animation-delay:80ms}.stagger>*:nth-child(4){animation-delay:.12s}.stagger>*:nth-child(5){animation-delay:.16s}.stagger>*:nth-child(6){animation-delay:.2s}.stagger>*:nth-child(n+7){animation-delay:.24s}:root[data-motion=off] *,:root[data-motion=off] *:before,:root[data-motion=off] *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.cdk-drag-preview{box-sizing:border-box;border-radius:var(--r-lg);border-color:rgba(var(--accent-rgb),.6)!important;box-shadow:var(--glow-accent),var(--shadow-lg)!important;transform:rotate(1.5deg) scale(1.03);opacity:.96}.cdk-drag-placeholder{opacity:.35}.cdk-drag-animating{transition:transform .22s var(--ease-out)}.cdk-drop-list-dragging .cdk-drag:not(.cdk-drag-placeholder){transition:transform .22s var(--ease-out)}.badge--st-draft{background:#8b979c14;color:var(--text-2);border-color:#8b979c47;border-style:dashed}.badge--st-assigned{background:rgba(var(--blue-rgb),.12);color:#7fa8f5;border-color:rgba(var(--blue-rgb),.26)}.badge--st-inProgress{background:#00d4c71a;color:#19e6d5;border-color:#00d4c740}.badge--st-pending{background:rgba(var(--warning-rgb),.11);color:var(--warning);border-color:rgba(var(--warning-rgb),.24)}.badge--st-completed{background:rgba(var(--success-rgb),.11);color:var(--success);border-color:rgba(var(--success-rgb),.24)}.badge--st-closed{background:rgba(var(--violet-rgb),.12);color:#a78bfa;border-color:rgba(var(--violet-rgb),.26)}.badge--st-cancelled{background:rgba(var(--error-rgb),.1);color:#ff7a7a;border-color:rgba(var(--error-rgb),.22)}:root[data-theme=light] .badge--st-assigned{color:#2f62c9}:root[data-theme=light] .badge--st-inProgress{color:#00978e}:root[data-theme=light] .badge--st-pending{color:#b7791f}:root[data-theme=light] .badge--st-closed{color:#6d28d9}:root[data-theme=light] .badge--st-cancelled{color:#d63f3f}.c-neutral{--c: #8B979C;--c-rgb: 139, 151, 156}.cdk-overlay-container{z-index:85}.tf-dialog-backdrop.cdk-overlay-backdrop{background:var(--overlay)}.tf-dialog-pane{max-width:100vw}@media(max-width:767px){.tf-dialog-pane .modal{max-height:calc(100dvh - 32px)}}.menu__item:disabled{opacity:.6;cursor:default}.btn--primary .spinner,.btn--violet .spinner{border-color:#0000002e;border-top-color:var(--accent-ink)}.btn .spinner,.menu__item .spinner{width:14px;height:14px;flex:none}.conn-banner{position:sticky;top:var(--topbar-h);z-index:calc(var(--z-sticky) - 1);display:flex;align-items:center;justify-content:center;gap:8px;min-height:32px;padding:6px var(--page-x);font-size:var(--fs-xs);font-weight:500;text-align:center;color:var(--warning);background:rgba(var(--warning-rgb),.1);border-bottom:1px solid rgba(var(--warning-rgb),.22);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:tf-fade-in var(--t-base) var(--ease) both}.conn-banner--offline{color:var(--text);background:rgba(var(--error-rgb),.12);border-bottom-color:rgba(var(--error-rgb),.26)}.conn-banner .spinner{width:12px;height:12px;border-color:rgba(var(--warning-rgb),.25);border-top-color:var(--warning)}@media(max-width:767px){.conn-banner{top:calc(var(--topbar-h) + var(--safe-top))}}.auth-shell{background:radial-gradient(60vw 50vh at 50% 0%,rgba(var(--accent-rgb),.08),transparent 70%),radial-gradient(50vw 40vh at 85% 100%,rgba(var(--violet-rgb),.08),transparent 70%)}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-form__label-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.auth-form__password{padding-right:44px}.auth-link{color:var(--accent);font-weight:500;border-radius:var(--r-xs)}.auth-link:hover{text-decoration:underline;text-underline-offset:2px}.auth-link--sm{font-size:var(--fs-xs)}.auth-back{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:var(--fs-sm);align-self:center}.auth-note{display:flex;align-items:flex-start;gap:8px;margin-bottom:16px;padding:10px 12px;border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--text-2);background:var(--info-soft);border:1px solid rgba(59,158,255,.24)}.auth-note app-icon{color:var(--info);margin-top:2px;flex:none}.auth-alert{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--text);background:var(--error-soft);border:1px solid rgba(var(--error-rgb),.28)}.auth-alert>app-icon{color:var(--error);margin-top:2px;flex:none}.auth-alert--warning{background:var(--warning-soft);border-color:rgba(var(--warning-rgb),.28);margin-bottom:16px}.auth-alert--warning>app-icon{color:var(--warning)}.auth-alert__body{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0;overflow-wrap:anywhere}.auth-alert__ok{color:var(--success)}.auth-done{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:4px 0 18px;font-size:var(--fs-sm);line-height:1.5}.auth-done__icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;margin-bottom:4px;color:var(--accent);background:var(--accent-softer);border:1px solid rgba(var(--accent-rgb),.2);box-shadow:0 0 24px -8px rgba(var(--accent-rgb),.5)}.auth-actions{display:flex;flex-direction:column;gap:8px}.auth-checking{display:flex;align-items:center;justify-content:center;gap:10px;padding:24px 0;color:var(--text-2);font-size:var(--fs-sm)}@media(max-width:479px){.auth-form{gap:18px}.auth-form .field{gap:8px}.auth-form .field__label{font-size:14px}.auth-form .field__error{font-size:13px}.auth-form .input{height:50px;font-size:16px;border-radius:14px}.auth-form .input-group>.input{padding-left:44px}.auth-form .input-group__icon{left:16px}.auth-form .input-group__suffix{right:6px}.auth-form .auth-form__password{padding-right:52px}.auth-form .btn--lg{--btn-h: 52px;font-size:16px;border-radius:14px;margin-top:4px}.auth-link--sm{font-size:14px;padding:6px 0}.auth-note,.auth-alert{font-size:14px;border-radius:14px}.auth-back{font-size:14px;padding:10px 0}}
