@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Noto+Sans+JP:wght@400;500;600&display=swap";:root{font-family:Noto Sans JP,sans-serif;color:#d7dfd9;background:#151917;font-synthesis:none;color-scheme:dark;--bg: #151917;--surface: #1c221e;--surface-2: #222a25;--surface-3: #29322c;--line: #39443d;--line-strong: #526158;--text: #d7dfd9;--muted: #8f9d94;--accent: #9fc6ad;--accent-bg: #273a2f;--danger: #d09a91}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg);font-size:16px}button,input,textarea,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}h1,h2,p{margin-top:0}.app-shell{min-height:100vh}.topbar{height:68px;padding:0 30px;border-bottom:1px solid var(--line);background:var(--surface);display:flex;align-items:center;justify-content:space-between}.brand{padding:0;border:0;color:var(--text);background:transparent;display:flex;align-items:center;gap:11px;font:600 19px IBM Plex Mono,monospace;letter-spacing:-.025em}.brand img{width:38px;height:38px;flex:none;filter:drop-shadow(0 3px 8px #0005)}.brand span{color:var(--text)}.brand:hover span{color:var(--accent)}.topbar nav{display:flex;height:100%}.topbar nav button{min-width:100px;padding:0 18px;border:0;border-bottom:2px solid transparent;color:var(--muted);background:transparent}.topbar nav button:hover,.topbar nav button.active{color:var(--text);border-bottom-color:var(--accent);background:var(--surface-2)}.registry-layout{min-height:calc(100vh - 68px);display:grid;grid-template-columns:260px minmax(0,1fr)}.project-list{border-right:1px solid var(--line);background:#181d1a}.list-heading{min-height:94px;padding:20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}small{color:var(--muted);font:500 11px IBM Plex Mono,monospace;letter-spacing:.09em}.list-heading h2{margin:4px 0 0;font-size:19px;font-weight:600}.icon-button{width:38px;height:38px;border:1px solid var(--line-strong);color:var(--accent);background:var(--surface-2);font-size:22px}.icon-button:hover{border-color:var(--accent);background:var(--accent-bg)}.project-list-row{position:relative;border-bottom:1px solid #303933;display:flex;align-items:stretch}.project-list-row.dragging{opacity:.45}.project-item{min-width:0;padding:17px 8px 17px 20px;border:0;color:var(--text);background:transparent;text-align:left;display:grid;gap:5px;flex:1}.project-item strong{overflow:hidden;font-size:15px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.project-item span{color:var(--muted);font:12px IBM Plex Mono,monospace}.project-item:hover{background:var(--surface-2)}.project-item.active{box-shadow:inset 3px 0 var(--accent);background:var(--accent-bg)}.project-order-actions{width:66px;padding-right:7px;display:grid;grid-template-columns:1fr 1fr;align-content:center;gap:2px;background:transparent}.project-order-actions button{width:25px;height:24px;padding:0;border:0;color:var(--muted);background:transparent}.project-order-actions button:hover:not(:disabled){color:var(--accent);background:var(--surface-3)}.project-order-actions button:disabled{cursor:default;opacity:.2}.project-order-actions span{grid-column:1 / -1;color:var(--line-strong);text-align:center;cursor:grab;line-height:18px}.service-tree-item{padding-left:calc(20px + var(--depth) * 18px)}.service-tree-item .tree-branch{margin-right:7px;color:var(--line-strong)}.empty-list{padding:20px;color:var(--muted);font-size:14px}.workspace{min-width:0;padding:36px clamp(24px,5vw,72px) 70px}.workspace-heading,.page-heading{min-height:82px;margin-bottom:24px;display:flex;align-items:flex-start;justify-content:space-between;gap:30px}.workspace-heading h1,.page-heading h1{margin:5px 0 7px;font-size:27px;font-weight:600}.workspace-heading p,.page-heading p{margin-bottom:0;color:var(--muted);font:13px IBM Plex Mono,monospace}.heading-actions{display:flex;gap:9px;flex-shrink:0}.heading-actions button,.add-row,.steps+button{min-height:40px;padding:0 17px;border:1px solid var(--line-strong);color:var(--text);background:var(--surface-2)}.heading-actions button:hover,.add-row:hover{border-color:var(--accent);background:var(--surface-3)}.heading-actions .primary,.primary{border-color:#71917d;color:#e2eee6;background:#355140}.heading-actions .danger{color:var(--danger);background:transparent}.title-fields{width:min(690px,100%);display:grid;grid-template-columns:2fr 1fr;gap:14px}.title-fields label{color:var(--muted);font-size:12px}.title-fields input{width:100%;height:42px;margin-top:6px;padding:0 12px;border:1px solid var(--line-strong);color:var(--text);background:var(--surface)}.title-fields textarea{width:100%;min-height:82px;margin-top:6px;padding:10px 12px;border:1px solid var(--line-strong);resize:vertical;color:var(--text);background:var(--surface);line-height:1.6}.title-fields select{width:100%;height:42px;margin-top:6px;padding:0 12px;border:1px solid var(--line-strong);color:var(--text);background:var(--surface)}.title-fields input:disabled{color:var(--muted);background:#171b18}.title-fields .summary-field{grid-column:1 / -1}.title-fields .summary-field small{display:block;margin-top:6px;line-height:1.5}.project-details{margin:0 0 24px;border:1px solid var(--line);background:var(--surface);display:grid;grid-template-columns:1fr 1fr}.project-details>div{min-width:0;padding:14px 16px;border-right:1px solid var(--line)}.project-details>div:nth-child(2){border-right:0}.project-details .summary-detail{grid-column:1 / -1;border-top:1px solid var(--line);border-right:0}.project-details dt{margin-bottom:5px;color:var(--muted);font-size:12px}.project-details dd{margin:0;line-height:1.65;overflow-wrap:anywhere;white-space:pre-wrap}.project-details a{color:var(--accent);text-underline-offset:3px}.scope-badge{display:inline-block;padding:2px 9px;border:1px solid var(--line-strong);font-size:12px}.scope-badge.public{border-color:#71917d;color:#d8eadf;background:var(--accent-bg)}.scope-badge.local{color:#b8c4bc;background:var(--surface-2)}.binding-panel,.usage-panel{margin-bottom:24px;border:1px solid var(--line);background:var(--surface)}.section-heading{min-height:62px;padding:11px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.section-heading h2{margin:3px 0 0;font-size:17px}.section-heading>button{padding:8px 13px;border:1px solid var(--line-strong);color:var(--accent);background:var(--surface-2)}.section-heading>button:disabled{cursor:not-allowed;opacity:.45}.binding-editor{padding:14px;display:grid;gap:12px}.binding-row{padding:13px;border:1px solid var(--line);display:grid;grid-template-columns:1.2fr 1.5fr 1fr 1.4fr auto 38px;gap:10px;align-items:end}.binding-row label{color:var(--muted);font-size:11px}.binding-row input:not([type=checkbox]),.binding-row select{width:100%;height:38px;margin-top:5px;padding:0 9px;border:1px solid var(--line);color:var(--text);background:#171c19}.binding-row .required-check{min-height:38px;display:flex;align-items:center;gap:6px;white-space:nowrap}.binding-row .row-delete{width:38px;height:38px;border:1px solid var(--line);color:var(--danger);background:transparent}.binding-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.binding-list>button{min-height:92px;padding:14px 16px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--text);background:transparent;text-align:left;display:grid;gap:6px}.binding-list>button:hover,.usage-project:hover{background:var(--surface-2)}.binding-list span,.binding-list small{color:var(--muted)}.service-details{grid-template-columns:1fr 1fr 1fr 1fr}.service-details>div:nth-child(2){border-right:1px solid var(--line)}.service-details>div:nth-child(4){border-right:0}.usage-project{width:100%;min-height:64px;padding:12px 16px;border:0;border-bottom:1px solid var(--line);color:var(--text);background:transparent;text-align:left;display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:15px;align-items:center}.usage-project small,.usage-project span{color:var(--muted)}.sheet-toolbar{min-height:52px;padding:8px 12px;border:1px solid var(--line);border-bottom:0;background:var(--surface);display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:13px}.sheet-toolbar label{display:flex;align-items:center;gap:10px}.sheet-toolbar input{width:260px;height:34px;padding:0 10px;border:1px solid var(--line);color:var(--text);background:#171c19}.sheet-wrap{overflow-x:auto;border:1px solid var(--line-strong)}.stack-sheet{width:100%;min-width:600px;border-collapse:collapse;table-layout:fixed;background:var(--surface)}.category-column{width:28%}.operation-column{width:48px}.stack-sheet th{height:47px;padding:0 16px;border-right:1px solid var(--line-strong);border-bottom:2px solid #64766b;color:#b9c8be;background:var(--surface-3);text-align:left;font:600 14px IBM Plex Mono,monospace}.stack-sheet td{min-height:52px;padding:14px 16px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--text);line-height:1.65;vertical-align:top;white-space:pre-wrap}.stack-sheet tbody td:first-child{color:#b8c9bd;font-weight:500}.stack-sheet tr:last-child td{border-bottom:0}.stack-sheet th:last-child,.stack-sheet td:last-child{border-right:0}.stack-sheet tbody tr:hover td{background:#202821}.stack-sheet td:has(input),.stack-sheet td:has(textarea){padding:0}.stack-sheet input,.stack-sheet textarea{width:100%;min-height:53px;padding:14px 16px;border:0;resize:vertical;color:var(--text);background:#1b211d;line-height:1.55}.stack-sheet input:hover,.stack-sheet textarea:hover{background:#202821}.stack-sheet input:focus,.stack-sheet textarea:focus{background:#233028}.stack-sheet .row-delete{width:100%;height:53px;border:0;color:var(--muted);background:transparent;font-size:19px}.stack-sheet .row-delete:hover{color:var(--danger);background:#322522}.empty-cell{color:var(--muted)!important;text-align:center}.add-row{margin-top:12px;color:var(--accent)}.welcome{min-height:55vh;display:grid;place-content:center;justify-items:center;text-align:center}.welcome>span{color:var(--accent);font:600 34px IBM Plex Mono,monospace}.welcome h1{margin:18px 0 10px;font-size:25px}.welcome p{color:var(--muted)}.welcome button{margin-top:13px;padding:12px 20px}.single-page{width:min(1000px,calc(100% - 48px));margin:0 auto;padding:42px 0 80px}.console-panel{margin-bottom:20px;border:1px solid var(--line-strong);background:var(--surface)}.console-panel>header{min-height:48px;padding:0 16px;border-bottom:1px solid var(--line);background:var(--surface-2);display:flex;align-items:center;justify-content:space-between}.console-panel header span{color:var(--muted);font:12px IBM Plex Mono,monospace}.console-panel pre,.console-panel .clean{margin:0;padding:18px;color:#b6c7bb;font:13px/1.7 IBM Plex Mono,monospace;white-space:pre-wrap}.history>div{padding:14px 17px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:90px 1fr;gap:18px}.history>div:last-child{border:0}.history code{color:var(--accent);font:13px IBM Plex Mono,monospace}.history b,.history small{display:block}.history b{font-weight:500}.history small{margin-top:4px}.notice{padding:28px;border:1px dashed var(--line-strong);color:var(--muted);text-align:center}.steps{margin:0;padding:0;border:1px solid var(--line-strong);list-style:none}.steps li{min-height:130px;padding:24px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:64px 1fr;gap:20px}.steps li:last-child{border:0}.steps>li>span{color:var(--accent);font:500 16px IBM Plex Mono,monospace}.steps h2{margin-bottom:10px;font-size:18px}.steps p{margin:0;color:#aab6ae;line-height:1.8}.loading{padding:70px;color:var(--muted);text-align:center}.toast{position:fixed;z-index:20;right:24px;bottom:24px;max-width:430px;padding:13px 18px;border:1px solid #75917f;color:#e0ebe4;background:#2c4536;box-shadow:0 8px 28px #0008}.toast.error{border-color:#956b64;background:#4a302c}.login-screen{min-height:100vh;display:grid;place-items:center;background:var(--bg)}.login-card{width:min(430px,calc(100% - 32px));padding:42px;border:1px solid var(--line-strong);background:var(--surface)}.login-card .prompt{color:var(--accent);font:600 28px IBM Plex Mono,monospace}.login-card>p{color:var(--muted);line-height:1.7}.login-card h1{margin-bottom:20px;font-size:27px}.login-card a{display:block;margin-top:26px;padding:12px;border:1px solid #71917d;color:#e2eee6;background:#355140;text-align:center;text-decoration:none}@media(max-width:760px){body{font-size:15px}.topbar{height:auto;padding:16px;align-items:flex-start;flex-direction:column;gap:13px}.topbar nav{width:100%;height:42px}.topbar nav button{min-width:0;padding:0 12px;flex:1}.registry-layout{min-height:0;grid-template-columns:1fr}.project-list{border-right:0;border-bottom:1px solid var(--line)}.project-list-row{width:250px;display:inline-flex;vertical-align:top;border-right:1px solid var(--line)}.workspace{padding:26px 16px 50px}.workspace-heading,.page-heading{align-items:stretch;flex-direction:column}.title-fields,.project-details{grid-template-columns:1fr}.project-details>div{border-right:0;border-bottom:1px solid var(--line)}.project-details .summary-detail{grid-column:auto;border-top:0;border-bottom:0}.service-details,.binding-row{grid-template-columns:1fr}.usage-project{grid-template-columns:1fr;gap:4px}.heading-actions button{flex:1}.sheet-toolbar{align-items:stretch;flex-direction:column;gap:8px}.sheet-toolbar label,.sheet-toolbar input{width:100%}.single-page{width:calc(100% - 32px);padding-top:28px}.steps li{grid-template-columns:44px 1fr;padding:20px 15px;gap:10px}}
