:root{--bg:#fff;--bg-alt:#f5f4fa;--text:#171429;--ink:#12102a;--text-secondary:#5a5578;--muted:#787390;--border:#e9e6f7;--accent:#5b3df5;--accent-dark:#4a26e0;--accent-deep:#3e24c8;--accent-light:#7a5cff;--accent-pale:#c3b6ff;--success:#13875e;--amber:#f2a33c;--danger:#cc4c3a;--navy:#171429;--navy-2:#221e3d;--steel:#6a6489;--radius:14px;--radius-lg:18px;--radius-sm:10px;--font-display:var(--font-grotesk), "Space Grotesk", var(--font), sans-serif;--r-xs:4px;--r-sm:8px;--r-md:12px;--r-lg:16px;--shadow:0 8px 20px #1c14461a;--shadow-hover:0 30px 70px #1c144624;--shadow-xs:0 1px 2px #1c14460a;--shadow-sm:0 2px 6px #1c14461a;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--canvas:#f5f4fa;--surface:#fff;--surface-muted:#faf9fd;--border-subtle:#ece9f7;--row-hover:#f8f7fe;--row-selected:#f2f0fe;--group-row:#f2f0fe;--track:#eeecf8;--accent-soft:#f2f0fe;--accent-soft-2:#e6e2fc;--font:var(--font-jakarta), "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;--pastel-violet:#7c6bf0;--pastel-blue:#4d9bf5;--pastel-teal:#2bb3a3;--pastel-green:#46bd7d;--pastel-yellow:#e8b13a;--pastel-orange:#f0894a;--pastel-pink:#e86b9e;--pastel-red:#e05a58;--bar-planned:#5b3df5;--bar-delay:#f2a33c;--bar-critical:#e05340;--bar-baseline:#d9d5ec;--bar-nearcritical:#e8b13a;--bar-complete:#46bd7d;--bar-notstarted:#c3bfd6;--bar-propagated:#f0894a;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--ease-drawer:cubic-bezier(.32, .72, 0, 1);--dur-fast:.12s;--dur:.18s;--dur-slow:.24s;--st-green:#0f7a55;--st-green-soft:#dcf4e8;--st-green-line:#b7e9c8;--st-blue:#4331c9;--st-blue-soft:#e8e4fd;--st-red:#b3402f;--st-red-soft:#fdece7;--st-red-line:#f5b5b0;--st-amber:#8a5a12;--st-amber-soft:#fbeed6;--st-amber-line:#f3cf9e;--st-gray:#5a5578;--st-gray-soft:#eeecf6;--st-purple:#6d3bb8;--st-purple-soft:#ece2fb;--danger-deep:#8e2020}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.6}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%}.container{max-width:1100px;margin:0 auto;padding:0 24px}.container-wide{max-width:1280px;margin:0 auto;padding:0 24px}h1,h2,h3,h4{letter-spacing:-.03em;color:#12102a;font-weight:800;line-height:1.2}h3,h4{letter-spacing:-.02em;font-weight:700}.btn{cursor:pointer;letter-spacing:-.01em;min-height:44px;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), transform .12s var(--ease-out);border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:0 24px;font-size:15px;font-weight:700;display:inline-flex;text-decoration:none!important}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 10px 24px #5b3df547}.btn-primary:hover{background:var(--accent-dark);box-shadow:0 10px 26px #5b3df552}.btn-secondary{color:var(--accent);border-color:var(--accent);background:0 0}.btn-secondary:hover{background:var(--accent-soft)}.btn-dark{background:var(--text);color:#fff}.btn-dark:hover{background:#000}.btn-ghost{color:var(--text);background:0 0}.btn-ghost:hover{background:#0000000d}.btn-sm{border-radius:999px;min-height:34px;padding:0 14px;font-size:13.5px}.btn-sm,.app-shell .btn,.app-shell .btn-primary:hover{box-shadow:none}.btn-lg{border-radius:999px;min-height:54px;padding:0 32px;font-size:16px}.logo{color:var(--text);letter-spacing:-.02em;align-items:center;gap:9px;font-size:18px;font-weight:700;display:flex;text-decoration:none!important}.logo svg{display:block}.hamburger{cursor:pointer;background:0 0;border:none;padding:10px;display:none}.hamburger span{background:var(--text);border-radius:2px;width:22px;height:2px;margin:5px 0;display:block}@media (max-width:860px){.sticky-cta{z-index:98;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:12px 20px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:#fffffff2;gap:12px;position:fixed;bottom:0;left:0;right:0;display:flex!important}.sticky-cta .btn{flex:1}}.sticky-cta{display:none}.section{padding:88px 0}.section.alt{background:var(--bg-alt)}.section-title{letter-spacing:-.03em;color:#12102a;margin-bottom:12px;font-size:clamp(28px,4vw,42px);font-weight:800;line-height:1.12}.section-sub{color:var(--text-secondary);max-width:620px;margin-bottom:44px;font-size:17px}.center{text-align:center}.center .section-sub{margin-left:auto;margin-right:auto}.grid{gap:20px;display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}@media (max-width:960px){.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.grid-2,.grid-3{grid-template-columns:1fr}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);transition:box-shadow var(--dur) var(--ease-out), transform var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out);padding:28px}@media (hover:hover) and (pointer:fine){.card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}}.card h3{margin-bottom:8px;font-size:18px}.card p{color:var(--text-secondary);font-size:14.5px}.card .icon{background:var(--accent-soft);width:44px;height:44px;color:var(--accent);border-radius:12px;justify-content:center;align-items:center;margin-bottom:16px;font-size:21px;display:flex}.mv-row{color:#4c4767;justify-content:space-between;align-items:center;font-size:12px;display:flex}.mv-row+.mv-row{margin-top:11px}.mv-key{align-items:center;gap:8px;display:flex}.mv-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;display:block}.mv-num{color:var(--muted);font-variant-numeric:tabular-nums}.mv-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.mv-head strong{font-size:13px;font-weight:700}.mv-chip{color:var(--text-secondary);border:1px solid var(--border);border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600}.mv-stack{gap:4px;height:9px;margin-top:16px;display:flex}.mv-stack>span{border-radius:999px;display:block}.mv-line+.mv-line{margin-top:16px}.mv-line-top{justify-content:space-between;align-items:baseline;margin-bottom:7px;font-size:12.5px;display:flex}.mv-line-top b{color:#4c4767;font-weight:600}.mv-line-top span{font-variant-numeric:tabular-nums;font-size:11.5px;font-weight:700}.mv-track{background:var(--track);border-radius:999px;height:6px;overflow:hidden}.mv-track>i{border-radius:999px;height:100%;display:block}.mv-tiles{gap:12px;display:flex}.mv-tile{border:1px solid var(--border-subtle);border-radius:12px;flex:1;padding:12px 14px}.mv-tile .k{letter-spacing:.06em;color:var(--muted);text-transform:uppercase;font-size:10.5px;font-weight:700}.mv-tile .v{letter-spacing:-.02em;color:var(--ink);margin-top:3px;font-size:20px;font-weight:800}.mv-cols{align-items:flex-end;gap:10px;height:62px;margin-top:12px;display:flex}.mv-cols>span{border-radius:6px;flex:1;display:block}.mv-select{border:1px solid var(--border);color:var(--ink);border-radius:10px;justify-content:space-between;align-items:center;padding:10px 12px;font-size:13px;font-weight:600;display:flex}.mv-select:after{content:"▾";color:var(--muted);font-size:11px}.mv-range{background:var(--track);border-radius:999px;height:4px;margin:10px 0 0;position:relative}.mv-range>i{background:var(--accent);border-radius:999px;position:absolute;inset:0 auto 0 0}.mv-range>b{background:var(--surface);border:3px solid var(--accent);border-radius:50%;width:16px;height:16px;position:absolute;top:50%;transform:translate(-50%,-50%)}.mv-note{background:var(--accent-soft);color:var(--accent-deep);border-radius:10px;margin-top:14px;padding:9px 12px;font-size:12px;font-weight:600;line-height:1.45}.reveal{opacity:0;transition:opacity .6s var(--ease-out), transform .6s var(--ease-out);transform:translateY(20px)}.reveal.visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}.billing-toggle{background:var(--track);border-radius:999px;padding:3px;display:inline-flex;position:relative}.billing-toggle button{cursor:pointer;color:var(--text-secondary);transition:background var(--dur) var(--ease-out), color var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out);background:0 0;border:none;border-radius:999px;min-height:40px;padding:9px 22px;font-size:14px;font-weight:600}.billing-toggle button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:0 2px 8px #0000001f}.tier-grid{grid-template-columns:repeat(4,1fr);align-items:stretch;gap:20px;display:grid}@media (max-width:1024px){.tier-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.tier-grid{grid-template-columns:1fr}}.tier-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);transition:box-shadow var(--dur) var(--ease-out), transform var(--dur) var(--ease-out);flex-direction:column;padding:32px;display:flex;position:relative}@media (hover:hover) and (pointer:fine){.tier-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-3px)}.tier-card.popular:hover{box-shadow:0 0 0 2px var(--accent), var(--shadow-hover)}}.tier-card.popular{background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent), var(--shadow);border-color:#0000}.tier-card .tier-name{font-size:20px;font-weight:600}.tier-card .tier-desc{color:var(--text-secondary);min-height:42px;margin:6px 0 18px;font-size:13.5px}.tier-card .price{letter-spacing:-.02em;font-size:48px;font-weight:700;line-height:1}.tier-card .per{color:var(--text-secondary);font-size:14px}.tier-card .annual-note{color:var(--text-secondary);margin-top:6px;font-size:13px}.tier-card ul{border-top:1px solid var(--border);margin-top:18px;padding-top:18px;list-style:none}.tier-card ul li{align-items:flex-start;gap:9px;padding:5px 0;font-size:14px;display:flex}.tier-card ul li .tick{color:var(--success);font-weight:700}.tier-card ul li .cross{color:#c7c7cc;font-weight:700}.badge{text-transform:uppercase;letter-spacing:.08em;border-radius:999px;padding:6px 14px;font-size:12px;font-weight:700;display:inline-block}.badge-popular{background:var(--accent);color:#fff}.badge-trial{background:var(--st-amber-soft);color:var(--st-amber)}.badge-save{background:var(--st-green-soft);color:var(--st-green);animation:.3s badgeIn}@keyframes badgeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow-x:auto}table.compare{border-collapse:collapse;width:100%;min-width:760px;font-size:14px}table.compare caption{text-align:left;padding:14px 16px;font-size:16px;font-weight:600}table.compare th,table.compare td{text-align:left;border-top:1px solid var(--bg-alt);padding:11px 16px}table.compare thead th{background:var(--bg-alt);border-top:none;font-weight:600}table.compare td.c{text-align:center}.faq-item{border-bottom:1px solid var(--border)}.faq-item summary{cursor:pointer;transition:color var(--dur-fast) var(--ease-out);justify-content:space-between;align-items:center;gap:16px;padding:18px 0;font-size:16px;font-weight:600;list-style:none;display:flex}.faq-item summary:hover{color:var(--accent)}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"+";color:var(--text-secondary);transition:transform var(--dur) var(--ease-out);flex-shrink:0;font-size:22px}.faq-item[open] summary:after{transform:rotate(45deg)}.faq-item .answer{color:var(--text-secondary);max-width:720px;padding:0 0 18px}.prose{max-width:760px}.prose h1{letter-spacing:-.035em;color:var(--ink);margin-bottom:8px;font-size:clamp(30px,4vw,40px);font-weight:800}.prose h2{letter-spacing:-.025em;color:var(--ink);margin:40px 0 12px;font-size:24px;font-weight:800}.prose h3{color:var(--ink);margin:28px 0 10px;font-size:18px;font-weight:700}.prose p,.prose li{color:#4c4767;font-size:15.5px;line-height:1.7}.prose p{margin:12px 0}.prose ul,.prose ol{margin:12px 0;padding-left:22px}.prose li{margin:6px 0}.prose .updated{color:var(--text-secondary);margin-bottom:28px;font-size:14px}.summary-box{background:var(--accent-soft);border:1px solid var(--accent-soft-2);border-radius:var(--radius);margin:24px 0;padding:20px 24px}.summary-box h3{margin-top:0!important}.page-head{background:linear-gradient(#e7e4fc 0%,#f3f2fe 55%,#fff 100%);padding:128px 0 44px}.page-head h1{letter-spacing:-.035em;color:var(--ink);text-wrap:balance;font-size:clamp(32px,4.6vw,48px);font-weight:800;line-height:1.1}.page-head p{color:#4c4767;text-wrap:pretty;max-width:620px;margin-top:14px;font-size:16px;line-height:1.6}.eyebrow{letter-spacing:.1em;color:var(--accent);text-transform:uppercase;margin-bottom:16px;font-size:12.5px;font-weight:700}.page-head-plain{background:0 0;padding-bottom:0}.av-initials{color:var(--accent-deep);letter-spacing:.02em;background:#edeafc;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.blog-featured{color:var(--text);transition:border-color var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out);border:1px solid #ebe8f7;border-radius:20px;grid-template-columns:1.05fr 1fr;gap:0;margin-top:44px;display:grid;overflow:hidden}.blog-featured:hover{box-shadow:var(--shadow);border-color:#c9c1ee;text-decoration:none}@media (max-width:860px){.blog-featured{grid-template-columns:1fr}}.blog-featured .bf-copy{flex-direction:column;justify-content:center;padding:44px 44px 40px;display:flex}.blog-featured .bf-art{background:var(--bg-alt);flex-direction:column;justify-content:center;gap:12px;padding:44px;display:flex}.blog-featured h2{letter-spacing:-.03em;color:var(--ink);text-wrap:balance;margin:20px 0 0;font-size:clamp(26px,3.2vw,34px);font-weight:800;line-height:1.16}.blog-featured .bf-ex{color:var(--text-secondary);margin:14px 0 0;font-size:15px;line-height:1.65}.tag-row{letter-spacing:.06em;color:var(--accent);flex-wrap:wrap;align-items:center;gap:10px;font-size:11.5px;font-weight:700;display:flex}.tag-pill{background:#f1eefc;border-radius:999px;padding:5px 11px}.tag-row .quiet{color:var(--muted)}.byline{color:var(--muted);align-items:center;gap:12px;margin-top:26px;font-size:12.5px;display:flex}.byline .av-initials{width:34px;height:34px;font-size:12px}.byline b{color:var(--ink);font-weight:700}.value-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}@media (max-width:900px){.value-grid{grid-template-columns:1fr}}.value-card{background:var(--bg-alt);border-radius:var(--radius-lg);padding:28px}.value-card h3{letter-spacing:-.02em;color:var(--ink);font-size:17px;font-weight:700}.value-card p{color:var(--text-secondary);margin-top:10px;font-size:13.5px;line-height:1.6}.media-card{flex-direction:column;padding:0;display:flex;overflow:hidden}.card-media{background:var(--surface);border-bottom:1px solid var(--border-subtle);flex-direction:column;justify-content:center;height:160px;padding:16px 18px;display:flex;overflow:hidden}.card-media .mv-line+.mv-line{margin-top:12px}.card-media .mv-note{margin-top:10px}.media-card .body{flex-direction:column;flex:1;padding:22px 24px 24px;display:flex}.media-card .body h3{letter-spacing:-.02em;color:var(--ink);font-size:16.5px;font-weight:700}.media-card .body p{color:var(--text-secondary);margin-top:9px;font-size:13.5px;line-height:1.6}.tpl-media{gap:8px}.tplv{width:100%;min-width:0;display:flex}.tpl-media-foot{flex-wrap:wrap;gap:5px;margin-top:8px;display:flex}.tpl-media-foot span{letter-spacing:.04em;color:var(--muted);border:1px solid var(--border-subtle);border-radius:999px;padding:2px 7px;font-size:9px;font-weight:700}.tplv-board{align-items:flex-start;gap:6px}.tplv-board .tplv-col{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.tplv-board .tplv-col-h{border-radius:3px;height:3px;display:block}.tplv-board .tplv-col-t{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:8.5px;font-weight:700;line-height:1.2;overflow:hidden}.tplv-board .tplv-card{background:var(--track);border:1px solid var(--border-subtle);border-radius:4px;height:13px;display:block}.tplv-gantt{flex-direction:column;gap:7px;position:relative}.tplv-gantt .tplv-grow{align-items:center;gap:7px;display:flex}.tplv-gantt .tplv-glabel{width:62px;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;font-size:9px;overflow:hidden}.tplv-gantt .tplv-gtrack{background:var(--track);border-radius:999px;flex:1;min-width:0;height:8px}.tplv-gantt .tplv-gtrack>i{border-radius:999px;height:100%;display:block}.tplv-gantt .tplv-today{background:var(--pastel-red);opacity:.55;border-radius:2px;width:1.5px;position:absolute;top:-2px;bottom:-2px;left:62%}.tplv-cal{flex-direction:column;gap:5px}.tplv-cal .tplv-cal-h{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.tplv-cal .tplv-cal-h span{color:var(--muted);text-align:center;letter-spacing:.04em;font-size:7.5px;font-weight:700}.tplv-cal .tplv-cal-g{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.tplv-cal .tplv-cal-g span{background:var(--track);border-radius:3px;height:12px;display:block}.tplv-cal .tplv-cal-g span.on{opacity:.85}.tplv-table{flex-direction:column;gap:5px}.tplv-table .tplv-th{align-items:center;gap:6px;display:flex}.tplv-table .tplv-th span{background:var(--accent-soft-2);border-radius:2px;flex:1;height:4px;display:block}.tplv-table .tplv-tr{align-items:center;gap:6px;display:flex}.tplv-table .tplv-td-name{color:#4c4767;text-overflow:ellipsis;white-space:nowrap;flex:2.2;min-width:0;font-size:8.5px;overflow:hidden}.tplv-table .tplv-pill{border-radius:999px;flex:1;height:8px;display:block}.tplv-table .tplv-td{background:var(--track);border-radius:2px;flex:1;height:5px;display:block}.tplv-load{flex-direction:column;gap:8px}.tplv-load .tplv-lrow{align-items:center;gap:7px;display:flex}.tplv-load .tplv-lname{width:58px;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;font-size:9px;overflow:hidden}.tplv-load .tplv-ltrack{background:var(--track);border-radius:999px;flex:1;min-width:0;height:8px;overflow:hidden}.tplv-load .tplv-ltrack>i{border-radius:999px;height:100%;display:block}.tplv-load .tplv-lpct{text-align:right;width:26px;color:var(--text-secondary);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:8.5px;font-weight:700}.tplv-budget{flex-direction:column;gap:8px}.tplv-budget .tplv-brow{align-items:center;gap:7px;display:flex}.tplv-budget .tplv-bname{width:58px;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;font-size:9px;overflow:hidden}.tplv-budget .tplv-bbars{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.tplv-budget .tplv-bbars>i{border-radius:999px;height:5px;display:block}.tplv-budget .tplv-bbars>i.p{background:var(--accent-soft-2)}.tplv-dash{flex-direction:column;gap:9px}.tplv-dash .tplv-kpis{gap:6px;display:flex}.tplv-dash .tplv-kpi{background:var(--track);border-radius:6px;flex:1;align-items:flex-end;height:26px;padding:5px;display:flex}.tplv-dash .tplv-kpi>i{background:var(--accent-pale);border-radius:2px;width:60%;height:4px;display:block}.tplv-dash .tplv-chart{align-items:flex-end;gap:4px;height:34px;display:flex}.tplv-dash .tplv-chart span{border-radius:3px 3px 0 0;flex:1;min-height:4px;display:block}.app-shell{background:var(--canvas);min-height:100vh;display:flex}.app-sidebar{background:var(--surface);width:240px;color:var(--text-secondary);border-right:1px solid var(--border-subtle);flex-direction:column;flex-shrink:0;gap:2px;height:100vh;padding:18px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.app-sidebar .logo{color:var(--text);padding:6px 10px 18px;font-size:17px}.app-sidebar .nav-item{border-radius:var(--r-md);color:var(--text-secondary);transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);align-items:center;gap:10px;padding:9px 12px;font-size:14px;font-weight:500;display:flex;position:relative}.app-sidebar .nav-item:hover{background:var(--bg-alt);color:var(--text);text-decoration:none}.app-sidebar .nav-item.active{background:var(--accent-soft);color:var(--accent-deep);font-weight:700}.app-sidebar .nav-sub{padding-left:30px;font-size:13.5px}.app-sidebar .nav-sub.quiet{color:var(--muted)}.app-sidebar .nav-sub.quiet:hover{color:var(--text)}.proj-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.nav-chevron{color:var(--muted);margin-left:auto;font-size:10px}.nav-account-wrap{margin-top:6px;position:relative}.nav-avatar{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:12.5px;font-weight:700;display:inline-flex}.nav-account-menu{z-index:140;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);width:210px;box-shadow:var(--shadow-hover);color:var(--text);padding:6px 0;position:absolute;bottom:46px;left:4px}.nav-account-menu .who{border-bottom:1px solid var(--border);margin-bottom:6px;padding:8px 14px 10px}.nav-account-menu .who .n{font-size:13.5px;font-weight:700}.nav-account-menu .who .e{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.nav-account-menu a.item,.nav-account-menu button.item{text-align:left;cursor:pointer;width:100%;font-size:13.5px;font-family:var(--font);color:var(--text);background:0 0;border:none;align-items:center;gap:8px;padding:8px 14px;display:flex}.nav-account-menu a.item:hover,.nav-account-menu button.item:hover{background:var(--bg-alt);text-decoration:none}.nav-collapsed .app-sidebar .nav-sub{padding-left:8px}.nav-collapsed .nav-chevron{display:none}.app-sidebar .divider{border-top:1px solid var(--border-subtle);margin:12px 8px}.app-main{flex-direction:column;flex:1;min-width:0;display:flex}.app-topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:50;align-items:center;gap:16px;height:56px;padding:0 20px;display:flex;position:sticky;top:0}.app-topbar .prog-name{font-size:14px;font-weight:600}.demo-banner{background:var(--st-amber-soft);border-bottom:1px solid var(--st-amber-line);color:var(--st-amber);text-align:center;padding:8px 20px;font-size:13px}.kpi-grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}@media (max-width:1100px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}.kpi-card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);transition:box-shadow var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out);padding:20px 22px}@media (hover:hover) and (pointer:fine){.kpi-card:hover{box-shadow:var(--shadow-sm);border-color:var(--border)}}.kpi-card .label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:10.5px;font-weight:700}.kpi-card .value{letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--ink);margin-top:6px;font-size:32px;font-weight:800;line-height:1}.kpi-card .hint{color:var(--text-secondary);margin-top:6px;font-size:12.5px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);margin-top:20px;overflow:hidden}.panel-head{border-bottom:1px solid var(--border-subtle);letter-spacing:-.01em;color:var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:15px 20px;font-size:14.5px;font-weight:700;display:flex}.panel-body{padding:20px}.settings-wrap{align-items:flex-start;gap:28px;display:flex}.settings-nav{-webkit-backdrop-filter:blur(16px)saturate(160%);border:1px solid var(--border-subtle);border-radius:var(--r-lg);width:210px;box-shadow:var(--shadow-xs);background:#ffffff8c;flex-shrink:0;padding:10px;position:sticky;top:16px}.settings-nav .sn-group{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:16px 9px 6px;font-size:10.5px;font-weight:700}.settings-nav>.sn-group:first-child,.settings-nav>button.sn-group:first-child{margin-top:2px}.settings-nav .sn-item{border-radius:var(--r-sm);color:var(--ink);transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);align-items:center;gap:9px;padding:7px 9px;font-size:13.5px;font-weight:500;display:flex}.settings-nav .sn-item svg{color:var(--text-secondary);transition:color var(--dur-fast) var(--ease-out)}.settings-nav .sn-item:hover{background:var(--bg-alt);text-decoration:none}.settings-nav .sn-item.active{background:var(--accent-soft);color:var(--accent-deep);font-weight:600}.settings-nav .sn-item.active svg{color:var(--accent)}.settings-nav .sn-group-btn{cursor:pointer;text-align:left;width:100%;transition:color var(--dur-fast) var(--ease-out);background:0 0;border:none;justify-content:space-between;align-items:center;font-family:inherit;display:flex}.settings-nav .sn-group-btn:hover{color:var(--ink)}.settings-nav .sn-chevron{transition:transform var(--dur-fast) var(--ease-out);font-size:9px;display:inline-block}.settings-nav .sn-chevron.open{transform:rotate(90deg)}.settings-nav .sn-item-sub{padding-left:18px}.settings-nav .sn-item.sn-collapsed{display:none}@keyframes settingsIn{0%{opacity:0;transform:translateY(6px)}}.settings-body{min-width:0;animation:settingsIn var(--dur-slow) var(--ease-out);flex:1}@media (prefers-reduced-motion:reduce){.settings-body{animation:none}.settings-nav .sn-chevron{transition:none}}@media (prefers-reduced-transparency:reduce){.settings-nav{background:var(--surface);-webkit-backdrop-filter:none}}.settings-title{letter-spacing:-.02em;margin:0 0 6px;font-size:22px;font-weight:800}.settings-sub{color:var(--text-secondary);margin:0 0 18px;font-size:13.5px;line-height:1.5}.st-hint{color:var(--text-secondary);margin-top:10px;font-size:12.5px;line-height:1.55}.sg-card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);box-shadow:var(--shadow-xs);overflow:hidden}.sg-card+.sg-card{margin-top:16px}.sg-row{justify-content:space-between;align-items:center;gap:18px;padding:15px 18px;display:flex}.sg-row+.sg-row{border-top:1px solid var(--bg-alt)}.sg-row .sg-label{color:var(--ink);font-size:14px;font-weight:600}.sg-row .sg-desc{color:var(--text-secondary);max-width:420px;margin-top:3px;font-size:12.5px;line-height:1.5}.sg-row .sg-control{flex-shrink:0}@media (max-width:600px){.sg-row{flex-direction:column;align-items:flex-start;gap:10px}}.plan-modal-card{background:var(--surface);border-radius:var(--r-lg);width:100%;max-width:960px;max-height:90vh;box-shadow:var(--shadow-hover);animation:modalIn .2s var(--ease-out);padding:26px 28px;overflow-y:auto}.plan-modal-card .tier-grid{margin-top:18px}.plan-modal-head{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}@media (prefers-reduced-motion:reduce){.plan-modal-card{animation:none}}@media (max-width:820px){.settings-wrap{flex-direction:column;align-items:stretch;gap:14px}.settings-nav{-webkit-backdrop-filter:none;width:100%;box-shadow:none;scrollbar-width:none;-webkit-overflow-scrolling:touch;background:0 0;border:none;border-radius:0;gap:4px;padding:0 0 2px;display:flex;position:static;overflow-x:auto}.settings-nav::-webkit-scrollbar{display:none}.settings-nav .sn-group,.settings-nav .sn-group-btn{display:none}.settings-nav .sn-item{white-space:nowrap;border:1px solid var(--border);background:var(--surface);flex-shrink:0}.settings-nav .sn-item.sn-collapsed{display:flex}.settings-nav .sn-item-sub{padding-left:10px}.settings-nav .sn-item.active{border-color:var(--accent-soft-2)}.settings-title{margin-bottom:4px;font-size:19px}}.dir-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px;display:flex}.dir-head .settings-title{margin:0}.dir-toolbar{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:12px;display:flex}.dir-search{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);width:280px;max-width:100%;padding:9px 12px;font-family:inherit;font-size:13.5px}.dir-search:focus{outline:2px solid var(--accent);outline-offset:-1px}.dir-count{color:var(--text-secondary);font-size:12.5px}.st-chip{border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.st-chip.st-active{background:var(--st-green-soft);color:var(--st-green)}.st-chip.st-invited{background:var(--accent-soft);color:var(--accent-deep)}.st-chip.st-expired{background:var(--bg-alt);color:var(--text-secondary)}.seg-row{border:1px solid var(--border);border-radius:var(--r-sm);display:inline-flex;overflow:hidden}.seg-row .seg-btn{background:var(--surface);cursor:pointer;font:inherit;color:var(--text-secondary);border:none;padding:8px 16px;font-size:13px;font-weight:600}.seg-row .seg-btn+.seg-btn{border-left:1px solid var(--border)}.seg-row .seg-btn:hover{background:var(--bg-alt)}.seg-row .seg-btn.active{background:var(--accent);color:#fff}.ma-project{border-bottom:1px solid var(--bg-alt);padding:13px 0}.ma-name{margin-bottom:8px;font-size:13.5px;font-weight:700}.dt-toolbar{border-bottom:1px solid var(--border-subtle);align-items:center;gap:12px;padding:10px 16px;display:flex}.dt-search{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);width:260px;max-width:100%;padding:7px 12px;font-family:inherit;font-size:13px}.dt-search:focus{outline:2px solid var(--accent);outline-offset:-1px}.dt-th-btn{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-weight:600;display:inline-flex}.dt-th-btn:hover{color:var(--accent)}.dt-sort{width:10px;font-size:9px;display:inline-block}.task-table-wrap{--grid-line:var(--border);overflow-x:auto}table.task-table{border-collapse:collapse;width:100%;min-width:980px;font-size:13.5px}table.task-table th{background:var(--surface-muted);text-align:left;color:var(--text-secondary);border-bottom:1px solid var(--grid-line);border-right:1px solid var(--grid-line);white-space:nowrap;z-index:5;padding:7px 10px;font-size:12.5px;font-weight:600;position:sticky;top:0}table.task-table td{border-bottom:1px solid var(--grid-line);border-right:1px solid var(--grid-line);white-space:nowrap;height:36px;padding:5px 10px}table.task-table th:last-child,table.task-table td:last-child{border-right:none}table.task-table td:first-child:not([colspan]){text-align:center}table.task-table td:first-child input[type=checkbox]{vertical-align:middle;accent-color:var(--accent)}table.task-table tbody tr:hover td{background:var(--row-hover)}table.task-table tr.ws-row td{background:var(--surface);box-shadow:inset 3px 0 0 var(--grp-color,var(--steel));color:var(--grp-color,var(--text));border-right:none;font-size:13px;font-weight:700}table.task-table input,table.task-table select{min-height:26px}table.task-table input[type=checkbox]{min-height:0}table.task-table input[type=number]{border-radius:var(--r-sm);background:0 0;border:1px solid #0000;width:64px;padding:3px 8px;font-size:13px}table.task-table input[type=number]:hover{border-color:var(--border);background:var(--surface)}table.task-table input[type=number]:focus{border-color:var(--accent);background:var(--surface);outline:none}.status-pill{border-radius:var(--r-sm);letter-spacing:.01em;min-width:96px;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;padding:3px 10px;font-size:11.5px;font-weight:700;display:inline-flex}.st-delayed{background:var(--st-red-soft);color:var(--st-red)}.st-progress{background:var(--st-blue-soft);color:var(--st-blue)}.st-complete{background:var(--st-green-soft);color:var(--st-green)}.st-notstarted{background:var(--st-gray-soft);color:var(--st-gray)}.imp-pill{border-radius:var(--r-sm);padding:2px 9px;font-size:11.5px;font-weight:700;display:inline-block}.imp-high{background:var(--st-red-soft);color:var(--st-red)}.imp-med{background:var(--st-amber-soft);color:var(--st-amber)}.imp-low{background:var(--st-green-soft);color:var(--st-green)}.risk-pill{border-radius:var(--r-sm);padding:2px 9px;font-size:11.5px;font-weight:700;display:inline-block}.rk-critical{background:var(--st-red);color:#fff}.rk-moderate{background:var(--st-amber-soft);color:var(--st-amber)}.rk-isolated{background:var(--st-gray-soft);color:var(--st-gray)}.pill-crit{background:var(--st-red-soft);color:var(--st-red)}.pill-nearcrit{background:var(--st-amber-soft);color:var(--st-amber)}.row-impacted td{background:#fff4f3!important}.gantt{align-items:flex-start;font-size:12.5px;display:flex;overflow:auto}.gantt-left{border-right:1px solid var(--border);background:var(--surface);z-index:6;flex-shrink:0;width:540px;position:sticky;left:0}.gantt-left .g-row,.gantt-right .g-row{border-bottom:1px solid var(--border-subtle);align-items:center;height:34px;display:flex}.gantt-left .g-row{white-space:nowrap;gap:8px;padding:0 12px;overflow:hidden}.gantt-left .g-row .t-name{text-overflow:ellipsis;flex:1;font-weight:500;overflow:hidden}.gantt-left .g-head{background:var(--surface-muted);height:48px;color:var(--text-secondary);letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--border-subtle);z-index:7;align-items:flex-end;gap:8px;padding:0 12px 7px;font-size:11.5px;font-weight:700;display:flex;position:sticky;top:0}.g-col-date,.g-cell-date{text-align:right;flex-shrink:0;width:58px}.g-col-status,.g-cell-status{flex-shrink:0;width:92px}.g-cell-date{color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:11px}.g-cell-status{justify-content:flex-end;display:flex}.g-col-status{text-align:right}.gantt-left .status-pill{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:92px;padding:2.5px 8px;font-size:10px;display:inline-block;overflow:hidden}.g-sub-toggle{cursor:pointer;width:14px;color:var(--text-secondary);background:0 0;border:none;flex-shrink:0;padding:0;font-size:9px}.g-sub-spacer{flex-shrink:0}.gantt-right,.gantt-right .g-row{position:relative}.gantt-right.wk-shaded .g-row{background-image:repeating-linear-gradient(90deg, var(--bg-alt) 0 var(--wkw), transparent var(--wkw) var(--wkp));background-position-x:var(--wko)}.g-timehead{background:var(--surface-muted);border-bottom:1px solid var(--border-subtle);z-index:5;flex-direction:column;height:48px;display:flex;position:sticky;top:0}.g-tier{display:flex}.g-tier-top{border-bottom:1px solid var(--border-subtle);height:22px}.g-seg{border-right:1px solid var(--border-subtle);white-space:nowrap;justify-content:center;align-items:center;display:flex;overflow:hidden}.g-seg em{letter-spacing:.05em;text-transform:uppercase;color:var(--text-secondary);padding:0 8px;font-size:10.5px;font-style:normal;font-weight:700}.g-tier-units{flex:1;position:relative}.g-unit{height:100%;color:var(--text-secondary);border-right:1px solid var(--border-subtle);flex-shrink:0;justify-content:center;align-items:center;font-size:11px;display:inline-flex;overflow:hidden}.g-unit.wkend{background:var(--bg-alt);color:var(--bar-notstarted)}.g-unit.today{background:var(--accent);color:#fff;border-radius:var(--r-sm);font-weight:700}.g-today-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;margin-left:-3px;position:absolute;bottom:3px}@media (max-width:1150px){.gantt-left{width:440px}.g-cell-status,.g-col-status{display:none}}@media (max-width:900px){.gantt-left{width:300px}.g-cell-date,.g-cell-status,.g-col-date,.g-col-status{display:none}}.gantt-bar{border-radius:var(--r-xs);height:18px;position:absolute;top:8px}.gantt-bar.delay-ext{background:repeating-linear-gradient(45deg, var(--bar-delay) 0 5px, #ffffffbf 5px 9px);border-radius:0 var(--r-xs) var(--r-xs) 0;box-shadow:inset 0 0 0 1px var(--bar-delay)}.gantt-bar.propagated{background:var(--bar-propagated);opacity:.85;border-radius:0 var(--r-xs) var(--r-xs) 0}.milestone{background:var(--navy);width:14px;height:14px;position:absolute;top:10px;transform:rotate(45deg)}.today-line{background:var(--accent);z-index:3;width:2px;position:absolute;top:0;bottom:0}.g-gridline{background:var(--border-subtle);pointer-events:none;width:1px;position:absolute;top:0;bottom:0}.gantt-legend{border-top:1px solid var(--bg-alt);color:var(--text-secondary);flex-wrap:wrap;gap:18px;padding:12px 20px;font-size:12.5px;display:flex}.gantt-legend .sw{vertical-align:baseline;border-radius:3px;width:14px;height:10px;margin-right:6px;display:inline-block}.board{align-items:stretch;gap:16px;padding-bottom:4px;display:flex;overflow:auto hidden}.board-col{flex:1 0 240px}@media (max-width:1024px){.board-col{flex:1 0 230px}}.board-col{background:var(--track);border-radius:var(--r-lg);border-top:3px solid var(--col-color,transparent);flex-direction:column;min-height:0;padding:12px;display:flex}.board-col h3{text-transform:uppercase;letter-spacing:.05em;color:var(--col-color,var(--text-secondary));flex-shrink:0;padding:4px 6px 12px;font-size:13px}.board-cards{flex:1;min-height:0;overflow-y:auto}.board-add-col{cursor:pointer;border:1.5px dashed var(--border);border-radius:var(--r-lg);font:inherit;color:var(--text-secondary);text-align:left;background:0 0;flex:0 0 240px;align-self:flex-start;padding:14px;font-size:13.5px;font-weight:600}.board-add-col:hover{border-color:var(--accent);color:var(--accent)}.board-add-col.as-note{cursor:default;flex-direction:column;align-items:flex-start;gap:8px;font-weight:400;display:flex}.board-add-col.as-note:hover{border-color:var(--border);color:var(--text-secondary)}.board-add-col.as-note p{margin:0;font-size:12.5px;line-height:1.5}.board-add-col.as-note .hint{opacity:.8;font-size:11.5px}.board-card{background:var(--surface);border-radius:var(--r-sm);border-left:3px solid var(--border);transition:box-shadow var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);margin-bottom:10px;padding:12px 14px;font-size:13.5px;box-shadow:0 1px 3px #00000012}@media (hover:hover) and (pointer:fine){.board-card.draggable:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}}.board-card .meta{color:var(--text-secondary);justify-content:space-between;margin-top:8px;font-size:12px;display:flex}.board-card{cursor:pointer}.board-card:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.card-badges{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.card-badges .bdg{color:var(--text-secondary);background:var(--bg-alt);border-radius:var(--r-xs);white-space:nowrap;align-items:center;gap:3px;padding:2px 6px;font-size:11px;display:inline-flex}.card-badges .bdg.overdue{background:var(--st-red-soft);color:var(--st-red);font-weight:700}.trust-bar{color:var(--text-secondary);flex-wrap:wrap;justify-content:center;gap:24px;margin-top:22px;font-size:13.5px;display:flex}.trust-bar span:before{content:"✓";color:var(--success);margin-right:7px;font-weight:700}.form-field{margin-bottom:16px}.form-field label{color:#3d3856;margin-bottom:7px;font-size:12.5px;font-weight:600;display:block}.form-field input:not([type=checkbox]):not([type=radio]),.form-field select,.form-field textarea{width:100%;font-size:14px;font-family:var(--font);background:var(--surface);color:var(--ink);border:1px solid #e1ddf4;border-radius:11px;padding:12px 14px}.form-field input::placeholder,.form-field textarea::placeholder{color:#787488}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #5b3df51f}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;max-width:430px;margin:0 auto;padding:36px 34px;box-shadow:0 18px 44px #5b3df524}.auth-card h1{letter-spacing:-.03em;color:var(--ink);font-size:27px;font-weight:800}.auth-card .auth-sub{color:var(--text-secondary);margin:10px 0 0;font-size:14px;line-height:1.6}.oauth-stack{flex-direction:column;gap:10px;margin-top:26px;display:flex}.btn-oauth{background:var(--surface);font-size:14px;font-weight:600;font-family:var(--font);color:var(--ink);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);border:1px solid #e1ddf4;border-radius:11px;justify-content:center;align-items:center;gap:10px;padding:12px 0;display:flex}.btn-oauth:hover{background:var(--bg-alt);border-color:#c9c1ee}.btn-oauth .mark{flex-shrink:0;width:18px;height:18px;display:block}.auth-or{color:var(--muted);align-items:center;gap:14px;margin:22px 0;font-size:12px;display:flex}.auth-or:before,.auth-or:after{content:"";background:#efedf8;flex:1;height:1px;display:block}.auth-section{background:linear-gradient(#eeebfd 0%,#f6f5fe 46%,#fff 100%);min-height:78vh;padding:132px 0 80px}.auth-steps{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:28px;font-size:13px;list-style:none;display:flex}.auth-steps li{align-items:center;gap:8px;display:flex}.auth-steps li:not(:last-child):after{content:"›";color:#c9c4de;margin-left:4px}.auth-steps .n{background:var(--track);width:22px;height:22px;color:var(--text-secondary);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.auth-steps li.on{color:var(--ink);font-weight:600}.auth-steps li.on .n{background:var(--accent);color:#fff}.status-dot{border-radius:50%;width:10px;height:10px;margin-right:8px;display:inline-block}.dot-green{background:var(--success)}.dot-amber{background:var(--amber)}.dot-red{background:var(--danger)}.uptime-bars{align-items:flex-end;gap:2px;height:36px;display:flex}.uptime-bars i{background:var(--success);border-radius:2px;flex:1;min-width:3px;height:100%}.uptime-bars i.degraded{background:var(--amber)}.heatmap{grid-template-columns:90px repeat(5,1fr);gap:4px;max-width:640px;display:grid}.heatmap .cell{color:#fff;border-radius:6px;justify-content:center;align-items:center;min-height:52px;font-size:15px;font-weight:700;display:flex}.heatmap .axis{color:var(--text-secondary);justify-content:flex-end;align-items:center;padding-right:10px;font-size:12px;font-weight:600;display:flex}.back-to-top{z-index:90;background:var(--navy);color:#fff;cursor:pointer;width:46px;height:46px;box-shadow:var(--shadow);opacity:0;pointer-events:none;border:none;border-radius:50%;font-size:18px;transition:opacity .25s;position:fixed;bottom:26px;right:26px}.back-to-top.show{opacity:1;pointer-events:auto}.cookie-banner{z-index:200;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:640px;box-shadow:var(--shadow-hover);margin:0 auto;padding:20px 24px;font-size:14px;position:fixed;bottom:20px;left:20px;right:20px}.cookie-banner .row{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.blog-card{border-radius:var(--radius-lg);flex-direction:column;padding:0;display:flex;overflow:hidden}.blog-card .cover{background:var(--bg-alt);border-bottom:1px solid var(--border-subtle);align-items:flex-end;height:132px;padding:16px;display:flex}.blog-card .cover span{color:var(--accent-deep);text-transform:uppercase;letter-spacing:.06em;background:#ece7fd;border-radius:999px;padding:5px 11px;font-size:11px;font-weight:700}.blog-card:nth-child(3n+2) .cover{background:#f2f7fd}.blog-card:nth-child(3n+2) .cover span{color:#1f5fa8;background:#e2eefc}.blog-card:nth-child(3n) .cover{background:#f1faf6}.blog-card:nth-child(3n) .cover span{color:#0f7a55;background:#dcf2e6}.blog-card .body{padding:20px 22px 24px}.blog-card h3{letter-spacing:-.02em;font-size:16.5px;font-weight:700;line-height:1.35}.blog-card .meta{color:var(--muted);margin-top:12px;font-size:12.5px}.tpl-thumb{background:var(--surface);border-radius:12px;justify-content:center;align-items:center;height:130px;margin-bottom:16px;font-size:34px;display:flex}.notfound{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:60vh;padding:120px 24px 80px;display:flex}.notfound h1{color:var(--accent);font-size:84px}.pill-tag{background:var(--bg-alt);color:var(--text-secondary);border-radius:6px;margin-right:6px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.calc{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:32px}.calc input[type=range]{width:100%;accent-color:var(--accent)}.calc .result-grid{text-align:center;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:22px;display:grid}@media (max-width:640px){.calc .result-grid{grid-template-columns:1fr}}.calc .result-grid .val{font-size:26px;font-weight:700}.calc .result-grid .lbl{color:var(--text-secondary);font-size:13px}.changelog-entry{border-left:2px solid var(--border);padding:0 0 34px 26px;position:relative}.changelog-entry:before{content:"";background:var(--accent);border-radius:50%;width:12px;height:12px;position:absolute;top:4px;left:-7px}.tag-new,.tag-improved,.tag-fixed{text-transform:uppercase;border-radius:5px;margin-right:8px;padding:2px 8px;font-size:11px;font-weight:700}.tag-new{color:#157347;background:#ddf5e4}.tag-improved{background:var(--accent-soft);color:var(--accent-deep)}.tag-fixed{background:var(--st-amber-soft);color:var(--st-amber)}.editor-overlay{z-index:300;background:#0f172a73;justify-content:flex-end;display:flex;position:fixed;inset:0}.editor-panel{background:var(--surface);width:min(480px,100%);height:100%;animation:drawerIn .28s var(--ease-drawer);padding:22px 24px 40px;overflow-y:auto;box-shadow:-8px 0 40px #0003}@keyframes drawerIn{0%{transform:translate(100%)}}.gantt-bar.draggable{cursor:grab}.gantt-bar.dragging{cursor:grabbing;opacity:.85;box-shadow:0 2px 8px #0000004d}.gantt-resize{cursor:ew-resize;width:8px;position:absolute;top:0;bottom:0;right:-3px}.zoom-ctl{background:var(--track);border-radius:var(--r-sm);padding:2px;display:inline-flex}.zoom-ctl button{border-radius:calc(var(--r-sm) - 2px);cursor:pointer;color:var(--text-secondary);background:0 0;border:none;min-height:30px;padding:5px 12px;font-size:12.5px;font-weight:600}.zoom-ctl button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:0 1px 4px #00000026}.board-card.draggable{cursor:grab}.board-col.drag-over{outline:2px dashed var(--accent);outline-offset:-4px}.board-col.col-dragging{opacity:.45}.board-card[data-over=true]{box-shadow:inset 0 3px 0 var(--accent)}.board-card{position:relative}.card-menu-wrap{position:absolute;top:6px;right:6px}.card-menu-btn{cursor:pointer;color:var(--text-secondary);border-radius:var(--r-xs);visibility:hidden;background:0 0;border:none;padding:0 4px;font-size:15px;line-height:1}.board-card:hover .card-menu-btn{visibility:visible}.card-menu-wrap:has([aria-expanded=true]) .card-menu-btn{visibility:visible}.card-menu-btn:hover{background:var(--bg-alt);color:var(--text)}.board-col.col-drag-over{box-shadow:inset 4px 0 0 var(--accent)}.cal-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal-head{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;padding:4px 6px;font-size:12px;font-weight:700}.cal-cell{border:1px solid var(--bg-alt);border-radius:var(--r-sm);background:var(--surface);min-height:96px;padding:6px;overflow:hidden}.cal-cell.weekend{background:var(--bg-alt)}.cal-cell.outside{opacity:.45}.cal-cell.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.cal-date{margin-bottom:4px;font-size:12px;font-weight:700}.cal-cell.today .cal-date{color:var(--accent)}.cal-chip{text-align:left;cursor:pointer;color:#fff;border-radius:var(--r-xs);text-overflow:ellipsis;white-space:nowrap;width:100%;transition:filter var(--dur-fast) var(--ease-out);border:none;margin-bottom:3px;padding:2px 6px;font-size:11px;font-weight:600;display:block;overflow:hidden}.cal-chip:hover{filter:brightness(1.12)}@media (max-width:900px){.cal-cell{min-height:64px}.cal-chip{font-size:10px}}.notif-bell{cursor:pointer;border-radius:var(--r-sm);background:0 0;border:none;min-height:36px;padding:6px 8px;font-size:18px;position:relative}.notif-bell:hover{background:var(--bg-alt)}.notif-badge{background:var(--danger);color:#fff;border-radius:999px;min-width:16px;padding:1px 5px;font-size:10px;font-weight:700;position:absolute;top:0;right:0}.notif-panel{z-index:200;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);width:340px;max-width:90vw;box-shadow:var(--shadow-hover);position:absolute;top:44px;right:0;overflow:hidden}.notif-item{text-align:left;border:none;border-bottom:1px solid var(--bg-alt);cursor:pointer;width:100%;font-family:var(--font);align-items:flex-start;gap:10px;padding:10px 14px;display:flex}.notif-item:hover{filter:brightness(.97)}.comment-item{border-bottom:1px solid var(--bg-alt);padding:10px 0}.comment-item .who{color:var(--text-secondary);margin-bottom:3px;font-size:12px}.comment-item .body{white-space:pre-wrap;font-size:13.5px}.dd{max-width:100%;display:inline-flex;position:relative}.dd.full{width:100%;display:flex}.dd-trigger{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);width:100%;min-height:32px;font-family:var(--font);color:var(--ink);text-align:left;cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);justify-content:space-between;align-items:center;gap:8px;padding:5px 10px 5px 12px;font-size:13px;display:inline-flex}.dd.full .dd-trigger{min-height:38px;font-size:13.5px}.dd-trigger:hover{border-color:var(--muted)}.dd-trigger:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft-2);outline:none}.dd-trigger:disabled{cursor:default;opacity:.55}.dd-trigger>svg{color:var(--muted);transition:transform var(--dur-fast) var(--ease-out)}.dd-trigger[aria-expanded=true]>svg{transform:rotate(180deg)}.dd-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dd-ph{color:var(--muted)}.dd-menu{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:7px;box-shadow:0 2px 6px #1c14460f,0 16px 40px -8px #1c144638}@media (prefers-reduced-motion:no-preference){.dd-menu{animation:ddMenuIn .13s var(--ease-out)}@keyframes ddMenuIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}}.dd-opt{border-radius:var(--r-sm);width:100%;min-height:32px;font-family:var(--font);color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:5px 10px;font-size:13.5px;display:flex}.dd-opt:hover,.dd-opt:focus-visible{background:var(--row-hover);outline:none}.dd-opt.on{color:var(--accent);font-weight:600}.dd-opt.on>svg{flex-shrink:0;margin-left:auto}.dd-opt-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ob-shell h1,.ob-shell h2,.ob-shell h3,.ob-state h1{font-family:var(--font-display);letter-spacing:-.02em;font-weight:600}.ob-shell{background:var(--bg);min-height:100vh;display:flex}.ob-form{flex:52%;justify-content:center;min-width:0;padding:44px 48px 56px;display:flex}.ob-form-inner{width:100%;max-width:560px}.ob-progress{margin:30px 0 34px}.ob-progress-track{gap:6px;max-width:250px;display:flex}.ob-progress-track span{background:var(--track);height:4px;transition:background var(--dur-fast) var(--ease-out);border-radius:999px;flex:1}.ob-progress-track span.on{background:var(--accent)}.ob-progress-label{letter-spacing:.02em;color:var(--muted);margin-top:10px;font-size:12px;font-weight:600;display:block}.ob-title{text-wrap:balance;margin-bottom:12px;font-size:clamp(24px,3vw,30px);line-height:1.15}.ob-sub{color:var(--text-secondary);max-width:48ch;margin:0 0 18px;font-size:14px;line-height:1.6}.ob-label{color:var(--text);margin:24px 0 10px;font-size:13px;font-weight:700}.ob-label .ob-optional{color:var(--muted);margin-left:6px;font-size:12px;font-weight:500}.ob-hint{color:var(--muted);max-width:52ch;margin-top:14px;font-size:12.5px;line-height:1.6}.ob-err{color:var(--danger);margin-top:14px;font-size:13.5px}@media (prefers-reduced-motion:no-preference){.ob-step{animation:ob-step-in .3s var(--ease-out) both}@keyframes ob-step-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}}.ob-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.ob-card{text-align:left;border:1.5px solid var(--border);border-radius:var(--r-md);background:var(--surface);cursor:pointer;font-family:var(--font);flex-direction:column;align-items:flex-start;gap:8px;padding:14px 15px 13px;font-size:14px;display:flex}.ob-card:hover{border-color:var(--accent-pale)}.ob-card.sel{border-color:var(--accent);background:var(--accent-soft)}.ob-card-ic{border-radius:var(--r-sm);background:var(--accent-soft);width:32px;height:32px;color:var(--accent);transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.ob-card.sel .ob-card-ic{background:var(--accent);color:#fff}.ob-card-tx{flex-direction:column;gap:3px;min-width:0;display:flex}.ob-card-tx strong{letter-spacing:-.01em;color:var(--text);font-size:14px}.ob-card-desc{color:var(--text-secondary);font-size:12px;line-height:1.45}.ob-chips{flex-wrap:wrap;gap:8px;display:flex}.ob-chips-wide{max-width:540px}.ob-chip{border:1.5px solid var(--border);background:var(--surface);cursor:pointer;font-size:13px;font-weight:600;font-family:var(--font);color:var(--text);border-radius:999px;align-items:center;gap:7px;padding:8px 14px;display:inline-flex}.ob-chip:hover{border-color:var(--accent-pale)}.ob-chip.sel{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.ob-chip.locked{color:var(--text-secondary);background:var(--surface-muted)}.ob-chip:disabled{opacity:.5;cursor:not-allowed}.ob-card:focus-visible,.ob-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ob-input{border:1.5px solid var(--border);border-radius:var(--r-sm);width:100%;font-size:14px;font-family:var(--font);color:var(--text);background:var(--surface);transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);padding:11px 13px}.ob-input::placeholder{color:var(--muted)}.ob-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft-2);outline:none}.ob-input-lg{max-width:460px;padding:13px 15px;font-size:15px}.ob-form .dd{min-width:250px}.ob-form .dd .dd-trigger{min-height:40px;font-size:13.5px}.ob-note{background:var(--accent-soft);border:1px solid var(--accent-soft-2);border-radius:var(--r-md);max-width:460px;margin-top:20px;padding:14px 18px}.ob-note p{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.6}.ob-invite-row{gap:8px;max-width:480px;margin-bottom:10px;display:flex}.ob-invite-row .dd{min-width:132px}.ob-nav{justify-content:space-between;align-items:center;gap:12px;margin-top:38px;display:flex}.ob-nav-right{align-items:center;gap:10px;display:flex}.ob-done-list{margin-top:6px}.ob-done-row{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 0;display:flex}.ob-done-av{background:var(--accent-soft);width:30px;height:30px;color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:inline-flex}.ob-done-who{flex-direction:column;flex:1;min-width:150px;display:flex}.ob-done-who strong{font-size:13.5px}.ob-done-who em{color:var(--muted);text-transform:capitalize;font-size:12px;font-style:normal}.ob-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;padding:40px 24px;display:flex}.ob-state h1{margin:0;font-size:24px}.ob-state p{color:var(--text-secondary);max-width:52ch;margin:0;font-size:14px;line-height:1.65}.ob-spinner{border:3px solid var(--track);border-top-color:var(--accent);border-radius:50%;width:26px;height:26px}@media (prefers-reduced-motion:no-preference){.ob-spinner{animation:.8s linear infinite ob-spin}@keyframes ob-spin{to{transform:rotate(360deg)}}}.ob-preview{background:radial-gradient(46rem 24rem at 18% -12%, #5b3df517, transparent 62%), radial-gradient(40rem 22rem at 88% 4%, #17a6730d, transparent 58%), radial-gradient(44rem 26rem at 60% 112%, #5b3df512, transparent 64%), var(--surface-muted);border-left:1px solid var(--border-subtle);flex:48%;justify-content:center;align-items:center;min-width:0;padding:48px 44px;display:flex}@media (max-width:900px){.ob-preview{display:none}.ob-form-inner{max-width:none}}.ob-mock{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);width:min(560px,100%);overflow:hidden;box-shadow:0 24px 70px -18px #1c144640,0 4px 16px #1c14460f}.ob-mock-head{border-bottom:1px solid var(--border-subtle);background:var(--surface-muted);justify-content:space-between;align-items:center;gap:10px;padding:13px 18px;display:flex}.ob-mock-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:600;overflow:hidden}.ob-mock-body{flex-direction:column;justify-content:center;min-height:230px;display:flex}.ob-team{flex-shrink:0;align-items:center;gap:8px;display:flex}.ob-team-avs{display:flex}.ob-team-avs span{border:2px solid var(--surface-muted);border-radius:50%;width:22px;height:22px;margin-left:-6px;display:inline-block}.ob-team-avs span:first-child{margin-left:0}.ob-team-label{color:var(--muted);white-space:nowrap;font-size:11px;font-weight:600}.obv{flex-direction:column;min-width:0;padding:20px 22px;display:flex}.obv-group{color:var(--text-secondary);align-items:center;gap:7px;margin:12px 0 6px;font-size:11px;font-weight:700;display:flex}.obv>div:first-child .obv-group{margin-top:0}.obv-group i{border-radius:3px;width:8px;height:8px;display:inline-block}.obv-tr{align-items:center;gap:10px;padding:6px 0;display:flex}.obv-name{flex:1;min-width:0}.obv-name i{background:var(--track);border-radius:4px;height:8px;display:block}.obv-pill{border-radius:999px;flex-shrink:0;width:52px;height:16px;display:block}.obv-cell{background:var(--bg-alt);border-radius:3px;flex-shrink:0;width:34px;height:7px;display:block}.obv-check{border:1.5px solid var(--border);border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.obv-check.on{background:var(--accent);border-color:var(--accent);color:#fff}.obv-gantt{gap:4px;position:relative}.obv-grow{align-items:center;gap:10px;padding:5px 0;display:flex}.obv-glabel{flex-shrink:0;width:76px}.obv-glabel i{background:var(--track);border-radius:4px;height:8px;display:block}.obv-gtrack{background:var(--bg-alt);border-radius:999px;flex:1;min-width:0;height:12px}.obv-gtrack i{border-radius:999px;height:100%;display:block}.obv-today{border-left:2px dashed var(--accent-pale);position:absolute;top:14px;bottom:14px;left:64%}.obv-board{flex-direction:row;align-items:flex-start;gap:10px}.obv-col{background:var(--bg-alt);border-radius:var(--r-md);flex-direction:column;flex:1;gap:6px;min-width:0;padding:8px;display:flex}.obv-col-band{border-radius:3px;height:3px;display:block}.obv-col-t{color:var(--text-secondary);font-size:10.5px;font-weight:700}.obv-bcard{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--r-sm);box-shadow:var(--shadow-xs);flex-direction:column;gap:6px;padding:8px;display:flex}.obv-bcard .ln{background:var(--track);border-radius:3px;height:6px;display:block}.obv-bcard .av{border-radius:50%;width:14px;height:14px;display:block}.obv-cal{gap:6px}.obv-cal-h{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.obv-cal-h span{color:var(--muted);text-align:center;font-size:9px;font-weight:700}.obv-cal-g{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.obv-cal-g>span{border-radius:var(--r-xs);background:var(--surface);border:1px solid var(--border-subtle);height:32px}.obv-cal-g>span.we{background:var(--bg-alt)}.obv-cal-g i{border-radius:3px;height:7px;margin:3px;display:block}.obv-members{padding-top:12px;padding-bottom:12px}.obv-mrow{border-bottom:1px solid var(--border-subtle);align-items:center;gap:10px;padding:9px 0;display:flex}.obv-mrow:last-child{border-bottom:0}.obv-mav{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;font-weight:700;display:inline-flex}.obv-mrow.ghost .obv-mav{border:1.5px dashed var(--border);background:0 0}.obv-mname{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.obv-mrole{color:var(--text-secondary);text-transform:capitalize;border:1px solid var(--border-subtle);border-radius:999px;padding:2px 9px;font-size:11px;font-weight:600}.ob-tpl .card-media{border:0;border-bottom:1px solid var(--border-subtle)}.ob-tpl-body{padding:14px 18px 16px}.ob-tpl-desc{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.55}.ob-tpl-meta{color:var(--muted);margin:10px 0 0;font-size:12px}.ob-tpl-tags{flex-wrap:wrap;gap:5px;margin-top:10px;display:flex}.ob-tpl-tags span{color:var(--text-secondary);border:1px solid var(--border-subtle);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}@media (max-width:620px){.ob-form{padding:28px 20px 40px}.ob-cards{grid-template-columns:1fr}.ob-card{flex-direction:row;align-items:center}.ob-nav,.ob-nav-right{flex-wrap:wrap}}.view-tabs{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:2px;padding:4px 20px 0;display:flex;overflow:visible}.vt-tab{white-space:nowrap;border-radius:var(--r-sm) var(--r-sm) 0 0;align-items:center;display:inline-flex;position:relative}.vt-tab a{color:var(--text-secondary);transition:color var(--dur-fast) var(--ease-out);align-items:center;gap:6px;padding:8px 4px 9px 12px;font-size:13px;font-weight:500;display:inline-flex}.vt-tab:hover{background:var(--bg-alt)}.vt-tab a:hover{color:var(--text);text-decoration:none}.vt-tab.active:after{content:"";background:var(--accent);border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:0;left:6px;right:6px}.vt-tab.active a{color:var(--accent);font-weight:600}.vt-more{cursor:pointer;color:var(--text-secondary);border-radius:var(--r-sm);background:0 0;border:none;padding:6px 10px;font-size:14px;font-weight:700;line-height:1}.vt-more:hover,.vt-more[aria-expanded=true]{background:var(--bg-alt);color:var(--text)}.vt-close{cursor:pointer;color:var(--text-secondary);visibility:hidden;background:0 0;border:none;padding:2px 7px 2px 2px;font-size:14px;line-height:1}.vt-tab:hover .vt-close{visibility:visible}.vt-close:hover{color:var(--danger)}.vt-add{cursor:pointer;color:var(--text-secondary);border-radius:var(--r-sm);background:0 0;border:none;padding:6px 11px;font-size:17px;font-weight:600;line-height:1}.vt-add:hover{background:var(--bg-alt);color:var(--text)}.vt-menu{z-index:150;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);width:210px;box-shadow:var(--shadow-hover);padding:8px 0;position:absolute;top:34px;left:0}.vt-menu button{text-align:left;cursor:pointer;width:100%;font-size:13.5px;font-family:var(--font);background:0 0;border:none;align-items:center;gap:9px;padding:8px 12px;display:flex}.vt-menu button:hover{background:var(--bg-alt)}.app-sidebar .nav-section{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-top:16px;padding:8px 12px 4px;font-size:11px;font-weight:700}.collapse-btn{color:var(--muted);cursor:pointer;border-radius:var(--r-sm);background:0 0;border:none;padding:4px 8px;font-size:15px}.collapse-btn:hover{background:var(--bg-alt);color:var(--text)}.nav-collapsed .app-sidebar{width:58px;padding:18px 8px}.nav-collapsed .app-sidebar .nav-label{display:none}.nav-collapsed .app-sidebar .nav-item{justify-content:center;padding:10px 8px}.nav-collapsed .app-sidebar .logo{padding-left:2px}.chat-pop{z-index:300;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);width:330px;max-width:calc(100vw - 40px);height:420px;max-height:70vh;box-shadow:var(--shadow-hover);flex-direction:column;display:flex;position:fixed;bottom:20px;right:20px;overflow:hidden}.chat-head{border-bottom:1px solid var(--bg-alt);align-items:center;gap:8px;padding:10px 12px;display:flex}.chat-body{flex-direction:column;flex:1;gap:8px;padding:12px;display:flex;overflow-y:auto}.chat-bubble{border-radius:var(--r-md);max-width:82%;padding:8px 12px;font-size:13.5px;line-height:1.45}.chat-bubble.mine{background:var(--accent);color:#fff;border-bottom-right-radius:var(--r-xs);align-self:flex-end}.chat-bubble.theirs{background:var(--track);color:var(--text);border-bottom-left-radius:var(--r-xs);align-self:flex-start}.chat-bubble .who{color:var(--steel);margin-bottom:2px;font-size:11px;font-weight:700}.chat-bubble .when{opacity:.7;text-align:right;margin-top:3px;font-size:10.5px}.chat-input{border-top:1px solid var(--bg-alt);gap:8px;padding:10px 12px;display:flex}.chat-input input{border:1px solid var(--border);font-size:13.5px;font-family:var(--font);border-radius:999px;flex:1;padding:9px 12px}.row-menu-wrap{display:inline-block;position:relative}.row-menu{z-index:120;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);width:150px;box-shadow:var(--shadow-hover);padding:6px 0;position:absolute;top:30px;right:0}.row-menu button{text-align:left;cursor:pointer;width:100%;font-size:13.5px;font-family:var(--font);background:0 0;border:none;padding:8px 14px;display:block}.row-menu button:hover{background:var(--bg-alt)}.row-menu button.danger{color:var(--danger)}.dots-btn,.chat-btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:var(--r-sm);color:var(--text-secondary);min-height:28px;padding:4px 8px;font-size:14px;line-height:1}.dots-btn:hover,.chat-btn:hover{background:var(--bg-alt);color:var(--text)}.chat-btn{align-items:center;gap:4px;font-size:12px;font-weight:600;display:inline-flex}.cell-input{font:inherit;border-radius:var(--r-sm);background:0 0;border:1px solid #0000;max-width:130px;padding:3px 6px}.cell-input:hover{border-color:var(--border);background:var(--surface)}.cell-input:focus{border-color:var(--accent);background:var(--surface);outline:none}.sb-slide{display:none}.sb-slide.active{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);flex-direction:column;min-height:480px;margin-top:16px;padding:44px 52px;display:flex}.sb-eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);font-size:12px;font-weight:700}.sb-slide h2{margin:8px 0 26px;font-size:clamp(26px,3.4vw,38px)}.sb-body{flex:1;font-size:15px}.sb-row{border-bottom:1px solid var(--bg-alt);align-items:center;gap:16px;padding:10px 0;display:flex}.sb-kpis{flex-wrap:wrap;gap:34px;margin-bottom:28px;display:flex}.sb-kpis>div{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:12.5px;font-weight:600}.sb-num{color:var(--text);letter-spacing:-.02em;font-size:34px;font-weight:700;display:block}.sb-sub{text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin:18px 0 6px;font-size:13px}.sb-foot{color:var(--text-secondary);margin-top:26px;font-size:11.5px}@media print{.app-sidebar,.view-tabs,.app-topbar,.project-header,.demo-banner,.sim-banner,.sb-controls,.back-to-top,.cookie-banner{display:none!important}.app-content{padding:0!important}.sb-slide{page-break-after:always;border:none;flex-direction:column;min-height:90vh;display:flex!important}}.table-toolbar{border-bottom:1px solid var(--bg-alt);background:var(--surface);z-index:20;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 20px;display:flex;position:sticky;top:0}.sticky-scroll{overflow:auto}.bucket-scroll{max-height:320px;overflow-y:auto}.col-controls{visibility:hidden;align-items:center;gap:1px;display:inline-flex}th:hover .col-controls{visibility:visible}.col-controls:has([aria-expanded=true]){visibility:visible}.th-resize{cursor:col-resize;width:7px;position:absolute;top:0;bottom:0;right:0}.th-resize:hover{background:var(--accent-pale)}.qsort{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;padding:0 3px;font-size:11px;line-height:1}.qsort:hover{color:var(--accent)}.undo-toast{z-index:400;background:var(--navy);color:#fff;box-shadow:var(--shadow-hover);animation:riseIn .2s var(--ease-out);border-radius:999px;align-items:center;gap:14px;padding:9px 10px 9px 18px;font-size:13.5px;display:flex;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}@keyframes riseIn{0%{opacity:0;transform:translate(-50%,14px)}}.undo-toast button{background:var(--surface);color:var(--navy);cursor:pointer;border:none;border-radius:999px;padding:5px 14px;font-size:13px;font-weight:700}.cmd-overlay{z-index:510;animation:overlayIn .15s var(--ease-out);background:#0f172a73;justify-content:center;align-items:flex-start;padding:90px 20px 20px;display:flex;position:fixed;inset:0}.cmd-card{background:var(--surface);border-radius:var(--r-lg);width:100%;max-width:560px;box-shadow:var(--shadow-hover);animation:modalIn .2s var(--ease-out);overflow:hidden}.cmd-input-row{border-bottom:1px solid var(--bg-alt);color:var(--text-secondary);align-items:center;gap:10px;padding:14px 18px;display:flex}.cmd-input-row input{font-size:15px;font-family:var(--font);color:var(--text);background:0 0;border:none;outline:none;flex:1}.cmd-input-row kbd{font-size:11px;font-family:var(--font);color:var(--text-secondary);background:var(--bg-alt);border-radius:var(--r-xs);padding:2px 6px}.cmd-results{max-height:340px;padding:6px;overflow-y:auto}.cmd-empty,.cmd-hint{color:var(--text-secondary);padding:14px 16px;font-size:13px}.cmd-error{color:var(--danger);padding:0 16px 12px;font-size:13px}.cmd-result{text-align:left;border-radius:var(--r-sm);cursor:pointer;width:100%;font-size:13.5px;font-family:var(--font);color:var(--text);background:0 0;border:none;align-items:center;gap:10px;padding:9px 10px;display:flex}.cmd-result.active,.cmd-result:hover{background:var(--bg-alt)}.cmd-ref{color:var(--text-secondary);min-width:34px;font-size:12px;font-weight:700}.cmd-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.cmd-group{color:var(--text-secondary);font-size:12px}.why-overlay{z-index:320;background:#0f172a73;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.why-card{background:var(--surface);border-radius:var(--r-lg);width:100%;max-width:520px;box-shadow:var(--shadow-hover);max-height:80vh;animation:modalIn .2s var(--ease-out);padding:26px 30px;overflow-y:auto}.why-step{border-bottom:1px solid var(--bg-alt);gap:10px;padding:8px 0;font-size:14px;display:flex}.why-step .n{color:#c2511f;background:#ffe8d9;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:700;display:flex}.col-add-pop{z-index:130;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);width:260px;box-shadow:var(--shadow-hover);text-align:left;padding:14px;font-weight:400;position:absolute;top:34px;right:0}.donut{border-radius:50%;flex-shrink:0;width:150px;height:150px;position:relative}.donut:after{content:attr(data-total);background:var(--surface);border-radius:50%;justify-content:center;align-items:center;font-size:24px;font-weight:700;display:flex;position:absolute;inset:26px}.legend-row{align-items:center;gap:8px;margin:6px 0;font-size:13.5px;display:flex}.dlg-overlay{z-index:500;background:#0f172a73;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.dlg-card{background:var(--surface);border-radius:var(--r-lg);width:100%;max-width:420px;max-height:90vh;box-shadow:var(--shadow-hover);animation:modalIn .2s var(--ease-out);padding:24px 26px;overflow-y:auto}.dlg-title{margin-bottom:8px;font-size:17px}.dlg-message{color:var(--text-secondary);margin-bottom:16px;font-size:13.5px;line-height:1.5}.dlg-input{border:1px solid var(--border);border-radius:var(--r-sm);width:100%;font-size:14px;font-family:var(--font);margin-bottom:16px;padding:9px 11px}.dlg-input:focus{outline:2px solid var(--accent);outline-offset:-1px}.dlg-actions{justify-content:flex-end;gap:8px;display:flex}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{color:#fff;background:#e03a30}.act-sidebar{background:var(--surface);border-left:1px solid var(--border);z-index:300;width:420px;max-width:calc(100vw - 40px);animation:drawerIn .28s var(--ease-drawer);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-12px 0 40px #0000001a}.act-head{border-bottom:1px solid var(--bg-alt);align-items:center;gap:10px;padding:14px 18px;display:flex}.act-title{text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:700;overflow:hidden}.act-sub{color:var(--text-secondary);font-size:12px}.act-body{flex:1;padding:8px 18px 20px;overflow-y:auto}.act-item{border-bottom:1px solid var(--bg-alt);align-items:flex-start;gap:10px;padding:11px 0;font-size:13px;display:flex}.act-when{color:var(--text-secondary);flex-shrink:0;align-items:center;gap:4px;width:66px;margin-top:4px;font-size:11.5px;display:inline-flex}.act-detail{flex:1;min-width:0}.act-line{line-height:1.45}.act-change{flex-wrap:wrap;align-items:center;gap:6px;margin-top:5px;display:flex}.act-pill{text-overflow:ellipsis;white-space:nowrap;border-radius:var(--r-sm);max-width:150px;padding:2px 9px;font-size:11.5px;font-weight:600;display:inline-block;overflow:hidden}.act-pill.old{background:var(--st-gray-soft);color:var(--st-gray);text-decoration:line-through}.act-pill.new{background:var(--accent-soft);color:var(--accent-deep)}.act-arrow{color:var(--text-secondary);font-size:11px}.avatar-chip{color:#fff;letter-spacing:.02em;-webkit-user-select:none;user-select:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.lastupd-btn{cursor:pointer;font:inherit;color:var(--text-secondary);border-radius:var(--r-sm);background:0 0;border:none;align-items:center;gap:7px;min-height:26px;padding:2px 6px;font-size:12.5px;display:inline-flex}.lastupd-btn:hover{background:var(--accent-soft);color:var(--text)}table.task-table th[draggable=true]{cursor:grab}table.task-table th.col-dragging{opacity:.45}table.task-table th.col-drag-over{box-shadow:inset 3px 0 0 var(--accent)}.flt-pop{z-index:160;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);width:430px;max-width:calc(100vw - 60px);box-shadow:var(--shadow-hover);padding:12px 14px;position:absolute;top:34px;left:0}.flt-row{align-items:center;gap:6px;margin-bottom:6px;display:flex}.flt-input{border:1px solid var(--border);border-radius:var(--r-sm);min-width:0;font-size:13px;font-family:var(--font);background:var(--surface);flex:1;padding:6px 8px}.flt-input:focus{outline:2px solid var(--accent);outline-offset:-1px}.flt-row .dd{flex:1;min-width:0}.flt-novalue{flex:1}.pop-right .flt-pop{left:auto;right:0}.dash-grid{grid-template-columns:repeat(3,1fr);align-items:start;gap:16px;display:grid}@media (max-width:1100px){.dash-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:720px){.dash-grid{grid-template-columns:1fr}}.dash-w-1{grid-column:span 1}.dash-w-2{grid-column:span 2}.dash-w-3{grid-column:1/-1}@media (max-width:1100px){.dash-w-2{grid-column:1/-1}}@media (max-width:720px){.dash-w-1,.dash-w-2{grid-column:auto}}.dash-widget{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}.dash-widget.dash-drag-over{box-shadow:0 0 0 2px var(--accent)}.dash-widget-head{border-bottom:1px solid var(--border-subtle);letter-spacing:-.01em;color:var(--ink);cursor:grab;align-items:center;gap:8px;padding:12px 16px;font-size:13.5px;font-weight:700;display:flex}.dash-widget-head:active{cursor:grabbing}.dash-widget-body{padding:14px 16px}table.task-table.density-compact td{height:28px;padding-top:1px;padding-bottom:1px}table.task-table.density-comfortable td{height:46px;padding-top:10px;padding-bottom:10px}.vt-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.vt-tab.vt-drag-over{box-shadow:inset 2px 0 0 var(--accent)}.vt-tab .vt-close[aria-expanded=true]{visibility:visible}.avm-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}@media (max-width:560px){.avm-grid{grid-template-columns:1fr 1fr}}.avm-type{border:1.5px solid var(--border);border-radius:var(--r-sm);background:var(--surface);cursor:pointer;font:inherit;color:var(--text-secondary);text-align:left;align-items:center;gap:7px;padding:8px 10px;font-size:13px;font-weight:600;display:flex}.avm-type:hover{border-color:var(--accent);color:var(--text)}.avm-type.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.avm-radio{cursor:pointer;align-items:center;gap:8px;padding:4px 0;font-size:13px;display:flex}.avm-radio input{accent-color:var(--accent)}.avm-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:22px;height:22px;padding:0}.avm-swatch.none{background:var(--surface);border-color:var(--border);position:relative}.avm-swatch.none:after{content:"∕";color:var(--text-secondary);justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;inset:0}.avm-swatch.active{outline:2px solid var(--accent);outline-offset:1px}.ct-icon{border-radius:var(--r-sm);color:#fff;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;line-height:1;display:inline-flex}.ct-search{border:1px solid var(--border);border-radius:var(--r-sm);width:100%;font-size:13.5px;font-family:var(--font);margin-bottom:10px;padding:8px 11px}.ct-search:focus{outline:2px solid var(--accent);outline-offset:-1px}.ct-cat{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:6px 0;font-size:11px;font-weight:700}.ct-grid{grid-template-columns:1fr 1fr;gap:2px;display:grid}.ct-item{cursor:pointer;border-radius:var(--r-sm);font:inherit;text-align:left;background:0 0;border:none;align-items:center;gap:9px;padding:7px 8px;font-size:13.5px;display:flex}.ct-item:hover{background:var(--bg-alt)}.pp-wrap{display:inline-block;position:relative}.pp-cell{cursor:pointer;font:inherit;border-radius:var(--r-sm);background:0 0;border:none;align-items:center;gap:7px;min-height:26px;padding:2px 6px;font-size:13px;display:inline-flex}button.pp-cell:hover{background:var(--accent-soft)}.pp-cell-name{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.pp-empty{border:1.5px dashed var(--border);background:var(--bg-alt);border-radius:50%;width:22px;height:22px;display:inline-block}.pp-cell:hover .pp-empty{border-color:var(--accent)}.pp-pop{z-index:140;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);width:270px;box-shadow:var(--shadow-hover);text-align:left;padding:12px;font-weight:400;position:absolute;top:30px;left:0}.pp-list{max-height:190px;overflow-y:auto}.pp-row{cursor:pointer;border-radius:var(--r-sm);width:100%;font:inherit;text-align:left;background:0 0;border:none;align-items:center;gap:9px;padding:6px 8px;font-size:13.5px;display:flex}.pp-row:hover{background:var(--bg-alt)}.pp-row.current{background:var(--accent-soft)}.pp-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.pp-clear{background:var(--bg-alt);width:26px;height:26px;color:var(--text-secondary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;display:inline-flex}.pp-invite{border-top:1px solid var(--bg-alt);border-radius:0 0 var(--r-sm) var(--r-sm);align-items:center;gap:8px;margin-top:4px;padding:8px;font-size:13.5px;display:flex}.pp-invite:hover{background:var(--bg-alt);text-decoration:none}.pp-note{background:var(--accent-soft);color:var(--accent-deep);border-radius:var(--r-sm);margin-top:8px;padding:7px 10px;font-size:12px;font-weight:600}.grp-sticky{align-items:center;gap:8px;width:max-content;max-width:calc(100vw - 340px);padding:0 12px 0 8px;display:inline-flex;position:sticky;left:0}.grp-toggle{cursor:pointer;color:inherit;border-radius:var(--r-sm);background:0 0;border:none;padding:4px 6px;font-size:11px}.grp-toggle:hover{background:#0000000f}.grp-name-input{font:inherit;border-radius:var(--r-sm);background:0 0;border:1px solid #0000;width:180px;padding:2px 6px;font-weight:700}.grp-name-input:hover{border-color:var(--border);background:var(--surface)}.grp-name-input:focus{border-color:var(--accent);background:var(--surface);outline:none}.grp-meta{color:var(--text-secondary);white-space:nowrap;font-size:12.5px;font-weight:400}.name-input{width:190px;max-width:230px;font-weight:600}.name-input:not(:hover):not(:focus){background:0 0;border-color:#0000}.calc-cell{cursor:help}.project-header{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:18px;padding:14px 20px;display:flex}.ph-left{flex:1;min-width:220px}.ph-name-btn{cursor:pointer;font:inherit;letter-spacing:-.01em;border-radius:var(--r-sm);color:var(--text);background:0 0;border:none;align-items:center;gap:8px;margin-left:-8px;padding:2px 8px;font-size:19px;font-weight:700;display:inline-flex}.ph-name-btn:hover{background:var(--bg-alt)}.ph-caret{color:var(--text-secondary);font-size:11px}.ph-meta{color:var(--text-secondary);margin-top:1px;font-size:12.5px}.ph-chips{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ph-chip{border-radius:var(--r-md);background:var(--bg-alt);border:none;flex-direction:column;gap:2px;min-width:92px;padding:7px 15px;display:flex}.ph-chip .t{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:10.5px;font-weight:700}.ph-chip .v{align-items:center;gap:6px;font-size:13.5px;font-weight:700;display:flex}.ph-menu{z-index:130;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);width:270px;max-height:380px;box-shadow:var(--shadow-hover);padding:6px 0;font-size:13.5px;font-weight:400;position:absolute;top:34px;left:0;overflow-y:auto}.ph-menu .sec{text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);padding:8px 14px 4px;font-size:10.5px;font-weight:700}.ph-menu .item{text-align:left;cursor:pointer;width:100%;font-size:13.5px;font-family:var(--font);color:var(--text);background:0 0;border:none;align-items:center;gap:8px;padding:7px 14px;display:flex}.ph-menu .item:hover{background:var(--bg-alt);text-decoration:none}.ph-menu .divider{border-top:1px solid var(--border);margin:6px 0}.ph-star{cursor:pointer;color:var(--bar-notstarted);background:0 0;border:none;padding:4px 10px 4px 4px}.ph-star:hover,.ph-star.on{color:var(--amber)}.bulk-bar{z-index:160;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-hover);max-width:calc(100vw - 40px);animation:riseIn .2s var(--ease-out);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px;display:flex;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}.bulk-bar .cnt{white-space:nowrap;margin-right:4px;font-size:13.5px;font-weight:700}.sub-indent{border-bottom:2px solid var(--border);vertical-align:middle;width:20px;height:1px;margin-right:2px;display:inline-block}.sub-toggle{cursor:pointer;color:var(--text-secondary);border-radius:var(--r-xs);vertical-align:middle;background:0 0;border:none;justify-content:center;align-items:center;padding:2px;line-height:0;transition:transform .15s,background .15s;display:inline-flex}.sub-toggle.open{transform:rotate(90deg)}.sub-toggle:hover{background:var(--bg-alt);color:var(--text)}.sub-toggle.empty{visibility:hidden}tr:hover .sub-toggle.empty{visibility:visible}.sub-chip{color:var(--text-secondary);background:var(--bg-alt);border-radius:var(--r-md);white-space:nowrap;margin-left:8px;padding:2px 8px;font-size:10.5px;font-weight:700}.tpl-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;display:grid}.tpl-group-h{color:var(--muted);margin:14px 0 8px;font-size:12.5px;font-weight:700}.tpl-catalog>div:first-child .tpl-group-h{margin-top:0}.tpl-card{text-align:left;cursor:pointer;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-md);font-family:var(--font);flex-direction:column;gap:4px;min-height:108px;padding:0 0 12px;display:flex;overflow:hidden}.tpl-card .card-media{border-bottom:1px solid var(--border-subtle);background:var(--surface-muted);height:86px;margin-bottom:8px;padding:10px 12px}.tpl-card .card-media .tpl-media-foot{display:none}.tpl-card .card-media .tplv-gantt,.tpl-card .card-media .tplv-load,.tpl-card .card-media .tplv-budget{gap:5px}.tpl-card .card-media .tplv-glabel,.tpl-card .card-media .tplv-lname,.tpl-card .card-media .tplv-bname{width:44px;font-size:8px}.tpl-card .card-media .tplv-grow:nth-child(n+4),.tpl-card .card-media .tplv-lrow:nth-child(n+4),.tpl-card .card-media .tplv-brow:nth-child(n+4),.tpl-card .card-media .tplv-tr:nth-child(n+4),.tpl-card .card-media .tplv-board .tplv-card:nth-child(n+4){display:none}.tpl-card .card-media .tplv-dash .tplv-kpi{height:20px}.tpl-card .card-media .tplv-dash .tplv-chart{height:24px}.tpl-card .card-media .tplv-cal .tplv-cal-g span{height:8px}.tpl-card .tpl-name,.tpl-card .tpl-desc{padding:0 14px}.tpl-card:hover{border-color:var(--accent-pale)}.tpl-card.sel{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent)}.tpl-card .tpl-icon{font-size:20px;line-height:1}.tpl-card .tpl-name{font-size:13.5px;font-weight:700}.tpl-card .tpl-desc{color:var(--text-secondary);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:11.5px;line-height:1.35;display:-webkit-box;overflow:hidden}.app-shell{background:var(--canvas)}.panel,.kpi-card{border-color:var(--border-subtle);box-shadow:var(--shadow-xs)}.panel-head,.app-topbar,.project-header,.view-tabs{border-bottom-color:var(--border-subtle)}.tpl-card,.bulk-bar,.row-menu,.ph-menu,.nav-account-menu{border-color:var(--border-subtle)}.app-shell .btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--border);box-shadow:var(--shadow-xs)}.app-shell .btn-secondary:hover{background:var(--canvas);border-color:var(--muted)}.btn:active{transform:scale(.98)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:-1px}.vt-add,.vt-more,.vt-close,.dots-btn,.chat-btn,.notif-bell,.grp-toggle,.ct-item,.pp-row,.row-menu button,.ph-menu .item,.nav-account-menu a.item,.nav-account-menu button.item,.vt-menu button,.lastupd-btn,.pp-cell,.qsort,.collapse-btn,.ph-name-btn,.ph-star,.notif-item,.avm-type,.tpl-card,.ob-card,.ob-chip,.hamburger,.grp-name-input,.cell-input,.name-input{transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out)}.form-field input,.form-field select,.form-field textarea,.flt-input,.ct-search,.dlg-input,.chat-input input{transition:border-color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out)}.app-shell ::-webkit-scrollbar{width:10px;height:10px}.app-shell ::-webkit-scrollbar-track{background:0 0}.app-shell ::-webkit-scrollbar-thumb{border-radius:var(--r-sm);background:#c9cdd6 padding-box content-box;border:2px solid #0000}.app-shell ::-webkit-scrollbar-thumb:hover{background-color:#aab0bb;background-clip:content-box;border:2px solid #0000}@keyframes popIn{0%{opacity:0;transform:translateY(-4px)scale(.97)}}@keyframes popInUp{0%{opacity:0;transform:translateY(4px)scale(.97)}}.vt-menu,.row-menu,.ph-menu,.notif-panel,.flt-pop,.pp-pop,.col-add-pop,.vt-menu-wrap .row-menu{animation:popIn .14s var(--ease-out);transform-origin:top}.pop-right .flt-pop{transform-origin:100% 0}.nav-account-menu{animation:popInUp .14s var(--ease-out);transform-origin:0 100%}@keyframes modalIn{0%{opacity:0;transform:translateY(10px)scale(.97)}}@keyframes overlayIn{0%{opacity:0}}.dlg-overlay,.why-overlay,.editor-overlay{animation:overlayIn .15s var(--ease-out)}.app-content{padding:22px 24px 40px}.app-shell .card{border-radius:var(--r-lg);border-color:var(--border-subtle);box-shadow:var(--shadow-xs)}.app-shell .panel{box-shadow:var(--shadow-xs)}.table-toolbar{border-bottom-color:var(--border-subtle);border-radius:var(--r-lg) var(--r-lg) 0 0}.table-toolbar input[type=search],.table-toolbar input[type=text],.table-toolbar select{border:1px solid var(--border);font-size:13px;font-family:var(--font);background:var(--surface);color:var(--ink);border-radius:999px;min-height:34px;padding:6px 14px}.table-toolbar input:focus,.table-toolbar select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #5b3df51f}.table-toolbar label{color:var(--text-secondary);font-size:12.5px;font-weight:600}.empty-state{text-align:center;padding:52px 24px}.empty-state .ico{border-radius:var(--r-lg);background:var(--accent-soft);width:56px;height:56px;color:var(--accent);justify-content:center;align-items:center;margin-bottom:14px;display:inline-flex}.empty-state h2{letter-spacing:-.025em;color:var(--ink);margin-bottom:8px;font-size:19px;font-weight:800}.empty-state p{color:var(--text-secondary);max-width:400px;margin:0 auto 22px;font-size:14px;line-height:1.6}.view-label{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:26px 0 12px;font-size:10.5px;font-weight:700}.view-label:first-child{margin-top:0}.skel{background:var(--track);border-radius:var(--r-sm);height:12px;display:inline-block;position:relative;overflow:hidden}.skel:after{content:"";background:linear-gradient(90deg,#0000,#ffffffbf,#0000);animation:1.4s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes shimmer{to{transform:translate(100%)}}.skel-row{align-items:center;gap:12px;padding:11px 0;display:flex}.skel-dot{border-radius:50%;flex-shrink:0;width:16px;height:16px}.hamburger{cursor:pointer;border-radius:var(--r-sm);color:var(--text);background:0 0;border:none;padding:6px 8px;line-height:1;display:none}.hamburger:hover{background:var(--bg-alt)}.nav-backdrop{z-index:290;background:#0f172a73;animation:.15s overlayIn;position:fixed;inset:0}@media (max-width:820px){.hamburger{display:inline-flex}.app-sidebar{z-index:300;width:264px;height:100dvh;transition:transform .22s;position:fixed;top:0;bottom:0;left:0;transform:translate(-105%)}.mobile-nav-open .app-sidebar{transform:none;box-shadow:12px 0 60px #00000059}.nav-collapsed .app-sidebar{width:264px;padding:18px 12px}.nav-collapsed .app-sidebar .nav-label{display:inline}.nav-collapsed .app-sidebar .nav-item{justify-content:flex-start;padding:9px 12px}.nav-collapsed .nav-chevron{display:inline}.collapse-btn{display:none}.app-content{padding:14px}.app-topbar{gap:10px;padding:0 10px}.project-header{gap:10px;padding:10px 14px}.ph-name-btn{font-size:17px}.ph-chip{min-width:0;padding:5px 10px}.view-tabs{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding:4px 12px 0;overflow-x:auto}.view-tabs::-webkit-scrollbar{display:none}.vt-tab,.vt-add,.vt-more{flex-shrink:0}.table-toolbar{padding:8px 12px}.kpi-grid{gap:10px}.kpi-card{padding:14px 16px}.kpi-card .value{font-size:24px}.bulk-bar{gap:6px;max-width:calc(100vw - 20px);padding:8px 10px;bottom:10px}.sticky-scroll,.gantt{max-height:none}}.tpl-card.locked{opacity:.55}.tpl-card .tpl-lock{color:var(--text-secondary);background:var(--bg-alt);border-radius:var(--r-sm);white-space:nowrap;margin-left:8px;padding:2px 7px;font-size:10.5px;font-weight:700}.subs-row>td{background:var(--canvas);border-right:none;padding:8px 10px 12px 42px}.subtable{border:1px solid var(--border-subtle);border-left:3px solid var(--accent);border-radius:var(--r-md);background:var(--surface);max-width:100%;box-shadow:var(--shadow-xs);overflow-x:auto}.subtable table{border-collapse:collapse;width:100%;min-width:0;font-size:13px}.subtable table th{background:var(--surface-muted);text-align:left;border-bottom:1px solid var(--border-subtle);white-space:nowrap;z-index:auto;border-right:none;padding:6px 10px;font-weight:600;position:static}.subtable table td{border-bottom:1px solid var(--bg-alt);white-space:nowrap;border-right:none;height:34px;padding:4px 10px}.subtable table tbody tr:last-child td{border-bottom:none}.subtable table tbody tr:hover td{background:var(--row-hover)}.row-menu .menu-divider{border-top:1px solid var(--border-subtle);margin:6px 0}.row-menu .menu-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);padding:6px 14px 2px;font-size:10.5px;font-weight:700}.row-menu .menu-split{gap:6px;padding:2px 14px 4px;display:flex}.row-menu .menu-split button{border:1px solid var(--border-subtle);background:var(--surface);border-radius:var(--r-sm);cursor:pointer;font-size:12.5px;font-family:var(--font);color:var(--text);text-align:center;white-space:nowrap;flex:1;padding:5px 8px}.row-menu .menu-split button:hover{background:var(--bg-alt)}.grp-menu .swatches{align-items:center;gap:9px;padding:4px 14px 8px;display:flex}.grp-menu .swatch{cursor:pointer;width:16px;height:16px;transition:transform var(--dur-fast) var(--ease-out);border:2px solid #0000;border-radius:50%;flex-shrink:0;padding:0}@media (hover:hover) and (pointer:fine){.grp-menu .swatch:hover{transform:scale(1.15)}}.grp-menu .swatch.active{border-color:var(--text)}table.task-table tr.row-dragging{opacity:.45}table.task-table tr.drop-above td{box-shadow:inset 0 2px 0 0 var(--accent)}table.task-table tr.drop-below td,table.task-table tr.ws-row.drop-into td{box-shadow:inset 0 -2px 0 0 var(--accent)}table.task-table tr[draggable=true]{cursor:grab}table.task-table tr[draggable=true]:active{cursor:grabbing}.remember-row{color:var(--ink);cursor:pointer;align-items:flex-start;gap:10px;margin:4px 0 16px;font-size:13.5px;display:flex}.remember-row input{width:16px;height:16px;accent-color:var(--brand);cursor:pointer;flex-shrink:0;margin-top:1px}.remember-row em{color:var(--text-secondary);margin-top:2px;font-size:12.5px;font-style:normal;display:block}.signed-in-card{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-alt);flex-direction:column;gap:2px;padding:14px 16px;display:flex}.signed-in-label{color:var(--text-secondary);font-size:12.5px}.signed-in-email{letter-spacing:-.01em;word-break:break-all;font-size:15px}.bill-card{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);margin-top:14px;padding:20px 22px}.bill-card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.bill-card-head h2{letter-spacing:-.01em;margin:0;font-size:16px}.bill-card-head>div>p{color:var(--text-secondary);margin:5px 0 0;font-size:13.5px}.bill-card-head .btn{flex-shrink:0}.bill-card .st-hint{margin-top:12px}.bill-card.danger{background:snow;border-color:#f0d3d0}.bill-card.danger h2,.btn.danger{color:var(--danger)}.bill-note{border:1px solid var(--st-amber-line);background:var(--st-amber-soft);border-radius:var(--r-md);margin-bottom:14px;padding:14px 16px;font-size:14px}.bill-msg{color:var(--success);margin:12px 0 0;font-size:13.5px}.bill-err{color:var(--danger);margin:12px 0 0;font-size:13.5px}.bill-stats{flex-wrap:wrap;gap:34px;margin-top:18px;display:flex}.bill-stats>div{flex-direction:column;gap:3px;display:flex}.bill-stats span{text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);font-size:11.5px;font-weight:700}.bill-stats strong{letter-spacing:-.02em;font-size:26px;font-weight:800}.bill-stats em{color:var(--text-secondary);font-size:13px;font-style:normal;font-weight:600}.code-list{border-top:1px solid var(--bg-alt);margin-top:16px}.code-row{border-bottom:1px solid var(--bg-alt);flex-wrap:wrap;align-items:center;gap:12px;padding:9px 0;display:flex}.code-row code{letter-spacing:.12em;font-size:14.5px;font-weight:700}.code-row code.used{opacity:.45}.code-used{color:var(--text-secondary);margin-left:auto;font-size:12.5px}.redeem-row{margin-top:18px}.redeem-row label{margin-bottom:8px;font-size:13.5px;font-weight:600;display:block}.redeem-row>div{flex-wrap:wrap;gap:10px;display:flex}.redeem-row input{border:1px solid var(--border);border-radius:var(--r-sm);min-width:190px;max-width:260px;font:inherit;letter-spacing:.12em;flex:1;padding:9px 11px;font-weight:700}.seat-plan-row{border:1px solid var(--border);border-radius:var(--r-md);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:16px;padding:12px 14px;display:flex}.seat-count-row{justify-content:space-between;align-items:center;gap:14px;margin-top:16px;font-size:14px;font-weight:600;display:flex}.seat-stepper{border:1px solid var(--border);border-radius:var(--r-sm);align-items:center;display:inline-flex;overflow:hidden}.seat-stepper button{background:var(--bg-alt);cursor:pointer;width:34px;height:36px;color:var(--ink);border:0;font-size:17px;line-height:1}.seat-stepper button:disabled{opacity:.4;cursor:not-allowed}.seat-stepper input{border:0;border-left:1px solid var(--border);border-right:1px solid var(--border);text-align:center;width:58px;height:36px;font:inherit;-moz-appearance:textfield;font-weight:700}.seat-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.seat-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.seat-total{border-top:1px solid var(--bg-alt);margin-top:16px;padding-top:14px}.seat-total-row{justify-content:space-between;gap:14px;padding:4px 0;font-size:14px;display:flex}.seat-total-row strong{letter-spacing:-.01em;font-size:16px}.seat-total-per{color:var(--text-secondary);font-size:12.5px;font-weight:600}.card-on-file{border:1px solid var(--border);border-radius:var(--r-md);flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;display:flex}.contact-row{border-bottom:1px solid var(--bg-alt);align-items:center;gap:10px;padding:9px 0;display:flex}.ap-name-row{border-bottom:1px solid var(--border-subtle);align-items:center;gap:8px;margin-bottom:8px;padding:2px 2px 10px;display:flex}.ap-name-row .ct-icon.none{background:var(--bg-alt);color:var(--muted)}.ap-name-row input{min-width:0;font:inherit;color:var(--ink);background:0 0;border:none;outline:none;flex:1;font-size:14px;font-weight:600}.ap-name-row input::placeholder{color:var(--muted);font-weight:500}.ap-type-head{align-items:center;gap:8px;margin:2px 0 4px;display:flex}.ap-type-head .ct-cat{margin:0}.ap-type-head input{background:var(--bg-alt);width:130px;font:inherit;transition:border-color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);border:1px solid #0000;border-radius:999px;outline:none;margin-left:auto;padding:4px 10px;font-size:12px}.ap-type-head input:focus{border-color:var(--accent);background:var(--surface)}.ap-scroll{max-height:min(420px,60vh);padding-right:2px;overflow-y:auto}.ct-cat .ct-cat-tag{background:var(--accent-soft-2);color:var(--accent-deep);letter-spacing:.03em;vertical-align:1px;border-radius:999px;margin-left:6px;padding:1px 7px;font-size:9.5px}.ct-item .ct-tag,.ct-item .ct-soon{letter-spacing:.03em;border-radius:999px;margin-left:auto;padding:1px 6px;font-size:9.5px;font-weight:700}.ct-item .ct-tag{background:var(--accent-soft-2);color:var(--accent-deep)}.ct-item .ct-soon{background:var(--bg-alt);color:var(--text-secondary)}.ct-item.added{opacity:.55;cursor:default}.ct-item.added .ct-chk{color:var(--success);margin-left:auto;display:inline-flex}.ct-item.soon{opacity:.5;cursor:default}.ct-item.soon:hover{background:0 0}.ap-foot{color:var(--text-secondary);border-top:1px solid var(--border-subtle);min-height:44px;margin-top:8px;padding:9px 2px 0;font-size:12px;line-height:1.45}.ap-foot b{color:var(--ink);font-weight:600}.tl-cell{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.tl-cell .tl-arrow{color:var(--muted);padding:0 1px;font-size:11px}.tl-cell .tl-empty{color:var(--muted);font-size:12.5px}.needs-prop{text-align:center;padding:44px 24px}.needs-prop .ico{background:var(--accent-soft);width:48px;height:48px;color:var(--accent-deep);border-radius:14px;justify-content:center;align-items:center;margin-bottom:12px;display:inline-flex}.needs-prop h3{margin:0 0 6px;font-size:17px}.needs-prop p{color:var(--text-secondary);margin:0 0 16px;font-size:13.5px}.prop-hint{border:1px dashed var(--accent-pale);background:var(--accent-soft);border-radius:var(--r-md);color:var(--text-secondary);align-items:center;gap:12px;margin:14px 20px 0;padding:10px 14px;font-size:13.5px;display:flex}.prop-hint strong{color:var(--ink)}.prop-hint .grow{flex:1}.skip-link{z-index:2000;background:var(--accent);color:#fff;border-radius:8px;padding:10px 14px;font-size:14px;font-weight:600;text-decoration:none;position:absolute;top:-100px;left:8px}.skip-link:focus{outline:2px solid var(--ink);outline-offset:2px;top:8px}#main-content:focus{outline:none}.hp-field{width:1px;height:1px;position:absolute;top:auto;left:-10000px;overflow:hidden}
