@font-face{font-family:Anuphan;src:url('/assets/anuphan-regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Anuphan;src:url('/assets/anuphan-semibold.ttf') format('truetype');font-style:normal;font-weight:600 700;font-display:swap}
:root{--paper:#fbf7f1;--surface:#fffdfa;--ink:#2a2520;--muted:#696359;--line:#e6e0d6;--forest:#253e35;--forest-light:#eaf0eb;--amber:#815918;--amber-bg:#f7edd8;--radius:12px;color-scheme:light;font-family:Anuphan,Tahoma,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-size:14px;line-height:1.65}a{color:inherit}button,input{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #b58c45;outline-offset:4px}button:disabled{cursor:wait;opacity:.65}h1,h2,p{margin:0}h1{font-weight:600;font-size:30px;line-height:1.45;letter-spacing:-.6px}h2{font-size:18px;font-weight:600;line-height:1.5}.eyebrow{font:600 10px/1.6 Anuphan,Tahoma,sans-serif;letter-spacing:1.65px}.muted{color:var(--muted);font-size:13px}.shell{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--forest);color:#f1f0e8;padding:32px 18px 22px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:24px;letter-spacing:-.6px;padding:0 8px}.monogram{font-family:Georgia,serif;font-size:38px;font-weight:bold;line-height:1;width:38px}.brand-sub{display:block;font-size:9px;letter-spacing:1.7px;color:#c1cfc4}.sidebar nav{display:flex;flex-direction:column;margin-top:48px;gap:7px}.sidebar nav a{display:flex;align-items:center;gap:9px;min-height:44px;padding:10px 13px;text-decoration:none;border-radius:7px;font-size:13px;color:#ccd6ce}.sidebar nav a:hover{background:#355045;color:white}.sidebar nav .nav-current{background:#f1eddf;color:#293b31}.nav-dot{width:6px;height:6px;background:var(--forest);border-radius:50%}.mono{font:11px monospace;margin-left:auto}.sidebar-note{margin-top:auto;padding:32px 12px 22px;color:#ccd6ce}.sidebar-note .eyebrow{font-size:9px;color:#b8c6bc;letter-spacing:1px}.sidebar-note p{font-size:16px;color:#f1f0e8;margin:12px 0}.sidebar-note>span:last-child{font-size:11px}.owner{border-top:1px solid #4c6155;padding:20px 7px 0;display:flex;align-items:center;gap:11px}.owner-mark{width:34px;height:34px;border-radius:50%;background:#42594b;display:grid;place-items:center;font-size:11px}.owner small{display:block;color:#bac8bd;font-size:10px}.topbar{min-height:74px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:12px 36px;font-size:12px;color:var(--muted)}.crumb{margin:0 14px;color:#a5a092}.topbar strong{font-weight:400;color:var(--ink)}.top-actions{display:flex;align-items:center;gap:23px}.private-label:before{content:'●';font-size:7px;margin-right:7px;color:var(--forest)}.text-button{background:none;border:none;padding:10px 0;color:var(--muted);min-height:44px}main#main{max-width:1450px;margin:auto;padding:32px 36px 20px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.page-heading .eyebrow{color:var(--muted);margin-bottom:7px}.page-heading .muted{margin-top:7px}.button{border-radius:7px;padding:11px 17px;min-height:44px;font-size:13px;font-weight:600;white-space:nowrap}.secondary{border:1px solid #d8d0c2;color:var(--ink);background:var(--surface)}.secondary:hover{background:#eee8dd}.primary{background:var(--forest);color:white;border:1px solid var(--forest)}.primary:hover{background:#355348}.connection{background:var(--amber-bg);border:1px solid #e4d4b3;border-radius:var(--radius);padding:17px 20px;margin-bottom:22px;color:#634616}.connection>div{display:flex;align-items:center;gap:9px}.connection h2{font-size:15px}.connection p{font-size:12px;margin-top:5px;color:#785b2c}.signal{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#ad7c2e}.runtime{display:grid;grid-template-columns:1fr 1.35fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;margin-bottom:30px;gap:24px}.runtime>div{display:flex;flex-direction:column;gap:6px}.runtime>div+div{border-left:1px solid var(--line);padding-left:24px}.runtime .eyebrow{color:var(--muted);font-size:9px}.runtime strong{font-size:20px;font-weight:600}.runtime .muted{font-size:11px;line-height:1.6}.columns{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:24px;align-items:start}.panel{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);overflow:hidden}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:23px 24px 0}.section-heading .eyebrow{color:var(--muted);font-size:9px;margin-bottom:6px}.small-label{font-size:10px;color:var(--muted);white-space:nowrap}.section-description{font-size:12px;color:var(--muted);padding:10px 24px 20px}.role{border-top:1px solid var(--line)}.role summary{display:flex;align-items:center;gap:13px;list-style:none;padding:20px 22px;cursor:pointer;min-height:80px}.role summary::-webkit-details-marker{display:none}.role summary:hover{background:#f5f1e8}.role-index{width:29px;flex:0 0 29px;color:#91877a;font:12px monospace}.role-name{font-size:14px;font-weight:600;line-height:1.5;flex:1;min-width:0}.role-name small{display:block;font-size:10px;color:var(--muted);font-weight:400;letter-spacing:.2px;margin-top:3px}.badge{font-size:10px;white-space:nowrap;background:#f0ece5;border:1px solid #e3ddd2;border-radius:5px;padding:3px 7px;color:#655f55}.expand{color:#847c70;font-size:18px;margin-left:0}.role[open] .expand{transform:rotate(45deg)}.secretary{background:#f0f4ef}.secretary .role-index{font-family:Georgia,serif;font-size:24px;color:var(--forest)}.role-detail{padding:0 22px 22px 64px;font-size:12px;color:#585b50}.role-contract{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:16px;padding-top:13px;border-top:1px solid #dbe2d7;font-size:10px;color:#54674f}.right-column{display:grid;gap:22px}.events{list-style:none;padding:0 24px 12px;margin:0;max-height:420px;overflow:auto}.events li{padding:12px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:65px 1fr;gap:12px;align-items:start}.events time{font:11px/1.8 monospace;color:var(--muted)}.events strong{display:block;font-size:12px;font-weight:400}.events small{font-size:10px;color:var(--muted)}.events .empty{display:block;color:var(--muted);font-size:12px;padding:26px 0 35px}.boundary{padding:0 6px}.boundary .eyebrow{color:var(--muted);font-size:9px}.boundary h2{font-size:16px;margin-top:6px}.boundary ul{padding-left:17px;color:var(--muted);font-size:12px}.boundary li{padding:4px 0}footer{display:flex;justify-content:space-between;gap:20px;margin-top:32px;border-top:1px solid var(--line);padding-top:17px;color:var(--muted);font-size:9px;letter-spacing:.5px}footer span{letter-spacing:0}.skip{position:fixed;left:10px;top:-100px;padding:12px;background:white;color:black;z-index:20}.skip:focus{top:10px}.login-shell{min-height:100vh;display:grid;grid-template-columns:46% 54%}.login-intro{background:var(--forest);color:#f4f0e5;display:flex;flex-direction:column;justify-content:space-between;padding:50px clamp(30px,6vw,100px);min-height:100vh}.login-intro .brand{padding:0}.login-intro h1{font-size:clamp(32px,3.5vw,52px);line-height:1.45;margin:20px 0}.login-intro p:not(.eyebrow){color:#ccd6ce;font-size:17px;line-height:1.8}.login-intro .eyebrow,.login-foot{color:#c2cdc3;font-size:10px;letter-spacing:1.4px}.login-form-panel{display:grid;place-items:center;padding:40px 24px}.login-form-inner{width:100%;max-width:360px}.login-form-inner>.eyebrow{color:var(--muted);margin-bottom:12px}.login-form-inner h2{font-size:29px;margin-bottom:12px}.login-form-inner .muted{line-height:1.9}form{margin-top:30px}label{display:block;font-size:12px;font-weight:600;margin:17px 0 8px}input{display:block;width:100%;height:48px;border:1px solid #d5cdc0;border-radius:7px;background:var(--surface);padding:11px 13px;color:var(--ink);font-size:14px}input::placeholder{color:#827a6e}form .button{width:100%;margin-top:24px}.form-error{padding:10px 12px;font-size:12px;border-radius:7px;background:#f7e6e0;color:#8d302a;margin-top:15px}.login-help{font-size:11px;color:var(--muted);line-height:1.85;margin:20px 0 26px}.back-link{font-size:12px;text-decoration:none;border-bottom:1px solid #ccc4b7;padding:7px 0;display:inline-block;min-height:44px}
@media(min-width:1600px){main#main{padding-top:40px}.role summary{padding-top:23px;padding-bottom:23px}}
@media(max-width:1180px){.shell{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding-left:10px;padding-right:10px}.brand{font-size:21px}.topbar{padding:12px 24px}main#main{padding:28px 24px 20px}.columns{grid-template-columns:minmax(0,1.45fr) minmax(260px,1fr);gap:18px}.role summary{padding:17px 15px;gap:9px}.role-index{width:21px;flex-basis:21px}.role-detail{padding-left:45px}.role-name{font-size:13px}.badge{font-size:9px}.section-heading{padding:20px 18px 0}.section-description{padding:10px 18px 18px}.section-heading{flex-wrap:wrap}.runtime strong{font-size:18px}h1{font-size:27px}}
@media(max-width:960px){.columns{grid-template-columns:1fr}.right-column{grid-template-columns:1fr 1fr}.boundary{padding:16px 4px}.page-heading{align-items:flex-start}.page-heading h1{font-size:24px}.page-heading .button{font-size:11px;padding:10px}.runtime{gap:16px}.runtime>div+div{padding-left:16px}.section-heading{flex-wrap:nowrap}.role summary{padding:18px 24px}.role-index{width:29px;flex-basis:29px}.role-detail{padding-left:66px}.role-name{font-size:14px}.badge{font-size:10px}}
@media(max-width:720px){.shell{display:block}.sidebar{height:auto;position:static;padding:17px 20px 0;display:block}.sidebar .brand{font-size:21px;padding:0}.monogram{font-size:30px;width:29px}.brand-sub{font-size:8px}.sidebar nav{margin-top:17px;flex-direction:row;gap:4px;overflow:auto}.sidebar nav a{white-space:nowrap;font-size:11px;padding:9px 11px;border-radius:7px 7px 0 0}.sidebar nav a:nth-child(3){display:none}.sidebar-note,.owner{display:none}.sidebar .mono{display:none}.topbar{min-height:57px;padding:7px 20px;font-size:11px}.top-actions{gap:15px}main#main{padding:24px 20px 20px}.page-heading{display:block;margin-bottom:21px}.page-heading h1{font-size:25px}.page-heading .muted{font-size:12px}.page-heading .button{margin-top:18px;padding:10px 15px;font-size:12px}.connection{padding:15px}.connection h2{font-size:14px}.connection p{font-size:11px}.runtime{grid-template-columns:1fr 1fr;gap:18px;padding:18px 0;margin-bottom:24px}.runtime>div+div{padding-left:0;border-left:0}.runtime>div:last-child{grid-column:1/-1;border-top:1px solid var(--line);padding-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:4px 15px}.runtime>div:last-child>.eyebrow{grid-column:1/-1}.runtime strong{font-size:17px}.runtime>div:last-child .muted{font-size:10px}.right-column{grid-template-columns:1fr}.section-heading{padding:20px 18px 0;gap:8px}.section-heading h2{font-size:17px}.small-label{font-size:9px}.section-description{font-size:11px}.role summary{padding:18px 14px;gap:8px}.role-index{width:20px;flex-basis:20px;font-size:10px}.role-name{font-size:12px}.role-name small{font-size:9px}.badge{font-size:9px;padding:3px 5px}.expand{font-size:15px}.role-detail{padding:0 16px 18px 42px;font-size:11px}.role-contract{font-size:9px}.boundary{padding:0 4px}.events{max-height:330px}.events li{padding:13px 0}footer{display:block;font-size:9px}footer span{display:block;margin-top:8px}.login-shell{display:block}.login-intro{min-height:0;padding:24px}.login-intro>div{padding-top:32px}.login-intro h1{font-size:30px;margin:10px 0}.login-intro h1 br{display:none}.login-intro>div p:not(.eyebrow){font-size:13px}.login-intro>div p br{display:none}.login-foot{display:none}.login-form-panel{padding:35px 24px 40px}.login-form-inner h2{font-size:25px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.job-badge[data-state='in_progress']{background:#f7edd8;border-color:#e4d4b3;color:#634616}.job-badge[data-state='done']{background:var(--forest-light);border-color:#cfe0d3;color:var(--forest)}.job-badge[data-state='failed']{background:#f7e6e0;border-color:#eec9bd;color:#8d302a}.job-log{list-style:none;margin:14px 0 0;padding:0;border-top:1px solid #dbe2d7}.job-log li{padding:10px 0;border-bottom:1px solid #ece7db}.job-log li:last-child{border-bottom:none}.job-log strong{display:block;font-size:12px;font-weight:600}.job-log small{display:block;font-size:10px;color:var(--muted);margin-top:2px}.job-log p{font-size:11px;color:#585b50;margin-top:4px}.job-log .empty{color:var(--muted);font-size:11px;padding:6px 0}.job-log .job-failed strong{color:#8d302a}.job-log .job-in_progress strong{color:#815918}