:root{--yui-color-shell:#f7f9fb;--yui-color-sidebar:#f2f4f6;--yui-color-surface:#fff;--yui-color-surface-muted:#eef0f3;--yui-color-primary:#1e4ed8;--yui-color-primary-dark:#1e3a8a;--yui-color-primary-soft:#dde7ff;--yui-color-ink:#191c1e;--yui-color-ink-muted:#6b7079;--yui-color-border:#c3c6d1;--yui-color-success:#0f5132;--yui-color-success-bg:#d6f4dc;--yui-color-warning:#6b4a08;--yui-color-warning-bg:#fde7b3;--yui-color-danger:#8a1a13;--yui-color-danger-bg:#ffdad6;--yui-color-focus:#1e4ed8;--yui-font-sans:"Noto Sans JP", system-ui, -apple-system, sans-serif;--yui-space-1:4px;--yui-space-2:8px;--yui-space-3:12px;--yui-space-4:16px;--yui-space-5:24px;--yui-space-6:32px;--yui-radius-sm:8px;--yui-radius-md:16px;--yui-radius-lg:20px;--yui-shadow-card:0 2px 12px #0f172a0f}*{box-sizing:border-box}html{scroll-padding-top:88px}body{font-family:var(--yui-font-sans);color:var(--yui-color-ink);background:var(--yui-color-shell);margin:0;font-size:14px;line-height:1.7}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:var(--yui-color-primary)}:focus-visible{outline:3px solid var(--yui-color-focus);outline-offset:3px}h1,h2,h3,p,dl{margin:0}.lab-shell{grid-template-columns:256px minmax(0,1fr);min-height:100dvh;display:grid}.lab-sidebar{background:var(--yui-color-sidebar);border-right:1px solid var(--yui-color-border);padding:var(--yui-space-5);gap:var(--yui-space-5);flex-direction:column;height:100dvh;display:flex;position:sticky;top:0;overflow-y:auto}.lab-brand{align-items:center;gap:var(--yui-space-3);color:var(--yui-color-ink);min-height:64px;line-height:1.3;text-decoration:none;display:flex}.lab-brand>span{color:var(--yui-color-primary);font-size:32px}.sidebar-caption,.sidebar-note{color:var(--yui-color-ink-muted);font-size:12px}.sidebar-note{padding-top:var(--yui-space-5);border-top:1px solid var(--yui-color-border);margin-top:auto}.lab-sidebar nav{gap:var(--yui-space-2);flex-direction:column;display:flex}.lab-sidebar nav a{align-items:center;gap:var(--yui-space-3);border-radius:var(--yui-radius-sm);min-height:48px;color:var(--yui-color-ink);padding:var(--yui-space-2);text-decoration:none;display:flex}.lab-sidebar nav a:hover{background:var(--yui-color-primary-soft);color:var(--yui-color-primary)}.lab-body{min-width:0}.lab-header{z-index:10;background:var(--yui-color-surface);border-bottom:1px solid var(--yui-color-border);align-items:center;gap:var(--yui-space-3);min-height:72px;padding:var(--yui-space-4) var(--yui-space-5);display:flex;position:sticky;top:0}.lab-header strong{color:var(--yui-color-warning);background:var(--yui-color-warning-bg);border-radius:var(--yui-radius-sm);padding:var(--yui-space-1) var(--yui-space-2);white-space:nowrap;margin-left:auto;font-size:12px}main{padding:var(--yui-space-5);max-width:1400px;margin:0 auto}footer{padding:var(--yui-space-5);color:var(--yui-color-ink-muted);font-size:12px}.card{background:var(--yui-color-surface);border:1px solid var(--yui-color-border);border-radius:var(--yui-radius-md);box-shadow:var(--yui-shadow-card);min-width:0}.field{gap:var(--yui-space-2);flex-direction:column;min-width:0;display:flex}.field label{font-weight:600}.required{margin-left:var(--yui-space-2);color:var(--yui-color-danger);background:var(--yui-color-danger-bg);border-radius:var(--yui-radius-sm);padding:0 var(--yui-space-2);font-size:11px}.skip-link{z-index:100;background:#fff;padding:12px;position:fixed;top:-100px;left:16px}.skip-link:focus{top:8px}.mobile-toggle,.drawer-close{min-width:44px;min-height:44px;color:var(--yui-color-ink);background:0 0;border:0;display:none}@media (max-width:1099px){.lab-shell{grid-template-columns:minmax(0,1fr)}.lab-sidebar{visibility:hidden;z-index:30;width:min(320px,90vw);position:fixed;transform:translate(-110%)}.lab-sidebar.is-open{visibility:visible;transform:translate(0)}.mobile-toggle,.drawer-close{justify-content:center;align-items:center;display:inline-flex}.drawer-close{position:absolute;top:8px;right:8px}.drawer-backdrop{z-index:20;background:#00000040;position:fixed;inset:0}}@media (max-width:599px){main{padding:var(--yui-space-4)}.lab-header{padding:var(--yui-space-3)}.lab-header>span{font-size:12px}}
