@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--purple:#4f008c;--purple-deep:#380064;--purple-night:#22003d;--purple-card-dark:#3d0a66;--purple-mid:#601998;--purple-bright:#9b45dd;--lavender:#f4eefa;--lavender-line:#e6dbf2;--coral:#ff375e;--coral-ink:#c8102e;--coral-soft:#ffedf0;--blue:#5b7ae8;--blue-ink:#2e4bb8;--blue-soft:#eaeffd;--green:#237f53;--green-ink:#1b6a44;--green-soft:#e3f5ec;--ink:#17121f;--body:#3f3a4a;--muted:#5f5970;--label:#6447a8;--line:#e9e5f0;--line-strong:#d8d1e3;--page:#f7f5fb;--white:#fff;--radius:14px;--radius-sm:10px;--shadow-sm:0 1px 2px #22003d0d;--shadow:0 1px 2px #22003d0a, 0 4px 16px -4px #22003d14;--shadow-lg:0 2px 4px #22003d0a, 0 16px 40px -12px #22003d2e;--font:"Inter Variable", Inter, system-ui, -apple-system, "Segoe UI", Tahoma, Arial, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{margin:0}body{background:var(--page);color:var(--body);font:14.5px/1.55 var(--font);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11", "ss01"}h1,h2,h3{color:var(--ink);letter-spacing:-.01em;margin:0;font-weight:650}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--purple-bright);outline-offset:2px}a{color:var(--purple);text-underline-offset:2px}.mono{font-family:var(--mono);font-size:12.5px}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.icon{flex:none;display:block}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.shell{grid-template-columns:252px minmax(0,1fr);min-height:100vh;display:grid}.rail{background:radial-gradient(120% 60% at 0% 0%, #4a0d7e 0%, transparent 60%), linear-gradient(180deg, #2c0050 0%, var(--purple-night) 100%);color:#e9ddf7;flex-direction:column;gap:2px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.rail .logo{background:var(--white);border-radius:12px;margin:0 2px 22px;padding:10px 14px;box-shadow:0 6px 20px -8px #00000080}.rail .logo img{width:100%;height:auto;display:block}.navhead{letter-spacing:.12em;text-transform:uppercase;color:#b9a3d9;padding:16px 12px 6px;font-size:11px;font-weight:600}.nav{color:#e6d9f5;border-radius:10px;align-items:center;gap:11px;padding:9px 12px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.nav .icon{opacity:.8}.nav:hover{color:var(--white);background:#ffffff12}.nav[aria-current=page]{color:var(--white);background:#ffffff1f;font-weight:600;box-shadow:inset 0 0 0 1px #ffffff14}.nav[aria-current=page] .icon{opacity:1;color:#ff8fa6}.nav .count{background:var(--coral-ink);color:var(--white);text-align:center;border-radius:999px;min-width:22px;margin-left:auto;padding:1px 7px;font-size:11.5px;font-weight:600}.railfoot{background:#ffffff0f;border-radius:12px;align-items:center;gap:10px;margin-top:auto;padding:10px;font-size:13px;display:flex}.avatar{background:linear-gradient(135deg, var(--coral), var(--purple-bright));width:34px;height:34px;color:var(--white);border-radius:50%;flex:none;place-items:center;font-size:12.5px;font-weight:650;display:grid}.who{min-width:0;color:var(--white);font-weight:600;line-height:1.3}.who span{color:#cdb9e8;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:400;display:block;overflow:hidden}.railfoot button{color:#cdb9e8;cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;margin-left:auto;padding:6px}.railfoot button:hover{color:var(--white);background:#ffffff1a}.main{min-width:0}.page{max-width:1180px;margin:0 auto;padding:34px 40px 80px}.pagehead{flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:26px;display:flex}.pagehead h1{letter-spacing:-.02em;font-size:28px;font-weight:700;line-height:1.2}.pagehead p{color:var(--muted);margin:6px 0 0;font-size:15px}.pagehead .label{margin:0 0 6px}.label{letter-spacing:.1em;text-transform:uppercase;color:var(--label);margin:0 0 6px;font-size:11.5px;font-weight:650}.back{color:var(--muted);align-items:center;gap:6px;font-size:13.5px;font-weight:550;text-decoration:none;display:inline-flex}.back:hover{color:var(--purple)}.stack{flex-direction:column;gap:18px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.between{justify-content:space-between}.grow{flex:1;min-width:0}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.card.v2{background:linear-gradient(180deg, #fbf8fe 0%, var(--lavender) 100%);border-color:var(--lavender-line)}.card.white{box-shadow:var(--shadow-sm)}.card h2{margin-bottom:6px;font-size:17px}.lead{max-width:72ch;margin:0 0 16px}.btn{border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--white);height:40px;color:var(--ink);cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-sm);justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s,transform 50ms;display:inline-flex}.btn:hover{background:#faf8fd;border-color:#c9beda}.btn:active{transform:translateY(1px)}.btn.primary{background:linear-gradient(180deg, #5e0aa3 0%, var(--purple) 100%);border-color:var(--purple);color:var(--white);box-shadow:0 1px 2px #4f008c4d,inset 0 1px #ffffff24}.btn.primary:hover{background:linear-gradient(180deg, #6a15b2 0%, var(--purple-mid) 100%);box-shadow:0 4px 14px -4px #4f008c8c}.btn.danger{color:var(--coral-ink)}.btn.danger:hover{background:var(--coral-soft);border-color:#f5b5c2}.btn.sm{height:34px;padding:0 12px;font-size:13.5px}.btn[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none}.link{color:var(--purple);cursor:pointer;text-underline-offset:2px;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.pill{white-space:nowrap;color:var(--body);background:#f1eef6;border:1px solid #0000;border-radius:999px;flex:none;align-items:center;gap:6px;padding:2px 10px;font-size:12.5px;font-weight:550;line-height:1.5;display:inline-flex}.pill b{font-weight:700}.pill.ready{background:var(--green-soft);color:var(--green-ink)}.pill.fixed{background:var(--lavender);color:var(--purple);border-color:var(--lavender-line)}.pill.held{background:var(--coral-soft);color:var(--coral-ink)}.pill.progress{background:var(--blue-soft);color:var(--blue-ink)}.pill.ready:before,.pill.held:before,.pill.progress:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.pill.big{padding:6px 16px;font-size:14px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--white);border:1px solid var(--line-strong);color:var(--ink);border-radius:8px;align-items:center;gap:7px;padding:4px 10px;font-size:13.5px;font-weight:500;display:inline-flex}.chipnum{color:var(--label);font-size:11px;font-weight:650}.chip button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 0 0 2px;font-size:16px;line-height:1}.chip button:hover{color:var(--coral-ink)}.tiles{flex:1;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.tile{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:14px 16px 14px 18px;position:relative;overflow:hidden}.tile:before{content:"";background:var(--line-strong);border-radius:0 3px 3px 0;width:3px;position:absolute;top:12px;bottom:12px;left:0}.tile.ready:before{background:var(--green)}.tile.fixed:before{background:var(--purple-bright)}.tile.held:before{background:var(--coral)}.tile b{color:var(--ink);letter-spacing:-.02em;font-size:28px;font-weight:700;line-height:1.15;display:block}.tile.ready b{color:var(--green-ink)}.tile.fixed b{color:var(--purple)}.tile.held b{color:var(--coral-ink)}.tile span{color:var(--muted);font-size:12.5px;font-weight:500}.bar{background:#f0edf5;border-radius:999px;gap:2px;height:8px;display:flex;overflow:hidden}.bar i{border-radius:2px;height:100%;display:block}.bar i:first-child{border-radius:999px 2px 2px 999px}.bar i:last-child{border-radius:2px 999px 999px 2px}.bar .ready{background:var(--green)}.bar .fixed{background:var(--purple-bright)}.bar .held{background:var(--coral)}.legend{color:var(--muted);flex-wrap:wrap;gap:14px;font-size:12.5px;display:flex}.legend span:before{content:"";vertical-align:1px;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.legend .ready:before{background:var(--green)}.legend .fixed:before{background:var(--purple-bright)}.legend .held:before{background:var(--coral)}.meter{background:#eeeaf4;border-radius:999px;height:8px;margin:12px 0 8px;overflow:hidden}.meter i{background:linear-gradient(90deg, var(--blue), var(--purple-bright));border-radius:999px;height:100%;transition:width .3s;display:block}label.field{color:var(--ink);flex-direction:column;gap:6px;font-size:13.5px;font-weight:600;display:flex}input[type=text],input[type=email],input[type=password],input[type=number],select,textarea{background:var(--white);border:1px solid var(--line-strong);border-radius:var(--radius-sm);min-width:0;max-width:100%;box-shadow:var(--shadow-sm);padding:9px 12px;font-weight:400;transition:border-color .15s,box-shadow .15s}input:hover,select:hover,textarea:hover{border-color:#c3b7d6}input:focus,select:focus,textarea:focus{border-color:var(--purple-bright);outline:none;box-shadow:0 0 0 3px #9b45dd2e}select{appearance:none;cursor:pointer;background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%235F5970' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 4.5 3 3 3-3'/%3E%3C/svg%3E") no-repeat right 12px center;width:100%;padding-right:34px}.error{background:var(--coral-soft);color:var(--coral-ink);border-radius:var(--radius-sm);border:1px solid #f8c4ce;padding:11px 15px;font-weight:600}.note{color:var(--muted);font-size:13px}.empty{text-align:center;color:var(--muted);padding:44px}.tablewrap{background:var(--white);border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13.5px}th{color:var(--muted);text-align:left;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border-bottom:1px solid var(--line);background:#faf8fd;padding:11px 16px;font-size:11.5px;font-weight:650}td{vertical-align:middle;color:var(--ink);border-bottom:1px solid #f1eef5;padding:12px 16px}tbody tr:last-child td{border-bottom:0}tr.click{cursor:pointer;transition:background .1s}tr.click:hover td{background:#faf7fe}td.mono,td.num,td.muted{white-space:nowrap}td.trunc{text-overflow:ellipsis;white-space:nowrap;max-width:320px;overflow:hidden}td a{font-weight:600;text-decoration:none}td a:hover{text-decoration:underline}.tabs{background:#efebf5;border-radius:12px;flex-wrap:wrap;gap:2px;width:fit-content;padding:3px;display:inline-flex}.tab{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:9px;padding:6px 14px;font-size:13.5px;font-weight:550;transition:background .15s,color .15s}.tab:hover{color:var(--ink)}.tab[aria-pressed=true]{background:var(--white);color:var(--purple);font-weight:650;box-shadow:0 1px 3px #22003d1f}.steps{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);align-items:center;margin:0 0 24px;padding:14px 18px;list-style:none;display:flex;overflow-x:auto}.steps li{color:var(--muted);white-space:nowrap;flex:1;align-items:center;gap:10px;font-weight:550;display:flex}.steps li:last-child{flex:none}.steps li i{border:1px solid var(--line-strong);background:#f1eef6;border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-size:12.5px;font-style:normal;font-weight:650;display:grid}.steps li:after{content:"";background:var(--line);border-radius:2px;flex:1;min-width:24px;height:2px;margin:0 14px 0 4px}.steps li:last-child:after{display:none}.steps li.on{color:var(--ink);font-weight:650}.steps li.on i{background:var(--purple);border-color:var(--purple);color:var(--white);box-shadow:0 0 0 4px #9b45dd2e}.steps li.done i{background:var(--green);border-color:var(--green);color:var(--white)}.steps li.done:after{background:var(--green)}.drop{border-radius:var(--radius);text-align:center;background:radial-gradient(70% 90% at 50% 0%, #fbf7ff 0%, var(--white) 70%);border:1.5px dashed #cdb9e6;padding:48px 20px;transition:border-color .15s,background .15s}.drop.over{border-color:var(--purple);background:var(--lavender)}.drop h3{margin:14px 0 4px;font-size:18px}.drop .muted{margin:0 0 18px}.dropicon{width:56px;height:56px;color:var(--purple);background:var(--lavender);border:1px solid var(--lavender-line);border-radius:16px;place-items:center;display:inline-grid}.fieldrow{border-bottom:1px solid var(--line);grid-template-columns:150px minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:8px 16px;padding:12px 0;display:grid}.fieldrow:last-child{border-bottom:0}.fieldrow label b{color:var(--ink);font-weight:600}.fieldrow .ex{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.choices{border:0;gap:10px;margin:0;padding:0;display:grid}.choices legend{margin-bottom:4px;padding:0}.choices label{color:var(--ink);cursor:pointer;align-items:center;gap:10px;display:flex}.choices input{accent-color:var(--purple);width:18px;height:18px;margin:0}.project{border:1px solid var(--line);background:#fdfcfe;border-radius:12px;grid-template-columns:minmax(0,1fr) auto;gap:14px 24px;margin-top:12px;padding:18px 20px;transition:border-color .15s,box-shadow .15s;display:grid}.project:hover{border-color:var(--line-strong);box-shadow:var(--shadow-sm)}.project h3{flex-wrap:wrap;align-items:center;gap:8px;font-size:16px;display:flex}.project h3 .pill{white-space:normal}.project .acts{flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;gap:8px;display:flex}.project .full{grid-column:1/-1}.hrow{background:var(--white);border-radius:10px;grid-template-columns:140px minmax(0,1fr) auto auto;align-items:center;gap:6px 14px;margin-top:8px;padding:10px 14px;display:grid}.stream{background:radial-gradient(90% 120% at 100% 0%, #3b0a68 0%, transparent 55%), var(--purple-night);color:#ede3f8;border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:22px}.stream h2{color:var(--white);font-size:16px}.stream .mono{color:#cdb9e8}.lane{grid-template-columns:100px minmax(0,1fr) 190px;align-items:center;gap:12px;margin:10px 0;font-size:13px;display:grid}.track{background:#ffffff1a;border-radius:999px;height:8px;overflow:hidden}.track i{background:linear-gradient(90deg, var(--blue), #9fb2f5);border-radius:999px;height:100%;transition:width .4s;display:block}.msg{font:12px/1.6 var(--mono);color:#e2d4f5;white-space:pre-wrap;word-break:break-word;background:#00000047;border:1px solid #ffffff14;border-radius:10px;margin:14px 0 0;padding:12px 14px;overflow-x:auto}.stream .btn{color:var(--white);box-shadow:none;background:#ffffff0f;border-color:#ffffff40}.stream .btn:hover{background:#ffffff1f}.login{background:var(--white);grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);min-height:100vh;display:grid}.loginbrand{color:#ede3f8;background:radial-gradient(80% 60% at 0% 0%, #5a1496 0%, transparent 60%), radial-gradient(60% 50% at 100% 100%, #ff375e59 0%, transparent 60%), var(--purple-night);flex-direction:column;justify-content:space-between;gap:40px;padding:44px 52px;display:flex}.loginlogo{background:var(--white);border-radius:12px;width:fit-content;padding:10px 14px}.loginlogo img{width:220px;height:auto;display:block}.loginkicker{letter-spacing:.12em;text-transform:uppercase;color:#ff9db1;margin:0 0 12px;font-size:12px;font-weight:650}.loginline{letter-spacing:-.02em;color:var(--white);max-width:18ch;margin:0 0 26px;font-size:30px;font-weight:650;line-height:1.25}.loginbrand ul{gap:12px;margin:0;padding:0;list-style:none;display:grid}.loginbrand li{color:#dccdef;align-items:center;gap:10px;display:flex}.loginbrand li:before{content:"✓";width:22px;height:22px;color:var(--white);background:#ffffff1f;border-radius:50%;flex:none;place-items:center;font-size:12px;display:grid}.login form{flex-direction:column;place-self:center;gap:18px;width:100%;max-width:380px;padding:32px 24px;display:flex}.login h1{letter-spacing:-.02em;font-size:26px}.login .btn{height:44px;margin-top:4px}.loginmobile{width:220px;display:none}.tree-top{border-top:1px solid var(--line);padding:14px 0}.tree-top:first-child{border-top:0}.addrow{align-items:center;gap:6px;display:inline-flex}.addrow input{width:180px;padding:7px 11px;font-size:13.5px}.cols3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;display:grid}.dbgrid{grid-template-columns:280px minmax(0,1fr);align-items:start;gap:18px;display:grid}textarea.sql{width:100%;min-height:160px;font:13px/1.6 var(--mono);background:#fcfbfe}@media (width<=960px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=860px){.shell{grid-template-columns:minmax(0,1fr)}.rail{flex-direction:row;align-items:center;height:auto;padding:10px 16px;position:static;overflow-x:auto}.rail .logo{flex:none;width:150px;margin:0 8px 0 0;padding:6px 8px}.navhead,.railfoot .who,.railfoot .avatar{display:none}.railfoot{background:0 0;margin:0 0 0 8px;padding:0}.nav{white-space:nowrap}.page{padding:22px 16px 60px}.fieldrow,.project,.hrow{grid-template-columns:minmax(0,1fr)}.project .acts{justify-content:flex-start}.lane{grid-template-columns:70px minmax(0,1fr) 120px}.dbgrid,.login{grid-template-columns:minmax(0,1fr)}.loginbrand{display:none}.loginmobile{display:block}.steps li span{display:none}.steps li.on span{display:inline}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
