:root{--p1: #cfe5df;--p2: #a6cbbc;--p3: #7aa192;--p4: #356855;--p5: #395346;--p6: #908d7e;--brand: var(--p4);--brand-2: var(--p3);--brand-weak: var(--p1);--brand-deep: var(--p5);--ink: #1c2321;--ink-2: #3f4a46;--ink-3: var(--p6);--line: #e2ebe7;--line-2: #cfdcd6;--bg: #f4f8f6;--surface: #ffffff;--danger: #b0413e;--warn: #a8702a;--ok: #2f7d5a;--radius: 1rem;--radius-sm: .55rem;--shadow: 0 1px 2px rgb(28 35 33 / 4%), 0 6px 20px -12px rgb(53 104 85 / 18%);--shadow-lg: 0 20px 50px -20px rgb(53 104 85 / 35%), 0 2px 8px rgb(28 35 33 / 6%);--nav-w: 224px;--top-h: 56px;--ease: cubic-bezier(.22, 1, .36, 1);font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0;font-size:14px;line-height:1.55;background:var(--bg)}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--brand)}::selection{background:var(--p2);color:var(--ink)}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes rise-sm{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes card-in{0%{opacity:0;transform:translateY(22px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes card-out{to{opacity:0;transform:translateY(-26px) scale(.97)}}@keyframes slide-left{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important}}.net-canvas{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.login-wrap{position:relative;min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(900px 600px at 20% 10%,rgb(207 229 223 / 70%),transparent 60%),radial-gradient(700px 500px at 85% 90%,rgb(166 203 188 / 55%),transparent 60%),linear-gradient(180deg,#f6faf8,#eef5f2);transition:opacity .4s var(--ease)}.login-wrap.leaving{opacity:0}.login-card{position:relative;z-index:1;width:100%;max-width:380px;padding:34px 34px 26px;background:#ffffffdb;-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);border:1px solid rgb(255 255 255 / 80%);border-radius:20px;box-shadow:var(--shadow-lg);animation:card-in .6s var(--ease) both}.login-card.leaving{animation:card-out .42s var(--ease) forwards}.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:26px}.login-brand h1{margin:0;font-size:24px;letter-spacing:-.02em}.login-brand h1 span{color:var(--brand)}.login-brand p{margin:2px 0 0;font-size:12px;color:var(--ink-3)}.login-card input{padding:10px 12px;border-radius:10px;background:#fff}.login-btn{width:100%;padding:11px 14px;border-radius:10px;font-size:14px;letter-spacing:.01em;box-shadow:0 8px 20px -10px #35685599}.login-foot{margin:18px 0 0;text-align:center;font-size:11.5px;color:var(--ink-3)}.app-enter .topbar{animation:fade .45s var(--ease) both}.app-enter .sidebar{animation:slide-left .5s var(--ease) .05s both}.topbar{position:fixed;inset:0 0 auto 0;height:var(--top-h);display:flex;align-items:center;gap:12px;padding:0 18px;background:linear-gradient(90deg,var(--p5) 0%,var(--p4) 55%,#2c5a4a 100%);color:#fff;z-index:10;box-shadow:0 1px #ffffff14 inset,0 4px 18px -10px #39534699}.topbar .brand{display:inline-flex;align-items:center;gap:10px;font-weight:700;letter-spacing:-.01em;font-size:15px}.topbar .brand>span:not(.brand-mark):not(.brand-sub){color:var(--p1)}.brand-mark{width:24px;height:24px;border-radius:8px;background:conic-gradient(from 200deg,var(--p1),var(--p3) 45%,var(--p4) 75%,var(--p2));box-shadow:inset 0 0 0 5px #ffffffeb,0 0 0 1px #0000000d}.brand-mark.big{width:44px;height:44px;border-radius:14px;box-shadow:inset 0 0 0 9px #fff,0 8px 18px -8px #3568557f}.brand-sub{margin-left:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;color:var(--p1);border:1px solid rgb(207 229 223 / 35%)}.topbar .spacer{flex:1}.topbar .who{font-size:12.5px;color:var(--p1);opacity:.9}.topbar .ghost{color:#fff;border-color:#ffffff40;border-radius:999px;padding:5px 14px}.topbar .ghost:hover:not(:disabled){background:#ffffff1f}.sidebar{position:fixed;top:var(--top-h);bottom:0;left:0;width:var(--nav-w);padding:12px 10px;border-right:1px solid var(--line);background:var(--surface);overflow-y:auto}.sidebar .group{margin-bottom:8px}.sidebar .group-title{padding:8px 10px 4px;font-size:10.5px;font-weight:700;color:var(--ink-3);letter-spacing:.1em;text-transform:uppercase}.navitem{display:flex;align-items:center;width:100%;text-align:left;padding:8px 10px;margin-bottom:2px;border:0;border-radius:10px;background:transparent;cursor:pointer;color:var(--ink-2);transition:background .15s,color .15s,transform .15s}.navitem:hover{background:var(--bg);color:var(--ink)}.navitem.active{background:var(--brand);color:#fff;font-weight:600;box-shadow:0 6px 16px -10px #356855cc}.navicon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-right:9px;border-radius:7px;font-size:11.5px;background:var(--brand-weak);color:var(--brand)}.navitem.active .navicon{background:#ffffff2e;color:#fff}main{margin:var(--top-h) 0 0 var(--nav-w);padding:22px 28px 72px;min-height:calc(100vh - var(--top-h))}main>*{animation:rise .55s var(--ease) both}main>*:nth-child(1){animation-delay:0s}main>*:nth-child(2){animation-delay:.04s}main>*:nth-child(3){animation-delay:.09s}main>*:nth-child(4){animation-delay:.14s}main>*:nth-child(5){animation-delay:.19s}main>*:nth-child(6){animation-delay:.24s}main>*:nth-child(7){animation-delay:.29s}main>*:nth-child(8){animation-delay:.34s}main>*:nth-child(9){animation-delay:.39s}main>*:nth-child(n+10){animation-delay:.44s}.row>.card:nth-child(1){animation:rise .5s var(--ease) .05s both}.row>.card:nth-child(2){animation:rise .5s var(--ease) .1s both}.row>.card:nth-child(3){animation:rise .5s var(--ease) .15s both}.row>.card:nth-child(4){animation:rise .5s var(--ease) .2s both}.row>.card:nth-child(5){animation:rise .5s var(--ease) .25s both}.row>.card:nth-child(6){animation:rise .5s var(--ease) .3s both}tbody tr{animation:rise-sm .4s var(--ease) both}tbody tr:nth-child(1){animation-delay:.02s}tbody tr:nth-child(2){animation-delay:.05s}tbody tr:nth-child(3){animation-delay:.08s}tbody tr:nth-child(4){animation-delay:.11s}tbody tr:nth-child(5){animation-delay:.14s}tbody tr:nth-child(6){animation-delay:.17s}tbody tr:nth-child(7){animation-delay:.2s}tbody tr:nth-child(8){animation-delay:.23s}tbody tr:nth-child(9){animation-delay:.26s}tbody tr:nth-child(10){animation-delay:.29s}tbody tr:nth-child(11){animation-delay:.32s}tbody tr:nth-child(12){animation-delay:.35s}tbody tr:nth-child(n+13){animation-delay:.38s}.timeline li,.tree-leaf{animation:rise-sm .45s var(--ease) both}.timeline li:nth-child(1),.tree-leaf:nth-child(1){animation-delay:.05s}.timeline li:nth-child(2),.tree-leaf:nth-child(2){animation-delay:.1s}.timeline li:nth-child(3),.tree-leaf:nth-child(3){animation-delay:.15s}.timeline li:nth-child(4),.tree-leaf:nth-child(4){animation-delay:.2s}.timeline li:nth-child(5),.tree-leaf:nth-child(5){animation-delay:.25s}.timeline li:nth-child(6),.tree-leaf:nth-child(6){animation-delay:.3s}.timeline li:nth-child(n+7),.tree-leaf:nth-child(n+7){animation-delay:.35s}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px;margin-bottom:16px}.card>h2{margin:0 0 12px;font-size:15px;font-weight:700;letter-spacing:-.01em}.card>h2 .sub{font-weight:400;color:var(--ink-3);margin-left:8px;font-size:12.5px}.card.stat{flex:1 1 160px;position:relative;overflow:hidden;text-align:left;cursor:default;padding:16px 18px 14px}.card.stat:before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:3px;background:var(--brand-2)}.card.stat:after{content:"";position:absolute;right:-30px;top:-30px;width:90px;height:90px;border-radius:50%;background:radial-gradient(circle,rgb(207 229 223 / 70%),transparent 70%);pointer-events:none}button.card.stat{cursor:pointer;transition:transform .18s var(--ease),box-shadow .18s var(--ease),border-color .18s}button.card.stat:hover:not(:disabled){background:var(--surface);transform:translateY(-2px);border-color:var(--line-2);box-shadow:0 14px 30px -18px #35685573}.card.stat.accent:before{background:var(--warn)}.card.stat.accent:after{background:radial-gradient(circle,rgb(168 112 42 / 14%),transparent 70%)}.stat-value{font-size:32px;font-weight:700;line-height:1.15;font-variant-numeric:tabular-nums;letter-spacing:-.03em;color:var(--ink)}.stat-label{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-3)}.hero{display:flex;align-items:center;gap:16px;padding:18px 22px;margin-bottom:18px;border-radius:var(--radius);color:#fff;background:radial-gradient(500px 200px at 90% -20%,rgb(207 229 223 / 35%),transparent 60%),linear-gradient(120deg,var(--p5),var(--p4) 60%,var(--p3));box-shadow:var(--shadow-lg)}.hero h1{margin:0;color:#fff;font-size:19px}.hero p{margin:2px 0 0;color:var(--p1);font-size:13px}.hero .hero-right{margin-left:auto;text-align:right;font-size:12px;color:var(--p1)}.hero .hero-right strong{display:block;font-size:15px;color:#fff}h1{font-size:21px;margin:0 0 4px;letter-spacing:-.02em}.page-desc{color:var(--ink-3);margin:0 0 18px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.tight{gap:6px}.grow{flex:1}label.field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-3)}input,select,textarea{padding:7px 10px;border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--surface);min-width:0;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand-2);box-shadow:0 0 0 3px #7aa19240}textarea{resize:vertical;min-height:72px;font-family:inherit}button{padding:7px 14px;border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;transition:background .15s,border-color .15s,transform .12s,box-shadow .15s}button:hover:not(:disabled){background:var(--bg);border-color:var(--p2)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}button.primary:hover:not(:disabled){background:var(--brand-deep);border-color:var(--brand-deep)}button.danger{border-color:var(--danger);color:var(--danger)}button.danger:hover:not(:disabled){background:#fbf1f0}button.ghost{border-color:transparent;background:transparent}.tabs{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--bg);border:1px solid var(--line)}.tab{padding:6px 16px;border:0;border-radius:999px;background:transparent;color:var(--ink-2);font-weight:600;font-size:13px}.tab:hover:not(:disabled){background:#fff}.tab.active{background:var(--brand);color:#fff;box-shadow:0 6px 14px -8px #356855b3}.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--line)}th{font-size:11.5px;font-weight:700;color:var(--ink-3);background:#f7faf9;position:sticky;top:0;letter-spacing:.03em}tbody tr{transition:background .12s}tbody tr:hover{background:#f4f9f7}tbody tr:last-child td{border-bottom:0}td.num{font-variant-numeric:tabular-nums}.empty{color:#c9d3ce}.badge{display:inline-block;padding:1px 9px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid var(--line);background:#f7faf9;color:var(--ink-2)}.badge.status-RECEIVED{background:#f1f4f2;color:var(--ink-2)}.badge.status-INSPECTING{background:#fbf3e4;border-color:#f0dfb9;color:#8a5a17}.badge.status-AT_VENDOR{background:#e6eef9;border-color:#c9d9f1;color:#2b4f8a}.badge.status-VENDOR_BACK{background:#e9e9f7;border-color:#cfcfee;color:#3f3c8a}.badge.status-READY_TO_RETURN{background:var(--p1);border-color:var(--p2);color:var(--p5)}.badge.status-RETURNED{background:#e6f3ec;border-color:#bfe0cd;color:#1f5f41}.badge.result-OK{background:#e6f3ec;border-color:#bfe0cd;color:var(--ok)}.badge.result-TO_VENDOR{background:#fbf1e4;border-color:#f0d7b5;color:var(--warn)}.notice{border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:12px;border:1px solid var(--line);background:#f7faf9}.notice.error{border-color:#efc9c7;background:#fbf1f0;color:var(--danger)}.notice.warn{border-color:#f0dfb9;background:#fbf5e8;color:var(--warn)}.notice.ok{border-color:#bfe0cd;background:#eaf5ee;color:var(--ok)}.muted{color:var(--ink-3)}.mono{font-family:ui-monospace,Cascadia Mono,Menlo,monospace;font-size:13px}.timeline{list-style:none;margin:0;padding:0}.timeline li{display:grid;grid-template-columns:150px 110px 1fr;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);align-items:baseline}.timeline li:last-child{border-bottom:0}.timeline .when{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:13px}.navbadge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;margin-left:auto;padding:0 5px;border-radius:9px;background:var(--danger);color:#fff;font-size:12px;font-weight:700;line-height:1}.term{border-radius:12px;overflow:hidden;border:1px solid #22302b;box-shadow:0 16px 40px -22px #1c2321b3;margin-top:10px}.term-head{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#1f2b27;color:#9fb8ae;font-size:12px}.term-head .dots{display:inline-flex;gap:6px;margin-right:6px}.term-head .dots i{width:10px;height:10px;border-radius:50%;background:#4b5c55}.term-head .dots i:nth-child(1){background:#d98b83}.term-head .dots i:nth-child(2){background:#dcc07a}.term-head .dots i:nth-child(3){background:#8fc7a8}.terminal{margin:0;padding:12px 14px;max-height:440px;overflow:auto;background:#16211d;color:#d9e6e0;font-size:12.5px;line-height:1.55;white-space:pre-wrap;word-break:break-all}.term>.terminal{border-radius:0}pre.terminal:not(.term>*){border-radius:12px;margin-top:8px}.terminal .hl{background:#b0413e59;color:#ffd2cf}.tree{margin:4px 0 16px}.tree-root{padding:0 0 10px 8px;position:relative}.tree-node{display:inline-block;padding:5px 14px;border-radius:999px;font-weight:700;font-size:13px}.tree-node.root{background:var(--brand-deep);color:#fff;box-shadow:var(--shadow-lg)}.tree-node.branch{background:var(--brand-weak);color:var(--brand-deep)}.tree-branches{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;margin-left:8px;padding-left:18px;border-left:2px solid var(--p2)}.tree-branch{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}.tree-branch:before{content:"";position:absolute;left:-18px;top:26px;width:18px;height:2px;background:var(--p2)}.tree-leaves{margin-top:10px;display:flex;flex-direction:column;gap:6px}.tree-leaf{padding:7px 10px;border-left:3px solid var(--line-2);border-radius:6px;background:#f7faf9}.tree-leaf.available{border-left-color:var(--ok)}.tree-leaf.partial{border-left-color:var(--warn)}.tree-leaf.planned{border-left-color:#d3dcd8;color:var(--ink-3)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#d3dcd8}.dot.available{background:var(--ok);box-shadow:0 0 0 3px #2f7d5a26}.dot.partial{background:var(--warn);box-shadow:0 0 0 3px #a8702a26}.badge.leaf-available{background:#e6f3ec;border-color:#bfe0cd;color:#1f5f41}.badge.leaf-partial{background:#fbf1e4;border-color:#f0d7b5;color:var(--warn)}.badge.leaf-planned{background:#f1f4f2;color:var(--ink-3)}.badge.kind-license{background:#e9e9f7;border-color:#cfcfee;color:#3f3c8a}.badge.kind-patch{background:#f6e9f5;border-color:#ead0e6;color:#7a2c6e}.admin-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}.admin-head .navicon{width:34px;height:34px;border-radius:10px;font-size:15px;margin:0}@media (max-width: 900px){:root{--nav-w: 64px}.sidebar{padding:10px 6px}.sidebar .group-title{display:none}.navitem{justify-content:center;padding:9px 0;font-size:0}.navicon{margin:0;font-size:13px}.navbadge{position:absolute;margin:0;transform:translate(14px,-10px);font-size:10px}main{padding:16px 12px 48px}.topbar .who,.hero .hero-right{display:none}}.dropzone{display:flex;flex-direction:column;align-items:center;gap:4px;padding:28px 20px;margin-bottom:14px;border:1.5px dashed var(--p2);border-radius:var(--radius);background:linear-gradient(180deg,#fbfdfc,var(--brand-weak));color:var(--ink-2);cursor:pointer;text-align:center;transition:border-color .15s,background .15s,transform .15s}.dropzone:hover{border-color:var(--brand);transform:translateY(-1px)}.dropzone.busy{opacity:.7;cursor:progress}.dropzone-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:#fff;color:var(--brand);font-size:20px;box-shadow:var(--shadow);margin-bottom:6px}.cal-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}.cal-card{margin-bottom:0}.cal-side{margin-bottom:0;position:sticky;top:calc(var(--top-h) + 16px)}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.cal-dow{padding:4px 0;text-align:center;font-size:11px;font-weight:700;color:var(--ink-3);letter-spacing:.06em}.cal-dow.sun{color:var(--danger)}.cal-dow.sat{color:#2b4f8a}.cal-cell{position:relative;min-height:78px;padding:6px 8px;border:1px solid var(--line);border-radius:12px;background:#fbfdfc;text-align:left;display:flex;flex-direction:column;gap:4px;animation:rise-sm .4s var(--ease) both}.cal-cell:hover:not(:disabled){background:#fff;border-color:var(--p2)}.cal-cell.other{opacity:.45}.cal-cell.today{border-color:var(--brand-2);box-shadow:inset 0 0 0 1px var(--brand-2)}.cal-cell.picked{background:#fff;border-color:var(--brand);box-shadow:0 0 0 3px #35685526}.cal-day{font-size:12.5px;font-weight:700;color:var(--ink-2)}.cal-cell.sun .cal-day{color:var(--danger)}.cal-cell.sat .cal-day{color:#2b4f8a}.cal-cell.today .cal-day{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--brand);color:#fff}.cal-dots{display:flex;flex-wrap:wrap;gap:3px}.cal-dot,.cal-key{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--line-2)}.cal-key{margin:0 2px 0 8px;vertical-align:middle}.cal-dot.received,.cal-key.received{background:var(--p3)}.cal-dot.vendor,.cal-key.vendor{background:#2b4f8a}.cal-dot.owner,.cal-key.owner{background:var(--ok)}.cal-dot.swapped,.cal-key.swapped{background:#7a2c6e}.cal-dot.item,.cal-key.item{background:var(--warn)}.cal-title{font-size:11px;color:var(--warn);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-list{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}.cal-list li{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border-radius:10px;background:#f7faf9;font-size:13px}.cal-list li.item{background:#fbf5e8}.cal-add{display:flex;flex-direction:column;gap:8px;padding:10px 12px 12px;margin-bottom:12px;border-radius:12px;background:var(--brand-weak)}.cal-add textarea{min-height:44px}.cal-day-lists{max-height:calc(100vh - var(--top-h) - 420px);min-height:120px;overflow-y:auto;padding-right:4px}.badge.kind-received{background:var(--brand-weak);border-color:var(--p2);color:var(--p5)}.badge.kind-shipped_vendor{background:#e6eef9;border-color:#c9d9f1;color:#2b4f8a}.badge.kind-shipped_owner{background:#e6f3ec;border-color:#bfe0cd;color:#1f5f41}.badge.kind-swapped{background:#f6e9f5;border-color:#ead0e6;color:#7a2c6e}.badge.kind-item{background:#fbf1e4;border-color:#f0d7b5;color:var(--warn)}@media (max-width: 1100px){.cal-layout{grid-template-columns:1fr}.cal-side{position:static}}.serial-btn{background:var(--ok);border-color:var(--ok);color:#fff;font-weight:600}.serial-btn:hover:not(:disabled){background:#25664a;border-color:#25664a}.con-form{margin-bottom:12px;background:#f7faf9}.con-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.con-tab{display:inline-flex;align-items:center;gap:8px;padding:6px 10px 6px 12px;border-radius:10px 10px 0 0;border:1px solid var(--line);border-bottom:0;background:#fff;font-size:13px;color:var(--ink-2)}.con-tab.active{background:#1f2b27;color:#e6efe9;border-color:#1f2b27}.con-tab-x{margin-left:4px;padding:0 4px;border-radius:6px;color:inherit;opacity:.6}.con-tab-x:hover{opacity:1;background:#ffffff26}.con-term{margin-top:0;border-radius:0 12px 12px}.con-body{min-height:380px;max-height:60vh;cursor:text}.con-body .ln.in{color:#cfe5df}.con-body .ln.err{color:#f0b3ae}.con-body .ln.sys{color:#8fa89e;font-style:italic}.con-body .prompt{color:#7fd1c1;font-weight:700}.input-row{display:flex;align-items:center}.term-input{flex:1;background:transparent;border:0;padding:0;color:#e8f1ec;font:inherit;outline:none;caret-color:#7fd1c1}.term-input:focus{box-shadow:none}.term-btn{padding:3px 9px;border-radius:6px;border:1px solid #3a4a44;background:#263631;color:#cfe5df;font-size:11.5px}.term-btn:hover:not(:disabled){background:#31463f;border-color:#4b5f57}.term-btn.accent{background:var(--brand);border-color:var(--brand);color:#fff}.term-save{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;padding:10px 12px;background:#f7faf9;border-top:1px solid var(--line)}.con-empty{padding:0;overflow:hidden;border:0;background:transparent;box-shadow:none}.term-preview{border-radius:12px;overflow:hidden;box-shadow:var(--shadow-lg)}.progress{height:6px;border-radius:999px;background:var(--line);overflow:hidden;margin-bottom:12px}.progress .bar{height:100%;background:linear-gradient(90deg,var(--p3),var(--p4));transition:width .5s var(--ease)}.fw-steps,.ship-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.fw-steps li,.ship-steps li{display:flex;gap:12px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#fbfdfc;transition:background .2s,border-color .2s}.fw-steps li.now,.ship-steps li.now{border-color:var(--brand-2);background:#fff;box-shadow:0 0 0 3px #7aa1922e}.fw-steps li.done,.ship-steps li.done{background:#eaf5ee;border-color:#bfe0cd}.step-check,.ship-steps .n{flex:0 0 28px;width:28px;height:28px;padding:0;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line-2);background:#fff;font-weight:700;font-size:12px;color:var(--ink-2)}.fw-steps li.done .step-check,.ship-steps li.done .n{background:var(--ok);border-color:var(--ok);color:#fff}.fw-steps li.now .step-check,.ship-steps li.now .n{background:var(--brand);border-color:var(--brand);color:#fff}.ship-steps li>.n+*{flex:1}.ship-steps li{flex-direction:row;align-items:flex-start;font-size:13px}.ship-layout{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:16px;align-items:start}@media (max-width: 1100px){.ship-layout{grid-template-columns:1fr}}.logen-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.logen-logo{display:inline-block;padding:3px 10px;border-radius:6px;background:#d8232a;color:#fff;font-weight:800;letter-spacing:.08em;font-size:12px}.logen-form{margin:6px 0 0;padding:8px 10px;background:#fff;border:1px dashed var(--line-2);border-radius:8px;font-size:12px;white-space:pre-wrap}tbody tr.picked{background:var(--brand-weak)}.cal-list li{align-items:center}.cal-list li .badge{flex:0 0 auto}.cal-ev{flex:1;min-width:0}.cal-ev-top{display:flex;align-items:baseline;gap:8px;min-width:0}.cal-ev-top a{flex:0 0 auto;font-weight:600}.cal-ev-co{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.cal-ev-serial{font-size:12px;white-space:nowrap}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{padding:4px 12px;border-radius:999px;border:1px solid var(--line-2);background:#fff;font-size:12.5px;color:var(--ink-2)}.chip.active{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}.quick-input{width:300px;border-radius:999px;padding:6px 14px}tr.date-head td{padding:8px 12px 6px;background:var(--brand-weak);border-top:1px solid var(--p2);border-bottom:1px solid var(--p2);font-size:12.5px}tr.date-head:hover{background:transparent}.date-head-label{display:inline-block;margin-right:8px;padding:1px 10px;border-radius:999px;background:var(--brand);color:#fff;font-weight:700;font-variant-numeric:tabular-nums}.vsi-runner{padding:10px 12px 12px;background:#f7faf9;border-top:1px solid var(--line)}.vsi-track{display:flex;gap:8px;margin:10px 0 8px}.vsi-round{flex:1;display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:#fff;font-size:12.5px}.vsi-round .n{font-weight:700}.vsi-round.now{border-color:var(--brand-2);box-shadow:0 0 0 3px #7aa1922e}.vsi-round.clean{background:#eaf5ee;border-color:#bfe0cd}.vsi-round.error{background:#fbf1f0;border-color:#efc9c7}.learn-probes{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:10px 0 6px}.learn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px}.learn-cmd{display:grid;grid-template-columns:110px 1fr auto;gap:8px;align-items:center;padding:6px 10px;border-radius:8px;background:#fff;border:1px solid var(--line);font-size:12.5px}.learn-cmd .mono{font-weight:700;color:var(--brand-deep)}.dev-panel{margin-top:12px;padding:10px 12px 12px;border:1px solid var(--line);border-radius:12px;background:#fff}.dev-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px;margin-top:8px}.dev-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;border-radius:10px;text-align:left;font-size:12.5px}.dev-name{font-weight:700}.chat{display:flex;flex-direction:column;min-height:calc(100vh - var(--top-h) - 170px)}.chat-log{flex:1;display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);overflow-y:auto;max-height:calc(100vh - var(--top-h) - 250px)}.bubble{display:flex;gap:10px;max-width:88%;animation:rise-sm .35s var(--ease) both}.bubble.me{align-self:flex-end;flex-direction:row-reverse}.bubble .brand-mark{flex:0 0 auto;margin-top:4px}.bubble-body{padding:10px 14px;border-radius:16px;background:#f4f8f6;border:1px solid var(--line);font-size:13.5px;line-height:1.55;min-width:0}.bubble.me .bubble-body{background:var(--brand);border-color:var(--brand);color:#fff;border-bottom-right-radius:4px}.bubble.agent .bubble-body{border-bottom-left-radius:4px}.bubble-src{margin-top:6px;font-size:11.5px;color:var(--ink-3);display:flex;gap:8px;flex-wrap:wrap}.chat-suggest{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 8px}.chat-input{display:flex;gap:8px}.chat-input input{flex:1;padding:11px 14px;border-radius:999px}.chat-input button{border-radius:999px;padding:0 20px}.todo{display:flex;flex-direction:column;gap:8px;margin-top:8px}.todo-sec{padding:8px 10px;border-radius:10px;background:#fff;border:1px solid var(--line)}.todo-h{font-weight:700;font-size:13px;margin-bottom:4px}.todo-sec ul{margin:0;padding-left:18px;font-size:13px}.menu-btn{display:none;flex-direction:column;justify-content:center;gap:4px;width:38px;height:38px;padding:0 8px;border:0;border-radius:10px;background:#ffffff1f;cursor:pointer}.menu-btn span{display:block;height:2px;border-radius:2px;background:#fff;transition:transform .2s var(--ease),opacity .2s}.menu-btn.on span:nth-child(1){transform:translateY(6px) rotate(45deg)}.menu-btn.on span:nth-child(2){opacity:0}.menu-btn.on span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.nav-backdrop{display:none}@media (max-width: 760px){:root{--nav-w: 0px;--top-h: 52px;--radius: 12px}html{-webkit-text-size-adjust:100%}body{font-size:14px}.menu-btn{display:inline-flex}.topbar{padding:0 10px;gap:8px}.topbar .brand{font-size:14px;gap:8px}.topbar .brand-sub{display:none}.topbar .ghost{padding:7px 10px;font-size:12px}.sidebar{left:0;width:min(280px,84vw);padding:12px 10px 24px;transform:translate(-102%);transition:transform .25s var(--ease);z-index:30;box-shadow:0 20px 40px -20px #0000007f}.sidebar.open{transform:none}.app-enter .sidebar{animation:none}.sidebar .group-title{display:block}.navitem{justify-content:flex-start;padding:11px 12px;font-size:14px}.navicon{margin:0 10px 0 0;font-size:12px}.navbadge{position:static;margin-left:auto;transform:none}.nav-backdrop{display:block;position:fixed;inset:var(--top-h) 0 0 0;background:#16211d66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:25;animation:fade .2s both}main{margin-left:0;padding:14px 12px 72px;max-width:100vw;overflow-x:hidden}h1{font-size:19px}.page-desc{font-size:13px;margin-bottom:12px}.hero{padding:14px 16px;gap:12px;margin-bottom:14px}.hero h1{font-size:17px}.hero .brand-mark.big{width:36px;height:36px}.card{padding:14px;margin-bottom:12px}.card>h2{font-size:14.5px}.row>.card.stat{flex:1 1 calc(50% - 10px);min-width:0}.stat-value{font-size:22px}.tablewrap{-webkit-overflow-scrolling:touch}table{font-size:12.5px}th,td{padding:8px;white-space:nowrap}.field,.field input,.field select,input[style],select[style]{max-width:100%}.row{gap:8px}.chat-input{position:sticky;bottom:8px}.chat{min-height:0}.chat-log{max-height:none;min-height:40vh}.bubble{max-width:96%}.terminal{max-height:52vh;font-size:12px}.term-head{flex-wrap:wrap;gap:6px}.learn-cmd{grid-template-columns:1fr;gap:4px}.timeline li{grid-template-columns:1fr;gap:2px;padding:8px 0}.cal-cell{min-height:46px;padding:4px;border-radius:8px;gap:2px}.cal-day{font-size:12px}.cal-dow{font-size:11px}.cal-day-lists{max-height:none}.cal-side{position:static}.mono{word-break:break-all}button:not(.chip):not(.navitem):not(.menu-btn):not(.cal-cell){min-height:36px}.chips .chip{padding:6px 10px}}@keyframes fade{0%{opacity:0}to{opacity:1}}
