@font-face{font-family:IBM;src:url(/ibm.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--background: 174 30% 99%;--foreground: 178 35% 12%;--card: 0 0% 100%;--card-foreground: 178 35% 12%;--primary: 170 75% 31%;--primary-foreground: 0 0% 100%;--secondary: 174 38% 95%;--secondary-foreground: 178 40% 18%;--muted: 174 30% 95%;--muted-foreground: 180 10% 42%;--accent: 172 55% 90%;--accent-foreground: 174 75% 22%;--destructive: 357 78% 56%;--destructive-foreground: 0 0% 100%;--border: 174 22% 88%;--radius: 1rem;--teal: #148c78;--teal-light: #d1f2ea;--mint: #2dd4bf;--vanilla: #fbbf24;--blueberry: #4f86e0;--shadow-soft: 0 4px 16px -2px hsl(170 60% 35% / .14), 0 2px 6px -2px hsl(170 60% 30% / .1);--shadow-lift: 0 12px 32px -6px hsl(170 60% 32% / .2), 0 4px 12px -4px hsl(170 60% 28% / .12)}.dark{--background: 180 30% 7%;--foreground: 174 25% 92%;--card: 180 26% 11%;--card-foreground: 174 25% 92%;--primary: 168 62% 48%;--primary-foreground: 180 30% 7%;--secondary: 180 18% 17%;--secondary-foreground: 174 25% 92%;--muted: 180 18% 17%;--muted-foreground: 178 12% 66%;--accent: 174 42% 20%;--accent-foreground: 168 62% 82%;--destructive: 357 72% 56%;--border: 180 14% 23%;--teal: #2dd4bf;--teal-light: #14403a}*{box-sizing:border-box}body{margin:0;background:hsl(var(--background));color:hsl(var(--foreground));font-family:IBM,system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.5;overscroll-behavior-y:none;-webkit-tap-highlight-color:transparent}.dark body{background:radial-gradient(circle at top left,hsl(174 35% 14%),transparent 34rem),hsl(var(--background))}.app{display:flex;min-height:100dvh}.sidebar{width:15rem;flex-shrink:0;background:hsl(var(--card));border-inline-end:1px solid hsl(var(--border));padding:18px 12px;display:flex;flex-direction:column;gap:3px;position:sticky;top:0;height:100dvh;overflow-y:auto;overflow-x:hidden;transition:width .18s ease}.navlink:focus-visible,.chip:focus-visible,button:focus-visible{outline:2px solid hsl(var(--primary));outline-offset:2px}.navlink.active:focus-visible{outline-color:hsl(var(--foreground))}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 18px}.brand img{width:38px;height:38px;border-radius:12px;box-shadow:var(--shadow-soft)}.brand-text{display:flex;flex-direction:column;line-height:1.15}.brand-name{font-weight:700;font-size:15px}.brand-sub{font-size:11px;color:hsl(var(--muted-foreground))}.navlink{position:relative;display:block;padding:10px 12px;border-radius:calc(var(--radius) - 4px);text-decoration:none;color:hsl(var(--muted-foreground));font-weight:500;border:none;background:none;width:100%;text-align:start;font-family:inherit;font-size:inherit;cursor:pointer;transition:background .15s,color .15s}.navlink:hover{background:hsl(var(--secondary));color:hsl(var(--foreground))}.navlink.active{background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-weight:600;box-shadow:var(--shadow-soft)}.navlink{display:flex;align-items:center;gap:11px}.navicon{display:inline-flex;flex-shrink:0;width:19px;height:19px}.navtext{white-space:nowrap;overflow:hidden}@media (min-width: 821px){.app.nav-collapsed .sidebar{width:4.25rem;padding-inline:10px}.app.nav-collapsed .navlink{justify-content:center;padding-inline:0}.app.nav-collapsed .navtext{display:none}.app.nav-collapsed .brand{justify-content:center;padding:4px 0 18px}.app.nav-collapsed .brand-text{display:none}}.navtip{position:fixed;z-index:80;transform:translateY(-50%);padding:6px 11px;border-radius:calc(var(--radius) - 8px);background:hsl(var(--foreground));color:hsl(var(--background));font-size:12.5px;font-weight:600;white-space:nowrap;box-shadow:var(--shadow-lift);pointer-events:none;animation:navtip-in .12s ease-out}.navtip:before{content:"";position:absolute;inset-inline-start:-4px;top:50%;width:8px;height:8px;background:inherit;transform:translateY(-50%) rotate(45deg);border-radius:1px}@keyframes navtip-in{0%{opacity:0;transform:translateY(-50%) translate(-4px)}to{opacity:1;transform:translateY(-50%)}}.navtip.flip{transform:translate(-100%,-50%)}.navtip.flip:before{inset-inline-start:auto;inset-inline-end:-4px}@keyframes navtip-in-flip{0%{opacity:0;transform:translate(-100%,-50%) translate(4px)}to{opacity:1;transform:translate(-100%,-50%)}}.navtip.flip{animation-name:navtip-in-flip}.main{flex:1;padding:26px 30px 60px;min-width:0}.page-title{margin:0 0 4px;font-size:24px;font-weight:700;letter-spacing:-.01em}.page-sub{margin:0 0 20px;color:hsl(var(--muted-foreground));font-size:14px}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:20px}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:12px;color:hsl(var(--muted-foreground));font-weight:500}input,select,button{font:inherit;color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 6px);padding:8px 11px;background:hsl(var(--card))}input:focus,select:focus{outline:2px solid hsl(var(--primary));outline-offset:-1px}button{cursor:pointer;transition:filter .15s,background .15s}button.primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:hsl(var(--primary));font-weight:600;box-shadow:var(--shadow-soft)}button.primary:hover{filter:brightness(1.08)}button:disabled{opacity:.5;cursor:default}.chips{display:flex;gap:7px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;padding:7px 13px;border-radius:999px;border:1px solid hsl(var(--border));background:hsl(var(--card));font-size:13px;font-weight:500;color:hsl(var(--muted-foreground))}.chip:hover{border-color:hsl(var(--primary))}.chip.on{background:hsl(var(--primary));border-color:hsl(var(--primary));color:hsl(var(--primary-foreground));box-shadow:var(--shadow-soft)}.card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:var(--shadow-soft);padding:18px;transition:box-shadow .2s}.card.hoverable:hover{box-shadow:var(--shadow-lift)}.grid{display:grid;gap:14px}.grid>*{min-width:0}.grid.stats{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr))}.grid.two{grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr))}.stat-label{font-size:11.5px;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.05em;font-weight:600}.stat-value{font-size:28px;font-weight:700;margin-top:6px;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.stat-note{font-size:12px;color:hsl(var(--muted-foreground));margin-top:3px}.section-title{font-size:15px;font-weight:700;margin:0 0 14px}.card-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:12px}.card-head>h2{margin:0}.card-head>button{flex-shrink:0}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:start;font-size:11.5px;color:hsl(var(--muted-foreground));font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:9px 10px;border-bottom:1px solid hsl(var(--border));white-space:nowrap}td{padding:10px;border-bottom:1px solid hsl(var(--border));vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr{transition:background .12s}tbody tr:hover{background:hsl(var(--secondary) / .6)}td.num,th.num{text-align:end;font-variant-numeric:tabular-nums}.bar{height:8px;border-radius:5px;background:hsl(var(--primary));min-width:2px}.bar-track{background:hsl(var(--secondary));border-radius:5px;overflow:hidden}.badge{display:inline-block;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid transparent}.badge.fatal{background:hsl(var(--destructive) / .12);color:hsl(var(--destructive));border-color:hsl(var(--destructive) / .3)}.badge.error{background:#fff7e6;color:#b45309;border-color:#fbbf2455}.dark .badge.error{background:#b4530922;color:#fbbf24}.badge.ok{background:hsl(var(--accent));color:hsl(var(--accent-foreground));border-color:hsl(var(--primary) / .25)}.badge.stale{background:#fff7e6;color:#b45309;border-color:#fbbf2455}.dark .badge.stale{background:#b4530922;color:#fbbf24}.muted{color:hsl(var(--muted-foreground))}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.empty{text-align:center;padding:46px 0;color:hsl(var(--muted-foreground))}.error-box{background:hsl(var(--destructive) / .1);border:1px solid hsl(var(--destructive) / .3);color:hsl(var(--destructive));padding:11px 13px;border-radius:calc(var(--radius) - 6px);margin-bottom:14px;font-size:14px}.pager{display:flex;gap:10px;align-items:center;justify-content:center;margin-top:18px}.login-wrap{position:relative;min-height:100dvh;display:grid;grid-template-columns:1.1fr 1fr}.login-controls{position:absolute;top:18px;inset-inline-end:18px;z-index:10;display:flex;gap:8px}.login-art{background:radial-gradient(circle at 30% 25%,hsl(168 62% 45% / .55),transparent 55%),linear-gradient(150deg,#148a77,#0a5c54);color:#fff;display:flex;flex-direction:column;justify-content:center;padding:48px;gap:18px}.login-art img{width:76px;height:76px;border-radius:22px;box-shadow:var(--shadow-lift)}.login-art h2{font-size:30px;margin:0;letter-spacing:-.02em}.login-art p{margin:0;opacity:.9;max-width:34ch;line-height:1.6}.login-form{display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:340px}.login-card h1{font-size:21px;margin:0 0 4px}.login-card .field{margin-bottom:13px}.login-card input{width:100%}.login-card button{width:100%;margin-top:8px;padding:11px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d1c1b8c;display:grid;place-items:center;padding:20px;z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.drawer{background:hsl(var(--card));border-radius:var(--radius);box-shadow:var(--shadow-lift);max-width:760px;width:100%;max-height:88dvh;overflow-y:auto;padding:22px}.drawer.narrow{max-width:400px}.drawer-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px}.drawer-head h2{margin:0;font-size:19px}.stack-form .field{margin-bottom:13px}.stack-form input{width:100%}.stack-form button.primary{width:100%;margin-top:4px;padding:11px}.ok-box{background:hsl(var(--accent));border:1px solid hsl(var(--primary) / .25);color:hsl(var(--accent-foreground));padding:11px 13px;border-radius:calc(var(--radius) - 6px);margin-bottom:14px;font-size:14px}pre{background:hsl(var(--secondary));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 6px);padding:11px;overflow-x:auto;font-size:12.5px;margin:0;white-space:pre-wrap;word-break:break-word}.chart-tip{position:absolute;pointer-events:none;z-index:20;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:10px;box-shadow:var(--shadow-lift);padding:7px 10px;font-size:12.5px;white-space:nowrap;transform:translate(-50%,-115%);opacity:0}.axis text{fill:hsl(var(--muted-foreground));font-size:11px}.axis line,.axis path{stroke:hsl(var(--border))}.grid-line{stroke:hsl(var(--border));stroke-dasharray:3 4;opacity:.7}.daterange-trigger{display:inline-flex;align-items:center;gap:8px;min-width:15rem;justify-content:space-between;font-weight:500}.daterange-trigger:hover{border-color:hsl(var(--primary))}.daterange-trigger.open{border-color:hsl(var(--primary));box-shadow:0 0 0 3px hsl(var(--primary) / .15)}.daterange-icon{color:hsl(var(--primary));font-size:13px}.daterange-caret{color:hsl(var(--muted-foreground));font-size:11px}.daterange-pop{position:absolute;top:calc(100% + 8px);inset-inline-start:0;z-index:60;display:flex;gap:0;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:var(--shadow-lift);overflow:hidden;animation:daterange-in .16s ease-out}@keyframes daterange-in{0%{opacity:0;transform:translateY(-6px) scale(.985)}to{opacity:1;transform:none}}.daterange-presets{display:flex;flex-direction:column;gap:2px;padding:10px;min-width:9.5rem;background:hsl(var(--secondary) / .5);border-inline-end:1px solid hsl(var(--border))}.daterange-preset{border:none;background:none;text-align:start;padding:7px 10px;border-radius:calc(var(--radius) - 8px);font-size:13px;color:hsl(var(--foreground));white-space:nowrap}.daterange-preset:hover{background:hsl(var(--card))}.daterange-preset.on{background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-weight:600}.daterange-cal{padding:12px}.daterange-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:10px}.daterange-head strong{font-size:14px}.daterange-head button{border:1px solid hsl(var(--border));background:hsl(var(--card));width:28px;height:28px;padding:0;line-height:1;border-radius:8px;font-size:15px;color:hsl(var(--foreground))}.daterange-head button:hover{background:hsl(var(--secondary))}.daterange-grid{display:grid;grid-template-columns:repeat(7,34px);gap:2px}.daterange-wd{display:grid;place-items:center;height:26px;font-size:11px;font-weight:600;color:hsl(var(--muted-foreground))}.daterange-day{height:32px;padding:0;border:none;background:none;border-radius:8px;font-size:13px;color:hsl(var(--foreground));font-variant-numeric:tabular-nums}.daterange-day:hover{background:hsl(var(--secondary))}.daterange-day.in{background:hsl(var(--accent));color:hsl(var(--accent-foreground));border-radius:0}.daterange-day.end{background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-weight:700;border-radius:8px}.daterange-day.today:not(.end){box-shadow:inset 0 0 0 1.5px hsl(var(--primary) / .55)}.daterange-hint{margin:10px 0 0;font-size:11.5px;color:hsl(var(--muted-foreground));text-align:center}@media (max-width: 640px){.daterange-pop{flex-direction:column;inset-inline-start:auto;inset-inline-end:0}.daterange-presets{flex-direction:row;flex-wrap:wrap;min-width:0;border-inline-end:none;border-bottom:1px solid hsl(var(--border))}}.branch-trigger{display:inline-flex;align-items:center;gap:8px;min-width:17rem;max-width:26rem;justify-content:flex-start;font-weight:500}.branch-trigger:hover{border-color:hsl(var(--primary))}.branch-only{color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 6px);padding:8px 11px;background:hsl(var(--card));cursor:default}.branch-only:hover{border-color:hsl(var(--border))}.branch-trigger.open{border-color:hsl(var(--primary));box-shadow:0 0 0 3px hsl(var(--primary) / .15)}.branch-summary{flex:1;min-width:0;text-align:start;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.branch-dots{display:inline-flex;flex-shrink:0}.branch-dot{width:9px;height:9px;border-radius:3px;margin-inline-end:-3px;box-shadow:0 0 0 1.5px hsl(var(--card))}.branch-pop{position:absolute;top:calc(100% + 8px);inset-inline-start:0;z-index:60;min-width:22rem;max-width:min(30rem,calc(100vw - 2rem));padding:6px;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:var(--shadow-lift);animation:daterange-in .16s ease-out}.branch-list{max-height:min(21rem,50vh);overflow-y:auto}.branch-row{display:flex;align-items:center;gap:9px;width:100%;padding:8px 9px;text-align:start;border:none;background:none;border-radius:calc(var(--radius) - 7px);font-size:13px;color:hsl(var(--foreground))}.branch-row:hover{background:hsl(var(--secondary))}.branch-row.on{background:hsl(var(--accent) / .5);font-weight:600}.branch-name{flex:1;min-width:0;line-height:1.35}.branch-count{color:hsl(var(--muted-foreground));font-size:12px}.branch-check{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:17px;height:17px;border:1px solid hsl(var(--border));border-radius:5px;background:hsl(var(--background));font-size:11px;line-height:1}.branch-check.on{background:hsl(var(--primary));border-color:hsl(var(--primary));color:hsl(var(--primary-foreground))}.branch-swatch{width:9px;height:9px;border-radius:3px;flex-shrink:0}.branch-sep{height:1px;background:hsl(var(--border));margin:5px 0}.branch-foot{display:flex;align-items:center;justify-content:space-between;padding:4px 9px 5px;font-size:12px;color:hsl(var(--muted-foreground))}.branch-clear{border:none;background:none;padding:3px 7px;color:hsl(var(--primary));font-size:12px;font-weight:600;border-radius:calc(var(--radius) - 7px)}.branch-clear:hover{background:hsl(var(--secondary))}.lang-pop{position:fixed;z-index:100;padding:6px;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:var(--shadow-lift);animation:daterange-in .16s ease-out}.lang-row{display:flex;align-items:center;gap:9px;width:100%;padding:8px 9px;text-align:start;border:none;background:none;border-radius:calc(var(--radius) - 7px);font-size:13px;color:hsl(var(--foreground))}.lang-row:hover{background:hsl(var(--secondary))}.lang-row.on{background:hsl(var(--accent) / .5);font-weight:600}.lang-code{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:26px;height:18px;font-size:10.5px;font-weight:700;letter-spacing:.02em;color:hsl(var(--muted-foreground))}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid hsl(var(--border));border-radius:999px;background:hsl(var(--card));color:hsl(var(--muted-foreground))}.icon-btn:hover{color:hsl(var(--primary));border-color:hsl(var(--primary))}.icon-btn svg{width:17px;height:17px}@media (max-width: 1000px){.main{padding:22px 20px 48px}}@media (max-width: 860px){.login-wrap{grid-template-columns:1fr}.login-art{display:none}}@media (max-width: 820px){.app{flex-direction:column}.sidebar{width:100%;height:auto;flex-direction:row;align-items:center;gap:4px;padding:8px 10px;overflow-x:auto;overflow-y:hidden;border-inline-end:none;border-bottom:1px solid hsl(var(--border));z-index:40;scrollbar-width:none;-webkit-overflow-scrolling:touch}.sidebar::-webkit-scrollbar{display:none}.sidebar .brand,.sidebar .spacer,.sidebar .navicon,.sidebar .nav-toggle{display:none}.navlink{width:auto;flex:0 0 auto;white-space:nowrap;padding:9px 13px;font-size:14px}.main{padding:16px 16px 40px}.page-title{font-size:20px}.page-sub{margin-bottom:16px}}@media (max-width: 620px){.toolbar{gap:8px;margin-bottom:16px}.toolbar>.field{width:100%}.toolbar>.field>input,.toolbar>.field>select{width:100%}.branch-trigger,.daterange-trigger{min-width:0;max-width:none;width:100%}input,select,textarea{font-size:16px}.branch-pop,.daterange-pop{min-width:0;max-width:none;inset-inline:0}.daterange-grid{grid-template-columns:repeat(7,1fr)}.daterange-cal{padding:12px 10px}.branch-list{max-height:min(21rem,42dvh)}.grid{gap:12px}.grid.stats{grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr))}.grid.two{grid-template-columns:1fr}.card{padding:14px}.stat-value{font-size:23px}.section-title{margin-bottom:12px}.table-wrap{margin-inline:-14px;padding-inline:14px;-webkit-overflow-scrolling:touch}table{font-size:13px}th{padding:8px}td{padding:9px 8px}.overlay{padding:0;place-items:end stretch}.drawer{max-width:none;max-height:92dvh;border-radius:var(--radius) var(--radius) 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom))}.pager{flex-wrap:wrap}.login-form{padding:18px}.empty{padding:34px 12px}}@media (pointer: coarse){.navlink,.chip,.branch-row,.daterange-preset{min-height:40px}.daterange-day{height:38px}.daterange-head button{width:34px;height:34px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
